diff --git a/api/historyservice/v1/request_response.go-helpers.pb.go b/api/historyservice/v1/request_response.go-helpers.pb.go index 635ae4eeaaa..b2a35404e2d 100644 --- a/api/historyservice/v1/request_response.go-helpers.pb.go +++ b/api/historyservice/v1/request_response.go-helpers.pb.go @@ -116,6 +116,80 @@ func (this *StartWorkflowExecutionResponse) Equal(that interface{}) bool { return proto.Equal(this, that1) } +// Marshal an object of type GetStreamReplaySlicesRequest to the protobuf v3 wire format +func (val *GetStreamReplaySlicesRequest) Marshal() ([]byte, error) { + return proto.Marshal(val) +} + +// Unmarshal an object of type GetStreamReplaySlicesRequest from the protobuf v3 wire format +func (val *GetStreamReplaySlicesRequest) Unmarshal(buf []byte) error { + return proto.Unmarshal(buf, val) +} + +// Size returns the size of the object, in bytes, once serialized +func (val *GetStreamReplaySlicesRequest) Size() int { + return proto.Size(val) +} + +// Equal returns whether two GetStreamReplaySlicesRequest values are equivalent by recursively +// comparing the message's fields. +// For more information see the documentation for +// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal +func (this *GetStreamReplaySlicesRequest) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + var that1 *GetStreamReplaySlicesRequest + switch t := that.(type) { + case *GetStreamReplaySlicesRequest: + that1 = t + case GetStreamReplaySlicesRequest: + that1 = &t + default: + return false + } + + return proto.Equal(this, that1) +} + +// Marshal an object of type GetStreamReplaySlicesResponse to the protobuf v3 wire format +func (val *GetStreamReplaySlicesResponse) Marshal() ([]byte, error) { + return proto.Marshal(val) +} + +// Unmarshal an object of type GetStreamReplaySlicesResponse from the protobuf v3 wire format +func (val *GetStreamReplaySlicesResponse) Unmarshal(buf []byte) error { + return proto.Unmarshal(buf, val) +} + +// Size returns the size of the object, in bytes, once serialized +func (val *GetStreamReplaySlicesResponse) Size() int { + return proto.Size(val) +} + +// Equal returns whether two GetStreamReplaySlicesResponse values are equivalent by recursively +// comparing the message's fields. +// For more information see the documentation for +// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal +func (this *GetStreamReplaySlicesResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + var that1 *GetStreamReplaySlicesResponse + switch t := that.(type) { + case *GetStreamReplaySlicesResponse: + that1 = t + case GetStreamReplaySlicesResponse: + that1 = &t + default: + return false + } + + return proto.Equal(this, that1) +} + // Marshal an object of type GetMutableStateRequest to the protobuf v3 wire format func (val *GetMutableStateRequest) Marshal() ([]byte, error) { return proto.Marshal(val) diff --git a/api/historyservice/v1/request_response.pb.go b/api/historyservice/v1/request_response.pb.go index 128413c0bd5..30cea03f215 100644 --- a/api/historyservice/v1/request_response.pb.go +++ b/api/historyservice/v1/request_response.pb.go @@ -11,29 +11,30 @@ import ( sync "sync" unsafe "unsafe" - v123 "go.temporal.io/api/activity/v1" + v124 "go.temporal.io/api/activity/v1" v14 "go.temporal.io/api/common/v1" v16 "go.temporal.io/api/deployment/v1" v12 "go.temporal.io/api/enums/v1" v13 "go.temporal.io/api/failure/v1" v17 "go.temporal.io/api/history/v1" - v121 "go.temporal.io/api/nexus/v1" - v115 "go.temporal.io/api/protocol/v1" - v114 "go.temporal.io/api/query/v1" - v111 "go.temporal.io/api/taskqueue/v1" + v122 "go.temporal.io/api/nexus/v1" + v116 "go.temporal.io/api/protocol/v1" + v115 "go.temporal.io/api/query/v1" + v19 "go.temporal.io/api/stream/v1" + v112 "go.temporal.io/api/taskqueue/v1" v15 "go.temporal.io/api/workflow/v1" v1 "go.temporal.io/api/workflowservice/v1" - v118 "go.temporal.io/server/api/adminservice/v1" + v119 "go.temporal.io/server/api/adminservice/v1" v18 "go.temporal.io/server/api/clock/v1" - v119 "go.temporal.io/server/api/common/v1" - v112 "go.temporal.io/server/api/enums/v1" - v122 "go.temporal.io/server/api/health/v1" - v19 "go.temporal.io/server/api/history/v1" - v116 "go.temporal.io/server/api/namespace/v1" - v110 "go.temporal.io/server/api/persistence/v1" - v117 "go.temporal.io/server/api/replication/v1" - v113 "go.temporal.io/server/api/taskqueue/v1" - v120 "go.temporal.io/server/api/token/v1" + v120 "go.temporal.io/server/api/common/v1" + v113 "go.temporal.io/server/api/enums/v1" + v123 "go.temporal.io/server/api/health/v1" + v110 "go.temporal.io/server/api/history/v1" + v117 "go.temporal.io/server/api/namespace/v1" + v111 "go.temporal.io/server/api/persistence/v1" + v118 "go.temporal.io/server/api/replication/v1" + v114 "go.temporal.io/server/api/taskqueue/v1" + v121 "go.temporal.io/server/api/token/v1" v11 "go.temporal.io/server/api/workflow/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -471,21 +472,122 @@ func (x *StartWorkflowExecutionResponse) GetFirstExecutionRunId() string { return "" } +// Asks for the stream ranges a workflow's completed tasks recorded, re-read from +// their streams, for a task that is built without RecordWorkflowTaskStarted. +// A query dispatched straight through matching is the one such task. +type GetStreamReplaySlicesRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + Execution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=execution,proto3" json:"execution,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetStreamReplaySlicesRequest) Reset() { + *x = GetStreamReplaySlicesRequest{} + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStreamReplaySlicesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStreamReplaySlicesRequest) ProtoMessage() {} + +func (x *GetStreamReplaySlicesRequest) ProtoReflect() protoreflect.Message { + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStreamReplaySlicesRequest.ProtoReflect.Descriptor instead. +func (*GetStreamReplaySlicesRequest) Descriptor() ([]byte, []int) { + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{3} +} + +func (x *GetStreamReplaySlicesRequest) GetNamespaceId() string { + if x != nil { + return x.NamespaceId + } + return "" +} + +func (x *GetStreamReplaySlicesRequest) GetExecution() *v14.WorkflowExecution { + if x != nil { + return x.Execution + } + return nil +} + +type GetStreamReplaySlicesResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Every slice is tagged with the completed event that recorded its range. + // Empty when the workflow consumes no stream. + StreamSlices []*v19.StreamSlice `protobuf:"bytes,1,rep,name=stream_slices,json=streamSlices,proto3" json:"stream_slices,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetStreamReplaySlicesResponse) Reset() { + *x = GetStreamReplaySlicesResponse{} + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStreamReplaySlicesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStreamReplaySlicesResponse) ProtoMessage() {} + +func (x *GetStreamReplaySlicesResponse) ProtoReflect() protoreflect.Message { + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStreamReplaySlicesResponse.ProtoReflect.Descriptor instead. +func (*GetStreamReplaySlicesResponse) Descriptor() ([]byte, []int) { + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{4} +} + +func (x *GetStreamReplaySlicesResponse) GetStreamSlices() []*v19.StreamSlice { + if x != nil { + return x.StreamSlices + } + return nil +} + type GetMutableStateRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` Execution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=execution,proto3" json:"execution,omitempty"` ExpectedNextEventId int64 `protobuf:"varint,3,opt,name=expected_next_event_id,json=expectedNextEventId,proto3" json:"expected_next_event_id,omitempty"` CurrentBranchToken []byte `protobuf:"bytes,4,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - VersionHistoryItem *v19.VersionHistoryItem `protobuf:"bytes,5,opt,name=version_history_item,json=versionHistoryItem,proto3" json:"version_history_item,omitempty"` - VersionedTransition *v110.VersionedTransition `protobuf:"bytes,6,opt,name=versioned_transition,json=versionedTransition,proto3" json:"versioned_transition,omitempty"` + VersionHistoryItem *v110.VersionHistoryItem `protobuf:"bytes,5,opt,name=version_history_item,json=versionHistoryItem,proto3" json:"version_history_item,omitempty"` + VersionedTransition *v111.VersionedTransition `protobuf:"bytes,6,opt,name=versioned_transition,json=versionedTransition,proto3" json:"versioned_transition,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetMutableStateRequest) Reset() { *x = GetMutableStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[3] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -497,7 +599,7 @@ func (x *GetMutableStateRequest) String() string { func (*GetMutableStateRequest) ProtoMessage() {} func (x *GetMutableStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[3] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -510,7 +612,7 @@ func (x *GetMutableStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMutableStateRequest.ProtoReflect.Descriptor instead. func (*GetMutableStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{3} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{5} } func (x *GetMutableStateRequest) GetNamespaceId() string { @@ -541,14 +643,14 @@ func (x *GetMutableStateRequest) GetCurrentBranchToken() []byte { return nil } -func (x *GetMutableStateRequest) GetVersionHistoryItem() *v19.VersionHistoryItem { +func (x *GetMutableStateRequest) GetVersionHistoryItem() *v110.VersionHistoryItem { if x != nil { return x.VersionHistoryItem } return nil } -func (x *GetMutableStateRequest) GetVersionedTransition() *v110.VersionedTransition { +func (x *GetMutableStateRequest) GetVersionedTransition() *v111.VersionedTransition { if x != nil { return x.VersionedTransition } @@ -562,15 +664,15 @@ type GetMutableStateResponse struct { NextEventId int64 `protobuf:"varint,3,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` PreviousStartedEventId int64 `protobuf:"varint,4,opt,name=previous_started_event_id,json=previousStartedEventId,proto3" json:"previous_started_event_id,omitempty"` LastFirstEventId int64 `protobuf:"varint,5,opt,name=last_first_event_id,json=lastFirstEventId,proto3" json:"last_first_event_id,omitempty"` - TaskQueue *v111.TaskQueue `protobuf:"bytes,6,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - StickyTaskQueue *v111.TaskQueue `protobuf:"bytes,7,opt,name=sticky_task_queue,json=stickyTaskQueue,proto3" json:"sticky_task_queue,omitempty"` + TaskQueue *v112.TaskQueue `protobuf:"bytes,6,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` + StickyTaskQueue *v112.TaskQueue `protobuf:"bytes,7,opt,name=sticky_task_queue,json=stickyTaskQueue,proto3" json:"sticky_task_queue,omitempty"` // (-- api-linter: core::0140::prepositions=disabled // aip.dev/not-precedent: "to" is used to indicate interval. --) StickyTaskQueueScheduleToStartTimeout *durationpb.Duration `protobuf:"bytes,11,opt,name=sticky_task_queue_schedule_to_start_timeout,json=stickyTaskQueueScheduleToStartTimeout,proto3" json:"sticky_task_queue_schedule_to_start_timeout,omitempty"` CurrentBranchToken []byte `protobuf:"bytes,13,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - WorkflowState v112.WorkflowExecutionState `protobuf:"varint,15,opt,name=workflow_state,json=workflowState,proto3,enum=temporal.server.api.enums.v1.WorkflowExecutionState" json:"workflow_state,omitempty"` + WorkflowState v113.WorkflowExecutionState `protobuf:"varint,15,opt,name=workflow_state,json=workflowState,proto3,enum=temporal.server.api.enums.v1.WorkflowExecutionState" json:"workflow_state,omitempty"` WorkflowStatus v12.WorkflowExecutionStatus `protobuf:"varint,16,opt,name=workflow_status,json=workflowStatus,proto3,enum=temporal.api.enums.v1.WorkflowExecutionStatus" json:"workflow_status,omitempty"` - VersionHistories *v19.VersionHistories `protobuf:"bytes,17,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` + VersionHistories *v110.VersionHistories `protobuf:"bytes,17,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` IsStickyTaskQueueEnabled bool `protobuf:"varint,18,opt,name=is_sticky_task_queue_enabled,json=isStickyTaskQueueEnabled,proto3" json:"is_sticky_task_queue_enabled,omitempty"` LastFirstEventTxnId int64 `protobuf:"varint,19,opt,name=last_first_event_txn_id,json=lastFirstEventTxnId,proto3" json:"last_first_event_txn_id,omitempty"` FirstExecutionRunId string `protobuf:"bytes,20,opt,name=first_execution_run_id,json=firstExecutionRunId,proto3" json:"first_execution_run_id,omitempty"` @@ -581,18 +683,23 @@ type GetMutableStateResponse struct { // for this execution. AssignedBuildId string `protobuf:"bytes,22,opt,name=assigned_build_id,json=assignedBuildId,proto3" json:"assigned_build_id,omitempty"` InheritedBuildId string `protobuf:"bytes,23,opt,name=inherited_build_id,json=inheritedBuildId,proto3" json:"inherited_build_id,omitempty"` - TransitionHistory []*v110.VersionedTransition `protobuf:"bytes,24,rep,name=transition_history,json=transitionHistory,proto3" json:"transition_history,omitempty"` + TransitionHistory []*v111.VersionedTransition `protobuf:"bytes,24,rep,name=transition_history,json=transitionHistory,proto3" json:"transition_history,omitempty"` VersioningInfo *v15.WorkflowExecutionVersioningInfo `protobuf:"bytes,25,opt,name=versioning_info,json=versioningInfo,proto3" json:"versioning_info,omitempty"` // Transient or speculative workflow task events which are not yet persisted in the history. // These events should be appended to the history when it is returned to the worker. - TransientOrSpeculativeTasks *v19.TransientWorkflowTaskInfo `protobuf:"bytes,26,opt,name=transient_or_speculative_tasks,json=transientOrSpeculativeTasks,proto3" json:"transient_or_speculative_tasks,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + TransientOrSpeculativeTasks *v110.TransientWorkflowTaskInfo `protobuf:"bytes,26,opt,name=transient_or_speculative_tasks,json=transientOrSpeculativeTasks,proto3" json:"transient_or_speculative_tasks,omitempty"` + // Whether this workflow holds a cursor into any stream. Matching builds a + // query task without RecordWorkflowTaskStarted, so it has to ask History for + // the ranges the history records, and almost no workflow has any. This says + // which ones do, so the extra call is only made for those. + ConsumesStreams bool `protobuf:"varint,27,opt,name=consumes_streams,json=consumesStreams,proto3" json:"consumes_streams,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetMutableStateResponse) Reset() { *x = GetMutableStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[4] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -604,7 +711,7 @@ func (x *GetMutableStateResponse) String() string { func (*GetMutableStateResponse) ProtoMessage() {} func (x *GetMutableStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[4] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -617,7 +724,7 @@ func (x *GetMutableStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMutableStateResponse.ProtoReflect.Descriptor instead. func (*GetMutableStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{4} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{6} } func (x *GetMutableStateResponse) GetExecution() *v14.WorkflowExecution { @@ -655,14 +762,14 @@ func (x *GetMutableStateResponse) GetLastFirstEventId() int64 { return 0 } -func (x *GetMutableStateResponse) GetTaskQueue() *v111.TaskQueue { +func (x *GetMutableStateResponse) GetTaskQueue() *v112.TaskQueue { if x != nil { return x.TaskQueue } return nil } -func (x *GetMutableStateResponse) GetStickyTaskQueue() *v111.TaskQueue { +func (x *GetMutableStateResponse) GetStickyTaskQueue() *v112.TaskQueue { if x != nil { return x.StickyTaskQueue } @@ -683,11 +790,11 @@ func (x *GetMutableStateResponse) GetCurrentBranchToken() []byte { return nil } -func (x *GetMutableStateResponse) GetWorkflowState() v112.WorkflowExecutionState { +func (x *GetMutableStateResponse) GetWorkflowState() v113.WorkflowExecutionState { if x != nil { return x.WorkflowState } - return v112.WorkflowExecutionState(0) + return v113.WorkflowExecutionState(0) } func (x *GetMutableStateResponse) GetWorkflowStatus() v12.WorkflowExecutionStatus { @@ -697,7 +804,7 @@ func (x *GetMutableStateResponse) GetWorkflowStatus() v12.WorkflowExecutionStatu return v12.WorkflowExecutionStatus(0) } -func (x *GetMutableStateResponse) GetVersionHistories() *v19.VersionHistories { +func (x *GetMutableStateResponse) GetVersionHistories() *v110.VersionHistories { if x != nil { return x.VersionHistories } @@ -746,7 +853,7 @@ func (x *GetMutableStateResponse) GetInheritedBuildId() string { return "" } -func (x *GetMutableStateResponse) GetTransitionHistory() []*v110.VersionedTransition { +func (x *GetMutableStateResponse) GetTransitionHistory() []*v111.VersionedTransition { if x != nil { return x.TransitionHistory } @@ -760,27 +867,34 @@ func (x *GetMutableStateResponse) GetVersioningInfo() *v15.WorkflowExecutionVers return nil } -func (x *GetMutableStateResponse) GetTransientOrSpeculativeTasks() *v19.TransientWorkflowTaskInfo { +func (x *GetMutableStateResponse) GetTransientOrSpeculativeTasks() *v110.TransientWorkflowTaskInfo { if x != nil { return x.TransientOrSpeculativeTasks } return nil } +func (x *GetMutableStateResponse) GetConsumesStreams() bool { + if x != nil { + return x.ConsumesStreams + } + return false +} + type PollMutableStateRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Execution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=execution,proto3" json:"execution,omitempty"` - ExpectedNextEventId int64 `protobuf:"varint,3,opt,name=expected_next_event_id,json=expectedNextEventId,proto3" json:"expected_next_event_id,omitempty"` - CurrentBranchToken []byte `protobuf:"bytes,4,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - VersionHistoryItem *v19.VersionHistoryItem `protobuf:"bytes,5,opt,name=version_history_item,json=versionHistoryItem,proto3" json:"version_history_item,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + Execution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=execution,proto3" json:"execution,omitempty"` + ExpectedNextEventId int64 `protobuf:"varint,3,opt,name=expected_next_event_id,json=expectedNextEventId,proto3" json:"expected_next_event_id,omitempty"` + CurrentBranchToken []byte `protobuf:"bytes,4,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` + VersionHistoryItem *v110.VersionHistoryItem `protobuf:"bytes,5,opt,name=version_history_item,json=versionHistoryItem,proto3" json:"version_history_item,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PollMutableStateRequest) Reset() { *x = PollMutableStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[5] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -792,7 +906,7 @@ func (x *PollMutableStateRequest) String() string { func (*PollMutableStateRequest) ProtoMessage() {} func (x *PollMutableStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[5] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -805,7 +919,7 @@ func (x *PollMutableStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PollMutableStateRequest.ProtoReflect.Descriptor instead. func (*PollMutableStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{5} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{7} } func (x *PollMutableStateRequest) GetNamespaceId() string { @@ -836,7 +950,7 @@ func (x *PollMutableStateRequest) GetCurrentBranchToken() []byte { return nil } -func (x *PollMutableStateRequest) GetVersionHistoryItem() *v19.VersionHistoryItem { +func (x *PollMutableStateRequest) GetVersionHistoryItem() *v110.VersionHistoryItem { if x != nil { return x.VersionHistoryItem } @@ -850,14 +964,14 @@ type PollMutableStateResponse struct { NextEventId int64 `protobuf:"varint,3,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` PreviousStartedEventId int64 `protobuf:"varint,4,opt,name=previous_started_event_id,json=previousStartedEventId,proto3" json:"previous_started_event_id,omitempty"` LastFirstEventId int64 `protobuf:"varint,5,opt,name=last_first_event_id,json=lastFirstEventId,proto3" json:"last_first_event_id,omitempty"` - TaskQueue *v111.TaskQueue `protobuf:"bytes,6,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - StickyTaskQueue *v111.TaskQueue `protobuf:"bytes,7,opt,name=sticky_task_queue,json=stickyTaskQueue,proto3" json:"sticky_task_queue,omitempty"` + TaskQueue *v112.TaskQueue `protobuf:"bytes,6,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` + StickyTaskQueue *v112.TaskQueue `protobuf:"bytes,7,opt,name=sticky_task_queue,json=stickyTaskQueue,proto3" json:"sticky_task_queue,omitempty"` // (-- api-linter: core::0140::prepositions=disabled // aip.dev/not-precedent: "to" is used to indicate interval. --) StickyTaskQueueScheduleToStartTimeout *durationpb.Duration `protobuf:"bytes,11,opt,name=sticky_task_queue_schedule_to_start_timeout,json=stickyTaskQueueScheduleToStartTimeout,proto3" json:"sticky_task_queue_schedule_to_start_timeout,omitempty"` CurrentBranchToken []byte `protobuf:"bytes,12,opt,name=current_branch_token,json=currentBranchToken,proto3" json:"current_branch_token,omitempty"` - VersionHistories *v19.VersionHistories `protobuf:"bytes,14,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` - WorkflowState v112.WorkflowExecutionState `protobuf:"varint,15,opt,name=workflow_state,json=workflowState,proto3,enum=temporal.server.api.enums.v1.WorkflowExecutionState" json:"workflow_state,omitempty"` + VersionHistories *v110.VersionHistories `protobuf:"bytes,14,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` + WorkflowState v113.WorkflowExecutionState `protobuf:"varint,15,opt,name=workflow_state,json=workflowState,proto3,enum=temporal.server.api.enums.v1.WorkflowExecutionState" json:"workflow_state,omitempty"` WorkflowStatus v12.WorkflowExecutionStatus `protobuf:"varint,16,opt,name=workflow_status,json=workflowStatus,proto3,enum=temporal.api.enums.v1.WorkflowExecutionStatus" json:"workflow_status,omitempty"` LastFirstEventTxnId int64 `protobuf:"varint,17,opt,name=last_first_event_txn_id,json=lastFirstEventTxnId,proto3" json:"last_first_event_txn_id,omitempty"` FirstExecutionRunId string `protobuf:"bytes,18,opt,name=first_execution_run_id,json=firstExecutionRunId,proto3" json:"first_execution_run_id,omitempty"` @@ -867,7 +981,7 @@ type PollMutableStateResponse struct { func (x *PollMutableStateResponse) Reset() { *x = PollMutableStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[6] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -879,7 +993,7 @@ func (x *PollMutableStateResponse) String() string { func (*PollMutableStateResponse) ProtoMessage() {} func (x *PollMutableStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[6] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -892,7 +1006,7 @@ func (x *PollMutableStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PollMutableStateResponse.ProtoReflect.Descriptor instead. func (*PollMutableStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{6} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{8} } func (x *PollMutableStateResponse) GetExecution() *v14.WorkflowExecution { @@ -930,14 +1044,14 @@ func (x *PollMutableStateResponse) GetLastFirstEventId() int64 { return 0 } -func (x *PollMutableStateResponse) GetTaskQueue() *v111.TaskQueue { +func (x *PollMutableStateResponse) GetTaskQueue() *v112.TaskQueue { if x != nil { return x.TaskQueue } return nil } -func (x *PollMutableStateResponse) GetStickyTaskQueue() *v111.TaskQueue { +func (x *PollMutableStateResponse) GetStickyTaskQueue() *v112.TaskQueue { if x != nil { return x.StickyTaskQueue } @@ -958,18 +1072,18 @@ func (x *PollMutableStateResponse) GetCurrentBranchToken() []byte { return nil } -func (x *PollMutableStateResponse) GetVersionHistories() *v19.VersionHistories { +func (x *PollMutableStateResponse) GetVersionHistories() *v110.VersionHistories { if x != nil { return x.VersionHistories } return nil } -func (x *PollMutableStateResponse) GetWorkflowState() v112.WorkflowExecutionState { +func (x *PollMutableStateResponse) GetWorkflowState() v113.WorkflowExecutionState { if x != nil { return x.WorkflowState } - return v112.WorkflowExecutionState(0) + return v113.WorkflowExecutionState(0) } func (x *PollMutableStateResponse) GetWorkflowStatus() v12.WorkflowExecutionStatus { @@ -1003,7 +1117,7 @@ type ResetStickyTaskQueueRequest struct { func (x *ResetStickyTaskQueueRequest) Reset() { *x = ResetStickyTaskQueueRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[7] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1015,7 +1129,7 @@ func (x *ResetStickyTaskQueueRequest) String() string { func (*ResetStickyTaskQueueRequest) ProtoMessage() {} func (x *ResetStickyTaskQueueRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[7] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1028,7 +1142,7 @@ func (x *ResetStickyTaskQueueRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetStickyTaskQueueRequest.ProtoReflect.Descriptor instead. func (*ResetStickyTaskQueueRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{7} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{9} } func (x *ResetStickyTaskQueueRequest) GetNamespaceId() string { @@ -1053,7 +1167,7 @@ type ResetStickyTaskQueueResponse struct { func (x *ResetStickyTaskQueueResponse) Reset() { *x = ResetStickyTaskQueueResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[8] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1065,7 +1179,7 @@ func (x *ResetStickyTaskQueueResponse) String() string { func (*ResetStickyTaskQueueResponse) ProtoMessage() {} func (x *ResetStickyTaskQueueResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[8] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1078,7 +1192,7 @@ func (x *ResetStickyTaskQueueResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetStickyTaskQueueResponse.ProtoReflect.Descriptor instead. func (*ResetStickyTaskQueueResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{8} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{10} } type ExecuteMultiOperationRequest struct { @@ -1092,7 +1206,7 @@ type ExecuteMultiOperationRequest struct { func (x *ExecuteMultiOperationRequest) Reset() { *x = ExecuteMultiOperationRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[9] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1104,7 +1218,7 @@ func (x *ExecuteMultiOperationRequest) String() string { func (*ExecuteMultiOperationRequest) ProtoMessage() {} func (x *ExecuteMultiOperationRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[9] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1117,7 +1231,7 @@ func (x *ExecuteMultiOperationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecuteMultiOperationRequest.ProtoReflect.Descriptor instead. func (*ExecuteMultiOperationRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{9} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{11} } func (x *ExecuteMultiOperationRequest) GetNamespaceId() string { @@ -1150,7 +1264,7 @@ type ExecuteMultiOperationResponse struct { func (x *ExecuteMultiOperationResponse) Reset() { *x = ExecuteMultiOperationResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[10] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1162,7 +1276,7 @@ func (x *ExecuteMultiOperationResponse) String() string { func (*ExecuteMultiOperationResponse) ProtoMessage() {} func (x *ExecuteMultiOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[10] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1175,7 +1289,7 @@ func (x *ExecuteMultiOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ExecuteMultiOperationResponse.ProtoReflect.Descriptor instead. func (*ExecuteMultiOperationResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{10} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{12} } func (x *ExecuteMultiOperationResponse) GetResponses() []*ExecuteMultiOperationResponse_Response { @@ -1194,12 +1308,12 @@ type RecordWorkflowTaskStartedRequest struct { RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` PollRequest *v1.PollWorkflowTaskQueueRequest `protobuf:"bytes,6,opt,name=poll_request,json=pollRequest,proto3" json:"poll_request,omitempty"` Clock *v18.VectorClock `protobuf:"bytes,7,opt,name=clock,proto3" json:"clock,omitempty"` - BuildIdRedirectInfo *v113.BuildIdRedirectInfo `protobuf:"bytes,8,opt,name=build_id_redirect_info,json=buildIdRedirectInfo,proto3" json:"build_id_redirect_info,omitempty"` + BuildIdRedirectInfo *v114.BuildIdRedirectInfo `protobuf:"bytes,8,opt,name=build_id_redirect_info,json=buildIdRedirectInfo,proto3" json:"build_id_redirect_info,omitempty"` // The deployment passed by History when the task was scheduled. // Deprecated. use `version_directive.deployment`. ScheduledDeployment *v16.Deployment `protobuf:"bytes,9,opt,name=scheduled_deployment,json=scheduledDeployment,proto3" json:"scheduled_deployment,omitempty"` // Versioning directive that was sent by history when scheduling the task. - VersionDirective *v113.TaskVersionDirective `protobuf:"bytes,10,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` + VersionDirective *v114.TaskVersionDirective `protobuf:"bytes,10,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` // Stamp value from when the workflow task was scheduled. Used to validate the task is still relevant. Stamp int32 `protobuf:"varint,11,opt,name=stamp,proto3" json:"stamp,omitempty"` // Revision number that was sent by matching when the task was dispatched. Used to resolve eventual consistency issues @@ -1215,7 +1329,7 @@ type RecordWorkflowTaskStartedRequest struct { func (x *RecordWorkflowTaskStartedRequest) Reset() { *x = RecordWorkflowTaskStartedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[11] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1227,7 +1341,7 @@ func (x *RecordWorkflowTaskStartedRequest) String() string { func (*RecordWorkflowTaskStartedRequest) ProtoMessage() {} func (x *RecordWorkflowTaskStartedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[11] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1240,7 +1354,7 @@ func (x *RecordWorkflowTaskStartedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RecordWorkflowTaskStartedRequest.ProtoReflect.Descriptor instead. func (*RecordWorkflowTaskStartedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{11} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{13} } func (x *RecordWorkflowTaskStartedRequest) GetNamespaceId() string { @@ -1285,7 +1399,7 @@ func (x *RecordWorkflowTaskStartedRequest) GetClock() *v18.VectorClock { return nil } -func (x *RecordWorkflowTaskStartedRequest) GetBuildIdRedirectInfo() *v113.BuildIdRedirectInfo { +func (x *RecordWorkflowTaskStartedRequest) GetBuildIdRedirectInfo() *v114.BuildIdRedirectInfo { if x != nil { return x.BuildIdRedirectInfo } @@ -1299,7 +1413,7 @@ func (x *RecordWorkflowTaskStartedRequest) GetScheduledDeployment() *v16.Deploym return nil } -func (x *RecordWorkflowTaskStartedRequest) GetVersionDirective() *v113.TaskVersionDirective { +func (x *RecordWorkflowTaskStartedRequest) GetVersionDirective() *v114.TaskVersionDirective { if x != nil { return x.VersionDirective } @@ -1328,25 +1442,25 @@ func (x *RecordWorkflowTaskStartedRequest) GetTargetDeploymentVersion() *v16.Wor } type RecordWorkflowTaskStartedResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkflowType *v14.WorkflowType `protobuf:"bytes,1,opt,name=workflow_type,json=workflowType,proto3" json:"workflow_type,omitempty"` - PreviousStartedEventId int64 `protobuf:"varint,2,opt,name=previous_started_event_id,json=previousStartedEventId,proto3" json:"previous_started_event_id,omitempty"` - ScheduledEventId int64 `protobuf:"varint,3,opt,name=scheduled_event_id,json=scheduledEventId,proto3" json:"scheduled_event_id,omitempty"` - StartedEventId int64 `protobuf:"varint,4,opt,name=started_event_id,json=startedEventId,proto3" json:"started_event_id,omitempty"` - NextEventId int64 `protobuf:"varint,5,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` - Attempt int32 `protobuf:"varint,6,opt,name=attempt,proto3" json:"attempt,omitempty"` - StickyExecutionEnabled bool `protobuf:"varint,7,opt,name=sticky_execution_enabled,json=stickyExecutionEnabled,proto3" json:"sticky_execution_enabled,omitempty"` - TransientWorkflowTask *v19.TransientWorkflowTaskInfo `protobuf:"bytes,8,opt,name=transient_workflow_task,json=transientWorkflowTask,proto3" json:"transient_workflow_task,omitempty"` - WorkflowExecutionTaskQueue *v111.TaskQueue `protobuf:"bytes,9,opt,name=workflow_execution_task_queue,json=workflowExecutionTaskQueue,proto3" json:"workflow_execution_task_queue,omitempty"` - BranchToken []byte `protobuf:"bytes,11,opt,name=branch_token,json=branchToken,proto3" json:"branch_token,omitempty"` - ScheduledTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=scheduled_time,json=scheduledTime,proto3" json:"scheduled_time,omitempty"` - StartedTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=started_time,json=startedTime,proto3" json:"started_time,omitempty"` - Queries map[string]*v114.WorkflowQuery `protobuf:"bytes,14,rep,name=queries,proto3" json:"queries,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Clock *v18.VectorClock `protobuf:"bytes,15,opt,name=clock,proto3" json:"clock,omitempty"` - Messages []*v115.Message `protobuf:"bytes,16,rep,name=messages,proto3" json:"messages,omitempty"` - Version int64 `protobuf:"varint,17,opt,name=version,proto3" json:"version,omitempty"` - History *v17.History `protobuf:"bytes,18,opt,name=history,proto3" json:"history,omitempty"` - NextPageToken []byte `protobuf:"bytes,19,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + WorkflowType *v14.WorkflowType `protobuf:"bytes,1,opt,name=workflow_type,json=workflowType,proto3" json:"workflow_type,omitempty"` + PreviousStartedEventId int64 `protobuf:"varint,2,opt,name=previous_started_event_id,json=previousStartedEventId,proto3" json:"previous_started_event_id,omitempty"` + ScheduledEventId int64 `protobuf:"varint,3,opt,name=scheduled_event_id,json=scheduledEventId,proto3" json:"scheduled_event_id,omitempty"` + StartedEventId int64 `protobuf:"varint,4,opt,name=started_event_id,json=startedEventId,proto3" json:"started_event_id,omitempty"` + NextEventId int64 `protobuf:"varint,5,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` + Attempt int32 `protobuf:"varint,6,opt,name=attempt,proto3" json:"attempt,omitempty"` + StickyExecutionEnabled bool `protobuf:"varint,7,opt,name=sticky_execution_enabled,json=stickyExecutionEnabled,proto3" json:"sticky_execution_enabled,omitempty"` + TransientWorkflowTask *v110.TransientWorkflowTaskInfo `protobuf:"bytes,8,opt,name=transient_workflow_task,json=transientWorkflowTask,proto3" json:"transient_workflow_task,omitempty"` + WorkflowExecutionTaskQueue *v112.TaskQueue `protobuf:"bytes,9,opt,name=workflow_execution_task_queue,json=workflowExecutionTaskQueue,proto3" json:"workflow_execution_task_queue,omitempty"` + BranchToken []byte `protobuf:"bytes,11,opt,name=branch_token,json=branchToken,proto3" json:"branch_token,omitempty"` + ScheduledTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=scheduled_time,json=scheduledTime,proto3" json:"scheduled_time,omitempty"` + StartedTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=started_time,json=startedTime,proto3" json:"started_time,omitempty"` + Queries map[string]*v115.WorkflowQuery `protobuf:"bytes,14,rep,name=queries,proto3" json:"queries,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Clock *v18.VectorClock `protobuf:"bytes,15,opt,name=clock,proto3" json:"clock,omitempty"` + Messages []*v116.Message `protobuf:"bytes,16,rep,name=messages,proto3" json:"messages,omitempty"` + Version int64 `protobuf:"varint,17,opt,name=version,proto3" json:"version,omitempty"` + History *v17.History `protobuf:"bytes,18,opt,name=history,proto3" json:"history,omitempty"` + NextPageToken []byte `protobuf:"bytes,19,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Deprecated: This field is being replaced by raw_history_bytes which sends raw bytes // instead of a proto-decoded History. This avoids matching service having to decode history. // TODO: PRATHYUSH @@ -1364,13 +1478,17 @@ type RecordWorkflowTaskStartedResponse struct { // Deprecated: Marked as deprecated in temporal/server/api/historyservice/v1/request_response.proto. RawHistory *v17.History `protobuf:"bytes,20,opt,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` RawHistoryBytes [][]byte `protobuf:"bytes,21,rep,name=raw_history_bytes,json=rawHistoryBytes,proto3" json:"raw_history_bytes,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + StreamSlices []*v19.StreamSlice `protobuf:"bytes,22,rep,name=stream_slices,json=streamSlices,proto3" json:"stream_slices,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RecordWorkflowTaskStartedResponse) Reset() { *x = RecordWorkflowTaskStartedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[12] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1382,7 +1500,7 @@ func (x *RecordWorkflowTaskStartedResponse) String() string { func (*RecordWorkflowTaskStartedResponse) ProtoMessage() {} func (x *RecordWorkflowTaskStartedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[12] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1395,7 +1513,7 @@ func (x *RecordWorkflowTaskStartedResponse) ProtoReflect() protoreflect.Message // Deprecated: Use RecordWorkflowTaskStartedResponse.ProtoReflect.Descriptor instead. func (*RecordWorkflowTaskStartedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{12} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{14} } func (x *RecordWorkflowTaskStartedResponse) GetWorkflowType() *v14.WorkflowType { @@ -1447,14 +1565,14 @@ func (x *RecordWorkflowTaskStartedResponse) GetStickyExecutionEnabled() bool { return false } -func (x *RecordWorkflowTaskStartedResponse) GetTransientWorkflowTask() *v19.TransientWorkflowTaskInfo { +func (x *RecordWorkflowTaskStartedResponse) GetTransientWorkflowTask() *v110.TransientWorkflowTaskInfo { if x != nil { return x.TransientWorkflowTask } return nil } -func (x *RecordWorkflowTaskStartedResponse) GetWorkflowExecutionTaskQueue() *v111.TaskQueue { +func (x *RecordWorkflowTaskStartedResponse) GetWorkflowExecutionTaskQueue() *v112.TaskQueue { if x != nil { return x.WorkflowExecutionTaskQueue } @@ -1482,7 +1600,7 @@ func (x *RecordWorkflowTaskStartedResponse) GetStartedTime() *timestamppb.Timest return nil } -func (x *RecordWorkflowTaskStartedResponse) GetQueries() map[string]*v114.WorkflowQuery { +func (x *RecordWorkflowTaskStartedResponse) GetQueries() map[string]*v115.WorkflowQuery { if x != nil { return x.Queries } @@ -1496,7 +1614,7 @@ func (x *RecordWorkflowTaskStartedResponse) GetClock() *v18.VectorClock { return nil } -func (x *RecordWorkflowTaskStartedResponse) GetMessages() []*v115.Message { +func (x *RecordWorkflowTaskStartedResponse) GetMessages() []*v116.Message { if x != nil { return x.Messages } @@ -1539,6 +1657,13 @@ func (x *RecordWorkflowTaskStartedResponse) GetRawHistoryBytes() [][]byte { return nil } +func (x *RecordWorkflowTaskStartedResponse) GetStreamSlices() []*v19.StreamSlice { + if x != nil { + return x.StreamSlices + } + return nil +} + // RecordWorkflowTaskStartedResponseWithRawHistory is wire-compatible with RecordWorkflowTaskStartedResponse. // // WIRE COMPATIBILITY PATTERN: @@ -1558,38 +1683,42 @@ func (x *RecordWorkflowTaskStartedResponse) GetRawHistoryBytes() [][]byte { // IMPORTANT: Field numbers and all other fields must remain identical between these two messages. // Any change to RecordWorkflowTaskStartedResponse must be mirrored here. type RecordWorkflowTaskStartedResponseWithRawHistory struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkflowType *v14.WorkflowType `protobuf:"bytes,1,opt,name=workflow_type,json=workflowType,proto3" json:"workflow_type,omitempty"` - PreviousStartedEventId int64 `protobuf:"varint,2,opt,name=previous_started_event_id,json=previousStartedEventId,proto3" json:"previous_started_event_id,omitempty"` - ScheduledEventId int64 `protobuf:"varint,3,opt,name=scheduled_event_id,json=scheduledEventId,proto3" json:"scheduled_event_id,omitempty"` - StartedEventId int64 `protobuf:"varint,4,opt,name=started_event_id,json=startedEventId,proto3" json:"started_event_id,omitempty"` - NextEventId int64 `protobuf:"varint,5,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` - Attempt int32 `protobuf:"varint,6,opt,name=attempt,proto3" json:"attempt,omitempty"` - StickyExecutionEnabled bool `protobuf:"varint,7,opt,name=sticky_execution_enabled,json=stickyExecutionEnabled,proto3" json:"sticky_execution_enabled,omitempty"` - TransientWorkflowTask *v19.TransientWorkflowTaskInfo `protobuf:"bytes,8,opt,name=transient_workflow_task,json=transientWorkflowTask,proto3" json:"transient_workflow_task,omitempty"` - WorkflowExecutionTaskQueue *v111.TaskQueue `protobuf:"bytes,9,opt,name=workflow_execution_task_queue,json=workflowExecutionTaskQueue,proto3" json:"workflow_execution_task_queue,omitempty"` - BranchToken []byte `protobuf:"bytes,11,opt,name=branch_token,json=branchToken,proto3" json:"branch_token,omitempty"` - ScheduledTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=scheduled_time,json=scheduledTime,proto3" json:"scheduled_time,omitempty"` - StartedTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=started_time,json=startedTime,proto3" json:"started_time,omitempty"` - Queries map[string]*v114.WorkflowQuery `protobuf:"bytes,14,rep,name=queries,proto3" json:"queries,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - Clock *v18.VectorClock `protobuf:"bytes,15,opt,name=clock,proto3" json:"clock,omitempty"` - Messages []*v115.Message `protobuf:"bytes,16,rep,name=messages,proto3" json:"messages,omitempty"` - Version int64 `protobuf:"varint,17,opt,name=version,proto3" json:"version,omitempty"` - History *v17.History `protobuf:"bytes,18,opt,name=history,proto3" json:"history,omitempty"` - NextPageToken []byte `protobuf:"bytes,19,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + WorkflowType *v14.WorkflowType `protobuf:"bytes,1,opt,name=workflow_type,json=workflowType,proto3" json:"workflow_type,omitempty"` + PreviousStartedEventId int64 `protobuf:"varint,2,opt,name=previous_started_event_id,json=previousStartedEventId,proto3" json:"previous_started_event_id,omitempty"` + ScheduledEventId int64 `protobuf:"varint,3,opt,name=scheduled_event_id,json=scheduledEventId,proto3" json:"scheduled_event_id,omitempty"` + StartedEventId int64 `protobuf:"varint,4,opt,name=started_event_id,json=startedEventId,proto3" json:"started_event_id,omitempty"` + NextEventId int64 `protobuf:"varint,5,opt,name=next_event_id,json=nextEventId,proto3" json:"next_event_id,omitempty"` + Attempt int32 `protobuf:"varint,6,opt,name=attempt,proto3" json:"attempt,omitempty"` + StickyExecutionEnabled bool `protobuf:"varint,7,opt,name=sticky_execution_enabled,json=stickyExecutionEnabled,proto3" json:"sticky_execution_enabled,omitempty"` + TransientWorkflowTask *v110.TransientWorkflowTaskInfo `protobuf:"bytes,8,opt,name=transient_workflow_task,json=transientWorkflowTask,proto3" json:"transient_workflow_task,omitempty"` + WorkflowExecutionTaskQueue *v112.TaskQueue `protobuf:"bytes,9,opt,name=workflow_execution_task_queue,json=workflowExecutionTaskQueue,proto3" json:"workflow_execution_task_queue,omitempty"` + BranchToken []byte `protobuf:"bytes,11,opt,name=branch_token,json=branchToken,proto3" json:"branch_token,omitempty"` + ScheduledTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=scheduled_time,json=scheduledTime,proto3" json:"scheduled_time,omitempty"` + StartedTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=started_time,json=startedTime,proto3" json:"started_time,omitempty"` + Queries map[string]*v115.WorkflowQuery `protobuf:"bytes,14,rep,name=queries,proto3" json:"queries,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Clock *v18.VectorClock `protobuf:"bytes,15,opt,name=clock,proto3" json:"clock,omitempty"` + Messages []*v116.Message `protobuf:"bytes,16,rep,name=messages,proto3" json:"messages,omitempty"` + Version int64 `protobuf:"varint,17,opt,name=version,proto3" json:"version,omitempty"` + History *v17.History `protobuf:"bytes,18,opt,name=history,proto3" json:"history,omitempty"` + NextPageToken []byte `protobuf:"bytes,19,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // Deprecated: This field is being replaced by raw_history_bytes which sends raw bytes // instead of a proto-decoded History. This avoids matching service having to decode history. // // Deprecated: Marked as deprecated in temporal/server/api/historyservice/v1/request_response.proto. RawHistory [][]byte `protobuf:"bytes,20,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` RawHistoryBytes [][]byte `protobuf:"bytes,21,rep,name=raw_history_bytes,json=rawHistoryBytes,proto3" json:"raw_history_bytes,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + StreamSlices []*v19.StreamSlice `protobuf:"bytes,22,rep,name=stream_slices,json=streamSlices,proto3" json:"stream_slices,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RecordWorkflowTaskStartedResponseWithRawHistory) Reset() { *x = RecordWorkflowTaskStartedResponseWithRawHistory{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[13] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1601,7 +1730,7 @@ func (x *RecordWorkflowTaskStartedResponseWithRawHistory) String() string { func (*RecordWorkflowTaskStartedResponseWithRawHistory) ProtoMessage() {} func (x *RecordWorkflowTaskStartedResponseWithRawHistory) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[13] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1614,7 +1743,7 @@ func (x *RecordWorkflowTaskStartedResponseWithRawHistory) ProtoReflect() protore // Deprecated: Use RecordWorkflowTaskStartedResponseWithRawHistory.ProtoReflect.Descriptor instead. func (*RecordWorkflowTaskStartedResponseWithRawHistory) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{13} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{15} } func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetWorkflowType() *v14.WorkflowType { @@ -1666,14 +1795,14 @@ func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetStickyExecutionEnab return false } -func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetTransientWorkflowTask() *v19.TransientWorkflowTaskInfo { +func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetTransientWorkflowTask() *v110.TransientWorkflowTaskInfo { if x != nil { return x.TransientWorkflowTask } return nil } -func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetWorkflowExecutionTaskQueue() *v111.TaskQueue { +func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetWorkflowExecutionTaskQueue() *v112.TaskQueue { if x != nil { return x.WorkflowExecutionTaskQueue } @@ -1701,7 +1830,7 @@ func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetStartedTime() *time return nil } -func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetQueries() map[string]*v114.WorkflowQuery { +func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetQueries() map[string]*v115.WorkflowQuery { if x != nil { return x.Queries } @@ -1715,7 +1844,7 @@ func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetClock() *v18.Vector return nil } -func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetMessages() []*v115.Message { +func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetMessages() []*v116.Message { if x != nil { return x.Messages } @@ -1758,6 +1887,13 @@ func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetRawHistoryBytes() [ return nil } +func (x *RecordWorkflowTaskStartedResponseWithRawHistory) GetStreamSlices() []*v19.StreamSlice { + if x != nil { + return x.StreamSlices + } + return nil +} + type RecordActivityTaskStartedRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` @@ -1767,14 +1903,14 @@ type RecordActivityTaskStartedRequest struct { RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` PollRequest *v1.PollActivityTaskQueueRequest `protobuf:"bytes,6,opt,name=poll_request,json=pollRequest,proto3" json:"poll_request,omitempty"` Clock *v18.VectorClock `protobuf:"bytes,7,opt,name=clock,proto3" json:"clock,omitempty"` - BuildIdRedirectInfo *v113.BuildIdRedirectInfo `protobuf:"bytes,8,opt,name=build_id_redirect_info,json=buildIdRedirectInfo,proto3" json:"build_id_redirect_info,omitempty"` + BuildIdRedirectInfo *v114.BuildIdRedirectInfo `protobuf:"bytes,8,opt,name=build_id_redirect_info,json=buildIdRedirectInfo,proto3" json:"build_id_redirect_info,omitempty"` // Stamp represents the internal “version” of the activity options and can/will be changed with Activity API. Stamp int32 `protobuf:"varint,9,opt,name=stamp,proto3" json:"stamp,omitempty"` // The deployment passed by History when the task was scheduled. // Deprecated. use `version_directive.deployment`. ScheduledDeployment *v16.Deployment `protobuf:"bytes,10,opt,name=scheduled_deployment,json=scheduledDeployment,proto3" json:"scheduled_deployment,omitempty"` // Versioning directive that was sent by history when scheduling the task. - VersionDirective *v113.TaskVersionDirective `protobuf:"bytes,12,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` + VersionDirective *v114.TaskVersionDirective `protobuf:"bytes,12,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` // Revision number that was sent by matching when the task was dispatched. Used to resolve eventual consistency issues // that may arise due to stale routing configs in task queue partitions. TaskDispatchRevisionNumber int64 `protobuf:"varint,13,opt,name=task_dispatch_revision_number,json=taskDispatchRevisionNumber,proto3" json:"task_dispatch_revision_number,omitempty"` @@ -1788,7 +1924,7 @@ type RecordActivityTaskStartedRequest struct { func (x *RecordActivityTaskStartedRequest) Reset() { *x = RecordActivityTaskStartedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[14] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1800,7 +1936,7 @@ func (x *RecordActivityTaskStartedRequest) String() string { func (*RecordActivityTaskStartedRequest) ProtoMessage() {} func (x *RecordActivityTaskStartedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[14] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1813,7 +1949,7 @@ func (x *RecordActivityTaskStartedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RecordActivityTaskStartedRequest.ProtoReflect.Descriptor instead. func (*RecordActivityTaskStartedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{14} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{16} } func (x *RecordActivityTaskStartedRequest) GetNamespaceId() string { @@ -1858,7 +1994,7 @@ func (x *RecordActivityTaskStartedRequest) GetClock() *v18.VectorClock { return nil } -func (x *RecordActivityTaskStartedRequest) GetBuildIdRedirectInfo() *v113.BuildIdRedirectInfo { +func (x *RecordActivityTaskStartedRequest) GetBuildIdRedirectInfo() *v114.BuildIdRedirectInfo { if x != nil { return x.BuildIdRedirectInfo } @@ -1879,7 +2015,7 @@ func (x *RecordActivityTaskStartedRequest) GetScheduledDeployment() *v16.Deploym return nil } -func (x *RecordActivityTaskStartedRequest) GetVersionDirective() *v113.TaskVersionDirective { +func (x *RecordActivityTaskStartedRequest) GetVersionDirective() *v114.TaskVersionDirective { if x != nil { return x.VersionDirective } @@ -1922,7 +2058,7 @@ type RecordActivityTaskStartedResponse struct { func (x *RecordActivityTaskStartedResponse) Reset() { *x = RecordActivityTaskStartedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[15] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1934,7 +2070,7 @@ func (x *RecordActivityTaskStartedResponse) String() string { func (*RecordActivityTaskStartedResponse) ProtoMessage() {} func (x *RecordActivityTaskStartedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[15] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1947,7 +2083,7 @@ func (x *RecordActivityTaskStartedResponse) ProtoReflect() protoreflect.Message // Deprecated: Use RecordActivityTaskStartedResponse.ProtoReflect.Descriptor instead. func (*RecordActivityTaskStartedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{15} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{17} } func (x *RecordActivityTaskStartedResponse) GetScheduledEvent() *v17.HistoryEvent { @@ -2051,7 +2187,7 @@ type RespondWorkflowTaskCompletedRequest struct { func (x *RespondWorkflowTaskCompletedRequest) Reset() { *x = RespondWorkflowTaskCompletedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[16] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2063,7 +2199,7 @@ func (x *RespondWorkflowTaskCompletedRequest) String() string { func (*RespondWorkflowTaskCompletedRequest) ProtoMessage() {} func (x *RespondWorkflowTaskCompletedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[16] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2076,7 +2212,7 @@ func (x *RespondWorkflowTaskCompletedRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use RespondWorkflowTaskCompletedRequest.ProtoReflect.Descriptor instead. func (*RespondWorkflowTaskCompletedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{16} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{18} } func (x *RespondWorkflowTaskCompletedRequest) GetNamespaceId() string { @@ -2106,7 +2242,7 @@ type RespondWorkflowTaskCompletedResponse struct { func (x *RespondWorkflowTaskCompletedResponse) Reset() { *x = RespondWorkflowTaskCompletedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[17] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2118,7 +2254,7 @@ func (x *RespondWorkflowTaskCompletedResponse) String() string { func (*RespondWorkflowTaskCompletedResponse) ProtoMessage() {} func (x *RespondWorkflowTaskCompletedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[17] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2131,7 +2267,7 @@ func (x *RespondWorkflowTaskCompletedResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use RespondWorkflowTaskCompletedResponse.ProtoReflect.Descriptor instead. func (*RespondWorkflowTaskCompletedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{17} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{19} } // Deprecated: Marked as deprecated in temporal/server/api/historyservice/v1/request_response.proto. @@ -2173,7 +2309,7 @@ type RespondWorkflowTaskFailedRequest struct { func (x *RespondWorkflowTaskFailedRequest) Reset() { *x = RespondWorkflowTaskFailedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[18] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2185,7 +2321,7 @@ func (x *RespondWorkflowTaskFailedRequest) String() string { func (*RespondWorkflowTaskFailedRequest) ProtoMessage() {} func (x *RespondWorkflowTaskFailedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[18] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2198,7 +2334,7 @@ func (x *RespondWorkflowTaskFailedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RespondWorkflowTaskFailedRequest.ProtoReflect.Descriptor instead. func (*RespondWorkflowTaskFailedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{18} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{20} } func (x *RespondWorkflowTaskFailedRequest) GetNamespaceId() string { @@ -2223,7 +2359,7 @@ type RespondWorkflowTaskFailedResponse struct { func (x *RespondWorkflowTaskFailedResponse) Reset() { *x = RespondWorkflowTaskFailedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[19] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2235,7 +2371,7 @@ func (x *RespondWorkflowTaskFailedResponse) String() string { func (*RespondWorkflowTaskFailedResponse) ProtoMessage() {} func (x *RespondWorkflowTaskFailedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[19] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2248,7 +2384,7 @@ func (x *RespondWorkflowTaskFailedResponse) ProtoReflect() protoreflect.Message // Deprecated: Use RespondWorkflowTaskFailedResponse.ProtoReflect.Descriptor instead. func (*RespondWorkflowTaskFailedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{19} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{21} } type IsWorkflowTaskValidRequest struct { @@ -2264,7 +2400,7 @@ type IsWorkflowTaskValidRequest struct { func (x *IsWorkflowTaskValidRequest) Reset() { *x = IsWorkflowTaskValidRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[20] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2276,7 +2412,7 @@ func (x *IsWorkflowTaskValidRequest) String() string { func (*IsWorkflowTaskValidRequest) ProtoMessage() {} func (x *IsWorkflowTaskValidRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[20] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2289,7 +2425,7 @@ func (x *IsWorkflowTaskValidRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsWorkflowTaskValidRequest.ProtoReflect.Descriptor instead. func (*IsWorkflowTaskValidRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{20} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{22} } func (x *IsWorkflowTaskValidRequest) GetNamespaceId() string { @@ -2337,7 +2473,7 @@ type IsWorkflowTaskValidResponse struct { func (x *IsWorkflowTaskValidResponse) Reset() { *x = IsWorkflowTaskValidResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[21] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2349,7 +2485,7 @@ func (x *IsWorkflowTaskValidResponse) String() string { func (*IsWorkflowTaskValidResponse) ProtoMessage() {} func (x *IsWorkflowTaskValidResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[21] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2362,7 +2498,7 @@ func (x *IsWorkflowTaskValidResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IsWorkflowTaskValidResponse.ProtoReflect.Descriptor instead. func (*IsWorkflowTaskValidResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{21} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{23} } func (x *IsWorkflowTaskValidResponse) GetIsValid() bool { @@ -2382,7 +2518,7 @@ type RecordActivityTaskHeartbeatRequest struct { func (x *RecordActivityTaskHeartbeatRequest) Reset() { *x = RecordActivityTaskHeartbeatRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[22] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2394,7 +2530,7 @@ func (x *RecordActivityTaskHeartbeatRequest) String() string { func (*RecordActivityTaskHeartbeatRequest) ProtoMessage() {} func (x *RecordActivityTaskHeartbeatRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[22] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2407,7 +2543,7 @@ func (x *RecordActivityTaskHeartbeatRequest) ProtoReflect() protoreflect.Message // Deprecated: Use RecordActivityTaskHeartbeatRequest.ProtoReflect.Descriptor instead. func (*RecordActivityTaskHeartbeatRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{22} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{24} } func (x *RecordActivityTaskHeartbeatRequest) GetNamespaceId() string { @@ -2435,7 +2571,7 @@ type RecordActivityTaskHeartbeatResponse struct { func (x *RecordActivityTaskHeartbeatResponse) Reset() { *x = RecordActivityTaskHeartbeatResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[23] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2447,7 +2583,7 @@ func (x *RecordActivityTaskHeartbeatResponse) String() string { func (*RecordActivityTaskHeartbeatResponse) ProtoMessage() {} func (x *RecordActivityTaskHeartbeatResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[23] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2460,7 +2596,7 @@ func (x *RecordActivityTaskHeartbeatResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use RecordActivityTaskHeartbeatResponse.ProtoReflect.Descriptor instead. func (*RecordActivityTaskHeartbeatResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{23} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{25} } func (x *RecordActivityTaskHeartbeatResponse) GetCancelRequested() bool { @@ -2494,7 +2630,7 @@ type RespondActivityTaskCompletedRequest struct { func (x *RespondActivityTaskCompletedRequest) Reset() { *x = RespondActivityTaskCompletedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[24] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2506,7 +2642,7 @@ func (x *RespondActivityTaskCompletedRequest) String() string { func (*RespondActivityTaskCompletedRequest) ProtoMessage() {} func (x *RespondActivityTaskCompletedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[24] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2519,7 +2655,7 @@ func (x *RespondActivityTaskCompletedRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use RespondActivityTaskCompletedRequest.ProtoReflect.Descriptor instead. func (*RespondActivityTaskCompletedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{24} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{26} } func (x *RespondActivityTaskCompletedRequest) GetNamespaceId() string { @@ -2544,7 +2680,7 @@ type RespondActivityTaskCompletedResponse struct { func (x *RespondActivityTaskCompletedResponse) Reset() { *x = RespondActivityTaskCompletedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[25] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2556,7 +2692,7 @@ func (x *RespondActivityTaskCompletedResponse) String() string { func (*RespondActivityTaskCompletedResponse) ProtoMessage() {} func (x *RespondActivityTaskCompletedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[25] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2569,7 +2705,7 @@ func (x *RespondActivityTaskCompletedResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use RespondActivityTaskCompletedResponse.ProtoReflect.Descriptor instead. func (*RespondActivityTaskCompletedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{25} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{27} } type RespondActivityTaskFailedRequest struct { @@ -2582,7 +2718,7 @@ type RespondActivityTaskFailedRequest struct { func (x *RespondActivityTaskFailedRequest) Reset() { *x = RespondActivityTaskFailedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[26] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2594,7 +2730,7 @@ func (x *RespondActivityTaskFailedRequest) String() string { func (*RespondActivityTaskFailedRequest) ProtoMessage() {} func (x *RespondActivityTaskFailedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[26] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2607,7 +2743,7 @@ func (x *RespondActivityTaskFailedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RespondActivityTaskFailedRequest.ProtoReflect.Descriptor instead. func (*RespondActivityTaskFailedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{26} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{28} } func (x *RespondActivityTaskFailedRequest) GetNamespaceId() string { @@ -2632,7 +2768,7 @@ type RespondActivityTaskFailedResponse struct { func (x *RespondActivityTaskFailedResponse) Reset() { *x = RespondActivityTaskFailedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[27] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2644,7 +2780,7 @@ func (x *RespondActivityTaskFailedResponse) String() string { func (*RespondActivityTaskFailedResponse) ProtoMessage() {} func (x *RespondActivityTaskFailedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[27] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2657,7 +2793,7 @@ func (x *RespondActivityTaskFailedResponse) ProtoReflect() protoreflect.Message // Deprecated: Use RespondActivityTaskFailedResponse.ProtoReflect.Descriptor instead. func (*RespondActivityTaskFailedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{27} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{29} } type RespondActivityTaskCanceledRequest struct { @@ -2670,7 +2806,7 @@ type RespondActivityTaskCanceledRequest struct { func (x *RespondActivityTaskCanceledRequest) Reset() { *x = RespondActivityTaskCanceledRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[28] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2682,7 +2818,7 @@ func (x *RespondActivityTaskCanceledRequest) String() string { func (*RespondActivityTaskCanceledRequest) ProtoMessage() {} func (x *RespondActivityTaskCanceledRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[28] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2695,7 +2831,7 @@ func (x *RespondActivityTaskCanceledRequest) ProtoReflect() protoreflect.Message // Deprecated: Use RespondActivityTaskCanceledRequest.ProtoReflect.Descriptor instead. func (*RespondActivityTaskCanceledRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{28} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{30} } func (x *RespondActivityTaskCanceledRequest) GetNamespaceId() string { @@ -2720,7 +2856,7 @@ type RespondActivityTaskCanceledResponse struct { func (x *RespondActivityTaskCanceledResponse) Reset() { *x = RespondActivityTaskCanceledResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[29] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2732,7 +2868,7 @@ func (x *RespondActivityTaskCanceledResponse) String() string { func (*RespondActivityTaskCanceledResponse) ProtoMessage() {} func (x *RespondActivityTaskCanceledResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[29] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2745,7 +2881,7 @@ func (x *RespondActivityTaskCanceledResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use RespondActivityTaskCanceledResponse.ProtoReflect.Descriptor instead. func (*RespondActivityTaskCanceledResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{29} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{31} } type IsActivityTaskValidRequest struct { @@ -2765,7 +2901,7 @@ type IsActivityTaskValidRequest struct { func (x *IsActivityTaskValidRequest) Reset() { *x = IsActivityTaskValidRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[30] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2777,7 +2913,7 @@ func (x *IsActivityTaskValidRequest) String() string { func (*IsActivityTaskValidRequest) ProtoMessage() {} func (x *IsActivityTaskValidRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[30] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2790,7 +2926,7 @@ func (x *IsActivityTaskValidRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsActivityTaskValidRequest.ProtoReflect.Descriptor instead. func (*IsActivityTaskValidRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{30} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{32} } func (x *IsActivityTaskValidRequest) GetNamespaceId() string { @@ -2845,7 +2981,7 @@ type IsActivityTaskValidResponse struct { func (x *IsActivityTaskValidResponse) Reset() { *x = IsActivityTaskValidResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[31] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2857,7 +2993,7 @@ func (x *IsActivityTaskValidResponse) String() string { func (*IsActivityTaskValidResponse) ProtoMessage() {} func (x *IsActivityTaskValidResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[31] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2870,7 +3006,7 @@ func (x *IsActivityTaskValidResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IsActivityTaskValidResponse.ProtoReflect.Descriptor instead. func (*IsActivityTaskValidResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{31} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{33} } func (x *IsActivityTaskValidResponse) GetIsValid() bool { @@ -2892,7 +3028,7 @@ type SignalWorkflowExecutionRequest struct { func (x *SignalWorkflowExecutionRequest) Reset() { *x = SignalWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[32] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2904,7 +3040,7 @@ func (x *SignalWorkflowExecutionRequest) String() string { func (*SignalWorkflowExecutionRequest) ProtoMessage() {} func (x *SignalWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[32] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2917,7 +3053,7 @@ func (x *SignalWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SignalWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*SignalWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{32} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{34} } func (x *SignalWorkflowExecutionRequest) GetNamespaceId() string { @@ -2957,7 +3093,7 @@ type SignalWorkflowExecutionResponse struct { func (x *SignalWorkflowExecutionResponse) Reset() { *x = SignalWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[33] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2969,7 +3105,7 @@ func (x *SignalWorkflowExecutionResponse) String() string { func (*SignalWorkflowExecutionResponse) ProtoMessage() {} func (x *SignalWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[33] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2982,7 +3118,7 @@ func (x *SignalWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SignalWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*SignalWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{33} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{35} } func (x *SignalWorkflowExecutionResponse) GetLink() *v14.Link { @@ -3004,7 +3140,7 @@ type SignalWithStartWorkflowExecutionRequest struct { func (x *SignalWithStartWorkflowExecutionRequest) Reset() { *x = SignalWithStartWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[34] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3016,7 +3152,7 @@ func (x *SignalWithStartWorkflowExecutionRequest) String() string { func (*SignalWithStartWorkflowExecutionRequest) ProtoMessage() {} func (x *SignalWithStartWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[34] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3029,7 +3165,7 @@ func (x *SignalWithStartWorkflowExecutionRequest) ProtoReflect() protoreflect.Me // Deprecated: Use SignalWithStartWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*SignalWithStartWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{34} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{36} } func (x *SignalWithStartWorkflowExecutionRequest) GetNamespaceId() string { @@ -3061,7 +3197,7 @@ type SignalWithStartWorkflowExecutionResponse struct { func (x *SignalWithStartWorkflowExecutionResponse) Reset() { *x = SignalWithStartWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[35] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3073,7 +3209,7 @@ func (x *SignalWithStartWorkflowExecutionResponse) String() string { func (*SignalWithStartWorkflowExecutionResponse) ProtoMessage() {} func (x *SignalWithStartWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[35] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3086,7 +3222,7 @@ func (x *SignalWithStartWorkflowExecutionResponse) ProtoReflect() protoreflect.M // Deprecated: Use SignalWithStartWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*SignalWithStartWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{35} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{37} } func (x *SignalWithStartWorkflowExecutionResponse) GetRunId() string { @@ -3128,7 +3264,7 @@ type RemoveSignalMutableStateRequest struct { func (x *RemoveSignalMutableStateRequest) Reset() { *x = RemoveSignalMutableStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[36] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3140,7 +3276,7 @@ func (x *RemoveSignalMutableStateRequest) String() string { func (*RemoveSignalMutableStateRequest) ProtoMessage() {} func (x *RemoveSignalMutableStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[36] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3153,7 +3289,7 @@ func (x *RemoveSignalMutableStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveSignalMutableStateRequest.ProtoReflect.Descriptor instead. func (*RemoveSignalMutableStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{36} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{38} } func (x *RemoveSignalMutableStateRequest) GetNamespaceId() string { @@ -3185,7 +3321,7 @@ type RemoveSignalMutableStateResponse struct { func (x *RemoveSignalMutableStateResponse) Reset() { *x = RemoveSignalMutableStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[37] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3197,7 +3333,7 @@ func (x *RemoveSignalMutableStateResponse) String() string { func (*RemoveSignalMutableStateResponse) ProtoMessage() {} func (x *RemoveSignalMutableStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[37] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3210,7 +3346,7 @@ func (x *RemoveSignalMutableStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveSignalMutableStateResponse.ProtoReflect.Descriptor instead. func (*RemoveSignalMutableStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{37} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{39} } type TerminateWorkflowExecutionRequest struct { @@ -3225,7 +3361,7 @@ type TerminateWorkflowExecutionRequest struct { func (x *TerminateWorkflowExecutionRequest) Reset() { *x = TerminateWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[38] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3237,7 +3373,7 @@ func (x *TerminateWorkflowExecutionRequest) String() string { func (*TerminateWorkflowExecutionRequest) ProtoMessage() {} func (x *TerminateWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[38] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3250,7 +3386,7 @@ func (x *TerminateWorkflowExecutionRequest) ProtoReflect() protoreflect.Message // Deprecated: Use TerminateWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*TerminateWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{38} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{40} } func (x *TerminateWorkflowExecutionRequest) GetNamespaceId() string { @@ -3289,7 +3425,7 @@ type TerminateWorkflowExecutionResponse struct { func (x *TerminateWorkflowExecutionResponse) Reset() { *x = TerminateWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[39] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3301,7 +3437,7 @@ func (x *TerminateWorkflowExecutionResponse) String() string { func (*TerminateWorkflowExecutionResponse) ProtoMessage() {} func (x *TerminateWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[39] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3314,7 +3450,7 @@ func (x *TerminateWorkflowExecutionResponse) ProtoReflect() protoreflect.Message // Deprecated: Use TerminateWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*TerminateWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{39} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{41} } type DeleteWorkflowExecutionRequest struct { @@ -3328,7 +3464,7 @@ type DeleteWorkflowExecutionRequest struct { func (x *DeleteWorkflowExecutionRequest) Reset() { *x = DeleteWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[40] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3340,7 +3476,7 @@ func (x *DeleteWorkflowExecutionRequest) String() string { func (*DeleteWorkflowExecutionRequest) ProtoMessage() {} func (x *DeleteWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[40] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3353,7 +3489,7 @@ func (x *DeleteWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*DeleteWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{40} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{42} } func (x *DeleteWorkflowExecutionRequest) GetNamespaceId() string { @@ -3385,7 +3521,7 @@ type DeleteWorkflowExecutionResponse struct { func (x *DeleteWorkflowExecutionResponse) Reset() { *x = DeleteWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[41] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3397,7 +3533,7 @@ func (x *DeleteWorkflowExecutionResponse) String() string { func (*DeleteWorkflowExecutionResponse) ProtoMessage() {} func (x *DeleteWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[41] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3410,7 +3546,7 @@ func (x *DeleteWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*DeleteWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{41} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{43} } type ResetWorkflowExecutionRequest struct { @@ -3423,7 +3559,7 @@ type ResetWorkflowExecutionRequest struct { func (x *ResetWorkflowExecutionRequest) Reset() { *x = ResetWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[42] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3435,7 +3571,7 @@ func (x *ResetWorkflowExecutionRequest) String() string { func (*ResetWorkflowExecutionRequest) ProtoMessage() {} func (x *ResetWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[42] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3448,7 +3584,7 @@ func (x *ResetWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*ResetWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{42} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{44} } func (x *ResetWorkflowExecutionRequest) GetNamespaceId() string { @@ -3474,7 +3610,7 @@ type ResetWorkflowExecutionResponse struct { func (x *ResetWorkflowExecutionResponse) Reset() { *x = ResetWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[43] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3486,7 +3622,7 @@ func (x *ResetWorkflowExecutionResponse) String() string { func (*ResetWorkflowExecutionResponse) ProtoMessage() {} func (x *ResetWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[43] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3499,7 +3635,7 @@ func (x *ResetWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*ResetWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{43} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{45} } func (x *ResetWorkflowExecutionResponse) GetRunId() string { @@ -3522,7 +3658,7 @@ type RequestCancelWorkflowExecutionRequest struct { func (x *RequestCancelWorkflowExecutionRequest) Reset() { *x = RequestCancelWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[44] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3534,7 +3670,7 @@ func (x *RequestCancelWorkflowExecutionRequest) String() string { func (*RequestCancelWorkflowExecutionRequest) ProtoMessage() {} func (x *RequestCancelWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[44] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3547,7 +3683,7 @@ func (x *RequestCancelWorkflowExecutionRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use RequestCancelWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*RequestCancelWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{44} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{46} } func (x *RequestCancelWorkflowExecutionRequest) GetNamespaceId() string { @@ -3593,7 +3729,7 @@ type RequestCancelWorkflowExecutionResponse struct { func (x *RequestCancelWorkflowExecutionResponse) Reset() { *x = RequestCancelWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[45] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3605,7 +3741,7 @@ func (x *RequestCancelWorkflowExecutionResponse) String() string { func (*RequestCancelWorkflowExecutionResponse) ProtoMessage() {} func (x *RequestCancelWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[45] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3618,7 +3754,7 @@ func (x *RequestCancelWorkflowExecutionResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use RequestCancelWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*RequestCancelWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{45} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{47} } type ScheduleWorkflowTaskRequest struct { @@ -3634,7 +3770,7 @@ type ScheduleWorkflowTaskRequest struct { func (x *ScheduleWorkflowTaskRequest) Reset() { *x = ScheduleWorkflowTaskRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[46] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3646,7 +3782,7 @@ func (x *ScheduleWorkflowTaskRequest) String() string { func (*ScheduleWorkflowTaskRequest) ProtoMessage() {} func (x *ScheduleWorkflowTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[46] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3659,7 +3795,7 @@ func (x *ScheduleWorkflowTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ScheduleWorkflowTaskRequest.ProtoReflect.Descriptor instead. func (*ScheduleWorkflowTaskRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{46} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{48} } func (x *ScheduleWorkflowTaskRequest) GetNamespaceId() string { @@ -3705,7 +3841,7 @@ type ScheduleWorkflowTaskResponse struct { func (x *ScheduleWorkflowTaskResponse) Reset() { *x = ScheduleWorkflowTaskResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[47] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3717,7 +3853,7 @@ func (x *ScheduleWorkflowTaskResponse) String() string { func (*ScheduleWorkflowTaskResponse) ProtoMessage() {} func (x *ScheduleWorkflowTaskResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[47] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3730,7 +3866,7 @@ func (x *ScheduleWorkflowTaskResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ScheduleWorkflowTaskResponse.ProtoReflect.Descriptor instead. func (*ScheduleWorkflowTaskResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{47} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{49} } type VerifyFirstWorkflowTaskScheduledRequest struct { @@ -3745,7 +3881,7 @@ type VerifyFirstWorkflowTaskScheduledRequest struct { func (x *VerifyFirstWorkflowTaskScheduledRequest) Reset() { *x = VerifyFirstWorkflowTaskScheduledRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[48] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3757,7 +3893,7 @@ func (x *VerifyFirstWorkflowTaskScheduledRequest) String() string { func (*VerifyFirstWorkflowTaskScheduledRequest) ProtoMessage() {} func (x *VerifyFirstWorkflowTaskScheduledRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[48] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3770,7 +3906,7 @@ func (x *VerifyFirstWorkflowTaskScheduledRequest) ProtoReflect() protoreflect.Me // Deprecated: Use VerifyFirstWorkflowTaskScheduledRequest.ProtoReflect.Descriptor instead. func (*VerifyFirstWorkflowTaskScheduledRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{48} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{50} } func (x *VerifyFirstWorkflowTaskScheduledRequest) GetNamespaceId() string { @@ -3809,7 +3945,7 @@ type VerifyFirstWorkflowTaskScheduledResponse struct { func (x *VerifyFirstWorkflowTaskScheduledResponse) Reset() { *x = VerifyFirstWorkflowTaskScheduledResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[49] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3821,7 +3957,7 @@ func (x *VerifyFirstWorkflowTaskScheduledResponse) String() string { func (*VerifyFirstWorkflowTaskScheduledResponse) ProtoMessage() {} func (x *VerifyFirstWorkflowTaskScheduledResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[49] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3834,7 +3970,7 @@ func (x *VerifyFirstWorkflowTaskScheduledResponse) ProtoReflect() protoreflect.M // Deprecated: Use VerifyFirstWorkflowTaskScheduledResponse.ProtoReflect.Descriptor instead. func (*VerifyFirstWorkflowTaskScheduledResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{49} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{51} } // * @@ -3859,7 +3995,7 @@ type RecordChildExecutionCompletedRequest struct { func (x *RecordChildExecutionCompletedRequest) Reset() { *x = RecordChildExecutionCompletedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[50] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3871,7 +4007,7 @@ func (x *RecordChildExecutionCompletedRequest) String() string { func (*RecordChildExecutionCompletedRequest) ProtoMessage() {} func (x *RecordChildExecutionCompletedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[50] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3884,7 +4020,7 @@ func (x *RecordChildExecutionCompletedRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use RecordChildExecutionCompletedRequest.ProtoReflect.Descriptor instead. func (*RecordChildExecutionCompletedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{50} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{52} } func (x *RecordChildExecutionCompletedRequest) GetNamespaceId() string { @@ -3951,7 +4087,7 @@ type RecordChildExecutionCompletedResponse struct { func (x *RecordChildExecutionCompletedResponse) Reset() { *x = RecordChildExecutionCompletedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[51] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3963,7 +4099,7 @@ func (x *RecordChildExecutionCompletedResponse) String() string { func (*RecordChildExecutionCompletedResponse) ProtoMessage() {} func (x *RecordChildExecutionCompletedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[51] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3976,7 +4112,7 @@ func (x *RecordChildExecutionCompletedResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use RecordChildExecutionCompletedResponse.ProtoReflect.Descriptor instead. func (*RecordChildExecutionCompletedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{51} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{53} } type VerifyChildExecutionCompletionRecordedRequest struct { @@ -3994,7 +4130,7 @@ type VerifyChildExecutionCompletionRecordedRequest struct { func (x *VerifyChildExecutionCompletionRecordedRequest) Reset() { *x = VerifyChildExecutionCompletionRecordedRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[52] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4006,7 +4142,7 @@ func (x *VerifyChildExecutionCompletionRecordedRequest) String() string { func (*VerifyChildExecutionCompletionRecordedRequest) ProtoMessage() {} func (x *VerifyChildExecutionCompletionRecordedRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[52] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4019,7 +4155,7 @@ func (x *VerifyChildExecutionCompletionRecordedRequest) ProtoReflect() protorefl // Deprecated: Use VerifyChildExecutionCompletionRecordedRequest.ProtoReflect.Descriptor instead. func (*VerifyChildExecutionCompletionRecordedRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{52} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{54} } func (x *VerifyChildExecutionCompletionRecordedRequest) GetNamespaceId() string { @@ -4079,7 +4215,7 @@ type VerifyChildExecutionCompletionRecordedResponse struct { func (x *VerifyChildExecutionCompletionRecordedResponse) Reset() { *x = VerifyChildExecutionCompletionRecordedResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[53] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4091,7 +4227,7 @@ func (x *VerifyChildExecutionCompletionRecordedResponse) String() string { func (*VerifyChildExecutionCompletionRecordedResponse) ProtoMessage() {} func (x *VerifyChildExecutionCompletionRecordedResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[53] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4104,7 +4240,7 @@ func (x *VerifyChildExecutionCompletionRecordedResponse) ProtoReflect() protoref // Deprecated: Use VerifyChildExecutionCompletionRecordedResponse.ProtoReflect.Descriptor instead. func (*VerifyChildExecutionCompletionRecordedResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{53} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{55} } type DescribeWorkflowExecutionRequest struct { @@ -4117,7 +4253,7 @@ type DescribeWorkflowExecutionRequest struct { func (x *DescribeWorkflowExecutionRequest) Reset() { *x = DescribeWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[54] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4129,7 +4265,7 @@ func (x *DescribeWorkflowExecutionRequest) String() string { func (*DescribeWorkflowExecutionRequest) ProtoMessage() {} func (x *DescribeWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[54] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4142,7 +4278,7 @@ func (x *DescribeWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*DescribeWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{54} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{56} } func (x *DescribeWorkflowExecutionRequest) GetNamespaceId() string { @@ -4175,7 +4311,7 @@ type DescribeWorkflowExecutionResponse struct { func (x *DescribeWorkflowExecutionResponse) Reset() { *x = DescribeWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[55] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4187,7 +4323,7 @@ func (x *DescribeWorkflowExecutionResponse) String() string { func (*DescribeWorkflowExecutionResponse) ProtoMessage() {} func (x *DescribeWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[55] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4200,7 +4336,7 @@ func (x *DescribeWorkflowExecutionResponse) ProtoReflect() protoreflect.Message // Deprecated: Use DescribeWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*DescribeWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{55} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{57} } func (x *DescribeWorkflowExecutionResponse) GetExecutionConfig() *v15.WorkflowExecutionConfig { @@ -4260,11 +4396,11 @@ func (x *DescribeWorkflowExecutionResponse) GetWorkflowExtendedInfo() *v15.Workf } type ReplicateEventsV2Request struct { - state protoimpl.MessageState `protogen:"open.v1"` - NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - WorkflowExecution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=workflow_execution,json=workflowExecution,proto3" json:"workflow_execution,omitempty"` - VersionHistoryItems []*v19.VersionHistoryItem `protobuf:"bytes,3,rep,name=version_history_items,json=versionHistoryItems,proto3" json:"version_history_items,omitempty"` - Events *v14.DataBlob `protobuf:"bytes,4,opt,name=events,proto3" json:"events,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + WorkflowExecution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=workflow_execution,json=workflowExecution,proto3" json:"workflow_execution,omitempty"` + VersionHistoryItems []*v110.VersionHistoryItem `protobuf:"bytes,3,rep,name=version_history_items,json=versionHistoryItems,proto3" json:"version_history_items,omitempty"` + Events *v14.DataBlob `protobuf:"bytes,4,opt,name=events,proto3" json:"events,omitempty"` // New run events does not need version history since there is no prior events. NewRunEvents *v14.DataBlob `protobuf:"bytes,5,opt,name=new_run_events,json=newRunEvents,proto3" json:"new_run_events,omitempty"` BaseExecutionInfo *v11.BaseExecutionInfo `protobuf:"bytes,6,opt,name=base_execution_info,json=baseExecutionInfo,proto3" json:"base_execution_info,omitempty"` @@ -4275,7 +4411,7 @@ type ReplicateEventsV2Request struct { func (x *ReplicateEventsV2Request) Reset() { *x = ReplicateEventsV2Request{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[56] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4287,7 +4423,7 @@ func (x *ReplicateEventsV2Request) String() string { func (*ReplicateEventsV2Request) ProtoMessage() {} func (x *ReplicateEventsV2Request) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[56] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4300,7 +4436,7 @@ func (x *ReplicateEventsV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicateEventsV2Request.ProtoReflect.Descriptor instead. func (*ReplicateEventsV2Request) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{56} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{58} } func (x *ReplicateEventsV2Request) GetNamespaceId() string { @@ -4317,7 +4453,7 @@ func (x *ReplicateEventsV2Request) GetWorkflowExecution() *v14.WorkflowExecution return nil } -func (x *ReplicateEventsV2Request) GetVersionHistoryItems() []*v19.VersionHistoryItem { +func (x *ReplicateEventsV2Request) GetVersionHistoryItems() []*v110.VersionHistoryItem { if x != nil { return x.VersionHistoryItems } @@ -4360,7 +4496,7 @@ type ReplicateEventsV2Response struct { func (x *ReplicateEventsV2Response) Reset() { *x = ReplicateEventsV2Response{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[57] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4372,7 +4508,7 @@ func (x *ReplicateEventsV2Response) String() string { func (*ReplicateEventsV2Response) ProtoMessage() {} func (x *ReplicateEventsV2Response) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[57] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4385,12 +4521,12 @@ func (x *ReplicateEventsV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicateEventsV2Response.ProtoReflect.Descriptor instead. func (*ReplicateEventsV2Response) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{57} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{59} } type ReplicateWorkflowStateRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - WorkflowState *v110.WorkflowMutableState `protobuf:"bytes,1,opt,name=workflow_state,json=workflowState,proto3" json:"workflow_state,omitempty"` + WorkflowState *v111.WorkflowMutableState `protobuf:"bytes,1,opt,name=workflow_state,json=workflowState,proto3" json:"workflow_state,omitempty"` RemoteCluster string `protobuf:"bytes,2,opt,name=remote_cluster,json=remoteCluster,proto3" json:"remote_cluster,omitempty"` NamespaceId string `protobuf:"bytes,3,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` IsForceReplication bool `protobuf:"varint,4,opt,name=is_force_replication,json=isForceReplication,proto3" json:"is_force_replication,omitempty"` @@ -4401,7 +4537,7 @@ type ReplicateWorkflowStateRequest struct { func (x *ReplicateWorkflowStateRequest) Reset() { *x = ReplicateWorkflowStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[58] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4413,7 +4549,7 @@ func (x *ReplicateWorkflowStateRequest) String() string { func (*ReplicateWorkflowStateRequest) ProtoMessage() {} func (x *ReplicateWorkflowStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[58] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4426,10 +4562,10 @@ func (x *ReplicateWorkflowStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicateWorkflowStateRequest.ProtoReflect.Descriptor instead. func (*ReplicateWorkflowStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{58} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{60} } -func (x *ReplicateWorkflowStateRequest) GetWorkflowState() *v110.WorkflowMutableState { +func (x *ReplicateWorkflowStateRequest) GetWorkflowState() *v111.WorkflowMutableState { if x != nil { return x.WorkflowState } @@ -4472,7 +4608,7 @@ type ReplicateWorkflowStateResponse struct { func (x *ReplicateWorkflowStateResponse) Reset() { *x = ReplicateWorkflowStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[59] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4484,7 +4620,7 @@ func (x *ReplicateWorkflowStateResponse) String() string { func (*ReplicateWorkflowStateResponse) ProtoMessage() {} func (x *ReplicateWorkflowStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[59] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4497,7 +4633,7 @@ func (x *ReplicateWorkflowStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicateWorkflowStateResponse.ProtoReflect.Descriptor instead. func (*ReplicateWorkflowStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{59} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{61} } type SyncShardStatusRequest struct { @@ -4511,7 +4647,7 @@ type SyncShardStatusRequest struct { func (x *SyncShardStatusRequest) Reset() { *x = SyncShardStatusRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[60] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4523,7 +4659,7 @@ func (x *SyncShardStatusRequest) String() string { func (*SyncShardStatusRequest) ProtoMessage() {} func (x *SyncShardStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[60] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4536,7 +4672,7 @@ func (x *SyncShardStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncShardStatusRequest.ProtoReflect.Descriptor instead. func (*SyncShardStatusRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{60} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{62} } func (x *SyncShardStatusRequest) GetSourceCluster() string { @@ -4568,7 +4704,7 @@ type SyncShardStatusResponse struct { func (x *SyncShardStatusResponse) Reset() { *x = SyncShardStatusResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[61] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4580,7 +4716,7 @@ func (x *SyncShardStatusResponse) String() string { func (*SyncShardStatusResponse) ProtoMessage() {} func (x *SyncShardStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[61] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4593,7 +4729,7 @@ func (x *SyncShardStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncShardStatusResponse.ProtoReflect.Descriptor instead. func (*SyncShardStatusResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{61} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{63} } type SyncActivityRequest struct { @@ -4611,7 +4747,7 @@ type SyncActivityRequest struct { Attempt int32 `protobuf:"varint,11,opt,name=attempt,proto3" json:"attempt,omitempty"` LastFailure *v13.Failure `protobuf:"bytes,12,opt,name=last_failure,json=lastFailure,proto3" json:"last_failure,omitempty"` LastWorkerIdentity string `protobuf:"bytes,13,opt,name=last_worker_identity,json=lastWorkerIdentity,proto3" json:"last_worker_identity,omitempty"` - VersionHistory *v19.VersionHistory `protobuf:"bytes,14,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` + VersionHistory *v110.VersionHistory `protobuf:"bytes,14,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` BaseExecutionInfo *v11.BaseExecutionInfo `protobuf:"bytes,15,opt,name=base_execution_info,json=baseExecutionInfo,proto3" json:"base_execution_info,omitempty"` // build ID of the worker who received this activity last time LastStartedBuildId string `protobuf:"bytes,16,opt,name=last_started_build_id,json=lastStartedBuildId,proto3" json:"last_started_build_id,omitempty"` @@ -4637,7 +4773,7 @@ type SyncActivityRequest struct { func (x *SyncActivityRequest) Reset() { *x = SyncActivityRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[62] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4649,7 +4785,7 @@ func (x *SyncActivityRequest) String() string { func (*SyncActivityRequest) ProtoMessage() {} func (x *SyncActivityRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[62] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4662,7 +4798,7 @@ func (x *SyncActivityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActivityRequest.ProtoReflect.Descriptor instead. func (*SyncActivityRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{62} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{64} } func (x *SyncActivityRequest) GetNamespaceId() string { @@ -4756,7 +4892,7 @@ func (x *SyncActivityRequest) GetLastWorkerIdentity() string { return "" } -func (x *SyncActivityRequest) GetVersionHistory() *v19.VersionHistory { +func (x *SyncActivityRequest) GetVersionHistory() *v110.VersionHistory { if x != nil { return x.VersionHistory } @@ -4859,7 +4995,7 @@ type SyncActivitiesRequest struct { func (x *SyncActivitiesRequest) Reset() { *x = SyncActivitiesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[63] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4871,7 +5007,7 @@ func (x *SyncActivitiesRequest) String() string { func (*SyncActivitiesRequest) ProtoMessage() {} func (x *SyncActivitiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[63] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4884,7 +5020,7 @@ func (x *SyncActivitiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActivitiesRequest.ProtoReflect.Descriptor instead. func (*SyncActivitiesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{63} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{65} } func (x *SyncActivitiesRequest) GetNamespaceId() string { @@ -4927,7 +5063,7 @@ type ActivitySyncInfo struct { Attempt int32 `protobuf:"varint,8,opt,name=attempt,proto3" json:"attempt,omitempty"` LastFailure *v13.Failure `protobuf:"bytes,9,opt,name=last_failure,json=lastFailure,proto3" json:"last_failure,omitempty"` LastWorkerIdentity string `protobuf:"bytes,10,opt,name=last_worker_identity,json=lastWorkerIdentity,proto3" json:"last_worker_identity,omitempty"` - VersionHistory *v19.VersionHistory `protobuf:"bytes,11,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` + VersionHistory *v110.VersionHistory `protobuf:"bytes,11,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` // build ID of the worker who received this activity last time LastStartedBuildId string `protobuf:"bytes,12,opt,name=last_started_build_id,json=lastStartedBuildId,proto3" json:"last_started_build_id,omitempty"` // workflows redirect_counter value when this activity started last time @@ -4952,7 +5088,7 @@ type ActivitySyncInfo struct { func (x *ActivitySyncInfo) Reset() { *x = ActivitySyncInfo{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[64] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4964,7 +5100,7 @@ func (x *ActivitySyncInfo) String() string { func (*ActivitySyncInfo) ProtoMessage() {} func (x *ActivitySyncInfo) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[64] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4977,7 +5113,7 @@ func (x *ActivitySyncInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ActivitySyncInfo.ProtoReflect.Descriptor instead. func (*ActivitySyncInfo) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{64} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{66} } func (x *ActivitySyncInfo) GetVersion() int64 { @@ -5050,7 +5186,7 @@ func (x *ActivitySyncInfo) GetLastWorkerIdentity() string { return "" } -func (x *ActivitySyncInfo) GetVersionHistory() *v19.VersionHistory { +func (x *ActivitySyncInfo) GetVersionHistory() *v110.VersionHistory { if x != nil { return x.VersionHistory } @@ -5142,7 +5278,7 @@ type SyncActivityResponse struct { func (x *SyncActivityResponse) Reset() { *x = SyncActivityResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[65] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5154,7 +5290,7 @@ func (x *SyncActivityResponse) String() string { func (*SyncActivityResponse) ProtoMessage() {} func (x *SyncActivityResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[65] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5167,7 +5303,7 @@ func (x *SyncActivityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncActivityResponse.ProtoReflect.Descriptor instead. func (*SyncActivityResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{65} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{67} } type DescribeMutableStateRequest struct { @@ -5183,7 +5319,7 @@ type DescribeMutableStateRequest struct { func (x *DescribeMutableStateRequest) Reset() { *x = DescribeMutableStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[66] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5195,7 +5331,7 @@ func (x *DescribeMutableStateRequest) String() string { func (*DescribeMutableStateRequest) ProtoMessage() {} func (x *DescribeMutableStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[66] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5208,7 +5344,7 @@ func (x *DescribeMutableStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeMutableStateRequest.ProtoReflect.Descriptor instead. func (*DescribeMutableStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{66} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{68} } func (x *DescribeMutableStateRequest) GetNamespaceId() string { @@ -5242,17 +5378,17 @@ func (x *DescribeMutableStateRequest) GetArchetypeId() uint32 { type DescribeMutableStateResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // CacheMutableState is only available when mutable state is in cache. - CacheMutableState *v110.WorkflowMutableState `protobuf:"bytes,1,opt,name=cache_mutable_state,json=cacheMutableState,proto3" json:"cache_mutable_state,omitempty"` + CacheMutableState *v111.WorkflowMutableState `protobuf:"bytes,1,opt,name=cache_mutable_state,json=cacheMutableState,proto3" json:"cache_mutable_state,omitempty"` // DatabaseMutableState is always available, // but only loaded from database when mutable state is NOT in cache or skip_force_reload is false. - DatabaseMutableState *v110.WorkflowMutableState `protobuf:"bytes,2,opt,name=database_mutable_state,json=databaseMutableState,proto3" json:"database_mutable_state,omitempty"` + DatabaseMutableState *v111.WorkflowMutableState `protobuf:"bytes,2,opt,name=database_mutable_state,json=databaseMutableState,proto3" json:"database_mutable_state,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DescribeMutableStateResponse) Reset() { *x = DescribeMutableStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[67] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5264,7 +5400,7 @@ func (x *DescribeMutableStateResponse) String() string { func (*DescribeMutableStateResponse) ProtoMessage() {} func (x *DescribeMutableStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[67] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5277,17 +5413,17 @@ func (x *DescribeMutableStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeMutableStateResponse.ProtoReflect.Descriptor instead. func (*DescribeMutableStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{67} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{69} } -func (x *DescribeMutableStateResponse) GetCacheMutableState() *v110.WorkflowMutableState { +func (x *DescribeMutableStateResponse) GetCacheMutableState() *v111.WorkflowMutableState { if x != nil { return x.CacheMutableState } return nil } -func (x *DescribeMutableStateResponse) GetDatabaseMutableState() *v110.WorkflowMutableState { +func (x *DescribeMutableStateResponse) GetDatabaseMutableState() *v111.WorkflowMutableState { if x != nil { return x.DatabaseMutableState } @@ -5308,7 +5444,7 @@ type DescribeHistoryHostRequest struct { func (x *DescribeHistoryHostRequest) Reset() { *x = DescribeHistoryHostRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[68] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5320,7 +5456,7 @@ func (x *DescribeHistoryHostRequest) String() string { func (*DescribeHistoryHostRequest) ProtoMessage() {} func (x *DescribeHistoryHostRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[68] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5333,7 +5469,7 @@ func (x *DescribeHistoryHostRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeHistoryHostRequest.ProtoReflect.Descriptor instead. func (*DescribeHistoryHostRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{68} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{70} } func (x *DescribeHistoryHostRequest) GetHostAddress() string { @@ -5368,7 +5504,7 @@ type DescribeHistoryHostResponse struct { state protoimpl.MessageState `protogen:"open.v1"` ShardsNumber int32 `protobuf:"varint,1,opt,name=shards_number,json=shardsNumber,proto3" json:"shards_number,omitempty"` ShardIds []int32 `protobuf:"varint,2,rep,packed,name=shard_ids,json=shardIds,proto3" json:"shard_ids,omitempty"` - NamespaceCache *v116.NamespaceCacheInfo `protobuf:"bytes,3,opt,name=namespace_cache,json=namespaceCache,proto3" json:"namespace_cache,omitempty"` + NamespaceCache *v117.NamespaceCacheInfo `protobuf:"bytes,3,opt,name=namespace_cache,json=namespaceCache,proto3" json:"namespace_cache,omitempty"` Address string `protobuf:"bytes,5,opt,name=address,proto3" json:"address,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -5376,7 +5512,7 @@ type DescribeHistoryHostResponse struct { func (x *DescribeHistoryHostResponse) Reset() { *x = DescribeHistoryHostResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[69] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5388,7 +5524,7 @@ func (x *DescribeHistoryHostResponse) String() string { func (*DescribeHistoryHostResponse) ProtoMessage() {} func (x *DescribeHistoryHostResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[69] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5401,7 +5537,7 @@ func (x *DescribeHistoryHostResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeHistoryHostResponse.ProtoReflect.Descriptor instead. func (*DescribeHistoryHostResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{69} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{71} } func (x *DescribeHistoryHostResponse) GetShardsNumber() int32 { @@ -5418,7 +5554,7 @@ func (x *DescribeHistoryHostResponse) GetShardIds() []int32 { return nil } -func (x *DescribeHistoryHostResponse) GetNamespaceCache() *v116.NamespaceCacheInfo { +func (x *DescribeHistoryHostResponse) GetNamespaceCache() *v117.NamespaceCacheInfo { if x != nil { return x.NamespaceCache } @@ -5441,7 +5577,7 @@ type CloseShardRequest struct { func (x *CloseShardRequest) Reset() { *x = CloseShardRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[70] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5453,7 +5589,7 @@ func (x *CloseShardRequest) String() string { func (*CloseShardRequest) ProtoMessage() {} func (x *CloseShardRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[70] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5466,7 +5602,7 @@ func (x *CloseShardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CloseShardRequest.ProtoReflect.Descriptor instead. func (*CloseShardRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{70} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{72} } func (x *CloseShardRequest) GetShardId() int32 { @@ -5484,7 +5620,7 @@ type CloseShardResponse struct { func (x *CloseShardResponse) Reset() { *x = CloseShardResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[71] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5496,7 +5632,7 @@ func (x *CloseShardResponse) String() string { func (*CloseShardResponse) ProtoMessage() {} func (x *CloseShardResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[71] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5509,7 +5645,7 @@ func (x *CloseShardResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CloseShardResponse.ProtoReflect.Descriptor instead. func (*CloseShardResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{71} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{73} } type GetShardRequest struct { @@ -5521,7 +5657,7 @@ type GetShardRequest struct { func (x *GetShardRequest) Reset() { *x = GetShardRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[72] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5533,7 +5669,7 @@ func (x *GetShardRequest) String() string { func (*GetShardRequest) ProtoMessage() {} func (x *GetShardRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[72] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5546,7 +5682,7 @@ func (x *GetShardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetShardRequest.ProtoReflect.Descriptor instead. func (*GetShardRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{72} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{74} } func (x *GetShardRequest) GetShardId() int32 { @@ -5558,14 +5694,14 @@ func (x *GetShardRequest) GetShardId() int32 { type GetShardResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - ShardInfo *v110.ShardInfo `protobuf:"bytes,1,opt,name=shard_info,json=shardInfo,proto3" json:"shard_info,omitempty"` + ShardInfo *v111.ShardInfo `protobuf:"bytes,1,opt,name=shard_info,json=shardInfo,proto3" json:"shard_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetShardResponse) Reset() { *x = GetShardResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[73] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5577,7 +5713,7 @@ func (x *GetShardResponse) String() string { func (*GetShardResponse) ProtoMessage() {} func (x *GetShardResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[73] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5590,10 +5726,10 @@ func (x *GetShardResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetShardResponse.ProtoReflect.Descriptor instead. func (*GetShardResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{73} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{75} } -func (x *GetShardResponse) GetShardInfo() *v110.ShardInfo { +func (x *GetShardResponse) GetShardInfo() *v111.ShardInfo { if x != nil { return x.ShardInfo } @@ -5613,7 +5749,7 @@ type RemoveTaskRequest struct { func (x *RemoveTaskRequest) Reset() { *x = RemoveTaskRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[74] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5625,7 +5761,7 @@ func (x *RemoveTaskRequest) String() string { func (*RemoveTaskRequest) ProtoMessage() {} func (x *RemoveTaskRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[74] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5638,7 +5774,7 @@ func (x *RemoveTaskRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveTaskRequest.ProtoReflect.Descriptor instead. func (*RemoveTaskRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{74} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{76} } func (x *RemoveTaskRequest) GetShardId() int32 { @@ -5677,7 +5813,7 @@ type RemoveTaskResponse struct { func (x *RemoveTaskResponse) Reset() { *x = RemoveTaskResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[75] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5689,7 +5825,7 @@ func (x *RemoveTaskResponse) String() string { func (*RemoveTaskResponse) ProtoMessage() {} func (x *RemoveTaskResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[75] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5702,12 +5838,12 @@ func (x *RemoveTaskResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveTaskResponse.ProtoReflect.Descriptor instead. func (*RemoveTaskResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{75} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{77} } type GetReplicationMessagesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - Tokens []*v117.ReplicationToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` + Tokens []*v118.ReplicationToken `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` ClusterName string `protobuf:"bytes,2,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -5715,7 +5851,7 @@ type GetReplicationMessagesRequest struct { func (x *GetReplicationMessagesRequest) Reset() { *x = GetReplicationMessagesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[76] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5727,7 +5863,7 @@ func (x *GetReplicationMessagesRequest) String() string { func (*GetReplicationMessagesRequest) ProtoMessage() {} func (x *GetReplicationMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[76] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5740,10 +5876,10 @@ func (x *GetReplicationMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReplicationMessagesRequest.ProtoReflect.Descriptor instead. func (*GetReplicationMessagesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{76} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{78} } -func (x *GetReplicationMessagesRequest) GetTokens() []*v117.ReplicationToken { +func (x *GetReplicationMessagesRequest) GetTokens() []*v118.ReplicationToken { if x != nil { return x.Tokens } @@ -5759,14 +5895,14 @@ func (x *GetReplicationMessagesRequest) GetClusterName() string { type GetReplicationMessagesResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - ShardMessages map[int32]*v117.ReplicationMessages `protobuf:"bytes,1,rep,name=shard_messages,json=shardMessages,proto3" json:"shard_messages,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ShardMessages map[int32]*v118.ReplicationMessages `protobuf:"bytes,1,rep,name=shard_messages,json=shardMessages,proto3" json:"shard_messages,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetReplicationMessagesResponse) Reset() { *x = GetReplicationMessagesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[77] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5778,7 +5914,7 @@ func (x *GetReplicationMessagesResponse) String() string { func (*GetReplicationMessagesResponse) ProtoMessage() {} func (x *GetReplicationMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[77] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5791,10 +5927,10 @@ func (x *GetReplicationMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReplicationMessagesResponse.ProtoReflect.Descriptor instead. func (*GetReplicationMessagesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{77} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{79} } -func (x *GetReplicationMessagesResponse) GetShardMessages() map[int32]*v117.ReplicationMessages { +func (x *GetReplicationMessagesResponse) GetShardMessages() map[int32]*v118.ReplicationMessages { if x != nil { return x.ShardMessages } @@ -5803,14 +5939,14 @@ func (x *GetReplicationMessagesResponse) GetShardMessages() map[int32]*v117.Repl type GetDLQReplicationMessagesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - TaskInfos []*v117.ReplicationTaskInfo `protobuf:"bytes,1,rep,name=task_infos,json=taskInfos,proto3" json:"task_infos,omitempty"` + TaskInfos []*v118.ReplicationTaskInfo `protobuf:"bytes,1,rep,name=task_infos,json=taskInfos,proto3" json:"task_infos,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetDLQReplicationMessagesRequest) Reset() { *x = GetDLQReplicationMessagesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[78] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5822,7 +5958,7 @@ func (x *GetDLQReplicationMessagesRequest) String() string { func (*GetDLQReplicationMessagesRequest) ProtoMessage() {} func (x *GetDLQReplicationMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[78] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5835,10 +5971,10 @@ func (x *GetDLQReplicationMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDLQReplicationMessagesRequest.ProtoReflect.Descriptor instead. func (*GetDLQReplicationMessagesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{78} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{80} } -func (x *GetDLQReplicationMessagesRequest) GetTaskInfos() []*v117.ReplicationTaskInfo { +func (x *GetDLQReplicationMessagesRequest) GetTaskInfos() []*v118.ReplicationTaskInfo { if x != nil { return x.TaskInfos } @@ -5847,14 +5983,14 @@ func (x *GetDLQReplicationMessagesRequest) GetTaskInfos() []*v117.ReplicationTas type GetDLQReplicationMessagesResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - ReplicationTasks []*v117.ReplicationTask `protobuf:"bytes,1,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` + ReplicationTasks []*v118.ReplicationTask `protobuf:"bytes,1,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetDLQReplicationMessagesResponse) Reset() { *x = GetDLQReplicationMessagesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[79] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5866,7 +6002,7 @@ func (x *GetDLQReplicationMessagesResponse) String() string { func (*GetDLQReplicationMessagesResponse) ProtoMessage() {} func (x *GetDLQReplicationMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[79] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5879,10 +6015,10 @@ func (x *GetDLQReplicationMessagesResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetDLQReplicationMessagesResponse.ProtoReflect.Descriptor instead. func (*GetDLQReplicationMessagesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{79} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{81} } -func (x *GetDLQReplicationMessagesResponse) GetReplicationTasks() []*v117.ReplicationTask { +func (x *GetDLQReplicationMessagesResponse) GetReplicationTasks() []*v118.ReplicationTask { if x != nil { return x.ReplicationTasks } @@ -5899,7 +6035,7 @@ type QueryWorkflowRequest struct { func (x *QueryWorkflowRequest) Reset() { *x = QueryWorkflowRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[80] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5911,7 +6047,7 @@ func (x *QueryWorkflowRequest) String() string { func (*QueryWorkflowRequest) ProtoMessage() {} func (x *QueryWorkflowRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[80] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5924,7 +6060,7 @@ func (x *QueryWorkflowRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryWorkflowRequest.ProtoReflect.Descriptor instead. func (*QueryWorkflowRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{80} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{82} } func (x *QueryWorkflowRequest) GetNamespaceId() string { @@ -5950,7 +6086,7 @@ type QueryWorkflowResponse struct { func (x *QueryWorkflowResponse) Reset() { *x = QueryWorkflowResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[81] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5962,7 +6098,7 @@ func (x *QueryWorkflowResponse) String() string { func (*QueryWorkflowResponse) ProtoMessage() {} func (x *QueryWorkflowResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[81] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5975,7 +6111,7 @@ func (x *QueryWorkflowResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryWorkflowResponse.ProtoReflect.Descriptor instead. func (*QueryWorkflowResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{81} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{83} } func (x *QueryWorkflowResponse) GetResponse() *v1.QueryWorkflowResponse { @@ -5988,14 +6124,14 @@ func (x *QueryWorkflowResponse) GetResponse() *v1.QueryWorkflowResponse { type ReapplyEventsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Request *v118.ReapplyEventsRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Request *v119.ReapplyEventsRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ReapplyEventsRequest) Reset() { *x = ReapplyEventsRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[82] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6007,7 +6143,7 @@ func (x *ReapplyEventsRequest) String() string { func (*ReapplyEventsRequest) ProtoMessage() {} func (x *ReapplyEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[82] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6020,7 +6156,7 @@ func (x *ReapplyEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReapplyEventsRequest.ProtoReflect.Descriptor instead. func (*ReapplyEventsRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{82} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{84} } func (x *ReapplyEventsRequest) GetNamespaceId() string { @@ -6030,7 +6166,7 @@ func (x *ReapplyEventsRequest) GetNamespaceId() string { return "" } -func (x *ReapplyEventsRequest) GetRequest() *v118.ReapplyEventsRequest { +func (x *ReapplyEventsRequest) GetRequest() *v119.ReapplyEventsRequest { if x != nil { return x.Request } @@ -6045,7 +6181,7 @@ type ReapplyEventsResponse struct { func (x *ReapplyEventsResponse) Reset() { *x = ReapplyEventsResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[83] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6057,7 +6193,7 @@ func (x *ReapplyEventsResponse) String() string { func (*ReapplyEventsResponse) ProtoMessage() {} func (x *ReapplyEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[83] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6070,12 +6206,12 @@ func (x *ReapplyEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReapplyEventsResponse.ProtoReflect.Descriptor instead. func (*ReapplyEventsResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{83} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{85} } type GetDLQMessagesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - Type v112.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` + Type v113.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` InclusiveEndMessageId int64 `protobuf:"varint,4,opt,name=inclusive_end_message_id,json=inclusiveEndMessageId,proto3" json:"inclusive_end_message_id,omitempty"` @@ -6087,7 +6223,7 @@ type GetDLQMessagesRequest struct { func (x *GetDLQMessagesRequest) Reset() { *x = GetDLQMessagesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[84] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6099,7 +6235,7 @@ func (x *GetDLQMessagesRequest) String() string { func (*GetDLQMessagesRequest) ProtoMessage() {} func (x *GetDLQMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[84] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6112,14 +6248,14 @@ func (x *GetDLQMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDLQMessagesRequest.ProtoReflect.Descriptor instead. func (*GetDLQMessagesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{84} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{86} } -func (x *GetDLQMessagesRequest) GetType() v112.DeadLetterQueueType { +func (x *GetDLQMessagesRequest) GetType() v113.DeadLetterQueueType { if x != nil { return x.Type } - return v112.DeadLetterQueueType(0) + return v113.DeadLetterQueueType(0) } func (x *GetDLQMessagesRequest) GetShardId() int32 { @@ -6159,17 +6295,17 @@ func (x *GetDLQMessagesRequest) GetNextPageToken() []byte { type GetDLQMessagesResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Type v112.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` - ReplicationTasks []*v117.ReplicationTask `protobuf:"bytes,2,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` + Type v113.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` + ReplicationTasks []*v118.ReplicationTask `protobuf:"bytes,2,rep,name=replication_tasks,json=replicationTasks,proto3" json:"replication_tasks,omitempty"` NextPageToken []byte `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` - ReplicationTasksInfo []*v117.ReplicationTaskInfo `protobuf:"bytes,4,rep,name=replication_tasks_info,json=replicationTasksInfo,proto3" json:"replication_tasks_info,omitempty"` + ReplicationTasksInfo []*v118.ReplicationTaskInfo `protobuf:"bytes,4,rep,name=replication_tasks_info,json=replicationTasksInfo,proto3" json:"replication_tasks_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetDLQMessagesResponse) Reset() { *x = GetDLQMessagesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[85] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6181,7 +6317,7 @@ func (x *GetDLQMessagesResponse) String() string { func (*GetDLQMessagesResponse) ProtoMessage() {} func (x *GetDLQMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[85] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6194,17 +6330,17 @@ func (x *GetDLQMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDLQMessagesResponse.ProtoReflect.Descriptor instead. func (*GetDLQMessagesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{85} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{87} } -func (x *GetDLQMessagesResponse) GetType() v112.DeadLetterQueueType { +func (x *GetDLQMessagesResponse) GetType() v113.DeadLetterQueueType { if x != nil { return x.Type } - return v112.DeadLetterQueueType(0) + return v113.DeadLetterQueueType(0) } -func (x *GetDLQMessagesResponse) GetReplicationTasks() []*v117.ReplicationTask { +func (x *GetDLQMessagesResponse) GetReplicationTasks() []*v118.ReplicationTask { if x != nil { return x.ReplicationTasks } @@ -6218,7 +6354,7 @@ func (x *GetDLQMessagesResponse) GetNextPageToken() []byte { return nil } -func (x *GetDLQMessagesResponse) GetReplicationTasksInfo() []*v117.ReplicationTaskInfo { +func (x *GetDLQMessagesResponse) GetReplicationTasksInfo() []*v118.ReplicationTaskInfo { if x != nil { return x.ReplicationTasksInfo } @@ -6227,7 +6363,7 @@ func (x *GetDLQMessagesResponse) GetReplicationTasksInfo() []*v117.ReplicationTa type PurgeDLQMessagesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - Type v112.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` + Type v113.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` InclusiveEndMessageId int64 `protobuf:"varint,4,opt,name=inclusive_end_message_id,json=inclusiveEndMessageId,proto3" json:"inclusive_end_message_id,omitempty"` @@ -6237,7 +6373,7 @@ type PurgeDLQMessagesRequest struct { func (x *PurgeDLQMessagesRequest) Reset() { *x = PurgeDLQMessagesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[86] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6249,7 +6385,7 @@ func (x *PurgeDLQMessagesRequest) String() string { func (*PurgeDLQMessagesRequest) ProtoMessage() {} func (x *PurgeDLQMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[86] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6262,14 +6398,14 @@ func (x *PurgeDLQMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PurgeDLQMessagesRequest.ProtoReflect.Descriptor instead. func (*PurgeDLQMessagesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{86} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{88} } -func (x *PurgeDLQMessagesRequest) GetType() v112.DeadLetterQueueType { +func (x *PurgeDLQMessagesRequest) GetType() v113.DeadLetterQueueType { if x != nil { return x.Type } - return v112.DeadLetterQueueType(0) + return v113.DeadLetterQueueType(0) } func (x *PurgeDLQMessagesRequest) GetShardId() int32 { @@ -6301,7 +6437,7 @@ type PurgeDLQMessagesResponse struct { func (x *PurgeDLQMessagesResponse) Reset() { *x = PurgeDLQMessagesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[87] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6313,7 +6449,7 @@ func (x *PurgeDLQMessagesResponse) String() string { func (*PurgeDLQMessagesResponse) ProtoMessage() {} func (x *PurgeDLQMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[87] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6326,12 +6462,12 @@ func (x *PurgeDLQMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PurgeDLQMessagesResponse.ProtoReflect.Descriptor instead. func (*PurgeDLQMessagesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{87} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{89} } type MergeDLQMessagesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - Type v112.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` + Type v113.DeadLetterQueueType `protobuf:"varint,1,opt,name=type,proto3,enum=temporal.server.api.enums.v1.DeadLetterQueueType" json:"type,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` InclusiveEndMessageId int64 `protobuf:"varint,4,opt,name=inclusive_end_message_id,json=inclusiveEndMessageId,proto3" json:"inclusive_end_message_id,omitempty"` @@ -6343,7 +6479,7 @@ type MergeDLQMessagesRequest struct { func (x *MergeDLQMessagesRequest) Reset() { *x = MergeDLQMessagesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[88] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6355,7 +6491,7 @@ func (x *MergeDLQMessagesRequest) String() string { func (*MergeDLQMessagesRequest) ProtoMessage() {} func (x *MergeDLQMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[88] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6368,14 +6504,14 @@ func (x *MergeDLQMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MergeDLQMessagesRequest.ProtoReflect.Descriptor instead. func (*MergeDLQMessagesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{88} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{90} } -func (x *MergeDLQMessagesRequest) GetType() v112.DeadLetterQueueType { +func (x *MergeDLQMessagesRequest) GetType() v113.DeadLetterQueueType { if x != nil { return x.Type } - return v112.DeadLetterQueueType(0) + return v113.DeadLetterQueueType(0) } func (x *MergeDLQMessagesRequest) GetShardId() int32 { @@ -6422,7 +6558,7 @@ type MergeDLQMessagesResponse struct { func (x *MergeDLQMessagesResponse) Reset() { *x = MergeDLQMessagesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[89] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6434,7 +6570,7 @@ func (x *MergeDLQMessagesResponse) String() string { func (*MergeDLQMessagesResponse) ProtoMessage() {} func (x *MergeDLQMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[89] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6447,7 +6583,7 @@ func (x *MergeDLQMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MergeDLQMessagesResponse.ProtoReflect.Descriptor instead. func (*MergeDLQMessagesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{89} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{91} } func (x *MergeDLQMessagesResponse) GetNextPageToken() []byte { @@ -6462,14 +6598,14 @@ type RefreshWorkflowTasksRequest struct { NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` // (-- api-linter: core::0141::forbidden-types=disabled --) ArchetypeId uint32 `protobuf:"varint,3,opt,name=archetype_id,json=archetypeId,proto3" json:"archetype_id,omitempty"` - Request *v118.RefreshWorkflowTasksRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Request *v119.RefreshWorkflowTasksRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RefreshWorkflowTasksRequest) Reset() { *x = RefreshWorkflowTasksRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[90] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6481,7 +6617,7 @@ func (x *RefreshWorkflowTasksRequest) String() string { func (*RefreshWorkflowTasksRequest) ProtoMessage() {} func (x *RefreshWorkflowTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[90] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[92] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6494,7 +6630,7 @@ func (x *RefreshWorkflowTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkflowTasksRequest.ProtoReflect.Descriptor instead. func (*RefreshWorkflowTasksRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{90} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{92} } func (x *RefreshWorkflowTasksRequest) GetNamespaceId() string { @@ -6511,7 +6647,7 @@ func (x *RefreshWorkflowTasksRequest) GetArchetypeId() uint32 { return 0 } -func (x *RefreshWorkflowTasksRequest) GetRequest() *v118.RefreshWorkflowTasksRequest { +func (x *RefreshWorkflowTasksRequest) GetRequest() *v119.RefreshWorkflowTasksRequest { if x != nil { return x.Request } @@ -6526,7 +6662,7 @@ type RefreshWorkflowTasksResponse struct { func (x *RefreshWorkflowTasksResponse) Reset() { *x = RefreshWorkflowTasksResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[91] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6538,7 +6674,7 @@ func (x *RefreshWorkflowTasksResponse) String() string { func (*RefreshWorkflowTasksResponse) ProtoMessage() {} func (x *RefreshWorkflowTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[91] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6551,7 +6687,7 @@ func (x *RefreshWorkflowTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshWorkflowTasksResponse.ProtoReflect.Descriptor instead. func (*RefreshWorkflowTasksResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{91} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{93} } type GenerateLastHistoryReplicationTasksRequest struct { @@ -6567,7 +6703,7 @@ type GenerateLastHistoryReplicationTasksRequest struct { func (x *GenerateLastHistoryReplicationTasksRequest) Reset() { *x = GenerateLastHistoryReplicationTasksRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[92] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6579,7 +6715,7 @@ func (x *GenerateLastHistoryReplicationTasksRequest) String() string { func (*GenerateLastHistoryReplicationTasksRequest) ProtoMessage() {} func (x *GenerateLastHistoryReplicationTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[92] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[94] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6592,7 +6728,7 @@ func (x *GenerateLastHistoryReplicationTasksRequest) ProtoReflect() protoreflect // Deprecated: Use GenerateLastHistoryReplicationTasksRequest.ProtoReflect.Descriptor instead. func (*GenerateLastHistoryReplicationTasksRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{92} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{94} } func (x *GenerateLastHistoryReplicationTasksRequest) GetNamespaceId() string { @@ -6633,7 +6769,7 @@ type GenerateLastHistoryReplicationTasksResponse struct { func (x *GenerateLastHistoryReplicationTasksResponse) Reset() { *x = GenerateLastHistoryReplicationTasksResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[93] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6645,7 +6781,7 @@ func (x *GenerateLastHistoryReplicationTasksResponse) String() string { func (*GenerateLastHistoryReplicationTasksResponse) ProtoMessage() {} func (x *GenerateLastHistoryReplicationTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[93] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[95] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6658,7 +6794,7 @@ func (x *GenerateLastHistoryReplicationTasksResponse) ProtoReflect() protoreflec // Deprecated: Use GenerateLastHistoryReplicationTasksResponse.ProtoReflect.Descriptor instead. func (*GenerateLastHistoryReplicationTasksResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{93} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{95} } func (x *GenerateLastHistoryReplicationTasksResponse) GetStateTransitionCount() int64 { @@ -6685,7 +6821,7 @@ type GetReplicationStatusRequest struct { func (x *GetReplicationStatusRequest) Reset() { *x = GetReplicationStatusRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[94] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6697,7 +6833,7 @@ func (x *GetReplicationStatusRequest) String() string { func (*GetReplicationStatusRequest) ProtoMessage() {} func (x *GetReplicationStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[94] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[96] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6710,7 +6846,7 @@ func (x *GetReplicationStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReplicationStatusRequest.ProtoReflect.Descriptor instead. func (*GetReplicationStatusRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{94} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{96} } func (x *GetReplicationStatusRequest) GetRemoteClusters() []string { @@ -6729,7 +6865,7 @@ type GetReplicationStatusResponse struct { func (x *GetReplicationStatusResponse) Reset() { *x = GetReplicationStatusResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[95] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6741,7 +6877,7 @@ func (x *GetReplicationStatusResponse) String() string { func (*GetReplicationStatusResponse) ProtoMessage() {} func (x *GetReplicationStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[95] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[97] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6754,7 +6890,7 @@ func (x *GetReplicationStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReplicationStatusResponse.ProtoReflect.Descriptor instead. func (*GetReplicationStatusResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{95} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{97} } func (x *GetReplicationStatusResponse) GetShards() []*ShardReplicationStatus { @@ -6780,7 +6916,7 @@ type ShardReplicationStatus struct { func (x *ShardReplicationStatus) Reset() { *x = ShardReplicationStatus{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[96] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6792,7 +6928,7 @@ func (x *ShardReplicationStatus) String() string { func (*ShardReplicationStatus) ProtoMessage() {} func (x *ShardReplicationStatus) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[96] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[98] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6805,7 +6941,7 @@ func (x *ShardReplicationStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardReplicationStatus.ProtoReflect.Descriptor instead. func (*ShardReplicationStatus) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{96} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{98} } func (x *ShardReplicationStatus) GetShardId() int32 { @@ -6860,7 +6996,7 @@ type HandoverNamespaceInfo struct { func (x *HandoverNamespaceInfo) Reset() { *x = HandoverNamespaceInfo{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[97] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6872,7 +7008,7 @@ func (x *HandoverNamespaceInfo) String() string { func (*HandoverNamespaceInfo) ProtoMessage() {} func (x *HandoverNamespaceInfo) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[97] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[99] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6885,7 +7021,7 @@ func (x *HandoverNamespaceInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use HandoverNamespaceInfo.ProtoReflect.Descriptor instead. func (*HandoverNamespaceInfo) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{97} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{99} } func (x *HandoverNamespaceInfo) GetHandoverReplicationTaskId() int64 { @@ -6907,7 +7043,7 @@ type ShardReplicationStatusPerCluster struct { func (x *ShardReplicationStatusPerCluster) Reset() { *x = ShardReplicationStatusPerCluster{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[98] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6919,7 +7055,7 @@ func (x *ShardReplicationStatusPerCluster) String() string { func (*ShardReplicationStatusPerCluster) ProtoMessage() {} func (x *ShardReplicationStatusPerCluster) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[98] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[100] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6932,7 +7068,7 @@ func (x *ShardReplicationStatusPerCluster) ProtoReflect() protoreflect.Message { // Deprecated: Use ShardReplicationStatusPerCluster.ProtoReflect.Descriptor instead. func (*ShardReplicationStatusPerCluster) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{98} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{100} } func (x *ShardReplicationStatusPerCluster) GetAckedTaskId() int64 { @@ -6959,7 +7095,7 @@ type RebuildMutableStateRequest struct { func (x *RebuildMutableStateRequest) Reset() { *x = RebuildMutableStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[99] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6971,7 +7107,7 @@ func (x *RebuildMutableStateRequest) String() string { func (*RebuildMutableStateRequest) ProtoMessage() {} func (x *RebuildMutableStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[99] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[101] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6984,7 +7120,7 @@ func (x *RebuildMutableStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RebuildMutableStateRequest.ProtoReflect.Descriptor instead. func (*RebuildMutableStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{99} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{101} } func (x *RebuildMutableStateRequest) GetNamespaceId() string { @@ -7009,7 +7145,7 @@ type RebuildMutableStateResponse struct { func (x *RebuildMutableStateResponse) Reset() { *x = RebuildMutableStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[100] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7021,7 +7157,7 @@ func (x *RebuildMutableStateResponse) String() string { func (*RebuildMutableStateResponse) ProtoMessage() {} func (x *RebuildMutableStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[100] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[102] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7034,7 +7170,7 @@ func (x *RebuildMutableStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RebuildMutableStateResponse.ProtoReflect.Descriptor instead. func (*RebuildMutableStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{100} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{102} } type ImportWorkflowExecutionRequest struct { @@ -7042,7 +7178,7 @@ type ImportWorkflowExecutionRequest struct { NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` Execution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=execution,proto3" json:"execution,omitempty"` HistoryBatches []*v14.DataBlob `protobuf:"bytes,3,rep,name=history_batches,json=historyBatches,proto3" json:"history_batches,omitempty"` - VersionHistory *v19.VersionHistory `protobuf:"bytes,4,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` + VersionHistory *v110.VersionHistory `protobuf:"bytes,4,opt,name=version_history,json=versionHistory,proto3" json:"version_history,omitempty"` Token []byte `protobuf:"bytes,5,opt,name=token,proto3" json:"token,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -7050,7 +7186,7 @@ type ImportWorkflowExecutionRequest struct { func (x *ImportWorkflowExecutionRequest) Reset() { *x = ImportWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[101] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7062,7 +7198,7 @@ func (x *ImportWorkflowExecutionRequest) String() string { func (*ImportWorkflowExecutionRequest) ProtoMessage() {} func (x *ImportWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[101] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[103] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7075,7 +7211,7 @@ func (x *ImportWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*ImportWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{101} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{103} } func (x *ImportWorkflowExecutionRequest) GetNamespaceId() string { @@ -7099,7 +7235,7 @@ func (x *ImportWorkflowExecutionRequest) GetHistoryBatches() []*v14.DataBlob { return nil } -func (x *ImportWorkflowExecutionRequest) GetVersionHistory() *v19.VersionHistory { +func (x *ImportWorkflowExecutionRequest) GetVersionHistory() *v110.VersionHistory { if x != nil { return x.VersionHistory } @@ -7123,7 +7259,7 @@ type ImportWorkflowExecutionResponse struct { func (x *ImportWorkflowExecutionResponse) Reset() { *x = ImportWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[102] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7135,7 +7271,7 @@ func (x *ImportWorkflowExecutionResponse) String() string { func (*ImportWorkflowExecutionResponse) ProtoMessage() {} func (x *ImportWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[102] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[104] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7148,7 +7284,7 @@ func (x *ImportWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ImportWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*ImportWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{102} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{104} } func (x *ImportWorkflowExecutionResponse) GetToken() []byte { @@ -7177,7 +7313,7 @@ type DeleteWorkflowVisibilityRecordRequest struct { func (x *DeleteWorkflowVisibilityRecordRequest) Reset() { *x = DeleteWorkflowVisibilityRecordRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[103] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7189,7 +7325,7 @@ func (x *DeleteWorkflowVisibilityRecordRequest) String() string { func (*DeleteWorkflowVisibilityRecordRequest) ProtoMessage() {} func (x *DeleteWorkflowVisibilityRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[103] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[105] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7202,7 +7338,7 @@ func (x *DeleteWorkflowVisibilityRecordRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use DeleteWorkflowVisibilityRecordRequest.ProtoReflect.Descriptor instead. func (*DeleteWorkflowVisibilityRecordRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{103} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{105} } func (x *DeleteWorkflowVisibilityRecordRequest) GetNamespaceId() string { @@ -7241,7 +7377,7 @@ type DeleteWorkflowVisibilityRecordResponse struct { func (x *DeleteWorkflowVisibilityRecordResponse) Reset() { *x = DeleteWorkflowVisibilityRecordResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[104] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7253,7 +7389,7 @@ func (x *DeleteWorkflowVisibilityRecordResponse) String() string { func (*DeleteWorkflowVisibilityRecordResponse) ProtoMessage() {} func (x *DeleteWorkflowVisibilityRecordResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[104] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[106] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7266,7 +7402,7 @@ func (x *DeleteWorkflowVisibilityRecordResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use DeleteWorkflowVisibilityRecordResponse.ProtoReflect.Descriptor instead. func (*DeleteWorkflowVisibilityRecordResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{104} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{106} } // (-- api-linter: core::0134=disabled @@ -7282,7 +7418,7 @@ type UpdateWorkflowExecutionRequest struct { func (x *UpdateWorkflowExecutionRequest) Reset() { *x = UpdateWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[105] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7294,7 +7430,7 @@ func (x *UpdateWorkflowExecutionRequest) String() string { func (*UpdateWorkflowExecutionRequest) ProtoMessage() {} func (x *UpdateWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[105] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[107] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7307,7 +7443,7 @@ func (x *UpdateWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*UpdateWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{105} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{107} } func (x *UpdateWorkflowExecutionRequest) GetNamespaceId() string { @@ -7333,7 +7469,7 @@ type UpdateWorkflowExecutionResponse struct { func (x *UpdateWorkflowExecutionResponse) Reset() { *x = UpdateWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[106] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7345,7 +7481,7 @@ func (x *UpdateWorkflowExecutionResponse) String() string { func (*UpdateWorkflowExecutionResponse) ProtoMessage() {} func (x *UpdateWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[106] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[108] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7358,7 +7494,7 @@ func (x *UpdateWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*UpdateWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{106} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{108} } func (x *UpdateWorkflowExecutionResponse) GetResponse() *v1.UpdateWorkflowExecutionResponse { @@ -7380,7 +7516,7 @@ type StreamWorkflowReplicationMessagesRequest struct { func (x *StreamWorkflowReplicationMessagesRequest) Reset() { *x = StreamWorkflowReplicationMessagesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[107] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7392,7 +7528,7 @@ func (x *StreamWorkflowReplicationMessagesRequest) String() string { func (*StreamWorkflowReplicationMessagesRequest) ProtoMessage() {} func (x *StreamWorkflowReplicationMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[107] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[109] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7405,7 +7541,7 @@ func (x *StreamWorkflowReplicationMessagesRequest) ProtoReflect() protoreflect.M // Deprecated: Use StreamWorkflowReplicationMessagesRequest.ProtoReflect.Descriptor instead. func (*StreamWorkflowReplicationMessagesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{107} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{109} } func (x *StreamWorkflowReplicationMessagesRequest) GetAttributes() isStreamWorkflowReplicationMessagesRequest_Attributes { @@ -7415,7 +7551,7 @@ func (x *StreamWorkflowReplicationMessagesRequest) GetAttributes() isStreamWorkf return nil } -func (x *StreamWorkflowReplicationMessagesRequest) GetSyncReplicationState() *v117.SyncReplicationState { +func (x *StreamWorkflowReplicationMessagesRequest) GetSyncReplicationState() *v118.SyncReplicationState { if x != nil { if x, ok := x.Attributes.(*StreamWorkflowReplicationMessagesRequest_SyncReplicationState); ok { return x.SyncReplicationState @@ -7429,7 +7565,7 @@ type isStreamWorkflowReplicationMessagesRequest_Attributes interface { } type StreamWorkflowReplicationMessagesRequest_SyncReplicationState struct { - SyncReplicationState *v117.SyncReplicationState `protobuf:"bytes,1,opt,name=sync_replication_state,json=syncReplicationState,proto3,oneof"` + SyncReplicationState *v118.SyncReplicationState `protobuf:"bytes,1,opt,name=sync_replication_state,json=syncReplicationState,proto3,oneof"` } func (*StreamWorkflowReplicationMessagesRequest_SyncReplicationState) isStreamWorkflowReplicationMessagesRequest_Attributes() { @@ -7447,7 +7583,7 @@ type StreamWorkflowReplicationMessagesResponse struct { func (x *StreamWorkflowReplicationMessagesResponse) Reset() { *x = StreamWorkflowReplicationMessagesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[108] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7459,7 +7595,7 @@ func (x *StreamWorkflowReplicationMessagesResponse) String() string { func (*StreamWorkflowReplicationMessagesResponse) ProtoMessage() {} func (x *StreamWorkflowReplicationMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[108] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[110] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7472,7 +7608,7 @@ func (x *StreamWorkflowReplicationMessagesResponse) ProtoReflect() protoreflect. // Deprecated: Use StreamWorkflowReplicationMessagesResponse.ProtoReflect.Descriptor instead. func (*StreamWorkflowReplicationMessagesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{108} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{110} } func (x *StreamWorkflowReplicationMessagesResponse) GetAttributes() isStreamWorkflowReplicationMessagesResponse_Attributes { @@ -7482,7 +7618,7 @@ func (x *StreamWorkflowReplicationMessagesResponse) GetAttributes() isStreamWork return nil } -func (x *StreamWorkflowReplicationMessagesResponse) GetMessages() *v117.WorkflowReplicationMessages { +func (x *StreamWorkflowReplicationMessagesResponse) GetMessages() *v118.WorkflowReplicationMessages { if x != nil { if x, ok := x.Attributes.(*StreamWorkflowReplicationMessagesResponse_Messages); ok { return x.Messages @@ -7496,7 +7632,7 @@ type isStreamWorkflowReplicationMessagesResponse_Attributes interface { } type StreamWorkflowReplicationMessagesResponse_Messages struct { - Messages *v117.WorkflowReplicationMessages `protobuf:"bytes,1,opt,name=messages,proto3,oneof"` + Messages *v118.WorkflowReplicationMessages `protobuf:"bytes,1,opt,name=messages,proto3,oneof"` } func (*StreamWorkflowReplicationMessagesResponse_Messages) isStreamWorkflowReplicationMessagesResponse_Attributes() { @@ -7512,7 +7648,7 @@ type PollWorkflowExecutionUpdateRequest struct { func (x *PollWorkflowExecutionUpdateRequest) Reset() { *x = PollWorkflowExecutionUpdateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[109] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7524,7 +7660,7 @@ func (x *PollWorkflowExecutionUpdateRequest) String() string { func (*PollWorkflowExecutionUpdateRequest) ProtoMessage() {} func (x *PollWorkflowExecutionUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[109] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[111] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7537,7 +7673,7 @@ func (x *PollWorkflowExecutionUpdateRequest) ProtoReflect() protoreflect.Message // Deprecated: Use PollWorkflowExecutionUpdateRequest.ProtoReflect.Descriptor instead. func (*PollWorkflowExecutionUpdateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{109} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{111} } func (x *PollWorkflowExecutionUpdateRequest) GetNamespaceId() string { @@ -7563,7 +7699,7 @@ type PollWorkflowExecutionUpdateResponse struct { func (x *PollWorkflowExecutionUpdateResponse) Reset() { *x = PollWorkflowExecutionUpdateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[110] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7575,7 +7711,7 @@ func (x *PollWorkflowExecutionUpdateResponse) String() string { func (*PollWorkflowExecutionUpdateResponse) ProtoMessage() {} func (x *PollWorkflowExecutionUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[110] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[112] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7588,7 +7724,7 @@ func (x *PollWorkflowExecutionUpdateResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use PollWorkflowExecutionUpdateResponse.ProtoReflect.Descriptor instead. func (*PollWorkflowExecutionUpdateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{110} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{112} } func (x *PollWorkflowExecutionUpdateResponse) GetResponse() *v1.PollWorkflowExecutionUpdateResponse { @@ -7608,7 +7744,7 @@ type GetWorkflowExecutionHistoryRequest struct { func (x *GetWorkflowExecutionHistoryRequest) Reset() { *x = GetWorkflowExecutionHistoryRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[111] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7620,7 +7756,7 @@ func (x *GetWorkflowExecutionHistoryRequest) String() string { func (*GetWorkflowExecutionHistoryRequest) ProtoMessage() {} func (x *GetWorkflowExecutionHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[111] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[113] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7633,7 +7769,7 @@ func (x *GetWorkflowExecutionHistoryRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GetWorkflowExecutionHistoryRequest.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionHistoryRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{111} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{113} } func (x *GetWorkflowExecutionHistoryRequest) GetNamespaceId() string { @@ -7660,7 +7796,7 @@ type GetWorkflowExecutionHistoryResponse struct { func (x *GetWorkflowExecutionHistoryResponse) Reset() { *x = GetWorkflowExecutionHistoryResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[112] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7672,7 +7808,7 @@ func (x *GetWorkflowExecutionHistoryResponse) String() string { func (*GetWorkflowExecutionHistoryResponse) ProtoMessage() {} func (x *GetWorkflowExecutionHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[112] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[114] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7685,7 +7821,7 @@ func (x *GetWorkflowExecutionHistoryResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use GetWorkflowExecutionHistoryResponse.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionHistoryResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{112} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{114} } func (x *GetWorkflowExecutionHistoryResponse) GetResponse() *v1.GetWorkflowExecutionHistoryResponse { @@ -7713,7 +7849,7 @@ type GetWorkflowExecutionHistoryResponseWithRaw struct { func (x *GetWorkflowExecutionHistoryResponseWithRaw) Reset() { *x = GetWorkflowExecutionHistoryResponseWithRaw{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[113] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7725,7 +7861,7 @@ func (x *GetWorkflowExecutionHistoryResponseWithRaw) String() string { func (*GetWorkflowExecutionHistoryResponseWithRaw) ProtoMessage() {} func (x *GetWorkflowExecutionHistoryResponseWithRaw) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[113] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[115] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7738,7 +7874,7 @@ func (x *GetWorkflowExecutionHistoryResponseWithRaw) ProtoReflect() protoreflect // Deprecated: Use GetWorkflowExecutionHistoryResponseWithRaw.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionHistoryResponseWithRaw) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{113} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{115} } func (x *GetWorkflowExecutionHistoryResponseWithRaw) GetResponse() *v1.GetWorkflowExecutionHistoryResponse { @@ -7765,7 +7901,7 @@ type GetWorkflowExecutionHistoryReverseRequest struct { func (x *GetWorkflowExecutionHistoryReverseRequest) Reset() { *x = GetWorkflowExecutionHistoryReverseRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[114] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7777,7 +7913,7 @@ func (x *GetWorkflowExecutionHistoryReverseRequest) String() string { func (*GetWorkflowExecutionHistoryReverseRequest) ProtoMessage() {} func (x *GetWorkflowExecutionHistoryReverseRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[114] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[116] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7790,7 +7926,7 @@ func (x *GetWorkflowExecutionHistoryReverseRequest) ProtoReflect() protoreflect. // Deprecated: Use GetWorkflowExecutionHistoryReverseRequest.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionHistoryReverseRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{114} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{116} } func (x *GetWorkflowExecutionHistoryReverseRequest) GetNamespaceId() string { @@ -7816,7 +7952,7 @@ type GetWorkflowExecutionHistoryReverseResponse struct { func (x *GetWorkflowExecutionHistoryReverseResponse) Reset() { *x = GetWorkflowExecutionHistoryReverseResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[115] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7828,7 +7964,7 @@ func (x *GetWorkflowExecutionHistoryReverseResponse) String() string { func (*GetWorkflowExecutionHistoryReverseResponse) ProtoMessage() {} func (x *GetWorkflowExecutionHistoryReverseResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[115] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[117] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7841,7 +7977,7 @@ func (x *GetWorkflowExecutionHistoryReverseResponse) ProtoReflect() protoreflect // Deprecated: Use GetWorkflowExecutionHistoryReverseResponse.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionHistoryReverseResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{115} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{117} } func (x *GetWorkflowExecutionHistoryReverseResponse) GetResponse() *v1.GetWorkflowExecutionHistoryReverseResponse { @@ -7857,14 +7993,14 @@ func (x *GetWorkflowExecutionHistoryReverseResponse) GetResponse() *v1.GetWorkfl type GetWorkflowExecutionRawHistoryV2Request struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Request *v118.GetWorkflowExecutionRawHistoryV2Request `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Request *v119.GetWorkflowExecutionRawHistoryV2Request `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetWorkflowExecutionRawHistoryV2Request) Reset() { *x = GetWorkflowExecutionRawHistoryV2Request{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[116] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7876,7 +8012,7 @@ func (x *GetWorkflowExecutionRawHistoryV2Request) String() string { func (*GetWorkflowExecutionRawHistoryV2Request) ProtoMessage() {} func (x *GetWorkflowExecutionRawHistoryV2Request) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[116] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[118] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7889,7 +8025,7 @@ func (x *GetWorkflowExecutionRawHistoryV2Request) ProtoReflect() protoreflect.Me // Deprecated: Use GetWorkflowExecutionRawHistoryV2Request.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionRawHistoryV2Request) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{116} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{118} } func (x *GetWorkflowExecutionRawHistoryV2Request) GetNamespaceId() string { @@ -7899,7 +8035,7 @@ func (x *GetWorkflowExecutionRawHistoryV2Request) GetNamespaceId() string { return "" } -func (x *GetWorkflowExecutionRawHistoryV2Request) GetRequest() *v118.GetWorkflowExecutionRawHistoryV2Request { +func (x *GetWorkflowExecutionRawHistoryV2Request) GetRequest() *v119.GetWorkflowExecutionRawHistoryV2Request { if x != nil { return x.Request } @@ -7908,14 +8044,14 @@ func (x *GetWorkflowExecutionRawHistoryV2Request) GetRequest() *v118.GetWorkflow type GetWorkflowExecutionRawHistoryV2Response struct { state protoimpl.MessageState `protogen:"open.v1"` - Response *v118.GetWorkflowExecutionRawHistoryV2Response `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *v119.GetWorkflowExecutionRawHistoryV2Response `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetWorkflowExecutionRawHistoryV2Response) Reset() { *x = GetWorkflowExecutionRawHistoryV2Response{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[117] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7927,7 +8063,7 @@ func (x *GetWorkflowExecutionRawHistoryV2Response) String() string { func (*GetWorkflowExecutionRawHistoryV2Response) ProtoMessage() {} func (x *GetWorkflowExecutionRawHistoryV2Response) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[117] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[119] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7940,10 +8076,10 @@ func (x *GetWorkflowExecutionRawHistoryV2Response) ProtoReflect() protoreflect.M // Deprecated: Use GetWorkflowExecutionRawHistoryV2Response.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionRawHistoryV2Response) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{117} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{119} } -func (x *GetWorkflowExecutionRawHistoryV2Response) GetResponse() *v118.GetWorkflowExecutionRawHistoryV2Response { +func (x *GetWorkflowExecutionRawHistoryV2Response) GetResponse() *v119.GetWorkflowExecutionRawHistoryV2Response { if x != nil { return x.Response } @@ -7953,14 +8089,14 @@ func (x *GetWorkflowExecutionRawHistoryV2Response) GetResponse() *v118.GetWorkfl type GetWorkflowExecutionRawHistoryRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - Request *v118.GetWorkflowExecutionRawHistoryRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Request *v119.GetWorkflowExecutionRawHistoryRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetWorkflowExecutionRawHistoryRequest) Reset() { *x = GetWorkflowExecutionRawHistoryRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[118] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7972,7 +8108,7 @@ func (x *GetWorkflowExecutionRawHistoryRequest) String() string { func (*GetWorkflowExecutionRawHistoryRequest) ProtoMessage() {} func (x *GetWorkflowExecutionRawHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[118] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[120] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7985,7 +8121,7 @@ func (x *GetWorkflowExecutionRawHistoryRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use GetWorkflowExecutionRawHistoryRequest.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionRawHistoryRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{118} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{120} } func (x *GetWorkflowExecutionRawHistoryRequest) GetNamespaceId() string { @@ -7995,7 +8131,7 @@ func (x *GetWorkflowExecutionRawHistoryRequest) GetNamespaceId() string { return "" } -func (x *GetWorkflowExecutionRawHistoryRequest) GetRequest() *v118.GetWorkflowExecutionRawHistoryRequest { +func (x *GetWorkflowExecutionRawHistoryRequest) GetRequest() *v119.GetWorkflowExecutionRawHistoryRequest { if x != nil { return x.Request } @@ -8004,14 +8140,14 @@ func (x *GetWorkflowExecutionRawHistoryRequest) GetRequest() *v118.GetWorkflowEx type GetWorkflowExecutionRawHistoryResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Response *v118.GetWorkflowExecutionRawHistoryResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *v119.GetWorkflowExecutionRawHistoryResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetWorkflowExecutionRawHistoryResponse) Reset() { *x = GetWorkflowExecutionRawHistoryResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[119] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8023,7 +8159,7 @@ func (x *GetWorkflowExecutionRawHistoryResponse) String() string { func (*GetWorkflowExecutionRawHistoryResponse) ProtoMessage() {} func (x *GetWorkflowExecutionRawHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[119] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[121] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8036,10 +8172,10 @@ func (x *GetWorkflowExecutionRawHistoryResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use GetWorkflowExecutionRawHistoryResponse.ProtoReflect.Descriptor instead. func (*GetWorkflowExecutionRawHistoryResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{119} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{121} } -func (x *GetWorkflowExecutionRawHistoryResponse) GetResponse() *v118.GetWorkflowExecutionRawHistoryResponse { +func (x *GetWorkflowExecutionRawHistoryResponse) GetResponse() *v119.GetWorkflowExecutionRawHistoryResponse { if x != nil { return x.Response } @@ -8051,14 +8187,14 @@ type ForceDeleteWorkflowExecutionRequest struct { NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` // (-- api-linter: core::0141::forbidden-types=disabled --) ArchetypeId uint32 `protobuf:"varint,3,opt,name=archetype_id,json=archetypeId,proto3" json:"archetype_id,omitempty"` - Request *v118.DeleteWorkflowExecutionRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + Request *v119.DeleteWorkflowExecutionRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ForceDeleteWorkflowExecutionRequest) Reset() { *x = ForceDeleteWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[120] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8070,7 +8206,7 @@ func (x *ForceDeleteWorkflowExecutionRequest) String() string { func (*ForceDeleteWorkflowExecutionRequest) ProtoMessage() {} func (x *ForceDeleteWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[120] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[122] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8083,7 +8219,7 @@ func (x *ForceDeleteWorkflowExecutionRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use ForceDeleteWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*ForceDeleteWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{120} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{122} } func (x *ForceDeleteWorkflowExecutionRequest) GetNamespaceId() string { @@ -8100,7 +8236,7 @@ func (x *ForceDeleteWorkflowExecutionRequest) GetArchetypeId() uint32 { return 0 } -func (x *ForceDeleteWorkflowExecutionRequest) GetRequest() *v118.DeleteWorkflowExecutionRequest { +func (x *ForceDeleteWorkflowExecutionRequest) GetRequest() *v119.DeleteWorkflowExecutionRequest { if x != nil { return x.Request } @@ -8109,14 +8245,14 @@ func (x *ForceDeleteWorkflowExecutionRequest) GetRequest() *v118.DeleteWorkflowE type ForceDeleteWorkflowExecutionResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Response *v118.DeleteWorkflowExecutionResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *v119.DeleteWorkflowExecutionResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ForceDeleteWorkflowExecutionResponse) Reset() { *x = ForceDeleteWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[121] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8128,7 +8264,7 @@ func (x *ForceDeleteWorkflowExecutionResponse) String() string { func (*ForceDeleteWorkflowExecutionResponse) ProtoMessage() {} func (x *ForceDeleteWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[121] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[123] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8141,10 +8277,10 @@ func (x *ForceDeleteWorkflowExecutionResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use ForceDeleteWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*ForceDeleteWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{121} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{123} } -func (x *ForceDeleteWorkflowExecutionResponse) GetResponse() *v118.DeleteWorkflowExecutionResponse { +func (x *ForceDeleteWorkflowExecutionResponse) GetResponse() *v119.DeleteWorkflowExecutionResponse { if x != nil { return x.Response } @@ -8165,7 +8301,7 @@ type DeleteExecutionRequest struct { func (x *DeleteExecutionRequest) Reset() { *x = DeleteExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[122] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8177,7 +8313,7 @@ func (x *DeleteExecutionRequest) String() string { func (*DeleteExecutionRequest) ProtoMessage() {} func (x *DeleteExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[122] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[124] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8190,7 +8326,7 @@ func (x *DeleteExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteExecutionRequest.ProtoReflect.Descriptor instead. func (*DeleteExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{122} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{124} } func (x *DeleteExecutionRequest) GetNamespaceId() string { @@ -8236,7 +8372,7 @@ type DeleteExecutionResponse struct { func (x *DeleteExecutionResponse) Reset() { *x = DeleteExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[123] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8248,7 +8384,7 @@ func (x *DeleteExecutionResponse) String() string { func (*DeleteExecutionResponse) ProtoMessage() {} func (x *DeleteExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[123] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[125] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8261,12 +8397,12 @@ func (x *DeleteExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteExecutionResponse.ProtoReflect.Descriptor instead. func (*DeleteExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{123} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{125} } type GetDLQTasksRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - DlqKey *v119.HistoryDLQKey `protobuf:"bytes,1,opt,name=dlq_key,json=dlqKey,proto3" json:"dlq_key,omitempty"` + DlqKey *v120.HistoryDLQKey `protobuf:"bytes,1,opt,name=dlq_key,json=dlqKey,proto3" json:"dlq_key,omitempty"` // page_size must be positive. Up to this many tasks will be returned. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` NextPageToken []byte `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` @@ -8276,7 +8412,7 @@ type GetDLQTasksRequest struct { func (x *GetDLQTasksRequest) Reset() { *x = GetDLQTasksRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[124] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8288,7 +8424,7 @@ func (x *GetDLQTasksRequest) String() string { func (*GetDLQTasksRequest) ProtoMessage() {} func (x *GetDLQTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[124] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[126] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8301,10 +8437,10 @@ func (x *GetDLQTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDLQTasksRequest.ProtoReflect.Descriptor instead. func (*GetDLQTasksRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{124} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{126} } -func (x *GetDLQTasksRequest) GetDlqKey() *v119.HistoryDLQKey { +func (x *GetDLQTasksRequest) GetDlqKey() *v120.HistoryDLQKey { if x != nil { return x.DlqKey } @@ -8327,7 +8463,7 @@ func (x *GetDLQTasksRequest) GetNextPageToken() []byte { type GetDLQTasksResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - DlqTasks []*v119.HistoryDLQTask `protobuf:"bytes,1,rep,name=dlq_tasks,json=dlqTasks,proto3" json:"dlq_tasks,omitempty"` + DlqTasks []*v120.HistoryDLQTask `protobuf:"bytes,1,rep,name=dlq_tasks,json=dlqTasks,proto3" json:"dlq_tasks,omitempty"` // next_page_token is empty if there are no more results. However, the converse is not true. If there are no more // results, this field may still be non-empty. This is to avoid having to do a count query to determine whether // there are more results. @@ -8338,7 +8474,7 @@ type GetDLQTasksResponse struct { func (x *GetDLQTasksResponse) Reset() { *x = GetDLQTasksResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[125] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8350,7 +8486,7 @@ func (x *GetDLQTasksResponse) String() string { func (*GetDLQTasksResponse) ProtoMessage() {} func (x *GetDLQTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[125] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[127] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8363,10 +8499,10 @@ func (x *GetDLQTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDLQTasksResponse.ProtoReflect.Descriptor instead. func (*GetDLQTasksResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{125} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{127} } -func (x *GetDLQTasksResponse) GetDlqTasks() []*v119.HistoryDLQTask { +func (x *GetDLQTasksResponse) GetDlqTasks() []*v120.HistoryDLQTask { if x != nil { return x.DlqTasks } @@ -8382,15 +8518,15 @@ func (x *GetDLQTasksResponse) GetNextPageToken() []byte { type DeleteDLQTasksRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - DlqKey *v119.HistoryDLQKey `protobuf:"bytes,1,opt,name=dlq_key,json=dlqKey,proto3" json:"dlq_key,omitempty"` - InclusiveMaxTaskMetadata *v119.HistoryDLQTaskMetadata `protobuf:"bytes,2,opt,name=inclusive_max_task_metadata,json=inclusiveMaxTaskMetadata,proto3" json:"inclusive_max_task_metadata,omitempty"` + DlqKey *v120.HistoryDLQKey `protobuf:"bytes,1,opt,name=dlq_key,json=dlqKey,proto3" json:"dlq_key,omitempty"` + InclusiveMaxTaskMetadata *v120.HistoryDLQTaskMetadata `protobuf:"bytes,2,opt,name=inclusive_max_task_metadata,json=inclusiveMaxTaskMetadata,proto3" json:"inclusive_max_task_metadata,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteDLQTasksRequest) Reset() { *x = DeleteDLQTasksRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[126] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8402,7 +8538,7 @@ func (x *DeleteDLQTasksRequest) String() string { func (*DeleteDLQTasksRequest) ProtoMessage() {} func (x *DeleteDLQTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[126] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[128] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8415,17 +8551,17 @@ func (x *DeleteDLQTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteDLQTasksRequest.ProtoReflect.Descriptor instead. func (*DeleteDLQTasksRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{126} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{128} } -func (x *DeleteDLQTasksRequest) GetDlqKey() *v119.HistoryDLQKey { +func (x *DeleteDLQTasksRequest) GetDlqKey() *v120.HistoryDLQKey { if x != nil { return x.DlqKey } return nil } -func (x *DeleteDLQTasksRequest) GetInclusiveMaxTaskMetadata() *v119.HistoryDLQTaskMetadata { +func (x *DeleteDLQTasksRequest) GetInclusiveMaxTaskMetadata() *v120.HistoryDLQTaskMetadata { if x != nil { return x.InclusiveMaxTaskMetadata } @@ -8442,7 +8578,7 @@ type DeleteDLQTasksResponse struct { func (x *DeleteDLQTasksResponse) Reset() { *x = DeleteDLQTasksResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[127] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8454,7 +8590,7 @@ func (x *DeleteDLQTasksResponse) String() string { func (*DeleteDLQTasksResponse) ProtoMessage() {} func (x *DeleteDLQTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[127] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[129] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8467,7 +8603,7 @@ func (x *DeleteDLQTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteDLQTasksResponse.ProtoReflect.Descriptor instead. func (*DeleteDLQTasksResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{127} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{129} } func (x *DeleteDLQTasksResponse) GetMessagesDeleted() int64 { @@ -8488,7 +8624,7 @@ type ListQueuesRequest struct { func (x *ListQueuesRequest) Reset() { *x = ListQueuesRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[128] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8500,7 +8636,7 @@ func (x *ListQueuesRequest) String() string { func (*ListQueuesRequest) ProtoMessage() {} func (x *ListQueuesRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[128] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[130] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8513,7 +8649,7 @@ func (x *ListQueuesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListQueuesRequest.ProtoReflect.Descriptor instead. func (*ListQueuesRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{128} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{130} } func (x *ListQueuesRequest) GetQueueType() int32 { @@ -8547,7 +8683,7 @@ type ListQueuesResponse struct { func (x *ListQueuesResponse) Reset() { *x = ListQueuesResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[129] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8559,7 +8695,7 @@ func (x *ListQueuesResponse) String() string { func (*ListQueuesResponse) ProtoMessage() {} func (x *ListQueuesResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[129] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[131] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8572,7 +8708,7 @@ func (x *ListQueuesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListQueuesResponse.ProtoReflect.Descriptor instead. func (*ListQueuesResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{129} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{131} } func (x *ListQueuesResponse) GetQueues() []*ListQueuesResponse_QueueInfo { @@ -8603,7 +8739,7 @@ type AddTasksRequest struct { func (x *AddTasksRequest) Reset() { *x = AddTasksRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[130] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8615,7 +8751,7 @@ func (x *AddTasksRequest) String() string { func (*AddTasksRequest) ProtoMessage() {} func (x *AddTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[130] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[132] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8628,7 +8764,7 @@ func (x *AddTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTasksRequest.ProtoReflect.Descriptor instead. func (*AddTasksRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{130} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{132} } func (x *AddTasksRequest) GetShardId() int32 { @@ -8653,7 +8789,7 @@ type AddTasksResponse struct { func (x *AddTasksResponse) Reset() { *x = AddTasksResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[131] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8665,7 +8801,7 @@ func (x *AddTasksResponse) String() string { func (*AddTasksResponse) ProtoMessage() {} func (x *AddTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[131] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[133] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8678,19 +8814,19 @@ func (x *AddTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTasksResponse.ProtoReflect.Descriptor instead. func (*AddTasksResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{131} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{133} } type ListTasksRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - Request *v118.ListHistoryTasksRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"` + Request *v119.ListHistoryTasksRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListTasksRequest) Reset() { *x = ListTasksRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[132] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8702,7 +8838,7 @@ func (x *ListTasksRequest) String() string { func (*ListTasksRequest) ProtoMessage() {} func (x *ListTasksRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[132] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[134] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8715,10 +8851,10 @@ func (x *ListTasksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTasksRequest.ProtoReflect.Descriptor instead. func (*ListTasksRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{132} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{134} } -func (x *ListTasksRequest) GetRequest() *v118.ListHistoryTasksRequest { +func (x *ListTasksRequest) GetRequest() *v119.ListHistoryTasksRequest { if x != nil { return x.Request } @@ -8727,14 +8863,14 @@ func (x *ListTasksRequest) GetRequest() *v118.ListHistoryTasksRequest { type ListTasksResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Response *v118.ListHistoryTasksResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *v119.ListHistoryTasksResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListTasksResponse) Reset() { *x = ListTasksResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[133] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8746,7 +8882,7 @@ func (x *ListTasksResponse) String() string { func (*ListTasksResponse) ProtoMessage() {} func (x *ListTasksResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[133] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[135] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8759,10 +8895,10 @@ func (x *ListTasksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTasksResponse.ProtoReflect.Descriptor instead. func (*ListTasksResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{133} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{135} } -func (x *ListTasksResponse) GetResponse() *v118.ListHistoryTasksResponse { +func (x *ListTasksResponse) GetResponse() *v119.ListHistoryTasksResponse { if x != nil { return x.Response } @@ -8772,7 +8908,7 @@ func (x *ListTasksResponse) GetResponse() *v118.ListHistoryTasksResponse { type CompleteNexusOperationChasmRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Completion token - holds information for locating an entity and the corresponding component. - Completion *v120.NexusOperationCompletion `protobuf:"bytes,1,opt,name=completion,proto3" json:"completion,omitempty"` + Completion *v121.NexusOperationCompletion `protobuf:"bytes,1,opt,name=completion,proto3" json:"completion,omitempty"` // Types that are valid to be assigned to Outcome: // // *CompleteNexusOperationChasmRequest_Success @@ -8793,7 +8929,7 @@ type CompleteNexusOperationChasmRequest struct { func (x *CompleteNexusOperationChasmRequest) Reset() { *x = CompleteNexusOperationChasmRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[134] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8805,7 +8941,7 @@ func (x *CompleteNexusOperationChasmRequest) String() string { func (*CompleteNexusOperationChasmRequest) ProtoMessage() {} func (x *CompleteNexusOperationChasmRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[134] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[136] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8818,10 +8954,10 @@ func (x *CompleteNexusOperationChasmRequest) ProtoReflect() protoreflect.Message // Deprecated: Use CompleteNexusOperationChasmRequest.ProtoReflect.Descriptor instead. func (*CompleteNexusOperationChasmRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{134} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{136} } -func (x *CompleteNexusOperationChasmRequest) GetCompletion() *v120.NexusOperationCompletion { +func (x *CompleteNexusOperationChasmRequest) GetCompletion() *v121.NexusOperationCompletion { if x != nil { return x.Completion } @@ -8907,7 +9043,7 @@ type CompleteNexusOperationChasmResponse struct { func (x *CompleteNexusOperationChasmResponse) Reset() { *x = CompleteNexusOperationChasmResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[135] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8919,7 +9055,7 @@ func (x *CompleteNexusOperationChasmResponse) String() string { func (*CompleteNexusOperationChasmResponse) ProtoMessage() {} func (x *CompleteNexusOperationChasmResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[135] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[137] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8932,13 +9068,13 @@ func (x *CompleteNexusOperationChasmResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use CompleteNexusOperationChasmResponse.ProtoReflect.Descriptor instead. func (*CompleteNexusOperationChasmResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{135} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{137} } type CompleteNexusOperationRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Completion token - holds information for locating a run and the corresponding operation state machine. - Completion *v120.NexusOperationCompletion `protobuf:"bytes,1,opt,name=completion,proto3" json:"completion,omitempty"` + Completion *v121.NexusOperationCompletion `protobuf:"bytes,1,opt,name=completion,proto3" json:"completion,omitempty"` // Operation state - may only be successful / failed / canceled. State string `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` // Types that are valid to be assigned to Outcome: @@ -8958,7 +9094,7 @@ type CompleteNexusOperationRequest struct { func (x *CompleteNexusOperationRequest) Reset() { *x = CompleteNexusOperationRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[136] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8970,7 +9106,7 @@ func (x *CompleteNexusOperationRequest) String() string { func (*CompleteNexusOperationRequest) ProtoMessage() {} func (x *CompleteNexusOperationRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[136] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[138] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8983,10 +9119,10 @@ func (x *CompleteNexusOperationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CompleteNexusOperationRequest.ProtoReflect.Descriptor instead. func (*CompleteNexusOperationRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{136} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{138} } -func (x *CompleteNexusOperationRequest) GetCompletion() *v120.NexusOperationCompletion { +func (x *CompleteNexusOperationRequest) GetCompletion() *v121.NexusOperationCompletion { if x != nil { return x.Completion } @@ -9016,7 +9152,7 @@ func (x *CompleteNexusOperationRequest) GetSuccess() *v14.Payload { return nil } -func (x *CompleteNexusOperationRequest) GetFailure() *v121.Failure { +func (x *CompleteNexusOperationRequest) GetFailure() *v122.Failure { if x != nil { if x, ok := x.Outcome.(*CompleteNexusOperationRequest_Failure); ok { return x.Failure @@ -9057,7 +9193,7 @@ type CompleteNexusOperationRequest_Success struct { type CompleteNexusOperationRequest_Failure struct { // Operation failure, only set if state != successful. - Failure *v121.Failure `protobuf:"bytes,4,opt,name=failure,proto3,oneof"` + Failure *v122.Failure `protobuf:"bytes,4,opt,name=failure,proto3,oneof"` } func (*CompleteNexusOperationRequest_Success) isCompleteNexusOperationRequest_Outcome() {} @@ -9072,7 +9208,7 @@ type CompleteNexusOperationResponse struct { func (x *CompleteNexusOperationResponse) Reset() { *x = CompleteNexusOperationResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[137] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9084,7 +9220,7 @@ func (x *CompleteNexusOperationResponse) String() string { func (*CompleteNexusOperationResponse) ProtoMessage() {} func (x *CompleteNexusOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[137] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[139] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9097,7 +9233,7 @@ func (x *CompleteNexusOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CompleteNexusOperationResponse.ProtoReflect.Descriptor instead. func (*CompleteNexusOperationResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{137} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{139} } type InvokeStateMachineMethodRequest struct { @@ -9112,7 +9248,7 @@ type InvokeStateMachineMethodRequest struct { RunId string `protobuf:"bytes,3,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` // Reference including the path to the backing Operation state machine and a version + transition count for // staleness checks. - Ref *v110.StateMachineRef `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` + Ref *v111.StateMachineRef `protobuf:"bytes,4,opt,name=ref,proto3" json:"ref,omitempty"` // The method name to invoke. Methods must be explicitly registered for the target state machine in the state // machine registry, and accept an argument type of HistoryEvent that is the completion event of the completed // workflow. @@ -9125,7 +9261,7 @@ type InvokeStateMachineMethodRequest struct { func (x *InvokeStateMachineMethodRequest) Reset() { *x = InvokeStateMachineMethodRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[138] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9137,7 +9273,7 @@ func (x *InvokeStateMachineMethodRequest) String() string { func (*InvokeStateMachineMethodRequest) ProtoMessage() {} func (x *InvokeStateMachineMethodRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[138] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[140] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9150,7 +9286,7 @@ func (x *InvokeStateMachineMethodRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InvokeStateMachineMethodRequest.ProtoReflect.Descriptor instead. func (*InvokeStateMachineMethodRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{138} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{140} } func (x *InvokeStateMachineMethodRequest) GetNamespaceId() string { @@ -9174,7 +9310,7 @@ func (x *InvokeStateMachineMethodRequest) GetRunId() string { return "" } -func (x *InvokeStateMachineMethodRequest) GetRef() *v110.StateMachineRef { +func (x *InvokeStateMachineMethodRequest) GetRef() *v111.StateMachineRef { if x != nil { return x.Ref } @@ -9205,7 +9341,7 @@ type InvokeStateMachineMethodResponse struct { func (x *InvokeStateMachineMethodResponse) Reset() { *x = InvokeStateMachineMethodResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[139] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9217,7 +9353,7 @@ func (x *InvokeStateMachineMethodResponse) String() string { func (*InvokeStateMachineMethodResponse) ProtoMessage() {} func (x *InvokeStateMachineMethodResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[139] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[141] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9230,7 +9366,7 @@ func (x *InvokeStateMachineMethodResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InvokeStateMachineMethodResponse.ProtoReflect.Descriptor instead. func (*InvokeStateMachineMethodResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{139} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{141} } func (x *InvokeStateMachineMethodResponse) GetOutput() []byte { @@ -9249,7 +9385,7 @@ type DeepHealthCheckRequest struct { func (x *DeepHealthCheckRequest) Reset() { *x = DeepHealthCheckRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[140] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9261,7 +9397,7 @@ func (x *DeepHealthCheckRequest) String() string { func (*DeepHealthCheckRequest) ProtoMessage() {} func (x *DeepHealthCheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[140] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[142] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9274,7 +9410,7 @@ func (x *DeepHealthCheckRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeepHealthCheckRequest.ProtoReflect.Descriptor instead. func (*DeepHealthCheckRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{140} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{142} } func (x *DeepHealthCheckRequest) GetHostAddress() string { @@ -9286,17 +9422,17 @@ func (x *DeepHealthCheckRequest) GetHostAddress() string { type DeepHealthCheckResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - State v112.HealthState `protobuf:"varint,1,opt,name=state,proto3,enum=temporal.server.api.enums.v1.HealthState" json:"state,omitempty"` + State v113.HealthState `protobuf:"varint,1,opt,name=state,proto3,enum=temporal.server.api.enums.v1.HealthState" json:"state,omitempty"` // Per-check diagnostic results. Populated for all checks regardless of state. - Checks []*v122.HealthCheck `protobuf:"bytes,2,rep,name=checks,proto3" json:"checks,omitempty"` - UnenforcedState v112.HealthState `protobuf:"varint,3,opt,name=unenforced_state,json=unenforcedState,proto3,enum=temporal.server.api.enums.v1.HealthState" json:"unenforced_state,omitempty"` + Checks []*v123.HealthCheck `protobuf:"bytes,2,rep,name=checks,proto3" json:"checks,omitempty"` + UnenforcedState v113.HealthState `protobuf:"varint,3,opt,name=unenforced_state,json=unenforcedState,proto3,enum=temporal.server.api.enums.v1.HealthState" json:"unenforced_state,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeepHealthCheckResponse) Reset() { *x = DeepHealthCheckResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[141] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9308,7 +9444,7 @@ func (x *DeepHealthCheckResponse) String() string { func (*DeepHealthCheckResponse) ProtoMessage() {} func (x *DeepHealthCheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[141] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[143] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9321,36 +9457,36 @@ func (x *DeepHealthCheckResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeepHealthCheckResponse.ProtoReflect.Descriptor instead. func (*DeepHealthCheckResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{141} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{143} } -func (x *DeepHealthCheckResponse) GetState() v112.HealthState { +func (x *DeepHealthCheckResponse) GetState() v113.HealthState { if x != nil { return x.State } - return v112.HealthState(0) + return v113.HealthState(0) } -func (x *DeepHealthCheckResponse) GetChecks() []*v122.HealthCheck { +func (x *DeepHealthCheckResponse) GetChecks() []*v123.HealthCheck { if x != nil { return x.Checks } return nil } -func (x *DeepHealthCheckResponse) GetUnenforcedState() v112.HealthState { +func (x *DeepHealthCheckResponse) GetUnenforcedState() v113.HealthState { if x != nil { return x.UnenforcedState } - return v112.HealthState(0) + return v113.HealthState(0) } type SyncWorkflowStateRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` Execution *v14.WorkflowExecution `protobuf:"bytes,2,opt,name=execution,proto3" json:"execution,omitempty"` - VersionedTransition *v110.VersionedTransition `protobuf:"bytes,3,opt,name=versioned_transition,json=versionedTransition,proto3" json:"versioned_transition,omitempty"` - VersionHistories *v19.VersionHistories `protobuf:"bytes,4,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` + VersionedTransition *v111.VersionedTransition `protobuf:"bytes,3,opt,name=versioned_transition,json=versionedTransition,proto3" json:"versioned_transition,omitempty"` + VersionHistories *v110.VersionHistories `protobuf:"bytes,4,opt,name=version_histories,json=versionHistories,proto3" json:"version_histories,omitempty"` TargetClusterId int32 `protobuf:"varint,5,opt,name=target_cluster_id,json=targetClusterId,proto3" json:"target_cluster_id,omitempty"` // (-- api-linter: core::0141::forbidden-types=disabled --) ArchetypeId uint32 `protobuf:"varint,6,opt,name=archetype_id,json=archetypeId,proto3" json:"archetype_id,omitempty"` @@ -9360,7 +9496,7 @@ type SyncWorkflowStateRequest struct { func (x *SyncWorkflowStateRequest) Reset() { *x = SyncWorkflowStateRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[142] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9372,7 +9508,7 @@ func (x *SyncWorkflowStateRequest) String() string { func (*SyncWorkflowStateRequest) ProtoMessage() {} func (x *SyncWorkflowStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[142] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[144] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9385,7 +9521,7 @@ func (x *SyncWorkflowStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncWorkflowStateRequest.ProtoReflect.Descriptor instead. func (*SyncWorkflowStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{142} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{144} } func (x *SyncWorkflowStateRequest) GetNamespaceId() string { @@ -9402,14 +9538,14 @@ func (x *SyncWorkflowStateRequest) GetExecution() *v14.WorkflowExecution { return nil } -func (x *SyncWorkflowStateRequest) GetVersionedTransition() *v110.VersionedTransition { +func (x *SyncWorkflowStateRequest) GetVersionedTransition() *v111.VersionedTransition { if x != nil { return x.VersionedTransition } return nil } -func (x *SyncWorkflowStateRequest) GetVersionHistories() *v19.VersionHistories { +func (x *SyncWorkflowStateRequest) GetVersionHistories() *v110.VersionHistories { if x != nil { return x.VersionHistories } @@ -9432,14 +9568,14 @@ func (x *SyncWorkflowStateRequest) GetArchetypeId() uint32 { type SyncWorkflowStateResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - VersionedTransitionArtifact *v117.VersionedTransitionArtifact `protobuf:"bytes,5,opt,name=versioned_transition_artifact,json=versionedTransitionArtifact,proto3" json:"versioned_transition_artifact,omitempty"` + VersionedTransitionArtifact *v118.VersionedTransitionArtifact `protobuf:"bytes,5,opt,name=versioned_transition_artifact,json=versionedTransitionArtifact,proto3" json:"versioned_transition_artifact,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SyncWorkflowStateResponse) Reset() { *x = SyncWorkflowStateResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[143] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9451,7 +9587,7 @@ func (x *SyncWorkflowStateResponse) String() string { func (*SyncWorkflowStateResponse) ProtoMessage() {} func (x *SyncWorkflowStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[143] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[145] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9464,10 +9600,10 @@ func (x *SyncWorkflowStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncWorkflowStateResponse.ProtoReflect.Descriptor instead. func (*SyncWorkflowStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{143} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{145} } -func (x *SyncWorkflowStateResponse) GetVersionedTransitionArtifact() *v117.VersionedTransitionArtifact { +func (x *SyncWorkflowStateResponse) GetVersionedTransitionArtifact() *v118.VersionedTransitionArtifact { if x != nil { return x.VersionedTransitionArtifact } @@ -9487,7 +9623,7 @@ type UpdateActivityOptionsRequest struct { func (x *UpdateActivityOptionsRequest) Reset() { *x = UpdateActivityOptionsRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[144] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9499,7 +9635,7 @@ func (x *UpdateActivityOptionsRequest) String() string { func (*UpdateActivityOptionsRequest) ProtoMessage() {} func (x *UpdateActivityOptionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[144] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[146] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9512,7 +9648,7 @@ func (x *UpdateActivityOptionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateActivityOptionsRequest.ProtoReflect.Descriptor instead. func (*UpdateActivityOptionsRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{144} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{146} } func (x *UpdateActivityOptionsRequest) GetNamespaceId() string { @@ -9532,14 +9668,14 @@ func (x *UpdateActivityOptionsRequest) GetUpdateRequest() *v1.UpdateActivityOpti type UpdateActivityOptionsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Activity options after an update - ActivityOptions *v123.ActivityOptions `protobuf:"bytes,1,opt,name=activity_options,json=activityOptions,proto3" json:"activity_options,omitempty"` + ActivityOptions *v124.ActivityOptions `protobuf:"bytes,1,opt,name=activity_options,json=activityOptions,proto3" json:"activity_options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UpdateActivityOptionsResponse) Reset() { *x = UpdateActivityOptionsResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[145] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9551,7 +9687,7 @@ func (x *UpdateActivityOptionsResponse) String() string { func (*UpdateActivityOptionsResponse) ProtoMessage() {} func (x *UpdateActivityOptionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[145] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[147] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9564,10 +9700,10 @@ func (x *UpdateActivityOptionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateActivityOptionsResponse.ProtoReflect.Descriptor instead. func (*UpdateActivityOptionsResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{145} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{147} } -func (x *UpdateActivityOptionsResponse) GetActivityOptions() *v123.ActivityOptions { +func (x *UpdateActivityOptionsResponse) GetActivityOptions() *v124.ActivityOptions { if x != nil { return x.ActivityOptions } @@ -9585,7 +9721,7 @@ type PauseActivityRequest struct { func (x *PauseActivityRequest) Reset() { *x = PauseActivityRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[146] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9597,7 +9733,7 @@ func (x *PauseActivityRequest) String() string { func (*PauseActivityRequest) ProtoMessage() {} func (x *PauseActivityRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[146] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[148] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9610,7 +9746,7 @@ func (x *PauseActivityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseActivityRequest.ProtoReflect.Descriptor instead. func (*PauseActivityRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{146} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{148} } func (x *PauseActivityRequest) GetNamespaceId() string { @@ -9635,7 +9771,7 @@ type PauseActivityResponse struct { func (x *PauseActivityResponse) Reset() { *x = PauseActivityResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[147] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9647,7 +9783,7 @@ func (x *PauseActivityResponse) String() string { func (*PauseActivityResponse) ProtoMessage() {} func (x *PauseActivityResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[147] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[149] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9660,7 +9796,7 @@ func (x *PauseActivityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseActivityResponse.ProtoReflect.Descriptor instead. func (*PauseActivityResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{147} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{149} } type UnpauseActivityRequest struct { @@ -9674,7 +9810,7 @@ type UnpauseActivityRequest struct { func (x *UnpauseActivityRequest) Reset() { *x = UnpauseActivityRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[148] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9686,7 +9822,7 @@ func (x *UnpauseActivityRequest) String() string { func (*UnpauseActivityRequest) ProtoMessage() {} func (x *UnpauseActivityRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[148] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[150] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9699,7 +9835,7 @@ func (x *UnpauseActivityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnpauseActivityRequest.ProtoReflect.Descriptor instead. func (*UnpauseActivityRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{148} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{150} } func (x *UnpauseActivityRequest) GetNamespaceId() string { @@ -9724,7 +9860,7 @@ type UnpauseActivityResponse struct { func (x *UnpauseActivityResponse) Reset() { *x = UnpauseActivityResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[149] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9736,7 +9872,7 @@ func (x *UnpauseActivityResponse) String() string { func (*UnpauseActivityResponse) ProtoMessage() {} func (x *UnpauseActivityResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[149] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[151] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9749,7 +9885,7 @@ func (x *UnpauseActivityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnpauseActivityResponse.ProtoReflect.Descriptor instead. func (*UnpauseActivityResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{149} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{151} } type ResetActivityRequest struct { @@ -9763,7 +9899,7 @@ type ResetActivityRequest struct { func (x *ResetActivityRequest) Reset() { *x = ResetActivityRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[150] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9775,7 +9911,7 @@ func (x *ResetActivityRequest) String() string { func (*ResetActivityRequest) ProtoMessage() {} func (x *ResetActivityRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[150] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[152] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9788,7 +9924,7 @@ func (x *ResetActivityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetActivityRequest.ProtoReflect.Descriptor instead. func (*ResetActivityRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{150} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{152} } func (x *ResetActivityRequest) GetNamespaceId() string { @@ -9813,7 +9949,7 @@ type ResetActivityResponse struct { func (x *ResetActivityResponse) Reset() { *x = ResetActivityResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[151] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9825,7 +9961,7 @@ func (x *ResetActivityResponse) String() string { func (*ResetActivityResponse) ProtoMessage() {} func (x *ResetActivityResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[151] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[153] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9838,7 +9974,7 @@ func (x *ResetActivityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetActivityResponse.ProtoReflect.Descriptor instead. func (*ResetActivityResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{151} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{153} } // (-- api-linter: core::0134::request-mask-required=disabled @@ -9853,7 +9989,7 @@ type UpdateWorkflowExecutionOptionsRequest struct { func (x *UpdateWorkflowExecutionOptionsRequest) Reset() { *x = UpdateWorkflowExecutionOptionsRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[152] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9865,7 +10001,7 @@ func (x *UpdateWorkflowExecutionOptionsRequest) String() string { func (*UpdateWorkflowExecutionOptionsRequest) ProtoMessage() {} func (x *UpdateWorkflowExecutionOptionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[152] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[154] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9878,7 +10014,7 @@ func (x *UpdateWorkflowExecutionOptionsRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use UpdateWorkflowExecutionOptionsRequest.ProtoReflect.Descriptor instead. func (*UpdateWorkflowExecutionOptionsRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{152} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{154} } func (x *UpdateWorkflowExecutionOptionsRequest) GetNamespaceId() string { @@ -9908,7 +10044,7 @@ type UpdateWorkflowExecutionOptionsResponse struct { func (x *UpdateWorkflowExecutionOptionsResponse) Reset() { *x = UpdateWorkflowExecutionOptionsResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[153] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9920,7 +10056,7 @@ func (x *UpdateWorkflowExecutionOptionsResponse) String() string { func (*UpdateWorkflowExecutionOptionsResponse) ProtoMessage() {} func (x *UpdateWorkflowExecutionOptionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[153] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[155] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9933,7 +10069,7 @@ func (x *UpdateWorkflowExecutionOptionsResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use UpdateWorkflowExecutionOptionsResponse.ProtoReflect.Descriptor instead. func (*UpdateWorkflowExecutionOptionsResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{153} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{155} } func (x *UpdateWorkflowExecutionOptionsResponse) GetWorkflowExecutionOptions() *v15.WorkflowExecutionOptions { @@ -9961,7 +10097,7 @@ type PauseWorkflowExecutionRequest struct { func (x *PauseWorkflowExecutionRequest) Reset() { *x = PauseWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[154] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9973,7 +10109,7 @@ func (x *PauseWorkflowExecutionRequest) String() string { func (*PauseWorkflowExecutionRequest) ProtoMessage() {} func (x *PauseWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[154] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[156] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9986,7 +10122,7 @@ func (x *PauseWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*PauseWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{154} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{156} } func (x *PauseWorkflowExecutionRequest) GetNamespaceId() string { @@ -10011,7 +10147,7 @@ type PauseWorkflowExecutionResponse struct { func (x *PauseWorkflowExecutionResponse) Reset() { *x = PauseWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[155] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10023,7 +10159,7 @@ func (x *PauseWorkflowExecutionResponse) String() string { func (*PauseWorkflowExecutionResponse) ProtoMessage() {} func (x *PauseWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[155] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[157] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10036,7 +10172,7 @@ func (x *PauseWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PauseWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*PauseWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{155} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{157} } type UnpauseWorkflowExecutionRequest struct { @@ -10050,7 +10186,7 @@ type UnpauseWorkflowExecutionRequest struct { func (x *UnpauseWorkflowExecutionRequest) Reset() { *x = UnpauseWorkflowExecutionRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[156] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10062,7 +10198,7 @@ func (x *UnpauseWorkflowExecutionRequest) String() string { func (*UnpauseWorkflowExecutionRequest) ProtoMessage() {} func (x *UnpauseWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[156] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[158] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10075,7 +10211,7 @@ func (x *UnpauseWorkflowExecutionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnpauseWorkflowExecutionRequest.ProtoReflect.Descriptor instead. func (*UnpauseWorkflowExecutionRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{156} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{158} } func (x *UnpauseWorkflowExecutionRequest) GetNamespaceId() string { @@ -10100,7 +10236,7 @@ type UnpauseWorkflowExecutionResponse struct { func (x *UnpauseWorkflowExecutionResponse) Reset() { *x = UnpauseWorkflowExecutionResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[157] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10112,7 +10248,7 @@ func (x *UnpauseWorkflowExecutionResponse) String() string { func (*UnpauseWorkflowExecutionResponse) ProtoMessage() {} func (x *UnpauseWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[157] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[159] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10125,21 +10261,21 @@ func (x *UnpauseWorkflowExecutionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnpauseWorkflowExecutionResponse.ProtoReflect.Descriptor instead. func (*UnpauseWorkflowExecutionResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{157} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{159} } type StartNexusOperationRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` - Request *v121.StartOperationRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` + Request *v122.StartOperationRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *StartNexusOperationRequest) Reset() { *x = StartNexusOperationRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[158] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10151,7 +10287,7 @@ func (x *StartNexusOperationRequest) String() string { func (*StartNexusOperationRequest) ProtoMessage() {} func (x *StartNexusOperationRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[158] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[160] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10164,7 +10300,7 @@ func (x *StartNexusOperationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartNexusOperationRequest.ProtoReflect.Descriptor instead. func (*StartNexusOperationRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{158} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{160} } func (x *StartNexusOperationRequest) GetNamespaceId() string { @@ -10181,7 +10317,7 @@ func (x *StartNexusOperationRequest) GetShardId() int32 { return 0 } -func (x *StartNexusOperationRequest) GetRequest() *v121.StartOperationRequest { +func (x *StartNexusOperationRequest) GetRequest() *v122.StartOperationRequest { if x != nil { return x.Request } @@ -10190,14 +10326,14 @@ func (x *StartNexusOperationRequest) GetRequest() *v121.StartOperationRequest { type StartNexusOperationResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Response *v121.StartOperationResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *v122.StartOperationResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *StartNexusOperationResponse) Reset() { *x = StartNexusOperationResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[159] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10209,7 +10345,7 @@ func (x *StartNexusOperationResponse) String() string { func (*StartNexusOperationResponse) ProtoMessage() {} func (x *StartNexusOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[159] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[161] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10222,10 +10358,10 @@ func (x *StartNexusOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StartNexusOperationResponse.ProtoReflect.Descriptor instead. func (*StartNexusOperationResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{159} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{161} } -func (x *StartNexusOperationResponse) GetResponse() *v121.StartOperationResponse { +func (x *StartNexusOperationResponse) GetResponse() *v122.StartOperationResponse { if x != nil { return x.Response } @@ -10236,14 +10372,14 @@ type CancelNexusOperationRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` ShardId int32 `protobuf:"varint,2,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"` - Request *v121.CancelOperationRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` + Request *v122.CancelOperationRequest `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CancelNexusOperationRequest) Reset() { *x = CancelNexusOperationRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[160] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10255,7 +10391,7 @@ func (x *CancelNexusOperationRequest) String() string { func (*CancelNexusOperationRequest) ProtoMessage() {} func (x *CancelNexusOperationRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[160] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[162] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10268,7 +10404,7 @@ func (x *CancelNexusOperationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelNexusOperationRequest.ProtoReflect.Descriptor instead. func (*CancelNexusOperationRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{160} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{162} } func (x *CancelNexusOperationRequest) GetNamespaceId() string { @@ -10285,7 +10421,7 @@ func (x *CancelNexusOperationRequest) GetShardId() int32 { return 0 } -func (x *CancelNexusOperationRequest) GetRequest() *v121.CancelOperationRequest { +func (x *CancelNexusOperationRequest) GetRequest() *v122.CancelOperationRequest { if x != nil { return x.Request } @@ -10294,14 +10430,14 @@ func (x *CancelNexusOperationRequest) GetRequest() *v121.CancelOperationRequest type CancelNexusOperationResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Response *v121.CancelOperationResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Response *v122.CancelOperationResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CancelNexusOperationResponse) Reset() { *x = CancelNexusOperationResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[161] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10313,7 +10449,7 @@ func (x *CancelNexusOperationResponse) String() string { func (*CancelNexusOperationResponse) ProtoMessage() {} func (x *CancelNexusOperationResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[161] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[163] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10326,10 +10462,10 @@ func (x *CancelNexusOperationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelNexusOperationResponse.ProtoReflect.Descriptor instead. func (*CancelNexusOperationResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{161} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{163} } -func (x *CancelNexusOperationResponse) GetResponse() *v121.CancelOperationResponse { +func (x *CancelNexusOperationResponse) GetResponse() *v122.CancelOperationResponse { if x != nil { return x.Response } @@ -10346,7 +10482,7 @@ type PollWorkflowExecutionTimeSkippingRequest struct { func (x *PollWorkflowExecutionTimeSkippingRequest) Reset() { *x = PollWorkflowExecutionTimeSkippingRequest{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[162] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10358,7 +10494,7 @@ func (x *PollWorkflowExecutionTimeSkippingRequest) String() string { func (*PollWorkflowExecutionTimeSkippingRequest) ProtoMessage() {} func (x *PollWorkflowExecutionTimeSkippingRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[162] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[164] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10371,7 +10507,7 @@ func (x *PollWorkflowExecutionTimeSkippingRequest) ProtoReflect() protoreflect.M // Deprecated: Use PollWorkflowExecutionTimeSkippingRequest.ProtoReflect.Descriptor instead. func (*PollWorkflowExecutionTimeSkippingRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{162} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{164} } func (x *PollWorkflowExecutionTimeSkippingRequest) GetNamespaceId() string { @@ -10397,7 +10533,7 @@ type PollWorkflowExecutionTimeSkippingResponse struct { func (x *PollWorkflowExecutionTimeSkippingResponse) Reset() { *x = PollWorkflowExecutionTimeSkippingResponse{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[163] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10409,7 +10545,7 @@ func (x *PollWorkflowExecutionTimeSkippingResponse) String() string { func (*PollWorkflowExecutionTimeSkippingResponse) ProtoMessage() {} func (x *PollWorkflowExecutionTimeSkippingResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[163] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[165] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10422,7 +10558,7 @@ func (x *PollWorkflowExecutionTimeSkippingResponse) ProtoReflect() protoreflect. // Deprecated: Use PollWorkflowExecutionTimeSkippingResponse.ProtoReflect.Descriptor instead. func (*PollWorkflowExecutionTimeSkippingResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{163} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{165} } func (x *PollWorkflowExecutionTimeSkippingResponse) GetResponse() *v1.PollWorkflowExecutionTimeSkippingResponse { @@ -10437,15 +10573,15 @@ func (x *PollWorkflowExecutionTimeSkippingResponse) GetResponse() *v1.PollWorkfl // is not persisted into the child workflow. Re-linking requires a separate recovery mechanism // because the existing parent coordinates are also immutable WorkflowExecutionStarted history. type OrphanedChildReplacementInfo struct { - state protoimpl.MessageState `protogen:"open.v1"` - ParentCurrentVersionHistoryItems []*v19.VersionHistoryItem `protobuf:"bytes,1,rep,name=parent_current_version_history_items,json=parentCurrentVersionHistoryItems,proto3" json:"parent_current_version_history_items,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ParentCurrentVersionHistoryItems []*v110.VersionHistoryItem `protobuf:"bytes,1,rep,name=parent_current_version_history_items,json=parentCurrentVersionHistoryItems,proto3" json:"parent_current_version_history_items,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *OrphanedChildReplacementInfo) Reset() { *x = OrphanedChildReplacementInfo{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[164] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10457,7 +10593,7 @@ func (x *OrphanedChildReplacementInfo) String() string { func (*OrphanedChildReplacementInfo) ProtoMessage() {} func (x *OrphanedChildReplacementInfo) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[164] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[166] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10470,10 +10606,10 @@ func (x *OrphanedChildReplacementInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use OrphanedChildReplacementInfo.ProtoReflect.Descriptor instead. func (*OrphanedChildReplacementInfo) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{164} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{166} } -func (x *OrphanedChildReplacementInfo) GetParentCurrentVersionHistoryItems() []*v19.VersionHistoryItem { +func (x *OrphanedChildReplacementInfo) GetParentCurrentVersionHistoryItems() []*v110.VersionHistoryItem { if x != nil { return x.ParentCurrentVersionHistoryItems } @@ -10493,7 +10629,7 @@ type ExecuteMultiOperationRequest_Operation struct { func (x *ExecuteMultiOperationRequest_Operation) Reset() { *x = ExecuteMultiOperationRequest_Operation{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[165] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10505,7 +10641,7 @@ func (x *ExecuteMultiOperationRequest_Operation) String() string { func (*ExecuteMultiOperationRequest_Operation) ProtoMessage() {} func (x *ExecuteMultiOperationRequest_Operation) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[165] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[167] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10518,7 +10654,7 @@ func (x *ExecuteMultiOperationRequest_Operation) ProtoReflect() protoreflect.Mes // Deprecated: Use ExecuteMultiOperationRequest_Operation.ProtoReflect.Descriptor instead. func (*ExecuteMultiOperationRequest_Operation) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{9, 0} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{11, 0} } func (x *ExecuteMultiOperationRequest_Operation) GetOperation() isExecuteMultiOperationRequest_Operation_Operation { @@ -10577,7 +10713,7 @@ type ExecuteMultiOperationResponse_Response struct { func (x *ExecuteMultiOperationResponse_Response) Reset() { *x = ExecuteMultiOperationResponse_Response{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[166] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10589,7 +10725,7 @@ func (x *ExecuteMultiOperationResponse_Response) String() string { func (*ExecuteMultiOperationResponse_Response) ProtoMessage() {} func (x *ExecuteMultiOperationResponse_Response) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[166] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[168] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10602,7 +10738,7 @@ func (x *ExecuteMultiOperationResponse_Response) ProtoReflect() protoreflect.Mes // Deprecated: Use ExecuteMultiOperationResponse_Response.ProtoReflect.Descriptor instead. func (*ExecuteMultiOperationResponse_Response) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{10, 0} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{12, 0} } func (x *ExecuteMultiOperationResponse_Response) GetResponse() isExecuteMultiOperationResponse_Response_Response { @@ -10659,7 +10795,7 @@ type ListQueuesResponse_QueueInfo struct { func (x *ListQueuesResponse_QueueInfo) Reset() { *x = ListQueuesResponse_QueueInfo{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[172] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10671,7 +10807,7 @@ func (x *ListQueuesResponse_QueueInfo) String() string { func (*ListQueuesResponse_QueueInfo) ProtoMessage() {} func (x *ListQueuesResponse_QueueInfo) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[172] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[174] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10684,7 +10820,7 @@ func (x *ListQueuesResponse_QueueInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ListQueuesResponse_QueueInfo.ProtoReflect.Descriptor instead. func (*ListQueuesResponse_QueueInfo) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{129, 0} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{131, 0} } func (x *ListQueuesResponse_QueueInfo) GetQueueName() string { @@ -10722,7 +10858,7 @@ type AddTasksRequest_Task struct { func (x *AddTasksRequest_Task) Reset() { *x = AddTasksRequest_Task{} - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[173] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10734,7 +10870,7 @@ func (x *AddTasksRequest_Task) String() string { func (*AddTasksRequest_Task) ProtoMessage() {} func (x *AddTasksRequest_Task) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[173] + mi := &file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[175] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10747,7 +10883,7 @@ func (x *AddTasksRequest_Task) ProtoReflect() protoreflect.Message { // Deprecated: Use AddTasksRequest_Task.ProtoReflect.Descriptor instead. func (*AddTasksRequest_Task) Descriptor() ([]byte, []int) { - return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{130, 0} + return file_temporal_server_api_historyservice_v1_request_response_proto_rawDescGZIP(), []int{132, 0} } func (x *AddTasksRequest_Task) GetCategoryId() int32 { @@ -10785,7 +10921,7 @@ var File_temporal_server_api_historyservice_v1_request_response_proto protorefle const file_temporal_server_api_historyservice_v1_request_response_proto_rawDesc = "" + "\n" + - " temporal.api.workflowservice.v1.StartWorkflowExecutionRequest - 175, // 1: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.parent_execution_info:type_name -> temporal.server.api.workflow.v1.ParentExecutionInfo - 176, // 2: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.workflow_execution_expiration_time:type_name -> google.protobuf.Timestamp - 177, // 3: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.continue_as_new_initiator:type_name -> temporal.api.enums.v1.ContinueAsNewInitiator - 178, // 4: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.continued_failure:type_name -> temporal.api.failure.v1.Failure - 179, // 5: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.last_completion_result:type_name -> temporal.api.common.v1.Payloads - 180, // 6: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.first_workflow_task_backoff:type_name -> google.protobuf.Duration - 181, // 7: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.source_version_stamp:type_name -> temporal.api.common.v1.WorkerVersionStamp - 182, // 8: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.root_execution_info:type_name -> temporal.server.api.workflow.v1.RootExecutionInfo - 183, // 9: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.versioning_override:type_name -> temporal.api.workflow.v1.VersioningOverride - 184, // 10: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.inherited_pinned_version:type_name -> temporal.api.deployment.v1.WorkerDeploymentVersion - 185, // 11: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.inherited_auto_upgrade_info:type_name -> temporal.api.deployment.v1.InheritedAutoUpgradeInfo - 186, // 12: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.declined_target_version_upgrade:type_name -> temporal.api.history.v1.DeclinedTargetVersionUpgrade - 187, // 13: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.time_skipping_state_propagation:type_name -> temporal.api.common.v1.TimeSkippingStatePropagation - 164, // 14: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.orphaned_child_replacement_info:type_name -> temporal.server.api.historyservice.v1.OrphanedChildReplacementInfo - 188, // 15: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 189, // 16: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.eager_workflow_task:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse - 190, // 17: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.status:type_name -> temporal.api.enums.v1.WorkflowExecutionStatus - 191, // 18: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.link:type_name -> temporal.api.common.v1.Link - 192, // 19: temporal.server.api.historyservice.v1.GetMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 193, // 20: temporal.server.api.historyservice.v1.GetMutableStateRequest.version_history_item:type_name -> temporal.server.api.history.v1.VersionHistoryItem - 194, // 21: temporal.server.api.historyservice.v1.GetMutableStateRequest.versioned_transition:type_name -> temporal.server.api.persistence.v1.VersionedTransition - 192, // 22: temporal.server.api.historyservice.v1.GetMutableStateResponse.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 195, // 23: temporal.server.api.historyservice.v1.GetMutableStateResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 196, // 24: temporal.server.api.historyservice.v1.GetMutableStateResponse.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 196, // 25: temporal.server.api.historyservice.v1.GetMutableStateResponse.sticky_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 180, // 26: temporal.server.api.historyservice.v1.GetMutableStateResponse.sticky_task_queue_schedule_to_start_timeout:type_name -> google.protobuf.Duration - 197, // 27: temporal.server.api.historyservice.v1.GetMutableStateResponse.workflow_state:type_name -> temporal.server.api.enums.v1.WorkflowExecutionState - 190, // 28: temporal.server.api.historyservice.v1.GetMutableStateResponse.workflow_status:type_name -> temporal.api.enums.v1.WorkflowExecutionStatus - 198, // 29: temporal.server.api.historyservice.v1.GetMutableStateResponse.version_histories:type_name -> temporal.server.api.history.v1.VersionHistories - 181, // 30: temporal.server.api.historyservice.v1.GetMutableStateResponse.most_recent_worker_version_stamp:type_name -> temporal.api.common.v1.WorkerVersionStamp - 194, // 31: temporal.server.api.historyservice.v1.GetMutableStateResponse.transition_history:type_name -> temporal.server.api.persistence.v1.VersionedTransition - 199, // 32: temporal.server.api.historyservice.v1.GetMutableStateResponse.versioning_info:type_name -> temporal.api.workflow.v1.WorkflowExecutionVersioningInfo - 200, // 33: temporal.server.api.historyservice.v1.GetMutableStateResponse.transient_or_speculative_tasks:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo - 192, // 34: temporal.server.api.historyservice.v1.PollMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 193, // 35: temporal.server.api.historyservice.v1.PollMutableStateRequest.version_history_item:type_name -> temporal.server.api.history.v1.VersionHistoryItem - 192, // 36: temporal.server.api.historyservice.v1.PollMutableStateResponse.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 195, // 37: temporal.server.api.historyservice.v1.PollMutableStateResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 196, // 38: temporal.server.api.historyservice.v1.PollMutableStateResponse.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 196, // 39: temporal.server.api.historyservice.v1.PollMutableStateResponse.sticky_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 180, // 40: temporal.server.api.historyservice.v1.PollMutableStateResponse.sticky_task_queue_schedule_to_start_timeout:type_name -> google.protobuf.Duration - 198, // 41: temporal.server.api.historyservice.v1.PollMutableStateResponse.version_histories:type_name -> temporal.server.api.history.v1.VersionHistories - 197, // 42: temporal.server.api.historyservice.v1.PollMutableStateResponse.workflow_state:type_name -> temporal.server.api.enums.v1.WorkflowExecutionState - 190, // 43: temporal.server.api.historyservice.v1.PollMutableStateResponse.workflow_status:type_name -> temporal.api.enums.v1.WorkflowExecutionStatus - 192, // 44: temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 165, // 45: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.operations:type_name -> temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.Operation - 166, // 46: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.responses:type_name -> temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.Response - 192, // 47: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 201, // 48: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest - 188, // 49: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 202, // 50: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.build_id_redirect_info:type_name -> temporal.server.api.taskqueue.v1.BuildIdRedirectInfo - 203, // 51: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.scheduled_deployment:type_name -> temporal.api.deployment.v1.Deployment - 204, // 52: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 184, // 53: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.target_deployment_version:type_name -> temporal.api.deployment.v1.WorkerDeploymentVersion - 195, // 54: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 200, // 55: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo - 196, // 56: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 176, // 57: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.scheduled_time:type_name -> google.protobuf.Timestamp - 176, // 58: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.started_time:type_name -> google.protobuf.Timestamp - 167, // 59: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.queries:type_name -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.QueriesEntry - 188, // 60: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 205, // 61: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.messages:type_name -> temporal.api.protocol.v1.Message - 206, // 62: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.history:type_name -> temporal.api.history.v1.History - 206, // 63: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.raw_history:type_name -> temporal.api.history.v1.History - 195, // 64: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 200, // 65: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo - 196, // 66: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 176, // 67: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.scheduled_time:type_name -> google.protobuf.Timestamp - 176, // 68: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.started_time:type_name -> google.protobuf.Timestamp - 168, // 69: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.queries:type_name -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.QueriesEntry - 188, // 70: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 205, // 71: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.messages:type_name -> temporal.api.protocol.v1.Message - 206, // 72: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.history:type_name -> temporal.api.history.v1.History - 192, // 73: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 207, // 74: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueRequest - 188, // 75: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 202, // 76: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.build_id_redirect_info:type_name -> temporal.server.api.taskqueue.v1.BuildIdRedirectInfo - 203, // 77: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.scheduled_deployment:type_name -> temporal.api.deployment.v1.Deployment - 204, // 78: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 208, // 79: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.scheduled_event:type_name -> temporal.api.history.v1.HistoryEvent - 176, // 80: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.started_time:type_name -> google.protobuf.Timestamp - 176, // 81: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.current_attempt_scheduled_time:type_name -> google.protobuf.Timestamp - 179, // 82: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.heartbeat_details:type_name -> temporal.api.common.v1.Payloads - 195, // 83: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 188, // 84: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 209, // 85: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.priority:type_name -> temporal.api.common.v1.Priority - 210, // 86: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.retry_policy:type_name -> temporal.api.common.v1.RetryPolicy - 211, // 87: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedRequest.complete_request:type_name -> temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest - 12, // 88: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse.started_response:type_name -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse - 212, // 89: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse.activity_tasks:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueResponse - 189, // 90: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse.new_workflow_task:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse - 213, // 91: temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedRequest.failed_request:type_name -> temporal.api.workflowservice.v1.RespondWorkflowTaskFailedRequest - 192, // 92: temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 188, // 93: temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 214, // 94: temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatRequest.heartbeat_request:type_name -> temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatRequest - 215, // 95: temporal.server.api.historyservice.v1.RespondActivityTaskCompletedRequest.complete_request:type_name -> temporal.api.workflowservice.v1.RespondActivityTaskCompletedRequest - 216, // 96: temporal.server.api.historyservice.v1.RespondActivityTaskFailedRequest.failed_request:type_name -> temporal.api.workflowservice.v1.RespondActivityTaskFailedRequest - 217, // 97: temporal.server.api.historyservice.v1.RespondActivityTaskCanceledRequest.cancel_request:type_name -> temporal.api.workflowservice.v1.RespondActivityTaskCanceledRequest - 192, // 98: temporal.server.api.historyservice.v1.IsActivityTaskValidRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 188, // 99: temporal.server.api.historyservice.v1.IsActivityTaskValidRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 218, // 100: temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest.signal_request:type_name -> temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest - 192, // 101: temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest.external_workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 191, // 102: temporal.server.api.historyservice.v1.SignalWorkflowExecutionResponse.link:type_name -> temporal.api.common.v1.Link - 219, // 103: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionRequest.signal_with_start_request:type_name -> temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionRequest - 191, // 104: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionResponse.signal_link:type_name -> temporal.api.common.v1.Link - 192, // 105: temporal.server.api.historyservice.v1.RemoveSignalMutableStateRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 220, // 106: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest.terminate_request:type_name -> temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest - 192, // 107: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest.external_workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 192, // 108: temporal.server.api.historyservice.v1.DeleteWorkflowExecutionRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 221, // 109: temporal.server.api.historyservice.v1.ResetWorkflowExecutionRequest.reset_request:type_name -> temporal.api.workflowservice.v1.ResetWorkflowExecutionRequest - 222, // 110: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest.cancel_request:type_name -> temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest - 192, // 111: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest.external_workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 192, // 112: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 188, // 113: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest.child_clock:type_name -> temporal.server.api.clock.v1.VectorClock - 188, // 114: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest.parent_clock:type_name -> temporal.server.api.clock.v1.VectorClock - 192, // 115: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 188, // 116: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 192, // 117: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.parent_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 192, // 118: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.child_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 208, // 119: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.completion_event:type_name -> temporal.api.history.v1.HistoryEvent - 188, // 120: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 192, // 121: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest.parent_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 192, // 122: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest.child_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 188, // 123: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 223, // 124: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionRequest.request:type_name -> temporal.api.workflowservice.v1.DescribeWorkflowExecutionRequest - 224, // 125: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.execution_config:type_name -> temporal.api.workflow.v1.WorkflowExecutionConfig - 225, // 126: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.workflow_execution_info:type_name -> temporal.api.workflow.v1.WorkflowExecutionInfo - 226, // 127: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_activities:type_name -> temporal.api.workflow.v1.PendingActivityInfo - 227, // 128: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_children:type_name -> temporal.api.workflow.v1.PendingChildExecutionInfo - 228, // 129: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_workflow_task:type_name -> temporal.api.workflow.v1.PendingWorkflowTaskInfo - 229, // 130: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.callbacks:type_name -> temporal.api.workflow.v1.CallbackInfo - 230, // 131: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_nexus_operations:type_name -> temporal.api.workflow.v1.PendingNexusOperationInfo - 231, // 132: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.workflow_extended_info:type_name -> temporal.api.workflow.v1.WorkflowExecutionExtendedInfo - 192, // 133: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 193, // 134: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.version_history_items:type_name -> temporal.server.api.history.v1.VersionHistoryItem - 232, // 135: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.events:type_name -> temporal.api.common.v1.DataBlob - 232, // 136: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.new_run_events:type_name -> temporal.api.common.v1.DataBlob - 233, // 137: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.base_execution_info:type_name -> temporal.server.api.workflow.v1.BaseExecutionInfo - 234, // 138: temporal.server.api.historyservice.v1.ReplicateWorkflowStateRequest.workflow_state:type_name -> temporal.server.api.persistence.v1.WorkflowMutableState - 176, // 139: temporal.server.api.historyservice.v1.SyncShardStatusRequest.status_time:type_name -> google.protobuf.Timestamp - 176, // 140: temporal.server.api.historyservice.v1.SyncActivityRequest.scheduled_time:type_name -> google.protobuf.Timestamp - 176, // 141: temporal.server.api.historyservice.v1.SyncActivityRequest.started_time:type_name -> google.protobuf.Timestamp - 176, // 142: temporal.server.api.historyservice.v1.SyncActivityRequest.last_heartbeat_time:type_name -> google.protobuf.Timestamp - 179, // 143: temporal.server.api.historyservice.v1.SyncActivityRequest.details:type_name -> temporal.api.common.v1.Payloads - 178, // 144: temporal.server.api.historyservice.v1.SyncActivityRequest.last_failure:type_name -> temporal.api.failure.v1.Failure - 235, // 145: temporal.server.api.historyservice.v1.SyncActivityRequest.version_history:type_name -> temporal.server.api.history.v1.VersionHistory - 233, // 146: temporal.server.api.historyservice.v1.SyncActivityRequest.base_execution_info:type_name -> temporal.server.api.workflow.v1.BaseExecutionInfo - 176, // 147: temporal.server.api.historyservice.v1.SyncActivityRequest.first_scheduled_time:type_name -> google.protobuf.Timestamp - 176, // 148: temporal.server.api.historyservice.v1.SyncActivityRequest.last_attempt_complete_time:type_name -> google.protobuf.Timestamp - 180, // 149: temporal.server.api.historyservice.v1.SyncActivityRequest.retry_initial_interval:type_name -> google.protobuf.Duration - 180, // 150: temporal.server.api.historyservice.v1.SyncActivityRequest.retry_maximum_interval:type_name -> google.protobuf.Duration - 64, // 151: temporal.server.api.historyservice.v1.SyncActivitiesRequest.activities_info:type_name -> temporal.server.api.historyservice.v1.ActivitySyncInfo - 176, // 152: temporal.server.api.historyservice.v1.ActivitySyncInfo.scheduled_time:type_name -> google.protobuf.Timestamp - 176, // 153: temporal.server.api.historyservice.v1.ActivitySyncInfo.started_time:type_name -> google.protobuf.Timestamp - 176, // 154: temporal.server.api.historyservice.v1.ActivitySyncInfo.last_heartbeat_time:type_name -> google.protobuf.Timestamp - 179, // 155: temporal.server.api.historyservice.v1.ActivitySyncInfo.details:type_name -> temporal.api.common.v1.Payloads - 178, // 156: temporal.server.api.historyservice.v1.ActivitySyncInfo.last_failure:type_name -> temporal.api.failure.v1.Failure - 235, // 157: temporal.server.api.historyservice.v1.ActivitySyncInfo.version_history:type_name -> temporal.server.api.history.v1.VersionHistory - 176, // 158: temporal.server.api.historyservice.v1.ActivitySyncInfo.first_scheduled_time:type_name -> google.protobuf.Timestamp - 176, // 159: temporal.server.api.historyservice.v1.ActivitySyncInfo.last_attempt_complete_time:type_name -> google.protobuf.Timestamp - 180, // 160: temporal.server.api.historyservice.v1.ActivitySyncInfo.retry_initial_interval:type_name -> google.protobuf.Duration - 180, // 161: temporal.server.api.historyservice.v1.ActivitySyncInfo.retry_maximum_interval:type_name -> google.protobuf.Duration - 192, // 162: temporal.server.api.historyservice.v1.DescribeMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 234, // 163: temporal.server.api.historyservice.v1.DescribeMutableStateResponse.cache_mutable_state:type_name -> temporal.server.api.persistence.v1.WorkflowMutableState - 234, // 164: temporal.server.api.historyservice.v1.DescribeMutableStateResponse.database_mutable_state:type_name -> temporal.server.api.persistence.v1.WorkflowMutableState - 192, // 165: temporal.server.api.historyservice.v1.DescribeHistoryHostRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 236, // 166: temporal.server.api.historyservice.v1.DescribeHistoryHostResponse.namespace_cache:type_name -> temporal.server.api.namespace.v1.NamespaceCacheInfo - 237, // 167: temporal.server.api.historyservice.v1.GetShardResponse.shard_info:type_name -> temporal.server.api.persistence.v1.ShardInfo - 176, // 168: temporal.server.api.historyservice.v1.RemoveTaskRequest.visibility_time:type_name -> google.protobuf.Timestamp - 238, // 169: temporal.server.api.historyservice.v1.GetReplicationMessagesRequest.tokens:type_name -> temporal.server.api.replication.v1.ReplicationToken - 169, // 170: temporal.server.api.historyservice.v1.GetReplicationMessagesResponse.shard_messages:type_name -> temporal.server.api.historyservice.v1.GetReplicationMessagesResponse.ShardMessagesEntry - 239, // 171: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesRequest.task_infos:type_name -> temporal.server.api.replication.v1.ReplicationTaskInfo - 240, // 172: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesResponse.replication_tasks:type_name -> temporal.server.api.replication.v1.ReplicationTask - 241, // 173: temporal.server.api.historyservice.v1.QueryWorkflowRequest.request:type_name -> temporal.api.workflowservice.v1.QueryWorkflowRequest - 242, // 174: temporal.server.api.historyservice.v1.QueryWorkflowResponse.response:type_name -> temporal.api.workflowservice.v1.QueryWorkflowResponse - 243, // 175: temporal.server.api.historyservice.v1.ReapplyEventsRequest.request:type_name -> temporal.server.api.adminservice.v1.ReapplyEventsRequest - 244, // 176: temporal.server.api.historyservice.v1.GetDLQMessagesRequest.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType - 244, // 177: temporal.server.api.historyservice.v1.GetDLQMessagesResponse.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType - 240, // 178: temporal.server.api.historyservice.v1.GetDLQMessagesResponse.replication_tasks:type_name -> temporal.server.api.replication.v1.ReplicationTask - 239, // 179: temporal.server.api.historyservice.v1.GetDLQMessagesResponse.replication_tasks_info:type_name -> temporal.server.api.replication.v1.ReplicationTaskInfo - 244, // 180: temporal.server.api.historyservice.v1.PurgeDLQMessagesRequest.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType - 244, // 181: temporal.server.api.historyservice.v1.MergeDLQMessagesRequest.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType - 245, // 182: temporal.server.api.historyservice.v1.RefreshWorkflowTasksRequest.request:type_name -> temporal.server.api.adminservice.v1.RefreshWorkflowTasksRequest - 192, // 183: temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 96, // 184: temporal.server.api.historyservice.v1.GetReplicationStatusResponse.shards:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatus - 176, // 185: temporal.server.api.historyservice.v1.ShardReplicationStatus.shard_local_time:type_name -> google.protobuf.Timestamp - 170, // 186: temporal.server.api.historyservice.v1.ShardReplicationStatus.remote_clusters:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatus.RemoteClustersEntry - 171, // 187: temporal.server.api.historyservice.v1.ShardReplicationStatus.handover_namespaces:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatus.HandoverNamespacesEntry - 176, // 188: temporal.server.api.historyservice.v1.ShardReplicationStatus.max_replication_task_visibility_time:type_name -> google.protobuf.Timestamp - 176, // 189: temporal.server.api.historyservice.v1.ShardReplicationStatusPerCluster.acked_task_visibility_time:type_name -> google.protobuf.Timestamp - 192, // 190: temporal.server.api.historyservice.v1.RebuildMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 192, // 191: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 232, // 192: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest.history_batches:type_name -> temporal.api.common.v1.DataBlob - 235, // 193: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest.version_history:type_name -> temporal.server.api.history.v1.VersionHistory - 192, // 194: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 176, // 195: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest.workflow_start_time:type_name -> google.protobuf.Timestamp - 176, // 196: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest.workflow_close_time:type_name -> google.protobuf.Timestamp - 246, // 197: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequest - 247, // 198: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse.response:type_name -> temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponse - 248, // 199: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesRequest.sync_replication_state:type_name -> temporal.server.api.replication.v1.SyncReplicationState - 249, // 200: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesResponse.messages:type_name -> temporal.server.api.replication.v1.WorkflowReplicationMessages - 250, // 201: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateRequest.request:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateRequest - 251, // 202: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateResponse.response:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateResponse - 252, // 203: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryRequest - 253, // 204: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse - 206, // 205: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse.history:type_name -> temporal.api.history.v1.History - 253, // 206: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponseWithRaw.response:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse - 254, // 207: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseRequest - 255, // 208: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseResponse - 256, // 209: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Request.request:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryV2Request - 257, // 210: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Response.response:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryV2Response - 258, // 211: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryRequest.request:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryRequest - 259, // 212: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryResponse.response:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryResponse - 260, // 213: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionRequest.request:type_name -> temporal.server.api.adminservice.v1.DeleteWorkflowExecutionRequest - 261, // 214: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionResponse.response:type_name -> temporal.server.api.adminservice.v1.DeleteWorkflowExecutionResponse - 192, // 215: temporal.server.api.historyservice.v1.DeleteExecutionRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 262, // 216: temporal.server.api.historyservice.v1.GetDLQTasksRequest.dlq_key:type_name -> temporal.server.api.common.v1.HistoryDLQKey - 263, // 217: temporal.server.api.historyservice.v1.GetDLQTasksResponse.dlq_tasks:type_name -> temporal.server.api.common.v1.HistoryDLQTask - 262, // 218: temporal.server.api.historyservice.v1.DeleteDLQTasksRequest.dlq_key:type_name -> temporal.server.api.common.v1.HistoryDLQKey - 264, // 219: temporal.server.api.historyservice.v1.DeleteDLQTasksRequest.inclusive_max_task_metadata:type_name -> temporal.server.api.common.v1.HistoryDLQTaskMetadata - 172, // 220: temporal.server.api.historyservice.v1.ListQueuesResponse.queues:type_name -> temporal.server.api.historyservice.v1.ListQueuesResponse.QueueInfo - 173, // 221: temporal.server.api.historyservice.v1.AddTasksRequest.tasks:type_name -> temporal.server.api.historyservice.v1.AddTasksRequest.Task - 265, // 222: temporal.server.api.historyservice.v1.ListTasksRequest.request:type_name -> temporal.server.api.adminservice.v1.ListHistoryTasksRequest - 266, // 223: temporal.server.api.historyservice.v1.ListTasksResponse.response:type_name -> temporal.server.api.adminservice.v1.ListHistoryTasksResponse - 267, // 224: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.completion:type_name -> temporal.server.api.token.v1.NexusOperationCompletion - 268, // 225: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.success:type_name -> temporal.api.common.v1.Payload - 178, // 226: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.failure:type_name -> temporal.api.failure.v1.Failure - 176, // 227: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.close_time:type_name -> google.protobuf.Timestamp - 191, // 228: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.links:type_name -> temporal.api.common.v1.Link - 176, // 229: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.start_time:type_name -> google.protobuf.Timestamp - 267, // 230: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.completion:type_name -> temporal.server.api.token.v1.NexusOperationCompletion - 268, // 231: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.success:type_name -> temporal.api.common.v1.Payload - 269, // 232: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.failure:type_name -> temporal.api.nexus.v1.Failure - 176, // 233: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.start_time:type_name -> google.protobuf.Timestamp - 191, // 234: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.links:type_name -> temporal.api.common.v1.Link - 270, // 235: temporal.server.api.historyservice.v1.InvokeStateMachineMethodRequest.ref:type_name -> temporal.server.api.persistence.v1.StateMachineRef - 271, // 236: temporal.server.api.historyservice.v1.DeepHealthCheckResponse.state:type_name -> temporal.server.api.enums.v1.HealthState - 272, // 237: temporal.server.api.historyservice.v1.DeepHealthCheckResponse.checks:type_name -> temporal.server.api.health.v1.HealthCheck - 271, // 238: temporal.server.api.historyservice.v1.DeepHealthCheckResponse.unenforced_state:type_name -> temporal.server.api.enums.v1.HealthState - 192, // 239: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 194, // 240: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest.versioned_transition:type_name -> temporal.server.api.persistence.v1.VersionedTransition - 198, // 241: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest.version_histories:type_name -> temporal.server.api.history.v1.VersionHistories - 273, // 242: temporal.server.api.historyservice.v1.SyncWorkflowStateResponse.versioned_transition_artifact:type_name -> temporal.server.api.replication.v1.VersionedTransitionArtifact - 274, // 243: temporal.server.api.historyservice.v1.UpdateActivityOptionsRequest.update_request:type_name -> temporal.api.workflowservice.v1.UpdateActivityOptionsRequest - 275, // 244: temporal.server.api.historyservice.v1.UpdateActivityOptionsResponse.activity_options:type_name -> temporal.api.activity.v1.ActivityOptions - 276, // 245: temporal.server.api.historyservice.v1.PauseActivityRequest.frontend_request:type_name -> temporal.api.workflowservice.v1.PauseActivityRequest - 277, // 246: temporal.server.api.historyservice.v1.UnpauseActivityRequest.frontend_request:type_name -> temporal.api.workflowservice.v1.UnpauseActivityRequest - 278, // 247: temporal.server.api.historyservice.v1.ResetActivityRequest.frontend_request:type_name -> temporal.api.workflowservice.v1.ResetActivityRequest - 279, // 248: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsRequest.update_request:type_name -> temporal.api.workflowservice.v1.UpdateWorkflowExecutionOptionsRequest - 280, // 249: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse.workflow_execution_options:type_name -> temporal.api.workflow.v1.WorkflowExecutionOptions - 176, // 250: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse.update_time:type_name -> google.protobuf.Timestamp - 281, // 251: temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest.pause_request:type_name -> temporal.api.workflowservice.v1.PauseWorkflowExecutionRequest - 282, // 252: temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest.unpause_request:type_name -> temporal.api.workflowservice.v1.UnpauseWorkflowExecutionRequest - 283, // 253: temporal.server.api.historyservice.v1.StartNexusOperationRequest.request:type_name -> temporal.api.nexus.v1.StartOperationRequest - 284, // 254: temporal.server.api.historyservice.v1.StartNexusOperationResponse.response:type_name -> temporal.api.nexus.v1.StartOperationResponse - 285, // 255: temporal.server.api.historyservice.v1.CancelNexusOperationRequest.request:type_name -> temporal.api.nexus.v1.CancelOperationRequest - 286, // 256: temporal.server.api.historyservice.v1.CancelNexusOperationResponse.response:type_name -> temporal.api.nexus.v1.CancelOperationResponse - 287, // 257: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingRequest.request:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionTimeSkippingRequest - 288, // 258: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingResponse.response:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionTimeSkippingResponse - 193, // 259: temporal.server.api.historyservice.v1.OrphanedChildReplacementInfo.parent_current_version_history_items:type_name -> temporal.server.api.history.v1.VersionHistoryItem - 1, // 260: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.Operation.start_workflow:type_name -> temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest - 105, // 261: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.Operation.update_workflow:type_name -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest - 2, // 262: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.Response.start_workflow:type_name -> temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse - 106, // 263: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.Response.update_workflow:type_name -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse - 289, // 264: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery - 289, // 265: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery - 290, // 266: temporal.server.api.historyservice.v1.GetReplicationMessagesResponse.ShardMessagesEntry.value:type_name -> temporal.server.api.replication.v1.ReplicationMessages - 98, // 267: temporal.server.api.historyservice.v1.ShardReplicationStatus.RemoteClustersEntry.value:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatusPerCluster - 97, // 268: temporal.server.api.historyservice.v1.ShardReplicationStatus.HandoverNamespacesEntry.value:type_name -> temporal.server.api.historyservice.v1.HandoverNamespaceInfo - 232, // 269: temporal.server.api.historyservice.v1.AddTasksRequest.Task.blob:type_name -> temporal.api.common.v1.DataBlob - 291, // 270: temporal.server.api.historyservice.v1.routing:extendee -> google.protobuf.MessageOptions - 0, // 271: temporal.server.api.historyservice.v1.routing:type_name -> temporal.server.api.historyservice.v1.RoutingOptions - 272, // [272:272] is the sub-list for method output_type - 272, // [272:272] is the sub-list for method input_type - 271, // [271:272] is the sub-list for extension type_name - 270, // [270:271] is the sub-list for extension extendee - 0, // [0:270] is the sub-list for field type_name + 176, // 0: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.start_request:type_name -> temporal.api.workflowservice.v1.StartWorkflowExecutionRequest + 177, // 1: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.parent_execution_info:type_name -> temporal.server.api.workflow.v1.ParentExecutionInfo + 178, // 2: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.workflow_execution_expiration_time:type_name -> google.protobuf.Timestamp + 179, // 3: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.continue_as_new_initiator:type_name -> temporal.api.enums.v1.ContinueAsNewInitiator + 180, // 4: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.continued_failure:type_name -> temporal.api.failure.v1.Failure + 181, // 5: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.last_completion_result:type_name -> temporal.api.common.v1.Payloads + 182, // 6: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.first_workflow_task_backoff:type_name -> google.protobuf.Duration + 183, // 7: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.source_version_stamp:type_name -> temporal.api.common.v1.WorkerVersionStamp + 184, // 8: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.root_execution_info:type_name -> temporal.server.api.workflow.v1.RootExecutionInfo + 185, // 9: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.versioning_override:type_name -> temporal.api.workflow.v1.VersioningOverride + 186, // 10: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.inherited_pinned_version:type_name -> temporal.api.deployment.v1.WorkerDeploymentVersion + 187, // 11: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.inherited_auto_upgrade_info:type_name -> temporal.api.deployment.v1.InheritedAutoUpgradeInfo + 188, // 12: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.declined_target_version_upgrade:type_name -> temporal.api.history.v1.DeclinedTargetVersionUpgrade + 189, // 13: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.time_skipping_state_propagation:type_name -> temporal.api.common.v1.TimeSkippingStatePropagation + 166, // 14: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest.orphaned_child_replacement_info:type_name -> temporal.server.api.historyservice.v1.OrphanedChildReplacementInfo + 190, // 15: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 191, // 16: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.eager_workflow_task:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse + 192, // 17: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.status:type_name -> temporal.api.enums.v1.WorkflowExecutionStatus + 193, // 18: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse.link:type_name -> temporal.api.common.v1.Link + 194, // 19: temporal.server.api.historyservice.v1.GetStreamReplaySlicesRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 195, // 20: temporal.server.api.historyservice.v1.GetStreamReplaySlicesResponse.stream_slices:type_name -> temporal.api.stream.v1.StreamSlice + 194, // 21: temporal.server.api.historyservice.v1.GetMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 196, // 22: temporal.server.api.historyservice.v1.GetMutableStateRequest.version_history_item:type_name -> temporal.server.api.history.v1.VersionHistoryItem + 197, // 23: temporal.server.api.historyservice.v1.GetMutableStateRequest.versioned_transition:type_name -> temporal.server.api.persistence.v1.VersionedTransition + 194, // 24: temporal.server.api.historyservice.v1.GetMutableStateResponse.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 198, // 25: temporal.server.api.historyservice.v1.GetMutableStateResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 199, // 26: temporal.server.api.historyservice.v1.GetMutableStateResponse.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 199, // 27: temporal.server.api.historyservice.v1.GetMutableStateResponse.sticky_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 182, // 28: temporal.server.api.historyservice.v1.GetMutableStateResponse.sticky_task_queue_schedule_to_start_timeout:type_name -> google.protobuf.Duration + 200, // 29: temporal.server.api.historyservice.v1.GetMutableStateResponse.workflow_state:type_name -> temporal.server.api.enums.v1.WorkflowExecutionState + 192, // 30: temporal.server.api.historyservice.v1.GetMutableStateResponse.workflow_status:type_name -> temporal.api.enums.v1.WorkflowExecutionStatus + 201, // 31: temporal.server.api.historyservice.v1.GetMutableStateResponse.version_histories:type_name -> temporal.server.api.history.v1.VersionHistories + 183, // 32: temporal.server.api.historyservice.v1.GetMutableStateResponse.most_recent_worker_version_stamp:type_name -> temporal.api.common.v1.WorkerVersionStamp + 197, // 33: temporal.server.api.historyservice.v1.GetMutableStateResponse.transition_history:type_name -> temporal.server.api.persistence.v1.VersionedTransition + 202, // 34: temporal.server.api.historyservice.v1.GetMutableStateResponse.versioning_info:type_name -> temporal.api.workflow.v1.WorkflowExecutionVersioningInfo + 203, // 35: temporal.server.api.historyservice.v1.GetMutableStateResponse.transient_or_speculative_tasks:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo + 194, // 36: temporal.server.api.historyservice.v1.PollMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 196, // 37: temporal.server.api.historyservice.v1.PollMutableStateRequest.version_history_item:type_name -> temporal.server.api.history.v1.VersionHistoryItem + 194, // 38: temporal.server.api.historyservice.v1.PollMutableStateResponse.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 198, // 39: temporal.server.api.historyservice.v1.PollMutableStateResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 199, // 40: temporal.server.api.historyservice.v1.PollMutableStateResponse.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 199, // 41: temporal.server.api.historyservice.v1.PollMutableStateResponse.sticky_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 182, // 42: temporal.server.api.historyservice.v1.PollMutableStateResponse.sticky_task_queue_schedule_to_start_timeout:type_name -> google.protobuf.Duration + 201, // 43: temporal.server.api.historyservice.v1.PollMutableStateResponse.version_histories:type_name -> temporal.server.api.history.v1.VersionHistories + 200, // 44: temporal.server.api.historyservice.v1.PollMutableStateResponse.workflow_state:type_name -> temporal.server.api.enums.v1.WorkflowExecutionState + 192, // 45: temporal.server.api.historyservice.v1.PollMutableStateResponse.workflow_status:type_name -> temporal.api.enums.v1.WorkflowExecutionStatus + 194, // 46: temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 167, // 47: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.operations:type_name -> temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.Operation + 168, // 48: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.responses:type_name -> temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.Response + 194, // 49: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 204, // 50: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest + 190, // 51: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 205, // 52: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.build_id_redirect_info:type_name -> temporal.server.api.taskqueue.v1.BuildIdRedirectInfo + 206, // 53: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.scheduled_deployment:type_name -> temporal.api.deployment.v1.Deployment + 207, // 54: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 186, // 55: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest.target_deployment_version:type_name -> temporal.api.deployment.v1.WorkerDeploymentVersion + 198, // 56: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 203, // 57: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo + 199, // 58: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 178, // 59: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.scheduled_time:type_name -> google.protobuf.Timestamp + 178, // 60: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.started_time:type_name -> google.protobuf.Timestamp + 169, // 61: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.queries:type_name -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.QueriesEntry + 190, // 62: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 208, // 63: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.messages:type_name -> temporal.api.protocol.v1.Message + 209, // 64: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.history:type_name -> temporal.api.history.v1.History + 209, // 65: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.raw_history:type_name -> temporal.api.history.v1.History + 195, // 66: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.stream_slices:type_name -> temporal.api.stream.v1.StreamSlice + 198, // 67: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 203, // 68: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo + 199, // 69: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 178, // 70: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.scheduled_time:type_name -> google.protobuf.Timestamp + 178, // 71: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.started_time:type_name -> google.protobuf.Timestamp + 170, // 72: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.queries:type_name -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.QueriesEntry + 190, // 73: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 208, // 74: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.messages:type_name -> temporal.api.protocol.v1.Message + 209, // 75: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.history:type_name -> temporal.api.history.v1.History + 195, // 76: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.stream_slices:type_name -> temporal.api.stream.v1.StreamSlice + 194, // 77: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 210, // 78: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueRequest + 190, // 79: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 205, // 80: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.build_id_redirect_info:type_name -> temporal.server.api.taskqueue.v1.BuildIdRedirectInfo + 206, // 81: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.scheduled_deployment:type_name -> temporal.api.deployment.v1.Deployment + 207, // 82: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 211, // 83: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.scheduled_event:type_name -> temporal.api.history.v1.HistoryEvent + 178, // 84: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.started_time:type_name -> google.protobuf.Timestamp + 178, // 85: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.current_attempt_scheduled_time:type_name -> google.protobuf.Timestamp + 181, // 86: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.heartbeat_details:type_name -> temporal.api.common.v1.Payloads + 198, // 87: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 190, // 88: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 212, // 89: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.priority:type_name -> temporal.api.common.v1.Priority + 213, // 90: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse.retry_policy:type_name -> temporal.api.common.v1.RetryPolicy + 214, // 91: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedRequest.complete_request:type_name -> temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest + 14, // 92: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse.started_response:type_name -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse + 215, // 93: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse.activity_tasks:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueResponse + 191, // 94: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse.new_workflow_task:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse + 216, // 95: temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedRequest.failed_request:type_name -> temporal.api.workflowservice.v1.RespondWorkflowTaskFailedRequest + 194, // 96: temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 190, // 97: temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 217, // 98: temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatRequest.heartbeat_request:type_name -> temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatRequest + 218, // 99: temporal.server.api.historyservice.v1.RespondActivityTaskCompletedRequest.complete_request:type_name -> temporal.api.workflowservice.v1.RespondActivityTaskCompletedRequest + 219, // 100: temporal.server.api.historyservice.v1.RespondActivityTaskFailedRequest.failed_request:type_name -> temporal.api.workflowservice.v1.RespondActivityTaskFailedRequest + 220, // 101: temporal.server.api.historyservice.v1.RespondActivityTaskCanceledRequest.cancel_request:type_name -> temporal.api.workflowservice.v1.RespondActivityTaskCanceledRequest + 194, // 102: temporal.server.api.historyservice.v1.IsActivityTaskValidRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 190, // 103: temporal.server.api.historyservice.v1.IsActivityTaskValidRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 221, // 104: temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest.signal_request:type_name -> temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest + 194, // 105: temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest.external_workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 193, // 106: temporal.server.api.historyservice.v1.SignalWorkflowExecutionResponse.link:type_name -> temporal.api.common.v1.Link + 222, // 107: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionRequest.signal_with_start_request:type_name -> temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionRequest + 193, // 108: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionResponse.signal_link:type_name -> temporal.api.common.v1.Link + 194, // 109: temporal.server.api.historyservice.v1.RemoveSignalMutableStateRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 223, // 110: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest.terminate_request:type_name -> temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest + 194, // 111: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest.external_workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 194, // 112: temporal.server.api.historyservice.v1.DeleteWorkflowExecutionRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 224, // 113: temporal.server.api.historyservice.v1.ResetWorkflowExecutionRequest.reset_request:type_name -> temporal.api.workflowservice.v1.ResetWorkflowExecutionRequest + 225, // 114: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest.cancel_request:type_name -> temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest + 194, // 115: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest.external_workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 194, // 116: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 190, // 117: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest.child_clock:type_name -> temporal.server.api.clock.v1.VectorClock + 190, // 118: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest.parent_clock:type_name -> temporal.server.api.clock.v1.VectorClock + 194, // 119: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 190, // 120: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 194, // 121: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.parent_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 194, // 122: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.child_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 211, // 123: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.completion_event:type_name -> temporal.api.history.v1.HistoryEvent + 190, // 124: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 194, // 125: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest.parent_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 194, // 126: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest.child_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 190, // 127: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 226, // 128: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionRequest.request:type_name -> temporal.api.workflowservice.v1.DescribeWorkflowExecutionRequest + 227, // 129: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.execution_config:type_name -> temporal.api.workflow.v1.WorkflowExecutionConfig + 228, // 130: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.workflow_execution_info:type_name -> temporal.api.workflow.v1.WorkflowExecutionInfo + 229, // 131: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_activities:type_name -> temporal.api.workflow.v1.PendingActivityInfo + 230, // 132: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_children:type_name -> temporal.api.workflow.v1.PendingChildExecutionInfo + 231, // 133: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_workflow_task:type_name -> temporal.api.workflow.v1.PendingWorkflowTaskInfo + 232, // 134: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.callbacks:type_name -> temporal.api.workflow.v1.CallbackInfo + 233, // 135: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.pending_nexus_operations:type_name -> temporal.api.workflow.v1.PendingNexusOperationInfo + 234, // 136: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse.workflow_extended_info:type_name -> temporal.api.workflow.v1.WorkflowExecutionExtendedInfo + 194, // 137: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 196, // 138: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.version_history_items:type_name -> temporal.server.api.history.v1.VersionHistoryItem + 235, // 139: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.events:type_name -> temporal.api.common.v1.DataBlob + 235, // 140: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.new_run_events:type_name -> temporal.api.common.v1.DataBlob + 236, // 141: temporal.server.api.historyservice.v1.ReplicateEventsV2Request.base_execution_info:type_name -> temporal.server.api.workflow.v1.BaseExecutionInfo + 237, // 142: temporal.server.api.historyservice.v1.ReplicateWorkflowStateRequest.workflow_state:type_name -> temporal.server.api.persistence.v1.WorkflowMutableState + 178, // 143: temporal.server.api.historyservice.v1.SyncShardStatusRequest.status_time:type_name -> google.protobuf.Timestamp + 178, // 144: temporal.server.api.historyservice.v1.SyncActivityRequest.scheduled_time:type_name -> google.protobuf.Timestamp + 178, // 145: temporal.server.api.historyservice.v1.SyncActivityRequest.started_time:type_name -> google.protobuf.Timestamp + 178, // 146: temporal.server.api.historyservice.v1.SyncActivityRequest.last_heartbeat_time:type_name -> google.protobuf.Timestamp + 181, // 147: temporal.server.api.historyservice.v1.SyncActivityRequest.details:type_name -> temporal.api.common.v1.Payloads + 180, // 148: temporal.server.api.historyservice.v1.SyncActivityRequest.last_failure:type_name -> temporal.api.failure.v1.Failure + 238, // 149: temporal.server.api.historyservice.v1.SyncActivityRequest.version_history:type_name -> temporal.server.api.history.v1.VersionHistory + 236, // 150: temporal.server.api.historyservice.v1.SyncActivityRequest.base_execution_info:type_name -> temporal.server.api.workflow.v1.BaseExecutionInfo + 178, // 151: temporal.server.api.historyservice.v1.SyncActivityRequest.first_scheduled_time:type_name -> google.protobuf.Timestamp + 178, // 152: temporal.server.api.historyservice.v1.SyncActivityRequest.last_attempt_complete_time:type_name -> google.protobuf.Timestamp + 182, // 153: temporal.server.api.historyservice.v1.SyncActivityRequest.retry_initial_interval:type_name -> google.protobuf.Duration + 182, // 154: temporal.server.api.historyservice.v1.SyncActivityRequest.retry_maximum_interval:type_name -> google.protobuf.Duration + 66, // 155: temporal.server.api.historyservice.v1.SyncActivitiesRequest.activities_info:type_name -> temporal.server.api.historyservice.v1.ActivitySyncInfo + 178, // 156: temporal.server.api.historyservice.v1.ActivitySyncInfo.scheduled_time:type_name -> google.protobuf.Timestamp + 178, // 157: temporal.server.api.historyservice.v1.ActivitySyncInfo.started_time:type_name -> google.protobuf.Timestamp + 178, // 158: temporal.server.api.historyservice.v1.ActivitySyncInfo.last_heartbeat_time:type_name -> google.protobuf.Timestamp + 181, // 159: temporal.server.api.historyservice.v1.ActivitySyncInfo.details:type_name -> temporal.api.common.v1.Payloads + 180, // 160: temporal.server.api.historyservice.v1.ActivitySyncInfo.last_failure:type_name -> temporal.api.failure.v1.Failure + 238, // 161: temporal.server.api.historyservice.v1.ActivitySyncInfo.version_history:type_name -> temporal.server.api.history.v1.VersionHistory + 178, // 162: temporal.server.api.historyservice.v1.ActivitySyncInfo.first_scheduled_time:type_name -> google.protobuf.Timestamp + 178, // 163: temporal.server.api.historyservice.v1.ActivitySyncInfo.last_attempt_complete_time:type_name -> google.protobuf.Timestamp + 182, // 164: temporal.server.api.historyservice.v1.ActivitySyncInfo.retry_initial_interval:type_name -> google.protobuf.Duration + 182, // 165: temporal.server.api.historyservice.v1.ActivitySyncInfo.retry_maximum_interval:type_name -> google.protobuf.Duration + 194, // 166: temporal.server.api.historyservice.v1.DescribeMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 237, // 167: temporal.server.api.historyservice.v1.DescribeMutableStateResponse.cache_mutable_state:type_name -> temporal.server.api.persistence.v1.WorkflowMutableState + 237, // 168: temporal.server.api.historyservice.v1.DescribeMutableStateResponse.database_mutable_state:type_name -> temporal.server.api.persistence.v1.WorkflowMutableState + 194, // 169: temporal.server.api.historyservice.v1.DescribeHistoryHostRequest.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 239, // 170: temporal.server.api.historyservice.v1.DescribeHistoryHostResponse.namespace_cache:type_name -> temporal.server.api.namespace.v1.NamespaceCacheInfo + 240, // 171: temporal.server.api.historyservice.v1.GetShardResponse.shard_info:type_name -> temporal.server.api.persistence.v1.ShardInfo + 178, // 172: temporal.server.api.historyservice.v1.RemoveTaskRequest.visibility_time:type_name -> google.protobuf.Timestamp + 241, // 173: temporal.server.api.historyservice.v1.GetReplicationMessagesRequest.tokens:type_name -> temporal.server.api.replication.v1.ReplicationToken + 171, // 174: temporal.server.api.historyservice.v1.GetReplicationMessagesResponse.shard_messages:type_name -> temporal.server.api.historyservice.v1.GetReplicationMessagesResponse.ShardMessagesEntry + 242, // 175: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesRequest.task_infos:type_name -> temporal.server.api.replication.v1.ReplicationTaskInfo + 243, // 176: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesResponse.replication_tasks:type_name -> temporal.server.api.replication.v1.ReplicationTask + 244, // 177: temporal.server.api.historyservice.v1.QueryWorkflowRequest.request:type_name -> temporal.api.workflowservice.v1.QueryWorkflowRequest + 245, // 178: temporal.server.api.historyservice.v1.QueryWorkflowResponse.response:type_name -> temporal.api.workflowservice.v1.QueryWorkflowResponse + 246, // 179: temporal.server.api.historyservice.v1.ReapplyEventsRequest.request:type_name -> temporal.server.api.adminservice.v1.ReapplyEventsRequest + 247, // 180: temporal.server.api.historyservice.v1.GetDLQMessagesRequest.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType + 247, // 181: temporal.server.api.historyservice.v1.GetDLQMessagesResponse.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType + 243, // 182: temporal.server.api.historyservice.v1.GetDLQMessagesResponse.replication_tasks:type_name -> temporal.server.api.replication.v1.ReplicationTask + 242, // 183: temporal.server.api.historyservice.v1.GetDLQMessagesResponse.replication_tasks_info:type_name -> temporal.server.api.replication.v1.ReplicationTaskInfo + 247, // 184: temporal.server.api.historyservice.v1.PurgeDLQMessagesRequest.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType + 247, // 185: temporal.server.api.historyservice.v1.MergeDLQMessagesRequest.type:type_name -> temporal.server.api.enums.v1.DeadLetterQueueType + 248, // 186: temporal.server.api.historyservice.v1.RefreshWorkflowTasksRequest.request:type_name -> temporal.server.api.adminservice.v1.RefreshWorkflowTasksRequest + 194, // 187: temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 98, // 188: temporal.server.api.historyservice.v1.GetReplicationStatusResponse.shards:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatus + 178, // 189: temporal.server.api.historyservice.v1.ShardReplicationStatus.shard_local_time:type_name -> google.protobuf.Timestamp + 172, // 190: temporal.server.api.historyservice.v1.ShardReplicationStatus.remote_clusters:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatus.RemoteClustersEntry + 173, // 191: temporal.server.api.historyservice.v1.ShardReplicationStatus.handover_namespaces:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatus.HandoverNamespacesEntry + 178, // 192: temporal.server.api.historyservice.v1.ShardReplicationStatus.max_replication_task_visibility_time:type_name -> google.protobuf.Timestamp + 178, // 193: temporal.server.api.historyservice.v1.ShardReplicationStatusPerCluster.acked_task_visibility_time:type_name -> google.protobuf.Timestamp + 194, // 194: temporal.server.api.historyservice.v1.RebuildMutableStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 194, // 195: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 235, // 196: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest.history_batches:type_name -> temporal.api.common.v1.DataBlob + 238, // 197: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest.version_history:type_name -> temporal.server.api.history.v1.VersionHistory + 194, // 198: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 178, // 199: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest.workflow_start_time:type_name -> google.protobuf.Timestamp + 178, // 200: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest.workflow_close_time:type_name -> google.protobuf.Timestamp + 249, // 201: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequest + 250, // 202: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse.response:type_name -> temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponse + 251, // 203: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesRequest.sync_replication_state:type_name -> temporal.server.api.replication.v1.SyncReplicationState + 252, // 204: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesResponse.messages:type_name -> temporal.server.api.replication.v1.WorkflowReplicationMessages + 253, // 205: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateRequest.request:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateRequest + 254, // 206: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateResponse.response:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateResponse + 255, // 207: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryRequest + 256, // 208: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse + 209, // 209: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse.history:type_name -> temporal.api.history.v1.History + 256, // 210: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponseWithRaw.response:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse + 257, // 211: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseRequest + 258, // 212: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseResponse + 259, // 213: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Request.request:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryV2Request + 260, // 214: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Response.response:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryV2Response + 261, // 215: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryRequest.request:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryRequest + 262, // 216: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryResponse.response:type_name -> temporal.server.api.adminservice.v1.GetWorkflowExecutionRawHistoryResponse + 263, // 217: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionRequest.request:type_name -> temporal.server.api.adminservice.v1.DeleteWorkflowExecutionRequest + 264, // 218: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionResponse.response:type_name -> temporal.server.api.adminservice.v1.DeleteWorkflowExecutionResponse + 194, // 219: temporal.server.api.historyservice.v1.DeleteExecutionRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 265, // 220: temporal.server.api.historyservice.v1.GetDLQTasksRequest.dlq_key:type_name -> temporal.server.api.common.v1.HistoryDLQKey + 266, // 221: temporal.server.api.historyservice.v1.GetDLQTasksResponse.dlq_tasks:type_name -> temporal.server.api.common.v1.HistoryDLQTask + 265, // 222: temporal.server.api.historyservice.v1.DeleteDLQTasksRequest.dlq_key:type_name -> temporal.server.api.common.v1.HistoryDLQKey + 267, // 223: temporal.server.api.historyservice.v1.DeleteDLQTasksRequest.inclusive_max_task_metadata:type_name -> temporal.server.api.common.v1.HistoryDLQTaskMetadata + 174, // 224: temporal.server.api.historyservice.v1.ListQueuesResponse.queues:type_name -> temporal.server.api.historyservice.v1.ListQueuesResponse.QueueInfo + 175, // 225: temporal.server.api.historyservice.v1.AddTasksRequest.tasks:type_name -> temporal.server.api.historyservice.v1.AddTasksRequest.Task + 268, // 226: temporal.server.api.historyservice.v1.ListTasksRequest.request:type_name -> temporal.server.api.adminservice.v1.ListHistoryTasksRequest + 269, // 227: temporal.server.api.historyservice.v1.ListTasksResponse.response:type_name -> temporal.server.api.adminservice.v1.ListHistoryTasksResponse + 270, // 228: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.completion:type_name -> temporal.server.api.token.v1.NexusOperationCompletion + 271, // 229: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.success:type_name -> temporal.api.common.v1.Payload + 180, // 230: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.failure:type_name -> temporal.api.failure.v1.Failure + 178, // 231: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.close_time:type_name -> google.protobuf.Timestamp + 193, // 232: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.links:type_name -> temporal.api.common.v1.Link + 178, // 233: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest.start_time:type_name -> google.protobuf.Timestamp + 270, // 234: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.completion:type_name -> temporal.server.api.token.v1.NexusOperationCompletion + 271, // 235: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.success:type_name -> temporal.api.common.v1.Payload + 272, // 236: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.failure:type_name -> temporal.api.nexus.v1.Failure + 178, // 237: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.start_time:type_name -> google.protobuf.Timestamp + 193, // 238: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest.links:type_name -> temporal.api.common.v1.Link + 273, // 239: temporal.server.api.historyservice.v1.InvokeStateMachineMethodRequest.ref:type_name -> temporal.server.api.persistence.v1.StateMachineRef + 274, // 240: temporal.server.api.historyservice.v1.DeepHealthCheckResponse.state:type_name -> temporal.server.api.enums.v1.HealthState + 275, // 241: temporal.server.api.historyservice.v1.DeepHealthCheckResponse.checks:type_name -> temporal.server.api.health.v1.HealthCheck + 274, // 242: temporal.server.api.historyservice.v1.DeepHealthCheckResponse.unenforced_state:type_name -> temporal.server.api.enums.v1.HealthState + 194, // 243: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 197, // 244: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest.versioned_transition:type_name -> temporal.server.api.persistence.v1.VersionedTransition + 201, // 245: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest.version_histories:type_name -> temporal.server.api.history.v1.VersionHistories + 276, // 246: temporal.server.api.historyservice.v1.SyncWorkflowStateResponse.versioned_transition_artifact:type_name -> temporal.server.api.replication.v1.VersionedTransitionArtifact + 277, // 247: temporal.server.api.historyservice.v1.UpdateActivityOptionsRequest.update_request:type_name -> temporal.api.workflowservice.v1.UpdateActivityOptionsRequest + 278, // 248: temporal.server.api.historyservice.v1.UpdateActivityOptionsResponse.activity_options:type_name -> temporal.api.activity.v1.ActivityOptions + 279, // 249: temporal.server.api.historyservice.v1.PauseActivityRequest.frontend_request:type_name -> temporal.api.workflowservice.v1.PauseActivityRequest + 280, // 250: temporal.server.api.historyservice.v1.UnpauseActivityRequest.frontend_request:type_name -> temporal.api.workflowservice.v1.UnpauseActivityRequest + 281, // 251: temporal.server.api.historyservice.v1.ResetActivityRequest.frontend_request:type_name -> temporal.api.workflowservice.v1.ResetActivityRequest + 282, // 252: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsRequest.update_request:type_name -> temporal.api.workflowservice.v1.UpdateWorkflowExecutionOptionsRequest + 283, // 253: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse.workflow_execution_options:type_name -> temporal.api.workflow.v1.WorkflowExecutionOptions + 178, // 254: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse.update_time:type_name -> google.protobuf.Timestamp + 284, // 255: temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest.pause_request:type_name -> temporal.api.workflowservice.v1.PauseWorkflowExecutionRequest + 285, // 256: temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest.unpause_request:type_name -> temporal.api.workflowservice.v1.UnpauseWorkflowExecutionRequest + 286, // 257: temporal.server.api.historyservice.v1.StartNexusOperationRequest.request:type_name -> temporal.api.nexus.v1.StartOperationRequest + 287, // 258: temporal.server.api.historyservice.v1.StartNexusOperationResponse.response:type_name -> temporal.api.nexus.v1.StartOperationResponse + 288, // 259: temporal.server.api.historyservice.v1.CancelNexusOperationRequest.request:type_name -> temporal.api.nexus.v1.CancelOperationRequest + 289, // 260: temporal.server.api.historyservice.v1.CancelNexusOperationResponse.response:type_name -> temporal.api.nexus.v1.CancelOperationResponse + 290, // 261: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingRequest.request:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionTimeSkippingRequest + 291, // 262: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingResponse.response:type_name -> temporal.api.workflowservice.v1.PollWorkflowExecutionTimeSkippingResponse + 196, // 263: temporal.server.api.historyservice.v1.OrphanedChildReplacementInfo.parent_current_version_history_items:type_name -> temporal.server.api.history.v1.VersionHistoryItem + 1, // 264: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.Operation.start_workflow:type_name -> temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest + 107, // 265: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest.Operation.update_workflow:type_name -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest + 2, // 266: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.Response.start_workflow:type_name -> temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse + 108, // 267: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse.Response.update_workflow:type_name -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse + 292, // 268: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery + 292, // 269: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponseWithRawHistory.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery + 293, // 270: temporal.server.api.historyservice.v1.GetReplicationMessagesResponse.ShardMessagesEntry.value:type_name -> temporal.server.api.replication.v1.ReplicationMessages + 100, // 271: temporal.server.api.historyservice.v1.ShardReplicationStatus.RemoteClustersEntry.value:type_name -> temporal.server.api.historyservice.v1.ShardReplicationStatusPerCluster + 99, // 272: temporal.server.api.historyservice.v1.ShardReplicationStatus.HandoverNamespacesEntry.value:type_name -> temporal.server.api.historyservice.v1.HandoverNamespaceInfo + 235, // 273: temporal.server.api.historyservice.v1.AddTasksRequest.Task.blob:type_name -> temporal.api.common.v1.DataBlob + 294, // 274: temporal.server.api.historyservice.v1.routing:extendee -> google.protobuf.MessageOptions + 0, // 275: temporal.server.api.historyservice.v1.routing:type_name -> temporal.server.api.historyservice.v1.RoutingOptions + 276, // [276:276] is the sub-list for method output_type + 276, // [276:276] is the sub-list for method input_type + 275, // [275:276] is the sub-list for extension type_name + 274, // [274:275] is the sub-list for extension extendee + 0, // [0:274] is the sub-list for field type_name } func init() { file_temporal_server_api_historyservice_v1_request_response_proto_init() } @@ -12161,25 +12310,25 @@ func file_temporal_server_api_historyservice_v1_request_response_proto_init() { if File_temporal_server_api_historyservice_v1_request_response_proto != nil { return } - file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[107].OneofWrappers = []any{ + file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[109].OneofWrappers = []any{ (*StreamWorkflowReplicationMessagesRequest_SyncReplicationState)(nil), } - file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[108].OneofWrappers = []any{ + file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[110].OneofWrappers = []any{ (*StreamWorkflowReplicationMessagesResponse_Messages)(nil), } - file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[134].OneofWrappers = []any{ + file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[136].OneofWrappers = []any{ (*CompleteNexusOperationChasmRequest_Success)(nil), (*CompleteNexusOperationChasmRequest_Failure)(nil), } - file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[136].OneofWrappers = []any{ + file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[138].OneofWrappers = []any{ (*CompleteNexusOperationRequest_Success)(nil), (*CompleteNexusOperationRequest_Failure)(nil), } - file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[165].OneofWrappers = []any{ + file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[167].OneofWrappers = []any{ (*ExecuteMultiOperationRequest_Operation_StartWorkflow)(nil), (*ExecuteMultiOperationRequest_Operation_UpdateWorkflow)(nil), } - file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[166].OneofWrappers = []any{ + file_temporal_server_api_historyservice_v1_request_response_proto_msgTypes[168].OneofWrappers = []any{ (*ExecuteMultiOperationResponse_Response_StartWorkflow)(nil), (*ExecuteMultiOperationResponse_Response_UpdateWorkflow)(nil), } @@ -12189,7 +12338,7 @@ func file_temporal_server_api_historyservice_v1_request_response_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_temporal_server_api_historyservice_v1_request_response_proto_rawDesc), len(file_temporal_server_api_historyservice_v1_request_response_proto_rawDesc)), NumEnums: 0, - NumMessages: 174, + NumMessages: 176, NumExtensions: 1, NumServices: 0, }, diff --git a/api/historyservice/v1/service.pb.go b/api/historyservice/v1/service.pb.go index 640fef3b4d4..bee88cf6888 100644 --- a/api/historyservice/v1/service.pb.go +++ b/api/historyservice/v1/service.pb.go @@ -26,11 +26,12 @@ var File_temporal_server_api_historyservice_v1_service_proto protoreflect.FileDe const file_temporal_server_api_historyservice_v1_service_proto_rawDesc = "" + "\n" + - "3temporal/server/api/historyservice/v1/service.proto\x12%temporal.server.api.historyservice.v1\x1a0temporal/server/api/common/v1/api_category.proto\x1a.temporal.server.api.historyservice.v1.GetMutableStateResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\x9b\x01\n" + - "\x10PollMutableState\x12>.temporal.server.api.historyservice.v1.PollMutableStateRequest\x1a?.temporal.server.api.historyservice.v1.PollMutableStateResponse\"\x06\x8a\xb5\x18\x02\b\x02\x12\xa7\x01\n" + + "\x10PollMutableState\x12>.temporal.server.api.historyservice.v1.PollMutableStateRequest\x1a?.temporal.server.api.historyservice.v1.PollMutableStateResponse\"\x06\x8a\xb5\x18\x02\b\x02\x12\xaa\x01\n" + + "\x15GetStreamReplaySlices\x12C.temporal.server.api.historyservice.v1.GetStreamReplaySlicesRequest\x1aD.temporal.server.api.historyservice.v1.GetStreamReplaySlicesResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xa7\x01\n" + "\x14ResetStickyTaskQueue\x12B.temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest\x1aC.temporal.server.api.historyservice.v1.ResetStickyTaskQueueResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xb6\x01\n" + "\x19RecordWorkflowTaskStarted\x12G.temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest\x1aH.temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xb6\x01\n" + "\x19RecordActivityTaskStarted\x12G.temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest\x1aH.temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse\"\x06\x8a\xb5\x18\x02\b\x01\x12\xbf\x01\n" + @@ -114,319 +115,323 @@ var file_temporal_server_api_historyservice_v1_service_proto_goTypes = []any{ (*StartWorkflowExecutionRequest)(nil), // 0: temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest (*GetMutableStateRequest)(nil), // 1: temporal.server.api.historyservice.v1.GetMutableStateRequest (*PollMutableStateRequest)(nil), // 2: temporal.server.api.historyservice.v1.PollMutableStateRequest - (*ResetStickyTaskQueueRequest)(nil), // 3: temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest - (*RecordWorkflowTaskStartedRequest)(nil), // 4: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest - (*RecordActivityTaskStartedRequest)(nil), // 5: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest - (*RespondWorkflowTaskCompletedRequest)(nil), // 6: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedRequest - (*RespondWorkflowTaskFailedRequest)(nil), // 7: temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedRequest - (*IsWorkflowTaskValidRequest)(nil), // 8: temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest - (*RecordActivityTaskHeartbeatRequest)(nil), // 9: temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatRequest - (*RespondActivityTaskCompletedRequest)(nil), // 10: temporal.server.api.historyservice.v1.RespondActivityTaskCompletedRequest - (*RespondActivityTaskFailedRequest)(nil), // 11: temporal.server.api.historyservice.v1.RespondActivityTaskFailedRequest - (*RespondActivityTaskCanceledRequest)(nil), // 12: temporal.server.api.historyservice.v1.RespondActivityTaskCanceledRequest - (*IsActivityTaskValidRequest)(nil), // 13: temporal.server.api.historyservice.v1.IsActivityTaskValidRequest - (*SignalWorkflowExecutionRequest)(nil), // 14: temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest - (*SignalWithStartWorkflowExecutionRequest)(nil), // 15: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionRequest - (*ExecuteMultiOperationRequest)(nil), // 16: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest - (*RemoveSignalMutableStateRequest)(nil), // 17: temporal.server.api.historyservice.v1.RemoveSignalMutableStateRequest - (*TerminateWorkflowExecutionRequest)(nil), // 18: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest - (*DeleteWorkflowExecutionRequest)(nil), // 19: temporal.server.api.historyservice.v1.DeleteWorkflowExecutionRequest - (*ResetWorkflowExecutionRequest)(nil), // 20: temporal.server.api.historyservice.v1.ResetWorkflowExecutionRequest - (*UpdateWorkflowExecutionOptionsRequest)(nil), // 21: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsRequest - (*RequestCancelWorkflowExecutionRequest)(nil), // 22: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest - (*ScheduleWorkflowTaskRequest)(nil), // 23: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest - (*VerifyFirstWorkflowTaskScheduledRequest)(nil), // 24: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest - (*RecordChildExecutionCompletedRequest)(nil), // 25: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest - (*VerifyChildExecutionCompletionRecordedRequest)(nil), // 26: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest - (*DescribeWorkflowExecutionRequest)(nil), // 27: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionRequest - (*ReplicateEventsV2Request)(nil), // 28: temporal.server.api.historyservice.v1.ReplicateEventsV2Request - (*ReplicateWorkflowStateRequest)(nil), // 29: temporal.server.api.historyservice.v1.ReplicateWorkflowStateRequest - (*SyncShardStatusRequest)(nil), // 30: temporal.server.api.historyservice.v1.SyncShardStatusRequest - (*SyncActivityRequest)(nil), // 31: temporal.server.api.historyservice.v1.SyncActivityRequest - (*DescribeMutableStateRequest)(nil), // 32: temporal.server.api.historyservice.v1.DescribeMutableStateRequest - (*DescribeHistoryHostRequest)(nil), // 33: temporal.server.api.historyservice.v1.DescribeHistoryHostRequest - (*CloseShardRequest)(nil), // 34: temporal.server.api.historyservice.v1.CloseShardRequest - (*GetShardRequest)(nil), // 35: temporal.server.api.historyservice.v1.GetShardRequest - (*RemoveTaskRequest)(nil), // 36: temporal.server.api.historyservice.v1.RemoveTaskRequest - (*GetReplicationMessagesRequest)(nil), // 37: temporal.server.api.historyservice.v1.GetReplicationMessagesRequest - (*GetDLQReplicationMessagesRequest)(nil), // 38: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesRequest - (*QueryWorkflowRequest)(nil), // 39: temporal.server.api.historyservice.v1.QueryWorkflowRequest - (*ReapplyEventsRequest)(nil), // 40: temporal.server.api.historyservice.v1.ReapplyEventsRequest - (*GetDLQMessagesRequest)(nil), // 41: temporal.server.api.historyservice.v1.GetDLQMessagesRequest - (*PurgeDLQMessagesRequest)(nil), // 42: temporal.server.api.historyservice.v1.PurgeDLQMessagesRequest - (*MergeDLQMessagesRequest)(nil), // 43: temporal.server.api.historyservice.v1.MergeDLQMessagesRequest - (*RefreshWorkflowTasksRequest)(nil), // 44: temporal.server.api.historyservice.v1.RefreshWorkflowTasksRequest - (*GenerateLastHistoryReplicationTasksRequest)(nil), // 45: temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksRequest - (*GetReplicationStatusRequest)(nil), // 46: temporal.server.api.historyservice.v1.GetReplicationStatusRequest - (*RebuildMutableStateRequest)(nil), // 47: temporal.server.api.historyservice.v1.RebuildMutableStateRequest - (*ImportWorkflowExecutionRequest)(nil), // 48: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest - (*DeleteWorkflowVisibilityRecordRequest)(nil), // 49: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest - (*UpdateWorkflowExecutionRequest)(nil), // 50: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest - (*PollWorkflowExecutionUpdateRequest)(nil), // 51: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateRequest - (*StreamWorkflowReplicationMessagesRequest)(nil), // 52: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesRequest - (*GetWorkflowExecutionHistoryRequest)(nil), // 53: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryRequest - (*GetWorkflowExecutionHistoryReverseRequest)(nil), // 54: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseRequest - (*GetWorkflowExecutionRawHistoryV2Request)(nil), // 55: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Request - (*GetWorkflowExecutionRawHistoryRequest)(nil), // 56: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryRequest - (*ForceDeleteWorkflowExecutionRequest)(nil), // 57: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionRequest - (*DeleteExecutionRequest)(nil), // 58: temporal.server.api.historyservice.v1.DeleteExecutionRequest - (*GetDLQTasksRequest)(nil), // 59: temporal.server.api.historyservice.v1.GetDLQTasksRequest - (*DeleteDLQTasksRequest)(nil), // 60: temporal.server.api.historyservice.v1.DeleteDLQTasksRequest - (*ListQueuesRequest)(nil), // 61: temporal.server.api.historyservice.v1.ListQueuesRequest - (*AddTasksRequest)(nil), // 62: temporal.server.api.historyservice.v1.AddTasksRequest - (*ListTasksRequest)(nil), // 63: temporal.server.api.historyservice.v1.ListTasksRequest - (*CompleteNexusOperationRequest)(nil), // 64: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest - (*CompleteNexusOperationChasmRequest)(nil), // 65: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest - (*InvokeStateMachineMethodRequest)(nil), // 66: temporal.server.api.historyservice.v1.InvokeStateMachineMethodRequest - (*DeepHealthCheckRequest)(nil), // 67: temporal.server.api.historyservice.v1.DeepHealthCheckRequest - (*SyncWorkflowStateRequest)(nil), // 68: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest - (*UpdateActivityOptionsRequest)(nil), // 69: temporal.server.api.historyservice.v1.UpdateActivityOptionsRequest - (*PauseActivityRequest)(nil), // 70: temporal.server.api.historyservice.v1.PauseActivityRequest - (*UnpauseActivityRequest)(nil), // 71: temporal.server.api.historyservice.v1.UnpauseActivityRequest - (*ResetActivityRequest)(nil), // 72: temporal.server.api.historyservice.v1.ResetActivityRequest - (*PauseWorkflowExecutionRequest)(nil), // 73: temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest - (*UnpauseWorkflowExecutionRequest)(nil), // 74: temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest - (*StartNexusOperationRequest)(nil), // 75: temporal.server.api.historyservice.v1.StartNexusOperationRequest - (*CancelNexusOperationRequest)(nil), // 76: temporal.server.api.historyservice.v1.CancelNexusOperationRequest - (*PollWorkflowExecutionTimeSkippingRequest)(nil), // 77: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingRequest - (*StartWorkflowExecutionResponse)(nil), // 78: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse - (*GetMutableStateResponse)(nil), // 79: temporal.server.api.historyservice.v1.GetMutableStateResponse - (*PollMutableStateResponse)(nil), // 80: temporal.server.api.historyservice.v1.PollMutableStateResponse - (*ResetStickyTaskQueueResponse)(nil), // 81: temporal.server.api.historyservice.v1.ResetStickyTaskQueueResponse - (*RecordWorkflowTaskStartedResponse)(nil), // 82: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse - (*RecordActivityTaskStartedResponse)(nil), // 83: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse - (*RespondWorkflowTaskCompletedResponse)(nil), // 84: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse - (*RespondWorkflowTaskFailedResponse)(nil), // 85: temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedResponse - (*IsWorkflowTaskValidResponse)(nil), // 86: temporal.server.api.historyservice.v1.IsWorkflowTaskValidResponse - (*RecordActivityTaskHeartbeatResponse)(nil), // 87: temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatResponse - (*RespondActivityTaskCompletedResponse)(nil), // 88: temporal.server.api.historyservice.v1.RespondActivityTaskCompletedResponse - (*RespondActivityTaskFailedResponse)(nil), // 89: temporal.server.api.historyservice.v1.RespondActivityTaskFailedResponse - (*RespondActivityTaskCanceledResponse)(nil), // 90: temporal.server.api.historyservice.v1.RespondActivityTaskCanceledResponse - (*IsActivityTaskValidResponse)(nil), // 91: temporal.server.api.historyservice.v1.IsActivityTaskValidResponse - (*SignalWorkflowExecutionResponse)(nil), // 92: temporal.server.api.historyservice.v1.SignalWorkflowExecutionResponse - (*SignalWithStartWorkflowExecutionResponse)(nil), // 93: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionResponse - (*ExecuteMultiOperationResponse)(nil), // 94: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse - (*RemoveSignalMutableStateResponse)(nil), // 95: temporal.server.api.historyservice.v1.RemoveSignalMutableStateResponse - (*TerminateWorkflowExecutionResponse)(nil), // 96: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionResponse - (*DeleteWorkflowExecutionResponse)(nil), // 97: temporal.server.api.historyservice.v1.DeleteWorkflowExecutionResponse - (*ResetWorkflowExecutionResponse)(nil), // 98: temporal.server.api.historyservice.v1.ResetWorkflowExecutionResponse - (*UpdateWorkflowExecutionOptionsResponse)(nil), // 99: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse - (*RequestCancelWorkflowExecutionResponse)(nil), // 100: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionResponse - (*ScheduleWorkflowTaskResponse)(nil), // 101: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskResponse - (*VerifyFirstWorkflowTaskScheduledResponse)(nil), // 102: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledResponse - (*RecordChildExecutionCompletedResponse)(nil), // 103: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedResponse - (*VerifyChildExecutionCompletionRecordedResponse)(nil), // 104: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedResponse - (*DescribeWorkflowExecutionResponse)(nil), // 105: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse - (*ReplicateEventsV2Response)(nil), // 106: temporal.server.api.historyservice.v1.ReplicateEventsV2Response - (*ReplicateWorkflowStateResponse)(nil), // 107: temporal.server.api.historyservice.v1.ReplicateWorkflowStateResponse - (*SyncShardStatusResponse)(nil), // 108: temporal.server.api.historyservice.v1.SyncShardStatusResponse - (*SyncActivityResponse)(nil), // 109: temporal.server.api.historyservice.v1.SyncActivityResponse - (*DescribeMutableStateResponse)(nil), // 110: temporal.server.api.historyservice.v1.DescribeMutableStateResponse - (*DescribeHistoryHostResponse)(nil), // 111: temporal.server.api.historyservice.v1.DescribeHistoryHostResponse - (*CloseShardResponse)(nil), // 112: temporal.server.api.historyservice.v1.CloseShardResponse - (*GetShardResponse)(nil), // 113: temporal.server.api.historyservice.v1.GetShardResponse - (*RemoveTaskResponse)(nil), // 114: temporal.server.api.historyservice.v1.RemoveTaskResponse - (*GetReplicationMessagesResponse)(nil), // 115: temporal.server.api.historyservice.v1.GetReplicationMessagesResponse - (*GetDLQReplicationMessagesResponse)(nil), // 116: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesResponse - (*QueryWorkflowResponse)(nil), // 117: temporal.server.api.historyservice.v1.QueryWorkflowResponse - (*ReapplyEventsResponse)(nil), // 118: temporal.server.api.historyservice.v1.ReapplyEventsResponse - (*GetDLQMessagesResponse)(nil), // 119: temporal.server.api.historyservice.v1.GetDLQMessagesResponse - (*PurgeDLQMessagesResponse)(nil), // 120: temporal.server.api.historyservice.v1.PurgeDLQMessagesResponse - (*MergeDLQMessagesResponse)(nil), // 121: temporal.server.api.historyservice.v1.MergeDLQMessagesResponse - (*RefreshWorkflowTasksResponse)(nil), // 122: temporal.server.api.historyservice.v1.RefreshWorkflowTasksResponse - (*GenerateLastHistoryReplicationTasksResponse)(nil), // 123: temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksResponse - (*GetReplicationStatusResponse)(nil), // 124: temporal.server.api.historyservice.v1.GetReplicationStatusResponse - (*RebuildMutableStateResponse)(nil), // 125: temporal.server.api.historyservice.v1.RebuildMutableStateResponse - (*ImportWorkflowExecutionResponse)(nil), // 126: temporal.server.api.historyservice.v1.ImportWorkflowExecutionResponse - (*DeleteWorkflowVisibilityRecordResponse)(nil), // 127: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordResponse - (*UpdateWorkflowExecutionResponse)(nil), // 128: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse - (*PollWorkflowExecutionUpdateResponse)(nil), // 129: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateResponse - (*StreamWorkflowReplicationMessagesResponse)(nil), // 130: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesResponse - (*GetWorkflowExecutionHistoryResponse)(nil), // 131: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse - (*GetWorkflowExecutionHistoryReverseResponse)(nil), // 132: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseResponse - (*GetWorkflowExecutionRawHistoryV2Response)(nil), // 133: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Response - (*GetWorkflowExecutionRawHistoryResponse)(nil), // 134: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryResponse - (*ForceDeleteWorkflowExecutionResponse)(nil), // 135: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionResponse - (*DeleteExecutionResponse)(nil), // 136: temporal.server.api.historyservice.v1.DeleteExecutionResponse - (*GetDLQTasksResponse)(nil), // 137: temporal.server.api.historyservice.v1.GetDLQTasksResponse - (*DeleteDLQTasksResponse)(nil), // 138: temporal.server.api.historyservice.v1.DeleteDLQTasksResponse - (*ListQueuesResponse)(nil), // 139: temporal.server.api.historyservice.v1.ListQueuesResponse - (*AddTasksResponse)(nil), // 140: temporal.server.api.historyservice.v1.AddTasksResponse - (*ListTasksResponse)(nil), // 141: temporal.server.api.historyservice.v1.ListTasksResponse - (*CompleteNexusOperationResponse)(nil), // 142: temporal.server.api.historyservice.v1.CompleteNexusOperationResponse - (*CompleteNexusOperationChasmResponse)(nil), // 143: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmResponse - (*InvokeStateMachineMethodResponse)(nil), // 144: temporal.server.api.historyservice.v1.InvokeStateMachineMethodResponse - (*DeepHealthCheckResponse)(nil), // 145: temporal.server.api.historyservice.v1.DeepHealthCheckResponse - (*SyncWorkflowStateResponse)(nil), // 146: temporal.server.api.historyservice.v1.SyncWorkflowStateResponse - (*UpdateActivityOptionsResponse)(nil), // 147: temporal.server.api.historyservice.v1.UpdateActivityOptionsResponse - (*PauseActivityResponse)(nil), // 148: temporal.server.api.historyservice.v1.PauseActivityResponse - (*UnpauseActivityResponse)(nil), // 149: temporal.server.api.historyservice.v1.UnpauseActivityResponse - (*ResetActivityResponse)(nil), // 150: temporal.server.api.historyservice.v1.ResetActivityResponse - (*PauseWorkflowExecutionResponse)(nil), // 151: temporal.server.api.historyservice.v1.PauseWorkflowExecutionResponse - (*UnpauseWorkflowExecutionResponse)(nil), // 152: temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionResponse - (*StartNexusOperationResponse)(nil), // 153: temporal.server.api.historyservice.v1.StartNexusOperationResponse - (*CancelNexusOperationResponse)(nil), // 154: temporal.server.api.historyservice.v1.CancelNexusOperationResponse - (*PollWorkflowExecutionTimeSkippingResponse)(nil), // 155: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingResponse + (*GetStreamReplaySlicesRequest)(nil), // 3: temporal.server.api.historyservice.v1.GetStreamReplaySlicesRequest + (*ResetStickyTaskQueueRequest)(nil), // 4: temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest + (*RecordWorkflowTaskStartedRequest)(nil), // 5: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest + (*RecordActivityTaskStartedRequest)(nil), // 6: temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest + (*RespondWorkflowTaskCompletedRequest)(nil), // 7: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedRequest + (*RespondWorkflowTaskFailedRequest)(nil), // 8: temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedRequest + (*IsWorkflowTaskValidRequest)(nil), // 9: temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest + (*RecordActivityTaskHeartbeatRequest)(nil), // 10: temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatRequest + (*RespondActivityTaskCompletedRequest)(nil), // 11: temporal.server.api.historyservice.v1.RespondActivityTaskCompletedRequest + (*RespondActivityTaskFailedRequest)(nil), // 12: temporal.server.api.historyservice.v1.RespondActivityTaskFailedRequest + (*RespondActivityTaskCanceledRequest)(nil), // 13: temporal.server.api.historyservice.v1.RespondActivityTaskCanceledRequest + (*IsActivityTaskValidRequest)(nil), // 14: temporal.server.api.historyservice.v1.IsActivityTaskValidRequest + (*SignalWorkflowExecutionRequest)(nil), // 15: temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest + (*SignalWithStartWorkflowExecutionRequest)(nil), // 16: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionRequest + (*ExecuteMultiOperationRequest)(nil), // 17: temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest + (*RemoveSignalMutableStateRequest)(nil), // 18: temporal.server.api.historyservice.v1.RemoveSignalMutableStateRequest + (*TerminateWorkflowExecutionRequest)(nil), // 19: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest + (*DeleteWorkflowExecutionRequest)(nil), // 20: temporal.server.api.historyservice.v1.DeleteWorkflowExecutionRequest + (*ResetWorkflowExecutionRequest)(nil), // 21: temporal.server.api.historyservice.v1.ResetWorkflowExecutionRequest + (*UpdateWorkflowExecutionOptionsRequest)(nil), // 22: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsRequest + (*RequestCancelWorkflowExecutionRequest)(nil), // 23: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest + (*ScheduleWorkflowTaskRequest)(nil), // 24: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest + (*VerifyFirstWorkflowTaskScheduledRequest)(nil), // 25: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest + (*RecordChildExecutionCompletedRequest)(nil), // 26: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest + (*VerifyChildExecutionCompletionRecordedRequest)(nil), // 27: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest + (*DescribeWorkflowExecutionRequest)(nil), // 28: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionRequest + (*ReplicateEventsV2Request)(nil), // 29: temporal.server.api.historyservice.v1.ReplicateEventsV2Request + (*ReplicateWorkflowStateRequest)(nil), // 30: temporal.server.api.historyservice.v1.ReplicateWorkflowStateRequest + (*SyncShardStatusRequest)(nil), // 31: temporal.server.api.historyservice.v1.SyncShardStatusRequest + (*SyncActivityRequest)(nil), // 32: temporal.server.api.historyservice.v1.SyncActivityRequest + (*DescribeMutableStateRequest)(nil), // 33: temporal.server.api.historyservice.v1.DescribeMutableStateRequest + (*DescribeHistoryHostRequest)(nil), // 34: temporal.server.api.historyservice.v1.DescribeHistoryHostRequest + (*CloseShardRequest)(nil), // 35: temporal.server.api.historyservice.v1.CloseShardRequest + (*GetShardRequest)(nil), // 36: temporal.server.api.historyservice.v1.GetShardRequest + (*RemoveTaskRequest)(nil), // 37: temporal.server.api.historyservice.v1.RemoveTaskRequest + (*GetReplicationMessagesRequest)(nil), // 38: temporal.server.api.historyservice.v1.GetReplicationMessagesRequest + (*GetDLQReplicationMessagesRequest)(nil), // 39: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesRequest + (*QueryWorkflowRequest)(nil), // 40: temporal.server.api.historyservice.v1.QueryWorkflowRequest + (*ReapplyEventsRequest)(nil), // 41: temporal.server.api.historyservice.v1.ReapplyEventsRequest + (*GetDLQMessagesRequest)(nil), // 42: temporal.server.api.historyservice.v1.GetDLQMessagesRequest + (*PurgeDLQMessagesRequest)(nil), // 43: temporal.server.api.historyservice.v1.PurgeDLQMessagesRequest + (*MergeDLQMessagesRequest)(nil), // 44: temporal.server.api.historyservice.v1.MergeDLQMessagesRequest + (*RefreshWorkflowTasksRequest)(nil), // 45: temporal.server.api.historyservice.v1.RefreshWorkflowTasksRequest + (*GenerateLastHistoryReplicationTasksRequest)(nil), // 46: temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksRequest + (*GetReplicationStatusRequest)(nil), // 47: temporal.server.api.historyservice.v1.GetReplicationStatusRequest + (*RebuildMutableStateRequest)(nil), // 48: temporal.server.api.historyservice.v1.RebuildMutableStateRequest + (*ImportWorkflowExecutionRequest)(nil), // 49: temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest + (*DeleteWorkflowVisibilityRecordRequest)(nil), // 50: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest + (*UpdateWorkflowExecutionRequest)(nil), // 51: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest + (*PollWorkflowExecutionUpdateRequest)(nil), // 52: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateRequest + (*StreamWorkflowReplicationMessagesRequest)(nil), // 53: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesRequest + (*GetWorkflowExecutionHistoryRequest)(nil), // 54: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryRequest + (*GetWorkflowExecutionHistoryReverseRequest)(nil), // 55: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseRequest + (*GetWorkflowExecutionRawHistoryV2Request)(nil), // 56: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Request + (*GetWorkflowExecutionRawHistoryRequest)(nil), // 57: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryRequest + (*ForceDeleteWorkflowExecutionRequest)(nil), // 58: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionRequest + (*DeleteExecutionRequest)(nil), // 59: temporal.server.api.historyservice.v1.DeleteExecutionRequest + (*GetDLQTasksRequest)(nil), // 60: temporal.server.api.historyservice.v1.GetDLQTasksRequest + (*DeleteDLQTasksRequest)(nil), // 61: temporal.server.api.historyservice.v1.DeleteDLQTasksRequest + (*ListQueuesRequest)(nil), // 62: temporal.server.api.historyservice.v1.ListQueuesRequest + (*AddTasksRequest)(nil), // 63: temporal.server.api.historyservice.v1.AddTasksRequest + (*ListTasksRequest)(nil), // 64: temporal.server.api.historyservice.v1.ListTasksRequest + (*CompleteNexusOperationRequest)(nil), // 65: temporal.server.api.historyservice.v1.CompleteNexusOperationRequest + (*CompleteNexusOperationChasmRequest)(nil), // 66: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest + (*InvokeStateMachineMethodRequest)(nil), // 67: temporal.server.api.historyservice.v1.InvokeStateMachineMethodRequest + (*DeepHealthCheckRequest)(nil), // 68: temporal.server.api.historyservice.v1.DeepHealthCheckRequest + (*SyncWorkflowStateRequest)(nil), // 69: temporal.server.api.historyservice.v1.SyncWorkflowStateRequest + (*UpdateActivityOptionsRequest)(nil), // 70: temporal.server.api.historyservice.v1.UpdateActivityOptionsRequest + (*PauseActivityRequest)(nil), // 71: temporal.server.api.historyservice.v1.PauseActivityRequest + (*UnpauseActivityRequest)(nil), // 72: temporal.server.api.historyservice.v1.UnpauseActivityRequest + (*ResetActivityRequest)(nil), // 73: temporal.server.api.historyservice.v1.ResetActivityRequest + (*PauseWorkflowExecutionRequest)(nil), // 74: temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest + (*UnpauseWorkflowExecutionRequest)(nil), // 75: temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest + (*StartNexusOperationRequest)(nil), // 76: temporal.server.api.historyservice.v1.StartNexusOperationRequest + (*CancelNexusOperationRequest)(nil), // 77: temporal.server.api.historyservice.v1.CancelNexusOperationRequest + (*PollWorkflowExecutionTimeSkippingRequest)(nil), // 78: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingRequest + (*StartWorkflowExecutionResponse)(nil), // 79: temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse + (*GetMutableStateResponse)(nil), // 80: temporal.server.api.historyservice.v1.GetMutableStateResponse + (*PollMutableStateResponse)(nil), // 81: temporal.server.api.historyservice.v1.PollMutableStateResponse + (*GetStreamReplaySlicesResponse)(nil), // 82: temporal.server.api.historyservice.v1.GetStreamReplaySlicesResponse + (*ResetStickyTaskQueueResponse)(nil), // 83: temporal.server.api.historyservice.v1.ResetStickyTaskQueueResponse + (*RecordWorkflowTaskStartedResponse)(nil), // 84: temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse + (*RecordActivityTaskStartedResponse)(nil), // 85: temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse + (*RespondWorkflowTaskCompletedResponse)(nil), // 86: temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse + (*RespondWorkflowTaskFailedResponse)(nil), // 87: temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedResponse + (*IsWorkflowTaskValidResponse)(nil), // 88: temporal.server.api.historyservice.v1.IsWorkflowTaskValidResponse + (*RecordActivityTaskHeartbeatResponse)(nil), // 89: temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatResponse + (*RespondActivityTaskCompletedResponse)(nil), // 90: temporal.server.api.historyservice.v1.RespondActivityTaskCompletedResponse + (*RespondActivityTaskFailedResponse)(nil), // 91: temporal.server.api.historyservice.v1.RespondActivityTaskFailedResponse + (*RespondActivityTaskCanceledResponse)(nil), // 92: temporal.server.api.historyservice.v1.RespondActivityTaskCanceledResponse + (*IsActivityTaskValidResponse)(nil), // 93: temporal.server.api.historyservice.v1.IsActivityTaskValidResponse + (*SignalWorkflowExecutionResponse)(nil), // 94: temporal.server.api.historyservice.v1.SignalWorkflowExecutionResponse + (*SignalWithStartWorkflowExecutionResponse)(nil), // 95: temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionResponse + (*ExecuteMultiOperationResponse)(nil), // 96: temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse + (*RemoveSignalMutableStateResponse)(nil), // 97: temporal.server.api.historyservice.v1.RemoveSignalMutableStateResponse + (*TerminateWorkflowExecutionResponse)(nil), // 98: temporal.server.api.historyservice.v1.TerminateWorkflowExecutionResponse + (*DeleteWorkflowExecutionResponse)(nil), // 99: temporal.server.api.historyservice.v1.DeleteWorkflowExecutionResponse + (*ResetWorkflowExecutionResponse)(nil), // 100: temporal.server.api.historyservice.v1.ResetWorkflowExecutionResponse + (*UpdateWorkflowExecutionOptionsResponse)(nil), // 101: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse + (*RequestCancelWorkflowExecutionResponse)(nil), // 102: temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionResponse + (*ScheduleWorkflowTaskResponse)(nil), // 103: temporal.server.api.historyservice.v1.ScheduleWorkflowTaskResponse + (*VerifyFirstWorkflowTaskScheduledResponse)(nil), // 104: temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledResponse + (*RecordChildExecutionCompletedResponse)(nil), // 105: temporal.server.api.historyservice.v1.RecordChildExecutionCompletedResponse + (*VerifyChildExecutionCompletionRecordedResponse)(nil), // 106: temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedResponse + (*DescribeWorkflowExecutionResponse)(nil), // 107: temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse + (*ReplicateEventsV2Response)(nil), // 108: temporal.server.api.historyservice.v1.ReplicateEventsV2Response + (*ReplicateWorkflowStateResponse)(nil), // 109: temporal.server.api.historyservice.v1.ReplicateWorkflowStateResponse + (*SyncShardStatusResponse)(nil), // 110: temporal.server.api.historyservice.v1.SyncShardStatusResponse + (*SyncActivityResponse)(nil), // 111: temporal.server.api.historyservice.v1.SyncActivityResponse + (*DescribeMutableStateResponse)(nil), // 112: temporal.server.api.historyservice.v1.DescribeMutableStateResponse + (*DescribeHistoryHostResponse)(nil), // 113: temporal.server.api.historyservice.v1.DescribeHistoryHostResponse + (*CloseShardResponse)(nil), // 114: temporal.server.api.historyservice.v1.CloseShardResponse + (*GetShardResponse)(nil), // 115: temporal.server.api.historyservice.v1.GetShardResponse + (*RemoveTaskResponse)(nil), // 116: temporal.server.api.historyservice.v1.RemoveTaskResponse + (*GetReplicationMessagesResponse)(nil), // 117: temporal.server.api.historyservice.v1.GetReplicationMessagesResponse + (*GetDLQReplicationMessagesResponse)(nil), // 118: temporal.server.api.historyservice.v1.GetDLQReplicationMessagesResponse + (*QueryWorkflowResponse)(nil), // 119: temporal.server.api.historyservice.v1.QueryWorkflowResponse + (*ReapplyEventsResponse)(nil), // 120: temporal.server.api.historyservice.v1.ReapplyEventsResponse + (*GetDLQMessagesResponse)(nil), // 121: temporal.server.api.historyservice.v1.GetDLQMessagesResponse + (*PurgeDLQMessagesResponse)(nil), // 122: temporal.server.api.historyservice.v1.PurgeDLQMessagesResponse + (*MergeDLQMessagesResponse)(nil), // 123: temporal.server.api.historyservice.v1.MergeDLQMessagesResponse + (*RefreshWorkflowTasksResponse)(nil), // 124: temporal.server.api.historyservice.v1.RefreshWorkflowTasksResponse + (*GenerateLastHistoryReplicationTasksResponse)(nil), // 125: temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksResponse + (*GetReplicationStatusResponse)(nil), // 126: temporal.server.api.historyservice.v1.GetReplicationStatusResponse + (*RebuildMutableStateResponse)(nil), // 127: temporal.server.api.historyservice.v1.RebuildMutableStateResponse + (*ImportWorkflowExecutionResponse)(nil), // 128: temporal.server.api.historyservice.v1.ImportWorkflowExecutionResponse + (*DeleteWorkflowVisibilityRecordResponse)(nil), // 129: temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordResponse + (*UpdateWorkflowExecutionResponse)(nil), // 130: temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse + (*PollWorkflowExecutionUpdateResponse)(nil), // 131: temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateResponse + (*StreamWorkflowReplicationMessagesResponse)(nil), // 132: temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesResponse + (*GetWorkflowExecutionHistoryResponse)(nil), // 133: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse + (*GetWorkflowExecutionHistoryReverseResponse)(nil), // 134: temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseResponse + (*GetWorkflowExecutionRawHistoryV2Response)(nil), // 135: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Response + (*GetWorkflowExecutionRawHistoryResponse)(nil), // 136: temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryResponse + (*ForceDeleteWorkflowExecutionResponse)(nil), // 137: temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionResponse + (*DeleteExecutionResponse)(nil), // 138: temporal.server.api.historyservice.v1.DeleteExecutionResponse + (*GetDLQTasksResponse)(nil), // 139: temporal.server.api.historyservice.v1.GetDLQTasksResponse + (*DeleteDLQTasksResponse)(nil), // 140: temporal.server.api.historyservice.v1.DeleteDLQTasksResponse + (*ListQueuesResponse)(nil), // 141: temporal.server.api.historyservice.v1.ListQueuesResponse + (*AddTasksResponse)(nil), // 142: temporal.server.api.historyservice.v1.AddTasksResponse + (*ListTasksResponse)(nil), // 143: temporal.server.api.historyservice.v1.ListTasksResponse + (*CompleteNexusOperationResponse)(nil), // 144: temporal.server.api.historyservice.v1.CompleteNexusOperationResponse + (*CompleteNexusOperationChasmResponse)(nil), // 145: temporal.server.api.historyservice.v1.CompleteNexusOperationChasmResponse + (*InvokeStateMachineMethodResponse)(nil), // 146: temporal.server.api.historyservice.v1.InvokeStateMachineMethodResponse + (*DeepHealthCheckResponse)(nil), // 147: temporal.server.api.historyservice.v1.DeepHealthCheckResponse + (*SyncWorkflowStateResponse)(nil), // 148: temporal.server.api.historyservice.v1.SyncWorkflowStateResponse + (*UpdateActivityOptionsResponse)(nil), // 149: temporal.server.api.historyservice.v1.UpdateActivityOptionsResponse + (*PauseActivityResponse)(nil), // 150: temporal.server.api.historyservice.v1.PauseActivityResponse + (*UnpauseActivityResponse)(nil), // 151: temporal.server.api.historyservice.v1.UnpauseActivityResponse + (*ResetActivityResponse)(nil), // 152: temporal.server.api.historyservice.v1.ResetActivityResponse + (*PauseWorkflowExecutionResponse)(nil), // 153: temporal.server.api.historyservice.v1.PauseWorkflowExecutionResponse + (*UnpauseWorkflowExecutionResponse)(nil), // 154: temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionResponse + (*StartNexusOperationResponse)(nil), // 155: temporal.server.api.historyservice.v1.StartNexusOperationResponse + (*CancelNexusOperationResponse)(nil), // 156: temporal.server.api.historyservice.v1.CancelNexusOperationResponse + (*PollWorkflowExecutionTimeSkippingResponse)(nil), // 157: temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingResponse } var file_temporal_server_api_historyservice_v1_service_proto_depIdxs = []int32{ 0, // 0: temporal.server.api.historyservice.v1.HistoryService.StartWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.StartWorkflowExecutionRequest 1, // 1: temporal.server.api.historyservice.v1.HistoryService.GetMutableState:input_type -> temporal.server.api.historyservice.v1.GetMutableStateRequest 2, // 2: temporal.server.api.historyservice.v1.HistoryService.PollMutableState:input_type -> temporal.server.api.historyservice.v1.PollMutableStateRequest - 3, // 3: temporal.server.api.historyservice.v1.HistoryService.ResetStickyTaskQueue:input_type -> temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest - 4, // 4: temporal.server.api.historyservice.v1.HistoryService.RecordWorkflowTaskStarted:input_type -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest - 5, // 5: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskStarted:input_type -> temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest - 6, // 6: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskCompleted:input_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedRequest - 7, // 7: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskFailed:input_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedRequest - 8, // 8: temporal.server.api.historyservice.v1.HistoryService.IsWorkflowTaskValid:input_type -> temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest - 9, // 9: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskHeartbeat:input_type -> temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatRequest - 10, // 10: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCompleted:input_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCompletedRequest - 11, // 11: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskFailed:input_type -> temporal.server.api.historyservice.v1.RespondActivityTaskFailedRequest - 12, // 12: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCanceled:input_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCanceledRequest - 13, // 13: temporal.server.api.historyservice.v1.HistoryService.IsActivityTaskValid:input_type -> temporal.server.api.historyservice.v1.IsActivityTaskValidRequest - 14, // 14: temporal.server.api.historyservice.v1.HistoryService.SignalWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest - 15, // 15: temporal.server.api.historyservice.v1.HistoryService.SignalWithStartWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionRequest - 16, // 16: temporal.server.api.historyservice.v1.HistoryService.ExecuteMultiOperation:input_type -> temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest - 17, // 17: temporal.server.api.historyservice.v1.HistoryService.RemoveSignalMutableState:input_type -> temporal.server.api.historyservice.v1.RemoveSignalMutableStateRequest - 18, // 18: temporal.server.api.historyservice.v1.HistoryService.TerminateWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest - 19, // 19: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.DeleteWorkflowExecutionRequest - 20, // 20: temporal.server.api.historyservice.v1.HistoryService.ResetWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.ResetWorkflowExecutionRequest - 21, // 21: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecutionOptions:input_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsRequest - 22, // 22: temporal.server.api.historyservice.v1.HistoryService.RequestCancelWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest - 23, // 23: temporal.server.api.historyservice.v1.HistoryService.ScheduleWorkflowTask:input_type -> temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest - 24, // 24: temporal.server.api.historyservice.v1.HistoryService.VerifyFirstWorkflowTaskScheduled:input_type -> temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest - 25, // 25: temporal.server.api.historyservice.v1.HistoryService.RecordChildExecutionCompleted:input_type -> temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest - 26, // 26: temporal.server.api.historyservice.v1.HistoryService.VerifyChildExecutionCompletionRecorded:input_type -> temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest - 27, // 27: temporal.server.api.historyservice.v1.HistoryService.DescribeWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.DescribeWorkflowExecutionRequest - 28, // 28: temporal.server.api.historyservice.v1.HistoryService.ReplicateEventsV2:input_type -> temporal.server.api.historyservice.v1.ReplicateEventsV2Request - 29, // 29: temporal.server.api.historyservice.v1.HistoryService.ReplicateWorkflowState:input_type -> temporal.server.api.historyservice.v1.ReplicateWorkflowStateRequest - 30, // 30: temporal.server.api.historyservice.v1.HistoryService.SyncShardStatus:input_type -> temporal.server.api.historyservice.v1.SyncShardStatusRequest - 31, // 31: temporal.server.api.historyservice.v1.HistoryService.SyncActivity:input_type -> temporal.server.api.historyservice.v1.SyncActivityRequest - 32, // 32: temporal.server.api.historyservice.v1.HistoryService.DescribeMutableState:input_type -> temporal.server.api.historyservice.v1.DescribeMutableStateRequest - 33, // 33: temporal.server.api.historyservice.v1.HistoryService.DescribeHistoryHost:input_type -> temporal.server.api.historyservice.v1.DescribeHistoryHostRequest - 34, // 34: temporal.server.api.historyservice.v1.HistoryService.CloseShard:input_type -> temporal.server.api.historyservice.v1.CloseShardRequest - 35, // 35: temporal.server.api.historyservice.v1.HistoryService.GetShard:input_type -> temporal.server.api.historyservice.v1.GetShardRequest - 36, // 36: temporal.server.api.historyservice.v1.HistoryService.RemoveTask:input_type -> temporal.server.api.historyservice.v1.RemoveTaskRequest - 37, // 37: temporal.server.api.historyservice.v1.HistoryService.GetReplicationMessages:input_type -> temporal.server.api.historyservice.v1.GetReplicationMessagesRequest - 38, // 38: temporal.server.api.historyservice.v1.HistoryService.GetDLQReplicationMessages:input_type -> temporal.server.api.historyservice.v1.GetDLQReplicationMessagesRequest - 39, // 39: temporal.server.api.historyservice.v1.HistoryService.QueryWorkflow:input_type -> temporal.server.api.historyservice.v1.QueryWorkflowRequest - 40, // 40: temporal.server.api.historyservice.v1.HistoryService.ReapplyEvents:input_type -> temporal.server.api.historyservice.v1.ReapplyEventsRequest - 41, // 41: temporal.server.api.historyservice.v1.HistoryService.GetDLQMessages:input_type -> temporal.server.api.historyservice.v1.GetDLQMessagesRequest - 42, // 42: temporal.server.api.historyservice.v1.HistoryService.PurgeDLQMessages:input_type -> temporal.server.api.historyservice.v1.PurgeDLQMessagesRequest - 43, // 43: temporal.server.api.historyservice.v1.HistoryService.MergeDLQMessages:input_type -> temporal.server.api.historyservice.v1.MergeDLQMessagesRequest - 44, // 44: temporal.server.api.historyservice.v1.HistoryService.RefreshWorkflowTasks:input_type -> temporal.server.api.historyservice.v1.RefreshWorkflowTasksRequest - 45, // 45: temporal.server.api.historyservice.v1.HistoryService.GenerateLastHistoryReplicationTasks:input_type -> temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksRequest - 46, // 46: temporal.server.api.historyservice.v1.HistoryService.GetReplicationStatus:input_type -> temporal.server.api.historyservice.v1.GetReplicationStatusRequest - 47, // 47: temporal.server.api.historyservice.v1.HistoryService.RebuildMutableState:input_type -> temporal.server.api.historyservice.v1.RebuildMutableStateRequest - 48, // 48: temporal.server.api.historyservice.v1.HistoryService.ImportWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest - 49, // 49: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowVisibilityRecord:input_type -> temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest - 50, // 50: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest - 51, // 51: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionUpdate:input_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateRequest - 52, // 52: temporal.server.api.historyservice.v1.HistoryService.StreamWorkflowReplicationMessages:input_type -> temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesRequest - 53, // 53: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistory:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryRequest - 54, // 54: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistoryReverse:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseRequest - 55, // 55: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistoryV2:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Request - 56, // 56: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistory:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryRequest - 57, // 57: temporal.server.api.historyservice.v1.HistoryService.ForceDeleteWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionRequest - 58, // 58: temporal.server.api.historyservice.v1.HistoryService.DeleteExecution:input_type -> temporal.server.api.historyservice.v1.DeleteExecutionRequest - 59, // 59: temporal.server.api.historyservice.v1.HistoryService.GetDLQTasks:input_type -> temporal.server.api.historyservice.v1.GetDLQTasksRequest - 60, // 60: temporal.server.api.historyservice.v1.HistoryService.DeleteDLQTasks:input_type -> temporal.server.api.historyservice.v1.DeleteDLQTasksRequest - 61, // 61: temporal.server.api.historyservice.v1.HistoryService.ListQueues:input_type -> temporal.server.api.historyservice.v1.ListQueuesRequest - 62, // 62: temporal.server.api.historyservice.v1.HistoryService.AddTasks:input_type -> temporal.server.api.historyservice.v1.AddTasksRequest - 63, // 63: temporal.server.api.historyservice.v1.HistoryService.ListTasks:input_type -> temporal.server.api.historyservice.v1.ListTasksRequest - 64, // 64: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperation:input_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationRequest - 65, // 65: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperationChasm:input_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest - 66, // 66: temporal.server.api.historyservice.v1.HistoryService.InvokeStateMachineMethod:input_type -> temporal.server.api.historyservice.v1.InvokeStateMachineMethodRequest - 67, // 67: temporal.server.api.historyservice.v1.HistoryService.DeepHealthCheck:input_type -> temporal.server.api.historyservice.v1.DeepHealthCheckRequest - 68, // 68: temporal.server.api.historyservice.v1.HistoryService.SyncWorkflowState:input_type -> temporal.server.api.historyservice.v1.SyncWorkflowStateRequest - 69, // 69: temporal.server.api.historyservice.v1.HistoryService.UpdateActivityOptions:input_type -> temporal.server.api.historyservice.v1.UpdateActivityOptionsRequest - 70, // 70: temporal.server.api.historyservice.v1.HistoryService.PauseActivity:input_type -> temporal.server.api.historyservice.v1.PauseActivityRequest - 71, // 71: temporal.server.api.historyservice.v1.HistoryService.UnpauseActivity:input_type -> temporal.server.api.historyservice.v1.UnpauseActivityRequest - 72, // 72: temporal.server.api.historyservice.v1.HistoryService.ResetActivity:input_type -> temporal.server.api.historyservice.v1.ResetActivityRequest - 73, // 73: temporal.server.api.historyservice.v1.HistoryService.PauseWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest - 74, // 74: temporal.server.api.historyservice.v1.HistoryService.UnpauseWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest - 75, // 75: temporal.server.api.historyservice.v1.HistoryService.StartNexusOperation:input_type -> temporal.server.api.historyservice.v1.StartNexusOperationRequest - 76, // 76: temporal.server.api.historyservice.v1.HistoryService.CancelNexusOperation:input_type -> temporal.server.api.historyservice.v1.CancelNexusOperationRequest - 77, // 77: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionTimeSkipping:input_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingRequest - 78, // 78: temporal.server.api.historyservice.v1.HistoryService.StartWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse - 79, // 79: temporal.server.api.historyservice.v1.HistoryService.GetMutableState:output_type -> temporal.server.api.historyservice.v1.GetMutableStateResponse - 80, // 80: temporal.server.api.historyservice.v1.HistoryService.PollMutableState:output_type -> temporal.server.api.historyservice.v1.PollMutableStateResponse - 81, // 81: temporal.server.api.historyservice.v1.HistoryService.ResetStickyTaskQueue:output_type -> temporal.server.api.historyservice.v1.ResetStickyTaskQueueResponse - 82, // 82: temporal.server.api.historyservice.v1.HistoryService.RecordWorkflowTaskStarted:output_type -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse - 83, // 83: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskStarted:output_type -> temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse - 84, // 84: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskCompleted:output_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse - 85, // 85: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskFailed:output_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedResponse - 86, // 86: temporal.server.api.historyservice.v1.HistoryService.IsWorkflowTaskValid:output_type -> temporal.server.api.historyservice.v1.IsWorkflowTaskValidResponse - 87, // 87: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskHeartbeat:output_type -> temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatResponse - 88, // 88: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCompleted:output_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCompletedResponse - 89, // 89: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskFailed:output_type -> temporal.server.api.historyservice.v1.RespondActivityTaskFailedResponse - 90, // 90: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCanceled:output_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCanceledResponse - 91, // 91: temporal.server.api.historyservice.v1.HistoryService.IsActivityTaskValid:output_type -> temporal.server.api.historyservice.v1.IsActivityTaskValidResponse - 92, // 92: temporal.server.api.historyservice.v1.HistoryService.SignalWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.SignalWorkflowExecutionResponse - 93, // 93: temporal.server.api.historyservice.v1.HistoryService.SignalWithStartWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionResponse - 94, // 94: temporal.server.api.historyservice.v1.HistoryService.ExecuteMultiOperation:output_type -> temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse - 95, // 95: temporal.server.api.historyservice.v1.HistoryService.RemoveSignalMutableState:output_type -> temporal.server.api.historyservice.v1.RemoveSignalMutableStateResponse - 96, // 96: temporal.server.api.historyservice.v1.HistoryService.TerminateWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.TerminateWorkflowExecutionResponse - 97, // 97: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.DeleteWorkflowExecutionResponse - 98, // 98: temporal.server.api.historyservice.v1.HistoryService.ResetWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.ResetWorkflowExecutionResponse - 99, // 99: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecutionOptions:output_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse - 100, // 100: temporal.server.api.historyservice.v1.HistoryService.RequestCancelWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionResponse - 101, // 101: temporal.server.api.historyservice.v1.HistoryService.ScheduleWorkflowTask:output_type -> temporal.server.api.historyservice.v1.ScheduleWorkflowTaskResponse - 102, // 102: temporal.server.api.historyservice.v1.HistoryService.VerifyFirstWorkflowTaskScheduled:output_type -> temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledResponse - 103, // 103: temporal.server.api.historyservice.v1.HistoryService.RecordChildExecutionCompleted:output_type -> temporal.server.api.historyservice.v1.RecordChildExecutionCompletedResponse - 104, // 104: temporal.server.api.historyservice.v1.HistoryService.VerifyChildExecutionCompletionRecorded:output_type -> temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedResponse - 105, // 105: temporal.server.api.historyservice.v1.HistoryService.DescribeWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse - 106, // 106: temporal.server.api.historyservice.v1.HistoryService.ReplicateEventsV2:output_type -> temporal.server.api.historyservice.v1.ReplicateEventsV2Response - 107, // 107: temporal.server.api.historyservice.v1.HistoryService.ReplicateWorkflowState:output_type -> temporal.server.api.historyservice.v1.ReplicateWorkflowStateResponse - 108, // 108: temporal.server.api.historyservice.v1.HistoryService.SyncShardStatus:output_type -> temporal.server.api.historyservice.v1.SyncShardStatusResponse - 109, // 109: temporal.server.api.historyservice.v1.HistoryService.SyncActivity:output_type -> temporal.server.api.historyservice.v1.SyncActivityResponse - 110, // 110: temporal.server.api.historyservice.v1.HistoryService.DescribeMutableState:output_type -> temporal.server.api.historyservice.v1.DescribeMutableStateResponse - 111, // 111: temporal.server.api.historyservice.v1.HistoryService.DescribeHistoryHost:output_type -> temporal.server.api.historyservice.v1.DescribeHistoryHostResponse - 112, // 112: temporal.server.api.historyservice.v1.HistoryService.CloseShard:output_type -> temporal.server.api.historyservice.v1.CloseShardResponse - 113, // 113: temporal.server.api.historyservice.v1.HistoryService.GetShard:output_type -> temporal.server.api.historyservice.v1.GetShardResponse - 114, // 114: temporal.server.api.historyservice.v1.HistoryService.RemoveTask:output_type -> temporal.server.api.historyservice.v1.RemoveTaskResponse - 115, // 115: temporal.server.api.historyservice.v1.HistoryService.GetReplicationMessages:output_type -> temporal.server.api.historyservice.v1.GetReplicationMessagesResponse - 116, // 116: temporal.server.api.historyservice.v1.HistoryService.GetDLQReplicationMessages:output_type -> temporal.server.api.historyservice.v1.GetDLQReplicationMessagesResponse - 117, // 117: temporal.server.api.historyservice.v1.HistoryService.QueryWorkflow:output_type -> temporal.server.api.historyservice.v1.QueryWorkflowResponse - 118, // 118: temporal.server.api.historyservice.v1.HistoryService.ReapplyEvents:output_type -> temporal.server.api.historyservice.v1.ReapplyEventsResponse - 119, // 119: temporal.server.api.historyservice.v1.HistoryService.GetDLQMessages:output_type -> temporal.server.api.historyservice.v1.GetDLQMessagesResponse - 120, // 120: temporal.server.api.historyservice.v1.HistoryService.PurgeDLQMessages:output_type -> temporal.server.api.historyservice.v1.PurgeDLQMessagesResponse - 121, // 121: temporal.server.api.historyservice.v1.HistoryService.MergeDLQMessages:output_type -> temporal.server.api.historyservice.v1.MergeDLQMessagesResponse - 122, // 122: temporal.server.api.historyservice.v1.HistoryService.RefreshWorkflowTasks:output_type -> temporal.server.api.historyservice.v1.RefreshWorkflowTasksResponse - 123, // 123: temporal.server.api.historyservice.v1.HistoryService.GenerateLastHistoryReplicationTasks:output_type -> temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksResponse - 124, // 124: temporal.server.api.historyservice.v1.HistoryService.GetReplicationStatus:output_type -> temporal.server.api.historyservice.v1.GetReplicationStatusResponse - 125, // 125: temporal.server.api.historyservice.v1.HistoryService.RebuildMutableState:output_type -> temporal.server.api.historyservice.v1.RebuildMutableStateResponse - 126, // 126: temporal.server.api.historyservice.v1.HistoryService.ImportWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.ImportWorkflowExecutionResponse - 127, // 127: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowVisibilityRecord:output_type -> temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordResponse - 128, // 128: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse - 129, // 129: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionUpdate:output_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateResponse - 130, // 130: temporal.server.api.historyservice.v1.HistoryService.StreamWorkflowReplicationMessages:output_type -> temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesResponse - 131, // 131: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistory:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse - 132, // 132: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistoryReverse:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseResponse - 133, // 133: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistoryV2:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Response - 134, // 134: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistory:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryResponse - 135, // 135: temporal.server.api.historyservice.v1.HistoryService.ForceDeleteWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionResponse - 136, // 136: temporal.server.api.historyservice.v1.HistoryService.DeleteExecution:output_type -> temporal.server.api.historyservice.v1.DeleteExecutionResponse - 137, // 137: temporal.server.api.historyservice.v1.HistoryService.GetDLQTasks:output_type -> temporal.server.api.historyservice.v1.GetDLQTasksResponse - 138, // 138: temporal.server.api.historyservice.v1.HistoryService.DeleteDLQTasks:output_type -> temporal.server.api.historyservice.v1.DeleteDLQTasksResponse - 139, // 139: temporal.server.api.historyservice.v1.HistoryService.ListQueues:output_type -> temporal.server.api.historyservice.v1.ListQueuesResponse - 140, // 140: temporal.server.api.historyservice.v1.HistoryService.AddTasks:output_type -> temporal.server.api.historyservice.v1.AddTasksResponse - 141, // 141: temporal.server.api.historyservice.v1.HistoryService.ListTasks:output_type -> temporal.server.api.historyservice.v1.ListTasksResponse - 142, // 142: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperation:output_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationResponse - 143, // 143: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperationChasm:output_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationChasmResponse - 144, // 144: temporal.server.api.historyservice.v1.HistoryService.InvokeStateMachineMethod:output_type -> temporal.server.api.historyservice.v1.InvokeStateMachineMethodResponse - 145, // 145: temporal.server.api.historyservice.v1.HistoryService.DeepHealthCheck:output_type -> temporal.server.api.historyservice.v1.DeepHealthCheckResponse - 146, // 146: temporal.server.api.historyservice.v1.HistoryService.SyncWorkflowState:output_type -> temporal.server.api.historyservice.v1.SyncWorkflowStateResponse - 147, // 147: temporal.server.api.historyservice.v1.HistoryService.UpdateActivityOptions:output_type -> temporal.server.api.historyservice.v1.UpdateActivityOptionsResponse - 148, // 148: temporal.server.api.historyservice.v1.HistoryService.PauseActivity:output_type -> temporal.server.api.historyservice.v1.PauseActivityResponse - 149, // 149: temporal.server.api.historyservice.v1.HistoryService.UnpauseActivity:output_type -> temporal.server.api.historyservice.v1.UnpauseActivityResponse - 150, // 150: temporal.server.api.historyservice.v1.HistoryService.ResetActivity:output_type -> temporal.server.api.historyservice.v1.ResetActivityResponse - 151, // 151: temporal.server.api.historyservice.v1.HistoryService.PauseWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.PauseWorkflowExecutionResponse - 152, // 152: temporal.server.api.historyservice.v1.HistoryService.UnpauseWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionResponse - 153, // 153: temporal.server.api.historyservice.v1.HistoryService.StartNexusOperation:output_type -> temporal.server.api.historyservice.v1.StartNexusOperationResponse - 154, // 154: temporal.server.api.historyservice.v1.HistoryService.CancelNexusOperation:output_type -> temporal.server.api.historyservice.v1.CancelNexusOperationResponse - 155, // 155: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionTimeSkipping:output_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingResponse - 78, // [78:156] is the sub-list for method output_type - 0, // [0:78] is the sub-list for method input_type + 3, // 3: temporal.server.api.historyservice.v1.HistoryService.GetStreamReplaySlices:input_type -> temporal.server.api.historyservice.v1.GetStreamReplaySlicesRequest + 4, // 4: temporal.server.api.historyservice.v1.HistoryService.ResetStickyTaskQueue:input_type -> temporal.server.api.historyservice.v1.ResetStickyTaskQueueRequest + 5, // 5: temporal.server.api.historyservice.v1.HistoryService.RecordWorkflowTaskStarted:input_type -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedRequest + 6, // 6: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskStarted:input_type -> temporal.server.api.historyservice.v1.RecordActivityTaskStartedRequest + 7, // 7: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskCompleted:input_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedRequest + 8, // 8: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskFailed:input_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedRequest + 9, // 9: temporal.server.api.historyservice.v1.HistoryService.IsWorkflowTaskValid:input_type -> temporal.server.api.historyservice.v1.IsWorkflowTaskValidRequest + 10, // 10: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskHeartbeat:input_type -> temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatRequest + 11, // 11: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCompleted:input_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCompletedRequest + 12, // 12: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskFailed:input_type -> temporal.server.api.historyservice.v1.RespondActivityTaskFailedRequest + 13, // 13: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCanceled:input_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCanceledRequest + 14, // 14: temporal.server.api.historyservice.v1.HistoryService.IsActivityTaskValid:input_type -> temporal.server.api.historyservice.v1.IsActivityTaskValidRequest + 15, // 15: temporal.server.api.historyservice.v1.HistoryService.SignalWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.SignalWorkflowExecutionRequest + 16, // 16: temporal.server.api.historyservice.v1.HistoryService.SignalWithStartWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionRequest + 17, // 17: temporal.server.api.historyservice.v1.HistoryService.ExecuteMultiOperation:input_type -> temporal.server.api.historyservice.v1.ExecuteMultiOperationRequest + 18, // 18: temporal.server.api.historyservice.v1.HistoryService.RemoveSignalMutableState:input_type -> temporal.server.api.historyservice.v1.RemoveSignalMutableStateRequest + 19, // 19: temporal.server.api.historyservice.v1.HistoryService.TerminateWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.TerminateWorkflowExecutionRequest + 20, // 20: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.DeleteWorkflowExecutionRequest + 21, // 21: temporal.server.api.historyservice.v1.HistoryService.ResetWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.ResetWorkflowExecutionRequest + 22, // 22: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecutionOptions:input_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsRequest + 23, // 23: temporal.server.api.historyservice.v1.HistoryService.RequestCancelWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionRequest + 24, // 24: temporal.server.api.historyservice.v1.HistoryService.ScheduleWorkflowTask:input_type -> temporal.server.api.historyservice.v1.ScheduleWorkflowTaskRequest + 25, // 25: temporal.server.api.historyservice.v1.HistoryService.VerifyFirstWorkflowTaskScheduled:input_type -> temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledRequest + 26, // 26: temporal.server.api.historyservice.v1.HistoryService.RecordChildExecutionCompleted:input_type -> temporal.server.api.historyservice.v1.RecordChildExecutionCompletedRequest + 27, // 27: temporal.server.api.historyservice.v1.HistoryService.VerifyChildExecutionCompletionRecorded:input_type -> temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedRequest + 28, // 28: temporal.server.api.historyservice.v1.HistoryService.DescribeWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.DescribeWorkflowExecutionRequest + 29, // 29: temporal.server.api.historyservice.v1.HistoryService.ReplicateEventsV2:input_type -> temporal.server.api.historyservice.v1.ReplicateEventsV2Request + 30, // 30: temporal.server.api.historyservice.v1.HistoryService.ReplicateWorkflowState:input_type -> temporal.server.api.historyservice.v1.ReplicateWorkflowStateRequest + 31, // 31: temporal.server.api.historyservice.v1.HistoryService.SyncShardStatus:input_type -> temporal.server.api.historyservice.v1.SyncShardStatusRequest + 32, // 32: temporal.server.api.historyservice.v1.HistoryService.SyncActivity:input_type -> temporal.server.api.historyservice.v1.SyncActivityRequest + 33, // 33: temporal.server.api.historyservice.v1.HistoryService.DescribeMutableState:input_type -> temporal.server.api.historyservice.v1.DescribeMutableStateRequest + 34, // 34: temporal.server.api.historyservice.v1.HistoryService.DescribeHistoryHost:input_type -> temporal.server.api.historyservice.v1.DescribeHistoryHostRequest + 35, // 35: temporal.server.api.historyservice.v1.HistoryService.CloseShard:input_type -> temporal.server.api.historyservice.v1.CloseShardRequest + 36, // 36: temporal.server.api.historyservice.v1.HistoryService.GetShard:input_type -> temporal.server.api.historyservice.v1.GetShardRequest + 37, // 37: temporal.server.api.historyservice.v1.HistoryService.RemoveTask:input_type -> temporal.server.api.historyservice.v1.RemoveTaskRequest + 38, // 38: temporal.server.api.historyservice.v1.HistoryService.GetReplicationMessages:input_type -> temporal.server.api.historyservice.v1.GetReplicationMessagesRequest + 39, // 39: temporal.server.api.historyservice.v1.HistoryService.GetDLQReplicationMessages:input_type -> temporal.server.api.historyservice.v1.GetDLQReplicationMessagesRequest + 40, // 40: temporal.server.api.historyservice.v1.HistoryService.QueryWorkflow:input_type -> temporal.server.api.historyservice.v1.QueryWorkflowRequest + 41, // 41: temporal.server.api.historyservice.v1.HistoryService.ReapplyEvents:input_type -> temporal.server.api.historyservice.v1.ReapplyEventsRequest + 42, // 42: temporal.server.api.historyservice.v1.HistoryService.GetDLQMessages:input_type -> temporal.server.api.historyservice.v1.GetDLQMessagesRequest + 43, // 43: temporal.server.api.historyservice.v1.HistoryService.PurgeDLQMessages:input_type -> temporal.server.api.historyservice.v1.PurgeDLQMessagesRequest + 44, // 44: temporal.server.api.historyservice.v1.HistoryService.MergeDLQMessages:input_type -> temporal.server.api.historyservice.v1.MergeDLQMessagesRequest + 45, // 45: temporal.server.api.historyservice.v1.HistoryService.RefreshWorkflowTasks:input_type -> temporal.server.api.historyservice.v1.RefreshWorkflowTasksRequest + 46, // 46: temporal.server.api.historyservice.v1.HistoryService.GenerateLastHistoryReplicationTasks:input_type -> temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksRequest + 47, // 47: temporal.server.api.historyservice.v1.HistoryService.GetReplicationStatus:input_type -> temporal.server.api.historyservice.v1.GetReplicationStatusRequest + 48, // 48: temporal.server.api.historyservice.v1.HistoryService.RebuildMutableState:input_type -> temporal.server.api.historyservice.v1.RebuildMutableStateRequest + 49, // 49: temporal.server.api.historyservice.v1.HistoryService.ImportWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.ImportWorkflowExecutionRequest + 50, // 50: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowVisibilityRecord:input_type -> temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordRequest + 51, // 51: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionRequest + 52, // 52: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionUpdate:input_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateRequest + 53, // 53: temporal.server.api.historyservice.v1.HistoryService.StreamWorkflowReplicationMessages:input_type -> temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesRequest + 54, // 54: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistory:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryRequest + 55, // 55: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistoryReverse:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseRequest + 56, // 56: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistoryV2:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Request + 57, // 57: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistory:input_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryRequest + 58, // 58: temporal.server.api.historyservice.v1.HistoryService.ForceDeleteWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionRequest + 59, // 59: temporal.server.api.historyservice.v1.HistoryService.DeleteExecution:input_type -> temporal.server.api.historyservice.v1.DeleteExecutionRequest + 60, // 60: temporal.server.api.historyservice.v1.HistoryService.GetDLQTasks:input_type -> temporal.server.api.historyservice.v1.GetDLQTasksRequest + 61, // 61: temporal.server.api.historyservice.v1.HistoryService.DeleteDLQTasks:input_type -> temporal.server.api.historyservice.v1.DeleteDLQTasksRequest + 62, // 62: temporal.server.api.historyservice.v1.HistoryService.ListQueues:input_type -> temporal.server.api.historyservice.v1.ListQueuesRequest + 63, // 63: temporal.server.api.historyservice.v1.HistoryService.AddTasks:input_type -> temporal.server.api.historyservice.v1.AddTasksRequest + 64, // 64: temporal.server.api.historyservice.v1.HistoryService.ListTasks:input_type -> temporal.server.api.historyservice.v1.ListTasksRequest + 65, // 65: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperation:input_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationRequest + 66, // 66: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperationChasm:input_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationChasmRequest + 67, // 67: temporal.server.api.historyservice.v1.HistoryService.InvokeStateMachineMethod:input_type -> temporal.server.api.historyservice.v1.InvokeStateMachineMethodRequest + 68, // 68: temporal.server.api.historyservice.v1.HistoryService.DeepHealthCheck:input_type -> temporal.server.api.historyservice.v1.DeepHealthCheckRequest + 69, // 69: temporal.server.api.historyservice.v1.HistoryService.SyncWorkflowState:input_type -> temporal.server.api.historyservice.v1.SyncWorkflowStateRequest + 70, // 70: temporal.server.api.historyservice.v1.HistoryService.UpdateActivityOptions:input_type -> temporal.server.api.historyservice.v1.UpdateActivityOptionsRequest + 71, // 71: temporal.server.api.historyservice.v1.HistoryService.PauseActivity:input_type -> temporal.server.api.historyservice.v1.PauseActivityRequest + 72, // 72: temporal.server.api.historyservice.v1.HistoryService.UnpauseActivity:input_type -> temporal.server.api.historyservice.v1.UnpauseActivityRequest + 73, // 73: temporal.server.api.historyservice.v1.HistoryService.ResetActivity:input_type -> temporal.server.api.historyservice.v1.ResetActivityRequest + 74, // 74: temporal.server.api.historyservice.v1.HistoryService.PauseWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.PauseWorkflowExecutionRequest + 75, // 75: temporal.server.api.historyservice.v1.HistoryService.UnpauseWorkflowExecution:input_type -> temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionRequest + 76, // 76: temporal.server.api.historyservice.v1.HistoryService.StartNexusOperation:input_type -> temporal.server.api.historyservice.v1.StartNexusOperationRequest + 77, // 77: temporal.server.api.historyservice.v1.HistoryService.CancelNexusOperation:input_type -> temporal.server.api.historyservice.v1.CancelNexusOperationRequest + 78, // 78: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionTimeSkipping:input_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingRequest + 79, // 79: temporal.server.api.historyservice.v1.HistoryService.StartWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.StartWorkflowExecutionResponse + 80, // 80: temporal.server.api.historyservice.v1.HistoryService.GetMutableState:output_type -> temporal.server.api.historyservice.v1.GetMutableStateResponse + 81, // 81: temporal.server.api.historyservice.v1.HistoryService.PollMutableState:output_type -> temporal.server.api.historyservice.v1.PollMutableStateResponse + 82, // 82: temporal.server.api.historyservice.v1.HistoryService.GetStreamReplaySlices:output_type -> temporal.server.api.historyservice.v1.GetStreamReplaySlicesResponse + 83, // 83: temporal.server.api.historyservice.v1.HistoryService.ResetStickyTaskQueue:output_type -> temporal.server.api.historyservice.v1.ResetStickyTaskQueueResponse + 84, // 84: temporal.server.api.historyservice.v1.HistoryService.RecordWorkflowTaskStarted:output_type -> temporal.server.api.historyservice.v1.RecordWorkflowTaskStartedResponse + 85, // 85: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskStarted:output_type -> temporal.server.api.historyservice.v1.RecordActivityTaskStartedResponse + 86, // 86: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskCompleted:output_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskCompletedResponse + 87, // 87: temporal.server.api.historyservice.v1.HistoryService.RespondWorkflowTaskFailed:output_type -> temporal.server.api.historyservice.v1.RespondWorkflowTaskFailedResponse + 88, // 88: temporal.server.api.historyservice.v1.HistoryService.IsWorkflowTaskValid:output_type -> temporal.server.api.historyservice.v1.IsWorkflowTaskValidResponse + 89, // 89: temporal.server.api.historyservice.v1.HistoryService.RecordActivityTaskHeartbeat:output_type -> temporal.server.api.historyservice.v1.RecordActivityTaskHeartbeatResponse + 90, // 90: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCompleted:output_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCompletedResponse + 91, // 91: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskFailed:output_type -> temporal.server.api.historyservice.v1.RespondActivityTaskFailedResponse + 92, // 92: temporal.server.api.historyservice.v1.HistoryService.RespondActivityTaskCanceled:output_type -> temporal.server.api.historyservice.v1.RespondActivityTaskCanceledResponse + 93, // 93: temporal.server.api.historyservice.v1.HistoryService.IsActivityTaskValid:output_type -> temporal.server.api.historyservice.v1.IsActivityTaskValidResponse + 94, // 94: temporal.server.api.historyservice.v1.HistoryService.SignalWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.SignalWorkflowExecutionResponse + 95, // 95: temporal.server.api.historyservice.v1.HistoryService.SignalWithStartWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.SignalWithStartWorkflowExecutionResponse + 96, // 96: temporal.server.api.historyservice.v1.HistoryService.ExecuteMultiOperation:output_type -> temporal.server.api.historyservice.v1.ExecuteMultiOperationResponse + 97, // 97: temporal.server.api.historyservice.v1.HistoryService.RemoveSignalMutableState:output_type -> temporal.server.api.historyservice.v1.RemoveSignalMutableStateResponse + 98, // 98: temporal.server.api.historyservice.v1.HistoryService.TerminateWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.TerminateWorkflowExecutionResponse + 99, // 99: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.DeleteWorkflowExecutionResponse + 100, // 100: temporal.server.api.historyservice.v1.HistoryService.ResetWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.ResetWorkflowExecutionResponse + 101, // 101: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecutionOptions:output_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionOptionsResponse + 102, // 102: temporal.server.api.historyservice.v1.HistoryService.RequestCancelWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.RequestCancelWorkflowExecutionResponse + 103, // 103: temporal.server.api.historyservice.v1.HistoryService.ScheduleWorkflowTask:output_type -> temporal.server.api.historyservice.v1.ScheduleWorkflowTaskResponse + 104, // 104: temporal.server.api.historyservice.v1.HistoryService.VerifyFirstWorkflowTaskScheduled:output_type -> temporal.server.api.historyservice.v1.VerifyFirstWorkflowTaskScheduledResponse + 105, // 105: temporal.server.api.historyservice.v1.HistoryService.RecordChildExecutionCompleted:output_type -> temporal.server.api.historyservice.v1.RecordChildExecutionCompletedResponse + 106, // 106: temporal.server.api.historyservice.v1.HistoryService.VerifyChildExecutionCompletionRecorded:output_type -> temporal.server.api.historyservice.v1.VerifyChildExecutionCompletionRecordedResponse + 107, // 107: temporal.server.api.historyservice.v1.HistoryService.DescribeWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.DescribeWorkflowExecutionResponse + 108, // 108: temporal.server.api.historyservice.v1.HistoryService.ReplicateEventsV2:output_type -> temporal.server.api.historyservice.v1.ReplicateEventsV2Response + 109, // 109: temporal.server.api.historyservice.v1.HistoryService.ReplicateWorkflowState:output_type -> temporal.server.api.historyservice.v1.ReplicateWorkflowStateResponse + 110, // 110: temporal.server.api.historyservice.v1.HistoryService.SyncShardStatus:output_type -> temporal.server.api.historyservice.v1.SyncShardStatusResponse + 111, // 111: temporal.server.api.historyservice.v1.HistoryService.SyncActivity:output_type -> temporal.server.api.historyservice.v1.SyncActivityResponse + 112, // 112: temporal.server.api.historyservice.v1.HistoryService.DescribeMutableState:output_type -> temporal.server.api.historyservice.v1.DescribeMutableStateResponse + 113, // 113: temporal.server.api.historyservice.v1.HistoryService.DescribeHistoryHost:output_type -> temporal.server.api.historyservice.v1.DescribeHistoryHostResponse + 114, // 114: temporal.server.api.historyservice.v1.HistoryService.CloseShard:output_type -> temporal.server.api.historyservice.v1.CloseShardResponse + 115, // 115: temporal.server.api.historyservice.v1.HistoryService.GetShard:output_type -> temporal.server.api.historyservice.v1.GetShardResponse + 116, // 116: temporal.server.api.historyservice.v1.HistoryService.RemoveTask:output_type -> temporal.server.api.historyservice.v1.RemoveTaskResponse + 117, // 117: temporal.server.api.historyservice.v1.HistoryService.GetReplicationMessages:output_type -> temporal.server.api.historyservice.v1.GetReplicationMessagesResponse + 118, // 118: temporal.server.api.historyservice.v1.HistoryService.GetDLQReplicationMessages:output_type -> temporal.server.api.historyservice.v1.GetDLQReplicationMessagesResponse + 119, // 119: temporal.server.api.historyservice.v1.HistoryService.QueryWorkflow:output_type -> temporal.server.api.historyservice.v1.QueryWorkflowResponse + 120, // 120: temporal.server.api.historyservice.v1.HistoryService.ReapplyEvents:output_type -> temporal.server.api.historyservice.v1.ReapplyEventsResponse + 121, // 121: temporal.server.api.historyservice.v1.HistoryService.GetDLQMessages:output_type -> temporal.server.api.historyservice.v1.GetDLQMessagesResponse + 122, // 122: temporal.server.api.historyservice.v1.HistoryService.PurgeDLQMessages:output_type -> temporal.server.api.historyservice.v1.PurgeDLQMessagesResponse + 123, // 123: temporal.server.api.historyservice.v1.HistoryService.MergeDLQMessages:output_type -> temporal.server.api.historyservice.v1.MergeDLQMessagesResponse + 124, // 124: temporal.server.api.historyservice.v1.HistoryService.RefreshWorkflowTasks:output_type -> temporal.server.api.historyservice.v1.RefreshWorkflowTasksResponse + 125, // 125: temporal.server.api.historyservice.v1.HistoryService.GenerateLastHistoryReplicationTasks:output_type -> temporal.server.api.historyservice.v1.GenerateLastHistoryReplicationTasksResponse + 126, // 126: temporal.server.api.historyservice.v1.HistoryService.GetReplicationStatus:output_type -> temporal.server.api.historyservice.v1.GetReplicationStatusResponse + 127, // 127: temporal.server.api.historyservice.v1.HistoryService.RebuildMutableState:output_type -> temporal.server.api.historyservice.v1.RebuildMutableStateResponse + 128, // 128: temporal.server.api.historyservice.v1.HistoryService.ImportWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.ImportWorkflowExecutionResponse + 129, // 129: temporal.server.api.historyservice.v1.HistoryService.DeleteWorkflowVisibilityRecord:output_type -> temporal.server.api.historyservice.v1.DeleteWorkflowVisibilityRecordResponse + 130, // 130: temporal.server.api.historyservice.v1.HistoryService.UpdateWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.UpdateWorkflowExecutionResponse + 131, // 131: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionUpdate:output_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionUpdateResponse + 132, // 132: temporal.server.api.historyservice.v1.HistoryService.StreamWorkflowReplicationMessages:output_type -> temporal.server.api.historyservice.v1.StreamWorkflowReplicationMessagesResponse + 133, // 133: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistory:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryResponse + 134, // 134: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionHistoryReverse:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionHistoryReverseResponse + 135, // 135: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistoryV2:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryV2Response + 136, // 136: temporal.server.api.historyservice.v1.HistoryService.GetWorkflowExecutionRawHistory:output_type -> temporal.server.api.historyservice.v1.GetWorkflowExecutionRawHistoryResponse + 137, // 137: temporal.server.api.historyservice.v1.HistoryService.ForceDeleteWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.ForceDeleteWorkflowExecutionResponse + 138, // 138: temporal.server.api.historyservice.v1.HistoryService.DeleteExecution:output_type -> temporal.server.api.historyservice.v1.DeleteExecutionResponse + 139, // 139: temporal.server.api.historyservice.v1.HistoryService.GetDLQTasks:output_type -> temporal.server.api.historyservice.v1.GetDLQTasksResponse + 140, // 140: temporal.server.api.historyservice.v1.HistoryService.DeleteDLQTasks:output_type -> temporal.server.api.historyservice.v1.DeleteDLQTasksResponse + 141, // 141: temporal.server.api.historyservice.v1.HistoryService.ListQueues:output_type -> temporal.server.api.historyservice.v1.ListQueuesResponse + 142, // 142: temporal.server.api.historyservice.v1.HistoryService.AddTasks:output_type -> temporal.server.api.historyservice.v1.AddTasksResponse + 143, // 143: temporal.server.api.historyservice.v1.HistoryService.ListTasks:output_type -> temporal.server.api.historyservice.v1.ListTasksResponse + 144, // 144: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperation:output_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationResponse + 145, // 145: temporal.server.api.historyservice.v1.HistoryService.CompleteNexusOperationChasm:output_type -> temporal.server.api.historyservice.v1.CompleteNexusOperationChasmResponse + 146, // 146: temporal.server.api.historyservice.v1.HistoryService.InvokeStateMachineMethod:output_type -> temporal.server.api.historyservice.v1.InvokeStateMachineMethodResponse + 147, // 147: temporal.server.api.historyservice.v1.HistoryService.DeepHealthCheck:output_type -> temporal.server.api.historyservice.v1.DeepHealthCheckResponse + 148, // 148: temporal.server.api.historyservice.v1.HistoryService.SyncWorkflowState:output_type -> temporal.server.api.historyservice.v1.SyncWorkflowStateResponse + 149, // 149: temporal.server.api.historyservice.v1.HistoryService.UpdateActivityOptions:output_type -> temporal.server.api.historyservice.v1.UpdateActivityOptionsResponse + 150, // 150: temporal.server.api.historyservice.v1.HistoryService.PauseActivity:output_type -> temporal.server.api.historyservice.v1.PauseActivityResponse + 151, // 151: temporal.server.api.historyservice.v1.HistoryService.UnpauseActivity:output_type -> temporal.server.api.historyservice.v1.UnpauseActivityResponse + 152, // 152: temporal.server.api.historyservice.v1.HistoryService.ResetActivity:output_type -> temporal.server.api.historyservice.v1.ResetActivityResponse + 153, // 153: temporal.server.api.historyservice.v1.HistoryService.PauseWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.PauseWorkflowExecutionResponse + 154, // 154: temporal.server.api.historyservice.v1.HistoryService.UnpauseWorkflowExecution:output_type -> temporal.server.api.historyservice.v1.UnpauseWorkflowExecutionResponse + 155, // 155: temporal.server.api.historyservice.v1.HistoryService.StartNexusOperation:output_type -> temporal.server.api.historyservice.v1.StartNexusOperationResponse + 156, // 156: temporal.server.api.historyservice.v1.HistoryService.CancelNexusOperation:output_type -> temporal.server.api.historyservice.v1.CancelNexusOperationResponse + 157, // 157: temporal.server.api.historyservice.v1.HistoryService.PollWorkflowExecutionTimeSkipping:output_type -> temporal.server.api.historyservice.v1.PollWorkflowExecutionTimeSkippingResponse + 79, // [79:158] is the sub-list for method output_type + 0, // [0:79] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/api/historyservice/v1/service_grpc.pb.go b/api/historyservice/v1/service_grpc.pb.go index de0031896f6..933984d1125 100644 --- a/api/historyservice/v1/service_grpc.pb.go +++ b/api/historyservice/v1/service_grpc.pb.go @@ -23,6 +23,7 @@ const ( HistoryService_StartWorkflowExecution_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/StartWorkflowExecution" HistoryService_GetMutableState_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/GetMutableState" HistoryService_PollMutableState_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/PollMutableState" + HistoryService_GetStreamReplaySlices_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/GetStreamReplaySlices" HistoryService_ResetStickyTaskQueue_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/ResetStickyTaskQueue" HistoryService_RecordWorkflowTaskStarted_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/RecordWorkflowTaskStarted" HistoryService_RecordActivityTaskStarted_FullMethodName = "/temporal.server.api.historyservice.v1.HistoryService/RecordActivityTaskStarted" @@ -117,6 +118,10 @@ type HistoryServiceClient interface { // It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service. // It returns CurrentBranchChangedError if the workflow version branch has changed. PollMutableState(ctx context.Context, in *PollMutableStateRequest, opts ...grpc.CallOption) (*PollMutableStateResponse, error) + // Returns the stream ranges the workflow's completed tasks recorded, re-read + // from their streams and tagged with the event that recorded each, so a task + // built without RecordWorkflowTaskStarted can still replay a consumer. + GetStreamReplaySlices(ctx context.Context, in *GetStreamReplaySlicesRequest, opts ...grpc.CallOption) (*GetStreamReplaySlicesResponse, error) // Reset the sticky task queue related information in mutable state of a given workflow. // Things cleared are: // 1. StickyTaskQueue @@ -421,6 +426,15 @@ func (c *historyServiceClient) PollMutableState(ctx context.Context, in *PollMut return out, nil } +func (c *historyServiceClient) GetStreamReplaySlices(ctx context.Context, in *GetStreamReplaySlicesRequest, opts ...grpc.CallOption) (*GetStreamReplaySlicesResponse, error) { + out := new(GetStreamReplaySlicesResponse) + err := c.cc.Invoke(ctx, HistoryService_GetStreamReplaySlices_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *historyServiceClient) ResetStickyTaskQueue(ctx context.Context, in *ResetStickyTaskQueueRequest, opts ...grpc.CallOption) (*ResetStickyTaskQueueResponse, error) { out := new(ResetStickyTaskQueueResponse) err := c.cc.Invoke(ctx, HistoryService_ResetStickyTaskQueue_FullMethodName, in, out, opts...) @@ -1135,6 +1149,10 @@ type HistoryServiceServer interface { // It fails with 'EntityNotExistError' if specified workflow execution in unknown to the service. // It returns CurrentBranchChangedError if the workflow version branch has changed. PollMutableState(context.Context, *PollMutableStateRequest) (*PollMutableStateResponse, error) + // Returns the stream ranges the workflow's completed tasks recorded, re-read + // from their streams and tagged with the event that recorded each, so a task + // built without RecordWorkflowTaskStarted can still replay a consumer. + GetStreamReplaySlices(context.Context, *GetStreamReplaySlicesRequest) (*GetStreamReplaySlicesResponse, error) // Reset the sticky task queue related information in mutable state of a given workflow. // Things cleared are: // 1. StickyTaskQueue @@ -1418,6 +1436,9 @@ func (UnimplementedHistoryServiceServer) GetMutableState(context.Context, *GetMu func (UnimplementedHistoryServiceServer) PollMutableState(context.Context, *PollMutableStateRequest) (*PollMutableStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PollMutableState not implemented") } +func (UnimplementedHistoryServiceServer) GetStreamReplaySlices(context.Context, *GetStreamReplaySlicesRequest) (*GetStreamReplaySlicesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStreamReplaySlices not implemented") +} func (UnimplementedHistoryServiceServer) ResetStickyTaskQueue(context.Context, *ResetStickyTaskQueueRequest) (*ResetStickyTaskQueueResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ResetStickyTaskQueue not implemented") } @@ -1710,6 +1731,24 @@ func _HistoryService_PollMutableState_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _HistoryService_GetStreamReplaySlices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStreamReplaySlicesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HistoryServiceServer).GetStreamReplaySlices(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HistoryService_GetStreamReplaySlices_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HistoryServiceServer).GetStreamReplaySlices(ctx, req.(*GetStreamReplaySlicesRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _HistoryService_ResetStickyTaskQueue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ResetStickyTaskQueueRequest) if err := dec(in); err != nil { @@ -3087,6 +3126,10 @@ var HistoryService_ServiceDesc = grpc.ServiceDesc{ MethodName: "PollMutableState", Handler: _HistoryService_PollMutableState_Handler, }, + { + MethodName: "GetStreamReplaySlices", + Handler: _HistoryService_GetStreamReplaySlices_Handler, + }, { MethodName: "ResetStickyTaskQueue", Handler: _HistoryService_ResetStickyTaskQueue_Handler, diff --git a/api/historyservicemock/v1/service_grpc.pb.mock.go b/api/historyservicemock/v1/service_grpc.pb.mock.go index 6f4d8d32ff7..421c6c539fa 100644 --- a/api/historyservicemock/v1/service_grpc.pb.mock.go +++ b/api/historyservicemock/v1/service_grpc.pb.mock.go @@ -503,6 +503,26 @@ func (mr *MockHistoryServiceClientMockRecorder) GetShard(ctx, in any, opts ...an return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetShard", reflect.TypeOf((*MockHistoryServiceClient)(nil).GetShard), varargs...) } +// GetStreamReplaySlices mocks base method. +func (m *MockHistoryServiceClient) GetStreamReplaySlices(ctx context.Context, in *historyservice.GetStreamReplaySlicesRequest, opts ...grpc.CallOption) (*historyservice.GetStreamReplaySlicesResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetStreamReplaySlices", varargs...) + ret0, _ := ret[0].(*historyservice.GetStreamReplaySlicesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetStreamReplaySlices indicates an expected call of GetStreamReplaySlices. +func (mr *MockHistoryServiceClientMockRecorder) GetStreamReplaySlices(ctx, in any, opts ...any) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]any{ctx, in}, opts...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStreamReplaySlices", reflect.TypeOf((*MockHistoryServiceClient)(nil).GetStreamReplaySlices), varargs...) +} + // GetWorkflowExecutionHistory mocks base method. func (m *MockHistoryServiceClient) GetWorkflowExecutionHistory(ctx context.Context, in *historyservice.GetWorkflowExecutionHistoryRequest, opts ...grpc.CallOption) (*historyservice.GetWorkflowExecutionHistoryResponse, error) { m.ctrl.T.Helper() @@ -2110,6 +2130,21 @@ func (mr *MockHistoryServiceServerMockRecorder) GetShard(arg0, arg1 any) *gomock return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetShard", reflect.TypeOf((*MockHistoryServiceServer)(nil).GetShard), arg0, arg1) } +// GetStreamReplaySlices mocks base method. +func (m *MockHistoryServiceServer) GetStreamReplaySlices(arg0 context.Context, arg1 *historyservice.GetStreamReplaySlicesRequest) (*historyservice.GetStreamReplaySlicesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetStreamReplaySlices", arg0, arg1) + ret0, _ := ret[0].(*historyservice.GetStreamReplaySlicesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetStreamReplaySlices indicates an expected call of GetStreamReplaySlices. +func (mr *MockHistoryServiceServerMockRecorder) GetStreamReplaySlices(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStreamReplaySlices", reflect.TypeOf((*MockHistoryServiceServer)(nil).GetStreamReplaySlices), arg0, arg1) +} + // GetWorkflowExecutionHistory mocks base method. func (m *MockHistoryServiceServer) GetWorkflowExecutionHistory(arg0 context.Context, arg1 *historyservice.GetWorkflowExecutionHistoryRequest) (*historyservice.GetWorkflowExecutionHistoryResponse, error) { m.ctrl.T.Helper() diff --git a/api/matchingservice/v1/request_response.pb.go b/api/matchingservice/v1/request_response.pb.go index d18bec6ad30..721ccf54e26 100644 --- a/api/matchingservice/v1/request_response.pb.go +++ b/api/matchingservice/v1/request_response.pb.go @@ -12,22 +12,23 @@ import ( unsafe "unsafe" v11 "go.temporal.io/api/common/v1" - v112 "go.temporal.io/api/deployment/v1" - v19 "go.temporal.io/api/enums/v1" - v114 "go.temporal.io/api/failure/v1" + v113 "go.temporal.io/api/deployment/v1" + v110 "go.temporal.io/api/enums/v1" + v115 "go.temporal.io/api/failure/v1" v16 "go.temporal.io/api/history/v1" - v113 "go.temporal.io/api/nexus/v1" + v114 "go.temporal.io/api/nexus/v1" v15 "go.temporal.io/api/protocol/v1" v12 "go.temporal.io/api/query/v1" + v17 "go.temporal.io/api/stream/v1" v14 "go.temporal.io/api/taskqueue/v1" - v115 "go.temporal.io/api/worker/v1" + v116 "go.temporal.io/api/worker/v1" v1 "go.temporal.io/api/workflowservice/v1" - v17 "go.temporal.io/server/api/clock/v1" - v110 "go.temporal.io/server/api/deployment/v1" - v116 "go.temporal.io/server/api/enums/v1" + v18 "go.temporal.io/server/api/clock/v1" + v111 "go.temporal.io/server/api/deployment/v1" + v117 "go.temporal.io/server/api/enums/v1" v13 "go.temporal.io/server/api/history/v1" - v111 "go.temporal.io/server/api/persistence/v1" - v18 "go.temporal.io/server/api/taskqueue/v1" + v112 "go.temporal.io/server/api/persistence/v1" + v19 "go.temporal.io/server/api/taskqueue/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" @@ -145,7 +146,11 @@ type PollWorkflowTaskQueueResponse struct { PollerScalingDecision *v14.PollerScalingDecision `protobuf:"bytes,21,opt,name=poller_scaling_decision,json=pollerScalingDecision,proto3" json:"poller_scaling_decision,omitempty"` // Raw history bytes sent from matching service when history.sendRawHistoryBetweenInternalServices is enabled. // Matching client will deserialize this to History when it receives the response. - RawHistory *v16.History `protobuf:"bytes,22,opt,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` + RawHistory *v16.History `protobuf:"bytes,22,opt,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + StreamSlices []*v17.StreamSlice `protobuf:"bytes,23,rep,name=stream_slices,json=streamSlices,proto3" json:"stream_slices,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -327,6 +332,13 @@ func (x *PollWorkflowTaskQueueResponse) GetRawHistory() *v16.History { return nil } +func (x *PollWorkflowTaskQueueResponse) GetStreamSlices() []*v17.StreamSlice { + if x != nil { + return x.StreamSlices + } + return nil +} + // PollWorkflowTaskQueueResponseWithRawHistory is wire-compatible with PollWorkflowTaskQueueResponse. // // WIRE COMPATIBILITY PATTERN: @@ -374,7 +386,11 @@ type PollWorkflowTaskQueueResponseWithRawHistory struct { // Raw history bytes. Each element is a proto-encoded batch of history events. // When matching client deserializes this to PollWorkflowTaskQueueResponse, this field // will be automatically deserialized to the raw_history field as History. - RawHistory [][]byte `protobuf:"bytes,22,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` + RawHistory [][]byte `protobuf:"bytes,22,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + StreamSlices []*v17.StreamSlice `protobuf:"bytes,23,rep,name=stream_slices,json=streamSlices,proto3" json:"stream_slices,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -556,6 +572,13 @@ func (x *PollWorkflowTaskQueueResponseWithRawHistory) GetRawHistory() [][]byte { return nil } +func (x *PollWorkflowTaskQueueResponseWithRawHistory) GetStreamSlices() []*v17.StreamSlice { + if x != nil { + return x.StreamSlices + } + return nil +} + type PollActivityTaskQueueRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` @@ -843,11 +866,11 @@ type AddWorkflowTaskRequest struct { // (-- api-linter: core::0140::prepositions=disabled // aip.dev/not-precedent: "to" is used to indicate interval. --) ScheduleToStartTimeout *durationpb.Duration `protobuf:"bytes,5,opt,name=schedule_to_start_timeout,json=scheduleToStartTimeout,proto3" json:"schedule_to_start_timeout,omitempty"` - Clock *v17.VectorClock `protobuf:"bytes,9,opt,name=clock,proto3" json:"clock,omitempty"` + Clock *v18.VectorClock `protobuf:"bytes,9,opt,name=clock,proto3" json:"clock,omitempty"` // How this task should be directed by matching. (Missing means the default // for TaskVersionDirective, which is unversioned.) - VersionDirective *v18.TaskVersionDirective `protobuf:"bytes,10,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` - ForwardInfo *v18.TaskForwardInfo `protobuf:"bytes,11,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` + VersionDirective *v19.TaskVersionDirective `protobuf:"bytes,10,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` + ForwardInfo *v19.TaskForwardInfo `protobuf:"bytes,11,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` Priority *v11.Priority `protobuf:"bytes,12,opt,name=priority,proto3" json:"priority,omitempty"` // Stamp value from when the workflow task was scheduled. Used to validate the task is still relevant. Stamp int32 `protobuf:"varint,13,opt,name=stamp,proto3" json:"stamp,omitempty"` @@ -920,21 +943,21 @@ func (x *AddWorkflowTaskRequest) GetScheduleToStartTimeout() *durationpb.Duratio return nil } -func (x *AddWorkflowTaskRequest) GetClock() *v17.VectorClock { +func (x *AddWorkflowTaskRequest) GetClock() *v18.VectorClock { if x != nil { return x.Clock } return nil } -func (x *AddWorkflowTaskRequest) GetVersionDirective() *v18.TaskVersionDirective { +func (x *AddWorkflowTaskRequest) GetVersionDirective() *v19.TaskVersionDirective { if x != nil { return x.VersionDirective } return nil } -func (x *AddWorkflowTaskRequest) GetForwardInfo() *v18.TaskForwardInfo { +func (x *AddWorkflowTaskRequest) GetForwardInfo() *v19.TaskForwardInfo { if x != nil { return x.ForwardInfo } @@ -1010,11 +1033,11 @@ type AddActivityTaskRequest struct { // (-- api-linter: core::0140::prepositions=disabled // aip.dev/not-precedent: "to" is used to indicate interval. --) ScheduleToStartTimeout *durationpb.Duration `protobuf:"bytes,6,opt,name=schedule_to_start_timeout,json=scheduleToStartTimeout,proto3" json:"schedule_to_start_timeout,omitempty"` - Clock *v17.VectorClock `protobuf:"bytes,9,opt,name=clock,proto3" json:"clock,omitempty"` + Clock *v18.VectorClock `protobuf:"bytes,9,opt,name=clock,proto3" json:"clock,omitempty"` // How this task should be directed by matching. (Missing means the default // for TaskVersionDirective, which is unversioned.) - VersionDirective *v18.TaskVersionDirective `protobuf:"bytes,10,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` - ForwardInfo *v18.TaskForwardInfo `protobuf:"bytes,11,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` + VersionDirective *v19.TaskVersionDirective `protobuf:"bytes,10,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` + ForwardInfo *v19.TaskForwardInfo `protobuf:"bytes,11,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` Stamp int32 `protobuf:"varint,12,opt,name=stamp,proto3" json:"stamp,omitempty"` Priority *v11.Priority `protobuf:"bytes,13,opt,name=priority,proto3" json:"priority,omitempty"` // Reference to the Chasm component for activity execution (if applicable). For standalone activities, all @@ -1090,21 +1113,21 @@ func (x *AddActivityTaskRequest) GetScheduleToStartTimeout() *durationpb.Duratio return nil } -func (x *AddActivityTaskRequest) GetClock() *v17.VectorClock { +func (x *AddActivityTaskRequest) GetClock() *v18.VectorClock { if x != nil { return x.Clock } return nil } -func (x *AddActivityTaskRequest) GetVersionDirective() *v18.TaskVersionDirective { +func (x *AddActivityTaskRequest) GetVersionDirective() *v19.TaskVersionDirective { if x != nil { return x.VersionDirective } return nil } -func (x *AddActivityTaskRequest) GetForwardInfo() *v18.TaskForwardInfo { +func (x *AddActivityTaskRequest) GetForwardInfo() *v19.TaskForwardInfo { if x != nil { return x.ForwardInfo } @@ -1185,8 +1208,8 @@ type QueryWorkflowRequest struct { QueryRequest *v1.QueryWorkflowRequest `protobuf:"bytes,3,opt,name=query_request,json=queryRequest,proto3" json:"query_request,omitempty"` // How this task should be directed by matching. (Missing means the default // for TaskVersionDirective, which is unversioned.) - VersionDirective *v18.TaskVersionDirective `protobuf:"bytes,5,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` - ForwardInfo *v18.TaskForwardInfo `protobuf:"bytes,6,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` + VersionDirective *v19.TaskVersionDirective `protobuf:"bytes,5,opt,name=version_directive,json=versionDirective,proto3" json:"version_directive,omitempty"` + ForwardInfo *v19.TaskForwardInfo `protobuf:"bytes,6,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` Priority *v11.Priority `protobuf:"bytes,7,opt,name=priority,proto3" json:"priority,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1243,14 +1266,14 @@ func (x *QueryWorkflowRequest) GetQueryRequest() *v1.QueryWorkflowRequest { return nil } -func (x *QueryWorkflowRequest) GetVersionDirective() *v18.TaskVersionDirective { +func (x *QueryWorkflowRequest) GetVersionDirective() *v19.TaskVersionDirective { if x != nil { return x.VersionDirective } return nil } -func (x *QueryWorkflowRequest) GetForwardInfo() *v18.TaskForwardInfo { +func (x *QueryWorkflowRequest) GetForwardInfo() *v19.TaskForwardInfo { if x != nil { return x.ForwardInfo } @@ -1423,7 +1446,7 @@ func (*RespondQueryTaskCompletedResponse) Descriptor() ([]byte, []int) { type CancelOutstandingPollRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - TaskQueueType v19.TaskQueueType `protobuf:"varint,2,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,2,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` TaskQueue *v14.TaskQueue `protobuf:"bytes,3,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` PollerId string `protobuf:"bytes,4,opt,name=poller_id,json=pollerId,proto3" json:"poller_id,omitempty"` unknownFields protoimpl.UnknownFields @@ -1467,11 +1490,11 @@ func (x *CancelOutstandingPollRequest) GetNamespaceId() string { return "" } -func (x *CancelOutstandingPollRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *CancelOutstandingPollRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } func (x *CancelOutstandingPollRequest) GetTaskQueue() *v14.TaskQueue { @@ -1529,7 +1552,7 @@ type CancelOutstandingWorkerPollsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue *v14.TaskQueue `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - TaskQueueType v19.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` WorkerInstanceKey string `protobuf:"bytes,4,opt,name=worker_instance_key,json=workerInstanceKey,proto3" json:"worker_instance_key,omitempty"` // Worker identity string (e.g., "pid@hostname"). Used to eagerly remove the worker // from pollerHistory so DescribeTaskQueue doesn't show stale pollers. @@ -1584,11 +1607,11 @@ func (x *CancelOutstandingWorkerPollsRequest) GetTaskQueue() *v14.TaskQueue { return nil } -func (x *CancelOutstandingWorkerPollsRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *CancelOutstandingWorkerPollsRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } func (x *CancelOutstandingWorkerPollsRequest) GetWorkerInstanceKey() string { @@ -1657,9 +1680,9 @@ type CancelOutstandingWorkerPollsPartitionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` // Used for RPC routing only. Set to any partition on the target host. - TaskQueuePartition *v18.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` + TaskQueuePartition *v19.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` // Partitions to process on this host. - Partitions []*v18.TaskQueuePartition `protobuf:"bytes,3,rep,name=partitions,proto3" json:"partitions,omitempty"` + Partitions []*v19.TaskQueuePartition `protobuf:"bytes,3,rep,name=partitions,proto3" json:"partitions,omitempty"` // Workers to cancel polls for. Workers []*CancelOutstandingWorkerPollsPartitionRequest_WorkerEntry `protobuf:"bytes,4,rep,name=workers,proto3" json:"workers,omitempty"` unknownFields protoimpl.UnknownFields @@ -1703,14 +1726,14 @@ func (x *CancelOutstandingWorkerPollsPartitionRequest) GetNamespaceId() string { return "" } -func (x *CancelOutstandingWorkerPollsPartitionRequest) GetTaskQueuePartition() *v18.TaskQueuePartition { +func (x *CancelOutstandingWorkerPollsPartitionRequest) GetTaskQueuePartition() *v19.TaskQueuePartition { if x != nil { return x.TaskQueuePartition } return nil } -func (x *CancelOutstandingWorkerPollsPartitionRequest) GetPartitions() []*v18.TaskQueuePartition { +func (x *CancelOutstandingWorkerPollsPartitionRequest) GetPartitions() []*v19.TaskQueuePartition { if x != nil { return x.Partitions } @@ -1772,7 +1795,7 @@ type DescribeTaskQueueRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` DescRequest *v1.DescribeTaskQueueRequest `protobuf:"bytes,2,opt,name=desc_request,json=descRequest,proto3" json:"desc_request,omitempty"` - Version *v110.WorkerDeploymentVersion `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Version *v111.WorkerDeploymentVersion `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1821,7 +1844,7 @@ func (x *DescribeTaskQueueRequest) GetDescRequest() *v1.DescribeTaskQueueRequest return nil } -func (x *DescribeTaskQueueRequest) GetVersion() *v110.WorkerDeploymentVersion { +func (x *DescribeTaskQueueRequest) GetVersion() *v111.WorkerDeploymentVersion { if x != nil { return x.Version } @@ -1876,9 +1899,9 @@ type DescribeVersionedTaskQueuesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` // This task queue is for routing purposes. - TaskQueueType v19.TaskQueueType `protobuf:"varint,2,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,2,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` TaskQueue *v14.TaskQueue `protobuf:"bytes,3,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - Version *v110.WorkerDeploymentVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + Version *v111.WorkerDeploymentVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` // List of task queues to describe. VersionTaskQueues []*DescribeVersionedTaskQueuesRequest_VersionTaskQueue `protobuf:"bytes,5,rep,name=version_task_queues,json=versionTaskQueues,proto3" json:"version_task_queues,omitempty"` unknownFields protoimpl.UnknownFields @@ -1922,11 +1945,11 @@ func (x *DescribeVersionedTaskQueuesRequest) GetNamespaceId() string { return "" } -func (x *DescribeVersionedTaskQueuesRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *DescribeVersionedTaskQueuesRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } func (x *DescribeVersionedTaskQueuesRequest) GetTaskQueue() *v14.TaskQueue { @@ -1936,7 +1959,7 @@ func (x *DescribeVersionedTaskQueuesRequest) GetTaskQueue() *v14.TaskQueue { return nil } -func (x *DescribeVersionedTaskQueuesRequest) GetVersion() *v110.WorkerDeploymentVersion { +func (x *DescribeVersionedTaskQueuesRequest) GetVersion() *v111.WorkerDeploymentVersion { if x != nil { return x.Version } @@ -1997,7 +2020,7 @@ func (x *DescribeVersionedTaskQueuesResponse) GetVersionTaskQueues() []*Describe type DescribeTaskQueuePartitionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - TaskQueuePartition *v18.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` + TaskQueuePartition *v19.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` Versions *v14.TaskQueueVersionSelection `protobuf:"bytes,3,opt,name=versions,proto3" json:"versions,omitempty"` // Report task queue stats for the requested task queue types and versions ReportStats bool `protobuf:"varint,4,opt,name=report_stats,json=reportStats,proto3" json:"report_stats,omitempty"` @@ -2049,7 +2072,7 @@ func (x *DescribeTaskQueuePartitionRequest) GetNamespaceId() string { return "" } -func (x *DescribeTaskQueuePartitionRequest) GetTaskQueuePartition() *v18.TaskQueuePartition { +func (x *DescribeTaskQueuePartitionRequest) GetTaskQueuePartition() *v19.TaskQueuePartition { if x != nil { return x.TaskQueuePartition } @@ -2093,8 +2116,8 @@ func (x *DescribeTaskQueuePartitionRequest) GetOnlyIfLoaded() bool { type DescribeTaskQueuePartitionResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - VersionsInfoInternal map[string]*v18.TaskQueueVersionInfoInternal `protobuf:"bytes,1,rep,name=versions_info_internal,json=versionsInfoInternal,proto3" json:"versions_info_internal,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - ScaleInfo *v18.PartitionScaleInfo `protobuf:"bytes,2,opt,name=scale_info,json=scaleInfo,proto3" json:"scale_info,omitempty"` + VersionsInfoInternal map[string]*v19.TaskQueueVersionInfoInternal `protobuf:"bytes,1,rep,name=versions_info_internal,json=versionsInfoInternal,proto3" json:"versions_info_internal,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ScaleInfo *v19.PartitionScaleInfo `protobuf:"bytes,2,opt,name=scale_info,json=scaleInfo,proto3" json:"scale_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2129,14 +2152,14 @@ func (*DescribeTaskQueuePartitionResponse) Descriptor() ([]byte, []int) { return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{24} } -func (x *DescribeTaskQueuePartitionResponse) GetVersionsInfoInternal() map[string]*v18.TaskQueueVersionInfoInternal { +func (x *DescribeTaskQueuePartitionResponse) GetVersionsInfoInternal() map[string]*v19.TaskQueueVersionInfoInternal { if x != nil { return x.VersionsInfoInternal } return nil } -func (x *DescribeTaskQueuePartitionResponse) GetScaleInfo() *v18.PartitionScaleInfo { +func (x *DescribeTaskQueuePartitionResponse) GetScaleInfo() *v19.PartitionScaleInfo { if x != nil { return x.ScaleInfo } @@ -2775,8 +2798,8 @@ type GetTaskQueueUserDataRequest struct { NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` // The task queue to fetch data from. The task queue is always considered as a normal // queue, since sticky queues have no user data. - TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - TaskQueueType v19.TaskQueueType `protobuf:"varint,5,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,5,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` // The value of the last known user data version. // If the requester has no data, it should set this to 0. // This value must not be set to a negative number (note that our linter suggests avoiding uint64). @@ -2839,11 +2862,11 @@ func (x *GetTaskQueueUserDataRequest) GetTaskQueue() string { return "" } -func (x *GetTaskQueueUserDataRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *GetTaskQueueUserDataRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } func (x *GetTaskQueueUserDataRequest) GetLastKnownUserDataVersion() int64 { @@ -2878,8 +2901,8 @@ type GetTaskQueueUserDataResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Versioned user data, set if the task queue has user data and the request's last_known_user_data_version is less // than the version cached in the root partition. - UserData *v111.VersionedTaskQueueUserData `protobuf:"bytes,2,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` - EphemeralData *v18.VersionedEphemeralData `protobuf:"bytes,3,opt,name=ephemeral_data,json=ephemeralData,proto3" json:"ephemeral_data,omitempty"` + UserData *v112.VersionedTaskQueueUserData `protobuf:"bytes,2,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` + EphemeralData *v19.VersionedEphemeralData `protobuf:"bytes,3,opt,name=ephemeral_data,json=ephemeralData,proto3" json:"ephemeral_data,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2914,14 +2937,14 @@ func (*GetTaskQueueUserDataResponse) Descriptor() ([]byte, []int) { return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{36} } -func (x *GetTaskQueueUserDataResponse) GetUserData() *v111.VersionedTaskQueueUserData { +func (x *GetTaskQueueUserDataResponse) GetUserData() *v112.VersionedTaskQueueUserData { if x != nil { return x.UserData } return nil } -func (x *GetTaskQueueUserDataResponse) GetEphemeralData() *v18.VersionedEphemeralData { +func (x *GetTaskQueueUserDataResponse) GetEphemeralData() *v19.VersionedEphemeralData { if x != nil { return x.EphemeralData } @@ -2935,8 +2958,8 @@ type SyncDeploymentUserDataRequest struct { // Required, unless deprecated fields are used. // (-- api-linter: core::0203::required=disabled // aip.dev/not-precedent: Not following Google API format --) - DeploymentName string `protobuf:"bytes,9,opt,name=deployment_name,json=deploymentName,proto3" json:"deployment_name,omitempty"` - TaskQueueTypes []v19.TaskQueueType `protobuf:"varint,8,rep,packed,name=task_queue_types,json=taskQueueTypes,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_types,omitempty"` + DeploymentName string `protobuf:"bytes,9,opt,name=deployment_name,json=deploymentName,proto3" json:"deployment_name,omitempty"` + TaskQueueTypes []v110.TaskQueueType `protobuf:"varint,8,rep,packed,name=task_queue_types,json=taskQueueTypes,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_types,omitempty"` // Types that are valid to be assigned to Operation: // // *SyncDeploymentUserDataRequest_UpdateVersionData @@ -2944,11 +2967,11 @@ type SyncDeploymentUserDataRequest struct { Operation isSyncDeploymentUserDataRequest_Operation `protobuf_oneof:"operation"` // Absent means no change. // Ignored by the task queue if new revision number is not greater that what it has. - UpdateRoutingConfig *v112.RoutingConfig `protobuf:"bytes,10,opt,name=update_routing_config,json=updateRoutingConfig,proto3" json:"update_routing_config,omitempty"` + UpdateRoutingConfig *v113.RoutingConfig `protobuf:"bytes,10,opt,name=update_routing_config,json=updateRoutingConfig,proto3" json:"update_routing_config,omitempty"` // Optional map of build id to upsert version data. // (-- api-linter: core::0203::required=disabled // aip.dev/not-precedent: Not following Google API format --) - UpsertVersionsData map[string]*v110.WorkerDeploymentVersionData `protobuf:"bytes,11,rep,name=upsert_versions_data,json=upsertVersionsData,proto3" json:"upsert_versions_data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + UpsertVersionsData map[string]*v111.WorkerDeploymentVersionData `protobuf:"bytes,11,rep,name=upsert_versions_data,json=upsertVersionsData,proto3" json:"upsert_versions_data,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // List of build ids to forget from task queue. ForgetVersions []string `protobuf:"bytes,12,rep,name=forget_versions,json=forgetVersions,proto3" json:"forget_versions,omitempty"` unknownFields protoimpl.UnknownFields @@ -3006,7 +3029,7 @@ func (x *SyncDeploymentUserDataRequest) GetDeploymentName() string { return "" } -func (x *SyncDeploymentUserDataRequest) GetTaskQueueTypes() []v19.TaskQueueType { +func (x *SyncDeploymentUserDataRequest) GetTaskQueueTypes() []v110.TaskQueueType { if x != nil { return x.TaskQueueTypes } @@ -3021,7 +3044,7 @@ func (x *SyncDeploymentUserDataRequest) GetOperation() isSyncDeploymentUserDataR } // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. -func (x *SyncDeploymentUserDataRequest) GetUpdateVersionData() *v110.DeploymentVersionData { +func (x *SyncDeploymentUserDataRequest) GetUpdateVersionData() *v111.DeploymentVersionData { if x != nil { if x, ok := x.Operation.(*SyncDeploymentUserDataRequest_UpdateVersionData); ok { return x.UpdateVersionData @@ -3031,7 +3054,7 @@ func (x *SyncDeploymentUserDataRequest) GetUpdateVersionData() *v110.DeploymentV } // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. -func (x *SyncDeploymentUserDataRequest) GetForgetVersion() *v110.WorkerDeploymentVersion { +func (x *SyncDeploymentUserDataRequest) GetForgetVersion() *v111.WorkerDeploymentVersion { if x != nil { if x, ok := x.Operation.(*SyncDeploymentUserDataRequest_ForgetVersion); ok { return x.ForgetVersion @@ -3040,14 +3063,14 @@ func (x *SyncDeploymentUserDataRequest) GetForgetVersion() *v110.WorkerDeploymen return nil } -func (x *SyncDeploymentUserDataRequest) GetUpdateRoutingConfig() *v112.RoutingConfig { +func (x *SyncDeploymentUserDataRequest) GetUpdateRoutingConfig() *v113.RoutingConfig { if x != nil { return x.UpdateRoutingConfig } return nil } -func (x *SyncDeploymentUserDataRequest) GetUpsertVersionsData() map[string]*v110.WorkerDeploymentVersionData { +func (x *SyncDeploymentUserDataRequest) GetUpsertVersionsData() map[string]*v111.WorkerDeploymentVersionData { if x != nil { return x.UpsertVersionsData } @@ -3069,14 +3092,14 @@ type SyncDeploymentUserDataRequest_UpdateVersionData struct { // The deployment version and its data that is being updated. // // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. - UpdateVersionData *v110.DeploymentVersionData `protobuf:"bytes,6,opt,name=update_version_data,json=updateVersionData,proto3,oneof"` + UpdateVersionData *v111.DeploymentVersionData `protobuf:"bytes,6,opt,name=update_version_data,json=updateVersionData,proto3,oneof"` } type SyncDeploymentUserDataRequest_ForgetVersion struct { // The version whose data should be cleaned from the task queue. // // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. - ForgetVersion *v110.WorkerDeploymentVersion `protobuf:"bytes,7,opt,name=forget_version,json=forgetVersion,proto3,oneof"` + ForgetVersion *v111.WorkerDeploymentVersion `protobuf:"bytes,7,opt,name=forget_version,json=forgetVersion,proto3,oneof"` } func (*SyncDeploymentUserDataRequest_UpdateVersionData) isSyncDeploymentUserDataRequest_Operation() {} @@ -3145,7 +3168,7 @@ type ApplyTaskQueueUserDataReplicationEventRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - UserData *v111.TaskQueueUserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` + UserData *v112.TaskQueueUserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3194,7 +3217,7 @@ func (x *ApplyTaskQueueUserDataReplicationEventRequest) GetTaskQueue() string { return "" } -func (x *ApplyTaskQueueUserDataReplicationEventRequest) GetUserData() *v111.TaskQueueUserData { +func (x *ApplyTaskQueueUserDataReplicationEventRequest) GetUserData() *v112.TaskQueueUserData { if x != nil { return x.UserData } @@ -3336,7 +3359,7 @@ func (x *GetBuildIdTaskQueueMappingResponse) GetTaskQueues() []string { type ForceLoadTaskQueuePartitionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - TaskQueuePartition *v18.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` + TaskQueuePartition *v19.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3378,7 +3401,7 @@ func (x *ForceLoadTaskQueuePartitionRequest) GetNamespaceId() string { return "" } -func (x *ForceLoadTaskQueuePartitionRequest) GetTaskQueuePartition() *v18.TaskQueuePartition { +func (x *ForceLoadTaskQueuePartitionRequest) GetTaskQueuePartition() *v19.TaskQueuePartition { if x != nil { return x.TaskQueuePartition } @@ -3434,7 +3457,7 @@ type ForceUnloadTaskQueueRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - TaskQueueType v19.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3483,11 +3506,11 @@ func (x *ForceUnloadTaskQueueRequest) GetTaskQueue() string { return "" } -func (x *ForceUnloadTaskQueueRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *ForceUnloadTaskQueueRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } // TODO Shivam - Please remove this in 123 @@ -3538,7 +3561,7 @@ func (x *ForceUnloadTaskQueueResponse) GetWasLoaded() bool { type ForceUnloadTaskQueuePartitionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` - TaskQueuePartition *v18.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` + TaskQueuePartition *v19.TaskQueuePartition `protobuf:"bytes,2,opt,name=task_queue_partition,json=taskQueuePartition,proto3" json:"task_queue_partition,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3580,7 +3603,7 @@ func (x *ForceUnloadTaskQueuePartitionRequest) GetNamespaceId() string { return "" } -func (x *ForceUnloadTaskQueuePartitionRequest) GetTaskQueuePartition() *v18.TaskQueuePartition { +func (x *ForceUnloadTaskQueuePartitionRequest) GetTaskQueuePartition() *v19.TaskQueuePartition { if x != nil { return x.TaskQueuePartition } @@ -3644,7 +3667,7 @@ type UpdateTaskQueueUserDataRequest struct { TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` // Versioned user data, set if the task queue has user data and the request's last_known_user_data_version is less // than the version cached in the root partition. - UserData *v111.VersionedTaskQueueUserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` + UserData *v112.VersionedTaskQueueUserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` // List of added build ids BuildIdsAdded []string `protobuf:"bytes,4,rep,name=build_ids_added,json=buildIdsAdded,proto3" json:"build_ids_added,omitempty"` // List of removed build ids @@ -3697,7 +3720,7 @@ func (x *UpdateTaskQueueUserDataRequest) GetTaskQueue() string { return "" } -func (x *UpdateTaskQueueUserDataRequest) GetUserData() *v111.VersionedTaskQueueUserData { +func (x *UpdateTaskQueueUserDataRequest) GetUserData() *v112.VersionedTaskQueueUserData { if x != nil { return x.UserData } @@ -3758,7 +3781,7 @@ type ReplicateTaskQueueUserDataRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - UserData *v111.TaskQueueUserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` + UserData *v112.TaskQueueUserData `protobuf:"bytes,3,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3807,7 +3830,7 @@ func (x *ReplicateTaskQueueUserDataRequest) GetTaskQueue() string { return "" } -func (x *ReplicateTaskQueueUserDataRequest) GetUserData() *v111.TaskQueueUserData { +func (x *ReplicateTaskQueueUserDataRequest) GetUserData() *v112.TaskQueueUserData { if x != nil { return x.UserData } @@ -3951,8 +3974,8 @@ type DispatchNexusTaskRequest struct { NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue *v14.TaskQueue `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` // Nexus request extracted by the frontend and translated into Temporal API format. - Request *v113.Request `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` - ForwardInfo *v18.TaskForwardInfo `protobuf:"bytes,4,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` + Request *v114.Request `protobuf:"bytes,3,opt,name=request,proto3" json:"request,omitempty"` + ForwardInfo *v19.TaskForwardInfo `protobuf:"bytes,4,opt,name=forward_info,json=forwardInfo,proto3" json:"forward_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4001,14 +4024,14 @@ func (x *DispatchNexusTaskRequest) GetTaskQueue() *v14.TaskQueue { return nil } -func (x *DispatchNexusTaskRequest) GetRequest() *v113.Request { +func (x *DispatchNexusTaskRequest) GetRequest() *v114.Request { if x != nil { return x.Request } return nil } -func (x *DispatchNexusTaskRequest) GetForwardInfo() *v18.TaskForwardInfo { +func (x *DispatchNexusTaskRequest) GetForwardInfo() *v19.TaskForwardInfo { if x != nil { return x.ForwardInfo } @@ -4066,7 +4089,7 @@ func (x *DispatchNexusTaskResponse) GetOutcome() isDispatchNexusTaskResponse_Out } // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. -func (x *DispatchNexusTaskResponse) GetHandlerError() *v113.HandlerError { +func (x *DispatchNexusTaskResponse) GetHandlerError() *v114.HandlerError { if x != nil { if x, ok := x.Outcome.(*DispatchNexusTaskResponse_HandlerError); ok { return x.HandlerError @@ -4075,7 +4098,7 @@ func (x *DispatchNexusTaskResponse) GetHandlerError() *v113.HandlerError { return nil } -func (x *DispatchNexusTaskResponse) GetResponse() *v113.Response { +func (x *DispatchNexusTaskResponse) GetResponse() *v114.Response { if x != nil { if x, ok := x.Outcome.(*DispatchNexusTaskResponse_Response); ok { return x.Response @@ -4093,7 +4116,7 @@ func (x *DispatchNexusTaskResponse) GetRequestTimeout() *DispatchNexusTaskRespon return nil } -func (x *DispatchNexusTaskResponse) GetFailure() *v114.Failure { +func (x *DispatchNexusTaskResponse) GetFailure() *v115.Failure { if x != nil { if x, ok := x.Outcome.(*DispatchNexusTaskResponse_Failure); ok { return x.Failure @@ -4110,12 +4133,12 @@ type DispatchNexusTaskResponse_HandlerError struct { // Deprecated. Use failure field instead. // // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. - HandlerError *v113.HandlerError `protobuf:"bytes,1,opt,name=handler_error,json=handlerError,proto3,oneof"` + HandlerError *v114.HandlerError `protobuf:"bytes,1,opt,name=handler_error,json=handlerError,proto3,oneof"` } type DispatchNexusTaskResponse_Response struct { // Set if the worker's handler responded successfully to the nexus task. - Response *v113.Response `protobuf:"bytes,2,opt,name=response,proto3,oneof"` + Response *v114.Response `protobuf:"bytes,2,opt,name=response,proto3,oneof"` } type DispatchNexusTaskResponse_RequestTimeout struct { @@ -4124,7 +4147,7 @@ type DispatchNexusTaskResponse_RequestTimeout struct { type DispatchNexusTaskResponse_Failure struct { // Set if the worker's handler failed the nexus task. Must contain a NexusHandlerFailureInfo object. - Failure *v114.Failure `protobuf:"bytes,4,opt,name=failure,proto3,oneof"` + Failure *v115.Failure `protobuf:"bytes,4,opt,name=failure,proto3,oneof"` } func (*DispatchNexusTaskResponse_HandlerError) isDispatchNexusTaskResponse_Outcome() {} @@ -4485,7 +4508,7 @@ func (*RespondNexusTaskFailedResponse) Descriptor() ([]byte, []int) { // aip.dev/not-precedent: CreateNexusEndpoint RPC doesn't follow Google API format. --) type CreateNexusEndpointRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - Spec *v111.NexusEndpointSpec `protobuf:"bytes,1,opt,name=spec,proto3" json:"spec,omitempty"` + Spec *v112.NexusEndpointSpec `protobuf:"bytes,1,opt,name=spec,proto3" json:"spec,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4520,7 +4543,7 @@ func (*CreateNexusEndpointRequest) Descriptor() ([]byte, []int) { return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{63} } -func (x *CreateNexusEndpointRequest) GetSpec() *v111.NexusEndpointSpec { +func (x *CreateNexusEndpointRequest) GetSpec() *v112.NexusEndpointSpec { if x != nil { return x.Spec } @@ -4529,7 +4552,7 @@ func (x *CreateNexusEndpointRequest) GetSpec() *v111.NexusEndpointSpec { type CreateNexusEndpointResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Entry *v111.NexusEndpointEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + Entry *v112.NexusEndpointEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4564,7 +4587,7 @@ func (*CreateNexusEndpointResponse) Descriptor() ([]byte, []int) { return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{64} } -func (x *CreateNexusEndpointResponse) GetEntry() *v111.NexusEndpointEntry { +func (x *CreateNexusEndpointResponse) GetEntry() *v112.NexusEndpointEntry { if x != nil { return x.Entry } @@ -4585,7 +4608,7 @@ type UpdateNexusEndpointRequest struct { // Version of the endpoint, used for optimistic concurrency. Must match current version in persistence or the // request will fail a FAILED_PRECONDITION error. Version int64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` - Spec *v111.NexusEndpointSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"` + Spec *v112.NexusEndpointSpec `protobuf:"bytes,3,opt,name=spec,proto3" json:"spec,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4634,7 +4657,7 @@ func (x *UpdateNexusEndpointRequest) GetVersion() int64 { return 0 } -func (x *UpdateNexusEndpointRequest) GetSpec() *v111.NexusEndpointSpec { +func (x *UpdateNexusEndpointRequest) GetSpec() *v112.NexusEndpointSpec { if x != nil { return x.Spec } @@ -4643,7 +4666,7 @@ func (x *UpdateNexusEndpointRequest) GetSpec() *v111.NexusEndpointSpec { type UpdateNexusEndpointResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Entry *v111.NexusEndpointEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` + Entry *v112.NexusEndpointEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4678,7 +4701,7 @@ func (*UpdateNexusEndpointResponse) Descriptor() ([]byte, []int) { return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{66} } -func (x *UpdateNexusEndpointResponse) GetEntry() *v111.NexusEndpointEntry { +func (x *UpdateNexusEndpointResponse) GetEntry() *v112.NexusEndpointEntry { if x != nil { return x.Entry } @@ -4857,7 +4880,7 @@ type ListNexusEndpointsResponse struct { // Token for getting the next page. NextPageToken []byte `protobuf:"bytes,1,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` TableVersion int64 `protobuf:"varint,2,opt,name=table_version,json=tableVersion,proto3" json:"table_version,omitempty"` - Entries []*v111.NexusEndpointEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"` + Entries []*v112.NexusEndpointEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -4906,7 +4929,7 @@ func (x *ListNexusEndpointsResponse) GetTableVersion() int64 { return 0 } -func (x *ListNexusEndpointsResponse) GetEntries() []*v111.NexusEndpointEntry { +func (x *ListNexusEndpointsResponse) GetEntries() []*v112.NexusEndpointEntry { if x != nil { return x.Entries } @@ -5059,9 +5082,9 @@ type ListWorkersResponse struct { // includes expensive runtime metrics. We will stop populating this field in the future. // // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. - WorkersInfo []*v115.WorkerInfo `protobuf:"bytes,1,rep,name=workers_info,json=workersInfo,proto3" json:"workers_info,omitempty"` + WorkersInfo []*v116.WorkerInfo `protobuf:"bytes,1,rep,name=workers_info,json=workersInfo,proto3" json:"workers_info,omitempty"` NextPageToken []byte `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` - Workers []*v115.WorkerListInfo `protobuf:"bytes,3,rep,name=workers,proto3" json:"workers,omitempty"` + Workers []*v116.WorkerListInfo `protobuf:"bytes,3,rep,name=workers,proto3" json:"workers,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5097,7 +5120,7 @@ func (*ListWorkersResponse) Descriptor() ([]byte, []int) { } // Deprecated: Marked as deprecated in temporal/server/api/matchingservice/v1/request_response.proto. -func (x *ListWorkersResponse) GetWorkersInfo() []*v115.WorkerInfo { +func (x *ListWorkersResponse) GetWorkersInfo() []*v116.WorkerInfo { if x != nil { return x.WorkersInfo } @@ -5111,7 +5134,7 @@ func (x *ListWorkersResponse) GetNextPageToken() []byte { return nil } -func (x *ListWorkersResponse) GetWorkers() []*v115.WorkerListInfo { +func (x *ListWorkersResponse) GetWorkers() []*v116.WorkerListInfo { if x != nil { return x.Workers } @@ -5376,7 +5399,7 @@ func (x *DescribeWorkerRequest) GetRequest() *v1.DescribeWorkerRequest { type DescribeWorkerResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - WorkerInfo *v115.WorkerInfo `protobuf:"bytes,1,opt,name=worker_info,json=workerInfo,proto3" json:"worker_info,omitempty"` + WorkerInfo *v116.WorkerInfo `protobuf:"bytes,1,opt,name=worker_info,json=workerInfo,proto3" json:"worker_info,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5411,7 +5434,7 @@ func (*DescribeWorkerResponse) Descriptor() ([]byte, []int) { return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{80} } -func (x *DescribeWorkerResponse) GetWorkerInfo() *v115.WorkerInfo { +func (x *DescribeWorkerResponse) GetWorkerInfo() *v116.WorkerInfo { if x != nil { return x.WorkerInfo } @@ -5433,8 +5456,8 @@ type UpdateFairnessStateRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - TaskQueueType v19.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` - FairnessState v116.FairnessState `protobuf:"varint,4,opt,name=fairness_state,json=fairnessState,proto3,enum=temporal.server.api.enums.v1.FairnessState" json:"fairness_state,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + FairnessState v117.FairnessState `protobuf:"varint,4,opt,name=fairness_state,json=fairnessState,proto3,enum=temporal.server.api.enums.v1.FairnessState" json:"fairness_state,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5483,18 +5506,18 @@ func (x *UpdateFairnessStateRequest) GetTaskQueue() string { return "" } -func (x *UpdateFairnessStateRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *UpdateFairnessStateRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } -func (x *UpdateFairnessStateRequest) GetFairnessState() v116.FairnessState { +func (x *UpdateFairnessStateRequest) GetFairnessState() v117.FairnessState { if x != nil { return x.FairnessState } - return v116.FairnessState(0) + return v117.FairnessState(0) } type UpdateFairnessStateResponse struct { @@ -5537,8 +5560,8 @@ type CheckTaskQueueVersionMembershipRequest struct { state protoimpl.MessageState `protogen:"open.v1"` NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` TaskQueue string `protobuf:"bytes,2,opt,name=task_queue,json=taskQueue,proto3" json:"task_queue,omitempty"` - TaskQueueType v19.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` - Version *v110.WorkerDeploymentVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` + TaskQueueType v110.TaskQueueType `protobuf:"varint,3,opt,name=task_queue_type,json=taskQueueType,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"task_queue_type,omitempty"` + Version *v111.WorkerDeploymentVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5587,14 +5610,14 @@ func (x *CheckTaskQueueVersionMembershipRequest) GetTaskQueue() string { return "" } -func (x *CheckTaskQueueVersionMembershipRequest) GetTaskQueueType() v19.TaskQueueType { +func (x *CheckTaskQueueVersionMembershipRequest) GetTaskQueueType() v110.TaskQueueType { if x != nil { return x.TaskQueueType } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } -func (x *CheckTaskQueueVersionMembershipRequest) GetVersion() *v110.WorkerDeploymentVersion { +func (x *CheckTaskQueueVersionMembershipRequest) GetVersion() *v111.WorkerDeploymentVersion { if x != nil { return x.Version } @@ -5793,7 +5816,7 @@ func (x *CancelOutstandingWorkerPollsPartitionRequest_WorkerEntry) GetWorkerIden type DescribeVersionedTaskQueuesRequest_VersionTaskQueue struct { state protoimpl.MessageState `protogen:"open.v1"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type v19.TaskQueueType `protobuf:"varint,2,opt,name=type,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"type,omitempty"` + Type v110.TaskQueueType `protobuf:"varint,2,opt,name=type,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5835,18 +5858,18 @@ func (x *DescribeVersionedTaskQueuesRequest_VersionTaskQueue) GetName() string { return "" } -func (x *DescribeVersionedTaskQueuesRequest_VersionTaskQueue) GetType() v19.TaskQueueType { +func (x *DescribeVersionedTaskQueuesRequest_VersionTaskQueue) GetType() v110.TaskQueueType { if x != nil { return x.Type } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } // (-- api-linter: core::0123::resource-annotation=disabled --) type DescribeVersionedTaskQueuesResponse_VersionTaskQueue struct { state protoimpl.MessageState `protogen:"open.v1"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Type v19.TaskQueueType `protobuf:"varint,2,opt,name=type,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"type,omitempty"` + Type v110.TaskQueueType `protobuf:"varint,2,opt,name=type,proto3,enum=temporal.api.enums.v1.TaskQueueType" json:"type,omitempty"` Stats *v14.TaskQueueStats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"` // (-- api-linter: core::0140::prepositions=disabled // aip.dev/not-precedent: "by" is used to clarify the key. --) @@ -5892,11 +5915,11 @@ func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) GetName() string return "" } -func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) GetType() v19.TaskQueueType { +func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) GetType() v110.TaskQueueType { if x != nil { return x.Type } - return v19.TaskQueueType(0) + return v110.TaskQueueType(0) } func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) GetStats() *v14.TaskQueueStats { @@ -6053,7 +6076,7 @@ var File_temporal_server_api_matchingservice_v1_request_response_proto protorefl const file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc = "" + "\n" + - "=temporal/server/api/matchingservice/v1/request_response.proto\x12&temporal.server.api.matchingservice.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a(temporal/api/deployment/v1/message.proto\x1a&temporal/api/enums/v1/task_queue.proto\x1a%temporal/api/failure/v1/message.proto\x1a%temporal/api/history/v1/message.proto\x1a#temporal/api/nexus/v1/message.proto\x1a&temporal/api/protocol/v1/message.proto\x1a#temporal/api/query/v1/message.proto\x1a'temporal/api/taskqueue/v1/message.proto\x1a$temporal/api/worker/v1/message.proto\x1a6temporal/api/workflowservice/v1/request_response.proto\x1a*temporal/server/api/clock/v1/message.proto\x1a/temporal/server/api/deployment/v1/message.proto\x1a1temporal/server/api/enums/v1/fairness_state.proto\x1a,temporal/server/api/history/v1/message.proto\x1a.temporal/server/api/persistence/v1/nexus.proto\x1a4temporal/server/api/persistence/v1/task_queues.proto\x1a.temporal/server/api/taskqueue/v1/message.proto\"\xc3\x02\n" + + "=temporal/server/api/matchingservice/v1/request_response.proto\x12&temporal.server.api.matchingservice.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a(temporal/api/deployment/v1/message.proto\x1a&temporal/api/enums/v1/task_queue.proto\x1a%temporal/api/failure/v1/message.proto\x1a%temporal/api/history/v1/message.proto\x1a#temporal/api/nexus/v1/message.proto\x1a&temporal/api/protocol/v1/message.proto\x1a#temporal/api/query/v1/message.proto\x1a$temporal/api/stream/v1/message.proto\x1a'temporal/api/taskqueue/v1/message.proto\x1a$temporal/api/worker/v1/message.proto\x1a6temporal/api/workflowservice/v1/request_response.proto\x1a*temporal/server/api/clock/v1/message.proto\x1a/temporal/server/api/deployment/v1/message.proto\x1a1temporal/server/api/enums/v1/fairness_state.proto\x1a,temporal/server/api/history/v1/message.proto\x1a.temporal/server/api/persistence/v1/nexus.proto\x1a4temporal/server/api/persistence/v1/task_queues.proto\x1a.temporal/server/api/taskqueue/v1/message.proto\"\xc3\x02\n" + "\x1cPollWorkflowTaskQueueRequest\x12!\n" + "\fnamespace_id\x18\x01 \x01(\tR\vnamespaceId\x12\x1b\n" + "\tpoller_id\x18\x02 \x01(\tR\bpollerId\x12`\n" + @@ -6061,7 +6084,7 @@ const file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc "\x10forwarded_source\x18\x04 \x01(\tR\x0fforwardedSource\x12V\n" + "\n" + "conditions\x18\x05 \x01(\v26.temporal.server.api.matchingservice.v1.PollConditionsR\n" + - "conditions\"\xd1\v\n" + + "conditions\"\x9b\f\n" + "\x1dPollWorkflowTaskQueueResponse\x12\x1d\n" + "\n" + "task_token\x18\x01 \x01(\fR\ttaskToken\x12X\n" + @@ -6086,10 +6109,11 @@ const file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc "\x0fnext_page_token\x18\x14 \x01(\fR\rnextPageToken\x12h\n" + "\x17poller_scaling_decision\x18\x15 \x01(\v20.temporal.api.taskqueue.v1.PollerScalingDecisionR\x15pollerScalingDecision\x12A\n" + "\vraw_history\x18\x16 \x01(\v2 .temporal.api.history.v1.HistoryR\n" + - "rawHistory\x1a`\n" + + "rawHistory\x12H\n" + + "\rstream_slices\x18\x17 \x03(\v2#.temporal.api.stream.v1.StreamSliceR\fstreamSlices\x1a`\n" + "\fQueriesEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12:\n" + - "\x05value\x18\x02 \x01(\v2$.temporal.api.query.v1.WorkflowQueryR\x05value:\x028\x01J\x04\b\r\x10\x0e\"\xcb\v\n" + + "\x05value\x18\x02 \x01(\v2$.temporal.api.query.v1.WorkflowQueryR\x05value:\x028\x01J\x04\b\r\x10\x0e\"\x95\f\n" + "+PollWorkflowTaskQueueResponseWithRawHistory\x12\x1d\n" + "\n" + "task_token\x18\x01 \x01(\fR\ttaskToken\x12X\n" + @@ -6114,7 +6138,8 @@ const file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc "\x0fnext_page_token\x18\x14 \x01(\fR\rnextPageToken\x12h\n" + "\x17poller_scaling_decision\x18\x15 \x01(\v20.temporal.api.taskqueue.v1.PollerScalingDecisionR\x15pollerScalingDecision\x12\x1f\n" + "\vraw_history\x18\x16 \x03(\fR\n" + - "rawHistory\x1a`\n" + + "rawHistory\x12H\n" + + "\rstream_slices\x18\x17 \x03(\v2#.temporal.api.stream.v1.StreamSliceR\fstreamSlices\x1a`\n" + "\fQueriesEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12:\n" + "\x05value\x18\x02 \x01(\v2$.temporal.api.query.v1.WorkflowQueryR\x05value:\x028\x01J\x04\b\r\x10\x0e\"\xc3\x02\n" + @@ -6622,61 +6647,62 @@ var file_temporal_server_api_matchingservice_v1_request_response_proto_goTypes = (*v15.Message)(nil), // 104: temporal.api.protocol.v1.Message (*v16.History)(nil), // 105: temporal.api.history.v1.History (*v14.PollerScalingDecision)(nil), // 106: temporal.api.taskqueue.v1.PollerScalingDecision - (*v1.PollActivityTaskQueueRequest)(nil), // 107: temporal.api.workflowservice.v1.PollActivityTaskQueueRequest - (*v11.ActivityType)(nil), // 108: temporal.api.common.v1.ActivityType - (*v11.Payloads)(nil), // 109: temporal.api.common.v1.Payloads - (*durationpb.Duration)(nil), // 110: google.protobuf.Duration - (*v11.Header)(nil), // 111: temporal.api.common.v1.Header - (*v11.Priority)(nil), // 112: temporal.api.common.v1.Priority - (*v11.RetryPolicy)(nil), // 113: temporal.api.common.v1.RetryPolicy - (*v17.VectorClock)(nil), // 114: temporal.server.api.clock.v1.VectorClock - (*v18.TaskVersionDirective)(nil), // 115: temporal.server.api.taskqueue.v1.TaskVersionDirective - (*v18.TaskForwardInfo)(nil), // 116: temporal.server.api.taskqueue.v1.TaskForwardInfo - (*v1.QueryWorkflowRequest)(nil), // 117: temporal.api.workflowservice.v1.QueryWorkflowRequest - (*v12.QueryRejected)(nil), // 118: temporal.api.query.v1.QueryRejected - (*v1.RespondQueryTaskCompletedRequest)(nil), // 119: temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest - (v19.TaskQueueType)(0), // 120: temporal.api.enums.v1.TaskQueueType - (*v18.TaskQueuePartition)(nil), // 121: temporal.server.api.taskqueue.v1.TaskQueuePartition - (*v1.DescribeTaskQueueRequest)(nil), // 122: temporal.api.workflowservice.v1.DescribeTaskQueueRequest - (*v110.WorkerDeploymentVersion)(nil), // 123: temporal.server.api.deployment.v1.WorkerDeploymentVersion - (*v1.DescribeTaskQueueResponse)(nil), // 124: temporal.api.workflowservice.v1.DescribeTaskQueueResponse - (*v14.TaskQueueVersionSelection)(nil), // 125: temporal.api.taskqueue.v1.TaskQueueVersionSelection - (*v18.PartitionScaleInfo)(nil), // 126: temporal.server.api.taskqueue.v1.PartitionScaleInfo - (*v14.TaskQueuePartitionMetadata)(nil), // 127: temporal.api.taskqueue.v1.TaskQueuePartitionMetadata - (*v1.GetWorkerVersioningRulesRequest)(nil), // 128: temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest - (*v1.GetWorkerVersioningRulesResponse)(nil), // 129: temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse - (*v1.UpdateWorkerVersioningRulesRequest)(nil), // 130: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest - (*v1.UpdateWorkerVersioningRulesResponse)(nil), // 131: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse - (*v1.GetWorkerBuildIdCompatibilityRequest)(nil), // 132: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest - (*v1.GetWorkerBuildIdCompatibilityResponse)(nil), // 133: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse - (*v111.VersionedTaskQueueUserData)(nil), // 134: temporal.server.api.persistence.v1.VersionedTaskQueueUserData - (*v18.VersionedEphemeralData)(nil), // 135: temporal.server.api.taskqueue.v1.VersionedEphemeralData - (*v110.DeploymentVersionData)(nil), // 136: temporal.server.api.deployment.v1.DeploymentVersionData - (*v112.RoutingConfig)(nil), // 137: temporal.api.deployment.v1.RoutingConfig - (*v111.TaskQueueUserData)(nil), // 138: temporal.server.api.persistence.v1.TaskQueueUserData - (*v113.Request)(nil), // 139: temporal.api.nexus.v1.Request - (*v113.HandlerError)(nil), // 140: temporal.api.nexus.v1.HandlerError - (*v113.Response)(nil), // 141: temporal.api.nexus.v1.Response - (*v114.Failure)(nil), // 142: temporal.api.failure.v1.Failure - (*v1.PollNexusTaskQueueRequest)(nil), // 143: temporal.api.workflowservice.v1.PollNexusTaskQueueRequest - (*v1.PollNexusTaskQueueResponse)(nil), // 144: temporal.api.workflowservice.v1.PollNexusTaskQueueResponse - (*v1.RespondNexusTaskCompletedRequest)(nil), // 145: temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest - (*v1.RespondNexusTaskFailedRequest)(nil), // 146: temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest - (*v111.NexusEndpointSpec)(nil), // 147: temporal.server.api.persistence.v1.NexusEndpointSpec - (*v111.NexusEndpointEntry)(nil), // 148: temporal.server.api.persistence.v1.NexusEndpointEntry - (*v1.RecordWorkerHeartbeatRequest)(nil), // 149: temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest - (*v1.ListWorkersRequest)(nil), // 150: temporal.api.workflowservice.v1.ListWorkersRequest - (*v115.WorkerInfo)(nil), // 151: temporal.api.worker.v1.WorkerInfo - (*v115.WorkerListInfo)(nil), // 152: temporal.api.worker.v1.WorkerListInfo - (*v1.CountWorkersRequest)(nil), // 153: temporal.api.workflowservice.v1.CountWorkersRequest - (*v1.UpdateTaskQueueConfigRequest)(nil), // 154: temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest - (*v14.TaskQueueConfig)(nil), // 155: temporal.api.taskqueue.v1.TaskQueueConfig - (*v1.DescribeWorkerRequest)(nil), // 156: temporal.api.workflowservice.v1.DescribeWorkerRequest - (v116.FairnessState)(0), // 157: temporal.server.api.enums.v1.FairnessState - (*v14.TaskQueueStats)(nil), // 158: temporal.api.taskqueue.v1.TaskQueueStats - (*v18.TaskQueueVersionInfoInternal)(nil), // 159: temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal - (*v1.UpdateWorkerBuildIdCompatibilityRequest)(nil), // 160: temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest - (*v110.WorkerDeploymentVersionData)(nil), // 161: temporal.server.api.deployment.v1.WorkerDeploymentVersionData + (*v17.StreamSlice)(nil), // 107: temporal.api.stream.v1.StreamSlice + (*v1.PollActivityTaskQueueRequest)(nil), // 108: temporal.api.workflowservice.v1.PollActivityTaskQueueRequest + (*v11.ActivityType)(nil), // 109: temporal.api.common.v1.ActivityType + (*v11.Payloads)(nil), // 110: temporal.api.common.v1.Payloads + (*durationpb.Duration)(nil), // 111: google.protobuf.Duration + (*v11.Header)(nil), // 112: temporal.api.common.v1.Header + (*v11.Priority)(nil), // 113: temporal.api.common.v1.Priority + (*v11.RetryPolicy)(nil), // 114: temporal.api.common.v1.RetryPolicy + (*v18.VectorClock)(nil), // 115: temporal.server.api.clock.v1.VectorClock + (*v19.TaskVersionDirective)(nil), // 116: temporal.server.api.taskqueue.v1.TaskVersionDirective + (*v19.TaskForwardInfo)(nil), // 117: temporal.server.api.taskqueue.v1.TaskForwardInfo + (*v1.QueryWorkflowRequest)(nil), // 118: temporal.api.workflowservice.v1.QueryWorkflowRequest + (*v12.QueryRejected)(nil), // 119: temporal.api.query.v1.QueryRejected + (*v1.RespondQueryTaskCompletedRequest)(nil), // 120: temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest + (v110.TaskQueueType)(0), // 121: temporal.api.enums.v1.TaskQueueType + (*v19.TaskQueuePartition)(nil), // 122: temporal.server.api.taskqueue.v1.TaskQueuePartition + (*v1.DescribeTaskQueueRequest)(nil), // 123: temporal.api.workflowservice.v1.DescribeTaskQueueRequest + (*v111.WorkerDeploymentVersion)(nil), // 124: temporal.server.api.deployment.v1.WorkerDeploymentVersion + (*v1.DescribeTaskQueueResponse)(nil), // 125: temporal.api.workflowservice.v1.DescribeTaskQueueResponse + (*v14.TaskQueueVersionSelection)(nil), // 126: temporal.api.taskqueue.v1.TaskQueueVersionSelection + (*v19.PartitionScaleInfo)(nil), // 127: temporal.server.api.taskqueue.v1.PartitionScaleInfo + (*v14.TaskQueuePartitionMetadata)(nil), // 128: temporal.api.taskqueue.v1.TaskQueuePartitionMetadata + (*v1.GetWorkerVersioningRulesRequest)(nil), // 129: temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest + (*v1.GetWorkerVersioningRulesResponse)(nil), // 130: temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse + (*v1.UpdateWorkerVersioningRulesRequest)(nil), // 131: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest + (*v1.UpdateWorkerVersioningRulesResponse)(nil), // 132: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse + (*v1.GetWorkerBuildIdCompatibilityRequest)(nil), // 133: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest + (*v1.GetWorkerBuildIdCompatibilityResponse)(nil), // 134: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse + (*v112.VersionedTaskQueueUserData)(nil), // 135: temporal.server.api.persistence.v1.VersionedTaskQueueUserData + (*v19.VersionedEphemeralData)(nil), // 136: temporal.server.api.taskqueue.v1.VersionedEphemeralData + (*v111.DeploymentVersionData)(nil), // 137: temporal.server.api.deployment.v1.DeploymentVersionData + (*v113.RoutingConfig)(nil), // 138: temporal.api.deployment.v1.RoutingConfig + (*v112.TaskQueueUserData)(nil), // 139: temporal.server.api.persistence.v1.TaskQueueUserData + (*v114.Request)(nil), // 140: temporal.api.nexus.v1.Request + (*v114.HandlerError)(nil), // 141: temporal.api.nexus.v1.HandlerError + (*v114.Response)(nil), // 142: temporal.api.nexus.v1.Response + (*v115.Failure)(nil), // 143: temporal.api.failure.v1.Failure + (*v1.PollNexusTaskQueueRequest)(nil), // 144: temporal.api.workflowservice.v1.PollNexusTaskQueueRequest + (*v1.PollNexusTaskQueueResponse)(nil), // 145: temporal.api.workflowservice.v1.PollNexusTaskQueueResponse + (*v1.RespondNexusTaskCompletedRequest)(nil), // 146: temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest + (*v1.RespondNexusTaskFailedRequest)(nil), // 147: temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest + (*v112.NexusEndpointSpec)(nil), // 148: temporal.server.api.persistence.v1.NexusEndpointSpec + (*v112.NexusEndpointEntry)(nil), // 149: temporal.server.api.persistence.v1.NexusEndpointEntry + (*v1.RecordWorkerHeartbeatRequest)(nil), // 150: temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest + (*v1.ListWorkersRequest)(nil), // 151: temporal.api.workflowservice.v1.ListWorkersRequest + (*v116.WorkerInfo)(nil), // 152: temporal.api.worker.v1.WorkerInfo + (*v116.WorkerListInfo)(nil), // 153: temporal.api.worker.v1.WorkerListInfo + (*v1.CountWorkersRequest)(nil), // 154: temporal.api.workflowservice.v1.CountWorkersRequest + (*v1.UpdateTaskQueueConfigRequest)(nil), // 155: temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest + (*v14.TaskQueueConfig)(nil), // 156: temporal.api.taskqueue.v1.TaskQueueConfig + (*v1.DescribeWorkerRequest)(nil), // 157: temporal.api.workflowservice.v1.DescribeWorkerRequest + (v117.FairnessState)(0), // 158: temporal.server.api.enums.v1.FairnessState + (*v14.TaskQueueStats)(nil), // 159: temporal.api.taskqueue.v1.TaskQueueStats + (*v19.TaskQueueVersionInfoInternal)(nil), // 160: temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal + (*v1.UpdateWorkerBuildIdCompatibilityRequest)(nil), // 161: temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest + (*v111.WorkerDeploymentVersionData)(nil), // 162: temporal.server.api.deployment.v1.WorkerDeploymentVersionData } var file_temporal_server_api_matchingservice_v1_request_response_proto_depIdxs = []int32{ 97, // 0: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest @@ -6693,148 +6719,150 @@ var file_temporal_server_api_matchingservice_v1_request_response_proto_depIdxs = 105, // 11: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.history:type_name -> temporal.api.history.v1.History 106, // 12: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision 105, // 13: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.raw_history:type_name -> temporal.api.history.v1.History - 98, // 14: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 99, // 15: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 100, // 16: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.query:type_name -> temporal.api.query.v1.WorkflowQuery - 101, // 17: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo - 102, // 18: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 103, // 19: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.scheduled_time:type_name -> google.protobuf.Timestamp - 103, // 20: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.started_time:type_name -> google.protobuf.Timestamp - 87, // 21: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.queries:type_name -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry - 104, // 22: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.messages:type_name -> temporal.api.protocol.v1.Message - 105, // 23: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.history:type_name -> temporal.api.history.v1.History - 106, // 24: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision - 107, // 25: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueRequest - 85, // 26: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions - 98, // 27: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 108, // 28: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.activity_type:type_name -> temporal.api.common.v1.ActivityType - 109, // 29: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.input:type_name -> temporal.api.common.v1.Payloads - 103, // 30: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.scheduled_time:type_name -> google.protobuf.Timestamp - 110, // 31: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.schedule_to_close_timeout:type_name -> google.protobuf.Duration - 103, // 32: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.started_time:type_name -> google.protobuf.Timestamp - 110, // 33: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.start_to_close_timeout:type_name -> google.protobuf.Duration - 110, // 34: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_timeout:type_name -> google.protobuf.Duration - 103, // 35: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.current_attempt_scheduled_time:type_name -> google.protobuf.Timestamp - 109, // 36: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_details:type_name -> temporal.api.common.v1.Payloads - 99, // 37: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 111, // 38: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.header:type_name -> temporal.api.common.v1.Header - 106, // 39: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision - 112, // 40: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.priority:type_name -> temporal.api.common.v1.Priority - 113, // 41: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.retry_policy:type_name -> temporal.api.common.v1.RetryPolicy - 98, // 42: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 102, // 43: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 110, // 44: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration - 114, // 45: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 115, // 46: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 116, // 47: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 112, // 48: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.priority:type_name -> temporal.api.common.v1.Priority - 98, // 49: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 102, // 50: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 110, // 51: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration - 114, // 52: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 115, // 53: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 116, // 54: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 112, // 55: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.priority:type_name -> temporal.api.common.v1.Priority - 102, // 56: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 117, // 57: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.query_request:type_name -> temporal.api.workflowservice.v1.QueryWorkflowRequest - 115, // 58: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 116, // 59: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 112, // 60: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.priority:type_name -> temporal.api.common.v1.Priority - 109, // 61: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_result:type_name -> temporal.api.common.v1.Payloads - 118, // 62: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_rejected:type_name -> temporal.api.query.v1.QueryRejected - 102, // 63: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 119, // 64: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.completed_request:type_name -> temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest - 120, // 65: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 102, // 66: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 102, // 67: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 120, // 68: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 121, // 69: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 121, // 70: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.partitions:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 88, // 71: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.workers:type_name -> temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.WorkerEntry - 122, // 72: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.desc_request:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueRequest - 123, // 73: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 124, // 74: temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse.desc_response:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueResponse - 120, // 75: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 102, // 76: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 123, // 77: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 89, // 78: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue - 90, // 79: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue - 121, // 80: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 125, // 81: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.versions:type_name -> temporal.api.taskqueue.v1.TaskQueueVersionSelection - 92, // 82: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.versions_info_internal:type_name -> temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry - 126, // 83: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.scale_info:type_name -> temporal.server.api.taskqueue.v1.PartitionScaleInfo - 102, // 84: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 127, // 85: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.activity_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata - 127, // 86: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.workflow_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata - 93, // 87: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.apply_public_request:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest - 94, // 88: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.remove_build_ids:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.RemoveBuildIds - 128, // 89: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest - 129, // 90: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse - 130, // 91: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest - 131, // 92: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse - 132, // 93: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest - 133, // 94: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse - 120, // 95: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 134, // 96: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData - 135, // 97: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.ephemeral_data:type_name -> temporal.server.api.taskqueue.v1.VersionedEphemeralData - 120, // 98: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.task_queue_types:type_name -> temporal.api.enums.v1.TaskQueueType - 136, // 99: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_version_data:type_name -> temporal.server.api.deployment.v1.DeploymentVersionData - 123, // 100: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.forget_version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 137, // 101: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_routing_config:type_name -> temporal.api.deployment.v1.RoutingConfig - 95, // 102: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.upsert_versions_data:type_name -> temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry - 138, // 103: temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData - 121, // 104: temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 120, // 105: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 121, // 106: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 134, // 107: temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData - 138, // 108: temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData - 102, // 109: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 139, // 110: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.request:type_name -> temporal.api.nexus.v1.Request - 116, // 111: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 140, // 112: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.handler_error:type_name -> temporal.api.nexus.v1.HandlerError - 141, // 113: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.response:type_name -> temporal.api.nexus.v1.Response - 96, // 114: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.request_timeout:type_name -> temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.Timeout - 142, // 115: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.failure:type_name -> temporal.api.failure.v1.Failure - 143, // 116: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.request:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueRequest - 85, // 117: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions - 144, // 118: temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse.response:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueResponse - 102, // 119: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 145, // 120: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest - 102, // 121: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 146, // 122: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest - 147, // 123: temporal.server.api.matchingservice.v1.CreateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec - 148, // 124: temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry - 147, // 125: temporal.server.api.matchingservice.v1.UpdateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec - 148, // 126: temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry - 148, // 127: temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse.entries:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry - 149, // 128: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest.heartbeart_request:type_name -> temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest - 150, // 129: temporal.server.api.matchingservice.v1.ListWorkersRequest.list_request:type_name -> temporal.api.workflowservice.v1.ListWorkersRequest - 151, // 130: temporal.server.api.matchingservice.v1.ListWorkersResponse.workers_info:type_name -> temporal.api.worker.v1.WorkerInfo - 152, // 131: temporal.server.api.matchingservice.v1.ListWorkersResponse.workers:type_name -> temporal.api.worker.v1.WorkerListInfo - 153, // 132: temporal.server.api.matchingservice.v1.CountWorkersRequest.count_request:type_name -> temporal.api.workflowservice.v1.CountWorkersRequest - 154, // 133: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest.update_taskqueue_config:type_name -> temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest - 155, // 134: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse.updated_taskqueue_config:type_name -> temporal.api.taskqueue.v1.TaskQueueConfig - 156, // 135: temporal.server.api.matchingservice.v1.DescribeWorkerRequest.request:type_name -> temporal.api.workflowservice.v1.DescribeWorkerRequest - 151, // 136: temporal.server.api.matchingservice.v1.DescribeWorkerResponse.worker_info:type_name -> temporal.api.worker.v1.WorkerInfo - 120, // 137: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 157, // 138: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.fairness_state:type_name -> temporal.server.api.enums.v1.FairnessState - 120, // 139: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 123, // 140: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 100, // 141: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery - 100, // 142: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery - 120, // 143: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType - 120, // 144: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType - 158, // 145: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats:type_name -> temporal.api.taskqueue.v1.TaskQueueStats - 91, // 146: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats_by_priority_key:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry - 158, // 147: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry.value:type_name -> temporal.api.taskqueue.v1.TaskQueueStats - 159, // 148: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry.value:type_name -> temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal - 160, // 149: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest - 161, // 150: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry.value:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersionData - 151, // [151:151] is the sub-list for method output_type - 151, // [151:151] is the sub-list for method input_type - 151, // [151:151] is the sub-list for extension type_name - 151, // [151:151] is the sub-list for extension extendee - 0, // [0:151] is the sub-list for field type_name + 107, // 14: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.stream_slices:type_name -> temporal.api.stream.v1.StreamSlice + 98, // 15: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 99, // 16: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 100, // 17: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.query:type_name -> temporal.api.query.v1.WorkflowQuery + 101, // 18: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo + 102, // 19: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 103, // 20: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.scheduled_time:type_name -> google.protobuf.Timestamp + 103, // 21: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.started_time:type_name -> google.protobuf.Timestamp + 87, // 22: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.queries:type_name -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry + 104, // 23: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.messages:type_name -> temporal.api.protocol.v1.Message + 105, // 24: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.history:type_name -> temporal.api.history.v1.History + 106, // 25: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision + 107, // 26: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.stream_slices:type_name -> temporal.api.stream.v1.StreamSlice + 108, // 27: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueRequest + 85, // 28: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions + 98, // 29: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 109, // 30: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.activity_type:type_name -> temporal.api.common.v1.ActivityType + 110, // 31: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.input:type_name -> temporal.api.common.v1.Payloads + 103, // 32: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.scheduled_time:type_name -> google.protobuf.Timestamp + 111, // 33: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.schedule_to_close_timeout:type_name -> google.protobuf.Duration + 103, // 34: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.started_time:type_name -> google.protobuf.Timestamp + 111, // 35: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.start_to_close_timeout:type_name -> google.protobuf.Duration + 111, // 36: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_timeout:type_name -> google.protobuf.Duration + 103, // 37: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.current_attempt_scheduled_time:type_name -> google.protobuf.Timestamp + 110, // 38: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_details:type_name -> temporal.api.common.v1.Payloads + 99, // 39: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 112, // 40: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.header:type_name -> temporal.api.common.v1.Header + 106, // 41: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision + 113, // 42: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.priority:type_name -> temporal.api.common.v1.Priority + 114, // 43: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.retry_policy:type_name -> temporal.api.common.v1.RetryPolicy + 98, // 44: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 102, // 45: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 111, // 46: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration + 115, // 47: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 116, // 48: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 117, // 49: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 113, // 50: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.priority:type_name -> temporal.api.common.v1.Priority + 98, // 51: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 102, // 52: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 111, // 53: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration + 115, // 54: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 116, // 55: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 117, // 56: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 113, // 57: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.priority:type_name -> temporal.api.common.v1.Priority + 102, // 58: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 118, // 59: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.query_request:type_name -> temporal.api.workflowservice.v1.QueryWorkflowRequest + 116, // 60: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 117, // 61: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 113, // 62: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.priority:type_name -> temporal.api.common.v1.Priority + 110, // 63: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_result:type_name -> temporal.api.common.v1.Payloads + 119, // 64: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_rejected:type_name -> temporal.api.query.v1.QueryRejected + 102, // 65: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 120, // 66: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.completed_request:type_name -> temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest + 121, // 67: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 102, // 68: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 102, // 69: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 121, // 70: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 122, // 71: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 122, // 72: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.partitions:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 88, // 73: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.workers:type_name -> temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsPartitionRequest.WorkerEntry + 123, // 74: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.desc_request:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueRequest + 124, // 75: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 125, // 76: temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse.desc_response:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueResponse + 121, // 77: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 102, // 78: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 124, // 79: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 89, // 80: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue + 90, // 81: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue + 122, // 82: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 126, // 83: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.versions:type_name -> temporal.api.taskqueue.v1.TaskQueueVersionSelection + 92, // 84: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.versions_info_internal:type_name -> temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry + 127, // 85: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.scale_info:type_name -> temporal.server.api.taskqueue.v1.PartitionScaleInfo + 102, // 86: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 128, // 87: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.activity_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata + 128, // 88: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.workflow_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata + 93, // 89: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.apply_public_request:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest + 94, // 90: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.remove_build_ids:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.RemoveBuildIds + 129, // 91: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest + 130, // 92: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse + 131, // 93: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest + 132, // 94: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse + 133, // 95: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest + 134, // 96: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse + 121, // 97: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 135, // 98: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData + 136, // 99: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.ephemeral_data:type_name -> temporal.server.api.taskqueue.v1.VersionedEphemeralData + 121, // 100: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.task_queue_types:type_name -> temporal.api.enums.v1.TaskQueueType + 137, // 101: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_version_data:type_name -> temporal.server.api.deployment.v1.DeploymentVersionData + 124, // 102: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.forget_version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 138, // 103: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_routing_config:type_name -> temporal.api.deployment.v1.RoutingConfig + 95, // 104: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.upsert_versions_data:type_name -> temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry + 139, // 105: temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData + 122, // 106: temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 121, // 107: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 122, // 108: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 135, // 109: temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData + 139, // 110: temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData + 102, // 111: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 140, // 112: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.request:type_name -> temporal.api.nexus.v1.Request + 117, // 113: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 141, // 114: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.handler_error:type_name -> temporal.api.nexus.v1.HandlerError + 142, // 115: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.response:type_name -> temporal.api.nexus.v1.Response + 96, // 116: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.request_timeout:type_name -> temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.Timeout + 143, // 117: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.failure:type_name -> temporal.api.failure.v1.Failure + 144, // 118: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.request:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueRequest + 85, // 119: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions + 145, // 120: temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse.response:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueResponse + 102, // 121: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 146, // 122: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest + 102, // 123: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 147, // 124: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest + 148, // 125: temporal.server.api.matchingservice.v1.CreateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec + 149, // 126: temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry + 148, // 127: temporal.server.api.matchingservice.v1.UpdateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec + 149, // 128: temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry + 149, // 129: temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse.entries:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry + 150, // 130: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest.heartbeart_request:type_name -> temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest + 151, // 131: temporal.server.api.matchingservice.v1.ListWorkersRequest.list_request:type_name -> temporal.api.workflowservice.v1.ListWorkersRequest + 152, // 132: temporal.server.api.matchingservice.v1.ListWorkersResponse.workers_info:type_name -> temporal.api.worker.v1.WorkerInfo + 153, // 133: temporal.server.api.matchingservice.v1.ListWorkersResponse.workers:type_name -> temporal.api.worker.v1.WorkerListInfo + 154, // 134: temporal.server.api.matchingservice.v1.CountWorkersRequest.count_request:type_name -> temporal.api.workflowservice.v1.CountWorkersRequest + 155, // 135: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest.update_taskqueue_config:type_name -> temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest + 156, // 136: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse.updated_taskqueue_config:type_name -> temporal.api.taskqueue.v1.TaskQueueConfig + 157, // 137: temporal.server.api.matchingservice.v1.DescribeWorkerRequest.request:type_name -> temporal.api.workflowservice.v1.DescribeWorkerRequest + 152, // 138: temporal.server.api.matchingservice.v1.DescribeWorkerResponse.worker_info:type_name -> temporal.api.worker.v1.WorkerInfo + 121, // 139: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 158, // 140: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.fairness_state:type_name -> temporal.server.api.enums.v1.FairnessState + 121, // 141: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 124, // 142: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 100, // 143: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery + 100, // 144: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery + 121, // 145: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType + 121, // 146: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType + 159, // 147: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats:type_name -> temporal.api.taskqueue.v1.TaskQueueStats + 91, // 148: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats_by_priority_key:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry + 159, // 149: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry.value:type_name -> temporal.api.taskqueue.v1.TaskQueueStats + 160, // 150: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry.value:type_name -> temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal + 161, // 151: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest + 162, // 152: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry.value:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersionData + 153, // [153:153] is the sub-list for method output_type + 153, // [153:153] is the sub-list for method input_type + 153, // [153:153] is the sub-list for extension type_name + 153, // [153:153] is the sub-list for extension extendee + 0, // [0:153] is the sub-list for field type_name } func init() { file_temporal_server_api_matchingservice_v1_request_response_proto_init() } diff --git a/chasm/lib/stream/config.go b/chasm/lib/stream/config.go index 45dfa50beec..2459453623c 100644 --- a/chasm/lib/stream/config.go +++ b/chasm/lib/stream/config.go @@ -108,6 +108,19 @@ const ( // lock held, so the count is what bounds the lock hold. MaxSubscriptionsPerWorkflow = 100 + // A cold replay re-reads every range the consumer's completed tasks + // recorded, because History holds offsets and never payloads. That cost + // grows with the workflow's whole life rather than with the task being + // started, so one response has a bound on records, on bytes, and on the + // pages of history walked to find the ranges. + // + // A consumer past any of them cannot be replayed by this path. There is no + // bounded paged re-supply yet, so it is terminated with the cause rather + // than left failing the same task forever. + ReplayMaxRecords = 100_000 + ReplayMaxBytes = 64 << 20 + ReplayMaxPages = 256 + // OwnedStreamsMaxBytesPerWorkflow bounds every stream one execution owns // taken together. The per-stream budget multiplied by the stream count // comes to far more than limit.mutableStateSize.error, so without this an @@ -175,6 +188,23 @@ under limit.mutableStateSize.error, which would otherwise terminate the workflow OwnedStreamMaxItems, `Message budget of a stream a workflow owns. Appends past it are refused.`, ) + ReplayMaxRecordsSetting = dynamicconfig.NewNamespaceIntSetting( + "stream.replayMaxRecords", + ReplayMaxRecords, + `Most stream records one cold replay re-supplies. A consumer whose recorded ranges +come to more than this cannot be replayed and is terminated with the cause.`, + ) + ReplayMaxBytesSetting = dynamicconfig.NewNamespaceIntSetting( + "stream.replayMaxBytes", + ReplayMaxBytes, + `Most stream record bytes one cold replay re-supplies.`, + ) + ReplayMaxPagesSetting = dynamicconfig.NewNamespaceIntSetting( + "stream.replayMaxPages", + ReplayMaxPages, + `Most pages of history one cold replay walks to find the ranges its completed tasks +consumed.`, + ) MaxSubscriptionsPerWorkflowSetting = dynamicconfig.NewNamespaceIntSetting( "stream.maxSubscriptionsPerWorkflow", MaxSubscriptionsPerWorkflow, @@ -253,6 +283,9 @@ type Config struct { // per-stream budget cannot do. OwnedStreamsMaxBytesPerWorkflow dynamicconfig.IntPropertyFnWithNamespaceFilter MaxSubscriptionsPerWorkflow dynamicconfig.IntPropertyFnWithNamespaceFilter + ReplayMaxRecords dynamicconfig.IntPropertyFnWithNamespaceFilter + ReplayMaxBytes dynamicconfig.IntPropertyFnWithNamespaceFilter + ReplayMaxPages dynamicconfig.IntPropertyFnWithNamespaceFilter AppendRecordsPerSecond dynamicconfig.IntPropertyFnWithNamespaceFilter AppendBytesPerSecond dynamicconfig.IntPropertyFnWithNamespaceFilter @@ -277,6 +310,9 @@ func NewConfig(dc *dynamicconfig.Collection) *Config { OwnedStreamsMaxBytesPerWorkflow: OwnedStreamsMaxBytesPerWorkflowSetting.Get(dc), MaxSubscriptionsPerWorkflow: MaxSubscriptionsPerWorkflowSetting.Get(dc), + ReplayMaxRecords: ReplayMaxRecordsSetting.Get(dc), + ReplayMaxBytes: ReplayMaxBytesSetting.Get(dc), + ReplayMaxPages: ReplayMaxPagesSetting.Get(dc), AppendRecordsPerSecond: AppendRecordsPerSecondSetting.Get(dc), AppendBytesPerSecond: AppendBytesPerSecondSetting.Get(dc), @@ -299,6 +335,9 @@ type Limits struct { OwnedStreamsMaxBytesPerWorkflow int MaxSubscriptionsPerWorkflow int + ReplayMaxRecords int + ReplayMaxBytes int + ReplayMaxPages int } // LimitsFor resolves the limits for a namespace. A nil Config, which is what @@ -320,6 +359,9 @@ func (c *Config) LimitsFor(namespaceName string) Limits { OwnedStreamsMaxBytesPerWorkflow: c.OwnedStreamsMaxBytesPerWorkflow(namespaceName), MaxSubscriptionsPerWorkflow: c.MaxSubscriptionsPerWorkflow(namespaceName), + ReplayMaxRecords: c.ReplayMaxRecords(namespaceName), + ReplayMaxBytes: c.ReplayMaxBytes(namespaceName), + ReplayMaxPages: c.ReplayMaxPages(namespaceName), }.withDefaults() } @@ -365,5 +407,8 @@ func (l Limits) withDefaults() Limits { fill(&l.OwnedStreamMaxItems, OwnedStreamMaxItems) fill(&l.OwnedStreamsMaxBytesPerWorkflow, OwnedStreamsMaxBytesPerWorkflow) fill(&l.MaxSubscriptionsPerWorkflow, MaxSubscriptionsPerWorkflow) + fill(&l.ReplayMaxRecords, ReplayMaxRecords) + fill(&l.ReplayMaxBytes, ReplayMaxBytes) + fill(&l.ReplayMaxPages, ReplayMaxPages) return l } diff --git a/chasm/lib/stream/doc.go b/chasm/lib/stream/doc.go index 307114bd5d1..d55b0a271d7 100644 --- a/chasm/lib/stream/doc.go +++ b/chasm/lib/stream/doc.go @@ -78,4 +78,12 @@ // no producer to repeat under, the task being its boundary, and the worker's // codec runs over its record metadata payloads too, so the value may arrive // encoded on that path. The server applies no codec anywhere. +// +// # Replay re-supply +// +// A cold replay is handed every range the consumer's completed tasks +// recorded, re-read from the streams, within one response's budget. A +// re-supply the budget cuts short is refused as a whole rather than marked: +// paging it needs a short flag on the poll response, or on the last +// StreamSlice, that this package does not have on the wire yet. package stream diff --git a/chasm/lib/workflow/stream_cursor_test.go b/chasm/lib/workflow/stream_cursor_test.go index ef3dea670ad..f5fd07a34d9 100644 --- a/chasm/lib/workflow/stream_cursor_test.go +++ b/chasm/lib/workflow/stream_cursor_test.go @@ -111,6 +111,58 @@ func TestSubscribeCreatesTheStreamItNames(t *testing.T) { require.Len(t, state.GetConsumers(), 1, "the subscription pinned the new stream") } +// Committing a delivered range moves the consumer's cursor on the stream, so +// the stream knows how far this reader has got. +func TestCommitStreamCursorsAdvancesTheConsumer(t *testing.T) { + ctx := newStreamCursorTestContext() + w := &Workflow{} + owned := newAttachedStream(t, ctx, 4) + w.Streams = chasm.Map[string, *stream.Stream]{ + DefaultStreamName: chasm.NewComponentField(ctx, owned), + } + + _, err := w.SubscribeToOwnedStream( + ctx, DefaultStreamName, stream.AtOffset(0), stream.DefaultLimits()) + require.NoError(t, err) + + cursor := w.StreamCursors[DefaultStreamName].Get(ctx) + require.NoError(t, cursor.StagePending(ctx, 0, 3)) + + recorded := w.CommitStreamCursors(ctx) + require.Len(t, recorded, 1) + require.Equal(t, int64(0), recorded[0].GetFromOffset()) + require.Equal(t, int64(3), recorded[0].GetToOffset()) + + require.Equal(t, int64(3), + owned.State.GetConsumers()[streamConsumerID(DefaultStreamName)].GetOffset(), + "the stream must see how far the consumer has read") +} + +// An idle task records an empty range, which must leave the consumer alone. +func TestCommitStreamCursorsWithAnEmptyRangeHoldsTheConsumer(t *testing.T) { + ctx := newStreamCursorTestContext() + w := &Workflow{} + owned := newAttachedStream(t, ctx, 4) + w.Streams = chasm.Map[string, *stream.Stream]{ + DefaultStreamName: chasm.NewComponentField(ctx, owned), + } + + _, err := w.SubscribeToOwnedStream( + ctx, DefaultStreamName, stream.AtOffset(0), stream.DefaultLimits()) + require.NoError(t, err) + + cursor := w.StreamCursors[DefaultStreamName].Get(ctx) + require.NoError(t, cursor.StagePending(ctx, 0, 0)) + + recorded := w.CommitStreamCursors(ctx) + require.Len(t, recorded, 1, "an empty range is still recorded") + require.Equal(t, recorded[0].GetFromOffset(), recorded[0].GetToOffset()) + + require.Equal(t, int64(0), + owned.State.GetConsumers()[streamConsumerID(DefaultStreamName)].GetOffset(), + "consuming nothing must not move the consumer") +} + // Two publishes in one workflow task each write their own batch, keyed by the // offset it starts at, so neither collides with the other and a retry of // either addresses the same key it wrote before. diff --git a/chasm/lib/workflow/workflow.go b/chasm/lib/workflow/workflow.go index 439e9297769..5fb8d605219 100644 --- a/chasm/lib/workflow/workflow.go +++ b/chasm/lib/workflow/workflow.go @@ -278,6 +278,91 @@ func (w *Workflow) AdvanceKnownHead(mctx chasm.MutableContext, streamID string, return nil } +// HasStreamCursors reports whether this workflow consumes any stream at all, +// which is a different question from whether one is behind. +func (w *Workflow) HasStreamCursors() bool { + return len(w.StreamCursors) > 0 +} + +// StreamCursorsBehind reports whether any subscription still has offsets it has +// not been given. +// +// This is the one place a stream wakes a workflow. Publishing deliberately +// never does, because a stream item is data produced by an execution rather +// than a decision input to it. An active subscription is different: the +// workflow asked to be told, so leaving it to wait for some unrelated task +// would make delivery depend on traffic that has nothing to do with the stream. +func (w *Workflow) StreamCursorsBehind(ctx chasm.Context) bool { + for name, field := range w.StreamCursors { + cursor := field.Get(ctx) + + // An external stream's frontier is whatever it last pushed here: this + // execution cannot read the real one without reaching into another. + if cursor.IsExternal() { + if cursor.Offset() < cursor.KnownHead() { + return true + } + continue + } + + owned, ok := w.Streams[name] + if !ok { + continue + } + state, err := owned.Get(ctx).Snapshot(ctx, struct{}{}) + if err != nil { + continue + } + if cursor.Offset() < state.GetHeadOffset() { + return true + } + } + return false +} + +// CommitStreamCursors folds every staged range into its cursor and returns the +// ranges to record. Called while the workflow task's transaction is open, so +// the advance and the event that carries the range land together. +// +// A cursor with nothing staged is skipped, but a cursor staged with an empty +// range is not: replay has to see that the subscription was live and observed +// nothing. +func (w *Workflow) CommitStreamCursors(mctx chasm.MutableContext) []*streampb.StreamRange { + if w.StreamCursors == nil { + return nil + } + + names := make([]string, 0, len(w.StreamCursors)) + for name := range w.StreamCursors { + names = append(names, name) + } + // Recorded order has to be stable, or replay compares against a different + // event than the one the original execution wrote. + slices.Sort(names) + + var recorded []*streampb.StreamRange + for _, name := range names { + cursor := w.StreamCursors[name].Get(mctx) + from, to, ok := cursor.Commit(mctx) + if !ok { + continue + } + + // Let the floor follow the cursor. Anything below it is recorded as + // consumed, so nothing needs to re-read it. + if field, ok := w.Streams[name]; ok { + field.Get(mctx).AdvanceConsumer(mctx, streamConsumerID(name), to) + } + + recorded = append(recorded, &streampb.StreamRange{ + StreamId: cursor.StreamID(), + FromOffset: from, + ToOffset: to, + }) + } + return recorded +} + func NewWorkflow( _ chasm.MutableContext, msPointer chasm.MSPointer, diff --git a/client/history/client_gen.go b/client/history/client_gen.go index d9cf72f0a5a..e1e5dcc5263 100644 --- a/client/history/client_gen.go +++ b/client/history/client_gen.go @@ -399,6 +399,26 @@ func (c *clientImpl) GetShard( return response, nil } +func (c *clientImpl) GetStreamReplaySlices( + ctx context.Context, + request *historyservice.GetStreamReplaySlicesRequest, + opts ...grpc.CallOption, +) (*historyservice.GetStreamReplaySlicesResponse, error) { + shardID := c.shardIDFromWorkflowID(request.GetNamespaceId(), request.GetExecution().GetWorkflowId()) + var response *historyservice.GetStreamReplaySlicesResponse + op := func(ctx context.Context, client historyservice.HistoryServiceClient) error { + var err error + ctx, cancel := c.createContext(ctx) + defer cancel() + response, err = client.GetStreamReplaySlices(ctx, request, opts...) + return err + } + if err := c.executeWithRedirect(ctx, shardID, op); err != nil { + return nil, err + } + return response, nil +} + func (c *clientImpl) GetWorkflowExecutionHistory( ctx context.Context, request *historyservice.GetWorkflowExecutionHistoryRequest, diff --git a/client/history/metric_client_gen.go b/client/history/metric_client_gen.go index 8d4cad72aa5..78ccfda73a6 100644 --- a/client/history/metric_client_gen.go +++ b/client/history/metric_client_gen.go @@ -317,6 +317,20 @@ func (c *metricClient) GetShard( return c.client.GetShard(ctx, request, opts...) } +func (c *metricClient) GetStreamReplaySlices( + ctx context.Context, + request *historyservice.GetStreamReplaySlicesRequest, + opts ...grpc.CallOption, +) (_ *historyservice.GetStreamReplaySlicesResponse, retError error) { + + metricsHandler, startTime := c.startMetricsRecording(ctx, "HistoryClientGetStreamReplaySlices") + defer func() { + c.finishMetricsRecording(metricsHandler, startTime, retError) + }() + + return c.client.GetStreamReplaySlices(ctx, request, opts...) +} + func (c *metricClient) GetWorkflowExecutionHistory( ctx context.Context, request *historyservice.GetWorkflowExecutionHistoryRequest, diff --git a/client/history/retryable_client_gen.go b/client/history/retryable_client_gen.go index 31e48612095..a06b9118827 100644 --- a/client/history/retryable_client_gen.go +++ b/client/history/retryable_client_gen.go @@ -356,6 +356,21 @@ func (c *retryableClient) GetShard( return resp, err } +func (c *retryableClient) GetStreamReplaySlices( + ctx context.Context, + request *historyservice.GetStreamReplaySlicesRequest, + opts ...grpc.CallOption, +) (*historyservice.GetStreamReplaySlicesResponse, error) { + var resp *historyservice.GetStreamReplaySlicesResponse + op := func(ctx context.Context) error { + var err error + resp, err = c.client.GetStreamReplaySlices(ctx, request, opts...) + return err + } + err := backoff.ThrottleRetryContext(ctx, op, c.policy, c.isRetryable) + return resp, err +} + func (c *retryableClient) GetWorkflowExecutionHistory( ctx context.Context, request *historyservice.GetWorkflowExecutionHistoryRequest, diff --git a/common/rpc/interceptor/logtags/history_service_server_gen.go b/common/rpc/interceptor/logtags/history_service_server_gen.go index 038ccbf9c40..43dcc9e7b17 100644 --- a/common/rpc/interceptor/logtags/history_service_server_gen.go +++ b/common/rpc/interceptor/logtags/history_service_server_gen.go @@ -141,6 +141,13 @@ func (wt *WorkflowTags) extractFromHistoryServiceServerMessage(message any) []ta return nil case *historyservice.GetShardResponse: return nil + case *historyservice.GetStreamReplaySlicesRequest: + return []tag.Tag{ + tag.WorkflowID(r.GetExecution().GetWorkflowId()), + tag.WorkflowRunID(r.GetExecution().GetRunId()), + } + case *historyservice.GetStreamReplaySlicesResponse: + return nil case *historyservice.GetWorkflowExecutionHistoryRequest: return []tag.Tag{ tag.WorkflowID(r.GetRequest().GetExecution().GetWorkflowId()), diff --git a/common/util.go b/common/util.go index 5af646bbf78..9eba316f4b5 100644 --- a/common/util.go +++ b/common/util.go @@ -544,6 +544,7 @@ func CreateMatchingPollWorkflowTaskQueueResponse(historyResponse *historyservice StartedTime: historyResponse.StartedTime, Queries: historyResponse.Queries, Messages: historyResponse.Messages, + StreamSlices: historyResponse.StreamSlices, History: historyResponse.History, NextPageToken: historyResponse.NextPageToken, RawHistory: historyResponse.RawHistoryBytes, diff --git a/proto/internal/temporal/server/api/historyservice/v1/request_response.proto b/proto/internal/temporal/server/api/historyservice/v1/request_response.proto index 0b6879d5ee0..e8833e30cea 100644 --- a/proto/internal/temporal/server/api/historyservice/v1/request_response.proto +++ b/proto/internal/temporal/server/api/historyservice/v1/request_response.proto @@ -14,6 +14,7 @@ import "temporal/api/history/v1/message.proto"; import "temporal/api/nexus/v1/message.proto"; import "temporal/api/protocol/v1/message.proto"; import "temporal/api/query/v1/message.proto"; +import "temporal/api/stream/v1/message.proto"; import "temporal/api/taskqueue/v1/message.proto"; import "temporal/api/workflow/v1/message.proto"; import "temporal/api/workflowservice/v1/request_response.proto"; @@ -128,6 +129,22 @@ message StartWorkflowExecutionResponse { string first_execution_run_id = 7; } +// Asks for the stream ranges a workflow's completed tasks recorded, re-read from +// their streams, for a task that is built without RecordWorkflowTaskStarted. +// A query dispatched straight through matching is the one such task. +message GetStreamReplaySlicesRequest { + option (routing).workflow_id = "execution.workflow_id"; + + string namespace_id = 1; + temporal.api.common.v1.WorkflowExecution execution = 2; +} + +message GetStreamReplaySlicesResponse { + // Every slice is tagged with the completed event that recorded its range. + // Empty when the workflow consumes no stream. + repeated temporal.api.stream.v1.StreamSlice stream_slices = 1; +} + message GetMutableStateRequest { option (routing).workflow_id = "execution.workflow_id"; @@ -174,6 +191,11 @@ message GetMutableStateResponse { // Transient or speculative workflow task events which are not yet persisted in the history. // These events should be appended to the history when it is returned to the worker. temporal.server.api.history.v1.TransientWorkflowTaskInfo transient_or_speculative_tasks = 26; + // Whether this workflow holds a cursor into any stream. Matching builds a + // query task without RecordWorkflowTaskStarted, so it has to ask History for + // the ranges the history records, and almost no workflow has any. This says + // which ones do, so the extra call is only made for those. + bool consumes_streams = 27; } message PollMutableStateRequest { @@ -307,6 +329,10 @@ message RecordWorkflowTaskStartedResponse { // as raw_history_bytes (field 21) will be the only field used. temporal.api.history.v1.History raw_history = 20 [deprecated = true]; repeated bytes raw_history_bytes = 21; + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + repeated temporal.api.stream.v1.StreamSlice stream_slices = 22; } // RecordWorkflowTaskStartedResponseWithRawHistory is wire-compatible with RecordWorkflowTaskStartedResponse. @@ -351,6 +377,10 @@ message RecordWorkflowTaskStartedResponseWithRawHistory { // instead of a proto-decoded History. This avoids matching service having to decode history. repeated bytes raw_history = 20 [deprecated = true]; repeated bytes raw_history_bytes = 21; + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + repeated temporal.api.stream.v1.StreamSlice stream_slices = 22; } message RecordActivityTaskStartedRequest { diff --git a/proto/internal/temporal/server/api/historyservice/v1/service.proto b/proto/internal/temporal/server/api/historyservice/v1/service.proto index fcfb7c0bc04..8a0d712f3e7 100644 --- a/proto/internal/temporal/server/api/historyservice/v1/service.proto +++ b/proto/internal/temporal/server/api/historyservice/v1/service.proto @@ -32,6 +32,13 @@ service HistoryService { option (temporal.server.api.common.v1.api_category).category = API_CATEGORY_LONG_POLL; } + // Returns the stream ranges the workflow's completed tasks recorded, re-read + // from their streams and tagged with the event that recorded each, so a task + // built without RecordWorkflowTaskStarted can still replay a consumer. + rpc GetStreamReplaySlices(GetStreamReplaySlicesRequest) returns (GetStreamReplaySlicesResponse) { + option (temporal.server.api.common.v1.api_category).category = API_CATEGORY_STANDARD; + } + // Reset the sticky task queue related information in mutable state of a given workflow. // Things cleared are: // 1. StickyTaskQueue diff --git a/proto/internal/temporal/server/api/matchingservice/v1/request_response.proto b/proto/internal/temporal/server/api/matchingservice/v1/request_response.proto index 33bae6d5c71..afe058cef5b 100644 --- a/proto/internal/temporal/server/api/matchingservice/v1/request_response.proto +++ b/proto/internal/temporal/server/api/matchingservice/v1/request_response.proto @@ -12,6 +12,7 @@ import "temporal/api/history/v1/message.proto"; import "temporal/api/nexus/v1/message.proto"; import "temporal/api/protocol/v1/message.proto"; import "temporal/api/query/v1/message.proto"; +import "temporal/api/stream/v1/message.proto"; import "temporal/api/taskqueue/v1/message.proto"; import "temporal/api/worker/v1/message.proto"; import "temporal/api/workflowservice/v1/request_response.proto"; @@ -62,6 +63,10 @@ message PollWorkflowTaskQueueResponse { // Raw history bytes sent from matching service when history.sendRawHistoryBetweenInternalServices is enabled. // Matching client will deserialize this to History when it receives the response. temporal.api.history.v1.History raw_history = 22; + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + repeated temporal.api.stream.v1.StreamSlice stream_slices = 23; } // PollWorkflowTaskQueueResponseWithRawHistory is wire-compatible with PollWorkflowTaskQueueResponse. @@ -112,6 +117,10 @@ message PollWorkflowTaskQueueResponseWithRawHistory { // When matching client deserializes this to PollWorkflowTaskQueueResponse, this field // will be automatically deserialized to the raw_history field as History. repeated bytes raw_history = 22; + // Slices of the streams this Workflow is consuming, each covering the offset + // range the task may deliver. Payloads ride here and never enter History; + // only the consumed range is recorded, on WorkflowTaskCompleted. + repeated temporal.api.stream.v1.StreamSlice stream_slices = 23; } message PollActivityTaskQueueRequest { diff --git a/service/frontend/workflow_handler.go b/service/frontend/workflow_handler.go index b8cf8d22509..4f9c0043ecb 100644 --- a/service/frontend/workflow_handler.go +++ b/service/frontend/workflow_handler.go @@ -1200,6 +1200,7 @@ func (wh *WorkflowHandler) PollWorkflowTaskQueue(ctx context.Context, request *w StartedTime: matchingResp.StartedTime, Queries: matchingResp.Queries, Messages: matchingResp.Messages, + StreamSlices: matchingResp.StreamSlices, PollerScalingDecision: matchingResp.PollerScalingDecision, }, nil } diff --git a/service/history/api/get_workflow_util.go b/service/history/api/get_workflow_util.go index 27060b76a5e..9eebbbfbedb 100644 --- a/service/history/api/get_workflow_util.go +++ b/service/history/api/get_workflow_util.go @@ -415,5 +415,6 @@ func MutableStateToGetResponse( TransitionHistory: transitionhistory.CopyVersionedTransitions(mutableState.GetExecutionInfo().TransitionHistory), VersioningInfo: common.CloneProto(mutableState.GetExecutionInfo().VersioningInfo), TransientOrSpeculativeTasks: transientOrSpeculativeTasks, + ConsumesStreams: mutableState.ConsumesStreams(), }, nil } diff --git a/service/history/api/recordworkflowtaskstarted/api.go b/service/history/api/recordworkflowtaskstarted/api.go index e88a3c6c9c3..777cf5d94cd 100644 --- a/service/history/api/recordworkflowtaskstarted/api.go +++ b/service/history/api/recordworkflowtaskstarted/api.go @@ -51,6 +51,11 @@ func Invoke( var workflowKey definition.WorkflowKey var resp *historyservice.RecordWorkflowTaskStartedResponseWithRawHistory + var streamAddresses map[string]streamOrigin + // Set when a stream range the task depends on cannot be served. The task + // is failed inside the transaction, so the failure has to be persisted + // and reported to matching afterwards rather than returned as the error. + var streamFailure *rangeUnavailable err = api.GetAndUpdateWorkflowWithNew( ctx, @@ -102,6 +107,19 @@ func Invoke( if err != nil { return nil, err } + // Redelivers whatever range is already staged, so a + // duplicate of the same request hands back the same slice. + resp.StreamSlices, streamAddresses, err = deliverStreamSlices( + ctx, shardContext, mutableState, workflowTask) + if errors.As(err, &streamFailure) { + if err := failTaskForStreams(mutableState, workflowTask, streamFailure); err != nil { + return nil, err + } + return updateAction, nil + } + if err != nil { + return nil, err + } updateAction.Noop = true return updateAction, nil } @@ -238,6 +256,19 @@ func Invoke( return nil, err } + resp.StreamSlices, streamAddresses, err = deliverStreamSlices( + ctx, shardContext, mutableState, workflowTask) + if errors.As(err, &streamFailure) { + if err := failTaskForStreams(mutableState, workflowTask, streamFailure); err != nil { + return nil, err + } + updateAction.Noop = false + return updateAction, nil + } + if err != nil { + return nil, err + } + return updateAction, nil }, nil, @@ -248,6 +279,11 @@ func Invoke( if err != nil { return nil, err } + if streamFailure != nil { + // The failure is in History and the next attempt is scheduled, so this + // task is stale; matching drops it rather than retrying it. + return nil, serviceerrors.NewObsoleteMatchingTask(streamFailure.Error()) + } maxHistoryPageSize := int32(config.HistoryMaxPageSize(namespaceEntry.Name().String())) err = setHistoryForRecordWfTaskStartedResp( @@ -264,9 +300,65 @@ func Invoke( if err != nil { return nil, err } + + // After the history is attached, because the ranges to re-supply are read + // out of the events being sent. + err = attachReplaySlices(ctx, shardContext, workflowKey, namespaceEntry.Name().String(), + streamAddresses, maxHistoryPageSize, resp) + if errors.As(err, &streamFailure) { + // The task is already started and its lock released, so failing it is + // a transaction of its own. + if err := failStartedTaskForStreams( + ctx, shardContext, workflowConsistencyChecker, workflowKey, + scheduledEventID, requestID, streamFailure, + ); err != nil { + return nil, err + } + return nil, serviceerrors.NewObsoleteMatchingTask(streamFailure.Error()) + } + if err != nil { + return nil, err + } return resp, nil } +// failStartedTaskForStreams fails a task that started but cannot be replayed, +// provided it is still the task this request started. +func failStartedTaskForStreams( + ctx context.Context, + shardContext historyi.ShardContext, + workflowConsistencyChecker api.WorkflowConsistencyChecker, + workflowKey definition.WorkflowKey, + scheduledEventID int64, + requestID string, + cause *rangeUnavailable, +) error { + return api.GetAndUpdateWorkflowWithNew( + ctx, + nil, + workflowKey, + func(workflowLease api.WorkflowLease) (*api.UpdateWorkflowAction, error) { + mutableState := workflowLease.GetMutableState() + if !mutableState.IsWorkflowExecutionRunning() { + return nil, consts.ErrWorkflowCompleted + } + workflowTask := mutableState.GetWorkflowTaskByID(scheduledEventID) + if workflowTask == nil || workflowTask.RequestID != requestID || + workflowTask.StartedEventID == common.EmptyEventID { + // Something else already resolved the task. + return &api.UpdateWorkflowAction{Noop: true}, nil + } + if err := failTaskForStreams(mutableState, workflowTask, cause); err != nil { + return nil, err + } + return &api.UpdateWorkflowAction{}, nil + }, + nil, + shardContext, + workflowConsistencyChecker, + ) +} + func setHistoryForRecordWfTaskStartedResp( ctx context.Context, shardContext historyi.ShardContext, @@ -400,6 +492,7 @@ func CreateRecordWorkflowTaskStartedResponse( Queries: rawResp.Queries, Clock: rawResp.Clock, Messages: rawResp.Messages, + StreamSlices: rawResp.StreamSlices, Version: rawResp.Version, NextPageToken: rawResp.NextPageToken, }, nil diff --git a/service/history/api/recordworkflowtaskstarted/stream_routing.go b/service/history/api/recordworkflowtaskstarted/stream_routing.go index 64a3447462b..705cab43f98 100644 --- a/service/history/api/recordworkflowtaskstarted/stream_routing.go +++ b/service/history/api/recordworkflowtaskstarted/stream_routing.go @@ -3,8 +3,13 @@ package recordworkflowtaskstarted import ( "context" + commonpb "go.temporal.io/api/common/v1" + enumspb "go.temporal.io/api/enums/v1" + "go.temporal.io/api/serviceerror" + "go.temporal.io/server/chasm" "go.temporal.io/server/chasm/lib/stream" streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + "google.golang.org/protobuf/proto" ) type streamClientContextKey struct{} @@ -40,3 +45,70 @@ func WithRoutedDeadline(ctx context.Context) (context.Context, context.CancelFun func WithRoutedBudget(ctx context.Context) (context.Context, context.CancelFunc) { return context.WithTimeout(ctx, stream.RoutedSetBudget) } + +func readExternalWindow( + ctx context.Context, + namespaceID, streamID string, + from, to int64, +) (stream.Window, error) { + if to <= from { + return stream.Window{To: from}, nil + } + limit := int32(min(to-from, int64(stream.DefaultMaxMessagesPerPoll))) + client, ok := StreamClientFromContext(ctx) + if !ok { + // Hand-built engines in component tests have no service client. + return chasm.ReadComponent(ctx, + chasm.NewComponentRef[*stream.Stream](chasm.ExecutionKey{ + NamespaceID: namespaceID, + BusinessID: streamID, + }), + (*stream.Stream).ReadWindow, + stream.WindowRequest{From: from, MaxMessages: limit}) + } + + callCtx, cancel := WithRoutedDeadline(ctx) + defer cancel() + response, err := client.PollMessages(callCtx, &streamlib.PollMessagesRequest{ + NamespaceId: namespaceID, + FrontendRequest: &streamlib.PollMessagesInput{ + StreamId: streamID, FromOffset: from, MaxMessages: limit, + }, + }) + if err != nil { + return stream.Window{}, err + } + out := response.GetFrontendResponse() + if out == nil || out.GetNextOffset() < from || out.GetNextOffset() > to || + out.GetNextOffset() > out.GetHeadOffset() || + int64(len(out.GetRecords())) != out.GetNextOffset()-from { + return stream.Window{}, serviceerror.NewDataLoss( + "stream read returned an invalid contiguous range") + } + for index, message := range out.GetRecords() { + if message == nil || message.GetOffset() != from+int64(index) { + return stream.Window{}, serviceerror.NewDataLoss( + "stream read returned a missing or reordered offset") + } + } + w := stream.Window{ + State: &streamlib.StreamState{ + HeadOffset: out.GetHeadOffset(), + Closed: out.GetClosed(), + CloseReason: out.GetCloseReason(), + }, + To: out.GetNextOffset(), + Limit: int(limit), + RunID: out.GetRunId(), + } + if len(out.GetRecords()) == 0 { + return w, nil + } + data, err := proto.Marshal(&streamlib.StreamRecordBatch{Records: out.GetRecords()}) + if err != nil { + return stream.Window{}, err + } + w.Blobs = []*commonpb.DataBlob{{EncodingType: enumspb.ENCODING_TYPE_PROTO3, Data: data}} + w.Starts = []int64{from} + return w, nil +} diff --git a/service/history/api/recordworkflowtaskstarted/stream_routing_test.go b/service/history/api/recordworkflowtaskstarted/stream_routing_test.go new file mode 100644 index 00000000000..28589f344a5 --- /dev/null +++ b/service/history/api/recordworkflowtaskstarted/stream_routing_test.go @@ -0,0 +1,163 @@ +package recordworkflowtaskstarted + +import ( + "context" + "errors" + "testing" + + "github.com/stretchr/testify/require" + commonpb "go.temporal.io/api/common/v1" + "go.temporal.io/api/serviceerror" + streampb "go.temporal.io/api/stream/v1" + "go.temporal.io/server/chasm" + "go.temporal.io/server/chasm/lib/stream" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + chasmworkflow "go.temporal.io/server/chasm/lib/workflow" + "go.temporal.io/server/common/definition" + "go.uber.org/mock/gomock" + "google.golang.org/grpc" +) + +type routedStreamClient struct { + streamlib.StreamServiceClient + poll func(context.Context, *streamlib.PollMessagesRequest) (*streamlib.PollMessagesResponse, error) +} + +func (c *routedStreamClient) PollMessages( + ctx context.Context, request *streamlib.PollMessagesRequest, _ ...grpc.CallOption, +) (*streamlib.PollMessagesResponse, error) { + return c.poll(ctx, request) +} + +func TestExternalStreamLiveAndReplayUseRoutedPayloadRead(t *testing.T) { + for _, replay := range []bool{false, true} { + t.Run(map[bool]string{false: "live", true: "replay"}[replay], func(t *testing.T) { + calls := 0 + client := &routedStreamClient{poll: func( + ctx context.Context, req *streamlib.PollMessagesRequest, + ) (*streamlib.PollMessagesResponse, error) { + calls++ + require.Equal(t, "namespace-id", req.GetNamespaceId()) + require.Equal(t, "remote-source", req.GetFrontendRequest().GetStreamId()) + require.EqualValues(t, 4, req.GetFrontendRequest().GetFromOffset()) + require.EqualValues(t, 2, req.GetFrontendRequest().GetMaxMessages()) + require.False(t, req.GetFrontendRequest().GetWaitNewMessages()) + require.Empty(t, req.GetFrontendRequest().GetTopics()) + return &streamlib.PollMessagesResponse{FrontendResponse: &streamlib.PollMessagesOutput{ + NextOffset: 6, HeadOffset: 9, + Records: []*streamlib.StreamRecord{ + { + Offset: 4, + Kind: streampb.STREAM_RECORD_KIND_DATA, + Body: &commonpb.Payload{Data: []byte("a")}, + }, + { + Offset: 5, + Kind: streampb.STREAM_RECORD_KIND_DATA, + Body: &commonpb.Payload{Data: []byte("b")}, + }, + }, + }}, nil + }} + // No local engine is installed, so a read that resolved the source + // through the local controller instead of the routed client fails. + ctx := WithStreamClient(context.Background(), client) + var window stream.Window + var err error + if replay { + window, err = readRecordedRange(ctx, + definition.NewWorkflowKey("namespace-id", "consumer", "consumer-run"), + streamOrigin{external: true}, "remote-source", 4, 6) + } else { + window, err = readWindowFor(ctx, nil, nil, "namespace-id", "input", true, "remote-source", 4, 6) + } + require.NoError(t, err) + require.Equal(t, 1, calls) + messages, next, err := stream.CollectRecords( + window.Blobs, window.Starts, 4, window.To, window.Limit, nil) + require.NoError(t, err) + require.EqualValues(t, 6, next) + require.Len(t, messages, 2) + require.Equal(t, []byte("a"), messages[0].GetBody().GetData()) + require.Equal(t, []byte("b"), messages[1].GetBody().GetData()) + }) + } +} + +func TestExternalStreamRoutedReadRejectsCorruptOrExpandedRange(t *testing.T) { + cases := map[string]*streamlib.PollMessagesOutput{ + "missing-response": nil, + "skipped-offset": { + NextOffset: 6, HeadOffset: 9, + Records: []*streamlib.StreamRecord{{Offset: 4}, {Offset: 6}}, + }, + "short-count": { + NextOffset: 6, HeadOffset: 9, + Records: []*streamlib.StreamRecord{{Offset: 4}}, + }, + "past-requested-frontier": { + NextOffset: 7, HeadOffset: 9, + Records: []*streamlib.StreamRecord{{Offset: 4}, {Offset: 5}, {Offset: 6}}, + }, + "past-committed-head": { + NextOffset: 6, HeadOffset: 5, + Records: []*streamlib.StreamRecord{{Offset: 4}, {Offset: 5}}, + }, + } + for name, response := range cases { + t.Run(name, func(t *testing.T) { + client := &routedStreamClient{poll: func( + context.Context, *streamlib.PollMessagesRequest, + ) (*streamlib.PollMessagesResponse, error) { + return &streamlib.PollMessagesResponse{FrontendResponse: response}, nil + }} + ctx := WithStreamClient(context.Background(), client) + _, err := readExternalWindow(ctx, "ns", "source", 4, 6) + var integrity *serviceerror.DataLoss + require.ErrorAs(t, err, &integrity) + }) + } +} + +func TestExternalStreamRoutedReadPropagatesSourceFailure(t *testing.T) { + want := errors.New("source shard unavailable") + client := &routedStreamClient{poll: func( + context.Context, *streamlib.PollMessagesRequest, + ) (*streamlib.PollMessagesResponse, error) { + return nil, want + }} + _, err := readExternalWindow(WithStreamClient(context.Background(), client), "ns", "source", 4, 6) + require.ErrorIs(t, err, want) +} + +func TestOwnedLiveStreamNeverReentersThroughRoutedClient(t *testing.T) { + client := &routedStreamClient{poll: func( + context.Context, *streamlib.PollMessagesRequest, + ) (*streamlib.PollMessagesResponse, error) { + t.Fatal("owned stream read re-entered the consumer through an RPC") + return nil, nil + }} + window, err := readWindowFor(WithStreamClient(context.Background(), client), nil, + &chasmworkflow.Workflow{}, "ns", "owned", false, "owned", 4, 6) + require.NoError(t, err) + require.EqualValues(t, 4, window.To) +} + +func TestOwnedReplayPinsConsumerRun(t *testing.T) { + engine := chasm.NewMockEngine(gomock.NewController(t)) + engine.EXPECT().ReadComponent(gomock.Any(), gomock.Any(), gomock.Any()).DoAndReturn( + func( + _ context.Context, + ref chasm.ComponentRef, + _ func(chasm.Context, chasm.Component) error, + _ ...chasm.TransitionOption, + ) error { + require.Equal(t, "consumer-run", ref.RunID) + require.Equal(t, "consumer", ref.BusinessID) + return nil + }) + _, err := readRecordedRange(chasm.NewEngineContext(context.Background(), engine), + definition.NewWorkflowKey("ns", "consumer", "consumer-run"), + streamOrigin{name: "owned"}, "owned", 4, 6) + require.NoError(t, err) +} diff --git a/service/history/api/recordworkflowtaskstarted/stream_slices.go b/service/history/api/recordworkflowtaskstarted/stream_slices.go new file mode 100644 index 00000000000..5adc57dcbb2 --- /dev/null +++ b/service/history/api/recordworkflowtaskstarted/stream_slices.go @@ -0,0 +1,802 @@ +package recordworkflowtaskstarted + +import ( + "context" + "errors" + "fmt" + "slices" + + commonpb "go.temporal.io/api/common/v1" + enumspb "go.temporal.io/api/enums/v1" + historypb "go.temporal.io/api/history/v1" + "go.temporal.io/api/serviceerror" + streampb "go.temporal.io/api/stream/v1" + enumsspb "go.temporal.io/server/api/enums/v1" + "go.temporal.io/server/api/historyservice/v1" + persistencespb "go.temporal.io/server/api/persistence/v1" + "go.temporal.io/server/chasm" + "go.temporal.io/server/chasm/lib/stream" + chasmworkflow "go.temporal.io/server/chasm/lib/workflow" + "go.temporal.io/server/common" + "go.temporal.io/server/common/definition" + "go.temporal.io/server/common/failure" + "go.temporal.io/server/common/locks" + "go.temporal.io/server/common/persistence" + "go.temporal.io/server/common/persistence/serialization" + "go.temporal.io/server/service/history/api" + "go.temporal.io/server/service/history/consts" + historyi "go.temporal.io/server/service/history/interfaces" + "go.temporal.io/server/service/history/workflow" + "google.golang.org/protobuf/proto" +) + +// rangeUnavailable says a stream range this consumer depends on can no longer be +// served: the stream was truncated or deleted past it, or re-supplying it would +// exceed what one response may carry. Retrying the request would only ask the +// same stream again, so the workflow task is failed with it instead. +type rangeUnavailable struct { + msg string +} + +func (e *rangeUnavailable) Error() string { + return e.msg +} + +func unavailablef(format string, args ...any) error { + return &rangeUnavailable{msg: fmt.Sprintf(format, args...)} +} + +// unavailableIfGone tells a read failure that means the range is gone for good +// from one worth retrying. A shard that is moving or a store that timed out is +// the second kind and keeps its own error. +func unavailableIfGone(err error, format string, args ...any) error { + var precondition *serviceerror.FailedPrecondition + var notFound *serviceerror.NotFound + if errors.As(err, &precondition) || errors.As(err, ¬Found) { + return unavailablef(format+": %v", append(args, err)...) + } + return err +} + +// failTaskForStreams records why the task cannot be started, and either +// schedules the next attempt or ends the workflow. +// +// The event is what an operator sees; a bare error to matching would only make +// the task come back. One retry is worth having, because a shard that was +// moving can serve the range on the next attempt. A second failure with the +// same cause is not a race: the range is gone or the re-supply is over its +// budget, and every further attempt redoes the whole page walk, fails again, +// and grows History until the size limit terminates the workflow for an +// unrelated reason. Terminating here says what actually happened. +func failTaskForStreams( + ms historyi.MutableState, + workflowTask *historyi.WorkflowTaskInfo, + cause *rangeUnavailable, +) error { + repeated := lastFailureWasStreamRange(ms) + if _, err := ms.AddWorkflowTaskFailedEvent( + workflowTask, + enumspb.WORKFLOW_TASK_FAILED_CAUSE_STREAM_RANGE_UNAVAILABLE, + failure.NewServerFailure(cause.Error(), true), + consts.IdentityHistoryService, + nil, + "", + "", + "", + 0, + ); err != nil { + return err + } + ms.FlushBufferedEvents() + if repeated { + _, err := ms.AddWorkflowExecutionTerminatedEvent( + cause.Error(), nil, consts.IdentityHistoryService, false, nil) + return err + } + return workflow.ScheduleWorkflowTask(ms) +} + +// lastFailureWasStreamRange reports whether the workflow task before this one +// failed for the same reason, which is what tells a retryable hiccup from a +// range that is not coming back. +func lastFailureWasStreamRange(ms historyi.MutableState) bool { + recorded, ok := ms.GetExecutionInfo().GetLastWorkflowTaskFailure().(*persistencespb.WorkflowExecutionInfo_LastWorkflowTaskFailureCause) + return ok && recorded.LastWorkflowTaskFailureCause == + enumspb.WORKFLOW_TASK_FAILED_CAUSE_STREAM_RANGE_UNAVAILABLE +} + +// streamOrigin says where a subscribed stream lives, which decides how its +// payload is read: an external stream from its own execution, an owned one +// from the consumer's. +type streamOrigin struct { + external bool + // The name the consumer knows the stream by, which is how an owned one is + // found on the consumer's own component. + name string + + // Where the subscription began, and how far its completed tasks have + // committed. Together they say exactly which offsets replay owes the + // worker, so a re-supply that comes up short can be detected instead of + // silently handing the workflow less than it originally saw. + start int64 + committed int64 +} + +// streamOrigins describes every stream the workflow consumes from a read-only +// view of its component, for a task that is built without delivering anything +// and so has no other way of learning what a cold replay owes it. +func streamOrigins( + ctx context.Context, + ms historyi.MutableState, +) (map[string]streamOrigin, error) { + if !ms.HasChasmWorkflowComponent() { + return nil, nil + } + wf, chasmCtx, err := ms.ChasmWorkflowComponentReadOnly(ctx) + if err != nil { + return nil, err + } + if len(wf.StreamCursors) == 0 { + return nil, nil + } + addresses := make(map[string]streamOrigin, len(wf.StreamCursors)) + for name, field := range wf.StreamCursors { + cursor := field.Get(chasmCtx) + addresses[cursor.StreamID()] = streamOrigin{ + external: cursor.IsExternal(), + name: name, + start: cursor.StartOffset(), + committed: cursor.Offset(), + } + } + return addresses, nil +} + +// deliveryFrontier is the offset a delivery clips to. For a stream this +// execution owns it is read directly; for one in another execution it is +// whatever that stream last pushed here, because reading the real value would +// mean reaching across executions while this transaction is open. +func deliveryFrontier( + chasmCtx chasm.Context, + wf *chasmworkflow.Workflow, + name string, + cursor *stream.Cursor, +) (int64, error) { + if cursor.IsExternal() { + return cursor.KnownHead(), nil + } + field, ok := wf.Streams[name] + if !ok { + // Reported as an unavailable range rather than a bare error, so the + // task fails once with a cause an operator can read instead of coming + // back from matching forever. A standby rebuilt by event-based + // replication lands here: it applies consumed ranges into owned + // cursors, and the stream itself does not replicate that way. + return 0, unavailablef( + "workflow consumes stream %q, which it neither owns nor subscribed to externally", + name) + } + state, err := field.Get(chasmCtx).Snapshot(chasmCtx, struct{}{}) + if err != nil { + return 0, err + } + + // A consumer that fell behind a truncating stream is told so rather than + // handed the rest and left with a hole it cannot see. The floor protects + // an active consumer, so reaching this means the subscription was released + // and the stream moved on. + if cursor.Offset() < state.GetBaseOffset() { + return 0, unavailablef( + "stream %q was truncated past this consumer: it is at offset %d and the stream "+ + "now starts at %d", name, cursor.Offset(), state.GetBaseOffset()) + } + return state.GetHeadOffset(), nil +} + +// readDeliverable reads the next run of a stream for the task being started +// and returns it with the run id of the execution that holds the stream. +func readDeliverable( + ctx context.Context, + chasmCtx chasm.Context, + wf *chasmworkflow.Workflow, + namespaceID string, + name string, + cursor *stream.Cursor, + from, to int64, + limits stream.Limits, +) ([]*streampb.StreamRecord, int64, string, error) { + if to <= from { + return nil, from, "", nil + } + w, err := readWindowFor(ctx, chasmCtx, wf, namespaceID, name, cursor.IsExternal(), + cursor.StreamID(), from, to) + if err != nil { + return nil, 0, "", unavailableIfGone(err, + "stream %q no longer holds offsets [%d,%d) this consumer is due", + cursor.StreamID(), from, to) + } + // The collected run is contiguous from `from`, so the byte cap recomputes + // the same end offset the read would have reported. + collected, _, err := stream.CollectRecords( + w.Blobs, w.Starts, from, w.To, limits.MaxConsumeItemsPerTask, nil) + if err != nil { + return nil, 0, "", err + } + // Cap before converting: the byte budget applies to the run as stored, and + // trimming decides how far the recorded range reaches. + collected, readTo := stream.CapByBytes(collected, from, limits.MaxConsumeBytesPerTask) + return stream.ToAPIRecords(collected), readTo, w.RunID, nil +} + +// readWindowFor reads a range from whichever component holds it. +// +// Standalone external streams use the routed service client. That RPC only +// reads the source execution and never calls back into the locked consumer. +// Owned streams must use the already-loaded component: re-entering this +// execution through an RPC would contend with the lock already held. +func readWindowFor( + ctx context.Context, + chasmCtx chasm.Context, + wf *chasmworkflow.Workflow, + namespaceID string, + name string, + external bool, + streamID string, + from, to int64, +) (stream.Window, error) { + req := stream.WindowRequest{From: from, MaxMessages: int32(to - from)} + if !external { + s := wf.OwnedStream(chasmCtx, name) + if s == nil { + return stream.Window{To: from}, nil + } + return s.ReadWindow(chasmCtx, req) + } + return readExternalWindow(ctx, namespaceID, streamID, from, to) +} + +// DeliverStreamSlices hands the next range to a task built outside this +// package. The inline task returned by RespondWorkflowTaskCompleted is built by +// its own handler, so without this a subscribed workflow gets no data on the +// dispatch path every current SDK asks for. +// +// Only the live range. That task is always sticky, so the worker still holds +// the execution and has no ranges to replay. +func DeliverStreamSlices( + ctx context.Context, + shardContext historyi.ShardContext, + ms historyi.MutableState, + workflowTask *historyi.WorkflowTaskInfo, +) ([]*streampb.StreamSlice, error) { + live, _, err := deliverStreamSlices(ctx, shardContext, ms, workflowTask) + return live, err +} + +// deliverStreamSlices hands the next range of every stream this workflow +// consumes to the task being started, and stages that range on the cursor so +// the event closing the task can record what was delivered. +// +// The payload read runs with the workflow lock held. That is the price of +// deciding a range and staging it in one transaction: staged first and read +// after, a failed read would leave a range that the worker never received but +// that the completion would still record as consumed. +func deliverStreamSlices( + ctx context.Context, + shardContext historyi.ShardContext, + ms historyi.MutableState, + workflowTask *historyi.WorkflowTaskInfo, +) ([]*streampb.StreamSlice, map[string]streamOrigin, error) { + // A speculative task may be thrown away, and a discarded one writes no + // completed event, so nothing would commit the cursor. The range would then + // be handed out again on the next task while the worker's in-memory + // workflow had already consumed it, and live execution would see the + // records twice where replay sees them once. A workflow with records + // waiting gets a normal task of its own, which is where they belong. + if workflowTask != nil && workflowTask.Type == enumsspb.WORKFLOW_TASK_TYPE_SPECULATIVE { + return nil, nil, nil + } + if !ms.HasChasmWorkflowComponent() { + return nil, nil, nil + } + // Read-only first. Reaching the component mutably marks it dirty, and a + // workflow with no subscription should not pay a node in its transaction + // for every task it runs. + if readOnly, _, err := ms.ChasmWorkflowComponentReadOnly(ctx); err != nil { + return nil, nil, err + } else if len(readOnly.StreamCursors) == 0 { + return nil, nil, nil + } + + wf, chasmCtx, err := ms.ChasmWorkflowComponent(ctx) + if err != nil { + return nil, nil, err + } + + names := make([]string, 0, len(wf.StreamCursors)) + for name := range wf.StreamCursors { + names = append(names, name) + } + // Delivery order has to be stable, because the completion records these + // ranges in the order they were produced. + slices.Sort(names) + + limits := shardContext.GetConfig().Stream.LimitsFor(ms.GetNamespaceEntry().Name().String()) + maxItems := limits.MaxConsumeItemsPerTask + consumer := ms.GetWorkflowKey() + + // One budget over every routed read this task makes, since a workflow may + // consume as many streams as the subscription limit allows and the lock is + // held throughout. + ctx, cancelBudget := WithRoutedBudget(ctx) + defer cancelBudget() + + slicesOut := make([]*streampb.StreamSlice, 0, len(names)) + addresses := make(map[string]streamOrigin, len(names)) + for _, name := range names { + cursor := wf.StreamCursors[name].Get(chasmCtx) + + head, err := deliveryFrontier(chasmCtx, wf, name, cursor) + if err != nil { + return nil, nil, err + } + + // A range already staged is redelivered unchanged. The same task can be + // started more than once, and letting the second attempt pick up newer + // data would hand the workflow a different range than the one the + // completion is going to record. + from, to, restaged := cursor.Pending() + if !restaged { + from = cursor.Offset() + // Clip to the frontier, which is the committed head for an owned + // stream and the last pushed head for an external one. + to = min(from+int64(maxItems), head) + } + + records, next, ownerRunID, err := readDeliverable( + ctx, chasmCtx, wf, consumer.NamespaceID, name, cursor, from, to, limits) + if err != nil { + return nil, nil, err + } + if !cursor.IsExternal() { + ownerRunID = consumer.RunID + } + + if restaged { + // The staged range is the one the completion will record, so the + // worker has to be handed exactly that. A re-read that comes back + // short would otherwise deliver less than history claims was + // consumed, and replay would then disagree with the original run. + if next != to { + return nil, nil, serviceerror.NewInternalf( + "stream %q staged range [%d,%d) re-read as [%d,%d)", + cursor.StreamID(), from, to, from, next) + } + } else if err := cursor.StagePending(chasmCtx, from, next); err != nil { + return nil, nil, err + } + + // Attached even when empty. A task that saw nothing still has to record + // that it saw nothing, and the slice is what the completion reads. + slicesOut = append(slicesOut, &streampb.StreamSlice{ + StreamId: cursor.StreamID(), + RunId: ownerRunID, + FromOffset: from, + ToOffset: next, + Records: records, + }) + addresses[cursor.StreamID()] = streamOrigin{ + external: cursor.IsExternal(), + name: name, + start: cursor.StartOffset(), + committed: cursor.Offset(), + } + } + return slicesOut, addresses, nil +} + +// ownedRange names a range of a stream the consumer owns. +type ownedRange struct { + name string + req stream.WindowRequest +} + +// readRecordedRange re-supplies a range a completed task recorded. +// +// It runs after the execution lock is released, so the consumer's own component +// is read back through the engine. Standalone sources use the routed service +// client, since their shards can belong to a different history host. +func readRecordedRange( + ctx context.Context, + consumer definition.WorkflowKey, + origin streamOrigin, + streamID string, + from, to int64, +) (stream.Window, error) { + req := stream.WindowRequest{From: from, MaxMessages: int32(to - from)} + if origin.external { + return readExternalWindow(ctx, consumer.NamespaceID, streamID, from, to) + } + return chasm.ReadComponent(ctx, + chasm.NewComponentRef[*chasmworkflow.Workflow](chasm.ExecutionKey{ + NamespaceID: consumer.NamespaceID, + BusinessID: consumer.WorkflowID, + RunID: consumer.RunID, + }), + func(wf *chasmworkflow.Workflow, cctx chasm.Context, r ownedRange) (stream.Window, error) { + s := wf.OwnedStream(cctx, r.name) + if s == nil { + return stream.Window{To: r.req.From}, nil + } + return s.ReadWindow(cctx, r.req) + }, + ownedRange{name: origin.name, req: req}) +} + +// replaySupply collects what one cold replay owes the worker: the ranges every +// completed task recorded, re-read from their streams, within one response's +// budget. +type replaySupply struct { + ctx context.Context + consumer definition.WorkflowKey + addresses map[string]streamOrigin + limits stream.Limits + + records int + bytes int + // How far the recorded ranges reach, per stream, so the coverage check + // can tell a complete re-supply from a short one. + reached map[string]int64 + slices []*streampb.StreamSlice +} + +// attachReplaySlices re-supplies the payloads for ranges that earlier workflow +// tasks recorded, keyed by the event that recorded each one. +// +// History holds offsets and never payloads, which is the property the whole +// design rests on. The cost lands here: a worker replaying from History has to +// be handed the same bytes those tasks were given, and the only place they +// exist is the stream itself. The response field alone cannot carry this, +// because it is built once per delivery while a cache miss replays every prior +// task, so each range travels with the id of the event that recorded it. +// +// The response carries one page of history. The recording events of a consumer +// that has lived longer than a page are on the pages after it, so every page is +// read here. Empty ranges are recorded too and have to travel with their +// events, which is why the walk cannot stop once the committed offset is found. +func attachReplaySlices( + ctx context.Context, + shardContext historyi.ShardContext, + consumer definition.WorkflowKey, + namespaceName string, + addresses map[string]streamOrigin, + pageSize int32, + resp *historyservice.RecordWorkflowTaskStartedResponseWithRawHistory, +) error { + // Only a workflow with a live subscription has anything to re-supply, and + // that is exactly when delivery attached a slice for the current task. So + // this costs nothing for every other workflow. + if len(addresses) == 0 { + return nil + } + + // A sticky task means the worker still holds the execution, so it has + // nothing to replay. Its history begins at the previous task's completion, + // and that event carries the range that task already consumed, so + // re-supplying it here would hand the workflow the same records twice. + // + // A worker can hold a sticky queue and still have evicted the workflow, and + // the recovery from that is the SDK's: it fails the task so the next one is + // dispatched on the normal queue with full history, which comes back + // through here with the slices attached. An SDK that instead refetches the + // history through GetWorkflowExecutionHistory gets no slices, because that + // RPC has nowhere to carry them. + if resp.GetStickyExecutionEnabled() { + return nil + } + + events, err := eventsOfResponse(resp) + if err != nil { + return err + } + limits := shardContext.GetConfig().Stream.LimitsFor(namespaceName) + supply := &replaySupply{ + ctx: ctx, + consumer: consumer, + addresses: addresses, + limits: limits, + reached: make(map[string]int64, len(addresses)), + } + if err := supply.collect(events); err != nil { + return err + } + + pages := 1 + token := resp.GetNextPageToken() + for len(token) > 0 { + pages++ + if pages > limits.ReplayMaxPages { + return unavailablef( + "replaying workflow %q needs more than %d pages of history to find the stream "+ + "ranges its tasks consumed", consumer.GetWorkflowID(), limits.ReplayMaxPages) + } + continuation, err := api.DeserializeHistoryToken(token) + if err != nil { + return err + } + // Read raw and decode here. The first page may have been read either + // way, and only the raw reader accepts the token both produce. + blobs, _, next, err := persistence.ReadFullPageRawEvents( + ctx, shardContext.GetExecutionManager(), &persistence.ReadHistoryBranchRequest{ + BranchToken: continuation.GetBranchToken(), + MinEventID: continuation.GetFirstEventId(), + MaxEventID: continuation.GetNextEventId(), + PageSize: int(pageSize), + NextPageToken: continuation.GetPersistenceToken(), + ShardID: shardContext.GetShardID(), + }) + if err != nil { + return err + } + pageEvents, err := decodeEventBlobs(blobs) + if err != nil { + return err + } + if err := supply.collect(pageEvents); err != nil { + return err + } + if len(next) == 0 { + break + } + continuation.PersistenceToken = next + if token, err = api.SerializeHistoryToken(continuation); err != nil { + return err + } + } + + if err := supply.checkCoverage(); err != nil { + return err + } + resp.StreamSlices = append(resp.StreamSlices, supply.slices...) + return nil +} + +// ReplaySlicesForQuery re-supplies the recorded ranges for a query dispatched +// straight through matching. +// +// Such a query carries the workflow's whole history to a worker that may never +// have seen the execution, exactly like a task after a cache miss, but it is +// built without RecordWorkflowTaskStarted and so never passes through the +// delivery above. The history is read from the branch rather than from a +// response, which is the only difference from the task path. +// +// The lease is held only long enough to read the cursors and the branch, and +// released before any page or stream is read, as on the task path. A range the +// stream can no longer serve is a failed precondition here rather than a failed +// task, because there is no task to fail: the query is refused and the +// workflow's next real task will fail with the cause. +func ReplaySlicesForQuery( + ctx context.Context, + shardContext historyi.ShardContext, + workflowConsistencyChecker api.WorkflowConsistencyChecker, + workflowKey definition.WorkflowKey, + pageSize int32, +) ([]*streampb.StreamSlice, error) { + lease, err := workflowConsistencyChecker.GetWorkflowLease( + ctx, nil, workflowKey, locks.PriorityHigh) + if err != nil { + return nil, err + } + ms := lease.GetMutableState() + addresses, err := streamOrigins(ctx, ms) + if err != nil || len(addresses) == 0 { + lease.GetReleaseFn()(nil) + return nil, err + } + branchToken, err := ms.GetCurrentBranchToken() + if err != nil { + lease.GetReleaseFn()(nil) + return nil, err + } + nextEventID := ms.GetNextEventID() + consumer := ms.GetWorkflowKey() + limits := shardContext.GetConfig().Stream.LimitsFor(ms.GetNamespaceEntry().Name().String()) + lease.GetReleaseFn()(nil) + + supply := &replaySupply{ + ctx: ctx, + consumer: consumer, + addresses: addresses, + limits: limits, + reached: make(map[string]int64, len(addresses)), + } + var token []byte + for pages := 1; ; pages++ { + if pages > limits.ReplayMaxPages { + return nil, unavailablef( + "replaying workflow %q needs more than %d pages of history to find the stream "+ + "ranges its tasks consumed", consumer.GetWorkflowID(), limits.ReplayMaxPages) + } + blobs, _, next, err := persistence.ReadFullPageRawEvents( + ctx, shardContext.GetExecutionManager(), &persistence.ReadHistoryBranchRequest{ + BranchToken: branchToken, + MinEventID: common.FirstEventID, + MaxEventID: nextEventID, + PageSize: int(pageSize), + NextPageToken: token, + ShardID: shardContext.GetShardID(), + }) + if err != nil { + return nil, err + } + events, err := decodeEventBlobs(blobs) + if err != nil { + return nil, err + } + if err := supply.collect(events); err != nil { + return nil, err + } + if len(next) == 0 { + break + } + token = next + } + if err := supply.checkCoverage(); err != nil { + return nil, err + } + return supply.slices, nil +} + +// AsRefusal turns a range that cannot be served into the error a caller with +// no task to fail should return. Any other error is handed back unchanged. +func AsRefusal(err error) error { + if unavailable, ok := errors.AsType[*rangeUnavailable](err); ok { + return serviceerror.NewFailedPrecondition(unavailable.Error()) + } + return err +} + +// collect re-reads every range the events on one page recorded. +func (s *replaySupply) collect(events []*historypb.HistoryEvent) error { + for _, event := range events { + for _, recorded := range event.GetWorkflowTaskCompletedEventAttributes().GetConsumedStreamRanges() { + address, ok := s.addresses[recorded.GetStreamId()] + if !ok { + // A subscription the workflow has since dropped. The range is + // still part of its history, but nothing is consuming it now. + continue + } + + records, ownerRunID, err := s.recordsFor(address, recorded) + if err != nil { + return err + } + + if to := recorded.GetToOffset(); to > s.reached[recorded.GetStreamId()] { + s.reached[recorded.GetStreamId()] = to + } + + // Attached even when empty: the task observed nothing, and replay + // has to reproduce that rather than infer it from an absence. + s.slices = append(s.slices, &streampb.StreamSlice{ + StreamId: recorded.GetStreamId(), + RunId: ownerRunID, + FromOffset: recorded.GetFromOffset(), + ToOffset: recorded.GetToOffset(), + Records: records, + WorkflowTaskCompletedEventId: event.GetEventId(), + }) + } + } + return nil +} + +// recordsFor re-reads one recorded range, or returns nothing for a range that +// recorded an empty observation. The run id is the execution holding the +// stream, which for an owned stream is the consumer itself. +func (s *replaySupply) recordsFor( + address streamOrigin, + recorded *streampb.StreamRange, +) ([]*streampb.StreamRecord, string, error) { + ownerRunID := s.consumer.RunID + if recorded.GetToOffset() <= recorded.GetFromOffset() { + if address.external { + ownerRunID = "" + } + return nil, ownerRunID, nil + } + + w, err := readRecordedRange(s.ctx, s.consumer, address, + recorded.GetStreamId(), recorded.GetFromOffset(), recorded.GetToOffset()) + if err != nil { + // Truncation and deletion are the reachable causes, and neither is + // recoverable for this workflow: without the bytes it can never + // replay, and without replaying it can never start another task. + return nil, "", unavailableIfGone(err, + "workflow %q cannot replay: stream %q no longer holds offsets [%d,%d) that one "+ + "of its completed tasks consumed", + s.consumer.GetWorkflowID(), recorded.GetStreamId(), + recorded.GetFromOffset(), recorded.GetToOffset()) + } + if address.external { + ownerRunID = w.RunID + } + collected, _, err := stream.CollectRecords( + w.Blobs, w.Starts, + recorded.GetFromOffset(), recorded.GetToOffset(), + int(recorded.GetToOffset()-recorded.GetFromOffset()), nil) + if err != nil { + return nil, "", err + } + records := stream.ToAPIRecords(collected) + + s.records += len(records) + for _, m := range records { + s.bytes += proto.Size(m) + } + // Bounded because every prior task's range is re-read into one response, so + // a long-lived consumer's cold replay grows with its whole history. Refused + // rather than trimmed: a short re-supply is what replay cannot survive. + if s.records > s.limits.ReplayMaxRecords || s.bytes > s.limits.ReplayMaxBytes { + return nil, "", unavailablef( + "replaying workflow %q needs more than %d records or %d bytes of stream history "+ + "to re-supply; the consumed ranges cannot be re-delivered in one response", + s.consumer.GetWorkflowID(), s.limits.ReplayMaxRecords, s.limits.ReplayMaxBytes) + } + return records, ownerRunID, nil +} + +// checkCoverage refuses a re-supply that stops short of what the cursor says +// the consumer consumed. With every page read, a shortfall means History and +// the cursor disagree, and handing the worker less than the first run saw is +// the one outcome replay cannot survive. +func (s *replaySupply) checkCoverage() error { + for streamID, address := range s.addresses { + got, ok := s.reached[streamID] + if !ok { + got = address.start + } + if got < address.committed { + return unavailablef( + "workflow %q consumed stream %q through offset %d but its history only records "+ + "through %d", s.consumer.GetWorkflowID(), streamID, address.committed, got) + } + } + return nil +} + +// eventsOfResponse reads the events the response is carrying, whichever of the +// three representations it happens to be using. +func eventsOfResponse( + resp *historyservice.RecordWorkflowTaskStartedResponseWithRawHistory, +) ([]*historypb.HistoryEvent, error) { + if resp.GetHistory() != nil { + return resp.GetHistory().GetEvents(), nil + } + + raw := resp.GetRawHistoryBytes() + if len(raw) == 0 { + //nolint:staticcheck // SA1019: still populated while the newer field rolls out. + raw = resp.GetRawHistory() + } + blobs := make([]*commonpb.DataBlob, 0, len(raw)) + for _, batch := range raw { + blobs = append(blobs, &commonpb.DataBlob{ + EncodingType: enumspb.ENCODING_TYPE_PROTO3, + Data: batch, + }) + } + return decodeEventBlobs(blobs) +} + +func decodeEventBlobs(blobs []*commonpb.DataBlob) ([]*historypb.HistoryEvent, error) { + serializer := serialization.NewSerializer() + var events []*historypb.HistoryEvent + for _, blob := range blobs { + batchEvents, err := serializer.DeserializeEvents(blob) + if err != nil { + return nil, err + } + events = append(events, batchEvents...) + } + return events, nil +} diff --git a/service/history/api/respondworkflowtaskcompleted/api.go b/service/history/api/respondworkflowtaskcompleted/api.go index b0db29dcf2a..b460e874cf1 100644 --- a/service/history/api/respondworkflowtaskcompleted/api.go +++ b/service/history/api/respondworkflowtaskcompleted/api.go @@ -837,6 +837,14 @@ func (handler *WorkflowTaskCompletedHandler) Invoke( // sticky is always enabled when worker request for new workflow task from RespondWorkflowTaskCompleted resp.StartedResponse.StickyExecutionEnabled = true + // The poll path delivers from its own handler, so this one has to ask + // as well or a subscribed workflow gets an inline task with no data. + resp.StartedResponse.StreamSlices, err = recordworkflowtaskstarted.DeliverStreamSlices( + ctx, handler.shardContext, ms, newWorkflowTask) + if err != nil { + return nil, err + } + resp.NewWorkflowTask, err = handler.withNewWorkflowTask(ctx, namespaceEntry.Name(), req, resp.StartedResponse) if err != nil { return nil, err @@ -1009,6 +1017,7 @@ func (handler *WorkflowTaskCompletedHandler) createPollWorkflowTaskQueueResponse StartedTime: matchingResp.StartedTime, Queries: matchingResp.Queries, Messages: matchingResp.Messages, + StreamSlices: matchingResp.StreamSlices, } return resp, nil diff --git a/service/history/handler.go b/service/history/handler.go index 5f74ca21d82..1bb3b6946e0 100644 --- a/service/history/handler.go +++ b/service/history/handler.go @@ -892,6 +892,33 @@ func (h *Handler) GetMutableState(ctx context.Context, request *historyservice.G return resp, nil } +// GetStreamReplaySlices re-supplies the stream ranges a workflow's completed tasks recorded. +func (h *Handler) GetStreamReplaySlices( + ctx context.Context, + request *historyservice.GetStreamReplaySlicesRequest, +) (*historyservice.GetStreamReplaySlicesResponse, error) { + namespaceID := namespace.ID(request.GetNamespaceId()) + if namespaceID == "" { + return nil, h.convertError(errNamespaceNotSet) + } + + workflowID := request.GetExecution().GetWorkflowId() + shardContext, err := h.controller.GetShardByNamespaceWorkflow(namespaceID, workflowID) + if err != nil { + return nil, h.convertError(err) + } + engine, err := shardContext.GetEngine(ctx) + if err != nil { + return nil, h.convertError(err) + } + + resp, err := engine.GetStreamReplaySlices(ctx, request) + if err != nil { + return nil, h.convertError(err) + } + return resp, nil +} + // PollMutableState - returns the id of the next event in the execution's history func (h *Handler) PollMutableState(ctx context.Context, request *historyservice.PollMutableStateRequest) (*historyservice.PollMutableStateResponse, error) { namespaceID := namespace.ID(request.GetNamespaceId()) diff --git a/service/history/history_engine.go b/service/history/history_engine.go index de5fb6ae0a6..82291b49c5a 100644 --- a/service/history/history_engine.go +++ b/service/history/history_engine.go @@ -23,6 +23,7 @@ import ( "go.temporal.io/server/common/collection" "go.temporal.io/server/common/definition" "go.temporal.io/server/common/headers" + "go.temporal.io/server/common/locks" "go.temporal.io/server/common/log" "go.temporal.io/server/common/log/tag" "go.temporal.io/server/common/metrics" @@ -539,6 +540,43 @@ func (e *historyEngineImpl) PollMutableState( }, nil } +// GetStreamReplaySlices re-supplies the stream ranges the workflow's completed +// tasks recorded, for a query task built outside RecordWorkflowTaskStarted. +func (e *historyEngineImpl) GetStreamReplaySlices( + ctx context.Context, + request *historyservice.GetStreamReplaySlicesRequest, +) (*historyservice.GetStreamReplaySlicesResponse, error) { + namespaceID := namespace.ID(request.GetNamespaceId()) + if err := api.ValidateNamespaceUUID(namespaceID); err != nil { + return nil, err + } + nsEntry, err := e.shardContext.GetNamespaceRegistry().GetNamespaceByID(namespaceID) + if err != nil { + return nil, err + } + runID := request.GetExecution().GetRunId() + if runID == "" { + runID, err = e.workflowConsistencyChecker.GetCurrentWorkflowRunID( + ctx, request.GetNamespaceId(), request.GetExecution().GetWorkflowId(), locks.PriorityHigh) + if err != nil { + return nil, err + } + } + workflowKey := definition.NewWorkflowKey( + request.GetNamespaceId(), request.GetExecution().GetWorkflowId(), runID) + slices, err := recordworkflowtaskstarted.ReplaySlicesForQuery( + ctx, + e.shardContext, + e.workflowConsistencyChecker, + workflowKey, + int32(e.config.HistoryMaxPageSize(nsEntry.Name().String())), + ) + if err != nil { + return nil, recordworkflowtaskstarted.AsRefusal(err) + } + return &historyservice.GetStreamReplaySlicesResponse{StreamSlices: slices}, nil +} + func (e *historyEngineImpl) QueryWorkflow( ctx context.Context, request *historyservice.QueryWorkflowRequest, diff --git a/service/history/historybuilder/event_factory.go b/service/history/historybuilder/event_factory.go index 058cb55b4ed..a40bac21f26 100644 --- a/service/history/historybuilder/event_factory.go +++ b/service/history/historybuilder/event_factory.go @@ -10,6 +10,7 @@ import ( failurepb "go.temporal.io/api/failure/v1" historypb "go.temporal.io/api/history/v1" sdkpb "go.temporal.io/api/sdk/v1" + streampb "go.temporal.io/api/stream/v1" taskqueuepb "go.temporal.io/api/taskqueue/v1" updatepb "go.temporal.io/api/update/v1" workflowpb "go.temporal.io/api/workflow/v1" @@ -162,6 +163,7 @@ func (b *EventFactory) CreateWorkflowTaskCompletedEvent( deploymentName string, deployment *deploymentpb.Deployment, behavior enumspb.VersioningBehavior, + streamCursors []*streampb.StreamRange, ) *historypb.HistoryEvent { event := b.createHistoryEvent(enumspb.EVENT_TYPE_WORKFLOW_TASK_COMPLETED, b.timeSource.Now()) event.Attributes = &historypb.HistoryEvent_WorkflowTaskCompletedEventAttributes{ @@ -176,6 +178,9 @@ func (b *EventFactory) CreateWorkflowTaskCompletedEvent( WorkerDeploymentName: deploymentName, DeploymentVersion: worker_versioning.ExternalWorkerDeploymentVersionFromDeployment(deployment), VersioningBehavior: behavior, + // Offsets only. The payloads the task consumed rode the task + // response, so History grows with tasks rather than with messages. + ConsumedStreamRanges: streamCursors, }, } diff --git a/service/history/historybuilder/history_builder.go b/service/history/historybuilder/history_builder.go index 4690a0e92b1..c24e00f3c20 100644 --- a/service/history/historybuilder/history_builder.go +++ b/service/history/historybuilder/history_builder.go @@ -10,6 +10,7 @@ import ( failurepb "go.temporal.io/api/failure/v1" historypb "go.temporal.io/api/history/v1" sdkpb "go.temporal.io/api/sdk/v1" + streampb "go.temporal.io/api/stream/v1" taskqueuepb "go.temporal.io/api/taskqueue/v1" updatepb "go.temporal.io/api/update/v1" workflowpb "go.temporal.io/api/workflow/v1" @@ -236,6 +237,7 @@ func (b *HistoryBuilder) AddWorkflowTaskCompletedEvent( deploymentName string, deployment *deploymentpb.Deployment, behavior enumspb.VersioningBehavior, + streamCursors []*streampb.StreamRange, ) *historypb.HistoryEvent { event := b.CreateWorkflowTaskCompletedEvent( scheduledEventID, @@ -248,6 +250,7 @@ func (b *HistoryBuilder) AddWorkflowTaskCompletedEvent( deploymentName, deployment, behavior, + streamCursors, ) event, _ = b.add(event) return event diff --git a/service/history/historybuilder/history_builder_categorization_test.go b/service/history/historybuilder/history_builder_categorization_test.go index 228824a50e5..43b6aed58e0 100644 --- a/service/history/historybuilder/history_builder_categorization_test.go +++ b/service/history/historybuilder/history_builder_categorization_test.go @@ -1277,6 +1277,7 @@ func (s *sutTestingAdapter) AddWorkflowTaskCompletedEvent(_ ...eventConfig) *his "", nil, enumspb.VERSIONING_BEHAVIOR_UNSPECIFIED, + nil, ) } diff --git a/service/history/historybuilder/history_builder_test.go b/service/history/historybuilder/history_builder_test.go index 9e21c34901a..81e4d3b3a98 100644 --- a/service/history/historybuilder/history_builder_test.go +++ b/service/history/historybuilder/history_builder_test.go @@ -704,6 +704,7 @@ func (s *historyBuilderSuite) TestWorkflowTaskCompleted() { "", nil, enumspb.VERSIONING_BEHAVIOR_UNSPECIFIED, + nil, ) s.Equal(event, s.flush()) protorequire.ProtoEqual(s.T(), &historypb.HistoryEvent{ diff --git a/service/history/interfaces/engine.go b/service/history/interfaces/engine.go index 1c03f0e583f..669595c3098 100644 --- a/service/history/interfaces/engine.go +++ b/service/history/interfaces/engine.go @@ -29,6 +29,7 @@ type ( StartWorkflowExecution(ctx context.Context, request *historyservice.StartWorkflowExecutionRequest) (*historyservice.StartWorkflowExecutionResponse, error) GetMutableState(ctx context.Context, request *historyservice.GetMutableStateRequest) (*historyservice.GetMutableStateResponse, error) PollMutableState(ctx context.Context, request *historyservice.PollMutableStateRequest) (*historyservice.PollMutableStateResponse, error) + GetStreamReplaySlices(ctx context.Context, request *historyservice.GetStreamReplaySlicesRequest) (*historyservice.GetStreamReplaySlicesResponse, error) DescribeMutableState(ctx context.Context, request *historyservice.DescribeMutableStateRequest) (*historyservice.DescribeMutableStateResponse, error) ResetStickyTaskQueue(ctx context.Context, resetRequest *historyservice.ResetStickyTaskQueueRequest) (*historyservice.ResetStickyTaskQueueResponse, error) DescribeWorkflowExecution(ctx context.Context, request *historyservice.DescribeWorkflowExecutionRequest) (*historyservice.DescribeWorkflowExecutionResponse, error) diff --git a/service/history/interfaces/engine_mock.go b/service/history/interfaces/engine_mock.go index b2ca488f358..5936e91939b 100644 --- a/service/history/interfaces/engine_mock.go +++ b/service/history/interfaces/engine_mock.go @@ -280,6 +280,21 @@ func (mr *MockEngineMockRecorder) GetReplicationTasksIter(ctx, pollingCluster, m return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetReplicationTasksIter", reflect.TypeOf((*MockEngine)(nil).GetReplicationTasksIter), ctx, pollingCluster, minInclusiveTaskID, maxExclusiveTaskID) } +// GetStreamReplaySlices mocks base method. +func (m *MockEngine) GetStreamReplaySlices(ctx context.Context, request *historyservice.GetStreamReplaySlicesRequest) (*historyservice.GetStreamReplaySlicesResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetStreamReplaySlices", ctx, request) + ret0, _ := ret[0].(*historyservice.GetStreamReplaySlicesResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetStreamReplaySlices indicates an expected call of GetStreamReplaySlices. +func (mr *MockEngineMockRecorder) GetStreamReplaySlices(ctx, request any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetStreamReplaySlices", reflect.TypeOf((*MockEngine)(nil).GetStreamReplaySlices), ctx, request) +} + // GetWorkflowExecutionHistory mocks base method. func (m *MockEngine) GetWorkflowExecutionHistory(ctx context.Context, request *historyservice.GetWorkflowExecutionHistoryRequest) (*historyservice.GetWorkflowExecutionHistoryResponseWithRaw, error) { m.ctrl.T.Helper() diff --git a/service/history/interfaces/mutable_state.go b/service/history/interfaces/mutable_state.go index 632c0fbfb38..9cb773ca0bd 100644 --- a/service/history/interfaces/mutable_state.go +++ b/service/history/interfaces/mutable_state.go @@ -366,6 +366,20 @@ type ( ChasmEnabled() bool ChasmSignalBacklinksEnabled() bool ChasmWorkflowComponent(ctx context.Context) (*chasmworkflow.Workflow, chasm.MutableContext, error) + // HasChasmWorkflowComponent reports whether a workflow component is + // actually reachable. Archetype alone does not answer this: a workflow + // predating CHASM reports the workflow archetype while carrying a tree + // that holds no components. + HasChasmWorkflowComponent() bool + // ConsumesStreams reports whether this workflow holds a cursor into any + // stream, which is what decides whether a query task has anything to + // re-supply. + ConsumesStreams() bool + + // HasPendingStreamData reports whether a stream subscription still has + // offsets to deliver, which is the only case where stream traffic + // schedules a workflow task. + HasPendingStreamData() bool ChasmWorkflowComponentReadOnly(ctx context.Context) (*chasmworkflow.Workflow, chasm.Context, error) // Ensures that the chasm workflow component is installed in the mutable state CHASM tree. // Must be called before adding any components to the tree. diff --git a/service/history/interfaces/mutable_state_mock.go b/service/history/interfaces/mutable_state_mock.go index 15a5b7221da..25008edd61f 100644 --- a/service/history/interfaces/mutable_state_mock.go +++ b/service/history/interfaces/mutable_state_mock.go @@ -1894,6 +1894,20 @@ func (mr *MockMutableStateMockRecorder) CloseTransactionAsSnapshot(ctx, transact return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseTransactionAsSnapshot", reflect.TypeOf((*MockMutableState)(nil).CloseTransactionAsSnapshot), ctx, transactionPolicy) } +// ConsumesStreams mocks base method. +func (m *MockMutableState) ConsumesStreams() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ConsumesStreams") + ret0, _ := ret[0].(bool) + return ret0 +} + +// ConsumesStreams indicates an expected call of ConsumesStreams. +func (mr *MockMutableStateMockRecorder) ConsumesStreams() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConsumesStreams", reflect.TypeOf((*MockMutableState)(nil).ConsumesStreams)) +} + // ContinueAsNewMinBackoff mocks base method. func (m *MockMutableState) ContinueAsNewMinBackoff(backoffDuration *durationpb.Duration) *durationpb.Duration { m.ctrl.T.Helper() @@ -3052,6 +3066,20 @@ func (mr *MockMutableStateMockRecorder) HasBufferedEvents() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasBufferedEvents", reflect.TypeOf((*MockMutableState)(nil).HasBufferedEvents)) } +// HasChasmWorkflowComponent mocks base method. +func (m *MockMutableState) HasChasmWorkflowComponent() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "HasChasmWorkflowComponent") + ret0, _ := ret[0].(bool) + return ret0 +} + +// HasChasmWorkflowComponent indicates an expected call of HasChasmWorkflowComponent. +func (mr *MockMutableStateMockRecorder) HasChasmWorkflowComponent() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasChasmWorkflowComponent", reflect.TypeOf((*MockMutableState)(nil).HasChasmWorkflowComponent)) +} + // HasCompletedAnyWorkflowTask mocks base method. func (m *MockMutableState) HasCompletedAnyWorkflowTask() bool { m.ctrl.T.Helper() @@ -3080,6 +3108,20 @@ func (mr *MockMutableStateMockRecorder) HasParentExecution() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasParentExecution", reflect.TypeOf((*MockMutableState)(nil).HasParentExecution)) } +// HasPendingStreamData mocks base method. +func (m *MockMutableState) HasPendingStreamData() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "HasPendingStreamData") + ret0, _ := ret[0].(bool) + return ret0 +} + +// HasPendingStreamData indicates an expected call of HasPendingStreamData. +func (mr *MockMutableStateMockRecorder) HasPendingStreamData() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasPendingStreamData", reflect.TypeOf((*MockMutableState)(nil).HasPendingStreamData)) +} + // HasPendingWorkflowTask mocks base method. func (m *MockMutableState) HasPendingWorkflowTask() bool { m.ctrl.T.Helper() diff --git a/service/history/workflow/mutable_state_impl.go b/service/history/workflow/mutable_state_impl.go index 9e5301f850e..fa74f30ed05 100644 --- a/service/history/workflow/mutable_state_impl.go +++ b/service/history/workflow/mutable_state_impl.go @@ -22,6 +22,7 @@ import ( historypb "go.temporal.io/api/history/v1" rulespb "go.temporal.io/api/rules/v1" "go.temporal.io/api/serviceerror" + streampb "go.temporal.io/api/stream/v1" taskqueuepb "go.temporal.io/api/taskqueue/v1" updatepb "go.temporal.io/api/update/v1" workerpb "go.temporal.io/api/worker/v1" @@ -670,6 +671,37 @@ func (ms *MutableStateImpl) mustInitHSM() { ms.stateMachineNode = stateMachineNode } +// commitStreamCursors folds each staged range into its cursor and returns the +// ranges to record. Called as the completed event is built, so the advance and +// the event carrying the range are in one transaction: split apart, a crash +// between them would either redeliver a range or skip it with nothing in +// History to say so. +func (ms *MutableStateImpl) commitStreamCursors() ([]*streampb.StreamRange, error) { + if !ms.HasChasmWorkflowComponent() { + return nil, nil + } + // Reaching the component through a mutable context marks it dirty, which + // would add a node to the transaction of every workflow that has no + // subscription at all. Ask read-only first, and take the write path only + // when there is something to fold in. + // + // The background context matches EnsureChasmWorkflowComponent: it only + // reaches components already in memory. + wf, _, err := ms.ChasmWorkflowComponentReadOnly(context.Background()) + if err != nil { + return nil, err + } + if len(wf.StreamCursors) == 0 { + return nil, nil + } + + wf, chasmCtx, err := ms.ChasmWorkflowComponent(context.Background()) + if err != nil { + return nil, err + } + return wf.CommitStreamCursors(chasmCtx), nil +} + // carryStreamSubscriptionsTo hands this run's subscriptions to the run that // continues it. // @@ -698,6 +730,55 @@ func (ms *MutableStateImpl) carryStreamSubscriptionsTo(newMutableState *MutableS return newWorkflow.ImportStreamSubscriptions(newChasmCtx, subscriptions) } +// HasPendingStreamData reports whether a subscription of this workflow has +// offsets left to deliver, which is the one condition under which stream +// traffic schedules a workflow task. +// +// Called on every transaction close for every workflow, almost none of which +// have a subscription, so it resolves the root component once rather than +// asking whether it exists and then asking for it. +func (ms *MutableStateImpl) HasPendingStreamData() bool { + node, ok := ms.chasmTree.(*chasm.Node) + if !ok { + return false + } + chasmCtx := chasm.NewContext(context.Background(), node) + rootComponent, err := node.ComponentByPath(chasmCtx, nil) + if err != nil { + return false + } + wf, ok := rootComponent.(*chasmworkflow.Workflow) + if !ok { + return false + } + return wf.StreamCursorsBehind(chasmCtx) +} + +// ConsumesStreams reports whether this workflow holds a cursor into any +// stream. +// +// Matching builds a query task without RecordWorkflowTaskStarted, so it has to +// ask History separately for the ranges to re-supply, and that call takes a +// workflow lease. Almost no workflow consumes a stream, so this rides the +// mutable state matching already fetched and keeps the call off every other +// query. +func (ms *MutableStateImpl) ConsumesStreams() bool { + node, ok := ms.chasmTree.(*chasm.Node) + if !ok { + return false + } + chasmCtx := chasm.NewContext(context.Background(), node) + rootComponent, err := node.ComponentByPath(chasmCtx, nil) + if err != nil { + return false + } + wf, ok := rootComponent.(*chasmworkflow.Workflow) + if !ok { + return false + } + return wf.HasStreamCursors() +} + // closeActivityStreams ends the streams an activity owns once it reaches a // terminal status. // @@ -8024,6 +8105,25 @@ func (ms *MutableStateImpl) closeTransactionHandleWorkflowTaskScheduling( } } + // A stream subscription with offsets left to deliver. Handled here rather + // than at workflow task completion so it also covers the transaction that + // registers a subscription against a stream that already has data, which + // completes no workflow task of its own. + // + // The pending-task check comes first because it is cheap: a workflow that + // already owes a task needs no further reason to run, so the subscription + // state is only consulted when the answer could change something. + if !ms.HasPendingWorkflowTask() && + !ms.IsWorkflowExecutionStatusPaused() && + ms.HasPendingStreamData() { + if _, err := ms.AddWorkflowTaskScheduledEvent( + false, + enumsspb.WORKFLOW_TASK_TYPE_NORMAL, + ); err != nil { + return err + } + } + return nil } diff --git a/service/history/workflow/workflow_task_state_machine.go b/service/history/workflow/workflow_task_state_machine.go index 72123c71bfa..9ecc63b75ae 100644 --- a/service/history/workflow/workflow_task_state_machine.go +++ b/service/history/workflow/workflow_task_state_machine.go @@ -826,6 +826,11 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskCompletedEvent( //nolint:staticcheck // SA1019 deprecated Deployment will clean up later wftDeployment := worker_versioning.DeploymentOrVersion(request.Deployment, wftDeploymentVersion) + streamCursors, err := m.ms.commitStreamCursors() + if err != nil { + return nil, err + } + // Now write the completed event event := m.ms.hBuilder.AddWorkflowTaskCompletedEvent( workflowTask.ScheduledEventID, @@ -838,6 +843,7 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskCompletedEvent( deploymentName, wftDeployment, vb, + streamCursors, ) override := m.ms.GetExecutionInfo().GetVersioningInfo().GetVersioningOverride() @@ -849,7 +855,7 @@ func (m *workflowTaskStateMachine) AddWorkflowTaskCompletedEvent( } wftScheduleToClose := event.GetEventTime().AsTime().Sub(workflowTask.ScheduledTime) - err := m.afterAddWorkflowTaskCompletedEvent(event, limits, wftScheduleToClose) + err = m.afterAddWorkflowTaskCompletedEvent(event, limits, wftScheduleToClose) if err != nil { return nil, err } diff --git a/service/matching/matching_engine.go b/service/matching/matching_engine.go index 73a2615e250..2a4261b5f1c 100644 --- a/service/matching/matching_engine.go +++ b/service/matching/matching_engine.go @@ -21,6 +21,7 @@ import ( enumspb "go.temporal.io/api/enums/v1" historypb "go.temporal.io/api/history/v1" "go.temporal.io/api/serviceerror" + streampb "go.temporal.io/api/stream/v1" taskqueuepb "go.temporal.io/api/taskqueue/v1" "go.temporal.io/api/workflowservice/v1" deploymentspb "go.temporal.io/server/api/deployment/v1" @@ -779,6 +780,17 @@ pollLoop: return emptyPollWorkflowTaskQueueResponse, nil } + // After the history, so every range the history records is + // re-supplied. Read the other way round a task could complete in + // between and the worker would see a recorded range with no bytes. + streamSlices, err := e.getStreamSlicesForQueryTask( + ctx, req.GetNamespaceId(), task, isStickyEnabled, + mutableStateResp.GetConsumesStreams()) + if err != nil { + _ = e.deliverQueryResult(task.query.taskID, &queryResult{internalError: err}) + return emptyPollWorkflowTaskQueueResponse, nil + } + resp := &historyservice.RecordWorkflowTaskStartedResponse{ PreviousStartedEventId: mutableStateResp.PreviousStartedEventId, NextEventId: mutableStateResp.NextEventId, @@ -790,6 +802,7 @@ pollLoop: Attempt: 1, History: hist, NextPageToken: nextPageToken, + StreamSlices: streamSlices, } // Local query match. Emit the dispatch latency metric. This metric does not include the query response time. @@ -888,6 +901,39 @@ pollLoop: } } +// getStreamSlicesForQueryTask asks History for the stream ranges the +// workflow's history records, re-read from their streams. +// +// A query task is built here without RecordWorkflowTaskStarted, so the +// delivery that attaches those ranges to an ordinary task never runs for it. +// Only a non-sticky query needs them: a sticky one goes to a worker that still +// holds the execution and has nothing to replay. +// +// Gated on what the mutable state already fetched says. The call takes a +// workflow lease on the history side, and almost no workflow consumes a +// stream, so without the gate every query on every workflow would pay for it +// and inherit a new way to fail. +func (e *matchingEngineImpl) getStreamSlicesForQueryTask( + ctx context.Context, + namespaceID string, + task *internalTask, + isStickyEnabled bool, + consumesStreams bool, +) ([]*streampb.StreamSlice, error) { + if isStickyEnabled || !consumesStreams { + return nil, nil + } + resp, err := e.historyClient.GetStreamReplaySlices(ctx, + &historyservice.GetStreamReplaySlicesRequest{ + NamespaceId: namespaceID, + Execution: task.workflowExecution(), + }) + if err != nil { + return nil, err + } + return resp.GetStreamSlices(), nil +} + func (e *matchingEngineImpl) getHistoryForQueryTask( ctx context.Context, nsID namespace.ID, @@ -3422,6 +3468,7 @@ func (e *matchingEngineImpl) convertPollWorkflowTaskQueueResponse( StartedTime: resp.StartedTime, Queries: resp.Queries, Messages: resp.Messages, + StreamSlices: resp.StreamSlices, History: history, NextPageToken: resp.NextPageToken, PollerScalingDecision: resp.PollerScalingDecision, diff --git a/service/matching/matching_engine_test.go b/service/matching/matching_engine_test.go index 65f11957c9c..b26de137faa 100644 --- a/service/matching/matching_engine_test.go +++ b/service/matching/matching_engine_test.go @@ -28,6 +28,7 @@ import ( nexuspb "go.temporal.io/api/nexus/v1" querypb "go.temporal.io/api/query/v1" "go.temporal.io/api/serviceerror" + streampb "go.temporal.io/api/stream/v1" taskqueuepb "go.temporal.io/api/taskqueue/v1" "go.temporal.io/api/workflowservice/v1" clockspb "go.temporal.io/server/api/clock/v1" @@ -6315,6 +6316,89 @@ func TestConvertPollWorkflowTaskQueueResponse_FieldMapping(t *testing.T) { assert.Equal(t, inputResp.History.Events[0].EventId, result.History.Events[0].EventId) } +// A non-sticky query task asks History for the recorded stream ranges; a +// sticky one does not, since its worker still holds the execution. +func TestGetStreamSlicesForQueryTask(t *testing.T) { + t.Parallel() + + nsID := namespace.ID("test-namespace-id") + task := &internalTask{ + namespace: namespace.Name("test-namespace"), + event: &genericTaskInfo{ + AllocatedTaskInfo: &persistencespb.AllocatedTaskInfo{ + Data: &persistencespb.TaskInfo{ + NamespaceId: nsID.String(), + WorkflowId: "test-workflow-id", + RunId: "test-run-id", + }, + }, + }, + } + resupplied := []*streampb.StreamSlice{{ + StreamId: "output", RunId: "test-run-id", FromOffset: 0, ToOffset: 2, + WorkflowTaskCompletedEventId: 4, + }} + + t.Run("sticky asks nothing", func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + mockHistoryClient := historyservicemock.NewMockHistoryServiceClient(ctrl) + engine := &matchingEngineImpl{historyClient: mockHistoryClient, logger: log.NewNoopLogger()} + + slices, err := engine.getStreamSlicesForQueryTask( + context.Background(), nsID.String(), task, true, true) + require.NoError(t, err) + require.Empty(t, slices) + }) + + t.Run("non-sticky carries what History re-supplies", func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + mockHistoryClient := historyservicemock.NewMockHistoryServiceClient(ctrl) + mockHistoryClient.EXPECT().GetStreamReplaySlices(gomock.Any(), + &historyservice.GetStreamReplaySlicesRequest{ + NamespaceId: nsID.String(), + Execution: task.workflowExecution(), + }).Return(&historyservice.GetStreamReplaySlicesResponse{StreamSlices: resupplied}, nil). + Times(1) + engine := &matchingEngineImpl{historyClient: mockHistoryClient, logger: log.NewNoopLogger()} + + slices, err := engine.getStreamSlicesForQueryTask( + context.Background(), nsID.String(), task, false, true) + require.NoError(t, err) + require.Len(t, slices, 1) + require.Equal(t, int64(4), slices[0].GetWorkflowTaskCompletedEventId()) + }) + + // Almost no workflow consumes a stream, and the call takes a workflow lease + // on the history side before it discovers that. The mutable state matching + // already fetched says which ones do. + t.Run("a workflow that consumes nothing asks nothing", func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + mockHistoryClient := historyservicemock.NewMockHistoryServiceClient(ctrl) + engine := &matchingEngineImpl{historyClient: mockHistoryClient, logger: log.NewNoopLogger()} + + slices, err := engine.getStreamSlicesForQueryTask( + context.Background(), nsID.String(), task, false, false) + require.NoError(t, err) + require.Empty(t, slices) + }) + + t.Run("a refusal fails the query", func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + mockHistoryClient := historyservicemock.NewMockHistoryServiceClient(ctrl) + mockHistoryClient.EXPECT().GetStreamReplaySlices(gomock.Any(), gomock.Any()).Return( + nil, serviceerror.NewFailedPrecondition("stream no longer holds the range")).Times(1) + engine := &matchingEngineImpl{historyClient: mockHistoryClient, logger: log.NewNoopLogger()} + + _, err := engine.getStreamSlicesForQueryTask( + context.Background(), nsID.String(), task, false, true) + require.ErrorContains(t, err, "no longer holds") + }) +} + func TestGetHistoryForQueryTask(t *testing.T) { t.Parallel() diff --git a/service/matching/wire_compat_test.go b/service/matching/wire_compat_test.go new file mode 100644 index 00000000000..f55255343e4 --- /dev/null +++ b/service/matching/wire_compat_test.go @@ -0,0 +1,178 @@ +package matching + +import ( + "fmt" + "slices" + "testing" + + "github.com/stretchr/testify/require" + "go.temporal.io/server/api/historyservice/v1" + "go.temporal.io/server/api/matchingservice/v1" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" +) + +// Each started-task response exists twice, once carrying History and once +// carrying raw bytes, so matching can forward a task without deserializing it. +// The two are only interchangeable while every field number means the same +// thing on both sides. That invariant is stated in a proto comment, which is +// easy to satisfy on one copy and forget on the other, and a mismatch stays +// invisible until history.sendRawHistoryBetweenInternalServices is enabled. +func TestStartedResponsePairsStayWireCompatible(t *testing.T) { + t.Run("history service", func(t *testing.T) { + // raw_history is a History on one side and repeated bytes on the other, + // which is the whole point of keeping two messages. + require.Empty(t, wireCompatDiff( + &historyservice.RecordWorkflowTaskStartedResponse{}, + &historyservice.RecordWorkflowTaskStartedResponseWithRawHistory{}, + 20, + )) + }) + + t.Run("matching service", func(t *testing.T) { + require.Empty(t, wireCompatDiff( + &matchingservice.PollWorkflowTaskQueueResponse{}, + &matchingservice.PollWorkflowTaskQueueResponseWithRawHistory{}, + 22, + )) + }) +} + +// Without a negative control the check above passes just as happily when it has +// stopped inspecting anything. Drop the exemption and the one field the pair is +// allowed to disagree on has to be reported. +func TestWireCompatDiffDetectsAMismatch(t *testing.T) { + diff := wireCompatDiff( + &historyservice.RecordWorkflowTaskStartedResponse{}, + &historyservice.RecordWorkflowTaskStartedResponseWithRawHistory{}, + ) + require.Len(t, diff, 1) + require.Contains(t, diff[0], "field 20") + require.Contains(t, diff[0], "raw_history") +} + +// wireCompatDiff reports every way the two messages would disagree on the wire, +// ignoring the field numbers named in typeMayDiffer. +func wireCompatDiff( + a proto.Message, + b proto.Message, + typeMayDiffer ...protoreflect.FieldNumber, +) []string { + exempt := make(map[protoreflect.FieldNumber]struct{}, len(typeMayDiffer)) + for _, number := range typeMayDiffer { + exempt[number] = struct{}{} + } + + aName := a.ProtoReflect().Descriptor().Name() + bName := b.ProtoReflect().Descriptor().Name() + aFields := fieldsByNumber(a) + bFields := fieldsByNumber(b) + + var problems []string + report := func(format string, args ...any) { + problems = append(problems, fmt.Sprintf(format, args...)) + } + + for _, number := range sortedFieldNumbers(aFields) { + aField := aFields[number] + bField, ok := bFields[number] + if !ok { + report("field %d (%s) is on %s but missing from %s", number, aField.Name(), aName, bName) + continue + } + if aField.Name() != bField.Name() { + report("field %d is %s on %s and %s on %s", number, aField.Name(), aName, bField.Name(), bName) + continue + } + if _, ok := exempt[number]; ok { + continue + } + + // A map field's value type is a synthesized entry message nested in its + // parent, so its full name always differs across the pair. Compare what + // actually goes on the wire instead. + if aField.IsMap() { + if !bField.IsMap() { + report("field %d (%s) is a map on %s only", number, aField.Name(), aName) + continue + } + if aField.MapKey().Kind() != bField.MapKey().Kind() { + report("field %d (%s) has a different map key type on each side", number, aField.Name()) + } + problem := valueTypeDiff(aField.MapValue(), bField.MapValue(), number, aField.Name()) + if problem != "" { + report("%s", problem) + } + continue + } + + if aField.Cardinality() != bField.Cardinality() { + report("field %d (%s) is %s on %s and %s on %s", + number, aField.Name(), aField.Cardinality(), aName, bField.Cardinality(), bName) + continue + } + if problem := valueTypeDiff(aField, bField, number, aField.Name()); problem != "" { + report("%s", problem) + } + } + + for _, number := range sortedFieldNumbers(bFields) { + if _, ok := aFields[number]; !ok { + report("field %d (%s) is on %s but missing from %s", + number, bFields[number].Name(), bName, aName) + } + } + + return problems +} + +func valueTypeDiff( + a protoreflect.FieldDescriptor, + b protoreflect.FieldDescriptor, + number protoreflect.FieldNumber, + name protoreflect.Name, +) string { + if a.Kind() != b.Kind() { + return fmt.Sprintf("field %d (%s) is %s on one side and %s on the other", + number, name, a.Kind(), b.Kind()) + } + + switch a.Kind() { + case protoreflect.MessageKind, protoreflect.GroupKind: + if a.Message().FullName() != b.Message().FullName() { + return fmt.Sprintf("field %d (%s) refers to %s on one side and %s on the other", + number, name, a.Message().FullName(), b.Message().FullName()) + } + case protoreflect.EnumKind: + if a.Enum().FullName() != b.Enum().FullName() { + return fmt.Sprintf("field %d (%s) refers to %s on one side and %s on the other", + number, name, a.Enum().FullName(), b.Enum().FullName()) + } + default: + // Scalars are fully described by the kind equality checked above. + } + return "" +} + +func fieldsByNumber(m proto.Message) map[protoreflect.FieldNumber]protoreflect.FieldDescriptor { + fields := m.ProtoReflect().Descriptor().Fields() + byNumber := make(map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, fields.Len()) + for i := range fields.Len() { + field := fields.Get(i) + byNumber[field.Number()] = field + } + return byNumber +} + +// Field order drives the order of reported problems, which keeps a failure +// message stable between runs. +func sortedFieldNumbers( + fields map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, +) []protoreflect.FieldNumber { + numbers := make([]protoreflect.FieldNumber, 0, len(fields)) + for number := range fields { + numbers = append(numbers, number) + } + slices.Sort(numbers) + return numbers +} diff --git a/tests/sdk_server_host_test.go b/tests/sdk_server_host_test.go new file mode 100644 index 00000000000..2278f350960 --- /dev/null +++ b/tests/sdk_server_host_test.go @@ -0,0 +1,81 @@ +package tests + +import ( + "context" + "encoding/json" + "errors" + "os" + "testing" + "time" + + "github.com/stretchr/testify/require" + enumspb "go.temporal.io/api/enums/v1" + "go.temporal.io/server/common/namespace" + "go.temporal.io/server/tests/testcore" +) + +// TestSDKValidationServerHost is not a test. It keeps a dedicated cluster up so +// an SDK's own test suite can run against a server built from this tree, and +// tears it down when the caller writes the shutdown file. Opt-in like the +// other measurement tooling; nothing in a normal run should start a cluster +// and hold it for hours. +func TestSDKValidationServerHost(t *testing.T) { + if os.Getenv("TEMPORAL_STREAM_BENCH") != "1" { + t.Skip("set TEMPORAL_STREAM_BENCH=1 to run") + } + readyPath := os.Getenv("AI198_SDK_SERVER_READY_FILE") + stopPath := os.Getenv("AI198_SDK_SERVER_STOP_FILE") + if readyPath == "" || stopPath == "" { + t.Skip("SDK validation host needs explicit ready and shutdown paths") + } + _, err := os.Stat(stopPath) + require.ErrorIs(t, err, os.ErrNotExist, "a stale shutdown file must not silently stop this host") + env := testcore.NewEnv(t, testcore.WithDedicatedCluster()) + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + _, err = env.RegisterNamespace( + ctx, namespace.Name("default"), 1, enumspb.ARCHIVAL_STATE_DISABLED, "", "") + require.NoError(t, err) + config := env.GetTestClusterConfig() + metadata := map[string]any{ + "status": "running", "pid": os.Getpid(), "target": env.FrontendGRPCAddress(), + "namespace": "default", + "persistence": "SQLite", + "history_hosts": config.HistoryConfig.NumHistoryHosts, + "history_shards": config.HistoryConfig.NumHistoryShards, + "started_utc": time.Now().UTC().Format(time.RFC3339), + "shutdown_file": stopPath, + "source_provenance": "../server-source-provenance.json", + "configuration": "tests/testcore dedicated test-cluster defaults; " + + "namespace default added for SDK clients", + } + writeMetadata := func() { + data, marshalErr := json.MarshalIndent(metadata, "", " ") + require.NoError(t, marshalErr) + require.NoError(t, os.WriteFile(readyPath, append(data, '\n'), 0o644)) + } + writeMetadata() + t.Logf("SDK validation server ready at %s in namespace default; shutdown file %s", + env.FrontendGRPCAddress(), stopPath) + ticker := time.NewTicker(500 * time.Millisecond) + defer ticker.Stop() + deadline := time.NewTimer(2 * time.Hour) + defer deadline.Stop() + for { + select { + case <-ticker.C: + if _, statErr := os.Stat(stopPath); statErr == nil { + metadata["status"] = "stopping" + metadata["stopped_utc"] = time.Now().UTC().Format(time.RFC3339) + writeMetadata() + return + } else if !errors.Is(statErr, os.ErrNotExist) { + require.NoError(t, statErr) + } + case <-deadline.C: + metadata["status"] = "maximum-runtime-reached" + writeMetadata() + return + } + } +} diff --git a/tests/stream_consume_test.go b/tests/stream_consume_test.go index 13db3915c18..d0e9ab06e1e 100644 --- a/tests/stream_consume_test.go +++ b/tests/stream_consume_test.go @@ -1,14 +1,175 @@ package tests import ( + "context" "testing" + "time" "github.com/google/uuid" "github.com/stretchr/testify/require" + commandpb "go.temporal.io/api/command/v1" commonpb "go.temporal.io/api/common/v1" + enumspb "go.temporal.io/api/enums/v1" + failurepb "go.temporal.io/api/failure/v1" + historypb "go.temporal.io/api/history/v1" + protocolpb "go.temporal.io/api/protocol/v1" + streampb "go.temporal.io/api/stream/v1" + taskqueuepb "go.temporal.io/api/taskqueue/v1" + updatepb "go.temporal.io/api/update/v1" "go.temporal.io/api/workflowservice/v1" + chasmstream "go.temporal.io/server/chasm/lib/stream" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + chasmworkflow "go.temporal.io/server/chasm/lib/workflow" + "go.temporal.io/server/common/testing/await" + "go.temporal.io/server/tests/testcore" + "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/durationpb" ) +// Path C: a workflow consuming a stream. The slice rides the workflow task and +// only the offsets it covered are written to History, so consumption costs no +// event of its own no matter how many messages it carried. +func TestStreamWorkflowConsumesWithoutHistoryPayloads(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + id := "stream-wf-consume-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + we, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + // What each task was handed, in the order the tasks ran. + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + if task > 1 { + return nil, nil + } + // First task publishes; nothing is subscribed yet, so it consumes + // nothing. + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_APPEND_STREAM_RECORDS, + Attributes: &commandpb.Command_AppendStreamRecordsCommandAttributes{ + AppendStreamRecordsCommandAttributes: &commandpb.AppendStreamRecordsCommandAttributes{ + Records: []*streampb.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("first-token")}, Topic: "tokens"}, + {Body: &commonpb.Payload{Data: []byte("second-token")}, Topic: "tokens"}, + {Body: &commonpb.Payload{Data: []byte("third-token")}, Topic: "tokens"}, + }, + }, + }, + }}, nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Empty(t, delivered[0], "nothing is subscribed on the first task") + + // Subscribe from the start of the stream. + sub, err := s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, + WorkflowId: id, + StreamName: chasmworkflow.DefaultStreamName, + StartOffset: 0, + }, + }) + require.NoError(t, err) + require.Equal(t, int64(0), sub.GetFrontendResponse().GetStartOffset()) + + // Resubscribing must not rewind. Ranges below the cursor are already in + // History, and moving back would replay them as if they were new. + sub2, err := s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, + StreamName: chasmworkflow.DefaultStreamName, StartOffset: 2, + }, + }) + require.NoError(t, err) + require.Equal(t, int64(0), sub2.GetFrontendResponse().GetStartOffset(), + "a second subscribe must report the cursor already registered") + + // Second task: the published range should arrive on the task itself. + signalWorkflow(t, s, id, we.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + slice := currentSlice(t, delivered[1]) + require.Equal(t, int64(0), slice.GetFromOffset()) + require.Equal(t, int64(3), slice.GetToOffset()) + require.Len(t, slice.GetRecords(), 3) + require.Equal(t, "first-token", string(slice.GetRecords()[0].GetBody().GetData())) + require.Equal(t, "third-token", string(slice.GetRecords()[2].GetBody().GetData())) + + // Third task: the cursor is caught up, so the range is empty. An empty + // range is still delivered and still recorded, because a task that saw + // nothing is a fact replay has to reproduce. + signalWorkflow(t, s, id, we.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + idleSlice := currentSlice(t, delivered[2]) + require.Equal(t, int64(3), idleSlice.GetFromOffset(), "a caught-up subscription is still attached") + require.Equal(t, int64(3), idleSlice.GetToOffset()) + require.Empty(t, idleSlice.GetRecords()) + + events := env.GetHistory(s.ns, &commonpb.WorkflowExecution{WorkflowId: id, RunId: we.GetRunId()}) + recorded := recordedCursors(events) + + // One record per completed task from the subscription onward, including the + // one that consumed nothing. + require.Len(t, recorded, 2) + require.Equal(t, int64(0), recorded[0].GetFromOffset()) + require.Equal(t, int64(3), recorded[0].GetToOffset()) + require.Equal(t, int64(3), recorded[1].GetFromOffset()) + require.Equal(t, int64(3), recorded[1].GetToOffset(), + "the idle task must record the empty range rather than omit it") + + // The point of the design: offsets are in History, payloads are not. + for _, e := range events { + require.NotContains(t, e.String(), "first-token", + "a consumed payload must never reach History, found in %v", e.GetEventType()) + require.NotContains(t, e.String(), "third-token", + "a consumed payload must never reach History, found in %v", e.GetEventType()) + } +} + +func recordedCursors(events []*historypb.HistoryEvent) []*streampb.StreamRange { + var out []*streampb.StreamRange + for _, e := range events { + attrs := e.GetWorkflowTaskCompletedEventAttributes() + out = append(out, attrs.GetConsumedStreamRanges()...) + } + return out +} + func signalWorkflow(t *testing.T, s *streamTestEnv, workflowID, runID string) { t.Helper() _, err := s.env.FrontendClient().SignalWorkflowExecution( @@ -23,3 +184,1211 @@ func signalWorkflow(t *testing.T, s *streamTestEnv, workflowID, runID string) { ) require.NoError(t, err) } + +// Publishing never wakes a workflow, but an active subscription does. Without +// this the rest of a stream arrives only when something unrelated happens to +// schedule a task. +func TestStreamSubscriptionSchedulesItsOwnWorkflowTask(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + id := "stream-wf-wake-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + publish := func(bodies ...string) []*commandpb.Command { + messages := make([]*streampb.StreamRecord, len(bodies)) + for i, b := range bodies { + messages[i] = &streampb.StreamRecord{Body: &commonpb.Payload{Data: []byte(b)}, Topic: "tokens"} + } + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_APPEND_STREAM_RECORDS, + Attributes: &commandpb.Command_AppendStreamRecordsCommandAttributes{ + AppendStreamRecordsCommandAttributes: &commandpb.AppendStreamRecordsCommandAttributes{ + Records: messages, + }, + }, + }} + } + + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + switch task { + case 1: + return publish("warmup"), nil + case 2: + // Published while subscribed and caught up, so completing this + // task leaves the cursor behind head. + return publish("alpha", "beta"), nil + default: + return nil, nil + } + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + // Subscribe at the tail, so nothing is owed yet. + sub, err := s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, + StreamName: chasmworkflow.DefaultStreamName, StartPosition: chasmstream.Tail(), + }, + }) + require.NoError(t, err) + require.Equal(t, int64(1), sub.GetFrontendResponse().GetStartOffset()) + + signalWorkflow(t, s, id, "") + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Equal(t, int64(1), currentSlice(t, delivered[1]).GetToOffset(), + "nothing new at the tail yet") + + // No signal this time. The subscription owes two offsets, so completing the + // previous task has to have scheduled this one. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Len(t, delivered, 3) + woken := currentSlice(t, delivered[2]) + require.Equal(t, int64(1), woken.GetFromOffset()) + require.Equal(t, int64(3), woken.GetToOffset()) + require.Len(t, woken.GetRecords(), 2) + require.Equal(t, "alpha", string(woken.GetRecords()[0].GetBody().GetData())) + + // And it has to stop. A wake condition that stayed true would spin the + // workflow on empty tasks forever. + pollCtx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + defer cancel() + idle, err := env.FrontendClient().PollWorkflowTaskQueue( + pollCtx, + &workflowservice.PollWorkflowTaskQueueRequest{ + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + }, + ) + if err == nil { + require.Empty(t, idle.GetTaskToken(), + "a caught-up subscription must not keep scheduling tasks") + } +} + +// Subscribing to a stream that already has data is the other case where the +// workflow is owed a task it did not ask for by any other means. +func TestSubscribingToABacklogSchedulesAWorkflowTask(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + id := "stream-wf-backlog-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + if task > 1 { + return nil, nil + } + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_APPEND_STREAM_RECORDS, + Attributes: &commandpb.Command_AppendStreamRecordsCommandAttributes{ + AppendStreamRecordsCommandAttributes: &commandpb.AppendStreamRecordsCommandAttributes{ + Records: []*streampb.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("backlog-1")}, Topic: "tokens"}, + {Body: &commonpb.Payload{Data: []byte("backlog-2")}, Topic: "tokens"}, + }, + }, + }, + }}, nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, + StreamName: chasmworkflow.DefaultStreamName, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // No signal. Subscribing behind the head is itself a reason to run. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Len(t, delivered, 2) + backlog := currentSlice(t, delivered[1]) + require.Equal(t, int64(0), backlog.GetFromOffset()) + require.Equal(t, int64(2), backlog.GetToOffset()) +} + +// History records the offsets a task consumed and never the payloads, so a +// worker replaying that task has to be handed the bytes again. The response +// field alone cannot do it: it is built once per delivery while a cache miss +// replays every prior task, so each re-supplied range travels with the id of +// the event that recorded it. +func TestReplayGetsTheConsumedRangesBackFromTheStream(t *testing.T) { + // Dedicated, because forcing the replay path means evicting the cached + // workflow context, and CloseShard is not allowed on a shared cluster. + env := testcore.NewEnv(t, testcore.WithDedicatedCluster()) + s := newStreamTestEnvFrom(t, env) + + id := "stream-wf-replay-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + we, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + if task > 1 { + return nil, nil + } + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_APPEND_STREAM_RECORDS, + Attributes: &commandpb.Command_AppendStreamRecordsCommandAttributes{ + AppendStreamRecordsCommandAttributes: &commandpb.AppendStreamRecordsCommandAttributes{ + Records: []*streampb.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("replay-me-1")}, Topic: "tokens"}, + {Body: &commonpb.Payload{Data: []byte("replay-me-2")}, Topic: "tokens"}, + }, + }, + }, + }}, nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, + StreamName: chasmworkflow.DefaultStreamName, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // Consume the range. This is the task replay will have to reproduce. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Len(t, currentSlice(t, delivered[1]).GetRecords(), 2) + + consumedAt := completedEventWithCursors(t, env.GetHistory(s.ns, + &commonpb.WorkflowExecution{WorkflowId: id, RunId: we.GetRunId()})) + + // Drop the cached context so the next task is served with full history, + // which is the replay path. + env.CloseShard(env.NamespaceID().String(), id) + + signalWorkflow(t, s, id, we.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + replayed := sliceForEvent(delivered[2], consumedAt) + require.NotNil(t, replayed, + "the replayed task must carry the range recorded at event %d", consumedAt) + require.Equal(t, int64(0), replayed.GetFromOffset()) + require.Equal(t, int64(2), replayed.GetToOffset()) + require.Len(t, replayed.GetRecords(), 2, "the payloads have to come back from the stream") + require.Equal(t, "replay-me-1", string(replayed.GetRecords()[0].GetBody().GetData())) + require.Equal(t, "replay-me-2", string(replayed.GetRecords()[1].GetBody().GetData())) +} + +// completedEventWithCursors returns the id of the first WorkflowTaskCompleted +// event that recorded a non-empty consumed range. +func completedEventWithCursors(t *testing.T, events []*historypb.HistoryEvent) int64 { + t.Helper() + for _, e := range events { + for _, c := range e.GetWorkflowTaskCompletedEventAttributes().GetConsumedStreamRanges() { + if c.GetToOffset() > c.GetFromOffset() { + return e.GetEventId() + } + } + } + t.Fatal("no completed event recorded a consumed range") + return 0 +} + +// currentSlice picks the slice for the task about to run. Slices carrying an +// event id belong to tasks being replayed, and a response can hold both. +func currentSlice(t *testing.T, slices []*streampb.StreamSlice) *streampb.StreamSlice { + t.Helper() + for _, s := range slices { + if s.GetWorkflowTaskCompletedEventId() == 0 { + return s + } + } + t.Fatal("no slice for the current task") + return nil +} + +func sliceForEvent(slices []*streampb.StreamSlice, eventID int64) *streampb.StreamSlice { + for _, s := range slices { + if s.GetWorkflowTaskCompletedEventId() == eventID { + return s + } + } + return nil +} + +// The shape the feature exists for: a producer writing off-shard and a workflow +// consuming it, with no relationship between them beyond the stream. +// +// A consuming workflow cannot read another execution's frontier while closing +// its own transaction, so the stream pushes it. The push dirties the consumer, +// whose transaction close then sees it is behind and schedules a workflow task. +// +// The payload is read from the stream's own execution, which can live on +// another shard, so delivery has to route the read rather than resolve the +// stream locally. +func TestWorkflowConsumesAStreamItDoesNotOwn(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "external-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + id := "stream-wf-external-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + we, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, + StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // The subscription has to reach the stream, or truncation could take a + // range the cursor still points at. + desc, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.NoError(t, err) + consumers := desc.GetFrontendResponse().GetState().GetConsumers() + require.Len(t, consumers, 1) + for _, c := range consumers { + require.True(t, c.GetExternal()) + require.True(t, c.GetActive()) + require.Equal(t, id, c.GetWorkflowId()) + } + + // An off-shard producer, unrelated to the workflow. + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + { + Body: &commonpb.Payload{Data: []byte("from-outside-1")}, + Kind: streampb.STREAM_RECORD_KIND_DATA, + }, + { + Body: &commonpb.Payload{Data: []byte("from-outside-2")}, + Kind: streampb.STREAM_RECORD_KIND_DATA, + }, + }, + }, + }) + require.NoError(t, err) + + // The append alone has to produce a workflow task, with no signal and no + // other traffic against the workflow. + await.RequireTruef(t, func() bool { + events := env.GetHistory(s.ns, &commonpb.WorkflowExecution{WorkflowId: id, RunId: we.GetRunId()}) + scheduled := 0 + for _, e := range events { + if e.GetEventType() == enumspb.EVENT_TYPE_WORKFLOW_TASK_SCHEDULED { + scheduled++ + } + } + return scheduled >= 2 + }, 20*time.Second, 200*time.Millisecond, "the append must schedule a workflow task on its own") + + // And it must reach a worker. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + got := currentSlice(t, delivered[1]) + require.Equal(t, streamID, got.GetStreamId()) + require.Equal(t, int64(0), got.GetFromOffset()) + require.Equal(t, int64(2), got.GetToOffset()) + require.Len(t, got.GetRecords(), 2) + require.Equal(t, "from-outside-1", string(got.GetRecords()[0].GetBody().GetData())) +} + +// A cursor is workflow state, so a continue-as-new has to carry it. Without +// that the subscription ends silently: the stream keeps its consumer pin and +// keeps pushing to the workflow id, and the successor run has nowhere to put +// what arrives. +func TestSubscriptionSurvivesContinueAsNew(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "carried-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + id := "stream-wf-can-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + if task == 2 { + // Continue as new, carrying nothing of its own. + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_CONTINUE_AS_NEW_WORKFLOW_EXECUTION, + Attributes: &commandpb.Command_ContinueAsNewWorkflowExecutionCommandAttributes{ + ContinueAsNewWorkflowExecutionCommandAttributes: &commandpb. + ContinueAsNewWorkflowExecutionCommandAttributes{ + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + }, + }, + }}, nil + } + return nil, nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // First append, consumed by the original run. + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("before-can")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + // Task 2 receives it and continues as new. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + consumed := currentSlice(t, delivered[1]) + require.Equal(t, int64(1), consumed.GetToOffset()) + require.Len(t, consumed.GetRecords(), 1) + + // Drain the successor's first task, which carries nothing new. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + // Append again. Only a carried subscription can deliver this, and it must + // resume at offset 1 rather than replaying from the start. + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("after-can")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + afterCAN := currentSlice(t, delivered[len(delivered)-1]) + require.Equal(t, int64(1), afterCAN.GetFromOffset(), + "the successor resumes where its predecessor stopped") + require.Equal(t, int64(2), afterCAN.GetToOffset()) + require.Len(t, afterCAN.GetRecords(), 1) + require.Equal(t, "after-can", string(afterCAN.GetRecords()[0].GetBody().GetData())) + + // The pin followed the subscription to the new run, with the floor where + // that run's cursor began. The predecessor's ranges are in a closed history + // that never replays, so nothing holds offset 0 any more. + described, err := env.FrontendClient().DescribeWorkflowExecution(s.ctx(), + &workflowservice.DescribeWorkflowExecutionRequest{ + Namespace: s.ns, Execution: &commonpb.WorkflowExecution{WorkflowId: id}, + }) + require.NoError(t, err) + successor := described.GetWorkflowExecutionInfo().GetExecution().GetRunId() + state := describeStream(t, s, streamID) + require.Len(t, state.GetConsumers(), 1, "one pin, keyed to the run that consumes") + for _, consumer := range state.GetConsumers() { + require.Equal(t, successor, consumer.GetRunId()) + require.Equal(t, int64(1), consumer.GetReplayFloor()) + } +} + +// A workflow subscribing itself, rather than being subscribed out of band. +// +// The command carries only the stream id and a start offset. The server +// resolves the offset against the stream's frontier: a workflow cannot read +// another execution's frontier without doing I/O, and a value it carried would +// be a reading rather than a fact, so it could differ on replay. +func TestWorkflowSubscribesToAStreamItself(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "self-sub-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + id := "stream-wf-selfsub-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + if task > 1 { + return nil, nil + } + // The workflow subscribes itself on its first task. + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_SUBSCRIBE_STREAM, + Attributes: &commandpb.Command_SubscribeStreamCommandAttributes{ + SubscribeStreamCommandAttributes: &commandpb.SubscribeStreamCommandAttributes{ + StreamNameOrId: streamID, + StartOffset: 0, + }, + }, + }}, nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Empty(t, delivered[0], "nothing is subscribed until this task completes") + + // The subscription has to have reached the stream, or truncation could take + // a range the cursor still points at. + desc, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.NoError(t, err) + require.Len(t, desc.GetFrontendResponse().GetState().GetConsumers(), 1, + "the command must have registered a consumer on the stream") + + // The subscription is recorded once, with the offset the server resolved. + // Without it nothing in History explains why this workflow starts receiving + // stream data, and a command that writes no event desynchronises the + // command-to-event matching every SDK's replay depends on. + subscribed := subscribedEvents(env.GetHistory(s.ns, + &commonpb.WorkflowExecution{WorkflowId: id})) + require.Len(t, subscribed, 1) + require.Equal(t, streamID, subscribed[0].GetStreamId()) + require.Equal(t, int64(0), subscribed[0].GetStartOffset()) + + // An off-shard producer, with no signal to the workflow. + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("self-1")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + {Body: &commonpb.Payload{Data: []byte("self-2")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + got := currentSlice(t, delivered[1]) + require.Equal(t, streamID, got.GetStreamId()) + require.Equal(t, int64(0), got.GetFromOffset()) + require.Equal(t, int64(2), got.GetToOffset()) + require.Len(t, got.GetRecords(), 2) + require.Equal(t, "self-1", string(got.GetRecords()[0].GetBody().GetData())) +} + +func subscribedEvents( + events []*historypb.HistoryEvent, +) []*historypb.WorkflowStreamSubscribedEventAttributes { + var out []*historypb.WorkflowStreamSubscribedEventAttributes + for _, e := range events { + if attrs := e.GetWorkflowStreamSubscribedEventAttributes(); attrs != nil { + out = append(out, attrs) + } + } + return out +} + +// A second subscribe to a stream the workflow already holds registers nothing, +// but it still has to write an event. Every SDK matches issued commands against +// command-generated events by position, so a command producing no event leaves +// the machine that issued it unmatched and puts every later command out of step. +func TestResubscribingStillWritesItsEvent(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "resub-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + id := "stream-wf-resub-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + we, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + subscribe := []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_SUBSCRIBE_STREAM, + Attributes: &commandpb.Command_SubscribeStreamCommandAttributes{ + SubscribeStreamCommandAttributes: &commandpb.SubscribeStreamCommandAttributes{ + StreamNameOrId: streamID, StartOffset: 0, + }, + }, + }} + + task := 0 + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + task++ + if task > 2 { + return nil, nil + } + return subscribe, nil + }, + Logger: env.Logger, + T: t, + } + + // Two tasks, each issuing the same subscribe. The second registers nothing. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + _, err = env.FrontendClient().SignalWorkflowExecution( + s.ctx(), + &workflowservice.SignalWorkflowExecutionRequest{ + Namespace: s.ns, + WorkflowExecution: &commonpb.WorkflowExecution{WorkflowId: id}, + SignalName: "wake", + Identity: "tester", + RequestId: uuid.NewString(), + }, + ) + require.NoError(t, err) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + events := env.GetHistory(s.ns, &commonpb.WorkflowExecution{WorkflowId: id, RunId: we.GetRunId()}) + var subscribed []*historypb.WorkflowStreamSubscribedEventAttributes + for _, e := range events { + if a := e.GetWorkflowStreamSubscribedEventAttributes(); a != nil { + subscribed = append(subscribed, a) + } + } + require.Len(t, subscribed, 2, "each subscribe command owes an event, even a repeat") + require.Equal(t, streamID, subscribed[1].GetStreamId()) + // The repeat reports where the cursor actually is, not the offset it asked + // for, so a replaying worker reads a fact rather than a request. + require.Equal(t, int64(0), subscribed[1].GetStartOffset()) +} + +// A subscribe followed by another command in the same Workflow Task. Every SDK +// matches issued commands against the events they produced by position, so the +// subscription's event has to sit where its command did, even though its start +// offset is only resolved after every command has run. +func TestStreamSubscribeEventKeepsCommandOrder(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "order-src-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + id := "stream-order-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-order"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + //nolint:staticcheck // SA1019: deprecated poller is the only one that can emit the command. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + // Subscribe first, then publish. The publish event must come second. + return []*commandpb.Command{ + { + CommandType: enumspb.COMMAND_TYPE_SUBSCRIBE_STREAM, + Attributes: &commandpb.Command_SubscribeStreamCommandAttributes{ + SubscribeStreamCommandAttributes: &commandpb.SubscribeStreamCommandAttributes{ + StreamNameOrId: streamID, StartOffset: 0, + }, + }, + }, + { + CommandType: enumspb.COMMAND_TYPE_APPEND_STREAM_RECORDS, + Attributes: &commandpb.Command_AppendStreamRecordsCommandAttributes{ + AppendStreamRecordsCommandAttributes: &commandpb.AppendStreamRecordsCommandAttributes{ + Records: []*streampb.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("after subscribe")}}, + }, + }, + }, + }, + }, nil + }, + Logger: env.Logger, + T: t, + } + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + var order []enumspb.EventType + for _, e := range env.GetHistory(s.ns, &commonpb.WorkflowExecution{WorkflowId: id}) { + switch e.GetEventType() { + case enumspb.EVENT_TYPE_WORKFLOW_STREAM_SUBSCRIBED, + enumspb.EVENT_TYPE_WORKFLOW_STREAM_RECORDS_APPENDED: + order = append(order, e.GetEventType()) + default: + // Every other event is noise for this assertion. + } + } + require.Equal(t, []enumspb.EventType{ + enumspb.EVENT_TYPE_WORKFLOW_STREAM_SUBSCRIBED, + enumspb.EVENT_TYPE_WORKFLOW_STREAM_RECORDS_APPENDED, + }, order, "the events must be in the order their commands were issued") +} + +// An activity streaming tokens over the RPC has no reason to know about message +// kinds. A message appended with the kind left unset has to reach a subscribed +// workflow like any other, rather than take an offset and vanish. +func TestMessagesAppendedWithoutAKindReachTheWorkflow(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "kindless-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + execution, tq := startConsumer(t, s, "stream-wf-kindless-") + + var delivered [][]*streampb.StreamSlice + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("no-kind-1")}}, + {Body: &commonpb.Payload{Data: []byte("no-kind-2")}}, + }, + }, + }) + require.NoError(t, err) + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + got := currentSlice(t, delivered[1]) + require.Equal(t, int64(2), got.GetToOffset()) + require.Equal(t, []string{"no-kind-1", "no-kind-2"}, apiBodies(got.GetRecords()), + "the slice must carry the messages, not just advance past them") +} + +// A speculative workflow task must not consume a range. +// +// It can be thrown away, and a discarded one writes no completed event, so +// nothing commits the cursor. Handing it the range would leave the staged +// range in place: the worker's in-memory workflow has already consumed those +// records, and the next task would deliver them again, so live execution would +// see the batch twice where replay sees it once. +func TestSpeculativeTaskConsumesNoStreamRange(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "speculative-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + id := "stream-wf-speculative-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + var sawUpdate []bool + + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + sawUpdate = append(sawUpdate, len(resp.GetMessages()) > 0) + return nil, nil + }, + // Every update is rejected, which is what makes the speculative task + // discardable: it writes no events at all. + MessageHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*protocolpb.Message, error) { + var out []*protocolpb.Message + for _, m := range resp.GetMessages() { + request := &updatepb.Request{} + require.NoError(t, m.GetBody().UnmarshalTo(request)) + rejection, err := anypb.New(&updatepb.Rejection{ + RejectedRequestMessageId: m.GetId(), + RejectedRequest: request, + Failure: &failurepb.Failure{Message: "not this run"}, + }) + require.NoError(t, err) + out = append(out, &protocolpb.Message{ + Id: uuid.NewString(), + ProtocolInstanceId: request.GetMeta().GetUpdateId(), + SequencingId: nil, + Body: rejection, + }) + } + return out, nil + }, + Logger: env.Logger, + T: t, + } + + // Drain the first task and subscribe, so the cursor is caught up and the + // workflow owes no task. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // An update with no task pending gets a speculative one. + updateDone := make(chan struct{}) + go func() { + defer close(updateDone) + _, _ = env.FrontendClient().UpdateWorkflowExecution(context.Background(), + &workflowservice.UpdateWorkflowExecutionRequest{ + Namespace: s.ns, + WorkflowExecution: &commonpb.WorkflowExecution{WorkflowId: id}, + Request: &updatepb.Request{ + Meta: &updatepb.Meta{UpdateId: uuid.NewString(), Identity: "tester"}, + Input: &updatepb.Input{Name: "rejected"}, + }, + WaitPolicy: &updatepb.WaitPolicy{ + LifecycleStage: enumspb.UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_ACCEPTED, + }, + }) + }() + + // Records land while the speculative task is scheduled, which is the one + // window where delivery could hand them to it. + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("m0")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + <-updateDone + + // Whichever task carried the update carried no records. + require.Contains(t, sawUpdate, true, "the update has to have reached a workflow task") + for i, sawIt := range sawUpdate { + if !sawIt { + continue + } + for _, slice := range delivered[i] { + require.Empty(t, slice.GetRecords(), + "a task carrying an update may be discarded, so it consumes nothing") + } + } + + // The record still arrives, exactly once, on a task that can commit it. + await.RequireTruef(t, func() bool { + _, err := poller.PollAndProcessWorkflowTask() + if err != nil { + return false + } + for _, slice := range delivered[len(delivered)-1] { + if len(slice.GetRecords()) == 1 && + string(slice.GetRecords()[0].GetBody().GetData()) == "m0" { + return true + } + } + return false + }, 20*time.Second, 200*time.Millisecond, "the record has to reach a task that commits it") + + // And it is not handed out a second time. + events := env.GetHistory(s.ns, &commonpb.WorkflowExecution{WorkflowId: id}) + consumed := 0 + for _, e := range events { + for _, c := range e.GetWorkflowTaskCompletedEventAttributes().GetConsumedStreamRanges() { + consumed += int(c.GetToOffset() - c.GetFromOffset()) + } + } + require.Equal(t, 1, consumed, "the range is recorded once") +} + +// A subscription to a stream the workflow owns ends at a continue-as-new. +// +// The stream lives in the execution, and the execution does not survive the +// run transition, so the successor gets a new stream of the same name starting +// at offset zero. Characterized rather than fixed: carrying the stream itself +// is a design decision, and until it is made this is what a reader following +// the workflow id sees. +func TestOwnedStreamSubscriptionEndsAtContinueAsNew(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + id := "stream-wf-owned-can-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + + _, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + var delivered [][]*streampb.StreamSlice + task := 0 + + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + task++ + if task == 2 { + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_CONTINUE_AS_NEW_WORKFLOW_EXECUTION, + Attributes: &commandpb.Command_ContinueAsNewWorkflowExecutionCommandAttributes{ + ContinueAsNewWorkflowExecutionCommandAttributes: &commandpb. + ContinueAsNewWorkflowExecutionCommandAttributes{ + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + }, + }, + }}, nil + } + return nil, nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + // Subscribed to a stream of its own, by name, with no standalone stream in + // the picture. + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, StreamName: "output", StartOffset: 0, + }, + }) + require.NoError(t, err) + + _, err = s.client.AddWorkflowMessages(s.ctx(), &streamlib.AddWorkflowMessagesRequest{ + FrontendRequest: &streamlib.AddWorkflowMessagesInput{ + Namespace: s.ns, WorkflowId: id, StreamName: "output", + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("before-can")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + // Task 2 consumes it and continues as new. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + consumed := currentSlice(t, delivered[1]) + require.Equal(t, int64(1), consumed.GetToOffset()) + + // The successor holds no cursor, so a write to its stream of the same name + // starts a new offset space and reaches no subscription. + _, err = s.client.AddWorkflowMessages(s.ctx(), &streamlib.AddWorkflowMessagesRequest{ + FrontendRequest: &streamlib.AddWorkflowMessagesInput{ + Namespace: s.ns, WorkflowId: id, StreamName: "output", + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("after-can")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + read, err := s.client.PollWorkflowMessages(s.ctx(), &streamlib.PollWorkflowMessagesRequest{ + FrontendRequest: &streamlib.PollWorkflowMessagesInput{ + Namespace: s.ns, WorkflowId: id, StreamName: "output", FromOffset: 0, MaxMessages: 10, + }, + }) + require.NoError(t, err) + records := read.GetFrontendResponse().GetRecords() + require.Len(t, records, 1, "the successor's stream is a new one") + require.Equal(t, "after-can", string(records[0].GetBody().GetData())) + require.Equal(t, int64(0), records[0].GetOffset(), + "the offset space restarts, so a reader following the workflow id sees it rewind") +} diff --git a/tests/stream_consumer_lifecycle_test.go b/tests/stream_consumer_lifecycle_test.go index 9f14115b45c..8ae46278c90 100644 --- a/tests/stream_consumer_lifecycle_test.go +++ b/tests/stream_consumer_lifecycle_test.go @@ -1,8 +1,20 @@ package tests import ( + "testing" + "time" + + "github.com/google/uuid" + "github.com/stretchr/testify/require" commandpb "go.temporal.io/api/command/v1" + commonpb "go.temporal.io/api/common/v1" enumspb "go.temporal.io/api/enums/v1" + taskqueuepb "go.temporal.io/api/taskqueue/v1" + "go.temporal.io/api/workflowservice/v1" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + "go.temporal.io/server/common/testing/await" + "go.temporal.io/server/tests/testcore" + "google.golang.org/protobuf/types/known/durationpb" ) func completeWorkflowCommand() []*commandpb.Command { @@ -14,3 +26,169 @@ func completeWorkflowCommand() []*commandpb.Command { }, }} } + +func describeStream(t *testing.T, s *streamTestEnv, streamID string) *streamlib.StreamState { + t.Helper() + desc, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.NoError(t, err) + return desc.GetFrontendResponse().GetState() +} + +// subscribeConsumeAndComplete runs a consumer through one delivered range and +// then completes it, leaving its pin on the stream. +func subscribeConsumeAndComplete( + t *testing.T, s *streamTestEnv, streamID string, prefix string, +) *commonpb.WorkflowExecution { + t.Helper() + execution, tq := startConsumer(t, s, prefix) + task := 0 + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: s.env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + task++ + if task == 3 { + return completeWorkflowCommand(), nil + } + return nil, nil + }, + Logger: s.env.Logger, + T: t, + } + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, Records: streamMsgs("tokens", "one", "two"), + }, + }) + require.NoError(t, err) + + // Consumes the range, then completes on the task after. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + signalWorkflow(t, s, execution.GetWorkflowId(), execution.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + state := describeStream(t, s, streamID) + require.Len(t, state.GetConsumers(), 1, "the completed run still holds its pin for now") + return execution +} + +// A consumer that completed can never replay, so the floor it held is a leak. +// An append is what makes the stream go and ask whether its consumers are +// still there, and it releases the pin on the answer. +func TestACompletedConsumerReleasesItsFloorOnTheNextAppend(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + streamID := "released-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + subscribeConsumeAndComplete(t, s, streamID, "stream-wf-released-") + + _, err := s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, Records: streamMsgs("tokens", "three"), + }, + }) + require.NoError(t, err) + await.RequireTrue(t, func() bool { + return len(describeStream(t, s, streamID).GetConsumers()) == 0 + }, 20*time.Second, 100*time.Millisecond) + + _, err = s.client.TruncateStream(s.ctx(), &streamlib.TruncateStreamRequest{ + FrontendRequest: &streamlib.TruncateStreamInput{ + Namespace: s.ns, StreamId: streamID, NewBaseOffset: 2, + }, + }) + require.NoError(t, err, "nothing holds the floor once the consumer is gone") +} + +// A stream nobody appends to any more never asks, so a pin left by a finished +// run would hold its records for good. The truncate that the pin refuses is +// the other place that can find out, so it probes the runs holding it and +// tries again. +func TestARefusedTruncateProbesThePinsItWasRefusedFor(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + streamID := "probed-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + subscribeConsumeAndComplete(t, s, streamID, "stream-wf-probed-") + + _, err := s.client.TruncateStream(s.ctx(), &streamlib.TruncateStreamRequest{ + FrontendRequest: &streamlib.TruncateStreamInput{ + Namespace: s.ns, StreamId: streamID, NewBaseOffset: 2, + }, + }) + require.NoError(t, err, "the probe found the run finished, so nothing holds the floor") + require.Empty(t, describeStream(t, s, streamID).GetConsumers()) +} + +// A new run of the same workflow id is a new consumer. It subscribes at its +// own offset and takes over the pin, rather than inheriting a floor from a run +// that finished, which could be below the stream's base and refuse it. +func TestANewRunSubscribesFreshAfterThePreviousCompleted(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + streamID := "rerun-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + + first := subscribeConsumeAndComplete(t, s, streamID, "stream-wf-rerun-") + + // The same workflow id, started again after the first run completed. + second, err := env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: first.GetWorkflowId(), + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: &taskqueuepb.TaskQueue{Name: first.GetWorkflowId() + "-tq2"}, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + require.NotEqual(t, first.GetRunId(), second.GetRunId()) + + sub, err := s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: first.GetWorkflowId(), StreamId: streamID, StartOffset: 2, + }, + }) + require.NoError(t, err) + require.Equal(t, int64(2), sub.GetFrontendResponse().GetStartOffset(), + "the new run starts where it asked, not where the old run did") + + state := describeStream(t, s, streamID) + require.Len(t, state.GetConsumers(), 1, + "the old run's pin is replaced, not kept beside the new one") + for _, consumer := range state.GetConsumers() { + require.Equal(t, second.GetRunId(), consumer.GetRunId()) + require.Equal(t, int64(2), consumer.GetReplayFloor()) + } + + _, err = s.client.TruncateStream(s.ctx(), &streamlib.TruncateStreamRequest{ + FrontendRequest: &streamlib.TruncateStreamInput{ + Namespace: s.ns, StreamId: streamID, NewBaseOffset: 2, + }, + }) + require.NoError(t, err, "only the new run's floor holds") +} diff --git a/tests/stream_publish_cost_test.go b/tests/stream_publish_cost_test.go new file mode 100644 index 00000000000..7195c575fbf --- /dev/null +++ b/tests/stream_publish_cost_test.go @@ -0,0 +1,307 @@ +package tests + +import ( + "fmt" + "os" + "strings" + "testing" + "time" + + "github.com/google/uuid" + "github.com/stretchr/testify/require" + commandpb "go.temporal.io/api/command/v1" + commonpb "go.temporal.io/api/common/v1" + enumspb "go.temporal.io/api/enums/v1" + streampb "go.temporal.io/api/stream/v1" + taskqueuepb "go.temporal.io/api/taskqueue/v1" + "go.temporal.io/api/workflowservice/v1" + "go.temporal.io/server/tests/testcore" + "google.golang.org/protobuf/types/known/durationpb" +) + +// What the history event per publish costs. +// +// Every SDK matches commands to events positionally, so the publish command +// has to produce one. The objection is that unlike subscribing, which happens +// once, publishing happens per batch. This measures the per-batch price so the +// trade is decided on a number. +// +// The method is a marginal one. Each arm runs a workflow whose single workflow +// task carries N publish commands and then completes, so history holds the +// fixed opening and closing events plus exactly N publishes. Differencing +// against the N=0 arm cancels the fixed part and leaves the cost of one +// publish. Message size is varied against a fixed batch count to show whether +// payload bytes reach History at all. + +type publishCostArm struct { + name string + batches int + messagesPerBatch int + messageSize int + // Sends the same bytes as Signals instead, which is what a workflow + // streaming today has to do. The comparison is the point of the exercise. + viaSignal bool +} + +type publishCostResult struct { + arm publishCostArm + historyEvents int64 + historyBytes int64 +} + +func (r publishCostResult) messages() int { + return r.arm.batches * r.arm.messagesPerBatch +} + +// The published limits a per-batch event has to be judged against. +const ( + historyCountLimitError = 50 * 1024 + historySizeLimitError = 50 * 1024 * 1024 +) + +func TestStreamPublishHistoryCost(t *testing.T) { + if testing.Short() { + t.Skip("measurement, not a correctness check") + } + // Each arm holds a cluster of its own until the whole test returns, so ten + // arms outlast the dedicated pool. Opt in like the other measurements. + if os.Getenv("TEMPORAL_STREAM_BENCH") != "1" { + t.Skip("set TEMPORAL_STREAM_BENCH=1 to run") + } + + arms := []publishCostArm{ + // The control. Everything is differenced against this. + {name: "control", batches: 0}, + + // Batch count at a fixed message shape: is the cost linear, and what + // is the slope. + {name: "stream-b1", batches: 1, messagesPerBatch: 1, messageSize: 20}, + {name: "stream-b10", batches: 10, messagesPerBatch: 1, messageSize: 20}, + {name: "stream-b100", batches: 100, messagesPerBatch: 1, messageSize: 20}, + {name: "stream-b500", batches: 500, messagesPerBatch: 1, messageSize: 20}, + + // Same batch count, more messages inside each: the per-batch event + // should not notice. + {name: "stream-b100-m10", batches: 100, messagesPerBatch: 10, messageSize: 20}, + + // Same batch count, bigger messages: this is the claim that payloads + // never enter History, stated as a measurement. + {name: "stream-b100-s200", batches: 100, messagesPerBatch: 1, messageSize: 200}, + {name: "stream-b100-s2000", batches: 100, messagesPerBatch: 1, messageSize: 2000}, + + // What the same traffic costs through Signals today. + {name: "signal-b100-s20", batches: 100, messagesPerBatch: 1, messageSize: 20, viaSignal: true}, + { + name: "signal-b100-s2000", batches: 100, messagesPerBatch: 1, messageSize: 2000, + viaSignal: true, + }, + } + + results := make([]publishCostResult, 0, len(arms)) + byName := map[string]publishCostResult{} + for _, arm := range arms { + r := runPublishCostArm(t, arm) + results = append(results, r) + byName[arm.name] = r + } + reportPublishCost(t, results) + assertPublishCost(t, byName) +} + +// The report is the deliverable, but the properties it shows are the ones the +// design rests on, so they are asserted rather than left to be eyeballed. +func assertPublishCost(t *testing.T, byName map[string]publishCostResult) { + control := byName["control"] + marginalBytes := func(name string) int64 { + return byName[name].historyBytes - control.historyBytes + } + marginalEvents := func(name string) int64 { + return byName[name].historyEvents - control.historyEvents + } + + // One event per batch, not per message. b100-m10 publishes ten times the + // messages of b100 through the same hundred commands. + require.Equal(t, int64(100), marginalEvents("stream-b100")) + require.Equal(t, int64(100), marginalEvents("stream-b100-m10")) + require.Equal(t, int64(500), marginalEvents("stream-b500")) + + // Ten times the payload must not move History, which is the claim that + // bodies never enter it. Judged against what a leak would cost rather than + // against zero: event sizes wobble by a byte or two on varint widths, while + // 1800 extra bytes per message across a hundred batches would be six + // figures. + sizeDrift := marginalBytes("stream-b100-s2000") - marginalBytes("stream-b100-s200") + require.Less(t, max(sizeDrift, -sizeDrift), int64(2000), + "10x the payload moved the history cost, so payload is reaching History") + + // Ten times the messages through the same batches, within a byte or two of + // noise from varint widths. + require.InDelta(t, marginalBytes("stream-b100"), marginalBytes("stream-b100-m10"), 200, + "cost tracked message count rather than batch count") + + // The comparison that justifies the feature. Same traffic, and Signals are + // the only way to do this today. + require.Less(t, marginalBytes("stream-b100-s2000"), marginalBytes("signal-b100-s2000")/20, + "a stream publish should be far cheaper than the Signal it replaces") +} + +func runPublishCostArm(t *testing.T, arm publishCostArm) publishCostResult { + t.Helper() + env := testcore.NewEnv(t, testcore.WithDisableTestloggerFailure()) + + // Fixed-width regardless of the arm, because the workflow id and the task + // queue name derived from it are both carried in the opening events. Naming + // the arms in there would put ten bytes of arm-name difference into the very + // figure being differenced. + id := "publish-cost-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + ctx := testcore.NewContext() + + _, err := env.FrontendClient().StartWorkflowExecution( + ctx, + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: env.Namespace().String(), + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "publish-cost"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(60 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + body := []byte(strings.Repeat("x", arm.messageSize)) + + // Sent before the first workflow task is polled, so they land in history + // ahead of it and the single task still closes the workflow. + if arm.viaSignal { + for range arm.batches { + payloads := make([]*commonpb.Payload, 0, arm.messagesPerBatch) + for range arm.messagesPerBatch { + payloads = append(payloads, &commonpb.Payload{Data: body}) + } + _, err := env.FrontendClient().SignalWorkflowExecution( + ctx, + &workflowservice.SignalWorkflowExecutionRequest{ + Namespace: env.Namespace().String(), + WorkflowExecution: &commonpb.WorkflowExecution{WorkflowId: id}, + SignalName: "stream-item", + Input: &commonpb.Payloads{Payloads: payloads}, + Identity: "tester", + RequestId: uuid.NewString(), + }, + ) + require.NoError(t, err) + } + } + + //nolint:staticcheck // SA1019: only the deprecated poller emits raw commands. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: env.Namespace().String(), + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + commands := make([]*commandpb.Command, 0, arm.batches+1) + if !arm.viaSignal { + for range arm.batches { + messages := make([]*streampb.StreamRecord, 0, arm.messagesPerBatch) + for range arm.messagesPerBatch { + messages = append(messages, &streampb.StreamRecord{ + Body: &commonpb.Payload{Data: body}, + Topic: "progress", + }) + } + commands = append(commands, &commandpb.Command{ + CommandType: enumspb.COMMAND_TYPE_APPEND_STREAM_RECORDS, + Attributes: &commandpb.Command_AppendStreamRecordsCommandAttributes{ + AppendStreamRecordsCommandAttributes: &commandpb.AppendStreamRecordsCommandAttributes{ + Records: messages, + }, + }, + }) + } + } + return append(commands, completeWorkflowCommand()...), nil + }, + Logger: env.Logger, + T: t, + } + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + desc, err := env.FrontendClient().DescribeWorkflowExecution( + ctx, + &workflowservice.DescribeWorkflowExecutionRequest{ + Namespace: env.Namespace().String(), + Execution: &commonpb.WorkflowExecution{WorkflowId: id}, + }, + ) + require.NoError(t, err) + + return publishCostResult{ + arm: arm, + historyEvents: desc.GetWorkflowExecutionInfo().GetHistoryLength(), + historyBytes: desc.GetWorkflowExecutionInfo().GetHistorySizeBytes(), + } +} + +func reportPublishCost(t *testing.T, results []publishCostResult) { + var control publishCostResult + for _, r := range results { + if r.arm.name == "control" { + control = r + } + } + + t.Log("Cost of one history event per publish, measured by differencing against an empty run.") + t.Logf("Control: %d events, %d bytes.", control.historyEvents, control.historyBytes) + t.Log("") + t.Log("| arm | batches | msgs | msg size | events | bytes " + + "| events/batch | bytes/batch | bytes/msg |") + t.Log("|---|---|---|---|---|---|---|---|---|") + for _, r := range results { + if r.arm.batches == 0 { + continue + } + marginalEvents := r.historyEvents - control.historyEvents + marginalBytes := r.historyBytes - control.historyBytes + perMsg := "n/a" + if r.messages() > 0 { + perMsg = fmt.Sprintf("%.1f", float64(marginalBytes)/float64(r.messages())) + } + t.Logf("| %s | %d | %d | %d | %d | %d | %.2f | %.1f | %s |", + r.arm.name, r.arm.batches, r.messages(), r.arm.messageSize, + r.historyEvents, r.historyBytes, + float64(marginalEvents)/float64(r.arm.batches), + float64(marginalBytes)/float64(r.arm.batches), + perMsg) + } + t.Log("") + + // The ceilings the number has to be read against. An event per batch makes + // the event-count limit the binding one long before the size limit. + for _, r := range results { + if r.arm.batches == 0 || r.arm.viaSignal { + continue + } + marginalBytes := r.historyBytes - control.historyBytes + marginalEvents := r.historyEvents - control.historyEvents + if marginalEvents == 0 { + continue + } + bytesPerEvent := float64(marginalBytes) / float64(marginalEvents) + t.Logf("%s: %.0f bytes/event implies %d batches before the %d-event limit, "+ + "%d before the %dMB size limit", + r.arm.name, bytesPerEvent, + historyCountLimitError, + historyCountLimitError, + int(float64(historySizeLimitError)/bytesPerEvent), + historySizeLimitError/(1024*1024)) + } +} diff --git a/tests/stream_query_test.go b/tests/stream_query_test.go new file mode 100644 index 00000000000..20052370f49 --- /dev/null +++ b/tests/stream_query_test.go @@ -0,0 +1,137 @@ +package tests + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/require" + commandpb "go.temporal.io/api/command/v1" + commonpb "go.temporal.io/api/common/v1" + querypb "go.temporal.io/api/query/v1" + "go.temporal.io/api/workflowservice/v1" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + chasmworkflow "go.temporal.io/server/chasm/lib/workflow" + "go.temporal.io/server/common/payloads" + "go.temporal.io/server/tests/testcore" +) + +// A query with no workflow task in flight is dispatched straight through +// matching, on a task built without RecordWorkflowTaskStarted. That task +// carries the whole history to whichever worker polls it, which may never have +// seen the execution, so it has to carry the recorded ranges too or the worker +// cannot replay a consuming workflow far enough to answer. +// +// The query is answered by a second poller that took part in none of the +// earlier tasks, from the slices on the query task alone. +func TestQueryTaskCarriesTheConsumedRanges(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + execution, tq := startConsumer(t, s, "stream-wf-query-") + + task := 0 + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + worker := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "worker", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + task++ + if task == 1 { + return publishCommand("answer-1", "answer-2"), nil + } + return nil, nil + }, + Logger: env.Logger, + T: t, + } + + _, err := worker.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), + StreamName: chasmworkflow.DefaultStreamName, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // The subscription schedules the task that consumes the backlog. + _, err = worker.PollAndProcessWorkflowTask() + require.NoError(t, err) + consumedAt := completedEventWithCursors(t, env.GetHistory(s.ns, execution)) + + var queryTask *workflowservice.PollWorkflowTaskQueueResponse + //nolint:staticcheck // SA1019: consistent with the worker above. + coldWorker := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "cold-worker", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + t.Fatal("the query must arrive as a query task, not a workflow task") + return nil, nil + }, + QueryHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) (*commonpb.Payloads, error) { + queryTask = resp + // Answer from the task alone, which is all a replaying worker has. + var seen []string + for _, slice := range resp.GetStreamSlices() { + for _, record := range slice.GetRecords() { + seen = append(seen, string(record.GetBody().GetData())) + } + } + return payloads.EncodeString(strings.Join(seen, ",")), nil + }, + Logger: env.Logger, + T: t, + } + + type answer struct { + resp *workflowservice.QueryWorkflowResponse + err error + } + answered := make(chan answer, 1) + go func() { + resp, err := env.FrontendClient().QueryWorkflow(s.ctx(), &workflowservice.QueryWorkflowRequest{ + Namespace: s.ns, + Execution: execution, + Query: &querypb.WorkflowQuery{QueryType: "consumed"}, + }) + answered <- answer{resp: resp, err: err} + }() + + res, err := coldWorker.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.True(t, res.IsQueryTask, "the query is dispatched on its own task") + require.NotNil(t, queryTask.GetQuery()) + require.NotEmpty(t, queryTask.GetHistory().GetEvents(), "a non-sticky query carries full history") + + replayed := sliceForEvent(queryTask.GetStreamSlices(), consumedAt) + require.NotNil(t, replayed, "the query task carries the range recorded at event %d", consumedAt) + require.Equal(t, int64(0), replayed.GetFromOffset()) + require.Equal(t, int64(2), replayed.GetToOffset()) + require.Equal(t, execution.GetRunId(), replayed.GetRunId(), "the slice names the run holding the stream") + require.Equal(t, []string{"answer-1", "answer-2"}, apiBodies(replayed.GetRecords())) + + // Nothing on a query task is about to be consumed, so every slice is a + // re-supply for a completion the history already holds. + for _, slice := range queryTask.GetStreamSlices() { + require.NotZero(t, slice.GetWorkflowTaskCompletedEventId(), + "a query task must not carry an untagged slice, it starts no task") + } + + got := <-answered + require.NoError(t, got.err) + var result string + require.NoError(t, payloads.Decode(got.resp.GetQueryResult(), &result)) + require.Equal(t, "answer-1,answer-2", result, + "the query answer is computed from the re-supplied records") +} diff --git a/tests/stream_rejection_test.go b/tests/stream_rejection_test.go index e4bc60fab74..6e3a09e5af1 100644 --- a/tests/stream_rejection_test.go +++ b/tests/stream_rejection_test.go @@ -3,10 +3,12 @@ package tests import ( "testing" + "github.com/google/uuid" "github.com/stretchr/testify/require" commandpb "go.temporal.io/api/command/v1" commonpb "go.temporal.io/api/common/v1" enumspb "go.temporal.io/api/enums/v1" + streampb "go.temporal.io/api/stream/v1" "go.temporal.io/api/workflowservice/v1" chasmstream "go.temporal.io/server/chasm/lib/stream" streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" @@ -79,6 +81,84 @@ func TestOverLimitPublishFailsTheWorkflowTask(t *testing.T) { require.Equal(t, []int64{0}, offsets(poll.GetFrontendResponse().GetRecords())) } +// A workflow reads a topic by name before anything has been written to it, so +// the subscribe has to bring the owned stream into being rather than fail the +// task. An outside producer that arrives later appends to that same stream, +// and its records reach the workflow carrying the identity it wrote. +func TestSubscribeToAnUnwrittenNameCreatesTheOwnedStream(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + execution, tq := startConsumer(t, s, "stream-wf-subscribe-first-") + + name := "inputs-" + uuid.NewString() + var delivered [][]*streampb.StreamSlice + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + if len(delivered) == 1 { + return subscribeCommand(name), nil + } + return nil, nil + }, + Logger: env.Logger, + T: t, + } + + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + events := env.GetHistory(s.ns, execution) + require.Nil(t, workflowTaskFailedWith(events, + enumspb.WORKFLOW_TASK_FAILED_CAUSE_BAD_SUBSCRIBE_STREAM_ATTRIBUTES)) + subscribed := subscribedEvents(events) + require.Len(t, subscribed, 1) + require.Equal(t, name, subscribed[0].GetStreamId()) + require.Equal(t, int64(0), subscribed[0].GetStartOffset(), "the new stream starts empty") + + _, err = s.client.AddWorkflowMessages(s.ctx(), &streamlib.AddWorkflowMessagesRequest{ + FrontendRequest: &streamlib.AddWorkflowMessagesInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamName: name, + Records: []*streamlib.StreamRecord{ + { + Body: &commonpb.Payload{Data: []byte("hello")}, Topic: name, + ProducerId: "model", Attempt: 2, Sequence: 0, + }, + { + Kind: streampb.STREAM_RECORD_KIND_FINISH, Topic: name, + ProducerId: "model", Attempt: 2, Sequence: 1, + }, + }, + }, + }) + require.NoError(t, err) + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + got := currentSlice(t, delivered[1]) + require.Equal(t, name, got.GetStreamId()) + require.Equal(t, int64(2), got.GetToOffset()) + + records := got.GetRecords() + require.Len(t, records, 2) + require.Equal(t, "hello", string(records[0].GetBody().GetData())) + require.Equal(t, streampb.STREAM_RECORD_KIND_DATA, records[0].GetKind(), + "a record with no kind is data") + require.Equal(t, "model", records[0].GetProducerId()) + require.Equal(t, int64(2), records[0].GetAttempt()) + require.Equal(t, int64(0), records[0].GetSequence()) + require.Equal(t, streampb.STREAM_RECORD_KIND_FINISH, records[1].GetKind(), + "a finish record is delivered like any other") + require.Equal(t, "model", records[1].GetProducerId()) + require.Equal(t, int64(1), records[1].GetSequence()) +} + // The guarantee the design is sold on: a publish commits with the workflow // task, so a task that fails after publishing publishes nothing. func TestPublishOnAFailedTaskLeavesNoTrace(t *testing.T) { diff --git a/tests/stream_replay_test.go b/tests/stream_replay_test.go index 442b75a9164..fbd8952e0a8 100644 --- a/tests/stream_replay_test.go +++ b/tests/stream_replay_test.go @@ -1,6 +1,7 @@ package tests import ( + "context" "testing" "time" @@ -13,6 +14,11 @@ import ( streampb "go.temporal.io/api/stream/v1" taskqueuepb "go.temporal.io/api/taskqueue/v1" "go.temporal.io/api/workflowservice/v1" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + chasmworkflow "go.temporal.io/server/chasm/lib/workflow" + "go.temporal.io/server/common/dynamicconfig" + "go.temporal.io/server/common/testing/await" + "go.temporal.io/server/tests/testcore" "google.golang.org/protobuf/types/known/durationpb" ) @@ -56,6 +62,129 @@ func publishCommand(bodies ...string) []*commandpb.Command { }} } +func apiBodies(msgs []*streampb.StreamRecord) []string { + out := make([]string, len(msgs)) + for i, m := range msgs { + out[i] = string(m.GetBody().GetData()) + } + return out +} + +// completedEventsWithCursors returns the ids of every WorkflowTaskCompleted +// event that recorded a consumed range, empty ones included. +func completedEventsWithCursors(events []*historypb.HistoryEvent) []int64 { + var out []int64 + for _, e := range events { + if len(e.GetWorkflowTaskCompletedEventAttributes().GetConsumedStreamRanges()) > 0 { + out = append(out, e.GetEventId()) + } + } + return out +} + +// The response to a started task carries one page of history. A consumer that +// has run longer than a page recorded its ranges on the pages after it, and a +// cold replay has to find every one of them or the worker replays against less +// than the first run saw. +func TestReplayFollowsHistoryPastTheFirstPage(t *testing.T) { + env := testcore.NewEnv(t, + testcore.WithDedicatedCluster(), + testcore.WithDynamicConfig(dynamicconfig.HistoryMaxPageSize, 4), + ) + s := newStreamTestEnvFrom(t, env) + execution, tq := startConsumer(t, s, "stream-wf-paged-replay-") + + var delivered [][]*streampb.StreamSlice + //nolint:staticcheck // SA1019: only the deprecated poller can emit this command type. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + if len(delivered) == 1 { + return publishCommand("page-1", "page-2"), nil + } + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), + StreamName: chasmworkflow.DefaultStreamName, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // One task consumes the range, then several idle tasks push the event that + // recorded it well behind the first page of history. + for range 4 { + signalWorkflow(t, s, execution.GetWorkflowId(), execution.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + } + require.Len(t, currentSlice(t, delivered[1]).GetRecords(), 2) + + events := env.GetHistory(s.ns, execution) + recordedAt := completedEventsWithCursors(events) + require.Len(t, recordedAt, 4, "every task since the subscription recorded a range") + consumedAt := completedEventWithCursors(t, events) + require.Greater(t, len(events), 8, + "the history has to span more than one page for this to mean anything") + + env.CloseShard(env.NamespaceID().String(), execution.GetWorkflowId()) + signalWorkflow(t, s, execution.GetWorkflowId(), execution.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + replay := delivered[len(delivered)-1] + replayed := sliceForEvent(replay, consumedAt) + require.NotNil(t, replayed, "the range recorded on a later page must be re-supplied") + require.Equal(t, []string{"page-1", "page-2"}, apiBodies(replayed.GetRecords())) + require.Equal(t, execution.GetRunId(), replayed.GetRunId(), + "an owned stream's slice names the run that holds it") + for _, eventID := range recordedAt { + require.NotNil(t, sliceForEvent(replay, eventID), + "every recorded range, empty ones included, has to travel with its event") + } +} + +// pollInBackground keeps a poller on the queue until the returned stop +// function is called. Used where a task is expected never to reach the worker, +// because matching only asks history to start a task while someone polls. +func pollInBackground( + t *testing.T, env *testcore.TestEnv, ns string, tq *taskqueuepb.TaskQueue, +) func() { + t.Helper() + ctx, cancel := context.WithCancel(context.Background()) + done := make(chan struct{}) + go func() { + defer close(done) + for ctx.Err() == nil { + pollCtx, pollCancel := context.WithTimeout(ctx, 5*time.Second) + _, _ = env.FrontendClient().PollWorkflowTaskQueue( + pollCtx, + &workflowservice.PollWorkflowTaskQueueRequest{ + Namespace: ns, TaskQueue: tq, Identity: "tester", + }, + ) + pollCancel() + } + }() + return func() { + cancel() + <-done + } +} + func workflowTaskFailedWith( events []*historypb.HistoryEvent, cause enumspb.WorkflowTaskFailedCause, @@ -67,3 +196,154 @@ func workflowTaskFailedWith( } return nil } + +// deleteStreamAndWait removes a standalone stream and waits until reads of it +// fail, since deletion completes in a task after the call returns. +func deleteStreamAndWait(t *testing.T, s *streamTestEnv, streamID string) { + t.Helper() + _, err := s.client.DeleteStream(s.ctx(), &streamlib.DeleteStreamRequest{ + FrontendRequest: &streamlib.DeleteStreamInput{ + Namespace: s.ns, StreamId: streamID, Force: true, + }, + }) + require.NoError(t, err) + await.RequireTrue(t, func() bool { + _, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + return err != nil + }, 20*time.Second, 100*time.Millisecond) +} + +// A consumer whose stream is gone before its next task starts cannot be handed +// the range it is due. That has to land in History as a failed task with a +// cause, not as a request matching retries forever. +func TestConsumerOfADeletedStreamFailsItsTaskLoudly(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "gone-live-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + execution, tq := startConsumer(t, s, "stream-wf-gone-live-") + + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // The append schedules the task that is owed the range. + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, Records: streamMsgs("tokens", "never-delivered"), + }, + }) + require.NoError(t, err) + await.RequireTrue(t, func() bool { + scheduled := 0 + for _, e := range env.GetHistory(s.ns, execution) { + if e.GetEventType() == enumspb.EVENT_TYPE_WORKFLOW_TASK_SCHEDULED { + scheduled++ + } + } + return scheduled >= 2 + }, 20*time.Second, 100*time.Millisecond) + + deleteStreamAndWait(t, s, streamID) + + stop := pollInBackground(t, env, s.ns, tq) + defer stop() + await.RequireTrue(t, func() bool { + return workflowTaskFailedWith(env.GetHistory(s.ns, execution), + enumspb.WORKFLOW_TASK_FAILED_CAUSE_STREAM_RANGE_UNAVAILABLE) != nil + }, 30*time.Second, 200*time.Millisecond) + + failed := workflowTaskFailedWith(env.GetHistory(s.ns, execution), + enumspb.WORKFLOW_TASK_FAILED_CAUSE_STREAM_RANGE_UNAVAILABLE) + require.Contains(t, failed.GetFailure().GetMessage(), streamID, + "the failure names the stream so an operator knows where to look") +} + +// A consumer whose recorded range can no longer be re-read cannot replay. The +// replay runs after the task started, so the failure is a transaction of its +// own, and it still has to end up in History with the cause. +func TestReplayOfADeletedStreamFailsTheTaskLoudly(t *testing.T) { + env := testcore.NewEnv(t, testcore.WithDedicatedCluster()) + s := newStreamTestEnvFrom(t, env) + + streamID := "gone-replay-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + execution, tq := startConsumer(t, s, "stream-wf-gone-replay-") + + var delivered [][]*streampb.StreamSlice + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + _, err = s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, Records: streamMsgs("tokens", "consumed-once"), + }, + }) + require.NoError(t, err) + + // Consumed and recorded, which is what a replay will have to reproduce. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.Len(t, currentSlice(t, delivered[1]).GetRecords(), 1) + + deleteStreamAndWait(t, s, streamID) + + env.CloseShard(env.NamespaceID().String(), execution.GetWorkflowId()) + signalWorkflow(t, s, execution.GetWorkflowId(), execution.GetRunId()) + + stop := pollInBackground(t, env, s.ns, tq) + defer stop() + await.RequireTrue(t, func() bool { + return workflowTaskFailedWith(env.GetHistory(s.ns, execution), + enumspb.WORKFLOW_TASK_FAILED_CAUSE_STREAM_RANGE_UNAVAILABLE) != nil + }, 30*time.Second, 200*time.Millisecond) + + failed := workflowTaskFailedWith(env.GetHistory(s.ns, execution), + enumspb.WORKFLOW_TASK_FAILED_CAUSE_STREAM_RANGE_UNAVAILABLE) + require.Contains(t, failed.GetFailure().GetMessage(), "cannot replay") + require.Contains(t, failed.GetFailure().GetMessage(), streamID) +} diff --git a/tests/stream_retention_test.go b/tests/stream_retention_test.go new file mode 100644 index 00000000000..1d4bb3d9c5e --- /dev/null +++ b/tests/stream_retention_test.go @@ -0,0 +1,272 @@ +package tests + +import ( + "testing" + "time" + + "github.com/google/uuid" + "github.com/stretchr/testify/require" + commandpb "go.temporal.io/api/command/v1" + commonpb "go.temporal.io/api/common/v1" + enumspb "go.temporal.io/api/enums/v1" + streampb "go.temporal.io/api/stream/v1" + taskqueuepb "go.temporal.io/api/taskqueue/v1" + "go.temporal.io/api/workflowservice/v1" + chasmstream "go.temporal.io/server/chasm/lib/stream" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + "go.temporal.io/server/common/testing/await" + "go.temporal.io/server/tests/testcore" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/durationpb" +) + +// A range a workflow consumed is part of that workflow's recovery: the offsets +// are in its History and a replay is asked to reproduce them from the stream. +// Deleting those messages succeeds immediately and fails much later, during a +// replay nobody is watching, so the stream refuses instead. +func TestTruncationRefusesToDropWhatAConsumerNeedsToReplay(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "retained-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + _, err := s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("one")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + {Body: &commonpb.Payload{Data: []byte("two")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + {Body: &commonpb.Payload{Data: []byte("three")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + id := "stream-retention-wf-" + uuid.NewString() + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + _, err = env.FrontendClient().StartWorkflowExecution( + s.ctx(), + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: s.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "stream-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(100 * time.Second), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + Identity: "tester", + }, + ) + require.NoError(t, err) + + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + _ *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: id, StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + // The floor is where the subscription started. It holds from the moment of + // subscribing, before anything has been delivered, because the first range + // the workflow will record begins there. + truncate := func() error { + _, err := s.client.TruncateStream(s.ctx(), &streamlib.TruncateStreamRequest{ + FrontendRequest: &streamlib.TruncateStreamInput{ + Namespace: s.ns, StreamId: streamID, NewBaseOffset: 2, + }, + }) + return err + } + require.ErrorContains(t, truncate(), "still depends on offset 0") + + // Delivering and recording the range does not move the floor either. + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + require.ErrorContains(t, truncate(), "still depends on offset 0") + + desc, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.NoError(t, err) + state := desc.GetFrontendResponse().GetState() + require.Equal(t, int64(0), state.GetBaseOffset(), "the messages must still be there") + for _, consumer := range state.GetConsumers() { + require.Equal(t, int64(0), consumer.GetReplayFloor(), + "the floor is where the subscription started, not where it has read to") + } +} + +// The refusal is about a consumer's recovery, so a stream nobody is consuming +// truncates exactly as before. Without this, the fix would be a storage leak +// wearing a correctness argument. +func TestTruncationStillWorksWithNoConsumer(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "unwatched-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + _, err := s.client.AddMessages(s.ctx(), &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: s.ns, StreamId: streamID, + Records: []*streamlib.StreamRecord{ + {Body: &commonpb.Payload{Data: []byte("one")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + {Body: &commonpb.Payload{Data: []byte("two")}, Kind: streampb.STREAM_RECORD_KIND_DATA}, + }, + }, + }) + require.NoError(t, err) + + _, err = s.client.TruncateStream(s.ctx(), &streamlib.TruncateStreamRequest{ + FrontendRequest: &streamlib.TruncateStreamInput{ + Namespace: s.ns, StreamId: streamID, NewBaseOffset: 2, + }, + }) + require.NoError(t, err) + + desc, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.NoError(t, err) + require.Equal(t, int64(2), desc.GetFrontendResponse().GetState().GetBaseOffset()) +} + +// A closed stream past its retention is still held by a consumer that is +// running: its History depends on the ranges it consumed. Deletion waits and +// asks again, and goes through once the consumer is gone. +func TestRetentionWaitsForAnActiveConsumer(t *testing.T) { + env := testcore.NewEnv(t, + testcore.WithDynamicConfig(chasmstream.RetentionRecheckIntervalSetting, time.Second), + ) + s := newStreamTestEnvFrom(t, env) + + streamID := "retained-until-read-" + uuid.NewString() + _, err := s.client.CreateStream(s.ctx(), &streamlib.CreateStreamRequest{ + FrontendRequest: &streamlib.CreateStreamInput{ + Namespace: s.ns, StreamId: streamID, + Lifecycle: &streamlib.StreamLifecycle{Retention: durationpb.New(time.Second)}, + }, + }) + require.NoError(t, err) + + execution, tq := startConsumer(t, s, "stream-wf-retained-") + task := 0 + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + task++ + if task == 2 { + return completeWorkflowCommand(), nil + } + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + _, err = s.client.CloseStream(s.ctx(), &streamlib.CloseStreamRequest{ + FrontendRequest: &streamlib.CloseStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.NoError(t, err) + + // Well past retention, and the stream is still there because the consumer + // is still running. The assertion is that nothing happens, which only the + // deadline passing can show. + time.Sleep(3 * time.Second) //nolint:forbidigo // waiting for retention to elapse is the test. + state := describeStream(t, s, streamID) + require.True(t, state.GetClosed()) + require.Len(t, state.GetConsumers(), 1) + + signalWorkflow(t, s, execution.GetWorkflowId(), execution.GetRunId()) + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + // The next recheck finds the consumer gone and lets retention through. + await.RequireTrue(t, func() bool { + _, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + return err != nil + }, 20*time.Second, 200*time.Millisecond) +} + +// Deleting a stream a running workflow consumes succeeds now and fails that +// workflow at its next replay, so the caller has to say it means it. +func TestDeleteStreamRefusesWhileAConsumerIsActive(t *testing.T) { + env := testcore.NewEnv(t) + s := newStreamTestEnvFrom(t, env) + + streamID := "guarded-stream-" + uuid.NewString() + s.create(s.ctx(), t, streamID) + execution, tq := startConsumer(t, s, "stream-wf-guarded-") + //nolint:staticcheck // SA1019: consistent with the other stream tests. + poller := &testcore.TaskPoller{ + Client: env.FrontendClient(), + Namespace: s.ns, + TaskQueue: tq, + Identity: "tester", + WorkflowTaskHandler: func( + *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + return nil, nil + }, + Logger: env.Logger, + T: t, + } + _, err := poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + _, err = s.client.SubscribeWorkflow(s.ctx(), &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: s.ns, WorkflowId: execution.GetWorkflowId(), StreamId: streamID, StartOffset: 0, + }, + }) + require.NoError(t, err) + + _, err = s.client.DeleteStream(s.ctx(), &streamlib.DeleteStreamRequest{ + FrontendRequest: &streamlib.DeleteStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + require.Equal(t, codes.FailedPrecondition, status.Code(err)) + require.ErrorContains(t, err, execution.GetWorkflowId(), "the refusal names the consumer") + + _, err = s.client.DeleteStream(s.ctx(), &streamlib.DeleteStreamRequest{ + FrontendRequest: &streamlib.DeleteStreamInput{Namespace: s.ns, StreamId: streamID, Force: true}, + }) + require.NoError(t, err) + await.RequireTrue(t, func() bool { + _, err := s.client.DescribeStream(s.ctx(), &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: s.ns, StreamId: streamID}, + }) + return err != nil + }, 20*time.Second, 100*time.Millisecond) +} diff --git a/tests/stream_routing_cross_host_test.go b/tests/stream_routing_cross_host_test.go new file mode 100644 index 00000000000..2845269e2c7 --- /dev/null +++ b/tests/stream_routing_cross_host_test.go @@ -0,0 +1,384 @@ +package tests + +import ( + "context" + "encoding/json" + "fmt" + "os" + "path/filepath" + "testing" + "time" + + "github.com/google/uuid" + "github.com/stretchr/testify/require" + commandpb "go.temporal.io/api/command/v1" + commonpb "go.temporal.io/api/common/v1" + enumspb "go.temporal.io/api/enums/v1" + historypb "go.temporal.io/api/history/v1" + streampb "go.temporal.io/api/stream/v1" + taskqueuepb "go.temporal.io/api/taskqueue/v1" + "go.temporal.io/api/workflowservice/v1" + "go.temporal.io/server/api/adminservice/v1" + "go.temporal.io/server/api/historyservice/v1" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + "go.temporal.io/server/common" + "go.temporal.io/server/common/testing/await" + "go.temporal.io/server/common/testing/testlogger" + "go.temporal.io/server/tests/testcore" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/durationpb" +) + +// crossHostTopology is a two-host History cluster with the shards it was +// confirmed to split, plus the consumer and source shards each case uses. +type crossHostTopology struct { + cluster *testcore.TestCluster + config *testcore.TestClusterConfig + ns string + nsID string + consumerHost string + remoteHost string + consumerShard int32 + localSource int32 + remoteSource int32 +} + +// A consumer on one History host reading a stream that lives on another. Every +// step that spans the two executions has to route rather than resolve the far +// shard locally: registering the pin, being told the frontier moved, reading +// the payload for the live task, and re-reading it for a cold replay. +// +// The subscription is made two ways, over the RPC and from the workflow's own +// command, because they take different paths to the stream's shard. +func TestStreamRoutedCrossHostDeliveryAndReplay(t *testing.T) { + logger := testlogger.NewTestLogger(t, testlogger.FailOnExpectedErrorOnly) + topo := newCrossHostTopology(t, logger) + artifacts := newRoutingArtifacts(t) + + ctx, cancel := context.WithTimeout(context.Background(), 120*time.Second) + defer cancel() + artifacts.writeJSON("topology", topo.shardsByHost(ctx, t)) + + frontend := topo.cluster.FrontendClient() + conn, err := grpc.NewClient(topo.cluster.Host().FrontendGRPCAddress(), + grpc.WithTransportCredentials(insecure.NewCredentials())) + require.NoError(t, err) + t.Cleanup(func() { require.NoError(t, conn.Close()) }) + streams := streamlib.NewStreamServiceClient(conn) + + ownerConn, err := grpc.NewClient(topo.consumerHost, + grpc.WithTransportCredentials(insecure.NewCredentials())) + require.NoError(t, err) + t.Cleanup(func() { require.NoError(t, ownerConn.Close()) }) + owner := historyservice.NewHistoryServiceClient(ownerConn) + + cases := []struct { + name string + crossHost bool + viaCommand bool + }{ + {name: "same-host", crossHost: false}, + {name: "cross-host", crossHost: true}, + {name: "cross-host-command", crossHost: true, viaCommand: true}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + id := topo.idOnShard(t, tc.name+"-consumer", topo.consumerShard) + source := topo.idOnShard(t, tc.name+"-source", topo.sourceShard(tc.crossHost)) + _, err := streams.CreateStream(ctx, &streamlib.CreateStreamRequest{ + FrontendRequest: &streamlib.CreateStreamInput{Namespace: topo.ns, StreamId: source}, + }) + require.NoError(t, err) + + tq := &taskqueuepb.TaskQueue{Name: id + "-tq", Kind: enumspb.TASK_QUEUE_KIND_NORMAL} + started, err := frontend.StartWorkflowExecution( + ctx, + &workflowservice.StartWorkflowExecutionRequest{ + RequestId: uuid.NewString(), + Namespace: topo.ns, + WorkflowId: id, + WorkflowType: &commonpb.WorkflowType{Name: "cross-host-consumer"}, + TaskQueue: tq, + WorkflowRunTimeout: durationpb.New(2 * time.Minute), + WorkflowTaskTimeout: durationpb.New(10 * time.Second), + }, + ) + require.NoError(t, err) + execution := &commonpb.WorkflowExecution{WorkflowId: id, RunId: started.GetRunId()} + + var delivered [][]*streampb.StreamSlice + //nolint:staticcheck // SA1019: this test isolates the server response from SDK replay. + poller := &testcore.TaskPoller{ + Client: frontend, + Namespace: topo.ns, + TaskQueue: tq, + Identity: "cross-host-validation", + Logger: logger, + T: t, + WorkflowTaskHandler: func( + resp *workflowservice.PollWorkflowTaskQueueResponse, + ) ([]*commandpb.Command, error) { + delivered = append(delivered, resp.GetStreamSlices()) + if tc.viaCommand && len(delivered) == 1 { + return subscribeCommand(source), nil + } + return nil, nil + }, + } + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + + topo.requireOwner(ctx, t, id, topo.consumerHost) + topo.requireOwner(ctx, t, source, topo.hostFor(tc.crossHost)) + + if !tc.viaCommand { + _, err = streams.SubscribeWorkflow(ctx, &streamlib.SubscribeWorkflowRequest{ + FrontendRequest: &streamlib.SubscribeWorkflowInput{ + Namespace: topo.ns, WorkflowId: id, StreamId: source, + }, + }) + require.NoError(t, err) + } + // Either way the pin has to have landed on the stream's own shard. + desc, err := streams.DescribeStream(ctx, &streamlib.DescribeStreamRequest{ + FrontendRequest: &streamlib.DescribeStreamInput{Namespace: topo.ns, StreamId: source}, + }) + require.NoError(t, err) + require.Len(t, desc.GetFrontendResponse().GetState().GetConsumers(), 1) + + _, err = streams.AddMessages(ctx, &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: topo.ns, StreamId: source, + Records: streamMsgs("tokens", "retained-input"), + }, + }) + require.NoError(t, err) + + history := func() []*historypb.HistoryEvent { + return topo.history(ctx, t, execution) + } + latestScheduled := func() int64 { + var scheduled int64 + for _, event := range history() { + if event.GetEventType() == enumspb.EVENT_TYPE_WORKFLOW_TASK_SCHEDULED { + scheduled = event.GetEventId() + } + } + return scheduled + } + // The append alone has to produce the task, through the routed push. + await.RequireTrue(t, func() bool { return latestScheduled() > 2 }, + 10*time.Second, 20*time.Millisecond) + + _, err = poller.PollAndProcessWorkflowTask() + require.NoError(t, err) + live := currentSlice(t, delivered[1]) + require.Equal(t, "retained-input", string(live.GetRecords()[0].GetBody().GetData())) + artifacts.writeProto(tc.name+"-live-slice", live) + artifacts.writeProto(tc.name+"-committed-history", &historypb.History{Events: history()}) + consumedAt := completedEventWithCursors(t, history()) + + // Evict the consumer, then start its next task by hand so the cold + // response can be inspected before matching hands it to a poller. + _, err = owner.CloseShard(ctx, &historyservice.CloseShardRequest{ShardId: topo.consumerShard}) + require.NoError(t, err) + _, err = frontend.SignalWorkflowExecution(ctx, &workflowservice.SignalWorkflowExecutionRequest{ + Namespace: topo.ns, + WorkflowExecution: execution, + SignalName: "cold-replay-boundary", + RequestId: uuid.NewString(), + }) + require.NoError(t, err) + response, err := owner.RecordWorkflowTaskStarted( + ctx, + &historyservice.RecordWorkflowTaskStartedRequest{ + NamespaceId: topo.nsID, + WorkflowExecution: execution, + ScheduledEventId: latestScheduled(), + RequestId: uuid.NewString(), + PollRequest: &workflowservice.PollWorkflowTaskQueueRequest{ + Namespace: topo.ns, TaskQueue: tq, Identity: "cross-host-validation", + }, + }, + ) + require.NoError(t, err) + artifacts.writeProto(tc.name+"-cold-response", response) + + replayed := sliceForEvent(response.GetStreamSlices(), consumedAt) + require.NotNil(t, replayed, "cold replay must re-supply the committed input range") + require.Equal(t, "retained-input", string(replayed.GetRecords()[0].GetBody().GetData())) + }) + } +} + +func subscribeCommand(streamID string) []*commandpb.Command { + return []*commandpb.Command{{ + CommandType: enumspb.COMMAND_TYPE_SUBSCRIBE_STREAM, + Attributes: &commandpb.Command_SubscribeStreamCommandAttributes{ + SubscribeStreamCommandAttributes: &commandpb.SubscribeStreamCommandAttributes{ + StreamNameOrId: streamID, StartOffset: 0, + }, + }, + }} +} + +func newCrossHostTopology(t *testing.T, logger *testlogger.TestLogger) *crossHostTopology { + t.Helper() + config := &testcore.TestClusterConfig{ + HistoryConfig: testcore.HistoryConfig{NumHistoryHosts: 2, NumHistoryShards: 32}, + Persistence: testcore.GetPersistenceTestDefaults(), + WorkerConfig: testcore.WorkerConfig{DisableWorker: true}, + } + cluster, err := testcore.NewTestClusterFactory().NewCluster(t, config, logger) + require.NoError(t, err) + t.Cleanup(func() { require.NoError(t, cluster.TearDownCluster()) }) + + ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) + defer cancel() + frontend := cluster.FrontendClient() + ns := "validation-cross-host-" + uuid.NewString() + _, err = frontend.RegisterNamespace(ctx, &workflowservice.RegisterNamespaceRequest{ + Namespace: ns, WorkflowExecutionRetentionPeriod: durationpb.New(24 * time.Hour), + }) + require.NoError(t, err) + described, err := frontend.DescribeNamespace(ctx, &workflowservice.DescribeNamespaceRequest{ + Namespace: ns, + }) + require.NoError(t, err) + + topo := &crossHostTopology{ + cluster: cluster, + config: config, + ns: ns, + nsID: described.GetNamespaceInfo().GetId(), + } + hosts := topo.shardsByHost(ctx, t) + require.Len(t, hosts, 2, "must verify two actual owners, not merely configure two services") + for host, shards := range hosts { + if topo.consumerHost == "" && len(shards) >= 2 { + topo.consumerHost, topo.consumerShard, topo.localSource = host, shards[0], shards[1] + } + } + require.NotEmpty(t, topo.consumerHost) + for host, shards := range hosts { + if host != topo.consumerHost { + topo.remoteHost, topo.remoteSource = host, shards[0] + } + } + t.Logf("consumer shard %d on %s, local source shard %d, remote source shard %d on %s", + topo.consumerShard, topo.consumerHost, topo.localSource, topo.remoteSource, topo.remoteHost) + return topo +} + +// shardsByHost asks the admin service who owns every shard. +func (topo *crossHostTopology) shardsByHost(ctx context.Context, t *testing.T) map[string][]int32 { + t.Helper() + hosts := map[string][]int32{} + for shard := int32(1); shard <= topo.config.HistoryConfig.NumHistoryShards; shard++ { + host, err := topo.cluster.AdminClient().DescribeHistoryHost(ctx, + &adminservice.DescribeHistoryHostRequest{ShardId: shard}) + require.NoError(t, err) + require.NotEmpty(t, host.GetAddress()) + hosts[host.GetAddress()] = append(hosts[host.GetAddress()], shard) + } + return hosts +} + +func (topo *crossHostTopology) hostFor(crossHost bool) string { + if crossHost { + return topo.remoteHost + } + return topo.consumerHost +} + +func (topo *crossHostTopology) sourceShard(crossHost bool) int32 { + if crossHost { + return topo.remoteSource + } + return topo.localSource +} + +// idOnShard finds a business id that hashes to the wanted shard. +func (topo *crossHostTopology) idOnShard(t *testing.T, prefix string, target int32) string { + t.Helper() + shards := topo.config.HistoryConfig.NumHistoryShards + for i := range 10000 { + id := fmt.Sprintf("%s-%d", prefix, i) + if common.WorkflowIDToHistoryShard(topo.nsID, id, shards) == target { + return id + } + } + t.Fatal("could not select an id on the target shard") + return "" +} + +func (topo *crossHostTopology) requireOwner( + ctx context.Context, t *testing.T, businessID string, host string, +) { + t.Helper() + desc, err := topo.cluster.AdminClient().DescribeHistoryHost( + ctx, + &adminservice.DescribeHistoryHostRequest{ + Namespace: topo.ns, + WorkflowExecution: &commonpb.WorkflowExecution{WorkflowId: businessID}, + }, + ) + require.NoError(t, err) + require.Equal(t, host, desc.GetAddress()) +} + +func (topo *crossHostTopology) history( + ctx context.Context, t *testing.T, execution *commonpb.WorkflowExecution, +) []*historypb.HistoryEvent { + t.Helper() + resp, err := topo.cluster.FrontendClient().GetWorkflowExecutionHistory(ctx, + &workflowservice.GetWorkflowExecutionHistoryRequest{Namespace: topo.ns, Execution: execution}) + require.NoError(t, err) + require.Empty(t, resp.GetNextPageToken()) + return resp.GetHistory().GetEvents() +} + +// routingArtifacts writes the responses this test observed to a directory, for +// the SDK validation runs that compare them against what a worker receives. Off +// unless the measurement switch is set, like the other evidence collectors. +type routingArtifacts struct { + t *testing.T + dir string +} + +func newRoutingArtifacts(t *testing.T) *routingArtifacts { + t.Helper() + if os.Getenv("TEMPORAL_STREAM_BENCH") != "1" { + return &routingArtifacts{t: t} + } + dir := os.Getenv("AI198_ROUTING_RESULT_DIR") + if dir == "" { + dir = t.TempDir() + } + require.NoError(t, os.MkdirAll(dir, 0o755)) + return &routingArtifacts{t: t, dir: dir} +} + +func (a *routingArtifacts) writeJSON(name string, value any) { + if a.dir == "" { + return + } + encoded, err := json.MarshalIndent(value, "", " ") + require.NoError(a.t, err) + require.NoError(a.t, os.WriteFile(filepath.Join(a.dir, name+".json"), encoded, 0o644)) +} + +func (a *routingArtifacts) writeProto(name string, message proto.Message) { + if a.dir == "" { + return + } + encoded, err := protojson.MarshalOptions{Indent: " "}.Marshal(message) + require.NoError(a.t, err) + require.NoError(a.t, os.WriteFile(filepath.Join(a.dir, name+".json"), encoded, 0o644)) + binary, err := proto.Marshal(message) + require.NoError(a.t, err) + require.NoError(a.t, os.WriteFile(filepath.Join(a.dir, name+".pb"), binary, 0o644)) +} diff --git a/tests/streaming_baseline_test.go b/tests/streaming_baseline_test.go new file mode 100644 index 00000000000..cfc36864d8b --- /dev/null +++ b/tests/streaming_baseline_test.go @@ -0,0 +1,470 @@ +package tests + +import ( + "context" + "fmt" + "os" + "slices" + "sync" + "sync/atomic" + "testing" + "time" + + "github.com/stretchr/testify/require" + "go.temporal.io/api/workflowservice/v1" + sdkclient "go.temporal.io/sdk/client" + "go.temporal.io/sdk/workflow" + "go.temporal.io/server/common/metrics" + "go.temporal.io/server/common/metrics/metricstest" + "go.temporal.io/server/tests/testcore" +) + +// Baseline measurements for today's Workflow Streams pattern: an Activity +// batches items into Signals and a consumer long-polls with an Update. AI-198 +// proposes replacing it, and a replacement cannot be justified without knowing +// what the current pattern actually costs. +// +// The two dimensions that matter are the flush interval and the subscriber +// count. The shipped guidance is a ~2s flush; the Native Streams 1-pager asks +// for 100ms to be practical. Running both shows the cost of closing that gap +// under the current design, which is the number the September check-in needs. +// +// The full matrix takes minutes, so it is opt-in via TEMPORAL_STREAM_BENCH=1. +// Without it a short configuration still runs, which keeps the harness honest +// without slowing the suite. + +const ( + streamBatchSignal = "stream_batch" + streamDoneSignal = "stream_done" + streamPollUpdate = "poll_events" + streamMessageSize = 20 +) + +type streamBaselineParams struct { + name string + flushInterval time.Duration + subscribers int + messageRate int // messages per second + duration time.Duration +} + +type streamBaselineResult struct { + params streamBaselineParams + + messagesSent int + messagesReceived int + pollRejections int64 + + historyBytes int64 + historyEvents int64 + // Set when the workload has no workflow at all, so the history columns are + // an absence rather than a measurement. Rendering them as 0.00 next to a + // measured figure reads as a comparison that was never made. + historyNotApplicable bool + + persistenceRequests int64 + persistenceByOp map[string]int64 + + latencyP50 time.Duration + latencyP99 time.Duration + + // Set when the run could not complete, for example because the workflow + // exceeded a history limit. That is itself a result worth reporting. + failure string +} + +// streamBaselineWorkflow mirrors the shipped pattern: Signals carry batches in, +// an Update long-polls them back out, and the workflow holds the buffer. +func streamBaselineWorkflow(ctx workflow.Context) error { + var buffer []string + done := false + + err := workflow.SetUpdateHandler(ctx, streamPollUpdate, + func(ctx workflow.Context, lastSeen int) ([]string, error) { + // The shape that makes this expensive: every poll is a durable + // state transition, even when it returns nothing new. + if err := workflow.Await(ctx, func() bool { + return len(buffer) > lastSeen || done + }); err != nil { + return nil, err + } + if lastSeen >= len(buffer) { + return nil, nil + } + out := make([]string, len(buffer)-lastSeen) + copy(out, buffer[lastSeen:]) + return out, nil + }) + if err != nil { + return err + } + + batches := workflow.GetSignalChannel(ctx, streamBatchSignal) + finish := workflow.GetSignalChannel(ctx, streamDoneSignal) + + for !done { + sel := workflow.NewSelector(ctx) + sel.AddReceive(batches, func(c workflow.ReceiveChannel, _ bool) { + var batch []string + c.Receive(ctx, &batch) + buffer = append(buffer, batch...) + }) + sel.AddReceive(finish, func(c workflow.ReceiveChannel, _ bool) { + c.Receive(ctx, nil) + done = true + }) + sel.Select(ctx) + } + + // Let any parked pollers observe the terminal state before exiting. + return workflow.Await(ctx, func() bool { return true }) +} + +func TestStreamingBaseline(t *testing.T) { + matrix := shortStreamBaselineMatrix() + if os.Getenv("TEMPORAL_STREAM_BENCH") == "1" { + matrix = fullStreamBaselineMatrix() + } + + results := make([]streamBaselineResult, 0, len(matrix)) + for _, p := range matrix { + t.Run(p.name, func(t *testing.T) { + results = append(results, runStreamBaseline(t, p)) + }) + } + reportStreamBaseline(t, results) +} + +func shortStreamBaselineMatrix() []streamBaselineParams { + return []streamBaselineParams{ + { + name: "flush2s_sub1", flushInterval: 2 * time.Second, subscribers: 1, + messageRate: 40, duration: 6 * time.Second, + }, + { + name: "flush100ms_sub1", flushInterval: 100 * time.Millisecond, subscribers: 1, + messageRate: 40, duration: 6 * time.Second, + }, + } +} + +func fullStreamBaselineMatrix() []streamBaselineParams { + var out []streamBaselineParams + for _, flush := range []time.Duration{2 * time.Second, 100 * time.Millisecond} { + for _, subs := range []int{1, 5, 25} { + out = append(out, streamBaselineParams{ + name: fmt.Sprintf("flush%s_sub%d", flush, subs), + flushInterval: flush, + subscribers: subs, + messageRate: 40, + duration: 50 * time.Second, + }) + } + } + return out +} + +func runStreamBaseline(t *testing.T, p streamBaselineParams) streamBaselineResult { + // Dedicated cluster so competing test load does not distort the timings. + // Metric capture is namespace-scoped because persistence_requests carries a + // namespace tag, which also attributes the counts to this workload rather + // than to cluster background traffic. + // + // Testlogger failure is off because a sustained-load run torn down while + // queues are still draining always logs shard-status errors on shutdown. + // The cost is losing the safety net that would catch a genuine server error + // during the run, so treat an anomalous result as a reason to re-run with + // the option removed rather than trusting it. + env := testcore.NewEnv(t, testcore.WithDisableTestloggerFailure()) + res := streamBaselineResult{params: p, persistenceByOp: map[string]int64{}} + + env.SdkWorker().RegisterWorkflow(streamBaselineWorkflow) + + ctx, cancel := context.WithTimeout(context.Background(), p.duration+2*time.Minute) + defer cancel() + + wfID := env.Tv().WorkflowID() + run, err := env.SdkClient().ExecuteWorkflow(ctx, sdkclient.StartWorkflowOptions{ + ID: wfID, + TaskQueue: env.WorkerTaskQueue(), + }, streamBaselineWorkflow) + require.NoError(t, err) + + // Started after workflow creation so cluster, namespace, and start costs do + // not inflate the per-message figures. Both designs pay those equally. + capture := env.StartNamespaceMetricCapture() + + sentAt := &sync.Map{} // message sequence -> generation time + var receivedTotal atomic.Int64 + var pollRejections atomic.Int64 + var consumers sync.WaitGroup + consumerLatencies := make([][]time.Duration, p.subscribers) + consumerCounts := make([]int, p.subscribers) + consumerCtx, stopConsumers := context.WithCancel(ctx) + defer stopConsumers() + + for i := range p.subscribers { + consumers.Add(1) + go func(idx int) { + defer consumers.Done() + lat, n := runStreamConsumer( + consumerCtx, env, wfID, run.GetRunID(), sentAt, &receivedTotal, &pollRejections) + consumerLatencies[idx] = lat + consumerCounts[idx] = n + }(i) + } + + res.messagesSent = runStreamProducer(ctx, t, env, wfID, run.GetRunID(), p, sentAt, &res) + + // Drain, then stop the consumers, and only then let the workflow finish, so + // that no consumer is ever polling an execution that is completing. One that + // is counts its own doomed polls as rejections and its client backoff as + // delivery latency, which measures the harness rather than the pattern. The + // workflow finishes last so the history numbers below are final rather than a + // mid-flight snapshot. A cell that fails to drain is reported rather than + // failed: hitting a limit is a real property of this pattern and is part of + // what the benchmark is measuring. + want := int64(res.messagesSent) * int64(p.subscribers) + if !waitForDrain(ctx, &receivedTotal, want, 15*time.Second) { + t.Logf("drained %d of %d expected deliveries before timeout", receivedTotal.Load(), want) + } + stopConsumers() + consumers.Wait() + require.NoError(t, + env.SdkClient().SignalWorkflow(ctx, wfID, run.GetRunID(), streamDoneSignal, nil)) + if err := run.Get(ctx, nil); err != nil { + t.Logf("workflow did not complete cleanly: %v", err) + } + + var all []time.Duration + for i := range p.subscribers { + all = append(all, consumerLatencies[i]...) + res.messagesReceived += consumerCounts[i] + } + res.pollRejections = pollRejections.Load() + res.latencyP50 = percentile(all, 0.50) + res.latencyP99 = percentile(all, 0.99) + + desc, err := env.FrontendClient().DescribeWorkflowExecution( + ctx, + &workflowservice.DescribeWorkflowExecutionRequest{ + Namespace: env.Namespace().String(), + Execution: env.Tv().WithWorkflowID(wfID).WorkflowExecution(), + }, + ) + if err == nil { + res.historyBytes = desc.GetWorkflowExecutionInfo().GetHistorySizeBytes() + res.historyEvents = desc.GetWorkflowExecutionInfo().GetHistoryLength() + } + + for _, rec := range capture.Metric(metrics.PersistenceRequests.Name()) { + res.persistenceRequests += recordingCount(rec) + if op, ok := rec.Tags["operation"]; ok { + res.persistenceByOp[op] += recordingCount(rec) + } + } + + return res +} + +func runStreamProducer( + ctx context.Context, + t *testing.T, + env *testcore.TestEnv, + wfID, runID string, + p streamBaselineParams, + sentAt *sync.Map, + res *streamBaselineResult, +) int { + payload := make([]byte, streamMessageSize) + for i := range payload { + payload[i] = 'x' + } + + // Messages are generated continuously and flushed on the interval, which is + // what an EventBatcher does. Latency is stamped at generation, not at + // flush: the time an item waits in the batcher is the dominant cost of a + // long flush interval, and stamping at flush would hide it entirely. + genTicker := time.NewTicker(time.Second / time.Duration(p.messageRate)) + defer genTicker.Stop() + flushTicker := time.NewTicker(p.flushInterval) + defer flushTicker.Stop() + deadline := time.Now().Add(p.duration) + + seq := 0 + var pending []string + + flush := func() bool { + if len(pending) == 0 { + return true + } + batch := pending + pending = nil + if err := env.SdkClient().SignalWorkflow(ctx, wfID, runID, streamBatchSignal, batch); err != nil { + // A history or signal limit is a legitimate outcome for this + // pattern, not a broken harness. Record it and stop. + res.failure = err.Error() + t.Logf("producer stopped after %d messages: %v", seq, err) + return false + } + return true + } + + for time.Now().Before(deadline) { + select { + case <-ctx.Done(): + return seq + case <-genTicker.C: + sentAt.Store(seq, time.Now()) + pending = append(pending, fmt.Sprintf("%d:%s", seq, payload)) + seq++ + case <-flushTicker.C: + if !flush() { + return seq + } + } + } + flush() + return seq +} + +func runStreamConsumer( + ctx context.Context, + env *testcore.TestEnv, + wfID, runID string, + sentAt *sync.Map, + receivedTotal *atomic.Int64, + rejections *atomic.Int64, +) ([]time.Duration, int) { + var latencies []time.Duration + var batch []string + lastSeen := 0 + + for ctx.Err() == nil { + handle, err := env.SdkClient().UpdateWorkflow(ctx, sdkclient.UpdateWorkflowOptions{ + WorkflowID: wfID, + RunID: runID, + UpdateName: streamPollUpdate, + Args: []any{lastSeen}, + WaitForStage: sdkclient.WorkflowUpdateStageCompleted, + }) + if err == nil { + err = handle.Get(ctx, &batch) + } + if err != nil { + // A rejected poll is a measurement, not a reason to stop. Killing + // the consumer here would report a server limit as consumer + // slowness, which is a different and much less useful claim. + rejections.Add(1) + select { + case <-ctx.Done(): + return latencies, lastSeen + case <-time.After(50 * time.Millisecond): + } + continue + } + received := time.Now() + for range batch { + if v, ok := sentAt.Load(lastSeen); ok { + latencies = append(latencies, received.Sub(v.(time.Time))) + } + lastSeen++ + receivedTotal.Add(1) + } + } + return latencies, lastSeen +} + +// historyPerMsg renders a per-message history figure, keeping a workload with +// no workflow distinct from one that measured zero. +func (r streamBaselineResult) historyPerMsg(v int64) string { + if r.historyNotApplicable { + return "no workflow" + } + if r.messagesSent == 0 { + return "n/a" + } + return fmt.Sprintf("%.2f", float64(v)/float64(r.messagesSent)) +} + +// waitForDrain polls until every consumer has caught up or the deadline passes. +// It reports rather than asserts, because a cell that cannot drain is a result. +func waitForDrain(ctx context.Context, got *atomic.Int64, want int64, timeout time.Duration) bool { + ticker := time.NewTicker(100 * time.Millisecond) + defer ticker.Stop() + deadline := time.After(timeout) + for { + if got.Load() >= want { + return true + } + select { + case <-ctx.Done(): + return false + case <-deadline: + return false + case <-ticker.C: + } + } +} + +func recordingCount(rec *metricstest.CapturedRecording) int64 { + switch v := rec.Value.(type) { + case int64: + return v + case float64: + return int64(v) + default: + return 0 + } +} + +func percentile(d []time.Duration, q float64) time.Duration { + if len(d) == 0 { + return 0 + } + sorted := make([]time.Duration, len(d)) + copy(sorted, d) + slices.Sort(sorted) + idx := int(float64(len(sorted)-1) * q) + return sorted[idx] +} + +func reportStreamBaseline(t *testing.T, results []streamBaselineResult) { + // Emitted as markdown so the numbers can go straight into the design docs + // without being retyped, which is how transcription errors get in. + t.Log("Workflow Streams baseline: Signals in, polling Update out") + t.Log("") + t.Log("| scenario | msgs | delivered | rejected polls | hist events/msg | hist bytes/msg " + + "| persist ops/msg | p50 | p99 |") + t.Log("|---|---|---|---|---|---|---|---|---|") + for _, r := range results { + perMsg := func(v int64) string { + if r.messagesSent == 0 { + return "n/a" + } + return fmt.Sprintf("%.2f", float64(v)/float64(r.messagesSent)) + } + t.Logf("| %s | %d | %d | %d | %s | %s | %s | %s | %s |", + r.params.name, r.messagesSent, r.messagesReceived, r.pollRejections, + r.historyPerMsg(r.historyEvents), r.historyPerMsg(r.historyBytes), + perMsg(r.persistenceRequests), + r.latencyP50.Round(time.Millisecond), r.latencyP99.Round(time.Millisecond)) + } + t.Log("") + for _, r := range results { + if r.failure != "" { + t.Logf("%s did not complete: %s", r.params.name, r.failure) + } + if r.messagesSent > 0 && r.messagesReceived < r.messagesSent*r.params.subscribers { + t.Logf("%s under-delivered: %d of %d expected", + r.params.name, r.messagesReceived, r.messagesSent*r.params.subscribers) + } + } + t.Log("Totals are absolute, not rates: persist ops exclude cluster and workflow start.") + t.Log("Rejected polls are bounded by history.maxInFlightUpdates (default 10) and") + t.Log("history.maxTotalUpdates (default 2000), both per workflow execution.") + for _, r := range results { + t.Logf("%s raw: events=%d bytes=%d persistOps=%d byOp=%v", + r.params.name, r.historyEvents, r.historyBytes, r.persistenceRequests, r.persistenceByOp) + } +} diff --git a/tests/streaming_native_test.go b/tests/streaming_native_test.go new file mode 100644 index 00000000000..556f9ed6e0f --- /dev/null +++ b/tests/streaming_native_test.go @@ -0,0 +1,262 @@ +package tests + +import ( + "context" + "fmt" + "os" + "sync" + "sync/atomic" + "testing" + "time" + + "github.com/stretchr/testify/require" + commonpb "go.temporal.io/api/common/v1" + streampb "go.temporal.io/api/stream/v1" + streamlib "go.temporal.io/server/chasm/lib/stream/gen/streampb/v1" + "go.temporal.io/server/common/metrics" + "go.temporal.io/server/tests/testcore" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" +) + +// The native-stream half of the comparison. It deliberately shares the workload +// shape, latency stamping, and metric capture with the Signal-and-Update +// baseline in streaming_baseline_test.go, because a benchmark whose two halves +// generate load differently measures the harness rather than the design. + +func runNativeStream(t *testing.T, p streamBaselineParams) streamBaselineResult { + env := testcore.NewEnv(t, testcore.WithDisableTestloggerFailure()) + res := streamBaselineResult{params: p, persistenceByOp: map[string]int64{}} + + conn, err := grpc.NewClient(env.FrontendGRPCAddress(), + grpc.WithTransportCredentials(insecure.NewCredentials())) + require.NoError(t, err) + defer func() { _ = conn.Close() }() + client := streamlib.NewStreamServiceClient(conn) + + ctx, cancel := context.WithTimeout(context.Background(), p.duration+2*time.Minute) + defer cancel() + + ns := env.Namespace().String() + streamID := fmt.Sprintf("bench-%s", p.name) + created, err := client.CreateStream(ctx, &streamlib.CreateStreamRequest{ + FrontendRequest: &streamlib.CreateStreamInput{Namespace: ns, StreamId: streamID}, + }) + require.NoError(t, err) + runID := created.GetFrontendResponse().GetRunId() + + // Started after creation so cluster and namespace setup do not inflate the + // per-message figures, matching the baseline. + capture := env.StartNamespaceMetricCapture() + + sentAt := &sync.Map{} + var receivedTotal atomic.Int64 + var pollRejections atomic.Int64 + + consumerCtx, stopConsumers := context.WithCancel(ctx) + defer stopConsumers() + var consumers sync.WaitGroup + latencies := make([][]time.Duration, p.subscribers) + counts := make([]int, p.subscribers) + + for i := range p.subscribers { + consumers.Add(1) + go func(idx int) { + defer consumers.Done() + latencies[idx], counts[idx] = runNativeConsumer( + consumerCtx, client, ns, streamID, runID, sentAt, &receivedTotal, &pollRejections) + }(i) + } + + res.messagesSent = runNativeProducer(ctx, t, client, ns, streamID, runID, p, sentAt, &res) + + want := int64(res.messagesSent) * int64(p.subscribers) + if !waitForDrain(ctx, &receivedTotal, want, 15*time.Second) { + t.Logf("drained %d of %d expected deliveries before timeout", receivedTotal.Load(), want) + } + stopConsumers() + consumers.Wait() + + var all []time.Duration + for i := range p.subscribers { + all = append(all, latencies[i]...) + res.messagesReceived += counts[i] + } + res.pollRejections = pollRejections.Load() + res.latencyP50 = percentile(all, 0.50) + res.latencyP99 = percentile(all, 0.99) + + // This workload has no workflow: the producer and every consumer are external + // gRPC clients. So there is no execution to describe and no history figure to + // report, which is not the same claim as a measured zero and must not be + // rendered as one. What a publish from workflow code costs in history is + // measured against a control in stream_publish_cost_test.go. + res.historyNotApplicable = true + + for _, rec := range capture.Metric(metrics.PersistenceRequests.Name()) { + res.persistenceRequests += recordingCount(rec) + if op, ok := rec.Tags["operation"]; ok { + res.persistenceByOp[op] += recordingCount(rec) + } + } + return res +} + +func runNativeProducer( + ctx context.Context, + t *testing.T, + client streamlib.StreamServiceClient, + ns, streamID, runID string, + p streamBaselineParams, + sentAt *sync.Map, + res *streamBaselineResult, +) int { + payload := make([]byte, streamMessageSize) + for i := range payload { + payload[i] = 'x' + } + + genTicker := time.NewTicker(time.Second / time.Duration(p.messageRate)) + defer genTicker.Stop() + flushTicker := time.NewTicker(p.flushInterval) + defer flushTicker.Stop() + deadline := time.Now().Add(p.duration) + + seq := 0 + var pending []*streamlib.StreamRecord + sequence := int64(0) + + flush := func() bool { + if len(pending) == 0 { + return true + } + batch := pending + pending = nil + sequence++ + _, err := client.AddMessages(ctx, &streamlib.AddMessagesRequest{ + FrontendRequest: &streamlib.AddMessagesInput{ + Namespace: ns, StreamId: streamID, RunId: runID, Records: batch, + ProducerId: "bench", Sequence: sequence, + }, + }) + if err != nil { + res.failure = err.Error() + t.Logf("producer stopped after %d messages: %v", seq, err) + return false + } + return true + } + + for time.Now().Before(deadline) { + select { + case <-ctx.Done(): + return seq + case <-genTicker.C: + sentAt.Store(seq, time.Now()) + pending = append(pending, &streamlib.StreamRecord{ + Body: &commonpb.Payload{Data: payload}, + Kind: streampb.STREAM_RECORD_KIND_DATA, + }) + seq++ + case <-flushTicker.C: + if !flush() { + return seq + } + } + } + flush() + return seq +} + +func runNativeConsumer( + ctx context.Context, + client streamlib.StreamServiceClient, + ns, streamID, runID string, + sentAt *sync.Map, + receivedTotal *atomic.Int64, + rejections *atomic.Int64, +) ([]time.Duration, int) { + var out []time.Duration + lastSeen := int64(0) + + for ctx.Err() == nil { + resp, err := client.PollMessages(ctx, &streamlib.PollMessagesRequest{ + FrontendRequest: &streamlib.PollMessagesInput{ + Namespace: ns, StreamId: streamID, RunId: runID, + FromOffset: lastSeen, WaitNewMessages: true, + }, + }) + if err != nil { + rejections.Add(1) + select { + case <-ctx.Done(): + return out, int(lastSeen) + case <-time.After(50 * time.Millisecond): + } + continue + } + received := time.Now() + fr := resp.GetFrontendResponse() + for range fr.GetRecords() { + if v, ok := sentAt.Load(int(lastSeen)); ok { + out = append(out, received.Sub(v.(time.Time))) + } + lastSeen++ + receivedTotal.Add(1) + } + if next := fr.GetNextOffset(); next > lastSeen { + lastSeen = next + } + } + return out, int(lastSeen) +} + +// TestStreamingComparison runs both designs over the same workload and reports +// them together. This is the artifact the go/no-go decision needs. +func TestStreamingComparison(t *testing.T) { + matrix := shortStreamBaselineMatrix() + if os.Getenv("TEMPORAL_STREAM_BENCH") == "1" { + matrix = fullStreamBaselineMatrix() + } + + var baseline, native []streamBaselineResult + for _, p := range matrix { + t.Run("baseline/"+p.name, func(t *testing.T) { + baseline = append(baseline, runStreamBaseline(t, p)) + }) + t.Run("native/"+p.name, func(t *testing.T) { + native = append(native, runNativeStream(t, p)) + }) + } + + t.Log("Workflow Streams (Signals in, polling Update out) versus native streams") + t.Log("") + t.Log("| scenario | design | msgs | delivered | rejected | wf hist bytes/msg " + + "| persist ops/msg | p50 | p99 |") + t.Log("|---|---|---|---|---|---|---|---|---|") + for i := range baseline { + logComparisonRow(t, "signals+update", baseline[i]) + logComparisonRow(t, "native", native[i]) + } + + t.Log("") + for i := range baseline { + t.Logf("%s signals+update raw: persistOps=%d byOp=%v", + baseline[i].params.name, baseline[i].persistenceRequests, baseline[i].persistenceByOp) + t.Logf("%s native raw: persistOps=%d byOp=%v", + native[i].params.name, native[i].persistenceRequests, native[i].persistenceByOp) + } +} + +func logComparisonRow(t *testing.T, design string, r streamBaselineResult) { + perMsg := func(v int64) string { + if r.messagesSent == 0 { + return "n/a" + } + return fmt.Sprintf("%.2f", float64(v)/float64(r.messagesSent)) + } + t.Logf("| %s | %s | %d | %d | %d | %s | %s | %s | %s |", + r.params.name, design, r.messagesSent, r.messagesReceived, r.pollRejections, + r.historyPerMsg(r.historyBytes), perMsg(r.persistenceRequests), + r.latencyP50.Round(time.Millisecond), r.latencyP99.Round(time.Millisecond)) +} diff --git a/tests/testcore/onebox.go b/tests/testcore/onebox.go index 69dcf62d9ad..a9406fd0ffe 100644 --- a/tests/testcore/onebox.go +++ b/tests/testcore/onebox.go @@ -5,10 +5,12 @@ import ( "encoding/json" "errors" "fmt" + "maps" "math/rand" "net" "os" "path/filepath" + "slices" "strconv" "sync" "testing" @@ -46,7 +48,7 @@ import ( type ( temporalImpl struct { clients - server temporal.Server + servers []temporal.Server logger log.Logger serverConfig *config.Config @@ -226,7 +228,7 @@ func newTemporal(t *testing.T, params *temporalParams) *temporalImpl { return impl } -func (c *temporalImpl) Start() error { +func (c *temporalImpl) Start() (retErr error) { // Worker is optional in functional tests; the other services are always // needed for a usable in-process cluster. services := []primitives.ServiceName{ @@ -239,7 +241,7 @@ func (c *temporalImpl) Start() error { } for _, serviceName := range services { numHosts := len(c.hostsByProtocolByService[grpcProtocol][serviceName].All) - if numHosts != 1 { + if numHosts != 1 && serviceName != primitives.HistoryService { return fmt.Errorf("onebox requires exactly one %s service node, got %d", serviceName, numHosts) } } @@ -299,23 +301,56 @@ func (c *temporalImpl) Start() error { ) defer cleanupHooks() - server, err := temporal.NewServer(options...) - if err != nil { - return fmt.Errorf("unable to construct temporal server: %w", err) - } - - if err := server.Start(); err != nil { - return fmt.Errorf("unable to start temporal server: %w", err) + defer func() { + if retErr != nil { + for _, server := range c.servers { + retErr = multierr.Append(retErr, server.Stop()) + } + c.servers = nil + } + }() + for index, address := range hostsByService[primitives.HistoryService].All { + serverOptions := options + if index > 0 { + // Additional History graphs share membership and persistence while + // binding their own RPC address. Never expose an arbitrary graph's + // CHASM engine through ChasmContext in this multi-host configuration. + extraConfig := cfg + extraConfig.Persistence = copyPersistenceConfig(cfg.Persistence) + extraConfig.Services = maps.Clone(cfg.Services) + bindIP, port := mustSplitHostPort(address) + extraConfig.Services[string(primitives.HistoryService)] = config.Service{ + RPC: config.RPC{BindOnIP: bindIP, GRPCPort: int(port)}, + } + extraHosts := maps.Clone(hostsByService) + historyHosts := extraHosts[primitives.HistoryService] + historyHosts.Self = address + extraHosts[primitives.HistoryService] = historyHosts + serverOptions = []temporal.ServerOption{ + temporal.WithConfig(&extraConfig), + temporal.ForServices([]string{string(primitives.HistoryService)}), + temporal.WithStaticHosts(extraHosts), + } + serverOptions = append(serverOptions, c.baseServerOptions...) + } + server, err := temporal.NewServer(serverOptions...) + if err != nil { + return fmt.Errorf("unable to construct temporal server: %w", err) + } + c.servers = append(c.servers, server) + if err := server.Start(); err != nil { + return fmt.Errorf("unable to start temporal server: %w", err) + } } - c.server = server return nil } func (c *temporalImpl) Stop() error { var errs []error - if c.server != nil { - errs = append(errs, c.server.Stop()) + for _, v := range slices.Backward(c.servers) { + errs = append(errs, v.Stop()) } + c.servers = nil errs = append(errs, c.close()...) return multierr.Combine(errs...) }