From 2b99959167b96a0f0ffeabd72fcd48deccb06dfd Mon Sep 17 00:00:00 2001 From: Kannan Rajah Date: Wed, 11 Mar 2026 11:16:12 -0700 Subject: [PATCH] Add CountWorkers API Implement CountWorkers RPC across frontend, matching, and worker registry. This provides a visibility API to count workers matching a query filter without retrieving full worker details. Changes: - Add CountWorkers to internal matchingservice proto - Implement CountWorkers in worker registry (reuses filterWorkers) - Wire through matching handler and frontend workflow handler - Add DC redirection, quotas, and genrpcwrappers routing - Add functional test for CountWorkers - Use replace directive for api-go with CountWorkers proto Made-with: Cursor --- .../v1/request_response.go-helpers.pb.go | 74 ++ api/matchingservice/v1/request_response.pb.go | 647 ++++++++++-------- api/matchingservice/v1/service.pb.go | 189 ++--- api/matchingservice/v1/service_grpc.pb.go | 39 ++ .../v1/service_grpc.pb.mock.go | 35 + client/frontend/client_gen.go | 10 + client/frontend/metric_client_gen.go | 14 + client/frontend/retryable_client_gen.go | 15 + client/matching/client_gen.go | 20 + client/matching/metric_client_gen.go | 14 + client/matching/retryable_client_gen.go | 15 + cmd/tools/genrpcwrappers/main.go | 1 + .../logtags/matching_service_server_gen.go | 4 + .../logtags/workflow_service_server_gen.go | 4 + common/rpc/interceptor/redirection.go | 1 + .../v1/service_grpc.pb.mock.go | 20 + go.mod | 2 + go.sum | 4 +- .../matchingservice/v1/request_response.proto | 9 + .../api/matchingservice/v1/service.proto | 3 + service/frontend/workflow_handler.go | 25 + service/matching/configs/quotas.go | 1 + service/matching/handler.go | 13 + service/matching/workers/registry.go | 1 + service/matching/workers/registry_impl.go | 18 + tests/worker_registry_test.go | 55 ++ 26 files changed, 868 insertions(+), 365 deletions(-) diff --git a/api/matchingservice/v1/request_response.go-helpers.pb.go b/api/matchingservice/v1/request_response.go-helpers.pb.go index 6fdd838d5c..c760e67dc0 100644 --- a/api/matchingservice/v1/request_response.go-helpers.pb.go +++ b/api/matchingservice/v1/request_response.go-helpers.pb.go @@ -2706,6 +2706,80 @@ func (this *ListWorkersResponse) Equal(that interface{}) bool { return proto.Equal(this, that1) } +// Marshal an object of type CountWorkersRequest to the protobuf v3 wire format +func (val *CountWorkersRequest) Marshal() ([]byte, error) { + return proto.Marshal(val) +} + +// Unmarshal an object of type CountWorkersRequest from the protobuf v3 wire format +func (val *CountWorkersRequest) Unmarshal(buf []byte) error { + return proto.Unmarshal(buf, val) +} + +// Size returns the size of the object, in bytes, once serialized +func (val *CountWorkersRequest) Size() int { + return proto.Size(val) +} + +// Equal returns whether two CountWorkersRequest 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 *CountWorkersRequest) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + var that1 *CountWorkersRequest + switch t := that.(type) { + case *CountWorkersRequest: + that1 = t + case CountWorkersRequest: + that1 = &t + default: + return false + } + + return proto.Equal(this, that1) +} + +// Marshal an object of type CountWorkersResponse to the protobuf v3 wire format +func (val *CountWorkersResponse) Marshal() ([]byte, error) { + return proto.Marshal(val) +} + +// Unmarshal an object of type CountWorkersResponse from the protobuf v3 wire format +func (val *CountWorkersResponse) Unmarshal(buf []byte) error { + return proto.Unmarshal(buf, val) +} + +// Size returns the size of the object, in bytes, once serialized +func (val *CountWorkersResponse) Size() int { + return proto.Size(val) +} + +// Equal returns whether two CountWorkersResponse 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 *CountWorkersResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + var that1 *CountWorkersResponse + switch t := that.(type) { + case *CountWorkersResponse: + that1 = t + case CountWorkersResponse: + that1 = &t + default: + return false + } + + return proto.Equal(this, that1) +} + // Marshal an object of type UpdateTaskQueueConfigRequest to the protobuf v3 wire format func (val *UpdateTaskQueueConfigRequest) Marshal() ([]byte, error) { return proto.Marshal(val) diff --git a/api/matchingservice/v1/request_response.pb.go b/api/matchingservice/v1/request_response.pb.go index 197159ee18..3188aab549 100644 --- a/api/matchingservice/v1/request_response.pb.go +++ b/api/matchingservice/v1/request_response.pb.go @@ -4972,6 +4972,102 @@ func (x *ListWorkersResponse) GetNextPageToken() []byte { return nil } +type CountWorkersRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + NamespaceId string `protobuf:"bytes,1,opt,name=namespace_id,json=namespaceId,proto3" json:"namespace_id,omitempty"` + CountRequest *v1.CountWorkersRequest `protobuf:"bytes,2,opt,name=count_request,json=countRequest,proto3" json:"count_request,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CountWorkersRequest) Reset() { + *x = CountWorkersRequest{} + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CountWorkersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountWorkersRequest) ProtoMessage() {} + +func (x *CountWorkersRequest) ProtoReflect() protoreflect.Message { + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[73] + 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 CountWorkersRequest.ProtoReflect.Descriptor instead. +func (*CountWorkersRequest) Descriptor() ([]byte, []int) { + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{73} +} + +func (x *CountWorkersRequest) GetNamespaceId() string { + if x != nil { + return x.NamespaceId + } + return "" +} + +func (x *CountWorkersRequest) GetCountRequest() *v1.CountWorkersRequest { + if x != nil { + return x.CountRequest + } + return nil +} + +type CountWorkersResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Count int64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CountWorkersResponse) Reset() { + *x = CountWorkersResponse{} + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CountWorkersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountWorkersResponse) ProtoMessage() {} + +func (x *CountWorkersResponse) ProtoReflect() protoreflect.Message { + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[74] + 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 CountWorkersResponse.ProtoReflect.Descriptor instead. +func (*CountWorkersResponse) Descriptor() ([]byte, []int) { + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{74} +} + +func (x *CountWorkersResponse) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + // (-- api-linter: core::0134::request-resource-required=disabled // // aip.dev/not-precedent: UpdateTaskQueueConfigRequest RPC doesn't follow Google API format. --) @@ -4993,7 +5089,7 @@ type UpdateTaskQueueConfigRequest struct { func (x *UpdateTaskQueueConfigRequest) Reset() { *x = UpdateTaskQueueConfigRequest{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[73] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5005,7 +5101,7 @@ func (x *UpdateTaskQueueConfigRequest) String() string { func (*UpdateTaskQueueConfigRequest) ProtoMessage() {} func (x *UpdateTaskQueueConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[73] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5018,7 +5114,7 @@ func (x *UpdateTaskQueueConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTaskQueueConfigRequest.ProtoReflect.Descriptor instead. func (*UpdateTaskQueueConfigRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{73} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{75} } func (x *UpdateTaskQueueConfigRequest) GetNamespaceId() string { @@ -5044,7 +5140,7 @@ type UpdateTaskQueueConfigResponse struct { func (x *UpdateTaskQueueConfigResponse) Reset() { *x = UpdateTaskQueueConfigResponse{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[74] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5056,7 +5152,7 @@ func (x *UpdateTaskQueueConfigResponse) String() string { func (*UpdateTaskQueueConfigResponse) ProtoMessage() {} func (x *UpdateTaskQueueConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[74] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5069,7 +5165,7 @@ func (x *UpdateTaskQueueConfigResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTaskQueueConfigResponse.ProtoReflect.Descriptor instead. func (*UpdateTaskQueueConfigResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{74} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{76} } func (x *UpdateTaskQueueConfigResponse) GetUpdatedTaskqueueConfig() *v14.TaskQueueConfig { @@ -5089,7 +5185,7 @@ type DescribeWorkerRequest struct { func (x *DescribeWorkerRequest) Reset() { *x = DescribeWorkerRequest{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[75] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5101,7 +5197,7 @@ func (x *DescribeWorkerRequest) String() string { func (*DescribeWorkerRequest) ProtoMessage() {} func (x *DescribeWorkerRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[75] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5114,7 +5210,7 @@ func (x *DescribeWorkerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeWorkerRequest.ProtoReflect.Descriptor instead. func (*DescribeWorkerRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{75} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{77} } func (x *DescribeWorkerRequest) GetNamespaceId() string { @@ -5140,7 +5236,7 @@ type DescribeWorkerResponse struct { func (x *DescribeWorkerResponse) Reset() { *x = DescribeWorkerResponse{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[76] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5152,7 +5248,7 @@ func (x *DescribeWorkerResponse) String() string { func (*DescribeWorkerResponse) ProtoMessage() {} func (x *DescribeWorkerResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[76] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5165,7 +5261,7 @@ func (x *DescribeWorkerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DescribeWorkerResponse.ProtoReflect.Descriptor instead. func (*DescribeWorkerResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{76} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{78} } func (x *DescribeWorkerResponse) GetWorkerInfo() *v115.WorkerInfo { @@ -5198,7 +5294,7 @@ type UpdateFairnessStateRequest struct { func (x *UpdateFairnessStateRequest) Reset() { *x = UpdateFairnessStateRequest{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[77] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5210,7 +5306,7 @@ func (x *UpdateFairnessStateRequest) String() string { func (*UpdateFairnessStateRequest) ProtoMessage() {} func (x *UpdateFairnessStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[77] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5223,7 +5319,7 @@ func (x *UpdateFairnessStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFairnessStateRequest.ProtoReflect.Descriptor instead. func (*UpdateFairnessStateRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{77} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{79} } func (x *UpdateFairnessStateRequest) GetNamespaceId() string { @@ -5262,7 +5358,7 @@ type UpdateFairnessStateResponse struct { func (x *UpdateFairnessStateResponse) Reset() { *x = UpdateFairnessStateResponse{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[78] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5274,7 +5370,7 @@ func (x *UpdateFairnessStateResponse) String() string { func (*UpdateFairnessStateResponse) ProtoMessage() {} func (x *UpdateFairnessStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[78] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5287,7 +5383,7 @@ func (x *UpdateFairnessStateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFairnessStateResponse.ProtoReflect.Descriptor instead. func (*UpdateFairnessStateResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{78} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{80} } type CheckTaskQueueVersionMembershipRequest struct { @@ -5302,7 +5398,7 @@ type CheckTaskQueueVersionMembershipRequest struct { func (x *CheckTaskQueueVersionMembershipRequest) Reset() { *x = CheckTaskQueueVersionMembershipRequest{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[79] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5314,7 +5410,7 @@ func (x *CheckTaskQueueVersionMembershipRequest) String() string { func (*CheckTaskQueueVersionMembershipRequest) ProtoMessage() {} func (x *CheckTaskQueueVersionMembershipRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[79] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5327,7 +5423,7 @@ func (x *CheckTaskQueueVersionMembershipRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use CheckTaskQueueVersionMembershipRequest.ProtoReflect.Descriptor instead. func (*CheckTaskQueueVersionMembershipRequest) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{79} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{81} } func (x *CheckTaskQueueVersionMembershipRequest) GetNamespaceId() string { @@ -5367,7 +5463,7 @@ type CheckTaskQueueVersionMembershipResponse struct { func (x *CheckTaskQueueVersionMembershipResponse) Reset() { *x = CheckTaskQueueVersionMembershipResponse{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[80] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5379,7 +5475,7 @@ func (x *CheckTaskQueueVersionMembershipResponse) String() string { func (*CheckTaskQueueVersionMembershipResponse) ProtoMessage() {} func (x *CheckTaskQueueVersionMembershipResponse) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[80] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5392,7 +5488,7 @@ func (x *CheckTaskQueueVersionMembershipResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CheckTaskQueueVersionMembershipResponse.ProtoReflect.Descriptor instead. func (*CheckTaskQueueVersionMembershipResponse) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{80} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{82} } func (x *CheckTaskQueueVersionMembershipResponse) GetIsMember() bool { @@ -5419,7 +5515,7 @@ type PollConditions struct { func (x *PollConditions) Reset() { *x = PollConditions{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[81] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5431,7 +5527,7 @@ func (x *PollConditions) String() string { func (*PollConditions) ProtoMessage() {} func (x *PollConditions) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[81] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5444,7 +5540,7 @@ func (x *PollConditions) ProtoReflect() protoreflect.Message { // Deprecated: Use PollConditions.ProtoReflect.Descriptor instead. func (*PollConditions) Descriptor() ([]byte, []int) { - return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{81} + return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescGZIP(), []int{83} } func (x *PollConditions) GetMinPriority() int32 { @@ -5472,7 +5568,7 @@ type DescribeVersionedTaskQueuesRequest_VersionTaskQueue struct { func (x *DescribeVersionedTaskQueuesRequest_VersionTaskQueue) Reset() { *x = DescribeVersionedTaskQueuesRequest_VersionTaskQueue{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[84] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5484,7 +5580,7 @@ func (x *DescribeVersionedTaskQueuesRequest_VersionTaskQueue) String() string { func (*DescribeVersionedTaskQueuesRequest_VersionTaskQueue) ProtoMessage() {} func (x *DescribeVersionedTaskQueuesRequest_VersionTaskQueue) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[84] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5530,7 +5626,7 @@ type DescribeVersionedTaskQueuesResponse_VersionTaskQueue struct { func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) Reset() { *x = DescribeVersionedTaskQueuesResponse_VersionTaskQueue{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[85] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5542,7 +5638,7 @@ func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) String() string { func (*DescribeVersionedTaskQueuesResponse_VersionTaskQueue) ProtoMessage() {} func (x *DescribeVersionedTaskQueuesResponse_VersionTaskQueue) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[85] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5596,7 +5692,7 @@ type UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest struct { func (x *UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest) Reset() { *x = UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[88] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5608,7 +5704,7 @@ func (x *UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest) String() st func (*UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest) ProtoMessage() {} func (x *UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[88] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5644,7 +5740,7 @@ type UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds struct { func (x *UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds) Reset() { *x = UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[89] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5656,7 +5752,7 @@ func (x *UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds) String() string func (*UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds) ProtoMessage() {} func (x *UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[89] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5694,7 +5790,7 @@ type DispatchNexusTaskResponse_Timeout struct { func (x *DispatchNexusTaskResponse_Timeout) Reset() { *x = DispatchNexusTaskResponse_Timeout{} - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[91] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5706,7 +5802,7 @@ func (x *DispatchNexusTaskResponse_Timeout) String() string { func (*DispatchNexusTaskResponse_Timeout) ProtoMessage() {} func (x *DispatchNexusTaskResponse_Timeout) ProtoReflect() protoreflect.Message { - mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[91] + mi := &file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes[93] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6120,7 +6216,12 @@ const file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc "\flist_request\x18\x02 \x01(\v23.temporal.api.workflowservice.v1.ListWorkersRequestR\vlistRequest\"\x84\x01\n" + "\x13ListWorkersResponse\x12E\n" + "\fworkers_info\x18\x01 \x03(\v2\".temporal.api.worker.v1.WorkerInfoR\vworkersInfo\x12&\n" + - "\x0fnext_page_token\x18\x02 \x01(\fR\rnextPageToken\"\xb8\x01\n" + + "\x0fnext_page_token\x18\x02 \x01(\fR\rnextPageToken\"\x93\x01\n" + + "\x13CountWorkersRequest\x12!\n" + + "\fnamespace_id\x18\x01 \x01(\tR\vnamespaceId\x12Y\n" + + "\rcount_request\x18\x02 \x01(\v24.temporal.api.workflowservice.v1.CountWorkersRequestR\fcountRequest\",\n" + + "\x14CountWorkersResponse\x12\x14\n" + + "\x05count\x18\x01 \x01(\x03R\x05count\"\xb8\x01\n" + "\x1cUpdateTaskQueueConfigRequest\x12!\n" + "\fnamespace_id\x18\x01 \x01(\tR\vnamespaceId\x12u\n" + "\x17update_taskqueue_config\x18\x03 \x01(\v2=.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequestR\x15updateTaskqueueConfig\"\x85\x01\n" + @@ -6163,7 +6264,7 @@ func file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescG return file_temporal_server_api_matchingservice_v1_request_response_proto_rawDescData } -var file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes = make([]protoimpl.MessageInfo, 92) +var file_temporal_server_api_matchingservice_v1_request_response_proto_msgTypes = make([]protoimpl.MessageInfo, 94) var file_temporal_server_api_matchingservice_v1_request_response_proto_goTypes = []any{ (*PollWorkflowTaskQueueRequest)(nil), // 0: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest (*PollWorkflowTaskQueueResponse)(nil), // 1: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse @@ -6238,239 +6339,243 @@ var file_temporal_server_api_matchingservice_v1_request_response_proto_goTypes = (*RecordWorkerHeartbeatResponse)(nil), // 70: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatResponse (*ListWorkersRequest)(nil), // 71: temporal.server.api.matchingservice.v1.ListWorkersRequest (*ListWorkersResponse)(nil), // 72: temporal.server.api.matchingservice.v1.ListWorkersResponse - (*UpdateTaskQueueConfigRequest)(nil), // 73: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest - (*UpdateTaskQueueConfigResponse)(nil), // 74: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse - (*DescribeWorkerRequest)(nil), // 75: temporal.server.api.matchingservice.v1.DescribeWorkerRequest - (*DescribeWorkerResponse)(nil), // 76: temporal.server.api.matchingservice.v1.DescribeWorkerResponse - (*UpdateFairnessStateRequest)(nil), // 77: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest - (*UpdateFairnessStateResponse)(nil), // 78: temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse - (*CheckTaskQueueVersionMembershipRequest)(nil), // 79: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest - (*CheckTaskQueueVersionMembershipResponse)(nil), // 80: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse - (*PollConditions)(nil), // 81: temporal.server.api.matchingservice.v1.PollConditions - nil, // 82: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry - nil, // 83: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry - (*DescribeVersionedTaskQueuesRequest_VersionTaskQueue)(nil), // 84: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue - (*DescribeVersionedTaskQueuesResponse_VersionTaskQueue)(nil), // 85: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue - nil, // 86: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry - nil, // 87: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry - (*UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest)(nil), // 88: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest - (*UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds)(nil), // 89: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.RemoveBuildIds - nil, // 90: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry - (*DispatchNexusTaskResponse_Timeout)(nil), // 91: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.Timeout - (*v1.PollWorkflowTaskQueueRequest)(nil), // 92: temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest - (*v11.WorkflowExecution)(nil), // 93: temporal.api.common.v1.WorkflowExecution - (*v11.WorkflowType)(nil), // 94: temporal.api.common.v1.WorkflowType - (*v12.WorkflowQuery)(nil), // 95: temporal.api.query.v1.WorkflowQuery - (*v13.TransientWorkflowTaskInfo)(nil), // 96: temporal.server.api.history.v1.TransientWorkflowTaskInfo - (*v14.TaskQueue)(nil), // 97: temporal.api.taskqueue.v1.TaskQueue - (*timestamppb.Timestamp)(nil), // 98: google.protobuf.Timestamp - (*v15.Message)(nil), // 99: temporal.api.protocol.v1.Message - (*v16.History)(nil), // 100: temporal.api.history.v1.History - (*v14.PollerScalingDecision)(nil), // 101: temporal.api.taskqueue.v1.PollerScalingDecision - (*v1.PollActivityTaskQueueRequest)(nil), // 102: temporal.api.workflowservice.v1.PollActivityTaskQueueRequest - (*v11.ActivityType)(nil), // 103: temporal.api.common.v1.ActivityType - (*v11.Payloads)(nil), // 104: temporal.api.common.v1.Payloads - (*durationpb.Duration)(nil), // 105: google.protobuf.Duration - (*v11.Header)(nil), // 106: temporal.api.common.v1.Header - (*v11.Priority)(nil), // 107: temporal.api.common.v1.Priority - (*v11.RetryPolicy)(nil), // 108: temporal.api.common.v1.RetryPolicy - (*v17.VectorClock)(nil), // 109: temporal.server.api.clock.v1.VectorClock - (*v18.TaskVersionDirective)(nil), // 110: temporal.server.api.taskqueue.v1.TaskVersionDirective - (*v18.TaskForwardInfo)(nil), // 111: temporal.server.api.taskqueue.v1.TaskForwardInfo - (*v1.QueryWorkflowRequest)(nil), // 112: temporal.api.workflowservice.v1.QueryWorkflowRequest - (*v12.QueryRejected)(nil), // 113: temporal.api.query.v1.QueryRejected - (*v1.RespondQueryTaskCompletedRequest)(nil), // 114: temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest - (v19.TaskQueueType)(0), // 115: temporal.api.enums.v1.TaskQueueType - (*v1.DescribeTaskQueueRequest)(nil), // 116: temporal.api.workflowservice.v1.DescribeTaskQueueRequest - (*v110.WorkerDeploymentVersion)(nil), // 117: temporal.server.api.deployment.v1.WorkerDeploymentVersion - (*v1.DescribeTaskQueueResponse)(nil), // 118: temporal.api.workflowservice.v1.DescribeTaskQueueResponse - (*v18.TaskQueuePartition)(nil), // 119: temporal.server.api.taskqueue.v1.TaskQueuePartition - (*v14.TaskQueueVersionSelection)(nil), // 120: temporal.api.taskqueue.v1.TaskQueueVersionSelection - (*v14.TaskQueuePartitionMetadata)(nil), // 121: temporal.api.taskqueue.v1.TaskQueuePartitionMetadata - (*v1.GetWorkerVersioningRulesRequest)(nil), // 122: temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest - (*v1.GetWorkerVersioningRulesResponse)(nil), // 123: temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse - (*v1.UpdateWorkerVersioningRulesRequest)(nil), // 124: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest - (*v1.UpdateWorkerVersioningRulesResponse)(nil), // 125: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse - (*v1.GetWorkerBuildIdCompatibilityRequest)(nil), // 126: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest - (*v1.GetWorkerBuildIdCompatibilityResponse)(nil), // 127: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse - (*v111.VersionedTaskQueueUserData)(nil), // 128: temporal.server.api.persistence.v1.VersionedTaskQueueUserData - (*v18.VersionedEphemeralData)(nil), // 129: temporal.server.api.taskqueue.v1.VersionedEphemeralData - (*v110.DeploymentVersionData)(nil), // 130: temporal.server.api.deployment.v1.DeploymentVersionData - (*v112.RoutingConfig)(nil), // 131: temporal.api.deployment.v1.RoutingConfig - (*v111.TaskQueueUserData)(nil), // 132: temporal.server.api.persistence.v1.TaskQueueUserData - (*v113.Request)(nil), // 133: temporal.api.nexus.v1.Request - (*v113.HandlerError)(nil), // 134: temporal.api.nexus.v1.HandlerError - (*v113.Response)(nil), // 135: temporal.api.nexus.v1.Response - (*v114.Failure)(nil), // 136: temporal.api.failure.v1.Failure - (*v1.PollNexusTaskQueueRequest)(nil), // 137: temporal.api.workflowservice.v1.PollNexusTaskQueueRequest - (*v1.PollNexusTaskQueueResponse)(nil), // 138: temporal.api.workflowservice.v1.PollNexusTaskQueueResponse - (*v1.RespondNexusTaskCompletedRequest)(nil), // 139: temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest - (*v1.RespondNexusTaskFailedRequest)(nil), // 140: temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest - (*v111.NexusEndpointSpec)(nil), // 141: temporal.server.api.persistence.v1.NexusEndpointSpec - (*v111.NexusEndpointEntry)(nil), // 142: temporal.server.api.persistence.v1.NexusEndpointEntry - (*v1.RecordWorkerHeartbeatRequest)(nil), // 143: temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest - (*v1.ListWorkersRequest)(nil), // 144: temporal.api.workflowservice.v1.ListWorkersRequest - (*v115.WorkerInfo)(nil), // 145: temporal.api.worker.v1.WorkerInfo - (*v1.UpdateTaskQueueConfigRequest)(nil), // 146: temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest - (*v14.TaskQueueConfig)(nil), // 147: temporal.api.taskqueue.v1.TaskQueueConfig - (*v1.DescribeWorkerRequest)(nil), // 148: temporal.api.workflowservice.v1.DescribeWorkerRequest - (v116.FairnessState)(0), // 149: temporal.server.api.enums.v1.FairnessState - (*v14.TaskQueueStats)(nil), // 150: temporal.api.taskqueue.v1.TaskQueueStats - (*v18.TaskQueueVersionInfoInternal)(nil), // 151: temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal - (*v1.UpdateWorkerBuildIdCompatibilityRequest)(nil), // 152: temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest - (*v110.WorkerDeploymentVersionData)(nil), // 153: temporal.server.api.deployment.v1.WorkerDeploymentVersionData + (*CountWorkersRequest)(nil), // 73: temporal.server.api.matchingservice.v1.CountWorkersRequest + (*CountWorkersResponse)(nil), // 74: temporal.server.api.matchingservice.v1.CountWorkersResponse + (*UpdateTaskQueueConfigRequest)(nil), // 75: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest + (*UpdateTaskQueueConfigResponse)(nil), // 76: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse + (*DescribeWorkerRequest)(nil), // 77: temporal.server.api.matchingservice.v1.DescribeWorkerRequest + (*DescribeWorkerResponse)(nil), // 78: temporal.server.api.matchingservice.v1.DescribeWorkerResponse + (*UpdateFairnessStateRequest)(nil), // 79: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest + (*UpdateFairnessStateResponse)(nil), // 80: temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse + (*CheckTaskQueueVersionMembershipRequest)(nil), // 81: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest + (*CheckTaskQueueVersionMembershipResponse)(nil), // 82: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse + (*PollConditions)(nil), // 83: temporal.server.api.matchingservice.v1.PollConditions + nil, // 84: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry + nil, // 85: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry + (*DescribeVersionedTaskQueuesRequest_VersionTaskQueue)(nil), // 86: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue + (*DescribeVersionedTaskQueuesResponse_VersionTaskQueue)(nil), // 87: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue + nil, // 88: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry + nil, // 89: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry + (*UpdateWorkerBuildIdCompatibilityRequest_ApplyPublicRequest)(nil), // 90: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest + (*UpdateWorkerBuildIdCompatibilityRequest_RemoveBuildIds)(nil), // 91: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.RemoveBuildIds + nil, // 92: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry + (*DispatchNexusTaskResponse_Timeout)(nil), // 93: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.Timeout + (*v1.PollWorkflowTaskQueueRequest)(nil), // 94: temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest + (*v11.WorkflowExecution)(nil), // 95: temporal.api.common.v1.WorkflowExecution + (*v11.WorkflowType)(nil), // 96: temporal.api.common.v1.WorkflowType + (*v12.WorkflowQuery)(nil), // 97: temporal.api.query.v1.WorkflowQuery + (*v13.TransientWorkflowTaskInfo)(nil), // 98: temporal.server.api.history.v1.TransientWorkflowTaskInfo + (*v14.TaskQueue)(nil), // 99: temporal.api.taskqueue.v1.TaskQueue + (*timestamppb.Timestamp)(nil), // 100: google.protobuf.Timestamp + (*v15.Message)(nil), // 101: temporal.api.protocol.v1.Message + (*v16.History)(nil), // 102: temporal.api.history.v1.History + (*v14.PollerScalingDecision)(nil), // 103: temporal.api.taskqueue.v1.PollerScalingDecision + (*v1.PollActivityTaskQueueRequest)(nil), // 104: temporal.api.workflowservice.v1.PollActivityTaskQueueRequest + (*v11.ActivityType)(nil), // 105: temporal.api.common.v1.ActivityType + (*v11.Payloads)(nil), // 106: temporal.api.common.v1.Payloads + (*durationpb.Duration)(nil), // 107: google.protobuf.Duration + (*v11.Header)(nil), // 108: temporal.api.common.v1.Header + (*v11.Priority)(nil), // 109: temporal.api.common.v1.Priority + (*v11.RetryPolicy)(nil), // 110: temporal.api.common.v1.RetryPolicy + (*v17.VectorClock)(nil), // 111: temporal.server.api.clock.v1.VectorClock + (*v18.TaskVersionDirective)(nil), // 112: temporal.server.api.taskqueue.v1.TaskVersionDirective + (*v18.TaskForwardInfo)(nil), // 113: temporal.server.api.taskqueue.v1.TaskForwardInfo + (*v1.QueryWorkflowRequest)(nil), // 114: temporal.api.workflowservice.v1.QueryWorkflowRequest + (*v12.QueryRejected)(nil), // 115: temporal.api.query.v1.QueryRejected + (*v1.RespondQueryTaskCompletedRequest)(nil), // 116: temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest + (v19.TaskQueueType)(0), // 117: temporal.api.enums.v1.TaskQueueType + (*v1.DescribeTaskQueueRequest)(nil), // 118: temporal.api.workflowservice.v1.DescribeTaskQueueRequest + (*v110.WorkerDeploymentVersion)(nil), // 119: temporal.server.api.deployment.v1.WorkerDeploymentVersion + (*v1.DescribeTaskQueueResponse)(nil), // 120: temporal.api.workflowservice.v1.DescribeTaskQueueResponse + (*v18.TaskQueuePartition)(nil), // 121: temporal.server.api.taskqueue.v1.TaskQueuePartition + (*v14.TaskQueueVersionSelection)(nil), // 122: temporal.api.taskqueue.v1.TaskQueueVersionSelection + (*v14.TaskQueuePartitionMetadata)(nil), // 123: temporal.api.taskqueue.v1.TaskQueuePartitionMetadata + (*v1.GetWorkerVersioningRulesRequest)(nil), // 124: temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest + (*v1.GetWorkerVersioningRulesResponse)(nil), // 125: temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse + (*v1.UpdateWorkerVersioningRulesRequest)(nil), // 126: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest + (*v1.UpdateWorkerVersioningRulesResponse)(nil), // 127: temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse + (*v1.GetWorkerBuildIdCompatibilityRequest)(nil), // 128: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest + (*v1.GetWorkerBuildIdCompatibilityResponse)(nil), // 129: temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse + (*v111.VersionedTaskQueueUserData)(nil), // 130: temporal.server.api.persistence.v1.VersionedTaskQueueUserData + (*v18.VersionedEphemeralData)(nil), // 131: temporal.server.api.taskqueue.v1.VersionedEphemeralData + (*v110.DeploymentVersionData)(nil), // 132: temporal.server.api.deployment.v1.DeploymentVersionData + (*v112.RoutingConfig)(nil), // 133: temporal.api.deployment.v1.RoutingConfig + (*v111.TaskQueueUserData)(nil), // 134: temporal.server.api.persistence.v1.TaskQueueUserData + (*v113.Request)(nil), // 135: temporal.api.nexus.v1.Request + (*v113.HandlerError)(nil), // 136: temporal.api.nexus.v1.HandlerError + (*v113.Response)(nil), // 137: temporal.api.nexus.v1.Response + (*v114.Failure)(nil), // 138: temporal.api.failure.v1.Failure + (*v1.PollNexusTaskQueueRequest)(nil), // 139: temporal.api.workflowservice.v1.PollNexusTaskQueueRequest + (*v1.PollNexusTaskQueueResponse)(nil), // 140: temporal.api.workflowservice.v1.PollNexusTaskQueueResponse + (*v1.RespondNexusTaskCompletedRequest)(nil), // 141: temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest + (*v1.RespondNexusTaskFailedRequest)(nil), // 142: temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest + (*v111.NexusEndpointSpec)(nil), // 143: temporal.server.api.persistence.v1.NexusEndpointSpec + (*v111.NexusEndpointEntry)(nil), // 144: temporal.server.api.persistence.v1.NexusEndpointEntry + (*v1.RecordWorkerHeartbeatRequest)(nil), // 145: temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest + (*v1.ListWorkersRequest)(nil), // 146: temporal.api.workflowservice.v1.ListWorkersRequest + (*v115.WorkerInfo)(nil), // 147: temporal.api.worker.v1.WorkerInfo + (*v1.CountWorkersRequest)(nil), // 148: temporal.api.workflowservice.v1.CountWorkersRequest + (*v1.UpdateTaskQueueConfigRequest)(nil), // 149: temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest + (*v14.TaskQueueConfig)(nil), // 150: temporal.api.taskqueue.v1.TaskQueueConfig + (*v1.DescribeWorkerRequest)(nil), // 151: temporal.api.workflowservice.v1.DescribeWorkerRequest + (v116.FairnessState)(0), // 152: temporal.server.api.enums.v1.FairnessState + (*v14.TaskQueueStats)(nil), // 153: temporal.api.taskqueue.v1.TaskQueueStats + (*v18.TaskQueueVersionInfoInternal)(nil), // 154: temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal + (*v1.UpdateWorkerBuildIdCompatibilityRequest)(nil), // 155: temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest + (*v110.WorkerDeploymentVersionData)(nil), // 156: temporal.server.api.deployment.v1.WorkerDeploymentVersionData } var file_temporal_server_api_matchingservice_v1_request_response_proto_depIdxs = []int32{ - 92, // 0: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest - 81, // 1: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions - 93, // 2: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 94, // 3: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 95, // 4: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.query:type_name -> temporal.api.query.v1.WorkflowQuery - 96, // 5: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo - 97, // 6: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 98, // 7: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.scheduled_time:type_name -> google.protobuf.Timestamp - 98, // 8: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.started_time:type_name -> google.protobuf.Timestamp - 82, // 9: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.queries:type_name -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry - 99, // 10: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.messages:type_name -> temporal.api.protocol.v1.Message - 100, // 11: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.history:type_name -> temporal.api.history.v1.History - 101, // 12: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision - 100, // 13: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.raw_history:type_name -> temporal.api.history.v1.History - 93, // 14: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 94, // 15: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 95, // 16: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.query:type_name -> temporal.api.query.v1.WorkflowQuery - 96, // 17: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo - 97, // 18: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 98, // 19: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.scheduled_time:type_name -> google.protobuf.Timestamp - 98, // 20: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.started_time:type_name -> google.protobuf.Timestamp - 83, // 21: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.queries:type_name -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry - 99, // 22: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.messages:type_name -> temporal.api.protocol.v1.Message - 100, // 23: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.history:type_name -> temporal.api.history.v1.History - 101, // 24: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision - 102, // 25: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueRequest - 81, // 26: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions - 93, // 27: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution - 103, // 28: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.activity_type:type_name -> temporal.api.common.v1.ActivityType - 104, // 29: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.input:type_name -> temporal.api.common.v1.Payloads - 98, // 30: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.scheduled_time:type_name -> google.protobuf.Timestamp - 105, // 31: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.schedule_to_close_timeout:type_name -> google.protobuf.Duration - 98, // 32: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.started_time:type_name -> google.protobuf.Timestamp - 105, // 33: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.start_to_close_timeout:type_name -> google.protobuf.Duration - 105, // 34: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_timeout:type_name -> google.protobuf.Duration - 98, // 35: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.current_attempt_scheduled_time:type_name -> google.protobuf.Timestamp - 104, // 36: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_details:type_name -> temporal.api.common.v1.Payloads - 94, // 37: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType - 106, // 38: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.header:type_name -> temporal.api.common.v1.Header - 101, // 39: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision - 107, // 40: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.priority:type_name -> temporal.api.common.v1.Priority - 108, // 41: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.retry_policy:type_name -> temporal.api.common.v1.RetryPolicy - 93, // 42: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 97, // 43: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 105, // 44: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration - 109, // 45: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 110, // 46: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 111, // 47: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 107, // 48: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.priority:type_name -> temporal.api.common.v1.Priority - 93, // 49: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution - 97, // 50: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 105, // 51: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration - 109, // 52: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock - 110, // 53: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 111, // 54: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 107, // 55: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.priority:type_name -> temporal.api.common.v1.Priority - 97, // 56: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 112, // 57: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.query_request:type_name -> temporal.api.workflowservice.v1.QueryWorkflowRequest - 110, // 58: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective - 111, // 59: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 107, // 60: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.priority:type_name -> temporal.api.common.v1.Priority - 104, // 61: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_result:type_name -> temporal.api.common.v1.Payloads - 113, // 62: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_rejected:type_name -> temporal.api.query.v1.QueryRejected - 97, // 63: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 114, // 64: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.completed_request:type_name -> temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest - 115, // 65: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 97, // 66: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 97, // 67: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 115, // 68: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 116, // 69: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.desc_request:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueRequest - 117, // 70: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 118, // 71: temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse.desc_response:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueResponse - 115, // 72: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 97, // 73: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 117, // 74: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 84, // 75: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue - 85, // 76: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue - 119, // 77: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 120, // 78: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.versions:type_name -> temporal.api.taskqueue.v1.TaskQueueVersionSelection - 87, // 79: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.versions_info_internal:type_name -> temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry - 97, // 80: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 121, // 81: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.activity_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata - 121, // 82: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.workflow_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata - 88, // 83: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.apply_public_request:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest - 89, // 84: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.remove_build_ids:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.RemoveBuildIds - 122, // 85: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest - 123, // 86: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse - 124, // 87: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest - 125, // 88: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse - 126, // 89: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest - 127, // 90: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse - 115, // 91: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 128, // 92: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData - 129, // 93: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.ephemeral_data:type_name -> temporal.server.api.taskqueue.v1.VersionedEphemeralData - 115, // 94: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.task_queue_types:type_name -> temporal.api.enums.v1.TaskQueueType - 130, // 95: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_version_data:type_name -> temporal.server.api.deployment.v1.DeploymentVersionData - 117, // 96: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.forget_version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 131, // 97: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_routing_config:type_name -> temporal.api.deployment.v1.RoutingConfig - 90, // 98: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.upsert_versions_data:type_name -> temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry - 132, // 99: temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData - 119, // 100: temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 115, // 101: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 119, // 102: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition - 128, // 103: temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData - 132, // 104: temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData - 97, // 105: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 133, // 106: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.request:type_name -> temporal.api.nexus.v1.Request - 111, // 107: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo - 134, // 108: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.handler_error:type_name -> temporal.api.nexus.v1.HandlerError - 135, // 109: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.response:type_name -> temporal.api.nexus.v1.Response - 91, // 110: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.request_timeout:type_name -> temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.Timeout - 136, // 111: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.failure:type_name -> temporal.api.failure.v1.Failure - 137, // 112: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.request:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueRequest - 81, // 113: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions - 138, // 114: temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse.response:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueResponse - 97, // 115: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 139, // 116: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest - 97, // 117: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue - 140, // 118: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest - 141, // 119: temporal.server.api.matchingservice.v1.CreateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec - 142, // 120: temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry - 141, // 121: temporal.server.api.matchingservice.v1.UpdateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec - 142, // 122: temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry - 142, // 123: temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse.entries:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry - 143, // 124: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest.heartbeart_request:type_name -> temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest - 144, // 125: temporal.server.api.matchingservice.v1.ListWorkersRequest.list_request:type_name -> temporal.api.workflowservice.v1.ListWorkersRequest - 145, // 126: temporal.server.api.matchingservice.v1.ListWorkersResponse.workers_info:type_name -> temporal.api.worker.v1.WorkerInfo - 146, // 127: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest.update_taskqueue_config:type_name -> temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest - 147, // 128: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse.updated_taskqueue_config:type_name -> temporal.api.taskqueue.v1.TaskQueueConfig - 148, // 129: temporal.server.api.matchingservice.v1.DescribeWorkerRequest.request:type_name -> temporal.api.workflowservice.v1.DescribeWorkerRequest - 145, // 130: temporal.server.api.matchingservice.v1.DescribeWorkerResponse.worker_info:type_name -> temporal.api.worker.v1.WorkerInfo - 115, // 131: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 149, // 132: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.fairness_state:type_name -> temporal.server.api.enums.v1.FairnessState - 115, // 133: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType - 117, // 134: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion - 95, // 135: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery - 95, // 136: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery - 115, // 137: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType - 115, // 138: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType - 150, // 139: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats:type_name -> temporal.api.taskqueue.v1.TaskQueueStats - 86, // 140: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats_by_priority_key:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry - 150, // 141: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry.value:type_name -> temporal.api.taskqueue.v1.TaskQueueStats - 151, // 142: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry.value:type_name -> temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal - 152, // 143: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest - 153, // 144: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry.value:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersionData - 145, // [145:145] is the sub-list for method output_type - 145, // [145:145] is the sub-list for method input_type - 145, // [145:145] is the sub-list for extension type_name - 145, // [145:145] is the sub-list for extension extendee - 0, // [0:145] is the sub-list for field type_name + 94, // 0: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest + 83, // 1: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions + 95, // 2: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 96, // 3: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 97, // 4: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.query:type_name -> temporal.api.query.v1.WorkflowQuery + 98, // 5: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo + 99, // 6: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 100, // 7: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.scheduled_time:type_name -> google.protobuf.Timestamp + 100, // 8: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.started_time:type_name -> google.protobuf.Timestamp + 84, // 9: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.queries:type_name -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry + 101, // 10: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.messages:type_name -> temporal.api.protocol.v1.Message + 102, // 11: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.history:type_name -> temporal.api.history.v1.History + 103, // 12: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision + 102, // 13: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.raw_history:type_name -> temporal.api.history.v1.History + 95, // 14: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 96, // 15: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 97, // 16: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.query:type_name -> temporal.api.query.v1.WorkflowQuery + 98, // 17: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.transient_workflow_task:type_name -> temporal.server.api.history.v1.TransientWorkflowTaskInfo + 99, // 18: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.workflow_execution_task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 100, // 19: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.scheduled_time:type_name -> google.protobuf.Timestamp + 100, // 20: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.started_time:type_name -> google.protobuf.Timestamp + 85, // 21: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.queries:type_name -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry + 101, // 22: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.messages:type_name -> temporal.api.protocol.v1.Message + 102, // 23: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.history:type_name -> temporal.api.history.v1.History + 103, // 24: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision + 104, // 25: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.poll_request:type_name -> temporal.api.workflowservice.v1.PollActivityTaskQueueRequest + 83, // 26: temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions + 95, // 27: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_execution:type_name -> temporal.api.common.v1.WorkflowExecution + 105, // 28: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.activity_type:type_name -> temporal.api.common.v1.ActivityType + 106, // 29: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.input:type_name -> temporal.api.common.v1.Payloads + 100, // 30: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.scheduled_time:type_name -> google.protobuf.Timestamp + 107, // 31: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.schedule_to_close_timeout:type_name -> google.protobuf.Duration + 100, // 32: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.started_time:type_name -> google.protobuf.Timestamp + 107, // 33: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.start_to_close_timeout:type_name -> google.protobuf.Duration + 107, // 34: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_timeout:type_name -> google.protobuf.Duration + 100, // 35: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.current_attempt_scheduled_time:type_name -> google.protobuf.Timestamp + 106, // 36: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.heartbeat_details:type_name -> temporal.api.common.v1.Payloads + 96, // 37: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.workflow_type:type_name -> temporal.api.common.v1.WorkflowType + 108, // 38: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.header:type_name -> temporal.api.common.v1.Header + 103, // 39: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.poller_scaling_decision:type_name -> temporal.api.taskqueue.v1.PollerScalingDecision + 109, // 40: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.priority:type_name -> temporal.api.common.v1.Priority + 110, // 41: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse.retry_policy:type_name -> temporal.api.common.v1.RetryPolicy + 95, // 42: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 99, // 43: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 107, // 44: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration + 111, // 45: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 112, // 46: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 113, // 47: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 109, // 48: temporal.server.api.matchingservice.v1.AddWorkflowTaskRequest.priority:type_name -> temporal.api.common.v1.Priority + 95, // 49: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.execution:type_name -> temporal.api.common.v1.WorkflowExecution + 99, // 50: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 107, // 51: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.schedule_to_start_timeout:type_name -> google.protobuf.Duration + 111, // 52: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.clock:type_name -> temporal.server.api.clock.v1.VectorClock + 112, // 53: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 113, // 54: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 109, // 55: temporal.server.api.matchingservice.v1.AddActivityTaskRequest.priority:type_name -> temporal.api.common.v1.Priority + 99, // 56: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 114, // 57: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.query_request:type_name -> temporal.api.workflowservice.v1.QueryWorkflowRequest + 112, // 58: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.version_directive:type_name -> temporal.server.api.taskqueue.v1.TaskVersionDirective + 113, // 59: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 109, // 60: temporal.server.api.matchingservice.v1.QueryWorkflowRequest.priority:type_name -> temporal.api.common.v1.Priority + 106, // 61: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_result:type_name -> temporal.api.common.v1.Payloads + 115, // 62: temporal.server.api.matchingservice.v1.QueryWorkflowResponse.query_rejected:type_name -> temporal.api.query.v1.QueryRejected + 99, // 63: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 116, // 64: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedRequest.completed_request:type_name -> temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest + 117, // 65: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 99, // 66: temporal.server.api.matchingservice.v1.CancelOutstandingPollRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 99, // 67: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 117, // 68: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 118, // 69: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.desc_request:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueRequest + 119, // 70: temporal.server.api.matchingservice.v1.DescribeTaskQueueRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 120, // 71: temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse.desc_response:type_name -> temporal.api.workflowservice.v1.DescribeTaskQueueResponse + 117, // 72: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 99, // 73: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 119, // 74: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 86, // 75: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue + 87, // 76: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.version_task_queues:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue + 121, // 77: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 122, // 78: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionRequest.versions:type_name -> temporal.api.taskqueue.v1.TaskQueueVersionSelection + 89, // 79: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.versions_info_internal:type_name -> temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry + 99, // 80: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 123, // 81: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.activity_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata + 123, // 82: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse.workflow_task_queue_partitions:type_name -> temporal.api.taskqueue.v1.TaskQueuePartitionMetadata + 90, // 83: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.apply_public_request:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest + 91, // 84: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.remove_build_ids:type_name -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.RemoveBuildIds + 124, // 85: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest + 125, // 86: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse + 126, // 87: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest + 127, // 88: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse.response:type_name -> temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse + 128, // 89: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityRequest.request:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest + 129, // 90: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse.response:type_name -> temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse + 117, // 91: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 130, // 92: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData + 131, // 93: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse.ephemeral_data:type_name -> temporal.server.api.taskqueue.v1.VersionedEphemeralData + 117, // 94: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.task_queue_types:type_name -> temporal.api.enums.v1.TaskQueueType + 132, // 95: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_version_data:type_name -> temporal.server.api.deployment.v1.DeploymentVersionData + 119, // 96: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.forget_version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 133, // 97: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.update_routing_config:type_name -> temporal.api.deployment.v1.RoutingConfig + 92, // 98: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.upsert_versions_data:type_name -> temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry + 134, // 99: temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData + 121, // 100: temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 117, // 101: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 121, // 102: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionRequest.task_queue_partition:type_name -> temporal.server.api.taskqueue.v1.TaskQueuePartition + 130, // 103: temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.VersionedTaskQueueUserData + 134, // 104: temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataRequest.user_data:type_name -> temporal.server.api.persistence.v1.TaskQueueUserData + 99, // 105: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 135, // 106: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.request:type_name -> temporal.api.nexus.v1.Request + 113, // 107: temporal.server.api.matchingservice.v1.DispatchNexusTaskRequest.forward_info:type_name -> temporal.server.api.taskqueue.v1.TaskForwardInfo + 136, // 108: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.handler_error:type_name -> temporal.api.nexus.v1.HandlerError + 137, // 109: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.response:type_name -> temporal.api.nexus.v1.Response + 93, // 110: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.request_timeout:type_name -> temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.Timeout + 138, // 111: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse.failure:type_name -> temporal.api.failure.v1.Failure + 139, // 112: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.request:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueRequest + 83, // 113: temporal.server.api.matchingservice.v1.PollNexusTaskQueueRequest.conditions:type_name -> temporal.server.api.matchingservice.v1.PollConditions + 140, // 114: temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse.response:type_name -> temporal.api.workflowservice.v1.PollNexusTaskQueueResponse + 99, // 115: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 141, // 116: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest + 99, // 117: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.task_queue:type_name -> temporal.api.taskqueue.v1.TaskQueue + 142, // 118: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedRequest.request:type_name -> temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest + 143, // 119: temporal.server.api.matchingservice.v1.CreateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec + 144, // 120: temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry + 143, // 121: temporal.server.api.matchingservice.v1.UpdateNexusEndpointRequest.spec:type_name -> temporal.server.api.persistence.v1.NexusEndpointSpec + 144, // 122: temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse.entry:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry + 144, // 123: temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse.entries:type_name -> temporal.server.api.persistence.v1.NexusEndpointEntry + 145, // 124: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest.heartbeart_request:type_name -> temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest + 146, // 125: temporal.server.api.matchingservice.v1.ListWorkersRequest.list_request:type_name -> temporal.api.workflowservice.v1.ListWorkersRequest + 147, // 126: temporal.server.api.matchingservice.v1.ListWorkersResponse.workers_info:type_name -> temporal.api.worker.v1.WorkerInfo + 148, // 127: temporal.server.api.matchingservice.v1.CountWorkersRequest.count_request:type_name -> temporal.api.workflowservice.v1.CountWorkersRequest + 149, // 128: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest.update_taskqueue_config:type_name -> temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest + 150, // 129: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse.updated_taskqueue_config:type_name -> temporal.api.taskqueue.v1.TaskQueueConfig + 151, // 130: temporal.server.api.matchingservice.v1.DescribeWorkerRequest.request:type_name -> temporal.api.workflowservice.v1.DescribeWorkerRequest + 147, // 131: temporal.server.api.matchingservice.v1.DescribeWorkerResponse.worker_info:type_name -> temporal.api.worker.v1.WorkerInfo + 117, // 132: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 152, // 133: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest.fairness_state:type_name -> temporal.server.api.enums.v1.FairnessState + 117, // 134: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.task_queue_type:type_name -> temporal.api.enums.v1.TaskQueueType + 119, // 135: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest.version:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersion + 97, // 136: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery + 97, // 137: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponseWithRawHistory.QueriesEntry.value:type_name -> temporal.api.query.v1.WorkflowQuery + 117, // 138: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesRequest.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType + 117, // 139: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.type:type_name -> temporal.api.enums.v1.TaskQueueType + 153, // 140: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats:type_name -> temporal.api.taskqueue.v1.TaskQueueStats + 88, // 141: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.stats_by_priority_key:type_name -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry + 153, // 142: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse.VersionTaskQueue.StatsByPriorityKeyEntry.value:type_name -> temporal.api.taskqueue.v1.TaskQueueStats + 154, // 143: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse.VersionsInfoInternalEntry.value:type_name -> temporal.server.api.taskqueue.v1.TaskQueueVersionInfoInternal + 155, // 144: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityRequest.ApplyPublicRequest.request:type_name -> temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest + 156, // 145: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataRequest.UpsertVersionsDataEntry.value:type_name -> temporal.server.api.deployment.v1.WorkerDeploymentVersionData + 146, // [146:146] is the sub-list for method output_type + 146, // [146:146] is the sub-list for method input_type + 146, // [146:146] is the sub-list for extension type_name + 146, // [146:146] is the sub-list for extension extendee + 0, // [0:146] is the sub-list for field type_name } func init() { file_temporal_server_api_matchingservice_v1_request_response_proto_init() } @@ -6505,7 +6610,7 @@ func file_temporal_server_api_matchingservice_v1_request_response_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc), len(file_temporal_server_api_matchingservice_v1_request_response_proto_rawDesc)), NumEnums: 0, - NumMessages: 92, + NumMessages: 94, NumExtensions: 0, NumServices: 0, }, diff --git a/api/matchingservice/v1/service.pb.go b/api/matchingservice/v1/service.pb.go index d92d98f473..04bb7b722f 100644 --- a/api/matchingservice/v1/service.pb.go +++ b/api/matchingservice/v1/service.pb.go @@ -25,7 +25,7 @@ var File_temporal_server_api_matchingservice_v1_service_proto protoreflect.FileD const file_temporal_server_api_matchingservice_v1_service_proto_rawDesc = "" + "\n" + - "4temporal/server/api/matchingservice/v1/service.proto\x12&temporal.server.api.matchingservice.v1\x1a=temporal/server/api/matchingservice/v1/request_response.proto2\xb36\n" + + "4temporal/server/api/matchingservice/v1/service.proto\x12&temporal.server.api.matchingservice.v1\x1a=temporal/server/api/matchingservice/v1/request_response.proto2\xc17\n" + "\x0fMatchingService\x12\xa6\x01\n" + "\x15PollWorkflowTaskQueue\x12D.temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest\x1aE.temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse\"\x00\x12\xa6\x01\n" + "\x15PollActivityTaskQueue\x12D.temporal.server.api.matchingservice.v1.PollActivityTaskQueueRequest\x1aE.temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse\"\x00\x12\x94\x01\n" + @@ -62,7 +62,8 @@ const file_temporal_server_api_matchingservice_v1_service_proto_rawDesc = "" + "\x13DeleteNexusEndpoint\x12B.temporal.server.api.matchingservice.v1.DeleteNexusEndpointRequest\x1aC.temporal.server.api.matchingservice.v1.DeleteNexusEndpointResponse\"\x00\x12\x9d\x01\n" + "\x12ListNexusEndpoints\x12A.temporal.server.api.matchingservice.v1.ListNexusEndpointsRequest\x1aB.temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse\"\x00\x12\xa6\x01\n" + "\x15RecordWorkerHeartbeat\x12D.temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest\x1aE.temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatResponse\"\x00\x12\x88\x01\n" + - "\vListWorkers\x12:.temporal.server.api.matchingservice.v1.ListWorkersRequest\x1a;.temporal.server.api.matchingservice.v1.ListWorkersResponse\"\x00\x12\xa6\x01\n" + + "\vListWorkers\x12:.temporal.server.api.matchingservice.v1.ListWorkersRequest\x1a;.temporal.server.api.matchingservice.v1.ListWorkersResponse\"\x00\x12\x8b\x01\n" + + "\fCountWorkers\x12;.temporal.server.api.matchingservice.v1.CountWorkersRequest\x1a<.temporal.server.api.matchingservice.v1.CountWorkersResponse\"\x00\x12\xa6\x01\n" + "\x15UpdateTaskQueueConfig\x12D.temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest\x1aE.temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse\"\x00\x12\x91\x01\n" + "\x0eDescribeWorker\x12=.temporal.server.api.matchingservice.v1.DescribeWorkerRequest\x1a>.temporal.server.api.matchingservice.v1.DescribeWorkerResponse\"\x00\x12\xa0\x01\n" + "\x13UpdateFairnessState\x12B.temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest\x1aC.temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse\"\x00\x12\xc4\x01\n" + @@ -105,50 +106,52 @@ var file_temporal_server_api_matchingservice_v1_service_proto_goTypes = []any{ (*ListNexusEndpointsRequest)(nil), // 33: temporal.server.api.matchingservice.v1.ListNexusEndpointsRequest (*RecordWorkerHeartbeatRequest)(nil), // 34: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest (*ListWorkersRequest)(nil), // 35: temporal.server.api.matchingservice.v1.ListWorkersRequest - (*UpdateTaskQueueConfigRequest)(nil), // 36: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest - (*DescribeWorkerRequest)(nil), // 37: temporal.server.api.matchingservice.v1.DescribeWorkerRequest - (*UpdateFairnessStateRequest)(nil), // 38: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest - (*CheckTaskQueueVersionMembershipRequest)(nil), // 39: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest - (*PollWorkflowTaskQueueResponse)(nil), // 40: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse - (*PollActivityTaskQueueResponse)(nil), // 41: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse - (*AddWorkflowTaskResponse)(nil), // 42: temporal.server.api.matchingservice.v1.AddWorkflowTaskResponse - (*AddActivityTaskResponse)(nil), // 43: temporal.server.api.matchingservice.v1.AddActivityTaskResponse - (*QueryWorkflowResponse)(nil), // 44: temporal.server.api.matchingservice.v1.QueryWorkflowResponse - (*RespondQueryTaskCompletedResponse)(nil), // 45: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedResponse - (*DispatchNexusTaskResponse)(nil), // 46: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse - (*PollNexusTaskQueueResponse)(nil), // 47: temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse - (*RespondNexusTaskCompletedResponse)(nil), // 48: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedResponse - (*RespondNexusTaskFailedResponse)(nil), // 49: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedResponse - (*CancelOutstandingPollResponse)(nil), // 50: temporal.server.api.matchingservice.v1.CancelOutstandingPollResponse - (*CancelOutstandingWorkerPollsResponse)(nil), // 51: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsResponse - (*DescribeTaskQueueResponse)(nil), // 52: temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse - (*DescribeTaskQueuePartitionResponse)(nil), // 53: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse - (*DescribeVersionedTaskQueuesResponse)(nil), // 54: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse - (*ListTaskQueuePartitionsResponse)(nil), // 55: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse - (*UpdateWorkerBuildIdCompatibilityResponse)(nil), // 56: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityResponse - (*GetWorkerBuildIdCompatibilityResponse)(nil), // 57: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse - (*GetTaskQueueUserDataResponse)(nil), // 58: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse - (*UpdateWorkerVersioningRulesResponse)(nil), // 59: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse - (*GetWorkerVersioningRulesResponse)(nil), // 60: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse - (*SyncDeploymentUserDataResponse)(nil), // 61: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataResponse - (*ApplyTaskQueueUserDataReplicationEventResponse)(nil), // 62: temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventResponse - (*GetBuildIdTaskQueueMappingResponse)(nil), // 63: temporal.server.api.matchingservice.v1.GetBuildIdTaskQueueMappingResponse - (*ForceLoadTaskQueuePartitionResponse)(nil), // 64: temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionResponse - (*ForceUnloadTaskQueueResponse)(nil), // 65: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueResponse - (*ForceUnloadTaskQueuePartitionResponse)(nil), // 66: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionResponse - (*UpdateTaskQueueUserDataResponse)(nil), // 67: temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataResponse - (*ReplicateTaskQueueUserDataResponse)(nil), // 68: temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataResponse - (*CheckTaskQueueUserDataPropagationResponse)(nil), // 69: temporal.server.api.matchingservice.v1.CheckTaskQueueUserDataPropagationResponse - (*CreateNexusEndpointResponse)(nil), // 70: temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse - (*UpdateNexusEndpointResponse)(nil), // 71: temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse - (*DeleteNexusEndpointResponse)(nil), // 72: temporal.server.api.matchingservice.v1.DeleteNexusEndpointResponse - (*ListNexusEndpointsResponse)(nil), // 73: temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse - (*RecordWorkerHeartbeatResponse)(nil), // 74: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatResponse - (*ListWorkersResponse)(nil), // 75: temporal.server.api.matchingservice.v1.ListWorkersResponse - (*UpdateTaskQueueConfigResponse)(nil), // 76: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse - (*DescribeWorkerResponse)(nil), // 77: temporal.server.api.matchingservice.v1.DescribeWorkerResponse - (*UpdateFairnessStateResponse)(nil), // 78: temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse - (*CheckTaskQueueVersionMembershipResponse)(nil), // 79: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse + (*CountWorkersRequest)(nil), // 36: temporal.server.api.matchingservice.v1.CountWorkersRequest + (*UpdateTaskQueueConfigRequest)(nil), // 37: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest + (*DescribeWorkerRequest)(nil), // 38: temporal.server.api.matchingservice.v1.DescribeWorkerRequest + (*UpdateFairnessStateRequest)(nil), // 39: temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest + (*CheckTaskQueueVersionMembershipRequest)(nil), // 40: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest + (*PollWorkflowTaskQueueResponse)(nil), // 41: temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse + (*PollActivityTaskQueueResponse)(nil), // 42: temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse + (*AddWorkflowTaskResponse)(nil), // 43: temporal.server.api.matchingservice.v1.AddWorkflowTaskResponse + (*AddActivityTaskResponse)(nil), // 44: temporal.server.api.matchingservice.v1.AddActivityTaskResponse + (*QueryWorkflowResponse)(nil), // 45: temporal.server.api.matchingservice.v1.QueryWorkflowResponse + (*RespondQueryTaskCompletedResponse)(nil), // 46: temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedResponse + (*DispatchNexusTaskResponse)(nil), // 47: temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse + (*PollNexusTaskQueueResponse)(nil), // 48: temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse + (*RespondNexusTaskCompletedResponse)(nil), // 49: temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedResponse + (*RespondNexusTaskFailedResponse)(nil), // 50: temporal.server.api.matchingservice.v1.RespondNexusTaskFailedResponse + (*CancelOutstandingPollResponse)(nil), // 51: temporal.server.api.matchingservice.v1.CancelOutstandingPollResponse + (*CancelOutstandingWorkerPollsResponse)(nil), // 52: temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsResponse + (*DescribeTaskQueueResponse)(nil), // 53: temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse + (*DescribeTaskQueuePartitionResponse)(nil), // 54: temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse + (*DescribeVersionedTaskQueuesResponse)(nil), // 55: temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse + (*ListTaskQueuePartitionsResponse)(nil), // 56: temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse + (*UpdateWorkerBuildIdCompatibilityResponse)(nil), // 57: temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityResponse + (*GetWorkerBuildIdCompatibilityResponse)(nil), // 58: temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse + (*GetTaskQueueUserDataResponse)(nil), // 59: temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse + (*UpdateWorkerVersioningRulesResponse)(nil), // 60: temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse + (*GetWorkerVersioningRulesResponse)(nil), // 61: temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse + (*SyncDeploymentUserDataResponse)(nil), // 62: temporal.server.api.matchingservice.v1.SyncDeploymentUserDataResponse + (*ApplyTaskQueueUserDataReplicationEventResponse)(nil), // 63: temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventResponse + (*GetBuildIdTaskQueueMappingResponse)(nil), // 64: temporal.server.api.matchingservice.v1.GetBuildIdTaskQueueMappingResponse + (*ForceLoadTaskQueuePartitionResponse)(nil), // 65: temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionResponse + (*ForceUnloadTaskQueueResponse)(nil), // 66: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueResponse + (*ForceUnloadTaskQueuePartitionResponse)(nil), // 67: temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionResponse + (*UpdateTaskQueueUserDataResponse)(nil), // 68: temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataResponse + (*ReplicateTaskQueueUserDataResponse)(nil), // 69: temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataResponse + (*CheckTaskQueueUserDataPropagationResponse)(nil), // 70: temporal.server.api.matchingservice.v1.CheckTaskQueueUserDataPropagationResponse + (*CreateNexusEndpointResponse)(nil), // 71: temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse + (*UpdateNexusEndpointResponse)(nil), // 72: temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse + (*DeleteNexusEndpointResponse)(nil), // 73: temporal.server.api.matchingservice.v1.DeleteNexusEndpointResponse + (*ListNexusEndpointsResponse)(nil), // 74: temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse + (*RecordWorkerHeartbeatResponse)(nil), // 75: temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatResponse + (*ListWorkersResponse)(nil), // 76: temporal.server.api.matchingservice.v1.ListWorkersResponse + (*CountWorkersResponse)(nil), // 77: temporal.server.api.matchingservice.v1.CountWorkersResponse + (*UpdateTaskQueueConfigResponse)(nil), // 78: temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse + (*DescribeWorkerResponse)(nil), // 79: temporal.server.api.matchingservice.v1.DescribeWorkerResponse + (*UpdateFairnessStateResponse)(nil), // 80: temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse + (*CheckTaskQueueVersionMembershipResponse)(nil), // 81: temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse } var file_temporal_server_api_matchingservice_v1_service_proto_depIdxs = []int32{ 0, // 0: temporal.server.api.matchingservice.v1.MatchingService.PollWorkflowTaskQueue:input_type -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueRequest @@ -187,52 +190,54 @@ var file_temporal_server_api_matchingservice_v1_service_proto_depIdxs = []int32{ 33, // 33: temporal.server.api.matchingservice.v1.MatchingService.ListNexusEndpoints:input_type -> temporal.server.api.matchingservice.v1.ListNexusEndpointsRequest 34, // 34: temporal.server.api.matchingservice.v1.MatchingService.RecordWorkerHeartbeat:input_type -> temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatRequest 35, // 35: temporal.server.api.matchingservice.v1.MatchingService.ListWorkers:input_type -> temporal.server.api.matchingservice.v1.ListWorkersRequest - 36, // 36: temporal.server.api.matchingservice.v1.MatchingService.UpdateTaskQueueConfig:input_type -> temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest - 37, // 37: temporal.server.api.matchingservice.v1.MatchingService.DescribeWorker:input_type -> temporal.server.api.matchingservice.v1.DescribeWorkerRequest - 38, // 38: temporal.server.api.matchingservice.v1.MatchingService.UpdateFairnessState:input_type -> temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest - 39, // 39: temporal.server.api.matchingservice.v1.MatchingService.CheckTaskQueueVersionMembership:input_type -> temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest - 40, // 40: temporal.server.api.matchingservice.v1.MatchingService.PollWorkflowTaskQueue:output_type -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse - 41, // 41: temporal.server.api.matchingservice.v1.MatchingService.PollActivityTaskQueue:output_type -> temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse - 42, // 42: temporal.server.api.matchingservice.v1.MatchingService.AddWorkflowTask:output_type -> temporal.server.api.matchingservice.v1.AddWorkflowTaskResponse - 43, // 43: temporal.server.api.matchingservice.v1.MatchingService.AddActivityTask:output_type -> temporal.server.api.matchingservice.v1.AddActivityTaskResponse - 44, // 44: temporal.server.api.matchingservice.v1.MatchingService.QueryWorkflow:output_type -> temporal.server.api.matchingservice.v1.QueryWorkflowResponse - 45, // 45: temporal.server.api.matchingservice.v1.MatchingService.RespondQueryTaskCompleted:output_type -> temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedResponse - 46, // 46: temporal.server.api.matchingservice.v1.MatchingService.DispatchNexusTask:output_type -> temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse - 47, // 47: temporal.server.api.matchingservice.v1.MatchingService.PollNexusTaskQueue:output_type -> temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse - 48, // 48: temporal.server.api.matchingservice.v1.MatchingService.RespondNexusTaskCompleted:output_type -> temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedResponse - 49, // 49: temporal.server.api.matchingservice.v1.MatchingService.RespondNexusTaskFailed:output_type -> temporal.server.api.matchingservice.v1.RespondNexusTaskFailedResponse - 50, // 50: temporal.server.api.matchingservice.v1.MatchingService.CancelOutstandingPoll:output_type -> temporal.server.api.matchingservice.v1.CancelOutstandingPollResponse - 51, // 51: temporal.server.api.matchingservice.v1.MatchingService.CancelOutstandingWorkerPolls:output_type -> temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsResponse - 52, // 52: temporal.server.api.matchingservice.v1.MatchingService.DescribeTaskQueue:output_type -> temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse - 53, // 53: temporal.server.api.matchingservice.v1.MatchingService.DescribeTaskQueuePartition:output_type -> temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse - 54, // 54: temporal.server.api.matchingservice.v1.MatchingService.DescribeVersionedTaskQueues:output_type -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse - 55, // 55: temporal.server.api.matchingservice.v1.MatchingService.ListTaskQueuePartitions:output_type -> temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse - 56, // 56: temporal.server.api.matchingservice.v1.MatchingService.UpdateWorkerBuildIdCompatibility:output_type -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityResponse - 57, // 57: temporal.server.api.matchingservice.v1.MatchingService.GetWorkerBuildIdCompatibility:output_type -> temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse - 58, // 58: temporal.server.api.matchingservice.v1.MatchingService.GetTaskQueueUserData:output_type -> temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse - 59, // 59: temporal.server.api.matchingservice.v1.MatchingService.UpdateWorkerVersioningRules:output_type -> temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse - 60, // 60: temporal.server.api.matchingservice.v1.MatchingService.GetWorkerVersioningRules:output_type -> temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse - 61, // 61: temporal.server.api.matchingservice.v1.MatchingService.SyncDeploymentUserData:output_type -> temporal.server.api.matchingservice.v1.SyncDeploymentUserDataResponse - 62, // 62: temporal.server.api.matchingservice.v1.MatchingService.ApplyTaskQueueUserDataReplicationEvent:output_type -> temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventResponse - 63, // 63: temporal.server.api.matchingservice.v1.MatchingService.GetBuildIdTaskQueueMapping:output_type -> temporal.server.api.matchingservice.v1.GetBuildIdTaskQueueMappingResponse - 64, // 64: temporal.server.api.matchingservice.v1.MatchingService.ForceLoadTaskQueuePartition:output_type -> temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionResponse - 65, // 65: temporal.server.api.matchingservice.v1.MatchingService.ForceUnloadTaskQueue:output_type -> temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueResponse - 66, // 66: temporal.server.api.matchingservice.v1.MatchingService.ForceUnloadTaskQueuePartition:output_type -> temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionResponse - 67, // 67: temporal.server.api.matchingservice.v1.MatchingService.UpdateTaskQueueUserData:output_type -> temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataResponse - 68, // 68: temporal.server.api.matchingservice.v1.MatchingService.ReplicateTaskQueueUserData:output_type -> temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataResponse - 69, // 69: temporal.server.api.matchingservice.v1.MatchingService.CheckTaskQueueUserDataPropagation:output_type -> temporal.server.api.matchingservice.v1.CheckTaskQueueUserDataPropagationResponse - 70, // 70: temporal.server.api.matchingservice.v1.MatchingService.CreateNexusEndpoint:output_type -> temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse - 71, // 71: temporal.server.api.matchingservice.v1.MatchingService.UpdateNexusEndpoint:output_type -> temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse - 72, // 72: temporal.server.api.matchingservice.v1.MatchingService.DeleteNexusEndpoint:output_type -> temporal.server.api.matchingservice.v1.DeleteNexusEndpointResponse - 73, // 73: temporal.server.api.matchingservice.v1.MatchingService.ListNexusEndpoints:output_type -> temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse - 74, // 74: temporal.server.api.matchingservice.v1.MatchingService.RecordWorkerHeartbeat:output_type -> temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatResponse - 75, // 75: temporal.server.api.matchingservice.v1.MatchingService.ListWorkers:output_type -> temporal.server.api.matchingservice.v1.ListWorkersResponse - 76, // 76: temporal.server.api.matchingservice.v1.MatchingService.UpdateTaskQueueConfig:output_type -> temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse - 77, // 77: temporal.server.api.matchingservice.v1.MatchingService.DescribeWorker:output_type -> temporal.server.api.matchingservice.v1.DescribeWorkerResponse - 78, // 78: temporal.server.api.matchingservice.v1.MatchingService.UpdateFairnessState:output_type -> temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse - 79, // 79: temporal.server.api.matchingservice.v1.MatchingService.CheckTaskQueueVersionMembership:output_type -> temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse - 40, // [40:80] is the sub-list for method output_type - 0, // [0:40] is the sub-list for method input_type + 36, // 36: temporal.server.api.matchingservice.v1.MatchingService.CountWorkers:input_type -> temporal.server.api.matchingservice.v1.CountWorkersRequest + 37, // 37: temporal.server.api.matchingservice.v1.MatchingService.UpdateTaskQueueConfig:input_type -> temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigRequest + 38, // 38: temporal.server.api.matchingservice.v1.MatchingService.DescribeWorker:input_type -> temporal.server.api.matchingservice.v1.DescribeWorkerRequest + 39, // 39: temporal.server.api.matchingservice.v1.MatchingService.UpdateFairnessState:input_type -> temporal.server.api.matchingservice.v1.UpdateFairnessStateRequest + 40, // 40: temporal.server.api.matchingservice.v1.MatchingService.CheckTaskQueueVersionMembership:input_type -> temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipRequest + 41, // 41: temporal.server.api.matchingservice.v1.MatchingService.PollWorkflowTaskQueue:output_type -> temporal.server.api.matchingservice.v1.PollWorkflowTaskQueueResponse + 42, // 42: temporal.server.api.matchingservice.v1.MatchingService.PollActivityTaskQueue:output_type -> temporal.server.api.matchingservice.v1.PollActivityTaskQueueResponse + 43, // 43: temporal.server.api.matchingservice.v1.MatchingService.AddWorkflowTask:output_type -> temporal.server.api.matchingservice.v1.AddWorkflowTaskResponse + 44, // 44: temporal.server.api.matchingservice.v1.MatchingService.AddActivityTask:output_type -> temporal.server.api.matchingservice.v1.AddActivityTaskResponse + 45, // 45: temporal.server.api.matchingservice.v1.MatchingService.QueryWorkflow:output_type -> temporal.server.api.matchingservice.v1.QueryWorkflowResponse + 46, // 46: temporal.server.api.matchingservice.v1.MatchingService.RespondQueryTaskCompleted:output_type -> temporal.server.api.matchingservice.v1.RespondQueryTaskCompletedResponse + 47, // 47: temporal.server.api.matchingservice.v1.MatchingService.DispatchNexusTask:output_type -> temporal.server.api.matchingservice.v1.DispatchNexusTaskResponse + 48, // 48: temporal.server.api.matchingservice.v1.MatchingService.PollNexusTaskQueue:output_type -> temporal.server.api.matchingservice.v1.PollNexusTaskQueueResponse + 49, // 49: temporal.server.api.matchingservice.v1.MatchingService.RespondNexusTaskCompleted:output_type -> temporal.server.api.matchingservice.v1.RespondNexusTaskCompletedResponse + 50, // 50: temporal.server.api.matchingservice.v1.MatchingService.RespondNexusTaskFailed:output_type -> temporal.server.api.matchingservice.v1.RespondNexusTaskFailedResponse + 51, // 51: temporal.server.api.matchingservice.v1.MatchingService.CancelOutstandingPoll:output_type -> temporal.server.api.matchingservice.v1.CancelOutstandingPollResponse + 52, // 52: temporal.server.api.matchingservice.v1.MatchingService.CancelOutstandingWorkerPolls:output_type -> temporal.server.api.matchingservice.v1.CancelOutstandingWorkerPollsResponse + 53, // 53: temporal.server.api.matchingservice.v1.MatchingService.DescribeTaskQueue:output_type -> temporal.server.api.matchingservice.v1.DescribeTaskQueueResponse + 54, // 54: temporal.server.api.matchingservice.v1.MatchingService.DescribeTaskQueuePartition:output_type -> temporal.server.api.matchingservice.v1.DescribeTaskQueuePartitionResponse + 55, // 55: temporal.server.api.matchingservice.v1.MatchingService.DescribeVersionedTaskQueues:output_type -> temporal.server.api.matchingservice.v1.DescribeVersionedTaskQueuesResponse + 56, // 56: temporal.server.api.matchingservice.v1.MatchingService.ListTaskQueuePartitions:output_type -> temporal.server.api.matchingservice.v1.ListTaskQueuePartitionsResponse + 57, // 57: temporal.server.api.matchingservice.v1.MatchingService.UpdateWorkerBuildIdCompatibility:output_type -> temporal.server.api.matchingservice.v1.UpdateWorkerBuildIdCompatibilityResponse + 58, // 58: temporal.server.api.matchingservice.v1.MatchingService.GetWorkerBuildIdCompatibility:output_type -> temporal.server.api.matchingservice.v1.GetWorkerBuildIdCompatibilityResponse + 59, // 59: temporal.server.api.matchingservice.v1.MatchingService.GetTaskQueueUserData:output_type -> temporal.server.api.matchingservice.v1.GetTaskQueueUserDataResponse + 60, // 60: temporal.server.api.matchingservice.v1.MatchingService.UpdateWorkerVersioningRules:output_type -> temporal.server.api.matchingservice.v1.UpdateWorkerVersioningRulesResponse + 61, // 61: temporal.server.api.matchingservice.v1.MatchingService.GetWorkerVersioningRules:output_type -> temporal.server.api.matchingservice.v1.GetWorkerVersioningRulesResponse + 62, // 62: temporal.server.api.matchingservice.v1.MatchingService.SyncDeploymentUserData:output_type -> temporal.server.api.matchingservice.v1.SyncDeploymentUserDataResponse + 63, // 63: temporal.server.api.matchingservice.v1.MatchingService.ApplyTaskQueueUserDataReplicationEvent:output_type -> temporal.server.api.matchingservice.v1.ApplyTaskQueueUserDataReplicationEventResponse + 64, // 64: temporal.server.api.matchingservice.v1.MatchingService.GetBuildIdTaskQueueMapping:output_type -> temporal.server.api.matchingservice.v1.GetBuildIdTaskQueueMappingResponse + 65, // 65: temporal.server.api.matchingservice.v1.MatchingService.ForceLoadTaskQueuePartition:output_type -> temporal.server.api.matchingservice.v1.ForceLoadTaskQueuePartitionResponse + 66, // 66: temporal.server.api.matchingservice.v1.MatchingService.ForceUnloadTaskQueue:output_type -> temporal.server.api.matchingservice.v1.ForceUnloadTaskQueueResponse + 67, // 67: temporal.server.api.matchingservice.v1.MatchingService.ForceUnloadTaskQueuePartition:output_type -> temporal.server.api.matchingservice.v1.ForceUnloadTaskQueuePartitionResponse + 68, // 68: temporal.server.api.matchingservice.v1.MatchingService.UpdateTaskQueueUserData:output_type -> temporal.server.api.matchingservice.v1.UpdateTaskQueueUserDataResponse + 69, // 69: temporal.server.api.matchingservice.v1.MatchingService.ReplicateTaskQueueUserData:output_type -> temporal.server.api.matchingservice.v1.ReplicateTaskQueueUserDataResponse + 70, // 70: temporal.server.api.matchingservice.v1.MatchingService.CheckTaskQueueUserDataPropagation:output_type -> temporal.server.api.matchingservice.v1.CheckTaskQueueUserDataPropagationResponse + 71, // 71: temporal.server.api.matchingservice.v1.MatchingService.CreateNexusEndpoint:output_type -> temporal.server.api.matchingservice.v1.CreateNexusEndpointResponse + 72, // 72: temporal.server.api.matchingservice.v1.MatchingService.UpdateNexusEndpoint:output_type -> temporal.server.api.matchingservice.v1.UpdateNexusEndpointResponse + 73, // 73: temporal.server.api.matchingservice.v1.MatchingService.DeleteNexusEndpoint:output_type -> temporal.server.api.matchingservice.v1.DeleteNexusEndpointResponse + 74, // 74: temporal.server.api.matchingservice.v1.MatchingService.ListNexusEndpoints:output_type -> temporal.server.api.matchingservice.v1.ListNexusEndpointsResponse + 75, // 75: temporal.server.api.matchingservice.v1.MatchingService.RecordWorkerHeartbeat:output_type -> temporal.server.api.matchingservice.v1.RecordWorkerHeartbeatResponse + 76, // 76: temporal.server.api.matchingservice.v1.MatchingService.ListWorkers:output_type -> temporal.server.api.matchingservice.v1.ListWorkersResponse + 77, // 77: temporal.server.api.matchingservice.v1.MatchingService.CountWorkers:output_type -> temporal.server.api.matchingservice.v1.CountWorkersResponse + 78, // 78: temporal.server.api.matchingservice.v1.MatchingService.UpdateTaskQueueConfig:output_type -> temporal.server.api.matchingservice.v1.UpdateTaskQueueConfigResponse + 79, // 79: temporal.server.api.matchingservice.v1.MatchingService.DescribeWorker:output_type -> temporal.server.api.matchingservice.v1.DescribeWorkerResponse + 80, // 80: temporal.server.api.matchingservice.v1.MatchingService.UpdateFairnessState:output_type -> temporal.server.api.matchingservice.v1.UpdateFairnessStateResponse + 81, // 81: temporal.server.api.matchingservice.v1.MatchingService.CheckTaskQueueVersionMembership:output_type -> temporal.server.api.matchingservice.v1.CheckTaskQueueVersionMembershipResponse + 41, // [41:82] is the sub-list for method output_type + 0, // [0:41] 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/matchingservice/v1/service_grpc.pb.go b/api/matchingservice/v1/service_grpc.pb.go index a04f9dc4e4..304d513ce8 100644 --- a/api/matchingservice/v1/service_grpc.pb.go +++ b/api/matchingservice/v1/service_grpc.pb.go @@ -56,6 +56,7 @@ const ( MatchingService_ListNexusEndpoints_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/ListNexusEndpoints" MatchingService_RecordWorkerHeartbeat_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/RecordWorkerHeartbeat" MatchingService_ListWorkers_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/ListWorkers" + MatchingService_CountWorkers_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/CountWorkers" MatchingService_UpdateTaskQueueConfig_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/UpdateTaskQueueConfig" MatchingService_DescribeWorker_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/DescribeWorker" MatchingService_UpdateFairnessState_FullMethodName = "/temporal.server.api.matchingservice.v1.MatchingService/UpdateFairnessState" @@ -214,6 +215,8 @@ type MatchingServiceClient interface { // Supports pagination for large result sets. Returns an empty list if no workers match the criteria. // Returns an error if the namespace doesn't exist. ListWorkers(ctx context.Context, in *ListWorkersRequest, opts ...grpc.CallOption) (*ListWorkersResponse, error) + // CountWorkers counts workers in the specified namespace that match the provided query. + CountWorkers(ctx context.Context, in *CountWorkersRequest, opts ...grpc.CallOption) (*CountWorkersResponse, error) // Set the persisted task queue configuration. // (-- api-linter: core::0134::method-signature=disabled // @@ -580,6 +583,15 @@ func (c *matchingServiceClient) ListWorkers(ctx context.Context, in *ListWorkers return out, nil } +func (c *matchingServiceClient) CountWorkers(ctx context.Context, in *CountWorkersRequest, opts ...grpc.CallOption) (*CountWorkersResponse, error) { + out := new(CountWorkersResponse) + err := c.cc.Invoke(ctx, MatchingService_CountWorkers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *matchingServiceClient) UpdateTaskQueueConfig(ctx context.Context, in *UpdateTaskQueueConfigRequest, opts ...grpc.CallOption) (*UpdateTaskQueueConfigResponse, error) { out := new(UpdateTaskQueueConfigResponse) err := c.cc.Invoke(ctx, MatchingService_UpdateTaskQueueConfig_FullMethodName, in, out, opts...) @@ -768,6 +780,8 @@ type MatchingServiceServer interface { // Supports pagination for large result sets. Returns an empty list if no workers match the criteria. // Returns an error if the namespace doesn't exist. ListWorkers(context.Context, *ListWorkersRequest) (*ListWorkersResponse, error) + // CountWorkers counts workers in the specified namespace that match the provided query. + CountWorkers(context.Context, *CountWorkersRequest) (*CountWorkersResponse, error) // Set the persisted task queue configuration. // (-- api-linter: core::0134::method-signature=disabled // @@ -915,6 +929,9 @@ func (UnimplementedMatchingServiceServer) RecordWorkerHeartbeat(context.Context, func (UnimplementedMatchingServiceServer) ListWorkers(context.Context, *ListWorkersRequest) (*ListWorkersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListWorkers not implemented") } +func (UnimplementedMatchingServiceServer) CountWorkers(context.Context, *CountWorkersRequest) (*CountWorkersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountWorkers not implemented") +} func (UnimplementedMatchingServiceServer) UpdateTaskQueueConfig(context.Context, *UpdateTaskQueueConfigRequest) (*UpdateTaskQueueConfigResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateTaskQueueConfig not implemented") } @@ -1588,6 +1605,24 @@ func _MatchingService_ListWorkers_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _MatchingService_CountWorkers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountWorkersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchingServiceServer).CountWorkers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchingService_CountWorkers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchingServiceServer).CountWorkers(ctx, req.(*CountWorkersRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _MatchingService_UpdateTaskQueueConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateTaskQueueConfigRequest) if err := dec(in); err != nil { @@ -1811,6 +1846,10 @@ var MatchingService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListWorkers", Handler: _MatchingService_ListWorkers_Handler, }, + { + MethodName: "CountWorkers", + Handler: _MatchingService_CountWorkers_Handler, + }, { MethodName: "UpdateTaskQueueConfig", Handler: _MatchingService_UpdateTaskQueueConfig_Handler, diff --git a/api/matchingservicemock/v1/service_grpc.pb.mock.go b/api/matchingservicemock/v1/service_grpc.pb.mock.go index 6f053811b3..85b2ede6d4 100644 --- a/api/matchingservicemock/v1/service_grpc.pb.mock.go +++ b/api/matchingservicemock/v1/service_grpc.pb.mock.go @@ -182,6 +182,26 @@ func (mr *MockMatchingServiceClientMockRecorder) CheckTaskQueueVersionMembership return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckTaskQueueVersionMembership", reflect.TypeOf((*MockMatchingServiceClient)(nil).CheckTaskQueueVersionMembership), varargs...) } +// CountWorkers mocks base method. +func (m *MockMatchingServiceClient) CountWorkers(ctx context.Context, in *matchingservice.CountWorkersRequest, opts ...grpc.CallOption) (*matchingservice.CountWorkersResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "CountWorkers", varargs...) + ret0, _ := ret[0].(*matchingservice.CountWorkersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountWorkers indicates an expected call of CountWorkers. +func (mr *MockMatchingServiceClientMockRecorder) CountWorkers(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, "CountWorkers", reflect.TypeOf((*MockMatchingServiceClient)(nil).CountWorkers), varargs...) +} + // CreateNexusEndpoint mocks base method. func (m *MockMatchingServiceClient) CreateNexusEndpoint(ctx context.Context, in *matchingservice.CreateNexusEndpointRequest, opts ...grpc.CallOption) (*matchingservice.CreateNexusEndpointResponse, error) { m.ctrl.T.Helper() @@ -971,6 +991,21 @@ func (mr *MockMatchingServiceServerMockRecorder) CheckTaskQueueVersionMembership return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckTaskQueueVersionMembership", reflect.TypeOf((*MockMatchingServiceServer)(nil).CheckTaskQueueVersionMembership), arg0, arg1) } +// CountWorkers mocks base method. +func (m *MockMatchingServiceServer) CountWorkers(arg0 context.Context, arg1 *matchingservice.CountWorkersRequest) (*matchingservice.CountWorkersResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CountWorkers", arg0, arg1) + ret0, _ := ret[0].(*matchingservice.CountWorkersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountWorkers indicates an expected call of CountWorkers. +func (mr *MockMatchingServiceServerMockRecorder) CountWorkers(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountWorkers", reflect.TypeOf((*MockMatchingServiceServer)(nil).CountWorkers), arg0, arg1) +} + // CreateNexusEndpoint mocks base method. func (m *MockMatchingServiceServer) CreateNexusEndpoint(arg0 context.Context, arg1 *matchingservice.CreateNexusEndpointRequest) (*matchingservice.CreateNexusEndpointResponse, error) { m.ctrl.T.Helper() diff --git a/client/frontend/client_gen.go b/client/frontend/client_gen.go index 7b3f3e3aa5..32f60a3e04 100644 --- a/client/frontend/client_gen.go +++ b/client/frontend/client_gen.go @@ -29,6 +29,16 @@ func (c *clientImpl) CountSchedules( return c.client.CountSchedules(ctx, request, opts...) } +func (c *clientImpl) CountWorkers( + ctx context.Context, + request *workflowservice.CountWorkersRequest, + opts ...grpc.CallOption, +) (*workflowservice.CountWorkersResponse, error) { + ctx, cancel := c.createContext(ctx) + defer cancel() + return c.client.CountWorkers(ctx, request, opts...) +} + func (c *clientImpl) CountWorkflowExecutions( ctx context.Context, request *workflowservice.CountWorkflowExecutionsRequest, diff --git a/client/frontend/metric_client_gen.go b/client/frontend/metric_client_gen.go index ad15ce5dc4..ccee43884f 100644 --- a/client/frontend/metric_client_gen.go +++ b/client/frontend/metric_client_gen.go @@ -37,6 +37,20 @@ func (c *metricClient) CountSchedules( return c.client.CountSchedules(ctx, request, opts...) } +func (c *metricClient) CountWorkers( + ctx context.Context, + request *workflowservice.CountWorkersRequest, + opts ...grpc.CallOption, +) (_ *workflowservice.CountWorkersResponse, retError error) { + + metricsHandler, startTime := c.startMetricsRecording(ctx, "FrontendClientCountWorkers") + defer func() { + c.finishMetricsRecording(metricsHandler, startTime, retError) + }() + + return c.client.CountWorkers(ctx, request, opts...) +} + func (c *metricClient) CountWorkflowExecutions( ctx context.Context, request *workflowservice.CountWorkflowExecutionsRequest, diff --git a/client/frontend/retryable_client_gen.go b/client/frontend/retryable_client_gen.go index a46a3bbfd2..3d7c5d0c4f 100644 --- a/client/frontend/retryable_client_gen.go +++ b/client/frontend/retryable_client_gen.go @@ -41,6 +41,21 @@ func (c *retryableClient) CountSchedules( return resp, err } +func (c *retryableClient) CountWorkers( + ctx context.Context, + request *workflowservice.CountWorkersRequest, + opts ...grpc.CallOption, +) (*workflowservice.CountWorkersResponse, error) { + var resp *workflowservice.CountWorkersResponse + op := func(ctx context.Context) error { + var err error + resp, err = c.client.CountWorkers(ctx, request, opts...) + return err + } + err := backoff.ThrottleRetryContext(ctx, op, c.policy, c.isRetryable) + return resp, err +} + func (c *retryableClient) CountWorkflowExecutions( ctx context.Context, request *workflowservice.CountWorkflowExecutionsRequest, diff --git a/client/matching/client_gen.go b/client/matching/client_gen.go index b7a5f449a0..efe8310048 100644 --- a/client/matching/client_gen.go +++ b/client/matching/client_gen.go @@ -113,6 +113,26 @@ func (c *clientImpl) CheckTaskQueueVersionMembership( return client.CheckTaskQueueVersionMembership(ctx, request, opts...) } +func (c *clientImpl) CountWorkers( + ctx context.Context, + request *matchingservice.CountWorkersRequest, + opts ...grpc.CallOption, +) (*matchingservice.CountWorkersResponse, error) { + + p, err := tqid.NormalPartitionFromRpcName("not-applicable", request.GetNamespaceId(), enumspb.TASK_QUEUE_TYPE_UNSPECIFIED) + if err != nil { + return nil, err + } + + client, err := c.getClientForTaskQueuePartition(p) + if err != nil { + return nil, err + } + ctx, cancel := c.createContext(ctx) + defer cancel() + return client.CountWorkers(ctx, request, opts...) +} + func (c *clientImpl) CreateNexusEndpoint( ctx context.Context, request *matchingservice.CreateNexusEndpointRequest, diff --git a/client/matching/metric_client_gen.go b/client/matching/metric_client_gen.go index bd101ff521..ce676b3661 100644 --- a/client/matching/metric_client_gen.go +++ b/client/matching/metric_client_gen.go @@ -79,6 +79,20 @@ func (c *metricClient) CheckTaskQueueVersionMembership( return c.client.CheckTaskQueueVersionMembership(ctx, request, opts...) } +func (c *metricClient) CountWorkers( + ctx context.Context, + request *matchingservice.CountWorkersRequest, + opts ...grpc.CallOption, +) (_ *matchingservice.CountWorkersResponse, retError error) { + + metricsHandler, startTime := c.startMetricsRecording(ctx, "MatchingClientCountWorkers") + defer func() { + c.finishMetricsRecording(metricsHandler, startTime, retError) + }() + + return c.client.CountWorkers(ctx, request, opts...) +} + func (c *metricClient) CreateNexusEndpoint( ctx context.Context, request *matchingservice.CreateNexusEndpointRequest, diff --git a/client/matching/retryable_client_gen.go b/client/matching/retryable_client_gen.go index 29d183d11a..08065a805e 100644 --- a/client/matching/retryable_client_gen.go +++ b/client/matching/retryable_client_gen.go @@ -116,6 +116,21 @@ func (c *retryableClient) CheckTaskQueueVersionMembership( return resp, err } +func (c *retryableClient) CountWorkers( + ctx context.Context, + request *matchingservice.CountWorkersRequest, + opts ...grpc.CallOption, +) (*matchingservice.CountWorkersResponse, error) { + var resp *matchingservice.CountWorkersResponse + op := func(ctx context.Context) error { + var err error + resp, err = c.client.CountWorkers(ctx, request, opts...) + return err + } + err := backoff.ThrottleRetryContext(ctx, op, c.policy, c.isRetryable) + return resp, err +} + func (c *retryableClient) CreateNexusEndpoint( ctx context.Context, request *matchingservice.CreateNexusEndpointRequest, diff --git a/cmd/tools/genrpcwrappers/main.go b/cmd/tools/genrpcwrappers/main.go index 7800e8a7fc..c4e028d1db 100644 --- a/cmd/tools/genrpcwrappers/main.go +++ b/cmd/tools/genrpcwrappers/main.go @@ -324,6 +324,7 @@ func makeGetMatchingClient(reqType reflect.Type) string { "ReplicateTaskQueueUserDataRequest", "RecordWorkerHeartbeatRequest", "ListWorkersRequest", + "CountWorkersRequest", "DescribeWorkerRequest": // Always route these requests to the same matching node by namespace. tq = fieldWithPath{path: "\"not-applicable\""} diff --git a/common/rpc/interceptor/logtags/matching_service_server_gen.go b/common/rpc/interceptor/logtags/matching_service_server_gen.go index bd0ede611f..93382c66cd 100644 --- a/common/rpc/interceptor/logtags/matching_service_server_gen.go +++ b/common/rpc/interceptor/logtags/matching_service_server_gen.go @@ -43,6 +43,10 @@ func (wt *WorkflowTags) extractFromMatchingServiceServerMessage(message any) []t return nil case *matchingservice.CheckTaskQueueVersionMembershipResponse: return nil + case *matchingservice.CountWorkersRequest: + return nil + case *matchingservice.CountWorkersResponse: + return nil case *matchingservice.CreateNexusEndpointRequest: return nil case *matchingservice.CreateNexusEndpointResponse: diff --git a/common/rpc/interceptor/logtags/workflow_service_server_gen.go b/common/rpc/interceptor/logtags/workflow_service_server_gen.go index 9857e7341b..996c29b8a3 100644 --- a/common/rpc/interceptor/logtags/workflow_service_server_gen.go +++ b/common/rpc/interceptor/logtags/workflow_service_server_gen.go @@ -17,6 +17,10 @@ func (wt *WorkflowTags) extractFromWorkflowServiceServerMessage(message any) []t return nil case *workflowservice.CountSchedulesResponse: return nil + case *workflowservice.CountWorkersRequest: + return nil + case *workflowservice.CountWorkersResponse: + return nil case *workflowservice.CountWorkflowExecutionsRequest: return nil case *workflowservice.CountWorkflowExecutionsResponse: diff --git a/common/rpc/interceptor/redirection.go b/common/rpc/interceptor/redirection.go index b88f1eff43..b3cedbe7ab 100644 --- a/common/rpc/interceptor/redirection.go +++ b/common/rpc/interceptor/redirection.go @@ -134,6 +134,7 @@ var ( "TriggerWorkflowRule": func() any { return &workflowservice.TriggerWorkflowRuleResponse{} }, "RecordWorkerHeartbeat": func() any { return &workflowservice.RecordWorkerHeartbeatResponse{} }, "ListWorkers": func() any { return &workflowservice.ListWorkersResponse{} }, + "CountWorkers": func() any { return &workflowservice.CountWorkersResponse{} }, "DescribeWorker": func() any { return &workflowservice.DescribeWorkerResponse{} }, "UpdateTaskQueueConfig": func() any { return &workflowservice.UpdateTaskQueueConfigResponse{} }, "FetchWorkerConfig": func() any { return &workflowservice.FetchWorkerConfigResponse{} }, diff --git a/common/testing/mockapi/workflowservicemock/v1/service_grpc.pb.mock.go b/common/testing/mockapi/workflowservicemock/v1/service_grpc.pb.mock.go index 0ff2f78a3a..9fb134f5a7 100644 --- a/common/testing/mockapi/workflowservicemock/v1/service_grpc.pb.mock.go +++ b/common/testing/mockapi/workflowservicemock/v1/service_grpc.pb.mock.go @@ -102,6 +102,26 @@ func (mr *MockWorkflowServiceClientMockRecorder) CountWorkflowExecutions(ctx, in return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CountWorkflowExecutions", reflect.TypeOf((*MockWorkflowServiceClient)(nil).CountWorkflowExecutions), varargs...) } +// CountWorkers mocks base method. +func (m *MockWorkflowServiceClient) CountWorkers(ctx context.Context, in *workflowservice.CountWorkersRequest, opts ...grpc.CallOption) (*workflowservice.CountWorkersResponse, error) { + m.ctrl.T.Helper() + varargs := []any{ctx, in} + for _, a := range opts { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "CountWorkers", varargs...) + ret0, _ := ret[0].(*workflowservice.CountWorkersResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CountWorkers indicates an expected call of CountWorkers. +func (mr *MockWorkflowServiceClientMockRecorder) CountWorkers(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, "CountWorkers", reflect.TypeOf((*MockWorkflowServiceClient)(nil).CountWorkers), varargs...) +} + // CreateSchedule mocks base method. func (m *MockWorkflowServiceClient) CreateSchedule(ctx context.Context, in *workflowservice.CreateScheduleRequest, opts ...grpc.CallOption) (*workflowservice.CreateScheduleResponse, error) { m.ctrl.T.Helper() diff --git a/go.mod b/go.mod index c13bced18b..a58830c9fa 100644 --- a/go.mod +++ b/go.mod @@ -173,3 +173,5 @@ require ( modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.11.0 // indirect ) + +replace go.temporal.io/api => github.com/temporalio/api-go v1.62.3-0.20260311181325-dd7ca13cc960 diff --git a/go.sum b/go.sum index a8ca9067ef..2d23e22875 100644 --- a/go.sum +++ b/go.sum @@ -310,6 +310,8 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/temporalio/api-go v1.62.3-0.20260311181325-dd7ca13cc960 h1:fSPs3mDyRFWJYvGplL9tS58f1tH+dooP7bF7tIViZiU= +github.com/temporalio/api-go v1.62.3-0.20260311181325-dd7ca13cc960/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= github.com/temporalio/ringpop-go v0.0.0-20250130211428-b97329e994f7 h1:lEebX/hZss+TSH3EBwhztnBavJVj7pWGJOH8UgKHS0w= github.com/temporalio/ringpop-go v0.0.0-20250130211428-b97329e994f7/go.mod h1:RE+CHmY+kOZQk47AQaVzwrGmxpflnLgTd6EOK0853j4= github.com/temporalio/sqlparser v0.0.0-20231115171017-f4060bcfa6cb h1:YzHH/U/dN7vMP+glybzcXRTczTrgfdRisNTzAj7La04= @@ -375,8 +377,6 @@ go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZY go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= -go.temporal.io/api v1.62.2 h1:jFhIzlqNyJsJZTiCRQmTIMv6OTQ5BZ57z8gbgLGMaoo= -go.temporal.io/api v1.62.2/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM= go.temporal.io/sdk v1.38.0 h1:4Bok5LEdED7YKpsSjIa3dDqram5VOq+ydBf4pyx0Wo4= go.temporal.io/sdk v1.38.0/go.mod h1:a+R2Ej28ObvHoILbHaxMyind7M6D+W0L7edt5UJF4SE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= 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 08c7ffc2a6..4175a44137 100644 --- a/proto/internal/temporal/server/api/matchingservice/v1/request_response.proto +++ b/proto/internal/temporal/server/api/matchingservice/v1/request_response.proto @@ -698,6 +698,15 @@ message ListWorkersResponse { bytes next_page_token = 2; } +message CountWorkersRequest { + string namespace_id = 1; + temporal.api.workflowservice.v1.CountWorkersRequest count_request = 2; +} + +message CountWorkersResponse { + int64 count = 1; +} + // (-- api-linter: core::0134::request-resource-required=disabled // aip.dev/not-precedent: UpdateTaskQueueConfigRequest RPC doesn't follow Google API format. --) // (-- api-linter: core::0134::request-mask-required=disabled diff --git a/proto/internal/temporal/server/api/matchingservice/v1/service.proto b/proto/internal/temporal/server/api/matchingservice/v1/service.proto index 42cb090b1e..d0970793bf 100644 --- a/proto/internal/temporal/server/api/matchingservice/v1/service.proto +++ b/proto/internal/temporal/server/api/matchingservice/v1/service.proto @@ -185,6 +185,9 @@ service MatchingService { // Returns an error if the namespace doesn't exist. rpc ListWorkers (ListWorkersRequest) returns (ListWorkersResponse) {} + // CountWorkers counts workers in the specified namespace that match the provided query. + rpc CountWorkers (CountWorkersRequest) returns (CountWorkersResponse) {} + // Set the persisted task queue configuration. // (-- api-linter: core::0134::method-signature=disabled // aip.dev/not-precedent: UpdateTaskQueueConfig RPC doesn't follow Google API format. --) diff --git a/service/frontend/workflow_handler.go b/service/frontend/workflow_handler.go index c6afbbcafa..51ee1efe03 100644 --- a/service/frontend/workflow_handler.go +++ b/service/frontend/workflow_handler.go @@ -6763,6 +6763,31 @@ func (wh *WorkflowHandler) ListWorkers( }, nil } +func (wh *WorkflowHandler) CountWorkers( + ctx context.Context, request *workflowservice.CountWorkersRequest, +) (*workflowservice.CountWorkersResponse, error) { + if !wh.config.ListWorkersEnabled(request.GetNamespace()) { + return nil, serviceerror.NewUnimplemented("method CountWorkers not supported") + } + namespaceName := namespace.Name(request.GetNamespace()) + namespaceID, err := wh.namespaceRegistry.GetNamespaceID(namespaceName) + if err != nil { + return nil, err + } + + resp, err := wh.matchingClient.CountWorkers(ctx, &matchingservice.CountWorkersRequest{ + NamespaceId: namespaceID.String(), + CountRequest: request, + }) + if err != nil { + return nil, err + } + + return &workflowservice.CountWorkersResponse{ + Count: resp.GetCount(), + }, nil +} + func (wh *WorkflowHandler) UpdateTaskQueueConfig( ctx context.Context, request *workflowservice.UpdateTaskQueueConfigRequest, ) (*workflowservice.UpdateTaskQueueConfigResponse, error) { diff --git a/service/matching/configs/quotas.go b/service/matching/configs/quotas.go index 5e000bef62..dad30235bd 100644 --- a/service/matching/configs/quotas.go +++ b/service/matching/configs/quotas.go @@ -49,6 +49,7 @@ var ( "/temporal.server.api.matchingservice.v1.MatchingService/SyncDeploymentUserData": 1, "/temporal.server.api.matchingservice.v1.MatchingService/RecordWorkerHeartbeat": 1, "/temporal.server.api.matchingservice.v1.MatchingService/ListWorkers": 1, + "/temporal.server.api.matchingservice.v1.MatchingService/CountWorkers": 1, "/temporal.server.api.matchingservice.v1.MatchingService/UpdateTaskQueueConfig": 1, "/temporal.server.api.matchingservice.v1.MatchingService/DescribeWorker": 1, "/temporal.server.api.matchingservice.v1.MatchingService/UpdateFairnessState": 1, diff --git a/service/matching/handler.go b/service/matching/handler.go index 07cf75560a..3b590d0cb5 100644 --- a/service/matching/handler.go +++ b/service/matching/handler.go @@ -599,6 +599,19 @@ func (h *Handler) ListWorkers( }, nil } +func (h *Handler) CountWorkers( + _ context.Context, request *matchingservice.CountWorkersRequest, +) (*matchingservice.CountWorkersResponse, error) { + nsID := namespace.ID(request.GetNamespaceId()) + count, err := h.workersRegistry.CountWorkers(nsID, request.GetCountRequest().GetQuery()) + if err != nil { + return nil, err + } + return &matchingservice.CountWorkersResponse{ + Count: count, + }, nil +} + func (h *Handler) UpdateFairnessState( ctx context.Context, request *matchingservice.UpdateFairnessStateRequest, ) (*matchingservice.UpdateFairnessStateResponse, error) { diff --git a/service/matching/workers/registry.go b/service/matching/workers/registry.go index 8caeee0857..a8fe84d446 100644 --- a/service/matching/workers/registry.go +++ b/service/matching/workers/registry.go @@ -22,6 +22,7 @@ type ( Registry interface { RecordWorkerHeartbeats(nsID namespace.ID, nsName namespace.Name, workerHeartbeat []*workerpb.WorkerHeartbeat) ListWorkers(nsID namespace.ID, params ListWorkersParams) (ListWorkersResponse, error) + CountWorkers(nsID namespace.ID, query string) (int64, error) DescribeWorker(nsID namespace.ID, workerInstanceKey string) (*workerpb.WorkerHeartbeat, error) } ) diff --git a/service/matching/workers/registry_impl.go b/service/matching/workers/registry_impl.go index f59989b40b..e25264a5d0 100644 --- a/service/matching/workers/registry_impl.go +++ b/service/matching/workers/registry_impl.go @@ -388,6 +388,24 @@ func (m *registryImpl) ListWorkers(nsID namespace.ID, params ListWorkersParams) return paginateWorkers(workers, params.PageSize, params.NextPageToken) } +func (m *registryImpl) CountWorkers(nsID namespace.ID, query string) (int64, error) { + var predicate func(*workerpb.WorkerHeartbeat) bool + if query == "" { + predicate = func(_ *workerpb.WorkerHeartbeat) bool { return true } + } else { + queryEngine, err := newWorkerQueryEngine(nsID.String(), query) + if err != nil { + return 0, err + } + predicate = func(heartbeat *workerpb.WorkerHeartbeat) bool { + result, err := queryEngine.EvaluateWorker(heartbeat) + return err == nil && result + } + } + workers := m.filterWorkers(nsID, predicate) + return int64(len(workers)), nil +} + // paginateWorkers applies cursor-based pagination to a list of workers. // Workers are sorted by WorkerInstanceKey for deterministic ordering. // Returns the paginated slice and a token for the next page (nil if no more pages). diff --git a/tests/worker_registry_test.go b/tests/worker_registry_test.go index 4427229951..cf9d8e55c7 100644 --- a/tests/worker_registry_test.go +++ b/tests/worker_registry_test.go @@ -202,6 +202,61 @@ func (s *WorkerRegistryTestSuite) TestWorkerRegistry_ListWorkers() { } } +func (s *WorkerRegistryTestSuite) TestWorkerRegistry_CountWorkers() { + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + worker1Key := s.tv.WorkerIdentity() + worker2Key := s.tv.WorkerIdentity() + "_2" + sharedTaskQueue := s.tv.TaskQueue().Name + otherTaskQueue := s.tv.WithTaskQueueNumber(2).TaskQueue().Name + + hbResp, err := s.FrontendClient().RecordWorkerHeartbeat(ctx, &workflowservice.RecordWorkerHeartbeatRequest{ + Namespace: s.Namespace().String(), + WorkerHeartbeat: []*workerpb.WorkerHeartbeat{ + { + WorkerInstanceKey: worker1Key, + TaskQueue: sharedTaskQueue, + }, + { + WorkerInstanceKey: worker2Key, + TaskQueue: otherTaskQueue, + }, + }, + }) + s.Require().NoError(err) + s.Require().NotNil(hbResp) + + // Count all workers (no query) + { + resp, err := s.FrontendClient().CountWorkers(ctx, &workflowservice.CountWorkersRequest{ + Namespace: s.Namespace().String(), + }) + s.Require().NoError(err) + s.Require().GreaterOrEqual(resp.GetCount(), int64(2)) + } + + // Count with query filter + { + resp, err := s.FrontendClient().CountWorkers(ctx, &workflowservice.CountWorkersRequest{ + Namespace: s.Namespace().String(), + Query: fmt.Sprintf("TaskQueue='%s'", sharedTaskQueue), + }) + s.Require().NoError(err) + s.Require().Equal(int64(1), resp.GetCount()) + } + + // Count with query that matches no workers + { + resp, err := s.FrontendClient().CountWorkers(ctx, &workflowservice.CountWorkersRequest{ + Namespace: s.Namespace().String(), + Query: "WorkerInstanceKey='nonexistent'", + }) + s.Require().NoError(err) + s.Require().Equal(int64(0), resp.GetCount()) + } +} + func (s *WorkerRegistryTestSuite) TestWorkerRegistry_ListWorkersPagination() { ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel()