diff --git a/pyproject.toml b/pyproject.toml
index dfc844b0b..854de6cc5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -9,7 +9,7 @@ license = "MIT"
license-files = ["LICENSE"]
keywords = ["temporal", "workflow"]
dependencies = [
- "nexus-rpc==1.3.0",
+ "nexus-rpc",
"protobuf>=3.20,<7.0.0",
"python-dateutil>=2.8.2,<3 ; python_version < '3.11'",
"types-protobuf>=3.20",
@@ -229,3 +229,6 @@ exclude = ["temporalio/bridge/target/**/*"]
[tool.uv]
# Prevent uv commands from building the package by default
package = false
+
+[tool.uv.sources]
+nexus-rpc = { git = "https://github.com/nexus-rpc/sdk-python.git", branch = "amazzeo/add-failure" }
diff --git a/temporalio/api/deployment/v1/message_pb2.pyi b/temporalio/api/deployment/v1/message_pb2.pyi
index 21b42a36d..fe01ca1fe 100644
--- a/temporalio/api/deployment/v1/message_pb2.pyi
+++ b/temporalio/api/deployment/v1/message_pb2.pyi
@@ -34,7 +34,7 @@ class WorkerDeploymentOptions(google.protobuf.message.Message):
BUILD_ID_FIELD_NUMBER: builtins.int
WORKER_VERSIONING_MODE_FIELD_NUMBER: builtins.int
deployment_name: builtins.str
- """Required. Worker Deployment name."""
+ """Required when `worker_versioning_mode==VERSIONED`."""
build_id: builtins.str
"""The Build ID of the worker. Required when `worker_versioning_mode==VERSIONED`, in which case,
the worker will be part of a Deployment Version.
diff --git a/temporalio/api/failure/v1/message_pb2.pyi b/temporalio/api/failure/v1/message_pb2.pyi
index 76efeb112..131e67883 100644
--- a/temporalio/api/failure/v1/message_pb2.pyi
+++ b/temporalio/api/failure/v1/message_pb2.pyi
@@ -293,6 +293,8 @@ class ChildWorkflowExecutionFailureInfo(google.protobuf.message.Message):
global___ChildWorkflowExecutionFailureInfo = ChildWorkflowExecutionFailureInfo
class NexusOperationFailureInfo(google.protobuf.message.Message):
+ """Representation of the Temporal SDK NexusOperationError object that is returned to workflow callers."""
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int
diff --git a/temporalio/api/nexus/v1/message_pb2.py b/temporalio/api/nexus/v1/message_pb2.py
index 2083b3f27..923c6470c 100644
--- a/temporalio/api/nexus/v1/message_pb2.py
+++ b/temporalio/api/nexus/v1/message_pb2.py
@@ -22,9 +22,12 @@
from temporalio.api.enums.v1 import (
nexus_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_nexus__pb2,
)
+from temporalio.api.failure.v1 import (
+ message_pb2 as temporal_dot_api_dot_failure_dot_v1_dot_message__pb2,
+)
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n#temporal/api/nexus/v1/message.proto\x12\x15temporal.api.nexus.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a!temporal/api/enums/v1/nexus.proto"\x9c\x01\n\x07\x46\x61ilure\x12\x0f\n\x07message\x18\x01 \x01(\t\x12>\n\x08metadata\x18\x02 \x03(\x0b\x32,.temporal.api.nexus.v1.Failure.MetadataEntry\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\x0c\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\xa2\x01\n\x0cHandlerError\x12\x12\n\nerror_type\x18\x01 \x01(\t\x12/\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Failure\x12M\n\x0eretry_behavior\x18\x03 \x01(\x0e\x32\x35.temporal.api.enums.v1.NexusHandlerErrorRetryBehavior"f\n\x1aUnsuccessfulOperationError\x12\x17\n\x0foperation_state\x18\x01 \x01(\t\x12/\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Failure"!\n\x04Link\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t"\xd1\x02\n\x15StartOperationRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x10\n\x08\x63\x61llback\x18\x04 \x01(\t\x12\x30\n\x07payload\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12Y\n\x0f\x63\x61llback_header\x18\x06 \x03(\x0b\x32@.temporal.api.nexus.v1.StartOperationRequest.CallbackHeaderEntry\x12*\n\x05links\x18\x07 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.Link\x1a\x35\n\x13\x43\x61llbackHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"o\n\x16\x43\x61ncelOperationRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x18\n\x0coperation_id\x18\x03 \x01(\tB\x02\x18\x01\x12\x17\n\x0foperation_token\x18\x04 \x01(\t"\xd9\x02\n\x07Request\x12:\n\x06header\x18\x01 \x03(\x0b\x32*.temporal.api.nexus.v1.Request.HeaderEntry\x12\x32\n\x0escheduled_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12G\n\x0fstart_operation\x18\x03 \x01(\x0b\x32,.temporal.api.nexus.v1.StartOperationRequestH\x00\x12I\n\x10\x63\x61ncel_operation\x18\x04 \x01(\x0b\x32-.temporal.api.nexus.v1.CancelOperationRequestH\x00\x12\x10\n\x08\x65ndpoint\x18\n \x01(\t\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07variant"\xd9\x03\n\x16StartOperationResponse\x12J\n\x0csync_success\x18\x01 \x01(\x0b\x32\x32.temporal.api.nexus.v1.StartOperationResponse.SyncH\x00\x12L\n\rasync_success\x18\x02 \x01(\x0b\x32\x33.temporal.api.nexus.v1.StartOperationResponse.AsyncH\x00\x12L\n\x0foperation_error\x18\x03 \x01(\x0b\x32\x31.temporal.api.nexus.v1.UnsuccessfulOperationErrorH\x00\x1a\x64\n\x04Sync\x12\x30\n\x07payload\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12*\n\x05links\x18\x02 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.Link\x1a\x66\n\x05\x41sync\x12\x18\n\x0coperation_id\x18\x01 \x01(\tB\x02\x18\x01\x12*\n\x05links\x18\x02 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.Link\x12\x17\n\x0foperation_token\x18\x03 \x01(\tB\t\n\x07variant"\x19\n\x17\x43\x61ncelOperationResponse"\xab\x01\n\x08Response\x12H\n\x0fstart_operation\x18\x01 \x01(\x0b\x32-.temporal.api.nexus.v1.StartOperationResponseH\x00\x12J\n\x10\x63\x61ncel_operation\x18\x02 \x01(\x0b\x32..temporal.api.nexus.v1.CancelOperationResponseH\x00\x42\t\n\x07variant"\xd8\x01\n\x08\x45ndpoint\x12\x0f\n\x07version\x18\x01 \x01(\x03\x12\n\n\x02id\x18\x02 \x01(\t\x12\x31\n\x04spec\x18\x03 \x01(\x0b\x32#.temporal.api.nexus.v1.EndpointSpec\x12\x30\n\x0c\x63reated_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12last_modified_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nurl_prefix\x18\x06 \x01(\t"\x89\x01\n\x0c\x45ndpointSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x35\n\x06target\x18\x03 \x01(\x0b\x32%.temporal.api.nexus.v1.EndpointTarget"\xe9\x01\n\x0e\x45ndpointTarget\x12>\n\x06worker\x18\x01 \x01(\x0b\x32,.temporal.api.nexus.v1.EndpointTarget.WorkerH\x00\x12\x42\n\x08\x65xternal\x18\x02 \x01(\x0b\x32..temporal.api.nexus.v1.EndpointTarget.ExternalH\x00\x1a/\n\x06Worker\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x1a\x17\n\x08\x45xternal\x12\x0b\n\x03url\x18\x01 \x01(\tB\t\n\x07variantB\x84\x01\n\x18io.temporal.api.nexus.v1B\x0cMessageProtoP\x01Z!go.temporal.io/api/nexus/v1;nexus\xaa\x02\x17Temporalio.Api.Nexus.V1\xea\x02\x1aTemporalio::Api::Nexus::V1b\x06proto3'
+ b'\n#temporal/api/nexus/v1/message.proto\x12\x15temporal.api.nexus.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a!temporal/api/enums/v1/nexus.proto\x1a%temporal/api/failure/v1/message.proto"\xe0\x01\n\x07\x46\x61ilure\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x13\n\x0bstack_trace\x18\x04 \x01(\t\x12>\n\x08metadata\x18\x02 \x03(\x0b\x32,.temporal.api.nexus.v1.Failure.MetadataEntry\x12\x0f\n\x07\x64\x65tails\x18\x03 \x01(\x0c\x12-\n\x05\x63\x61use\x18\x05 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Failure\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\xa2\x01\n\x0cHandlerError\x12\x12\n\nerror_type\x18\x01 \x01(\t\x12/\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Failure\x12M\n\x0eretry_behavior\x18\x03 \x01(\x0e\x32\x35.temporal.api.enums.v1.NexusHandlerErrorRetryBehavior"f\n\x1aUnsuccessfulOperationError\x12\x17\n\x0foperation_state\x18\x01 \x01(\t\x12/\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Failure"!\n\x04Link\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t"\xd1\x02\n\x15StartOperationRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x10\n\x08\x63\x61llback\x18\x04 \x01(\t\x12\x30\n\x07payload\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12Y\n\x0f\x63\x61llback_header\x18\x06 \x03(\x0b\x32@.temporal.api.nexus.v1.StartOperationRequest.CallbackHeaderEntry\x12*\n\x05links\x18\x07 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.Link\x1a\x35\n\x13\x43\x61llbackHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"o\n\x16\x43\x61ncelOperationRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x18\n\x0coperation_id\x18\x03 \x01(\tB\x02\x18\x01\x12\x17\n\x0foperation_token\x18\x04 \x01(\t"\xd0\x03\n\x07Request\x12:\n\x06header\x18\x01 \x03(\x0b\x32*.temporal.api.nexus.v1.Request.HeaderEntry\x12\x32\n\x0escheduled_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x41\n\x0c\x63\x61pabilities\x18\x64 \x01(\x0b\x32+.temporal.api.nexus.v1.Request.Capabilities\x12G\n\x0fstart_operation\x18\x03 \x01(\x0b\x32,.temporal.api.nexus.v1.StartOperationRequestH\x00\x12I\n\x10\x63\x61ncel_operation\x18\x04 \x01(\x0b\x32-.temporal.api.nexus.v1.CancelOperationRequestH\x00\x12\x10\n\x08\x65ndpoint\x18\n \x01(\t\x1a\x32\n\x0c\x43\x61pabilities\x12"\n\x1atemporal_failure_responses\x18\x01 \x01(\x08\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\t\n\x07variant"\x92\x04\n\x16StartOperationResponse\x12J\n\x0csync_success\x18\x01 \x01(\x0b\x32\x32.temporal.api.nexus.v1.StartOperationResponse.SyncH\x00\x12L\n\rasync_success\x18\x02 \x01(\x0b\x32\x33.temporal.api.nexus.v1.StartOperationResponse.AsyncH\x00\x12P\n\x0foperation_error\x18\x03 \x01(\x0b\x32\x31.temporal.api.nexus.v1.UnsuccessfulOperationErrorB\x02\x18\x01H\x00\x12\x33\n\x07\x66\x61ilure\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x1a\x64\n\x04Sync\x12\x30\n\x07payload\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12*\n\x05links\x18\x02 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.Link\x1a\x66\n\x05\x41sync\x12\x18\n\x0coperation_id\x18\x01 \x01(\tB\x02\x18\x01\x12*\n\x05links\x18\x02 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.Link\x12\x17\n\x0foperation_token\x18\x03 \x01(\tB\t\n\x07variant"\x19\n\x17\x43\x61ncelOperationResponse"\xab\x01\n\x08Response\x12H\n\x0fstart_operation\x18\x01 \x01(\x0b\x32-.temporal.api.nexus.v1.StartOperationResponseH\x00\x12J\n\x10\x63\x61ncel_operation\x18\x02 \x01(\x0b\x32..temporal.api.nexus.v1.CancelOperationResponseH\x00\x42\t\n\x07variant"\xd8\x01\n\x08\x45ndpoint\x12\x0f\n\x07version\x18\x01 \x01(\x03\x12\n\n\x02id\x18\x02 \x01(\t\x12\x31\n\x04spec\x18\x03 \x01(\x0b\x32#.temporal.api.nexus.v1.EndpointSpec\x12\x30\n\x0c\x63reated_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12last_modified_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nurl_prefix\x18\x06 \x01(\t"\x89\x01\n\x0c\x45ndpointSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x0b\x64\x65scription\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x35\n\x06target\x18\x03 \x01(\x0b\x32%.temporal.api.nexus.v1.EndpointTarget"\xe9\x01\n\x0e\x45ndpointTarget\x12>\n\x06worker\x18\x01 \x01(\x0b\x32,.temporal.api.nexus.v1.EndpointTarget.WorkerH\x00\x12\x42\n\x08\x65xternal\x18\x02 \x01(\x0b\x32..temporal.api.nexus.v1.EndpointTarget.ExternalH\x00\x1a/\n\x06Worker\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x1a\x17\n\x08\x45xternal\x12\x0b\n\x03url\x18\x01 \x01(\tB\t\n\x07variantB\x84\x01\n\x18io.temporal.api.nexus.v1B\x0cMessageProtoP\x01Z!go.temporal.io/api/nexus/v1;nexus\xaa\x02\x17Temporalio.Api.Nexus.V1\xea\x02\x1aTemporalio::Api::Nexus::V1b\x06proto3'
)
@@ -41,6 +44,7 @@
)
_CANCELOPERATIONREQUEST = DESCRIPTOR.message_types_by_name["CancelOperationRequest"]
_REQUEST = DESCRIPTOR.message_types_by_name["Request"]
+_REQUEST_CAPABILITIES = _REQUEST.nested_types_by_name["Capabilities"]
_REQUEST_HEADERENTRY = _REQUEST.nested_types_by_name["HeaderEntry"]
_STARTOPERATIONRESPONSE = DESCRIPTOR.message_types_by_name["StartOperationResponse"]
_STARTOPERATIONRESPONSE_SYNC = _STARTOPERATIONRESPONSE.nested_types_by_name["Sync"]
@@ -142,6 +146,15 @@
"Request",
(_message.Message,),
{
+ "Capabilities": _reflection.GeneratedProtocolMessageType(
+ "Capabilities",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _REQUEST_CAPABILITIES,
+ "__module__": "temporalio.api.nexus.v1.message_pb2",
+ # @@protoc_insertion_point(class_scope:temporal.api.nexus.v1.Request.Capabilities)
+ },
+ ),
"HeaderEntry": _reflection.GeneratedProtocolMessageType(
"HeaderEntry",
(_message.Message,),
@@ -157,6 +170,7 @@
},
)
_sym_db.RegisterMessage(Request)
+_sym_db.RegisterMessage(Request.Capabilities)
_sym_db.RegisterMessage(Request.HeaderEntry)
StartOperationResponse = _reflection.GeneratedProtocolMessageType(
@@ -282,44 +296,50 @@
_STARTOPERATIONRESPONSE_ASYNC.fields_by_name[
"operation_id"
]._serialized_options = b"\030\001"
- _FAILURE._serialized_start = 169
- _FAILURE._serialized_end = 325
- _FAILURE_METADATAENTRY._serialized_start = 278
- _FAILURE_METADATAENTRY._serialized_end = 325
- _HANDLERERROR._serialized_start = 328
- _HANDLERERROR._serialized_end = 490
- _UNSUCCESSFULOPERATIONERROR._serialized_start = 492
- _UNSUCCESSFULOPERATIONERROR._serialized_end = 594
- _LINK._serialized_start = 596
- _LINK._serialized_end = 629
- _STARTOPERATIONREQUEST._serialized_start = 632
- _STARTOPERATIONREQUEST._serialized_end = 969
- _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_start = 916
- _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_end = 969
- _CANCELOPERATIONREQUEST._serialized_start = 971
- _CANCELOPERATIONREQUEST._serialized_end = 1082
- _REQUEST._serialized_start = 1085
- _REQUEST._serialized_end = 1430
- _REQUEST_HEADERENTRY._serialized_start = 1374
- _REQUEST_HEADERENTRY._serialized_end = 1419
- _STARTOPERATIONRESPONSE._serialized_start = 1433
- _STARTOPERATIONRESPONSE._serialized_end = 1906
- _STARTOPERATIONRESPONSE_SYNC._serialized_start = 1691
- _STARTOPERATIONRESPONSE_SYNC._serialized_end = 1791
- _STARTOPERATIONRESPONSE_ASYNC._serialized_start = 1793
- _STARTOPERATIONRESPONSE_ASYNC._serialized_end = 1895
- _CANCELOPERATIONRESPONSE._serialized_start = 1908
- _CANCELOPERATIONRESPONSE._serialized_end = 1933
- _RESPONSE._serialized_start = 1936
- _RESPONSE._serialized_end = 2107
- _ENDPOINT._serialized_start = 2110
- _ENDPOINT._serialized_end = 2326
- _ENDPOINTSPEC._serialized_start = 2329
- _ENDPOINTSPEC._serialized_end = 2466
- _ENDPOINTTARGET._serialized_start = 2469
- _ENDPOINTTARGET._serialized_end = 2702
- _ENDPOINTTARGET_WORKER._serialized_start = 2619
- _ENDPOINTTARGET_WORKER._serialized_end = 2666
- _ENDPOINTTARGET_EXTERNAL._serialized_start = 2668
- _ENDPOINTTARGET_EXTERNAL._serialized_end = 2691
+ _STARTOPERATIONRESPONSE.fields_by_name["operation_error"]._options = None
+ _STARTOPERATIONRESPONSE.fields_by_name[
+ "operation_error"
+ ]._serialized_options = b"\030\001"
+ _FAILURE._serialized_start = 208
+ _FAILURE._serialized_end = 432
+ _FAILURE_METADATAENTRY._serialized_start = 385
+ _FAILURE_METADATAENTRY._serialized_end = 432
+ _HANDLERERROR._serialized_start = 435
+ _HANDLERERROR._serialized_end = 597
+ _UNSUCCESSFULOPERATIONERROR._serialized_start = 599
+ _UNSUCCESSFULOPERATIONERROR._serialized_end = 701
+ _LINK._serialized_start = 703
+ _LINK._serialized_end = 736
+ _STARTOPERATIONREQUEST._serialized_start = 739
+ _STARTOPERATIONREQUEST._serialized_end = 1076
+ _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_start = 1023
+ _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_end = 1076
+ _CANCELOPERATIONREQUEST._serialized_start = 1078
+ _CANCELOPERATIONREQUEST._serialized_end = 1189
+ _REQUEST._serialized_start = 1192
+ _REQUEST._serialized_end = 1656
+ _REQUEST_CAPABILITIES._serialized_start = 1548
+ _REQUEST_CAPABILITIES._serialized_end = 1598
+ _REQUEST_HEADERENTRY._serialized_start = 1600
+ _REQUEST_HEADERENTRY._serialized_end = 1645
+ _STARTOPERATIONRESPONSE._serialized_start = 1659
+ _STARTOPERATIONRESPONSE._serialized_end = 2189
+ _STARTOPERATIONRESPONSE_SYNC._serialized_start = 1974
+ _STARTOPERATIONRESPONSE_SYNC._serialized_end = 2074
+ _STARTOPERATIONRESPONSE_ASYNC._serialized_start = 2076
+ _STARTOPERATIONRESPONSE_ASYNC._serialized_end = 2178
+ _CANCELOPERATIONRESPONSE._serialized_start = 2191
+ _CANCELOPERATIONRESPONSE._serialized_end = 2216
+ _RESPONSE._serialized_start = 2219
+ _RESPONSE._serialized_end = 2390
+ _ENDPOINT._serialized_start = 2393
+ _ENDPOINT._serialized_end = 2609
+ _ENDPOINTSPEC._serialized_start = 2612
+ _ENDPOINTSPEC._serialized_end = 2749
+ _ENDPOINTTARGET._serialized_start = 2752
+ _ENDPOINTTARGET._serialized_end = 2985
+ _ENDPOINTTARGET_WORKER._serialized_start = 2902
+ _ENDPOINTTARGET_WORKER._serialized_end = 2949
+ _ENDPOINTTARGET_EXTERNAL._serialized_start = 2951
+ _ENDPOINTTARGET_EXTERNAL._serialized_end = 2974
# @@protoc_insertion_point(module_scope)
diff --git a/temporalio/api/nexus/v1/message_pb2.pyi b/temporalio/api/nexus/v1/message_pb2.pyi
index 32714b162..a85121e2d 100644
--- a/temporalio/api/nexus/v1/message_pb2.pyi
+++ b/temporalio/api/nexus/v1/message_pb2.pyi
@@ -14,6 +14,7 @@ import google.protobuf.timestamp_pb2
import temporalio.api.common.v1.message_pb2
import temporalio.api.enums.v1.nexus_pb2
+import temporalio.api.failure.v1.message_pb2
if sys.version_info >= (3, 8):
import typing as typing_extensions
@@ -48,26 +49,45 @@ class Failure(google.protobuf.message.Message):
) -> None: ...
MESSAGE_FIELD_NUMBER: builtins.int
+ STACK_TRACE_FIELD_NUMBER: builtins.int
METADATA_FIELD_NUMBER: builtins.int
DETAILS_FIELD_NUMBER: builtins.int
+ CAUSE_FIELD_NUMBER: builtins.int
message: builtins.str
+ stack_trace: builtins.str
@property
def metadata(
self,
) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
details: builtins.bytes
"""UTF-8 encoded JSON serializable details."""
+ @property
+ def cause(self) -> global___Failure: ...
def __init__(
self,
*,
message: builtins.str = ...,
+ stack_trace: builtins.str = ...,
metadata: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
details: builtins.bytes = ...,
+ cause: global___Failure | None = ...,
) -> None: ...
+ def HasField(
+ self, field_name: typing_extensions.Literal["cause", b"cause"]
+ ) -> builtins.bool: ...
def ClearField(
self,
field_name: typing_extensions.Literal[
- "details", b"details", "message", b"message", "metadata", b"metadata"
+ "cause",
+ b"cause",
+ "details",
+ b"details",
+ "message",
+ b"message",
+ "metadata",
+ b"metadata",
+ "stack_trace",
+ b"stack_trace",
],
) -> None: ...
@@ -297,6 +317,26 @@ class Request(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ class Capabilities(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ TEMPORAL_FAILURE_RESPONSES_FIELD_NUMBER: builtins.int
+ temporal_failure_responses: builtins.bool
+ """If set, handlers may use temporalio.api.failure.v1.Failure instances to return failures to the server.
+ This also allows handler and operation errors to have their own messages and stack traces.
+ """
+ def __init__(
+ self,
+ *,
+ temporal_failure_responses: builtins.bool = ...,
+ ) -> None: ...
+ def ClearField(
+ self,
+ field_name: typing_extensions.Literal[
+ "temporal_failure_responses", b"temporal_failure_responses"
+ ],
+ ) -> None: ...
+
class HeaderEntry(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -317,6 +357,7 @@ class Request(google.protobuf.message.Message):
HEADER_FIELD_NUMBER: builtins.int
SCHEDULED_TIME_FIELD_NUMBER: builtins.int
+ CAPABILITIES_FIELD_NUMBER: builtins.int
START_OPERATION_FIELD_NUMBER: builtins.int
CANCEL_OPERATION_FIELD_NUMBER: builtins.int
ENDPOINT_FIELD_NUMBER: builtins.int
@@ -334,6 +375,8 @@ class Request(google.protobuf.message.Message):
aip.dev/not-precedent: Not following linter rules. --)
"""
@property
+ def capabilities(self) -> global___Request.Capabilities: ...
+ @property
def start_operation(self) -> global___StartOperationRequest: ...
@property
def cancel_operation(self) -> global___CancelOperationRequest: ...
@@ -346,6 +389,7 @@ class Request(google.protobuf.message.Message):
*,
header: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
scheduled_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
+ capabilities: global___Request.Capabilities | None = ...,
start_operation: global___StartOperationRequest | None = ...,
cancel_operation: global___CancelOperationRequest | None = ...,
endpoint: builtins.str = ...,
@@ -355,6 +399,8 @@ class Request(google.protobuf.message.Message):
field_name: typing_extensions.Literal[
"cancel_operation",
b"cancel_operation",
+ "capabilities",
+ b"capabilities",
"scheduled_time",
b"scheduled_time",
"start_operation",
@@ -368,6 +414,8 @@ class Request(google.protobuf.message.Message):
field_name: typing_extensions.Literal[
"cancel_operation",
b"cancel_operation",
+ "capabilities",
+ b"capabilities",
"endpoint",
b"endpoint",
"header",
@@ -463,25 +511,36 @@ class StartOperationResponse(google.protobuf.message.Message):
SYNC_SUCCESS_FIELD_NUMBER: builtins.int
ASYNC_SUCCESS_FIELD_NUMBER: builtins.int
OPERATION_ERROR_FIELD_NUMBER: builtins.int
+ FAILURE_FIELD_NUMBER: builtins.int
@property
def sync_success(self) -> global___StartOperationResponse.Sync: ...
@property
def async_success(self) -> global___StartOperationResponse.Async: ...
@property
def operation_error(self) -> global___UnsuccessfulOperationError:
- """The operation completed unsuccessfully (failed or canceled)."""
+ """The operation completed unsuccessfully (failed or canceled).
+ Deprecated. Use the failure variant instead.
+ """
+ @property
+ def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure:
+ """The operation completed unsuccessfully (failed or canceled).
+ Failure object must contain an ApplicationFailureInfo or CanceledFailureInfo object.
+ """
def __init__(
self,
*,
sync_success: global___StartOperationResponse.Sync | None = ...,
async_success: global___StartOperationResponse.Async | None = ...,
operation_error: global___UnsuccessfulOperationError | None = ...,
+ failure: temporalio.api.failure.v1.message_pb2.Failure | None = ...,
) -> None: ...
def HasField(
self,
field_name: typing_extensions.Literal[
"async_success",
b"async_success",
+ "failure",
+ b"failure",
"operation_error",
b"operation_error",
"sync_success",
@@ -495,6 +554,8 @@ class StartOperationResponse(google.protobuf.message.Message):
field_name: typing_extensions.Literal[
"async_success",
b"async_success",
+ "failure",
+ b"failure",
"operation_error",
b"operation_error",
"sync_success",
@@ -506,7 +567,9 @@ class StartOperationResponse(google.protobuf.message.Message):
def WhichOneof(
self, oneof_group: typing_extensions.Literal["variant", b"variant"]
) -> (
- typing_extensions.Literal["sync_success", "async_success", "operation_error"]
+ typing_extensions.Literal[
+ "sync_success", "async_success", "operation_error", "failure"
+ ]
| None
): ...
diff --git a/temporalio/api/workflowservice/v1/__init__.py b/temporalio/api/workflowservice/v1/__init__.py
index e8bcd771a..ba80b0e9d 100644
--- a/temporalio/api/workflowservice/v1/__init__.py
+++ b/temporalio/api/workflowservice/v1/__init__.py
@@ -1,6 +1,8 @@
from .request_response_pb2 import (
CountActivityExecutionsRequest,
CountActivityExecutionsResponse,
+ CountSchedulesRequest,
+ CountSchedulesResponse,
CountWorkflowExecutionsRequest,
CountWorkflowExecutionsResponse,
CreateScheduleRequest,
@@ -212,6 +214,8 @@
__all__ = [
"CountActivityExecutionsRequest",
"CountActivityExecutionsResponse",
+ "CountSchedulesRequest",
+ "CountSchedulesResponse",
"CountWorkflowExecutionsRequest",
"CountWorkflowExecutionsResponse",
"CreateScheduleRequest",
diff --git a/temporalio/api/workflowservice/v1/request_response_pb2.py b/temporalio/api/workflowservice/v1/request_response_pb2.py
index 94fb6a620..6acfddde4 100644
--- a/temporalio/api/workflowservice/v1/request_response_pb2.py
+++ b/temporalio/api/workflowservice/v1/request_response_pb2.py
@@ -122,7 +122,7 @@
)
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n6temporal/api/workflowservice/v1/request_response.proto\x12\x1ftemporal.api.workflowservice.v1\x1a+temporal/api/enums/v1/batch_operation.proto\x1a"temporal/api/enums/v1/common.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/enums/v1/namespace.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a!temporal/api/enums/v1/query.proto\x1a!temporal/api/enums/v1/reset.proto\x1a&temporal/api/enums/v1/task_queue.proto\x1a&temporal/api/enums/v1/deployment.proto\x1a"temporal/api/enums/v1/update.proto\x1a$temporal/api/enums/v1/activity.proto\x1a&temporal/api/activity/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/history/v1/message.proto\x1a&temporal/api/workflow/v1/message.proto\x1a%temporal/api/command/v1/message.proto\x1a(temporal/api/deployment/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/filter/v1/message.proto\x1a&temporal/api/protocol/v1/message.proto\x1a\'temporal/api/namespace/v1/message.proto\x1a#temporal/api/query/v1/message.proto\x1a)temporal/api/replication/v1/message.proto\x1a#temporal/api/rules/v1/message.proto\x1a\'temporal/api/sdk/v1/worker_config.proto\x1a&temporal/api/schedule/v1/message.proto\x1a\'temporal/api/taskqueue/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a%temporal/api/version/v1/message.proto\x1a#temporal/api/batch/v1/message.proto\x1a\x30temporal/api/sdk/v1/task_complete_metadata.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a#temporal/api/nexus/v1/message.proto\x1a$temporal/api/worker/v1/message.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\x88\x05\n\x18RegisterNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x0bowner_email\x18\x03 \x01(\t\x12\x46\n#workflow_execution_retention_period\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12G\n\x08\x63lusters\x18\x05 \x03(\x0b\x32\x35.temporal.api.replication.v1.ClusterReplicationConfig\x12\x1b\n\x13\x61\x63tive_cluster_name\x18\x06 \x01(\t\x12Q\n\x04\x64\x61ta\x18\x07 \x03(\x0b\x32\x43.temporal.api.workflowservice.v1.RegisterNamespaceRequest.DataEntry\x12\x16\n\x0esecurity_token\x18\x08 \x01(\t\x12\x1b\n\x13is_global_namespace\x18\t \x01(\x08\x12\x44\n\x16history_archival_state\x18\n \x01(\x0e\x32$.temporal.api.enums.v1.ArchivalState\x12\x1c\n\x14history_archival_uri\x18\x0b \x01(\t\x12G\n\x19visibility_archival_state\x18\x0c \x01(\x0e\x32$.temporal.api.enums.v1.ArchivalState\x12\x1f\n\x17visibility_archival_uri\x18\r \x01(\t\x1a+\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x1b\n\x19RegisterNamespaceResponse"\x89\x01\n\x15ListNamespacesRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c\x12\x44\n\x10namespace_filter\x18\x03 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceFilter"\x81\x01\n\x16ListNamespacesResponse\x12N\n\nnamespaces\x18\x01 \x03(\x0b\x32:.temporal.api.workflowservice.v1.DescribeNamespaceResponse\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"9\n\x18\x44\x65scribeNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t"\xec\x02\n\x19\x44\x65scribeNamespaceResponse\x12@\n\x0enamespace_info\x18\x01 \x01(\x0b\x32(.temporal.api.namespace.v1.NamespaceInfo\x12:\n\x06\x63onfig\x18\x02 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceConfig\x12S\n\x12replication_config\x18\x03 \x01(\x0b\x32\x37.temporal.api.replication.v1.NamespaceReplicationConfig\x12\x18\n\x10\x66\x61ilover_version\x18\x04 \x01(\x03\x12\x1b\n\x13is_global_namespace\x18\x05 \x01(\x08\x12\x45\n\x10\x66\x61ilover_history\x18\x06 \x03(\x0b\x32+.temporal.api.replication.v1.FailoverStatus"\xcf\x02\n\x16UpdateNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x43\n\x0bupdate_info\x18\x02 \x01(\x0b\x32..temporal.api.namespace.v1.UpdateNamespaceInfo\x12:\n\x06\x63onfig\x18\x03 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceConfig\x12S\n\x12replication_config\x18\x04 \x01(\x0b\x32\x37.temporal.api.replication.v1.NamespaceReplicationConfig\x12\x16\n\x0esecurity_token\x18\x05 \x01(\t\x12\x19\n\x11\x64\x65lete_bad_binary\x18\x06 \x01(\t\x12\x19\n\x11promote_namespace\x18\x07 \x01(\x08"\xa3\x02\n\x17UpdateNamespaceResponse\x12@\n\x0enamespace_info\x18\x01 \x01(\x0b\x32(.temporal.api.namespace.v1.NamespaceInfo\x12:\n\x06\x63onfig\x18\x02 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceConfig\x12S\n\x12replication_config\x18\x03 \x01(\x0b\x32\x37.temporal.api.replication.v1.NamespaceReplicationConfig\x12\x18\n\x10\x66\x61ilover_version\x18\x04 \x01(\x03\x12\x1b\n\x13is_global_namespace\x18\x05 \x01(\x08"F\n\x19\x44\x65precateNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x16\n\x0esecurity_token\x18\x02 \x01(\t"\x1c\n\x1a\x44\x65precateNamespaceResponse"\x87\x0c\n\x1dStartWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x04 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12=\n\x1aworkflow_execution_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08identity\x18\t \x01(\t\x12\x12\n\nrequest_id\x18\n \x01(\t\x12N\n\x18workflow_id_reuse_policy\x18\x0b \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12T\n\x1bworkflow_id_conflict_policy\x18\x16 \x01(\x0e\x32/.temporal.api.enums.v1.WorkflowIdConflictPolicy\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\r \x01(\t\x12*\n\x04memo\x18\x0e \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0f \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\x10 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x1f\n\x17request_eager_execution\x18\x11 \x01(\x08\x12;\n\x11\x63ontinued_failure\x18\x12 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x13 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x37\n\x14workflow_start_delay\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12>\n\x14\x63ompletion_callbacks\x18\x15 \x03(\x0b\x32 .temporal.api.common.v1.Callback\x12\x38\n\ruser_metadata\x18\x17 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12+\n\x05links\x18\x18 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link\x12I\n\x13versioning_override\x18\x19 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12H\n\x13on_conflict_options\x18\x1a \x01(\x0b\x32+.temporal.api.workflow.v1.OnConflictOptions\x12\x32\n\x08priority\x18\x1b \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12\\\n\x1f\x65\x61ger_worker_deployment_options\x18\x1c \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"\x8a\x02\n\x1eStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x03 \x01(\x08\x12>\n\x06status\x18\x05 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowExecutionStatus\x12[\n\x13\x65\x61ger_workflow_task\x18\x02 \x01(\x0b\x32>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse\x12*\n\x04link\x18\x04 \x01(\x0b\x32\x1c.temporal.api.common.v1.Link"\xaa\x02\n"GetWorkflowExecutionHistoryRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x19\n\x11maximum_page_size\x18\x03 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x04 \x01(\x0c\x12\x16\n\x0ewait_new_event\x18\x05 \x01(\x08\x12P\n\x19history_event_filter_type\x18\x06 \x01(\x0e\x32-.temporal.api.enums.v1.HistoryEventFilterType\x12\x15\n\rskip_archival\x18\x07 \x01(\x08"\xba\x01\n#GetWorkflowExecutionHistoryResponse\x12\x31\n\x07history\x18\x01 \x01(\x0b\x32 .temporal.api.history.v1.History\x12\x35\n\x0braw_history\x18\x02 \x03(\x0b\x32 .temporal.api.common.v1.DataBlob\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x10\n\x08\x61rchived\x18\x04 \x01(\x08"\xb0\x01\n)GetWorkflowExecutionHistoryReverseRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x19\n\x11maximum_page_size\x18\x03 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x04 \x01(\x0c"x\n*GetWorkflowExecutionHistoryReverseResponse\x12\x31\n\x07history\x18\x01 \x01(\x0b\x32 .temporal.api.history.v1.History\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c"\xc7\x02\n\x1cPollWorkflowTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x1b\n\x0f\x62inary_checksum\x18\x04 \x01(\tB\x02\x18\x01\x12Z\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilitiesB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x06 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"\x91\x07\n\x1dPollWorkflowTaskQueueResponse\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12!\n\x19previous_started_event_id\x18\x04 \x01(\x03\x12\x18\n\x10started_event_id\x18\x05 \x01(\x03\x12\x0f\n\x07\x61ttempt\x18\x06 \x01(\x05\x12\x1a\n\x12\x62\x61\x63klog_count_hint\x18\x07 \x01(\x03\x12\x31\n\x07history\x18\x08 \x01(\x0b\x32 .temporal.api.history.v1.History\x12\x17\n\x0fnext_page_token\x18\t \x01(\x0c\x12\x33\n\x05query\x18\n \x01(\x0b\x32$.temporal.api.query.v1.WorkflowQuery\x12K\n\x1dworkflow_execution_task_queue\x18\x0b \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x32\n\x0escheduled_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\\\n\x07queries\x18\x0e \x03(\x0b\x32K.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry\x12\x33\n\x08messages\x18\x0f \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12Q\n\x17poller_scaling_decision\x18\x10 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.PollerScalingDecision\x1aT\n\x0cQueriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.temporal.api.query.v1.WorkflowQuery:\x02\x38\x01"\xb5\t\n#RespondWorkflowTaskCompletedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x32\n\x08\x63ommands\x18\x02 \x03(\x0b\x32 .temporal.api.command.v1.Command\x12\x10\n\x08identity\x18\x03 \x01(\t\x12O\n\x11sticky_attributes\x18\x04 \x01(\x0b\x32\x34.temporal.api.taskqueue.v1.StickyExecutionAttributes\x12 \n\x18return_new_workflow_task\x18\x05 \x01(\x08\x12&\n\x1e\x66orce_create_new_workflow_task\x18\x06 \x01(\x08\x12\x1b\n\x0f\x62inary_checksum\x18\x07 \x01(\tB\x02\x18\x01\x12m\n\rquery_results\x18\x08 \x03(\x0b\x32V.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.QueryResultsEntry\x12\x11\n\tnamespace\x18\t \x01(\t\x12L\n\x14worker_version_stamp\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12\x33\n\x08messages\x18\x0b \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12H\n\x0csdk_metadata\x18\x0c \x01(\x0b\x32\x32.temporal.api.sdk.v1.WorkflowTaskCompletedMetadata\x12\x43\n\x11metering_metadata\x18\r \x01(\x0b\x32(.temporal.api.common.v1.MeteringMetadata\x12g\n\x0c\x63\x61pabilities\x18\x0e \x01(\x0b\x32Q.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.Capabilities\x12>\n\ndeployment\x18\x0f \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12\x46\n\x13versioning_behavior\x18\x10 \x01(\x0e\x32).temporal.api.enums.v1.VersioningBehavior\x12O\n\x12\x64\x65ployment_options\x18\x11 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions\x1a_\n\x11QueryResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.temporal.api.query.v1.WorkflowQueryResult:\x02\x38\x01\x1a\x45\n\x0c\x43\x61pabilities\x12\x35\n-discard_speculative_workflow_task_with_events\x18\x01 \x01(\x08"\xf5\x01\n$RespondWorkflowTaskCompletedResponse\x12U\n\rworkflow_task\x18\x01 \x01(\x0b\x32>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse\x12V\n\x0e\x61\x63tivity_tasks\x18\x02 \x03(\x0b\x32>.temporal.api.workflowservice.v1.PollActivityTaskQueueResponse\x12\x1e\n\x16reset_history_event_id\x18\x03 \x01(\x03"\xf8\x03\n RespondWorkflowTaskFailedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12=\n\x05\x63\x61use\x18\x02 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCause\x12\x31\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x1b\n\x0f\x62inary_checksum\x18\x05 \x01(\tB\x02\x18\x01\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x33\n\x08messages\x18\x07 \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12\x46\n\x0eworker_version\x18\x08 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\t \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\n \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"#\n!RespondWorkflowTaskFailedResponse"\xf5\x02\n\x1cPollActivityTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x10\n\x08identity\x18\x03 \x01(\t\x12I\n\x13task_queue_metadata\x18\x04 \x01(\x0b\x32,.temporal.api.taskqueue.v1.TaskQueueMetadata\x12Z\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilitiesB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x06 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"\x88\x08\n\x1dPollActivityTaskQueueResponse\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x1a\n\x12workflow_namespace\x18\x02 \x01(\t\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x45\n\x12workflow_execution\x18\x04 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\ractivity_type\x18\x05 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12\x13\n\x0b\x61\x63tivity_id\x18\x06 \x01(\t\x12.\n\x06header\x18\x07 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12/\n\x05input\x18\x08 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12;\n\x11heartbeat_details\x18\t \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x32\n\x0escheduled_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x1e\x63urrent_attempt_scheduled_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\r \x01(\x05\x12<\n\x19schedule_to_close_timeout\x18\x0e \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\x0f \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x10 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x11 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12Q\n\x17poller_scaling_decision\x18\x12 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.PollerScalingDecision\x12\x32\n\x08priority\x18\x13 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12\x17\n\x0f\x61\x63tivity_run_id\x18\x14 \x01(\t"\x90\x01\n"RecordActivityTaskHeartbeatRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t"p\n#RecordActivityTaskHeartbeatResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x63tivity_paused\x18\x02 \x01(\x08\x12\x16\n\x0e\x61\x63tivity_reset\x18\x03 \x01(\x08"\xba\x01\n&RecordActivityTaskHeartbeatByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x06 \x01(\t"t\n\'RecordActivityTaskHeartbeatByIdResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x63tivity_paused\x18\x02 \x01(\x08\x12\x16\n\x0e\x61\x63tivity_reset\x18\x03 \x01(\x08"\xe9\x02\n#RespondActivityTaskCompletedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x30\n\x06result\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t\x12\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\x06 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x07 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"&\n$RespondActivityTaskCompletedResponse"\xba\x01\n\'RespondActivityTaskCompletedByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x30\n\x06result\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x06 \x01(\t"*\n(RespondActivityTaskCompletedByIdResponse"\xa9\x03\n RespondActivityTaskFailedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t\x12@\n\x16last_heartbeat_details\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\x07 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x08 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"W\n!RespondActivityTaskFailedResponse\x12\x32\n\x08\x66\x61ilures\x18\x01 \x03(\x0b\x32 .temporal.api.failure.v1.Failure"\xfa\x01\n$RespondActivityTaskFailedByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x06 \x01(\t\x12@\n\x16last_heartbeat_details\x18\x07 \x01(\x0b\x32 .temporal.api.common.v1.Payloads"[\n%RespondActivityTaskFailedByIdResponse\x12\x32\n\x08\x66\x61ilures\x18\x01 \x03(\x0b\x32 .temporal.api.failure.v1.Failure"\xe9\x02\n"RespondActivityTaskCanceledRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t\x12\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\x06 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x07 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"%\n#RespondActivityTaskCanceledResponse"\x8b\x02\n&RespondActivityTaskCanceledByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x06 \x01(\t\x12O\n\x12\x64\x65ployment_options\x18\x07 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions")\n\'RespondActivityTaskCanceledByIdResponse"\x84\x02\n%RequestCancelWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x05 \x01(\t\x12\x0e\n\x06reason\x18\x06 \x01(\t\x12+\n\x05links\x18\x07 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link"(\n&RequestCancelWorkflowExecutionResponse"\xde\x02\n\x1eSignalWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x13\n\x0bsignal_name\x18\x03 \x01(\t\x12/\n\x05input\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12\x13\n\x07\x63ontrol\x18\x07 \x01(\tB\x02\x18\x01\x12.\n\x06header\x18\x08 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12+\n\x05links\x18\n \x03(\x0b\x32\x1c.temporal.api.common.v1.LinkJ\x04\x08\t\x10\n"!\n\x1fSignalWorkflowExecutionResponse"\xf1\t\n\'SignalWithStartWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x04 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12=\n\x1aworkflow_execution_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08identity\x18\t \x01(\t\x12\x12\n\nrequest_id\x18\n \x01(\t\x12N\n\x18workflow_id_reuse_policy\x18\x0b \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12T\n\x1bworkflow_id_conflict_policy\x18\x16 \x01(\x0e\x32/.temporal.api.enums.v1.WorkflowIdConflictPolicy\x12\x13\n\x0bsignal_name\x18\x0c \x01(\t\x12\x36\n\x0csignal_input\x18\r \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x13\n\x07\x63ontrol\x18\x0e \x01(\tB\x02\x18\x01\x12\x39\n\x0cretry_policy\x18\x0f \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x10 \x01(\t\x12*\n\x04memo\x18\x11 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x12 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\x13 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x37\n\x14workflow_start_delay\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\ruser_metadata\x18\x17 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12+\n\x05links\x18\x18 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link\x12I\n\x13versioning_override\x18\x19 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12\x32\n\x08priority\x18\x1a \x01(\x0b\x32 .temporal.api.common.v1.PriorityJ\x04\x08\x15\x10\x16"K\n(SignalWithStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x02 \x01(\x08"\xc1\x03\n\x1dResetWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12%\n\x1dworkflow_task_finish_event_id\x18\x04 \x01(\x03\x12\x12\n\nrequest_id\x18\x05 \x01(\t\x12G\n\x12reset_reapply_type\x18\x06 \x01(\x0e\x32\'.temporal.api.enums.v1.ResetReapplyTypeB\x02\x18\x01\x12S\n\x1breset_reapply_exclude_types\x18\x07 \x03(\x0e\x32..temporal.api.enums.v1.ResetReapplyExcludeType\x12K\n\x15post_reset_operations\x18\x08 \x03(\x0b\x32,.temporal.api.workflow.v1.PostResetOperation\x12\x10\n\x08identity\x18\t \x01(\t"0\n\x1eResetWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\x9f\x02\n!TerminateWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x06 \x01(\t\x12+\n\x05links\x18\x07 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link"$\n"TerminateWorkflowExecutionResponse"z\n\x1e\x44\x65leteWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"!\n\x1f\x44\x65leteWorkflowExecutionResponse"\xc9\x02\n!ListOpenWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11maximum_page_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x42\n\x11start_time_filter\x18\x04 \x01(\x0b\x32\'.temporal.api.filter.v1.StartTimeFilter\x12K\n\x10\x65xecution_filter\x18\x05 \x01(\x0b\x32/.temporal.api.filter.v1.WorkflowExecutionFilterH\x00\x12\x41\n\x0btype_filter\x18\x06 \x01(\x0b\x32*.temporal.api.filter.v1.WorkflowTypeFilterH\x00\x42\t\n\x07\x66ilters"\x82\x01\n"ListOpenWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\x8a\x03\n#ListClosedWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11maximum_page_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x42\n\x11start_time_filter\x18\x04 \x01(\x0b\x32\'.temporal.api.filter.v1.StartTimeFilter\x12K\n\x10\x65xecution_filter\x18\x05 \x01(\x0b\x32/.temporal.api.filter.v1.WorkflowExecutionFilterH\x00\x12\x41\n\x0btype_filter\x18\x06 \x01(\x0b\x32*.temporal.api.filter.v1.WorkflowTypeFilterH\x00\x12=\n\rstatus_filter\x18\x07 \x01(\x0b\x32$.temporal.api.filter.v1.StatusFilterH\x00\x42\t\n\x07\x66ilters"\x84\x01\n$ListClosedWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"m\n\x1dListWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"~\n\x1eListWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"u\n%ListArchivedWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"\x86\x01\n&ListArchivedWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"m\n\x1dScanWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"~\n\x1eScanWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"B\n\x1e\x43ountWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t"\xed\x01\n\x1f\x43ountWorkflowExecutionsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x61\n\x06groups\x18\x02 \x03(\x0b\x32Q.temporal.api.workflowservice.v1.CountWorkflowExecutionsResponse.AggregationGroup\x1aX\n\x10\x41ggregationGroup\x12\x35\n\x0cgroup_values\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\x1c\n\x1aGetSearchAttributesRequest"\xc9\x01\n\x1bGetSearchAttributesResponse\x12T\n\x04keys\x18\x01 \x03(\x0b\x32\x46.temporal.api.workflowservice.v1.GetSearchAttributesResponse.KeysEntry\x1aT\n\tKeysEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0e\x32\'.temporal.api.enums.v1.IndexedValueType:\x02\x38\x01"\xd0\x02\n RespondQueryTaskCompletedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12>\n\x0e\x63ompleted_type\x18\x02 \x01(\x0e\x32&.temporal.api.enums.v1.QueryResultType\x12\x36\n\x0cquery_result\x18\x03 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x15\n\rerror_message\x18\x04 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x31\n\x07\x66\x61ilure\x18\x07 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12=\n\x05\x63\x61use\x18\x08 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCauseJ\x04\x08\x05\x10\x06"#\n!RespondQueryTaskCompletedResponse"n\n\x1bResetStickyTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\x1e\n\x1cResetStickyTaskQueueResponse"\xaa\x01\n\x15ShutdownWorkerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11sticky_task_queue\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12\x41\n\x10worker_heartbeat\x18\x05 \x01(\x0b\x32\'.temporal.api.worker.v1.WorkerHeartbeat"\x18\n\x16ShutdownWorkerResponse"\xe9\x01\n\x14QueryWorkflowRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x33\n\x05query\x18\x03 \x01(\x0b\x32$.temporal.api.query.v1.WorkflowQuery\x12K\n\x16query_reject_condition\x18\x04 \x01(\x0e\x32+.temporal.api.enums.v1.QueryRejectCondition"\x8d\x01\n\x15QueryWorkflowResponse\x12\x36\n\x0cquery_result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12<\n\x0equery_rejected\x18\x02 \x01(\x0b\x32$.temporal.api.query.v1.QueryRejected"s\n DescribeWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\x99\x05\n!DescribeWorkflowExecutionResponse\x12K\n\x10\x65xecution_config\x18\x01 \x01(\x0b\x32\x31.temporal.api.workflow.v1.WorkflowExecutionConfig\x12P\n\x17workflow_execution_info\x18\x02 \x01(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12I\n\x12pending_activities\x18\x03 \x03(\x0b\x32-.temporal.api.workflow.v1.PendingActivityInfo\x12M\n\x10pending_children\x18\x04 \x03(\x0b\x32\x33.temporal.api.workflow.v1.PendingChildExecutionInfo\x12P\n\x15pending_workflow_task\x18\x05 \x01(\x0b\x32\x31.temporal.api.workflow.v1.PendingWorkflowTaskInfo\x12\x39\n\tcallbacks\x18\x06 \x03(\x0b\x32&.temporal.api.workflow.v1.CallbackInfo\x12U\n\x18pending_nexus_operations\x18\x07 \x03(\x0b\x32\x33.temporal.api.workflow.v1.PendingNexusOperationInfo\x12W\n\x16workflow_extended_info\x18\x08 \x01(\x0b\x32\x37.temporal.api.workflow.v1.WorkflowExecutionExtendedInfo"\x90\x04\n\x18\x44\x65scribeTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12=\n\x0ftask_queue_type\x18\x03 \x01(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12\x14\n\x0creport_stats\x18\x08 \x01(\x08\x12\x15\n\rreport_config\x18\x0b \x01(\x08\x12%\n\x19include_task_queue_status\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x42\n\x08\x61pi_mode\x18\x05 \x01(\x0e\x32,.temporal.api.enums.v1.DescribeTaskQueueModeB\x02\x18\x01\x12J\n\x08versions\x18\x06 \x01(\x0b\x32\x34.temporal.api.taskqueue.v1.TaskQueueVersionSelectionB\x02\x18\x01\x12\x42\n\x10task_queue_types\x18\x07 \x03(\x0e\x32$.temporal.api.enums.v1.TaskQueueTypeB\x02\x18\x01\x12\x1a\n\x0ereport_pollers\x18\t \x01(\x08\x42\x02\x18\x01\x12$\n\x18report_task_reachability\x18\n \x01(\x08\x42\x02\x18\x01"\xec\x07\n\x19\x44\x65scribeTaskQueueResponse\x12\x36\n\x07pollers\x18\x01 \x03(\x0b\x32%.temporal.api.taskqueue.v1.PollerInfo\x12\x38\n\x05stats\x18\x05 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats\x12q\n\x15stats_by_priority_key\x18\x08 \x03(\x0b\x32R.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.StatsByPriorityKeyEntry\x12K\n\x0fversioning_info\x18\x04 \x01(\x0b\x32\x32.temporal.api.taskqueue.v1.TaskQueueVersioningInfo\x12:\n\x06\x63onfig\x18\x06 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueConfig\x12k\n\x14\x65\x66\x66\x65\x63tive_rate_limit\x18\x07 \x01(\x0b\x32M.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.EffectiveRateLimit\x12I\n\x11task_queue_status\x18\x02 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueStatusB\x02\x18\x01\x12g\n\rversions_info\x18\x03 \x03(\x0b\x32L.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.VersionsInfoEntryB\x02\x18\x01\x1a\x64\n\x17StatsByPriorityKeyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats:\x02\x38\x01\x1at\n\x12\x45\x66\x66\x65\x63tiveRateLimit\x12\x1b\n\x13requests_per_second\x18\x01 \x01(\x02\x12\x41\n\x11rate_limit_source\x18\x02 \x01(\x0e\x32&.temporal.api.enums.v1.RateLimitSource\x1a\x64\n\x11VersionsInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.temporal.api.taskqueue.v1.TaskQueueVersionInfo:\x02\x38\x01"\x17\n\x15GetClusterInfoRequest"\xd1\x03\n\x16GetClusterInfoResponse\x12h\n\x11supported_clients\x18\x01 \x03(\x0b\x32M.temporal.api.workflowservice.v1.GetClusterInfoResponse.SupportedClientsEntry\x12\x16\n\x0eserver_version\x18\x02 \x01(\t\x12\x12\n\ncluster_id\x18\x03 \x01(\t\x12:\n\x0cversion_info\x18\x04 \x01(\x0b\x32$.temporal.api.version.v1.VersionInfo\x12\x14\n\x0c\x63luster_name\x18\x05 \x01(\t\x12\x1b\n\x13history_shard_count\x18\x06 \x01(\x05\x12\x19\n\x11persistence_store\x18\x07 \x01(\t\x12\x18\n\x10visibility_store\x18\x08 \x01(\t\x12 \n\x18initial_failover_version\x18\t \x01(\x03\x12"\n\x1a\x66\x61ilover_version_increment\x18\n \x01(\x03\x1a\x37\n\x15SupportedClientsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x16\n\x14GetSystemInfoRequest"\xf4\x03\n\x15GetSystemInfoResponse\x12\x16\n\x0eserver_version\x18\x01 \x01(\t\x12Y\n\x0c\x63\x61pabilities\x18\x02 \x01(\x0b\x32\x43.temporal.api.workflowservice.v1.GetSystemInfoResponse.Capabilities\x1a\xe7\x02\n\x0c\x43\x61pabilities\x12\x1f\n\x17signal_and_query_header\x18\x01 \x01(\x08\x12&\n\x1einternal_error_differentiation\x18\x02 \x01(\x08\x12*\n"activity_failure_include_heartbeat\x18\x03 \x01(\x08\x12\x1a\n\x12supports_schedules\x18\x04 \x01(\x08\x12"\n\x1a\x65ncoded_failure_attributes\x18\x05 \x01(\x08\x12!\n\x19\x62uild_id_based_versioning\x18\x06 \x01(\x08\x12\x13\n\x0bupsert_memo\x18\x07 \x01(\x08\x12\x1c\n\x14\x65\x61ger_workflow_start\x18\x08 \x01(\x08\x12\x14\n\x0csdk_metadata\x18\t \x01(\x08\x12\'\n\x1f\x63ount_group_by_execution_status\x18\n \x01(\x08\x12\r\n\x05nexus\x18\x0b \x01(\x08"m\n\x1eListTaskQueuePartitionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue"\xdf\x01\n\x1fListTaskQueuePartitionsResponse\x12]\n\x1e\x61\x63tivity_task_queue_partitions\x18\x01 \x03(\x0b\x32\x35.temporal.api.taskqueue.v1.TaskQueuePartitionMetadata\x12]\n\x1eworkflow_task_queue_partitions\x18\x02 \x03(\x0b\x32\x35.temporal.api.taskqueue.v1.TaskQueuePartitionMetadata"\xcc\x02\n\x15\x43reateScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x34\n\x08schedule\x18\x03 \x01(\x0b\x32".temporal.api.schedule.v1.Schedule\x12>\n\rinitial_patch\x18\x04 \x01(\x0b\x32\'.temporal.api.schedule.v1.SchedulePatch\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12*\n\x04memo\x18\x07 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x08 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes"0\n\x16\x43reateScheduleResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c"A\n\x17\x44\x65scribeScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t"\x8f\x02\n\x18\x44\x65scribeScheduleResponse\x12\x34\n\x08schedule\x18\x01 \x01(\x0b\x32".temporal.api.schedule.v1.Schedule\x12\x34\n\x04info\x18\x02 \x01(\x0b\x32&.temporal.api.schedule.v1.ScheduleInfo\x12*\n\x04memo\x18\x03 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x04 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x16\n\x0e\x63onflict_token\x18\x05 \x01(\x0c"\xf8\x01\n\x15UpdateScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x34\n\x08schedule\x18\x03 \x01(\x0b\x32".temporal.api.schedule.v1.Schedule\x12\x16\n\x0e\x63onflict_token\x18\x04 \x01(\x0c\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12\x43\n\x11search_attributes\x18\x07 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes"\x18\n\x16UpdateScheduleResponse"\x9c\x01\n\x14PatchScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x36\n\x05patch\x18\x03 \x01(\x0b\x32\'.temporal.api.schedule.v1.SchedulePatch\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x12\n\nrequest_id\x18\x05 \x01(\t"\x17\n\x15PatchScheduleResponse"\xa8\x01\n ListScheduleMatchingTimesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"S\n!ListScheduleMatchingTimesResponse\x12.\n\nstart_time\x18\x01 \x03(\x0b\x32\x1a.google.protobuf.Timestamp"Q\n\x15\x44\x65leteScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t"\x18\n\x16\x44\x65leteScheduleResponse"l\n\x14ListSchedulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11maximum_page_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"p\n\x15ListSchedulesResponse\x12>\n\tschedules\x18\x01 \x03(\x0b\x32+.temporal.api.schedule.v1.ScheduleListEntry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\x86\x05\n\'UpdateWorkerBuildIdCompatibilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12-\n#add_new_build_id_in_new_default_set\x18\x03 \x01(\tH\x00\x12\x87\x01\n\x1b\x61\x64\x64_new_compatible_build_id\x18\x04 \x01(\x0b\x32`.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest.AddNewCompatibleVersionH\x00\x12!\n\x17promote_set_by_build_id\x18\x05 \x01(\tH\x00\x12%\n\x1bpromote_build_id_within_set\x18\x06 \x01(\tH\x00\x12h\n\nmerge_sets\x18\x07 \x01(\x0b\x32R.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest.MergeSetsH\x00\x1ao\n\x17\x41\x64\x64NewCompatibleVersion\x12\x14\n\x0cnew_build_id\x18\x01 \x01(\t\x12$\n\x1c\x65xisting_compatible_build_id\x18\x02 \x01(\t\x12\x18\n\x10make_set_default\x18\x03 \x01(\x08\x1aI\n\tMergeSets\x12\x1c\n\x14primary_set_build_id\x18\x01 \x01(\t\x12\x1e\n\x16secondary_set_build_id\x18\x02 \x01(\tB\x0b\n\toperation"@\n(UpdateWorkerBuildIdCompatibilityResponseJ\x04\x08\x01\x10\x02R\x0eversion_set_id"_\n$GetWorkerBuildIdCompatibilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x10\n\x08max_sets\x18\x03 \x01(\x05"t\n%GetWorkerBuildIdCompatibilityResponse\x12K\n\x12major_version_sets\x18\x01 \x03(\x0b\x32/.temporal.api.taskqueue.v1.CompatibleVersionSet"\xb5\r\n"UpdateWorkerVersioningRulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x16\n\x0e\x63onflict_token\x18\x03 \x01(\x0c\x12\x81\x01\n\x16insert_assignment_rule\x18\x04 \x01(\x0b\x32_.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.InsertBuildIdAssignmentRuleH\x00\x12\x83\x01\n\x17replace_assignment_rule\x18\x05 \x01(\x0b\x32`.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.ReplaceBuildIdAssignmentRuleH\x00\x12\x81\x01\n\x16\x64\x65lete_assignment_rule\x18\x06 \x01(\x0b\x32_.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.DeleteBuildIdAssignmentRuleH\x00\x12\x8c\x01\n\x1c\x61\x64\x64_compatible_redirect_rule\x18\x07 \x01(\x0b\x32\x64.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.AddCompatibleBuildIdRedirectRuleH\x00\x12\x94\x01\n replace_compatible_redirect_rule\x18\x08 \x01(\x0b\x32h.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.ReplaceCompatibleBuildIdRedirectRuleH\x00\x12\x92\x01\n\x1f\x64\x65lete_compatible_redirect_rule\x18\t \x01(\x0b\x32g.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.DeleteCompatibleBuildIdRedirectRuleH\x00\x12l\n\x0f\x63ommit_build_id\x18\n \x01(\x0b\x32Q.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.CommitBuildIdH\x00\x1aq\n\x1bInsertBuildIdAssignmentRule\x12\x12\n\nrule_index\x18\x01 \x01(\x05\x12>\n\x04rule\x18\x02 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.BuildIdAssignmentRule\x1a\x81\x01\n\x1cReplaceBuildIdAssignmentRule\x12\x12\n\nrule_index\x18\x01 \x01(\x05\x12>\n\x04rule\x18\x02 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.BuildIdAssignmentRule\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\x1a@\n\x1b\x44\x65leteBuildIdAssignmentRule\x12\x12\n\nrule_index\x18\x01 \x01(\x05\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x1aj\n AddCompatibleBuildIdRedirectRule\x12\x46\n\x04rule\x18\x01 \x01(\x0b\x32\x38.temporal.api.taskqueue.v1.CompatibleBuildIdRedirectRule\x1an\n$ReplaceCompatibleBuildIdRedirectRule\x12\x46\n\x04rule\x18\x01 \x01(\x0b\x32\x38.temporal.api.taskqueue.v1.CompatibleBuildIdRedirectRule\x1a>\n#DeleteCompatibleBuildIdRedirectRule\x12\x17\n\x0fsource_build_id\x18\x01 \x01(\t\x1a\x37\n\rCommitBuildId\x12\x17\n\x0ftarget_build_id\x18\x01 \x01(\t\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x42\x0b\n\toperation"\xfc\x01\n#UpdateWorkerVersioningRulesResponse\x12U\n\x10\x61ssignment_rules\x18\x01 \x03(\x0b\x32;.temporal.api.taskqueue.v1.TimestampedBuildIdAssignmentRule\x12\x66\n\x19\x63ompatible_redirect_rules\x18\x02 \x03(\x0b\x32\x43.temporal.api.taskqueue.v1.TimestampedCompatibleBuildIdRedirectRule\x12\x16\n\x0e\x63onflict_token\x18\x03 \x01(\x0c"H\n\x1fGetWorkerVersioningRulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t"\xf9\x01\n GetWorkerVersioningRulesResponse\x12U\n\x10\x61ssignment_rules\x18\x01 \x03(\x0b\x32;.temporal.api.taskqueue.v1.TimestampedBuildIdAssignmentRule\x12\x66\n\x19\x63ompatible_redirect_rules\x18\x02 \x03(\x0b\x32\x43.temporal.api.taskqueue.v1.TimestampedCompatibleBuildIdRedirectRule\x12\x16\n\x0e\x63onflict_token\x18\x03 \x01(\x0c"\x9c\x01\n GetWorkerTaskReachabilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tbuild_ids\x18\x02 \x03(\t\x12\x13\n\x0btask_queues\x18\x03 \x03(\t\x12=\n\x0creachability\x18\x04 \x01(\x0e\x32\'.temporal.api.enums.v1.TaskReachability"r\n!GetWorkerTaskReachabilityResponse\x12M\n\x15\x62uild_id_reachability\x18\x01 \x03(\x0b\x32..temporal.api.taskqueue.v1.BuildIdReachability"\x85\x02\n\x1eUpdateWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1e\n\x16\x66irst_execution_run_id\x18\x03 \x01(\t\x12\x37\n\x0bwait_policy\x18\x04 \x01(\x0b\x32".temporal.api.update.v1.WaitPolicy\x12\x30\n\x07request\x18\x05 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request"\xd7\x01\n\x1fUpdateWorkflowExecutionResponse\x12\x35\n\nupdate_ref\x18\x01 \x01(\x0b\x32!.temporal.api.update.v1.UpdateRef\x12\x30\n\x07outcome\x18\x02 \x01(\x0b\x32\x1f.temporal.api.update.v1.Outcome\x12K\n\x05stage\x18\x03 \x01(\x0e\x32<.temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage"\xf4\x07\n\x1aStartBatchOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x18\n\x10visibility_query\x18\x02 \x01(\t\x12\x0e\n\x06job_id\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12=\n\nexecutions\x18\x05 \x03(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12!\n\x19max_operations_per_second\x18\x06 \x01(\x02\x12Q\n\x15termination_operation\x18\n \x01(\x0b\x32\x30.temporal.api.batch.v1.BatchOperationTerminationH\x00\x12G\n\x10signal_operation\x18\x0b \x01(\x0b\x32+.temporal.api.batch.v1.BatchOperationSignalH\x00\x12S\n\x16\x63\x61ncellation_operation\x18\x0c \x01(\x0b\x32\x31.temporal.api.batch.v1.BatchOperationCancellationH\x00\x12K\n\x12\x64\x65letion_operation\x18\r \x01(\x0b\x32-.temporal.api.batch.v1.BatchOperationDeletionH\x00\x12\x45\n\x0freset_operation\x18\x0e \x01(\x0b\x32*.temporal.api.batch.v1.BatchOperationResetH\x00\x12p\n!update_workflow_options_operation\x18\x0f \x01(\x0b\x32\x43.temporal.api.batch.v1.BatchOperationUpdateWorkflowExecutionOptionsH\x00\x12^\n\x1cunpause_activities_operation\x18\x10 \x01(\x0b\x32\x36.temporal.api.batch.v1.BatchOperationUnpauseActivitiesH\x00\x12Z\n\x1areset_activities_operation\x18\x11 \x01(\x0b\x32\x34.temporal.api.batch.v1.BatchOperationResetActivitiesH\x00\x12g\n!update_activity_options_operation\x18\x12 \x01(\x0b\x32:.temporal.api.batch.v1.BatchOperationUpdateActivityOptionsH\x00\x42\x0b\n\toperation"\x1d\n\x1bStartBatchOperationResponse"`\n\x19StopBatchOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t"\x1c\n\x1aStopBatchOperationResponse"B\n\x1d\x44\x65scribeBatchOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t"\x92\x03\n\x1e\x44\x65scribeBatchOperationResponse\x12\x41\n\x0eoperation_type\x18\x01 \x01(\x0e\x32).temporal.api.enums.v1.BatchOperationType\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x39\n\x05state\x18\x03 \x01(\x0e\x32*.temporal.api.enums.v1.BatchOperationState\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nclose_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1d\n\x15total_operation_count\x18\x06 \x01(\x03\x12 \n\x18\x63omplete_operation_count\x18\x07 \x01(\x03\x12\x1f\n\x17\x66\x61ilure_operation_count\x18\x08 \x01(\x03\x12\x10\n\x08identity\x18\t \x01(\t\x12\x0e\n\x06reason\x18\n \x01(\t"[\n\x1aListBatchOperationsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c"y\n\x1bListBatchOperationsResponse\x12\x41\n\x0eoperation_info\x18\x01 \x03(\x0b\x32).temporal.api.batch.v1.BatchOperationInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\xb9\x01\n"PollWorkflowExecutionUpdateRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x35\n\nupdate_ref\x18\x02 \x01(\x0b\x32!.temporal.api.update.v1.UpdateRef\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x37\n\x0bwait_policy\x18\x04 \x01(\x0b\x32".temporal.api.update.v1.WaitPolicy"\xdb\x01\n#PollWorkflowExecutionUpdateResponse\x12\x30\n\x07outcome\x18\x01 \x01(\x0b\x32\x1f.temporal.api.update.v1.Outcome\x12K\n\x05stage\x18\x02 \x01(\x0e\x32<.temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage\x12\x35\n\nupdate_ref\x18\x03 \x01(\x0b\x32!.temporal.api.update.v1.UpdateRef"\xea\x02\n\x19PollNexusTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x38\n\ntask_queue\x18\x03 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12Z\n\x1bworker_version_capabilities\x18\x04 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilitiesB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x06 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions\x12\x41\n\x10worker_heartbeat\x18\x07 \x03(\x0b\x32\'.temporal.api.worker.v1.WorkerHeartbeat"\xb4\x01\n\x1aPollNexusTaskQueueResponse\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12/\n\x07request\x18\x02 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Request\x12Q\n\x17poller_scaling_decision\x18\x03 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.PollerScalingDecision"\x8e\x01\n RespondNexusTaskCompletedRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntask_token\x18\x03 \x01(\x0c\x12\x31\n\x08response\x18\x04 \x01(\x0b\x32\x1f.temporal.api.nexus.v1.Response"#\n!RespondNexusTaskCompletedResponse"\x8c\x01\n\x1dRespondNexusTaskFailedRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntask_token\x18\x03 \x01(\x0c\x12\x32\n\x05\x65rror\x18\x04 \x01(\x0b\x32#.temporal.api.nexus.v1.HandlerError" \n\x1eRespondNexusTaskFailedResponse"\xdf\x02\n\x1c\x45xecuteMultiOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12[\n\noperations\x18\x02 \x03(\x0b\x32G.temporal.api.workflowservice.v1.ExecuteMultiOperationRequest.Operation\x1a\xce\x01\n\tOperation\x12X\n\x0estart_workflow\x18\x01 \x01(\x0b\x32>.temporal.api.workflowservice.v1.StartWorkflowExecutionRequestH\x00\x12Z\n\x0fupdate_workflow\x18\x02 \x01(\x0b\x32?.temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequestH\x00\x42\x0b\n\toperation"\xcc\x02\n\x1d\x45xecuteMultiOperationResponse\x12Z\n\tresponses\x18\x01 \x03(\x0b\x32G.temporal.api.workflowservice.v1.ExecuteMultiOperationResponse.Response\x1a\xce\x01\n\x08Response\x12Y\n\x0estart_workflow\x18\x01 \x01(\x0b\x32?.temporal.api.workflowservice.v1.StartWorkflowExecutionResponseH\x00\x12[\n\x0fupdate_workflow\x18\x02 \x01(\x0b\x32@.temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponseH\x00\x42\n\n\x08response"\xd0\x02\n\x1cUpdateActivityOptionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x43\n\x10\x61\x63tivity_options\x18\x04 \x01(\x0b\x32).temporal.api.activity.v1.ActivityOptions\x12/\n\x0bupdate_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x0c\n\x02id\x18\x06 \x01(\tH\x00\x12\x0e\n\x04type\x18\x07 \x01(\tH\x00\x12\x13\n\tmatch_all\x18\t \x01(\x08H\x00\x12\x18\n\x10restore_original\x18\x08 \x01(\x08\x42\n\n\x08\x61\x63tivity"d\n\x1dUpdateActivityOptionsResponse\x12\x43\n\x10\x61\x63tivity_options\x18\x01 \x01(\x0b\x32).temporal.api.activity.v1.ActivityOptions"\xb3\x01\n\x14PauseActivityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x0e\n\x04type\x18\x05 \x01(\tH\x00\x12\x0e\n\x06reason\x18\x06 \x01(\tB\n\n\x08\x61\x63tivity"\x17\n\x15PauseActivityResponse"\x98\x02\n\x16UnpauseActivityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x0e\n\x04type\x18\x05 \x01(\tH\x00\x12\x15\n\x0bunpause_all\x18\x06 \x01(\x08H\x00\x12\x16\n\x0ereset_attempts\x18\x07 \x01(\x08\x12\x17\n\x0freset_heartbeat\x18\x08 \x01(\x08\x12)\n\x06jitter\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\n\n\x08\x61\x63tivity"\x19\n\x17UnpauseActivityResponse"\xb3\x02\n\x14ResetActivityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x0e\n\x04type\x18\x05 \x01(\tH\x00\x12\x13\n\tmatch_all\x18\n \x01(\x08H\x00\x12\x17\n\x0freset_heartbeat\x18\x06 \x01(\x08\x12\x13\n\x0bkeep_paused\x18\x07 \x01(\x08\x12)\n\x06jitter\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12 \n\x18restore_original_options\x18\t \x01(\x08\x42\n\n\x08\x61\x63tivity"\x17\n\x15ResetActivityResponse"\x9c\x02\n%UpdateWorkflowExecutionOptionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12V\n\x1aworkflow_execution_options\x18\x03 \x01(\x0b\x32\x32.temporal.api.workflow.v1.WorkflowExecutionOptions\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x10\n\x08identity\x18\x05 \x01(\t"\x80\x01\n&UpdateWorkflowExecutionOptionsResponse\x12V\n\x1aworkflow_execution_options\x18\x01 \x01(\x0b\x32\x32.temporal.api.workflow.v1.WorkflowExecutionOptions"j\n\x19\x44\x65scribeDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12:\n\ndeployment\x18\x02 \x01(\x0b\x32&.temporal.api.deployment.v1.Deployment"a\n\x1a\x44\x65scribeDeploymentResponse\x12\x43\n\x0f\x64\x65ployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo"\xc2\x01\n&DescribeWorkerDeploymentVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x07version\x18\x02 \x01(\tB\x02\x18\x01\x12O\n\x12\x64\x65ployment_version\x18\x03 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12\x1f\n\x17report_task_queue_stats\x18\x04 \x01(\x08"\x8c\x05\n\'DescribeWorkerDeploymentVersionResponse\x12_\n\x1eworker_deployment_version_info\x18\x01 \x01(\x0b\x32\x37.temporal.api.deployment.v1.WorkerDeploymentVersionInfo\x12v\n\x13version_task_queues\x18\x02 \x03(\x0b\x32Y.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionResponse.VersionTaskQueue\x1a\x87\x03\n\x10VersionTaskQueue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x32\n\x04type\x18\x02 \x01(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12\x38\n\x05stats\x18\x03 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats\x12\x90\x01\n\x15stats_by_priority_key\x18\x04 \x03(\x0b\x32q.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionResponse.VersionTaskQueue.StatsByPriorityKeyEntry\x1a\x64\n\x17StatsByPriorityKeyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats:\x02\x38\x01"M\n\x1f\x44\x65scribeWorkerDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t"\x8c\x01\n DescribeWorkerDeploymentResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12P\n\x16worker_deployment_info\x18\x02 \x01(\x0b\x32\x30.temporal.api.deployment.v1.WorkerDeploymentInfo"l\n\x16ListDeploymentsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x13\n\x0bseries_name\x18\x04 \x01(\t"w\n\x17ListDeploymentsResponse\x12\x17\n\x0fnext_page_token\x18\x01 \x01(\x0c\x12\x43\n\x0b\x64\x65ployments\x18\x02 \x03(\x0b\x32..temporal.api.deployment.v1.DeploymentListInfo"\xcd\x01\n\x1bSetCurrentDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12:\n\ndeployment\x18\x02 \x01(\x0b\x32&.temporal.api.deployment.v1.Deployment\x12\x10\n\x08identity\x18\x03 \x01(\t\x12M\n\x0fupdate_metadata\x18\x04 \x01(\x0b\x32\x34.temporal.api.deployment.v1.UpdateDeploymentMetadata"\xb9\x01\n\x1cSetCurrentDeploymentResponse\x12K\n\x17\x63urrent_deployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo\x12L\n\x18previous_deployment_info\x18\x02 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo"\xe5\x01\n(SetWorkerDeploymentCurrentVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x13\n\x07version\x18\x03 \x01(\tB\x02\x18\x01\x12\x10\n\x08\x62uild_id\x18\x07 \x01(\t\x12\x16\n\x0e\x63onflict_token\x18\x04 \x01(\x0c\x12\x10\n\x08identity\x18\x05 \x01(\t\x12"\n\x1aignore_missing_task_queues\x18\x06 \x01(\x08\x12\x18\n\x10\x61llow_no_pollers\x18\t \x01(\x08"\xbf\x01\n)SetWorkerDeploymentCurrentVersionResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12\x1c\n\x10previous_version\x18\x02 \x01(\tB\x02\x18\x01\x12\\\n\x1bprevious_deployment_version\x18\x03 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersionB\x02\x18\x01"\xf9\x01\n(SetWorkerDeploymentRampingVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x13\n\x07version\x18\x03 \x01(\tB\x02\x18\x01\x12\x10\n\x08\x62uild_id\x18\x08 \x01(\t\x12\x12\n\npercentage\x18\x04 \x01(\x02\x12\x16\n\x0e\x63onflict_token\x18\x05 \x01(\x0c\x12\x10\n\x08identity\x18\x06 \x01(\t\x12"\n\x1aignore_missing_task_queues\x18\x07 \x01(\x08\x12\x18\n\x10\x61llow_no_pollers\x18\n \x01(\x08"\xe0\x01\n)SetWorkerDeploymentRampingVersionResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12\x1c\n\x10previous_version\x18\x02 \x01(\tB\x02\x18\x01\x12\\\n\x1bprevious_deployment_version\x18\x04 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersionB\x02\x18\x01\x12\x1f\n\x13previous_percentage\x18\x03 \x01(\x02\x42\x02\x18\x01"]\n\x1cListWorkerDeploymentsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c"\x9f\x05\n\x1dListWorkerDeploymentsResponse\x12\x17\n\x0fnext_page_token\x18\x01 \x01(\x0c\x12r\n\x12worker_deployments\x18\x02 \x03(\x0b\x32V.temporal.api.workflowservice.v1.ListWorkerDeploymentsResponse.WorkerDeploymentSummary\x1a\xf0\x03\n\x17WorkerDeploymentSummary\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x41\n\x0erouting_config\x18\x03 \x01(\x0b\x32).temporal.api.deployment.v1.RoutingConfig\x12o\n\x16latest_version_summary\x18\x04 \x01(\x0b\x32O.temporal.api.deployment.v1.WorkerDeploymentInfo.WorkerDeploymentVersionSummary\x12p\n\x17\x63urrent_version_summary\x18\x05 \x01(\x0b\x32O.temporal.api.deployment.v1.WorkerDeploymentInfo.WorkerDeploymentVersionSummary\x12p\n\x17ramping_version_summary\x18\x06 \x01(\x0b\x32O.temporal.api.deployment.v1.WorkerDeploymentInfo.WorkerDeploymentVersionSummary"\xc8\x01\n$DeleteWorkerDeploymentVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x07version\x18\x02 \x01(\tB\x02\x18\x01\x12O\n\x12\x64\x65ployment_version\x18\x05 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12\x15\n\rskip_drainage\x18\x03 \x01(\x08\x12\x10\n\x08identity\x18\x04 \x01(\t"\'\n%DeleteWorkerDeploymentVersionResponse"]\n\x1d\x44\x65leteWorkerDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t" \n\x1e\x44\x65leteWorkerDeploymentResponse"\xa2\x03\n,UpdateWorkerDeploymentVersionMetadataRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x07version\x18\x02 \x01(\tB\x02\x18\x01\x12O\n\x12\x64\x65ployment_version\x18\x05 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12x\n\x0eupsert_entries\x18\x03 \x03(\x0b\x32`.temporal.api.workflowservice.v1.UpdateWorkerDeploymentVersionMetadataRequest.UpsertEntriesEntry\x12\x16\n\x0eremove_entries\x18\x04 \x03(\t\x12\x10\n\x08identity\x18\x06 \x01(\t\x1aU\n\x12UpsertEntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"n\n-UpdateWorkerDeploymentVersionMetadataResponse\x12=\n\x08metadata\x18\x01 \x01(\x0b\x32+.temporal.api.deployment.v1.VersionMetadata"\xbd\x01\n!SetWorkerDeploymentManagerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x1a\n\x10manager_identity\x18\x03 \x01(\tH\x00\x12\x0e\n\x04self\x18\x04 \x01(\x08H\x00\x12\x16\n\x0e\x63onflict_token\x18\x05 \x01(\x0c\x12\x10\n\x08identity\x18\x06 \x01(\tB\x16\n\x14new_manager_identity"c\n"SetWorkerDeploymentManagerResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12%\n\x19previous_manager_identity\x18\x02 \x01(\tB\x02\x18\x01"E\n\x1bGetCurrentDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bseries_name\x18\x02 \x01(\t"k\n\x1cGetCurrentDeploymentResponse\x12K\n\x17\x63urrent_deployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo"q\n GetDeploymentReachabilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12:\n\ndeployment\x18\x02 \x01(\x0b\x32&.temporal.api.deployment.v1.Deployment"\xe3\x01\n!GetDeploymentReachabilityResponse\x12\x43\n\x0f\x64\x65ployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo\x12\x43\n\x0creachability\x18\x02 \x01(\x0e\x32-.temporal.api.enums.v1.DeploymentReachability\x12\x34\n\x10last_update_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\xb4\x01\n\x19\x43reateWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x35\n\x04spec\x18\x02 \x01(\x0b\x32\'.temporal.api.rules.v1.WorkflowRuleSpec\x12\x12\n\nforce_scan\x18\x03 \x01(\x08\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t"_\n\x1a\x43reateWorkflowRuleResponse\x12\x31\n\x04rule\x18\x01 \x01(\x0b\x32#.temporal.api.rules.v1.WorkflowRule\x12\x0e\n\x06job_id\x18\x02 \x01(\t"A\n\x1b\x44\x65scribeWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0f\n\x07rule_id\x18\x02 \x01(\t"Q\n\x1c\x44\x65scribeWorkflowRuleResponse\x12\x31\n\x04rule\x18\x01 \x01(\x0b\x32#.temporal.api.rules.v1.WorkflowRule"?\n\x19\x44\x65leteWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0f\n\x07rule_id\x18\x02 \x01(\t"\x1c\n\x1a\x44\x65leteWorkflowRuleResponse"F\n\x18ListWorkflowRulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"h\n\x19ListWorkflowRulesResponse\x12\x32\n\x05rules\x18\x01 \x03(\x0b\x32#.temporal.api.rules.v1.WorkflowRule\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\xce\x01\n\x1aTriggerWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x37\n\x04spec\x18\x05 \x01(\x0b\x32\'.temporal.api.rules.v1.WorkflowRuleSpecH\x00\x12\x10\n\x08identity\x18\x03 \x01(\tB\x06\n\x04rule".\n\x1bTriggerWorkflowRuleResponse\x12\x0f\n\x07\x61pplied\x18\x01 \x01(\x08"\x86\x01\n\x1cRecordWorkerHeartbeatRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x41\n\x10worker_heartbeat\x18\x03 \x03(\x0b\x32\'.temporal.api.worker.v1.WorkerHeartbeat"\x1f\n\x1dRecordWorkerHeartbeatResponse"b\n\x12ListWorkersRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"h\n\x13ListWorkersResponse\x12\x38\n\x0cworkers_info\x18\x01 \x03(\x0b\x32".temporal.api.worker.v1.WorkerInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\xd5\x05\n\x1cUpdateTaskQueueConfigRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntask_queue\x18\x03 \x01(\t\x12=\n\x0ftask_queue_type\x18\x04 \x01(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12n\n\x17update_queue_rate_limit\x18\x05 \x01(\x0b\x32M.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest.RateLimitUpdate\x12}\n&update_fairness_key_rate_limit_default\x18\x06 \x01(\x0b\x32M.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest.RateLimitUpdate\x12\x84\x01\n\x1dset_fairness_weight_overrides\x18\x07 \x03(\x0b\x32].temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest.SetFairnessWeightOverridesEntry\x12\'\n\x1funset_fairness_weight_overrides\x18\x08 \x03(\t\x1a[\n\x0fRateLimitUpdate\x12\x38\n\nrate_limit\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.RateLimit\x12\x0e\n\x06reason\x18\x02 \x01(\t\x1a\x41\n\x1fSetFairnessWeightOverridesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01"[\n\x1dUpdateTaskQueueConfigResponse\x12:\n\x06\x63onfig\x18\x01 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueConfig"\x89\x01\n\x18\x46\x65tchWorkerConfigRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x38\n\x08selector\x18\x06 \x01(\x0b\x32&.temporal.api.common.v1.WorkerSelector"U\n\x19\x46\x65tchWorkerConfigResponse\x12\x38\n\rworker_config\x18\x01 \x01(\x0b\x32!.temporal.api.sdk.v1.WorkerConfig"\xf5\x01\n\x19UpdateWorkerConfigRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x38\n\rworker_config\x18\x04 \x01(\x0b\x32!.temporal.api.sdk.v1.WorkerConfig\x12/\n\x0bupdate_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x38\n\x08selector\x18\x06 \x01(\x0b\x32&.temporal.api.common.v1.WorkerSelector"d\n\x1aUpdateWorkerConfigResponse\x12:\n\rworker_config\x18\x01 \x01(\x0b\x32!.temporal.api.sdk.v1.WorkerConfigH\x00\x42\n\n\x08response"G\n\x15\x44\x65scribeWorkerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x1b\n\x13worker_instance_key\x18\x02 \x01(\t"Q\n\x16\x44\x65scribeWorkerResponse\x12\x37\n\x0bworker_info\x18\x01 \x01(\x0b\x32".temporal.api.worker.v1.WorkerInfo"\x8d\x01\n\x1dPauseWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x0e\n\x06reason\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t" \n\x1ePauseWorkflowExecutionResponse"\x8f\x01\n\x1fUnpauseWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x0e\n\x06reason\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t""\n UnpauseWorkflowExecutionResponse"\xb4\x07\n\x1dStartActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12;\n\ractivity_type\x18\x05 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12\x38\n\ntask_queue\x18\x06 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12<\n\x19schedule_to_close_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12/\n\x05input\x18\x0c \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x45\n\x0fid_reuse_policy\x18\r \x01(\x0e\x32,.temporal.api.enums.v1.ActivityIdReusePolicy\x12K\n\x12id_conflict_policy\x18\x0e \x01(\x0e\x32/.temporal.api.enums.v1.ActivityIdConflictPolicy\x12\x43\n\x11search_attributes\x18\x0f \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\x10 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x38\n\ruser_metadata\x18\x11 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12\x32\n\x08priority\x18\x12 \x01(\x0b\x32 .temporal.api.common.v1.Priority"A\n\x1eStartActivityExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x02 \x01(\x08"\xa3\x01\n DescribeActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x15\n\rinclude_input\x18\x04 \x01(\x08\x12\x17\n\x0finclude_outcome\x18\x05 \x01(\x08\x12\x17\n\x0flong_poll_token\x18\x06 \x01(\x0c"\x81\x02\n!DescribeActivityExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12=\n\x04info\x18\x02 \x01(\x0b\x32/.temporal.api.activity.v1.ActivityExecutionInfo\x12/\n\x05input\x18\x03 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x43\n\x07outcome\x18\x04 \x01(\x0b\x32\x32.temporal.api.activity.v1.ActivityExecutionOutcome\x12\x17\n\x0flong_poll_token\x18\x05 \x01(\x0c"V\n\x1cPollActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t"t\n\x1dPollActivityExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x43\n\x07outcome\x18\x02 \x01(\x0b\x32\x32.temporal.api.activity.v1.ActivityExecutionOutcome"m\n\x1dListActivityExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"\x82\x01\n\x1eListActivityExecutionsResponse\x12G\n\nexecutions\x18\x01 \x03(\x0b\x32\x33.temporal.api.activity.v1.ActivityExecutionListInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"B\n\x1e\x43ountActivityExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t"\xed\x01\n\x1f\x43ountActivityExecutionsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x61\n\x06groups\x18\x02 \x03(\x0b\x32Q.temporal.api.workflowservice.v1.CountActivityExecutionsResponse.AggregationGroup\x1aX\n\x10\x41ggregationGroup\x12\x35\n\x0cgroup_values\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\x95\x01\n%RequestCancelActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x12\n\nrequest_id\x18\x05 \x01(\t\x12\x0e\n\x06reason\x18\x06 \x01(\t"(\n&RequestCancelActivityExecutionResponse"\x91\x01\n!TerminateActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x12\n\nrequest_id\x18\x05 \x01(\t\x12\x0e\n\x06reason\x18\x06 \x01(\t"$\n"TerminateActivityExecutionResponse"X\n\x1e\x44\x65leteActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t"!\n\x1f\x44\x65leteActivityExecutionResponseB\xbe\x01\n"io.temporal.api.workflowservice.v1B\x14RequestResponseProtoP\x01Z5go.temporal.io/api/workflowservice/v1;workflowservice\xaa\x02!Temporalio.Api.WorkflowService.V1\xea\x02$Temporalio::Api::WorkflowService::V1b\x06proto3'
+ b'\n6temporal/api/workflowservice/v1/request_response.proto\x12\x1ftemporal.api.workflowservice.v1\x1a+temporal/api/enums/v1/batch_operation.proto\x1a"temporal/api/enums/v1/common.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/enums/v1/namespace.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a!temporal/api/enums/v1/query.proto\x1a!temporal/api/enums/v1/reset.proto\x1a&temporal/api/enums/v1/task_queue.proto\x1a&temporal/api/enums/v1/deployment.proto\x1a"temporal/api/enums/v1/update.proto\x1a$temporal/api/enums/v1/activity.proto\x1a&temporal/api/activity/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/history/v1/message.proto\x1a&temporal/api/workflow/v1/message.proto\x1a%temporal/api/command/v1/message.proto\x1a(temporal/api/deployment/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/filter/v1/message.proto\x1a&temporal/api/protocol/v1/message.proto\x1a\'temporal/api/namespace/v1/message.proto\x1a#temporal/api/query/v1/message.proto\x1a)temporal/api/replication/v1/message.proto\x1a#temporal/api/rules/v1/message.proto\x1a\'temporal/api/sdk/v1/worker_config.proto\x1a&temporal/api/schedule/v1/message.proto\x1a\'temporal/api/taskqueue/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a%temporal/api/version/v1/message.proto\x1a#temporal/api/batch/v1/message.proto\x1a\x30temporal/api/sdk/v1/task_complete_metadata.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a#temporal/api/nexus/v1/message.proto\x1a$temporal/api/worker/v1/message.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\x88\x05\n\x18RegisterNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x0bowner_email\x18\x03 \x01(\t\x12\x46\n#workflow_execution_retention_period\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12G\n\x08\x63lusters\x18\x05 \x03(\x0b\x32\x35.temporal.api.replication.v1.ClusterReplicationConfig\x12\x1b\n\x13\x61\x63tive_cluster_name\x18\x06 \x01(\t\x12Q\n\x04\x64\x61ta\x18\x07 \x03(\x0b\x32\x43.temporal.api.workflowservice.v1.RegisterNamespaceRequest.DataEntry\x12\x16\n\x0esecurity_token\x18\x08 \x01(\t\x12\x1b\n\x13is_global_namespace\x18\t \x01(\x08\x12\x44\n\x16history_archival_state\x18\n \x01(\x0e\x32$.temporal.api.enums.v1.ArchivalState\x12\x1c\n\x14history_archival_uri\x18\x0b \x01(\t\x12G\n\x19visibility_archival_state\x18\x0c \x01(\x0e\x32$.temporal.api.enums.v1.ArchivalState\x12\x1f\n\x17visibility_archival_uri\x18\r \x01(\t\x1a+\n\tDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x1b\n\x19RegisterNamespaceResponse"\x89\x01\n\x15ListNamespacesRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c\x12\x44\n\x10namespace_filter\x18\x03 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceFilter"\x81\x01\n\x16ListNamespacesResponse\x12N\n\nnamespaces\x18\x01 \x03(\x0b\x32:.temporal.api.workflowservice.v1.DescribeNamespaceResponse\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"9\n\x18\x44\x65scribeNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t"\xec\x02\n\x19\x44\x65scribeNamespaceResponse\x12@\n\x0enamespace_info\x18\x01 \x01(\x0b\x32(.temporal.api.namespace.v1.NamespaceInfo\x12:\n\x06\x63onfig\x18\x02 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceConfig\x12S\n\x12replication_config\x18\x03 \x01(\x0b\x32\x37.temporal.api.replication.v1.NamespaceReplicationConfig\x12\x18\n\x10\x66\x61ilover_version\x18\x04 \x01(\x03\x12\x1b\n\x13is_global_namespace\x18\x05 \x01(\x08\x12\x45\n\x10\x66\x61ilover_history\x18\x06 \x03(\x0b\x32+.temporal.api.replication.v1.FailoverStatus"\xcf\x02\n\x16UpdateNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x43\n\x0bupdate_info\x18\x02 \x01(\x0b\x32..temporal.api.namespace.v1.UpdateNamespaceInfo\x12:\n\x06\x63onfig\x18\x03 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceConfig\x12S\n\x12replication_config\x18\x04 \x01(\x0b\x32\x37.temporal.api.replication.v1.NamespaceReplicationConfig\x12\x16\n\x0esecurity_token\x18\x05 \x01(\t\x12\x19\n\x11\x64\x65lete_bad_binary\x18\x06 \x01(\t\x12\x19\n\x11promote_namespace\x18\x07 \x01(\x08"\xa3\x02\n\x17UpdateNamespaceResponse\x12@\n\x0enamespace_info\x18\x01 \x01(\x0b\x32(.temporal.api.namespace.v1.NamespaceInfo\x12:\n\x06\x63onfig\x18\x02 \x01(\x0b\x32*.temporal.api.namespace.v1.NamespaceConfig\x12S\n\x12replication_config\x18\x03 \x01(\x0b\x32\x37.temporal.api.replication.v1.NamespaceReplicationConfig\x12\x18\n\x10\x66\x61ilover_version\x18\x04 \x01(\x03\x12\x1b\n\x13is_global_namespace\x18\x05 \x01(\x08"F\n\x19\x44\x65precateNamespaceRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x16\n\x0esecurity_token\x18\x02 \x01(\t"\x1c\n\x1a\x44\x65precateNamespaceResponse"\x87\x0c\n\x1dStartWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x04 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12=\n\x1aworkflow_execution_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08identity\x18\t \x01(\t\x12\x12\n\nrequest_id\x18\n \x01(\t\x12N\n\x18workflow_id_reuse_policy\x18\x0b \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12T\n\x1bworkflow_id_conflict_policy\x18\x16 \x01(\x0e\x32/.temporal.api.enums.v1.WorkflowIdConflictPolicy\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\r \x01(\t\x12*\n\x04memo\x18\x0e \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0f \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\x10 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x1f\n\x17request_eager_execution\x18\x11 \x01(\x08\x12;\n\x11\x63ontinued_failure\x18\x12 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x13 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x37\n\x14workflow_start_delay\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12>\n\x14\x63ompletion_callbacks\x18\x15 \x03(\x0b\x32 .temporal.api.common.v1.Callback\x12\x38\n\ruser_metadata\x18\x17 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12+\n\x05links\x18\x18 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link\x12I\n\x13versioning_override\x18\x19 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12H\n\x13on_conflict_options\x18\x1a \x01(\x0b\x32+.temporal.api.workflow.v1.OnConflictOptions\x12\x32\n\x08priority\x18\x1b \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12\\\n\x1f\x65\x61ger_worker_deployment_options\x18\x1c \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"\x8a\x02\n\x1eStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x03 \x01(\x08\x12>\n\x06status\x18\x05 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowExecutionStatus\x12[\n\x13\x65\x61ger_workflow_task\x18\x02 \x01(\x0b\x32>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse\x12*\n\x04link\x18\x04 \x01(\x0b\x32\x1c.temporal.api.common.v1.Link"\xaa\x02\n"GetWorkflowExecutionHistoryRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x19\n\x11maximum_page_size\x18\x03 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x04 \x01(\x0c\x12\x16\n\x0ewait_new_event\x18\x05 \x01(\x08\x12P\n\x19history_event_filter_type\x18\x06 \x01(\x0e\x32-.temporal.api.enums.v1.HistoryEventFilterType\x12\x15\n\rskip_archival\x18\x07 \x01(\x08"\xba\x01\n#GetWorkflowExecutionHistoryResponse\x12\x31\n\x07history\x18\x01 \x01(\x0b\x32 .temporal.api.history.v1.History\x12\x35\n\x0braw_history\x18\x02 \x03(\x0b\x32 .temporal.api.common.v1.DataBlob\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x10\n\x08\x61rchived\x18\x04 \x01(\x08"\xb0\x01\n)GetWorkflowExecutionHistoryReverseRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x19\n\x11maximum_page_size\x18\x03 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x04 \x01(\x0c"x\n*GetWorkflowExecutionHistoryReverseResponse\x12\x31\n\x07history\x18\x01 \x01(\x0b\x32 .temporal.api.history.v1.History\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c"\xfc\x02\n\x1cPollWorkflowTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x1b\n\x13worker_instance_key\x18\x08 \x01(\t\x12\x1b\n\x0f\x62inary_checksum\x18\x04 \x01(\tB\x02\x18\x01\x12Z\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilitiesB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x06 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptionsJ\x04\x08\x07\x10\x08R\x10worker_heartbeat"\x91\x07\n\x1dPollWorkflowTaskQueueResponse\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12!\n\x19previous_started_event_id\x18\x04 \x01(\x03\x12\x18\n\x10started_event_id\x18\x05 \x01(\x03\x12\x0f\n\x07\x61ttempt\x18\x06 \x01(\x05\x12\x1a\n\x12\x62\x61\x63klog_count_hint\x18\x07 \x01(\x03\x12\x31\n\x07history\x18\x08 \x01(\x0b\x32 .temporal.api.history.v1.History\x12\x17\n\x0fnext_page_token\x18\t \x01(\x0c\x12\x33\n\x05query\x18\n \x01(\x0b\x32$.temporal.api.query.v1.WorkflowQuery\x12K\n\x1dworkflow_execution_task_queue\x18\x0b \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x32\n\x0escheduled_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\\\n\x07queries\x18\x0e \x03(\x0b\x32K.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse.QueriesEntry\x12\x33\n\x08messages\x18\x0f \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12Q\n\x17poller_scaling_decision\x18\x10 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.PollerScalingDecision\x1aT\n\x0cQueriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.temporal.api.query.v1.WorkflowQuery:\x02\x38\x01"\xb5\t\n#RespondWorkflowTaskCompletedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x32\n\x08\x63ommands\x18\x02 \x03(\x0b\x32 .temporal.api.command.v1.Command\x12\x10\n\x08identity\x18\x03 \x01(\t\x12O\n\x11sticky_attributes\x18\x04 \x01(\x0b\x32\x34.temporal.api.taskqueue.v1.StickyExecutionAttributes\x12 \n\x18return_new_workflow_task\x18\x05 \x01(\x08\x12&\n\x1e\x66orce_create_new_workflow_task\x18\x06 \x01(\x08\x12\x1b\n\x0f\x62inary_checksum\x18\x07 \x01(\tB\x02\x18\x01\x12m\n\rquery_results\x18\x08 \x03(\x0b\x32V.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.QueryResultsEntry\x12\x11\n\tnamespace\x18\t \x01(\t\x12L\n\x14worker_version_stamp\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12\x33\n\x08messages\x18\x0b \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12H\n\x0csdk_metadata\x18\x0c \x01(\x0b\x32\x32.temporal.api.sdk.v1.WorkflowTaskCompletedMetadata\x12\x43\n\x11metering_metadata\x18\r \x01(\x0b\x32(.temporal.api.common.v1.MeteringMetadata\x12g\n\x0c\x63\x61pabilities\x18\x0e \x01(\x0b\x32Q.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.Capabilities\x12>\n\ndeployment\x18\x0f \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12\x46\n\x13versioning_behavior\x18\x10 \x01(\x0e\x32).temporal.api.enums.v1.VersioningBehavior\x12O\n\x12\x64\x65ployment_options\x18\x11 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions\x1a_\n\x11QueryResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.temporal.api.query.v1.WorkflowQueryResult:\x02\x38\x01\x1a\x45\n\x0c\x43\x61pabilities\x12\x35\n-discard_speculative_workflow_task_with_events\x18\x01 \x01(\x08"\xf5\x01\n$RespondWorkflowTaskCompletedResponse\x12U\n\rworkflow_task\x18\x01 \x01(\x0b\x32>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse\x12V\n\x0e\x61\x63tivity_tasks\x18\x02 \x03(\x0b\x32>.temporal.api.workflowservice.v1.PollActivityTaskQueueResponse\x12\x1e\n\x16reset_history_event_id\x18\x03 \x01(\x03"\xf8\x03\n RespondWorkflowTaskFailedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12=\n\x05\x63\x61use\x18\x02 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCause\x12\x31\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x1b\n\x0f\x62inary_checksum\x18\x05 \x01(\tB\x02\x18\x01\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x33\n\x08messages\x18\x07 \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12\x46\n\x0eworker_version\x18\x08 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\t \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\n \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"#\n!RespondWorkflowTaskFailedResponse"\xaa\x03\n\x1cPollActivityTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x1b\n\x13worker_instance_key\x18\x08 \x01(\t\x12I\n\x13task_queue_metadata\x18\x04 \x01(\x0b\x32,.temporal.api.taskqueue.v1.TaskQueueMetadata\x12Z\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilitiesB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x06 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptionsJ\x04\x08\x07\x10\x08R\x10worker_heartbeat"\x88\x08\n\x1dPollActivityTaskQueueResponse\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x1a\n\x12workflow_namespace\x18\x02 \x01(\t\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x45\n\x12workflow_execution\x18\x04 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\ractivity_type\x18\x05 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12\x13\n\x0b\x61\x63tivity_id\x18\x06 \x01(\t\x12.\n\x06header\x18\x07 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12/\n\x05input\x18\x08 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12;\n\x11heartbeat_details\x18\t \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x32\n\x0escheduled_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x1e\x63urrent_attempt_scheduled_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\r \x01(\x05\x12<\n\x19schedule_to_close_timeout\x18\x0e \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\x0f \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x10 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x11 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12Q\n\x17poller_scaling_decision\x18\x12 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.PollerScalingDecision\x12\x32\n\x08priority\x18\x13 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12\x17\n\x0f\x61\x63tivity_run_id\x18\x14 \x01(\t"\x90\x01\n"RecordActivityTaskHeartbeatRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t"p\n#RecordActivityTaskHeartbeatResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x63tivity_paused\x18\x02 \x01(\x08\x12\x16\n\x0e\x61\x63tivity_reset\x18\x03 \x01(\x08"\xba\x01\n&RecordActivityTaskHeartbeatByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x06 \x01(\t"t\n\'RecordActivityTaskHeartbeatByIdResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x63tivity_paused\x18\x02 \x01(\x08\x12\x16\n\x0e\x61\x63tivity_reset\x18\x03 \x01(\x08"\xe9\x02\n#RespondActivityTaskCompletedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x30\n\x06result\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t\x12\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\x06 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x07 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"&\n$RespondActivityTaskCompletedResponse"\xba\x01\n\'RespondActivityTaskCompletedByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x30\n\x06result\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x06 \x01(\t"*\n(RespondActivityTaskCompletedByIdResponse"\xa9\x03\n RespondActivityTaskFailedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t\x12@\n\x16last_heartbeat_details\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\x07 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x08 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"W\n!RespondActivityTaskFailedResponse\x12\x32\n\x08\x66\x61ilures\x18\x01 \x03(\x0b\x32 .temporal.api.failure.v1.Failure"\xfa\x01\n$RespondActivityTaskFailedByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x06 \x01(\t\x12@\n\x16last_heartbeat_details\x18\x07 \x01(\x0b\x32 .temporal.api.common.v1.Payloads"[\n%RespondActivityTaskFailedByIdResponse\x12\x32\n\x08\x66\x61ilures\x18\x01 \x03(\x0b\x32 .temporal.api.failure.v1.Failure"\xe9\x02\n"RespondActivityTaskCanceledRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x11\n\tnamespace\x18\x04 \x01(\t\x12\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12>\n\ndeployment\x18\x06 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x07 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions"%\n#RespondActivityTaskCanceledResponse"\x8b\x02\n&RespondActivityTaskCanceledByIdRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x06 \x01(\t\x12O\n\x12\x64\x65ployment_options\x18\x07 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions")\n\'RespondActivityTaskCanceledByIdResponse"\x84\x02\n%RequestCancelWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x05 \x01(\t\x12\x0e\n\x06reason\x18\x06 \x01(\t\x12+\n\x05links\x18\x07 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link"(\n&RequestCancelWorkflowExecutionResponse"\xde\x02\n\x1eSignalWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x13\n\x0bsignal_name\x18\x03 \x01(\t\x12/\n\x05input\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12\x13\n\x07\x63ontrol\x18\x07 \x01(\tB\x02\x18\x01\x12.\n\x06header\x18\x08 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12+\n\x05links\x18\n \x03(\x0b\x32\x1c.temporal.api.common.v1.LinkJ\x04\x08\t\x10\n"!\n\x1fSignalWorkflowExecutionResponse"\xf1\t\n\'SignalWithStartWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12;\n\rworkflow_type\x18\x03 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x04 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12=\n\x1aworkflow_execution_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x10\n\x08identity\x18\t \x01(\t\x12\x12\n\nrequest_id\x18\n \x01(\t\x12N\n\x18workflow_id_reuse_policy\x18\x0b \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12T\n\x1bworkflow_id_conflict_policy\x18\x16 \x01(\x0e\x32/.temporal.api.enums.v1.WorkflowIdConflictPolicy\x12\x13\n\x0bsignal_name\x18\x0c \x01(\t\x12\x36\n\x0csignal_input\x18\r \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x13\n\x07\x63ontrol\x18\x0e \x01(\tB\x02\x18\x01\x12\x39\n\x0cretry_policy\x18\x0f \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x10 \x01(\t\x12*\n\x04memo\x18\x11 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x12 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\x13 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x37\n\x14workflow_start_delay\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\ruser_metadata\x18\x17 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12+\n\x05links\x18\x18 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link\x12I\n\x13versioning_override\x18\x19 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12\x32\n\x08priority\x18\x1a \x01(\x0b\x32 .temporal.api.common.v1.PriorityJ\x04\x08\x15\x10\x16"K\n(SignalWithStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x02 \x01(\x08"\xc1\x03\n\x1dResetWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12%\n\x1dworkflow_task_finish_event_id\x18\x04 \x01(\x03\x12\x12\n\nrequest_id\x18\x05 \x01(\t\x12G\n\x12reset_reapply_type\x18\x06 \x01(\x0e\x32\'.temporal.api.enums.v1.ResetReapplyTypeB\x02\x18\x01\x12S\n\x1breset_reapply_exclude_types\x18\x07 \x03(\x0e\x32..temporal.api.enums.v1.ResetReapplyExcludeType\x12K\n\x15post_reset_operations\x18\x08 \x03(\x0b\x32,.temporal.api.workflow.v1.PostResetOperation\x12\x10\n\x08identity\x18\t \x01(\t"0\n\x1eResetWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\x9f\x02\n!TerminateWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x06 \x01(\t\x12+\n\x05links\x18\x07 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link"$\n"TerminateWorkflowExecutionResponse"z\n\x1e\x44\x65leteWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"!\n\x1f\x44\x65leteWorkflowExecutionResponse"\xc9\x02\n!ListOpenWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11maximum_page_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x42\n\x11start_time_filter\x18\x04 \x01(\x0b\x32\'.temporal.api.filter.v1.StartTimeFilter\x12K\n\x10\x65xecution_filter\x18\x05 \x01(\x0b\x32/.temporal.api.filter.v1.WorkflowExecutionFilterH\x00\x12\x41\n\x0btype_filter\x18\x06 \x01(\x0b\x32*.temporal.api.filter.v1.WorkflowTypeFilterH\x00\x42\t\n\x07\x66ilters"\x82\x01\n"ListOpenWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\x8a\x03\n#ListClosedWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11maximum_page_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x42\n\x11start_time_filter\x18\x04 \x01(\x0b\x32\'.temporal.api.filter.v1.StartTimeFilter\x12K\n\x10\x65xecution_filter\x18\x05 \x01(\x0b\x32/.temporal.api.filter.v1.WorkflowExecutionFilterH\x00\x12\x41\n\x0btype_filter\x18\x06 \x01(\x0b\x32*.temporal.api.filter.v1.WorkflowTypeFilterH\x00\x12=\n\rstatus_filter\x18\x07 \x01(\x0b\x32$.temporal.api.filter.v1.StatusFilterH\x00\x42\t\n\x07\x66ilters"\x84\x01\n$ListClosedWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"m\n\x1dListWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"~\n\x1eListWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"u\n%ListArchivedWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"\x86\x01\n&ListArchivedWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"m\n\x1dScanWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"~\n\x1eScanWorkflowExecutionsResponse\x12\x43\n\nexecutions\x18\x01 \x03(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"B\n\x1e\x43ountWorkflowExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t"\xed\x01\n\x1f\x43ountWorkflowExecutionsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x61\n\x06groups\x18\x02 \x03(\x0b\x32Q.temporal.api.workflowservice.v1.CountWorkflowExecutionsResponse.AggregationGroup\x1aX\n\x10\x41ggregationGroup\x12\x35\n\x0cgroup_values\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\x1c\n\x1aGetSearchAttributesRequest"\xc9\x01\n\x1bGetSearchAttributesResponse\x12T\n\x04keys\x18\x01 \x03(\x0b\x32\x46.temporal.api.workflowservice.v1.GetSearchAttributesResponse.KeysEntry\x1aT\n\tKeysEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0e\x32\'.temporal.api.enums.v1.IndexedValueType:\x02\x38\x01"\xd0\x02\n RespondQueryTaskCompletedRequest\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12>\n\x0e\x63ompleted_type\x18\x02 \x01(\x0e\x32&.temporal.api.enums.v1.QueryResultType\x12\x36\n\x0cquery_result\x18\x03 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x15\n\rerror_message\x18\x04 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x31\n\x07\x66\x61ilure\x18\x07 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12=\n\x05\x63\x61use\x18\x08 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCauseJ\x04\x08\x05\x10\x06"#\n!RespondQueryTaskCompletedResponse"n\n\x1bResetStickyTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\x1e\n\x1cResetStickyTaskQueueResponse"\x9b\x02\n\x15ShutdownWorkerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11sticky_task_queue\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12\x41\n\x10worker_heartbeat\x18\x05 \x01(\x0b\x32\'.temporal.api.worker.v1.WorkerHeartbeat\x12\x1b\n\x13worker_instance_key\x18\x06 \x01(\t\x12\x12\n\ntask_queue\x18\x07 \x01(\t\x12>\n\x10task_queue_types\x18\x08 \x03(\x0e\x32$.temporal.api.enums.v1.TaskQueueType"\x18\n\x16ShutdownWorkerResponse"\xe9\x01\n\x14QueryWorkflowRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x33\n\x05query\x18\x03 \x01(\x0b\x32$.temporal.api.query.v1.WorkflowQuery\x12K\n\x16query_reject_condition\x18\x04 \x01(\x0e\x32+.temporal.api.enums.v1.QueryRejectCondition"\x8d\x01\n\x15QueryWorkflowResponse\x12\x36\n\x0cquery_result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12<\n\x0equery_rejected\x18\x02 \x01(\x0b\x32$.temporal.api.query.v1.QueryRejected"s\n DescribeWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\x99\x05\n!DescribeWorkflowExecutionResponse\x12K\n\x10\x65xecution_config\x18\x01 \x01(\x0b\x32\x31.temporal.api.workflow.v1.WorkflowExecutionConfig\x12P\n\x17workflow_execution_info\x18\x02 \x01(\x0b\x32/.temporal.api.workflow.v1.WorkflowExecutionInfo\x12I\n\x12pending_activities\x18\x03 \x03(\x0b\x32-.temporal.api.workflow.v1.PendingActivityInfo\x12M\n\x10pending_children\x18\x04 \x03(\x0b\x32\x33.temporal.api.workflow.v1.PendingChildExecutionInfo\x12P\n\x15pending_workflow_task\x18\x05 \x01(\x0b\x32\x31.temporal.api.workflow.v1.PendingWorkflowTaskInfo\x12\x39\n\tcallbacks\x18\x06 \x03(\x0b\x32&.temporal.api.workflow.v1.CallbackInfo\x12U\n\x18pending_nexus_operations\x18\x07 \x03(\x0b\x32\x33.temporal.api.workflow.v1.PendingNexusOperationInfo\x12W\n\x16workflow_extended_info\x18\x08 \x01(\x0b\x32\x37.temporal.api.workflow.v1.WorkflowExecutionExtendedInfo"\x90\x04\n\x18\x44\x65scribeTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12=\n\x0ftask_queue_type\x18\x03 \x01(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12\x14\n\x0creport_stats\x18\x08 \x01(\x08\x12\x15\n\rreport_config\x18\x0b \x01(\x08\x12%\n\x19include_task_queue_status\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x42\n\x08\x61pi_mode\x18\x05 \x01(\x0e\x32,.temporal.api.enums.v1.DescribeTaskQueueModeB\x02\x18\x01\x12J\n\x08versions\x18\x06 \x01(\x0b\x32\x34.temporal.api.taskqueue.v1.TaskQueueVersionSelectionB\x02\x18\x01\x12\x42\n\x10task_queue_types\x18\x07 \x03(\x0e\x32$.temporal.api.enums.v1.TaskQueueTypeB\x02\x18\x01\x12\x1a\n\x0ereport_pollers\x18\t \x01(\x08\x42\x02\x18\x01\x12$\n\x18report_task_reachability\x18\n \x01(\x08\x42\x02\x18\x01"\xec\x07\n\x19\x44\x65scribeTaskQueueResponse\x12\x36\n\x07pollers\x18\x01 \x03(\x0b\x32%.temporal.api.taskqueue.v1.PollerInfo\x12\x38\n\x05stats\x18\x05 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats\x12q\n\x15stats_by_priority_key\x18\x08 \x03(\x0b\x32R.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.StatsByPriorityKeyEntry\x12K\n\x0fversioning_info\x18\x04 \x01(\x0b\x32\x32.temporal.api.taskqueue.v1.TaskQueueVersioningInfo\x12:\n\x06\x63onfig\x18\x06 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueConfig\x12k\n\x14\x65\x66\x66\x65\x63tive_rate_limit\x18\x07 \x01(\x0b\x32M.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.EffectiveRateLimit\x12I\n\x11task_queue_status\x18\x02 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueStatusB\x02\x18\x01\x12g\n\rversions_info\x18\x03 \x03(\x0b\x32L.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.VersionsInfoEntryB\x02\x18\x01\x1a\x64\n\x17StatsByPriorityKeyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats:\x02\x38\x01\x1at\n\x12\x45\x66\x66\x65\x63tiveRateLimit\x12\x1b\n\x13requests_per_second\x18\x01 \x01(\x02\x12\x41\n\x11rate_limit_source\x18\x02 \x01(\x0e\x32&.temporal.api.enums.v1.RateLimitSource\x1a\x64\n\x11VersionsInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12>\n\x05value\x18\x02 \x01(\x0b\x32/.temporal.api.taskqueue.v1.TaskQueueVersionInfo:\x02\x38\x01"\x17\n\x15GetClusterInfoRequest"\xd1\x03\n\x16GetClusterInfoResponse\x12h\n\x11supported_clients\x18\x01 \x03(\x0b\x32M.temporal.api.workflowservice.v1.GetClusterInfoResponse.SupportedClientsEntry\x12\x16\n\x0eserver_version\x18\x02 \x01(\t\x12\x12\n\ncluster_id\x18\x03 \x01(\t\x12:\n\x0cversion_info\x18\x04 \x01(\x0b\x32$.temporal.api.version.v1.VersionInfo\x12\x14\n\x0c\x63luster_name\x18\x05 \x01(\t\x12\x1b\n\x13history_shard_count\x18\x06 \x01(\x05\x12\x19\n\x11persistence_store\x18\x07 \x01(\t\x12\x18\n\x10visibility_store\x18\x08 \x01(\t\x12 \n\x18initial_failover_version\x18\t \x01(\x03\x12"\n\x1a\x66\x61ilover_version_increment\x18\n \x01(\x03\x1a\x37\n\x15SupportedClientsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x16\n\x14GetSystemInfoRequest"\xf4\x03\n\x15GetSystemInfoResponse\x12\x16\n\x0eserver_version\x18\x01 \x01(\t\x12Y\n\x0c\x63\x61pabilities\x18\x02 \x01(\x0b\x32\x43.temporal.api.workflowservice.v1.GetSystemInfoResponse.Capabilities\x1a\xe7\x02\n\x0c\x43\x61pabilities\x12\x1f\n\x17signal_and_query_header\x18\x01 \x01(\x08\x12&\n\x1einternal_error_differentiation\x18\x02 \x01(\x08\x12*\n"activity_failure_include_heartbeat\x18\x03 \x01(\x08\x12\x1a\n\x12supports_schedules\x18\x04 \x01(\x08\x12"\n\x1a\x65ncoded_failure_attributes\x18\x05 \x01(\x08\x12!\n\x19\x62uild_id_based_versioning\x18\x06 \x01(\x08\x12\x13\n\x0bupsert_memo\x18\x07 \x01(\x08\x12\x1c\n\x14\x65\x61ger_workflow_start\x18\x08 \x01(\x08\x12\x14\n\x0csdk_metadata\x18\t \x01(\x08\x12\'\n\x1f\x63ount_group_by_execution_status\x18\n \x01(\x08\x12\r\n\x05nexus\x18\x0b \x01(\x08"m\n\x1eListTaskQueuePartitionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x38\n\ntask_queue\x18\x02 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue"\xdf\x01\n\x1fListTaskQueuePartitionsResponse\x12]\n\x1e\x61\x63tivity_task_queue_partitions\x18\x01 \x03(\x0b\x32\x35.temporal.api.taskqueue.v1.TaskQueuePartitionMetadata\x12]\n\x1eworkflow_task_queue_partitions\x18\x02 \x03(\x0b\x32\x35.temporal.api.taskqueue.v1.TaskQueuePartitionMetadata"\xcc\x02\n\x15\x43reateScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x34\n\x08schedule\x18\x03 \x01(\x0b\x32".temporal.api.schedule.v1.Schedule\x12>\n\rinitial_patch\x18\x04 \x01(\x0b\x32\'.temporal.api.schedule.v1.SchedulePatch\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12*\n\x04memo\x18\x07 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x08 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes"0\n\x16\x43reateScheduleResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c"A\n\x17\x44\x65scribeScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t"\x8f\x02\n\x18\x44\x65scribeScheduleResponse\x12\x34\n\x08schedule\x18\x01 \x01(\x0b\x32".temporal.api.schedule.v1.Schedule\x12\x34\n\x04info\x18\x02 \x01(\x0b\x32&.temporal.api.schedule.v1.ScheduleInfo\x12*\n\x04memo\x18\x03 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x04 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x16\n\x0e\x63onflict_token\x18\x05 \x01(\x0c"\xf8\x01\n\x15UpdateScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x34\n\x08schedule\x18\x03 \x01(\x0b\x32".temporal.api.schedule.v1.Schedule\x12\x16\n\x0e\x63onflict_token\x18\x04 \x01(\x0c\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12\x43\n\x11search_attributes\x18\x07 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes"\x18\n\x16UpdateScheduleResponse"\x9c\x01\n\x14PatchScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x36\n\x05patch\x18\x03 \x01(\x0b\x32\'.temporal.api.schedule.v1.SchedulePatch\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x12\n\nrequest_id\x18\x05 \x01(\t"\x17\n\x15PatchScheduleResponse"\xa8\x01\n ListScheduleMatchingTimesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"S\n!ListScheduleMatchingTimesResponse\x12.\n\nstart_time\x18\x01 \x03(\x0b\x32\x1a.google.protobuf.Timestamp"Q\n\x15\x44\x65leteScheduleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bschedule_id\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t"\x18\n\x16\x44\x65leteScheduleResponse"l\n\x14ListSchedulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x19\n\x11maximum_page_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"p\n\x15ListSchedulesResponse\x12>\n\tschedules\x18\x01 \x03(\x0b\x32+.temporal.api.schedule.v1.ScheduleListEntry\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"9\n\x15\x43ountSchedulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t"\xdb\x01\n\x16\x43ountSchedulesResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12X\n\x06groups\x18\x02 \x03(\x0b\x32H.temporal.api.workflowservice.v1.CountSchedulesResponse.AggregationGroup\x1aX\n\x10\x41ggregationGroup\x12\x35\n\x0cgroup_values\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\x86\x05\n\'UpdateWorkerBuildIdCompatibilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12-\n#add_new_build_id_in_new_default_set\x18\x03 \x01(\tH\x00\x12\x87\x01\n\x1b\x61\x64\x64_new_compatible_build_id\x18\x04 \x01(\x0b\x32`.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest.AddNewCompatibleVersionH\x00\x12!\n\x17promote_set_by_build_id\x18\x05 \x01(\tH\x00\x12%\n\x1bpromote_build_id_within_set\x18\x06 \x01(\tH\x00\x12h\n\nmerge_sets\x18\x07 \x01(\x0b\x32R.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest.MergeSetsH\x00\x1ao\n\x17\x41\x64\x64NewCompatibleVersion\x12\x14\n\x0cnew_build_id\x18\x01 \x01(\t\x12$\n\x1c\x65xisting_compatible_build_id\x18\x02 \x01(\t\x12\x18\n\x10make_set_default\x18\x03 \x01(\x08\x1aI\n\tMergeSets\x12\x1c\n\x14primary_set_build_id\x18\x01 \x01(\t\x12\x1e\n\x16secondary_set_build_id\x18\x02 \x01(\tB\x0b\n\toperation"@\n(UpdateWorkerBuildIdCompatibilityResponseJ\x04\x08\x01\x10\x02R\x0eversion_set_id"_\n$GetWorkerBuildIdCompatibilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x10\n\x08max_sets\x18\x03 \x01(\x05"t\n%GetWorkerBuildIdCompatibilityResponse\x12K\n\x12major_version_sets\x18\x01 \x03(\x0b\x32/.temporal.api.taskqueue.v1.CompatibleVersionSet"\xb5\r\n"UpdateWorkerVersioningRulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x16\n\x0e\x63onflict_token\x18\x03 \x01(\x0c\x12\x81\x01\n\x16insert_assignment_rule\x18\x04 \x01(\x0b\x32_.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.InsertBuildIdAssignmentRuleH\x00\x12\x83\x01\n\x17replace_assignment_rule\x18\x05 \x01(\x0b\x32`.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.ReplaceBuildIdAssignmentRuleH\x00\x12\x81\x01\n\x16\x64\x65lete_assignment_rule\x18\x06 \x01(\x0b\x32_.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.DeleteBuildIdAssignmentRuleH\x00\x12\x8c\x01\n\x1c\x61\x64\x64_compatible_redirect_rule\x18\x07 \x01(\x0b\x32\x64.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.AddCompatibleBuildIdRedirectRuleH\x00\x12\x94\x01\n replace_compatible_redirect_rule\x18\x08 \x01(\x0b\x32h.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.ReplaceCompatibleBuildIdRedirectRuleH\x00\x12\x92\x01\n\x1f\x64\x65lete_compatible_redirect_rule\x18\t \x01(\x0b\x32g.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.DeleteCompatibleBuildIdRedirectRuleH\x00\x12l\n\x0f\x63ommit_build_id\x18\n \x01(\x0b\x32Q.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest.CommitBuildIdH\x00\x1aq\n\x1bInsertBuildIdAssignmentRule\x12\x12\n\nrule_index\x18\x01 \x01(\x05\x12>\n\x04rule\x18\x02 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.BuildIdAssignmentRule\x1a\x81\x01\n\x1cReplaceBuildIdAssignmentRule\x12\x12\n\nrule_index\x18\x01 \x01(\x05\x12>\n\x04rule\x18\x02 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.BuildIdAssignmentRule\x12\r\n\x05\x66orce\x18\x03 \x01(\x08\x1a@\n\x1b\x44\x65leteBuildIdAssignmentRule\x12\x12\n\nrule_index\x18\x01 \x01(\x05\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x1aj\n AddCompatibleBuildIdRedirectRule\x12\x46\n\x04rule\x18\x01 \x01(\x0b\x32\x38.temporal.api.taskqueue.v1.CompatibleBuildIdRedirectRule\x1an\n$ReplaceCompatibleBuildIdRedirectRule\x12\x46\n\x04rule\x18\x01 \x01(\x0b\x32\x38.temporal.api.taskqueue.v1.CompatibleBuildIdRedirectRule\x1a>\n#DeleteCompatibleBuildIdRedirectRule\x12\x17\n\x0fsource_build_id\x18\x01 \x01(\t\x1a\x37\n\rCommitBuildId\x12\x17\n\x0ftarget_build_id\x18\x01 \x01(\t\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x42\x0b\n\toperation"\xfc\x01\n#UpdateWorkerVersioningRulesResponse\x12U\n\x10\x61ssignment_rules\x18\x01 \x03(\x0b\x32;.temporal.api.taskqueue.v1.TimestampedBuildIdAssignmentRule\x12\x66\n\x19\x63ompatible_redirect_rules\x18\x02 \x03(\x0b\x32\x43.temporal.api.taskqueue.v1.TimestampedCompatibleBuildIdRedirectRule\x12\x16\n\x0e\x63onflict_token\x18\x03 \x01(\x0c"H\n\x1fGetWorkerVersioningRulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t"\xf9\x01\n GetWorkerVersioningRulesResponse\x12U\n\x10\x61ssignment_rules\x18\x01 \x03(\x0b\x32;.temporal.api.taskqueue.v1.TimestampedBuildIdAssignmentRule\x12\x66\n\x19\x63ompatible_redirect_rules\x18\x02 \x03(\x0b\x32\x43.temporal.api.taskqueue.v1.TimestampedCompatibleBuildIdRedirectRule\x12\x16\n\x0e\x63onflict_token\x18\x03 \x01(\x0c"\x9c\x01\n GetWorkerTaskReachabilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tbuild_ids\x18\x02 \x03(\t\x12\x13\n\x0btask_queues\x18\x03 \x03(\t\x12=\n\x0creachability\x18\x04 \x01(\x0e\x32\'.temporal.api.enums.v1.TaskReachability"r\n!GetWorkerTaskReachabilityResponse\x12M\n\x15\x62uild_id_reachability\x18\x01 \x03(\x0b\x32..temporal.api.taskqueue.v1.BuildIdReachability"\x85\x02\n\x1eUpdateWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1e\n\x16\x66irst_execution_run_id\x18\x03 \x01(\t\x12\x37\n\x0bwait_policy\x18\x04 \x01(\x0b\x32".temporal.api.update.v1.WaitPolicy\x12\x30\n\x07request\x18\x05 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request"\xd7\x01\n\x1fUpdateWorkflowExecutionResponse\x12\x35\n\nupdate_ref\x18\x01 \x01(\x0b\x32!.temporal.api.update.v1.UpdateRef\x12\x30\n\x07outcome\x18\x02 \x01(\x0b\x32\x1f.temporal.api.update.v1.Outcome\x12K\n\x05stage\x18\x03 \x01(\x0e\x32<.temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage"\xf4\x07\n\x1aStartBatchOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x18\n\x10visibility_query\x18\x02 \x01(\t\x12\x0e\n\x06job_id\x18\x03 \x01(\t\x12\x0e\n\x06reason\x18\x04 \x01(\t\x12=\n\nexecutions\x18\x05 \x03(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12!\n\x19max_operations_per_second\x18\x06 \x01(\x02\x12Q\n\x15termination_operation\x18\n \x01(\x0b\x32\x30.temporal.api.batch.v1.BatchOperationTerminationH\x00\x12G\n\x10signal_operation\x18\x0b \x01(\x0b\x32+.temporal.api.batch.v1.BatchOperationSignalH\x00\x12S\n\x16\x63\x61ncellation_operation\x18\x0c \x01(\x0b\x32\x31.temporal.api.batch.v1.BatchOperationCancellationH\x00\x12K\n\x12\x64\x65letion_operation\x18\r \x01(\x0b\x32-.temporal.api.batch.v1.BatchOperationDeletionH\x00\x12\x45\n\x0freset_operation\x18\x0e \x01(\x0b\x32*.temporal.api.batch.v1.BatchOperationResetH\x00\x12p\n!update_workflow_options_operation\x18\x0f \x01(\x0b\x32\x43.temporal.api.batch.v1.BatchOperationUpdateWorkflowExecutionOptionsH\x00\x12^\n\x1cunpause_activities_operation\x18\x10 \x01(\x0b\x32\x36.temporal.api.batch.v1.BatchOperationUnpauseActivitiesH\x00\x12Z\n\x1areset_activities_operation\x18\x11 \x01(\x0b\x32\x34.temporal.api.batch.v1.BatchOperationResetActivitiesH\x00\x12g\n!update_activity_options_operation\x18\x12 \x01(\x0b\x32:.temporal.api.batch.v1.BatchOperationUpdateActivityOptionsH\x00\x42\x0b\n\toperation"\x1d\n\x1bStartBatchOperationResponse"`\n\x19StopBatchOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t"\x1c\n\x1aStopBatchOperationResponse"B\n\x1d\x44\x65scribeBatchOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t"\x92\x03\n\x1e\x44\x65scribeBatchOperationResponse\x12\x41\n\x0eoperation_type\x18\x01 \x01(\x0e\x32).temporal.api.enums.v1.BatchOperationType\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12\x39\n\x05state\x18\x03 \x01(\x0e\x32*.temporal.api.enums.v1.BatchOperationState\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nclose_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1d\n\x15total_operation_count\x18\x06 \x01(\x03\x12 \n\x18\x63omplete_operation_count\x18\x07 \x01(\x03\x12\x1f\n\x17\x66\x61ilure_operation_count\x18\x08 \x01(\x03\x12\x10\n\x08identity\x18\t \x01(\t\x12\x0e\n\x06reason\x18\n \x01(\t"[\n\x1aListBatchOperationsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c"y\n\x1bListBatchOperationsResponse\x12\x41\n\x0eoperation_info\x18\x01 \x03(\x0b\x32).temporal.api.batch.v1.BatchOperationInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\xb9\x01\n"PollWorkflowExecutionUpdateRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x35\n\nupdate_ref\x18\x02 \x01(\x0b\x32!.temporal.api.update.v1.UpdateRef\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x37\n\x0bwait_policy\x18\x04 \x01(\x0b\x32".temporal.api.update.v1.WaitPolicy"\xdb\x01\n#PollWorkflowExecutionUpdateResponse\x12\x30\n\x07outcome\x18\x01 \x01(\x0b\x32\x1f.temporal.api.update.v1.Outcome\x12K\n\x05stage\x18\x02 \x01(\x0e\x32<.temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage\x12\x35\n\nupdate_ref\x18\x03 \x01(\x0b\x32!.temporal.api.update.v1.UpdateRef"\x87\x03\n\x19PollNexusTaskQueueRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x1b\n\x13worker_instance_key\x18\x08 \x01(\t\x12\x38\n\ntask_queue\x18\x03 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12Z\n\x1bworker_version_capabilities\x18\x04 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilitiesB\x02\x18\x01\x12O\n\x12\x64\x65ployment_options\x18\x06 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentOptions\x12\x41\n\x10worker_heartbeat\x18\x07 \x03(\x0b\x32\'.temporal.api.worker.v1.WorkerHeartbeat"\xb4\x01\n\x1aPollNexusTaskQueueResponse\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12/\n\x07request\x18\x02 \x01(\x0b\x32\x1e.temporal.api.nexus.v1.Request\x12Q\n\x17poller_scaling_decision\x18\x03 \x01(\x0b\x32\x30.temporal.api.taskqueue.v1.PollerScalingDecision"\x8e\x01\n RespondNexusTaskCompletedRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntask_token\x18\x03 \x01(\x0c\x12\x31\n\x08response\x18\x04 \x01(\x0b\x32\x1f.temporal.api.nexus.v1.Response"#\n!RespondNexusTaskCompletedResponse"\xc3\x01\n\x1dRespondNexusTaskFailedRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntask_token\x18\x03 \x01(\x0c\x12\x36\n\x05\x65rror\x18\x04 \x01(\x0b\x32#.temporal.api.nexus.v1.HandlerErrorB\x02\x18\x01\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure" \n\x1eRespondNexusTaskFailedResponse"\xdf\x02\n\x1c\x45xecuteMultiOperationRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12[\n\noperations\x18\x02 \x03(\x0b\x32G.temporal.api.workflowservice.v1.ExecuteMultiOperationRequest.Operation\x1a\xce\x01\n\tOperation\x12X\n\x0estart_workflow\x18\x01 \x01(\x0b\x32>.temporal.api.workflowservice.v1.StartWorkflowExecutionRequestH\x00\x12Z\n\x0fupdate_workflow\x18\x02 \x01(\x0b\x32?.temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequestH\x00\x42\x0b\n\toperation"\xcc\x02\n\x1d\x45xecuteMultiOperationResponse\x12Z\n\tresponses\x18\x01 \x03(\x0b\x32G.temporal.api.workflowservice.v1.ExecuteMultiOperationResponse.Response\x1a\xce\x01\n\x08Response\x12Y\n\x0estart_workflow\x18\x01 \x01(\x0b\x32?.temporal.api.workflowservice.v1.StartWorkflowExecutionResponseH\x00\x12[\n\x0fupdate_workflow\x18\x02 \x01(\x0b\x32@.temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponseH\x00\x42\n\n\x08response"\xd0\x02\n\x1cUpdateActivityOptionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x43\n\x10\x61\x63tivity_options\x18\x04 \x01(\x0b\x32).temporal.api.activity.v1.ActivityOptions\x12/\n\x0bupdate_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x0c\n\x02id\x18\x06 \x01(\tH\x00\x12\x0e\n\x04type\x18\x07 \x01(\tH\x00\x12\x13\n\tmatch_all\x18\t \x01(\x08H\x00\x12\x18\n\x10restore_original\x18\x08 \x01(\x08\x42\n\n\x08\x61\x63tivity"d\n\x1dUpdateActivityOptionsResponse\x12\x43\n\x10\x61\x63tivity_options\x18\x01 \x01(\x0b\x32).temporal.api.activity.v1.ActivityOptions"\xb3\x01\n\x14PauseActivityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x0e\n\x04type\x18\x05 \x01(\tH\x00\x12\x0e\n\x06reason\x18\x06 \x01(\tB\n\n\x08\x61\x63tivity"\x17\n\x15PauseActivityResponse"\x98\x02\n\x16UnpauseActivityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x0e\n\x04type\x18\x05 \x01(\tH\x00\x12\x15\n\x0bunpause_all\x18\x06 \x01(\x08H\x00\x12\x16\n\x0ereset_attempts\x18\x07 \x01(\x08\x12\x17\n\x0freset_heartbeat\x18\x08 \x01(\x08\x12)\n\x06jitter\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\n\n\x08\x61\x63tivity"\x19\n\x17UnpauseActivityResponse"\xb3\x02\n\x14ResetActivityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x0e\n\x04type\x18\x05 \x01(\tH\x00\x12\x13\n\tmatch_all\x18\n \x01(\x08H\x00\x12\x17\n\x0freset_heartbeat\x18\x06 \x01(\x08\x12\x13\n\x0bkeep_paused\x18\x07 \x01(\x08\x12)\n\x06jitter\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12 \n\x18restore_original_options\x18\t \x01(\x08\x42\n\n\x08\x61\x63tivity"\x17\n\x15ResetActivityResponse"\x9c\x02\n%UpdateWorkflowExecutionOptionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x45\n\x12workflow_execution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12V\n\x1aworkflow_execution_options\x18\x03 \x01(\x0b\x32\x32.temporal.api.workflow.v1.WorkflowExecutionOptions\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x10\n\x08identity\x18\x05 \x01(\t"\x80\x01\n&UpdateWorkflowExecutionOptionsResponse\x12V\n\x1aworkflow_execution_options\x18\x01 \x01(\x0b\x32\x32.temporal.api.workflow.v1.WorkflowExecutionOptions"j\n\x19\x44\x65scribeDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12:\n\ndeployment\x18\x02 \x01(\x0b\x32&.temporal.api.deployment.v1.Deployment"a\n\x1a\x44\x65scribeDeploymentResponse\x12\x43\n\x0f\x64\x65ployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo"\xc2\x01\n&DescribeWorkerDeploymentVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x07version\x18\x02 \x01(\tB\x02\x18\x01\x12O\n\x12\x64\x65ployment_version\x18\x03 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12\x1f\n\x17report_task_queue_stats\x18\x04 \x01(\x08"\x8c\x05\n\'DescribeWorkerDeploymentVersionResponse\x12_\n\x1eworker_deployment_version_info\x18\x01 \x01(\x0b\x32\x37.temporal.api.deployment.v1.WorkerDeploymentVersionInfo\x12v\n\x13version_task_queues\x18\x02 \x03(\x0b\x32Y.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionResponse.VersionTaskQueue\x1a\x87\x03\n\x10VersionTaskQueue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x32\n\x04type\x18\x02 \x01(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12\x38\n\x05stats\x18\x03 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats\x12\x90\x01\n\x15stats_by_priority_key\x18\x04 \x03(\x0b\x32q.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionResponse.VersionTaskQueue.StatsByPriorityKeyEntry\x1a\x64\n\x17StatsByPriorityKeyEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).temporal.api.taskqueue.v1.TaskQueueStats:\x02\x38\x01"M\n\x1f\x44\x65scribeWorkerDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t"\x8c\x01\n DescribeWorkerDeploymentResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12P\n\x16worker_deployment_info\x18\x02 \x01(\x0b\x32\x30.temporal.api.deployment.v1.WorkerDeploymentInfo"l\n\x16ListDeploymentsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\x13\n\x0bseries_name\x18\x04 \x01(\t"w\n\x17ListDeploymentsResponse\x12\x17\n\x0fnext_page_token\x18\x01 \x01(\x0c\x12\x43\n\x0b\x64\x65ployments\x18\x02 \x03(\x0b\x32..temporal.api.deployment.v1.DeploymentListInfo"\xcd\x01\n\x1bSetCurrentDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12:\n\ndeployment\x18\x02 \x01(\x0b\x32&.temporal.api.deployment.v1.Deployment\x12\x10\n\x08identity\x18\x03 \x01(\t\x12M\n\x0fupdate_metadata\x18\x04 \x01(\x0b\x32\x34.temporal.api.deployment.v1.UpdateDeploymentMetadata"\xb9\x01\n\x1cSetCurrentDeploymentResponse\x12K\n\x17\x63urrent_deployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo\x12L\n\x18previous_deployment_info\x18\x02 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo"\xe5\x01\n(SetWorkerDeploymentCurrentVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x13\n\x07version\x18\x03 \x01(\tB\x02\x18\x01\x12\x10\n\x08\x62uild_id\x18\x07 \x01(\t\x12\x16\n\x0e\x63onflict_token\x18\x04 \x01(\x0c\x12\x10\n\x08identity\x18\x05 \x01(\t\x12"\n\x1aignore_missing_task_queues\x18\x06 \x01(\x08\x12\x18\n\x10\x61llow_no_pollers\x18\t \x01(\x08"\xbf\x01\n)SetWorkerDeploymentCurrentVersionResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12\x1c\n\x10previous_version\x18\x02 \x01(\tB\x02\x18\x01\x12\\\n\x1bprevious_deployment_version\x18\x03 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersionB\x02\x18\x01"\xf9\x01\n(SetWorkerDeploymentRampingVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x13\n\x07version\x18\x03 \x01(\tB\x02\x18\x01\x12\x10\n\x08\x62uild_id\x18\x08 \x01(\t\x12\x12\n\npercentage\x18\x04 \x01(\x02\x12\x16\n\x0e\x63onflict_token\x18\x05 \x01(\x0c\x12\x10\n\x08identity\x18\x06 \x01(\t\x12"\n\x1aignore_missing_task_queues\x18\x07 \x01(\x08\x12\x18\n\x10\x61llow_no_pollers\x18\n \x01(\x08"\xe0\x01\n)SetWorkerDeploymentRampingVersionResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12\x1c\n\x10previous_version\x18\x02 \x01(\tB\x02\x18\x01\x12\\\n\x1bprevious_deployment_version\x18\x04 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersionB\x02\x18\x01\x12\x1f\n\x13previous_percentage\x18\x03 \x01(\x02\x42\x02\x18\x01"]\n\x1cListWorkerDeploymentsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c"\x9f\x05\n\x1dListWorkerDeploymentsResponse\x12\x17\n\x0fnext_page_token\x18\x01 \x01(\x0c\x12r\n\x12worker_deployments\x18\x02 \x03(\x0b\x32V.temporal.api.workflowservice.v1.ListWorkerDeploymentsResponse.WorkerDeploymentSummary\x1a\xf0\x03\n\x17WorkerDeploymentSummary\x12\x0c\n\x04name\x18\x01 \x01(\t\x12/\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x41\n\x0erouting_config\x18\x03 \x01(\x0b\x32).temporal.api.deployment.v1.RoutingConfig\x12o\n\x16latest_version_summary\x18\x04 \x01(\x0b\x32O.temporal.api.deployment.v1.WorkerDeploymentInfo.WorkerDeploymentVersionSummary\x12p\n\x17\x63urrent_version_summary\x18\x05 \x01(\x0b\x32O.temporal.api.deployment.v1.WorkerDeploymentInfo.WorkerDeploymentVersionSummary\x12p\n\x17ramping_version_summary\x18\x06 \x01(\x0b\x32O.temporal.api.deployment.v1.WorkerDeploymentInfo.WorkerDeploymentVersionSummary"\xc8\x01\n$DeleteWorkerDeploymentVersionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x07version\x18\x02 \x01(\tB\x02\x18\x01\x12O\n\x12\x64\x65ployment_version\x18\x05 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12\x15\n\rskip_drainage\x18\x03 \x01(\x08\x12\x10\n\x08identity\x18\x04 \x01(\t"\'\n%DeleteWorkerDeploymentVersionResponse"]\n\x1d\x44\x65leteWorkerDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t" \n\x1e\x44\x65leteWorkerDeploymentResponse"\xa2\x03\n,UpdateWorkerDeploymentVersionMetadataRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x07version\x18\x02 \x01(\tB\x02\x18\x01\x12O\n\x12\x64\x65ployment_version\x18\x05 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12x\n\x0eupsert_entries\x18\x03 \x03(\x0b\x32`.temporal.api.workflowservice.v1.UpdateWorkerDeploymentVersionMetadataRequest.UpsertEntriesEntry\x12\x16\n\x0eremove_entries\x18\x04 \x03(\t\x12\x10\n\x08identity\x18\x06 \x01(\t\x1aU\n\x12UpsertEntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"n\n-UpdateWorkerDeploymentVersionMetadataResponse\x12=\n\x08metadata\x18\x01 \x01(\x0b\x32+.temporal.api.deployment.v1.VersionMetadata"\xbd\x01\n!SetWorkerDeploymentManagerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0f\x64\x65ployment_name\x18\x02 \x01(\t\x12\x1a\n\x10manager_identity\x18\x03 \x01(\tH\x00\x12\x0e\n\x04self\x18\x04 \x01(\x08H\x00\x12\x16\n\x0e\x63onflict_token\x18\x05 \x01(\x0c\x12\x10\n\x08identity\x18\x06 \x01(\tB\x16\n\x14new_manager_identity"c\n"SetWorkerDeploymentManagerResponse\x12\x16\n\x0e\x63onflict_token\x18\x01 \x01(\x0c\x12%\n\x19previous_manager_identity\x18\x02 \x01(\tB\x02\x18\x01"E\n\x1bGetCurrentDeploymentRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bseries_name\x18\x02 \x01(\t"k\n\x1cGetCurrentDeploymentResponse\x12K\n\x17\x63urrent_deployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo"q\n GetDeploymentReachabilityRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12:\n\ndeployment\x18\x02 \x01(\x0b\x32&.temporal.api.deployment.v1.Deployment"\xe3\x01\n!GetDeploymentReachabilityResponse\x12\x43\n\x0f\x64\x65ployment_info\x18\x01 \x01(\x0b\x32*.temporal.api.deployment.v1.DeploymentInfo\x12\x43\n\x0creachability\x18\x02 \x01(\x0e\x32-.temporal.api.enums.v1.DeploymentReachability\x12\x34\n\x10last_update_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\xb4\x01\n\x19\x43reateWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x35\n\x04spec\x18\x02 \x01(\x0b\x32\'.temporal.api.rules.v1.WorkflowRuleSpec\x12\x12\n\nforce_scan\x18\x03 \x01(\x08\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t"_\n\x1a\x43reateWorkflowRuleResponse\x12\x31\n\x04rule\x18\x01 \x01(\x0b\x32#.temporal.api.rules.v1.WorkflowRule\x12\x0e\n\x06job_id\x18\x02 \x01(\t"A\n\x1b\x44\x65scribeWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0f\n\x07rule_id\x18\x02 \x01(\t"Q\n\x1c\x44\x65scribeWorkflowRuleResponse\x12\x31\n\x04rule\x18\x01 \x01(\x0b\x32#.temporal.api.rules.v1.WorkflowRule"?\n\x19\x44\x65leteWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x0f\n\x07rule_id\x18\x02 \x01(\t"\x1c\n\x1a\x44\x65leteWorkflowRuleResponse"F\n\x18ListWorkflowRulesRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"h\n\x19ListWorkflowRulesResponse\x12\x32\n\x05rules\x18\x01 \x03(\x0b\x32#.temporal.api.rules.v1.WorkflowRule\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\xce\x01\n\x1aTriggerWorkflowRuleRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12<\n\texecution\x18\x02 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0c\n\x02id\x18\x04 \x01(\tH\x00\x12\x37\n\x04spec\x18\x05 \x01(\x0b\x32\'.temporal.api.rules.v1.WorkflowRuleSpecH\x00\x12\x10\n\x08identity\x18\x03 \x01(\tB\x06\n\x04rule".\n\x1bTriggerWorkflowRuleResponse\x12\x0f\n\x07\x61pplied\x18\x01 \x01(\x08"\x86\x01\n\x1cRecordWorkerHeartbeatRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x41\n\x10worker_heartbeat\x18\x03 \x03(\x0b\x32\'.temporal.api.worker.v1.WorkerHeartbeat"\x1f\n\x1dRecordWorkerHeartbeatResponse"b\n\x12ListWorkersRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"h\n\x13ListWorkersResponse\x12\x38\n\x0cworkers_info\x18\x01 \x03(\x0b\x32".temporal.api.worker.v1.WorkerInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"\xd5\x05\n\x1cUpdateTaskQueueConfigRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntask_queue\x18\x03 \x01(\t\x12=\n\x0ftask_queue_type\x18\x04 \x01(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12n\n\x17update_queue_rate_limit\x18\x05 \x01(\x0b\x32M.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest.RateLimitUpdate\x12}\n&update_fairness_key_rate_limit_default\x18\x06 \x01(\x0b\x32M.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest.RateLimitUpdate\x12\x84\x01\n\x1dset_fairness_weight_overrides\x18\x07 \x03(\x0b\x32].temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest.SetFairnessWeightOverridesEntry\x12\'\n\x1funset_fairness_weight_overrides\x18\x08 \x03(\t\x1a[\n\x0fRateLimitUpdate\x12\x38\n\nrate_limit\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.RateLimit\x12\x0e\n\x06reason\x18\x02 \x01(\t\x1a\x41\n\x1fSetFairnessWeightOverridesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01"[\n\x1dUpdateTaskQueueConfigResponse\x12:\n\x06\x63onfig\x18\x01 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueConfig"\x89\x01\n\x18\x46\x65tchWorkerConfigRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x38\n\x08selector\x18\x06 \x01(\x0b\x32&.temporal.api.common.v1.WorkerSelector"U\n\x19\x46\x65tchWorkerConfigResponse\x12\x38\n\rworker_config\x18\x01 \x01(\x0b\x32!.temporal.api.sdk.v1.WorkerConfig"\xf5\x01\n\x19UpdateWorkerConfigRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x38\n\rworker_config\x18\x04 \x01(\x0b\x32!.temporal.api.sdk.v1.WorkerConfig\x12/\n\x0bupdate_mask\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x38\n\x08selector\x18\x06 \x01(\x0b\x32&.temporal.api.common.v1.WorkerSelector"d\n\x1aUpdateWorkerConfigResponse\x12:\n\rworker_config\x18\x01 \x01(\x0b\x32!.temporal.api.sdk.v1.WorkerConfigH\x00\x42\n\n\x08response"G\n\x15\x44\x65scribeWorkerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x1b\n\x13worker_instance_key\x18\x02 \x01(\t"Q\n\x16\x44\x65scribeWorkerResponse\x12\x37\n\x0bworker_info\x18\x01 \x01(\x0b\x32".temporal.api.worker.v1.WorkerInfo"\x8d\x01\n\x1dPauseWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x0e\n\x06reason\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t" \n\x1ePauseWorkflowExecutionResponse"\x8f\x01\n\x1fUnpauseWorkflowExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x0e\n\x06reason\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t""\n UnpauseWorkflowExecutionResponse"\xb4\x07\n\x1dStartActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12;\n\ractivity_type\x18\x05 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12\x38\n\ntask_queue\x18\x06 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12<\n\x19schedule_to_close_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12/\n\x05input\x18\x0c \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x45\n\x0fid_reuse_policy\x18\r \x01(\x0e\x32,.temporal.api.enums.v1.ActivityIdReusePolicy\x12K\n\x12id_conflict_policy\x18\x0e \x01(\x0e\x32/.temporal.api.enums.v1.ActivityIdConflictPolicy\x12\x43\n\x11search_attributes\x18\x0f \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\x10 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x38\n\ruser_metadata\x18\x11 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12\x32\n\x08priority\x18\x12 \x01(\x0b\x32 .temporal.api.common.v1.Priority"A\n\x1eStartActivityExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x02 \x01(\x08"\xa3\x01\n DescribeActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x15\n\rinclude_input\x18\x04 \x01(\x08\x12\x17\n\x0finclude_outcome\x18\x05 \x01(\x08\x12\x17\n\x0flong_poll_token\x18\x06 \x01(\x0c"\x81\x02\n!DescribeActivityExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12=\n\x04info\x18\x02 \x01(\x0b\x32/.temporal.api.activity.v1.ActivityExecutionInfo\x12/\n\x05input\x18\x03 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x43\n\x07outcome\x18\x04 \x01(\x0b\x32\x32.temporal.api.activity.v1.ActivityExecutionOutcome\x12\x17\n\x0flong_poll_token\x18\x05 \x01(\x0c"V\n\x1cPollActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t"t\n\x1dPollActivityExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x43\n\x07outcome\x18\x02 \x01(\x0b\x32\x32.temporal.api.activity.v1.ActivityExecutionOutcome"m\n\x1dListActivityExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x17\n\x0fnext_page_token\x18\x03 \x01(\x0c\x12\r\n\x05query\x18\x04 \x01(\t"\x82\x01\n\x1eListActivityExecutionsResponse\x12G\n\nexecutions\x18\x01 \x03(\x0b\x32\x33.temporal.api.activity.v1.ActivityExecutionListInfo\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\x0c"B\n\x1e\x43ountActivityExecutionsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\r\n\x05query\x18\x02 \x01(\t"\xed\x01\n\x1f\x43ountActivityExecutionsResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x03\x12\x61\n\x06groups\x18\x02 \x03(\x0b\x32Q.temporal.api.workflowservice.v1.CountActivityExecutionsResponse.AggregationGroup\x1aX\n\x10\x41ggregationGroup\x12\x35\n\x0cgroup_values\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\r\n\x05\x63ount\x18\x02 \x01(\x03"\x95\x01\n%RequestCancelActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x12\n\nrequest_id\x18\x05 \x01(\t\x12\x0e\n\x06reason\x18\x06 \x01(\t"(\n&RequestCancelActivityExecutionResponse"\x91\x01\n!TerminateActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x12\n\nrequest_id\x18\x05 \x01(\t\x12\x0e\n\x06reason\x18\x06 \x01(\t"$\n"TerminateActivityExecutionResponse"X\n\x1e\x44\x65leteActivityExecutionRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t"!\n\x1f\x44\x65leteActivityExecutionResponseB\xbe\x01\n"io.temporal.api.workflowservice.v1B\x14RequestResponseProtoP\x01Z5go.temporal.io/api/workflowservice/v1;workflowservice\xaa\x02!Temporalio.Api.WorkflowService.V1\xea\x02$Temporalio::Api::WorkflowService::V1b\x06proto3'
)
@@ -399,6 +399,11 @@
_DELETESCHEDULERESPONSE = DESCRIPTOR.message_types_by_name["DeleteScheduleResponse"]
_LISTSCHEDULESREQUEST = DESCRIPTOR.message_types_by_name["ListSchedulesRequest"]
_LISTSCHEDULESRESPONSE = DESCRIPTOR.message_types_by_name["ListSchedulesResponse"]
+_COUNTSCHEDULESREQUEST = DESCRIPTOR.message_types_by_name["CountSchedulesRequest"]
+_COUNTSCHEDULESRESPONSE = DESCRIPTOR.message_types_by_name["CountSchedulesResponse"]
+_COUNTSCHEDULESRESPONSE_AGGREGATIONGROUP = _COUNTSCHEDULESRESPONSE.nested_types_by_name[
+ "AggregationGroup"
+]
_UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST = DESCRIPTOR.message_types_by_name[
"UpdateWorkerBuildIdCompatibilityRequest"
]
@@ -1963,6 +1968,38 @@
)
_sym_db.RegisterMessage(ListSchedulesResponse)
+CountSchedulesRequest = _reflection.GeneratedProtocolMessageType(
+ "CountSchedulesRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _COUNTSCHEDULESREQUEST,
+ "__module__": "temporalio.api.workflowservice.v1.request_response_pb2",
+ # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.CountSchedulesRequest)
+ },
+)
+_sym_db.RegisterMessage(CountSchedulesRequest)
+
+CountSchedulesResponse = _reflection.GeneratedProtocolMessageType(
+ "CountSchedulesResponse",
+ (_message.Message,),
+ {
+ "AggregationGroup": _reflection.GeneratedProtocolMessageType(
+ "AggregationGroup",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _COUNTSCHEDULESRESPONSE_AGGREGATIONGROUP,
+ "__module__": "temporalio.api.workflowservice.v1.request_response_pb2",
+ # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.CountSchedulesResponse.AggregationGroup)
+ },
+ ),
+ "DESCRIPTOR": _COUNTSCHEDULESRESPONSE,
+ "__module__": "temporalio.api.workflowservice.v1.request_response_pb2",
+ # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.CountSchedulesResponse)
+ },
+)
+_sym_db.RegisterMessage(CountSchedulesResponse)
+_sym_db.RegisterMessage(CountSchedulesResponse.AggregationGroup)
+
UpdateWorkerBuildIdCompatibilityRequest = _reflection.GeneratedProtocolMessageType(
"UpdateWorkerBuildIdCompatibilityRequest",
(_message.Message,),
@@ -3504,6 +3541,10 @@
_POLLNEXUSTASKQUEUEREQUEST.fields_by_name[
"worker_version_capabilities"
]._serialized_options = b"\030\001"
+ _RESPONDNEXUSTASKFAILEDREQUEST.fields_by_name["error"]._options = None
+ _RESPONDNEXUSTASKFAILEDREQUEST.fields_by_name[
+ "error"
+ ]._serialized_options = b"\030\001"
_DESCRIBEWORKERDEPLOYMENTVERSIONREQUEST.fields_by_name["version"]._options = None
_DESCRIBEWORKERDEPLOYMENTVERSIONREQUEST.fields_by_name[
"version"
@@ -3603,457 +3644,463 @@
_GETWORKFLOWEXECUTIONHISTORYREVERSERESPONSE._serialized_start = 6125
_GETWORKFLOWEXECUTIONHISTORYREVERSERESPONSE._serialized_end = 6245
_POLLWORKFLOWTASKQUEUEREQUEST._serialized_start = 6248
- _POLLWORKFLOWTASKQUEUEREQUEST._serialized_end = 6575
- _POLLWORKFLOWTASKQUEUERESPONSE._serialized_start = 6578
- _POLLWORKFLOWTASKQUEUERESPONSE._serialized_end = 7491
- _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_start = 7407
- _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_end = 7491
- _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_start = 7494
- _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_end = 8699
- _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_start = 8533
- _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_end = 8628
- _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES._serialized_start = 8630
- _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES._serialized_end = 8699
- _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_start = 8702
- _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_end = 8947
- _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_start = 8950
- _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_end = 9454
- _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_start = 9456
- _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_end = 9491
- _POLLACTIVITYTASKQUEUEREQUEST._serialized_start = 9494
- _POLLACTIVITYTASKQUEUEREQUEST._serialized_end = 9867
- _POLLACTIVITYTASKQUEUERESPONSE._serialized_start = 9870
- _POLLACTIVITYTASKQUEUERESPONSE._serialized_end = 10902
- _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_start = 10905
- _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_end = 11049
- _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_start = 11051
- _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_end = 11163
- _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_start = 11166
- _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_end = 11352
- _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_start = 11354
- _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_end = 11470
- _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_start = 11473
- _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_end = 11834
- _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_start = 11836
- _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_end = 11874
- _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_start = 11877
- _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_end = 12063
- _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_start = 12065
- _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_end = 12107
- _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_start = 12110
- _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_end = 12535
- _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_start = 12537
- _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_end = 12624
- _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_start = 12627
- _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_end = 12877
- _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_start = 12879
- _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_end = 12970
- _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_start = 12973
- _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_end = 13334
- _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_start = 13336
- _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_end = 13373
- _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_start = 13376
- _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_end = 13643
- _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_start = 13645
- _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_end = 13686
- _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_start = 13689
- _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_end = 13949
- _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_start = 13951
- _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_end = 13991
- _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_start = 13994
- _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_end = 14344
- _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_start = 14346
- _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_end = 14379
- _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_start = 14382
- _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_end = 15647
- _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_start = 15649
- _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_end = 15724
- _RESETWORKFLOWEXECUTIONREQUEST._serialized_start = 15727
- _RESETWORKFLOWEXECUTIONREQUEST._serialized_end = 16176
- _RESETWORKFLOWEXECUTIONRESPONSE._serialized_start = 16178
- _RESETWORKFLOWEXECUTIONRESPONSE._serialized_end = 16226
- _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_start = 16229
- _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_end = 16516
- _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 16518
- _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 16554
- _DELETEWORKFLOWEXECUTIONREQUEST._serialized_start = 16556
- _DELETEWORKFLOWEXECUTIONREQUEST._serialized_end = 16678
- _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_start = 16680
- _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_end = 16713
- _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_start = 16716
- _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_end = 17045
- _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_start = 17048
- _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_end = 17178
- _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 17181
- _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 17575
- _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 17578
- _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 17710
- _LISTWORKFLOWEXECUTIONSREQUEST._serialized_start = 17712
- _LISTWORKFLOWEXECUTIONSREQUEST._serialized_end = 17821
- _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 17823
- _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 17949
- _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 17951
- _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 18068
- _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 18071
- _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18205
- _SCANWORKFLOWEXECUTIONSREQUEST._serialized_start = 18207
- _SCANWORKFLOWEXECUTIONSREQUEST._serialized_end = 18316
- _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_start = 18318
- _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18444
- _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_start = 18446
- _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_end = 18512
- _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 18515
- _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18752
- _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_start = 18664
- _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_end = 18752
- _GETSEARCHATTRIBUTESREQUEST._serialized_start = 18754
- _GETSEARCHATTRIBUTESREQUEST._serialized_end = 18782
- _GETSEARCHATTRIBUTESRESPONSE._serialized_start = 18785
- _GETSEARCHATTRIBUTESRESPONSE._serialized_end = 18986
- _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_start = 18902
- _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_end = 18986
- _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_start = 18989
- _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_end = 19325
- _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_start = 19327
- _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_end = 19362
- _RESETSTICKYTASKQUEUEREQUEST._serialized_start = 19364
- _RESETSTICKYTASKQUEUEREQUEST._serialized_end = 19474
- _RESETSTICKYTASKQUEUERESPONSE._serialized_start = 19476
- _RESETSTICKYTASKQUEUERESPONSE._serialized_end = 19506
- _SHUTDOWNWORKERREQUEST._serialized_start = 19509
- _SHUTDOWNWORKERREQUEST._serialized_end = 19679
- _SHUTDOWNWORKERRESPONSE._serialized_start = 19681
- _SHUTDOWNWORKERRESPONSE._serialized_end = 19705
- _QUERYWORKFLOWREQUEST._serialized_start = 19708
- _QUERYWORKFLOWREQUEST._serialized_end = 19941
- _QUERYWORKFLOWRESPONSE._serialized_start = 19944
- _QUERYWORKFLOWRESPONSE._serialized_end = 20085
- _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_start = 20087
- _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_end = 20202
- _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_start = 20205
- _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_end = 20870
- _DESCRIBETASKQUEUEREQUEST._serialized_start = 20873
- _DESCRIBETASKQUEUEREQUEST._serialized_end = 21401
- _DESCRIBETASKQUEUERESPONSE._serialized_start = 21404
- _DESCRIBETASKQUEUERESPONSE._serialized_end = 22408
- _DESCRIBETASKQUEUERESPONSE_STATSBYPRIORITYKEYENTRY._serialized_start = 22088
- _DESCRIBETASKQUEUERESPONSE_STATSBYPRIORITYKEYENTRY._serialized_end = 22188
- _DESCRIBETASKQUEUERESPONSE_EFFECTIVERATELIMIT._serialized_start = 22190
- _DESCRIBETASKQUEUERESPONSE_EFFECTIVERATELIMIT._serialized_end = 22306
- _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_start = 22308
- _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_end = 22408
- _GETCLUSTERINFOREQUEST._serialized_start = 22410
- _GETCLUSTERINFOREQUEST._serialized_end = 22433
- _GETCLUSTERINFORESPONSE._serialized_start = 22436
- _GETCLUSTERINFORESPONSE._serialized_end = 22901
- _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_start = 22846
- _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_end = 22901
- _GETSYSTEMINFOREQUEST._serialized_start = 22903
- _GETSYSTEMINFOREQUEST._serialized_end = 22925
- _GETSYSTEMINFORESPONSE._serialized_start = 22928
- _GETSYSTEMINFORESPONSE._serialized_end = 23428
- _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_start = 23069
- _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_end = 23428
- _LISTTASKQUEUEPARTITIONSREQUEST._serialized_start = 23430
- _LISTTASKQUEUEPARTITIONSREQUEST._serialized_end = 23539
- _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_start = 23542
- _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_end = 23765
- _CREATESCHEDULEREQUEST._serialized_start = 23768
- _CREATESCHEDULEREQUEST._serialized_end = 24100
- _CREATESCHEDULERESPONSE._serialized_start = 24102
- _CREATESCHEDULERESPONSE._serialized_end = 24150
- _DESCRIBESCHEDULEREQUEST._serialized_start = 24152
- _DESCRIBESCHEDULEREQUEST._serialized_end = 24217
- _DESCRIBESCHEDULERESPONSE._serialized_start = 24220
- _DESCRIBESCHEDULERESPONSE._serialized_end = 24491
- _UPDATESCHEDULEREQUEST._serialized_start = 24494
- _UPDATESCHEDULEREQUEST._serialized_end = 24742
- _UPDATESCHEDULERESPONSE._serialized_start = 24744
- _UPDATESCHEDULERESPONSE._serialized_end = 24768
- _PATCHSCHEDULEREQUEST._serialized_start = 24771
- _PATCHSCHEDULEREQUEST._serialized_end = 24927
- _PATCHSCHEDULERESPONSE._serialized_start = 24929
- _PATCHSCHEDULERESPONSE._serialized_end = 24952
- _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_start = 24955
- _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_end = 25123
- _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_start = 25125
- _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_end = 25208
- _DELETESCHEDULEREQUEST._serialized_start = 25210
- _DELETESCHEDULEREQUEST._serialized_end = 25291
- _DELETESCHEDULERESPONSE._serialized_start = 25293
- _DELETESCHEDULERESPONSE._serialized_end = 25317
- _LISTSCHEDULESREQUEST._serialized_start = 25319
- _LISTSCHEDULESREQUEST._serialized_end = 25427
- _LISTSCHEDULESRESPONSE._serialized_start = 25429
- _LISTSCHEDULESRESPONSE._serialized_end = 25541
- _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 25544
- _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 26190
- _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_ADDNEWCOMPATIBLEVERSION._serialized_start = 25991
+ _POLLWORKFLOWTASKQUEUEREQUEST._serialized_end = 6628
+ _POLLWORKFLOWTASKQUEUERESPONSE._serialized_start = 6631
+ _POLLWORKFLOWTASKQUEUERESPONSE._serialized_end = 7544
+ _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_start = 7460
+ _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_end = 7544
+ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_start = 7547
+ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_end = 8752
+ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_start = 8586
+ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_end = 8681
+ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES._serialized_start = 8683
+ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES._serialized_end = 8752
+ _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_start = 8755
+ _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_end = 9000
+ _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_start = 9003
+ _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_end = 9507
+ _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_start = 9509
+ _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_end = 9544
+ _POLLACTIVITYTASKQUEUEREQUEST._serialized_start = 9547
+ _POLLACTIVITYTASKQUEUEREQUEST._serialized_end = 9973
+ _POLLACTIVITYTASKQUEUERESPONSE._serialized_start = 9976
+ _POLLACTIVITYTASKQUEUERESPONSE._serialized_end = 11008
+ _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_start = 11011
+ _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_end = 11155
+ _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_start = 11157
+ _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_end = 11269
+ _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_start = 11272
+ _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_end = 11458
+ _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_start = 11460
+ _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_end = 11576
+ _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_start = 11579
+ _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_end = 11940
+ _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_start = 11942
+ _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_end = 11980
+ _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_start = 11983
+ _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_end = 12169
+ _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_start = 12171
+ _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_end = 12213
+ _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_start = 12216
+ _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_end = 12641
+ _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_start = 12643
+ _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_end = 12730
+ _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_start = 12733
+ _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_end = 12983
+ _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_start = 12985
+ _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_end = 13076
+ _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_start = 13079
+ _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_end = 13440
+ _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_start = 13442
+ _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_end = 13479
+ _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_start = 13482
+ _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_end = 13749
+ _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_start = 13751
+ _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_end = 13792
+ _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_start = 13795
+ _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_end = 14055
+ _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_start = 14057
+ _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_end = 14097
+ _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_start = 14100
+ _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_end = 14450
+ _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_start = 14452
+ _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_end = 14485
+ _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_start = 14488
+ _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_end = 15753
+ _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_start = 15755
+ _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_end = 15830
+ _RESETWORKFLOWEXECUTIONREQUEST._serialized_start = 15833
+ _RESETWORKFLOWEXECUTIONREQUEST._serialized_end = 16282
+ _RESETWORKFLOWEXECUTIONRESPONSE._serialized_start = 16284
+ _RESETWORKFLOWEXECUTIONRESPONSE._serialized_end = 16332
+ _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_start = 16335
+ _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_end = 16622
+ _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 16624
+ _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 16660
+ _DELETEWORKFLOWEXECUTIONREQUEST._serialized_start = 16662
+ _DELETEWORKFLOWEXECUTIONREQUEST._serialized_end = 16784
+ _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_start = 16786
+ _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_end = 16819
+ _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_start = 16822
+ _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_end = 17151
+ _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_start = 17154
+ _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_end = 17284
+ _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 17287
+ _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 17681
+ _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 17684
+ _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 17816
+ _LISTWORKFLOWEXECUTIONSREQUEST._serialized_start = 17818
+ _LISTWORKFLOWEXECUTIONSREQUEST._serialized_end = 17927
+ _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 17929
+ _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18055
+ _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 18057
+ _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 18174
+ _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 18177
+ _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18311
+ _SCANWORKFLOWEXECUTIONSREQUEST._serialized_start = 18313
+ _SCANWORKFLOWEXECUTIONSREQUEST._serialized_end = 18422
+ _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_start = 18424
+ _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18550
+ _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_start = 18552
+ _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_end = 18618
+ _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 18621
+ _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 18858
+ _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_start = 18770
+ _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_end = 18858
+ _GETSEARCHATTRIBUTESREQUEST._serialized_start = 18860
+ _GETSEARCHATTRIBUTESREQUEST._serialized_end = 18888
+ _GETSEARCHATTRIBUTESRESPONSE._serialized_start = 18891
+ _GETSEARCHATTRIBUTESRESPONSE._serialized_end = 19092
+ _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_start = 19008
+ _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_end = 19092
+ _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_start = 19095
+ _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_end = 19431
+ _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_start = 19433
+ _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_end = 19468
+ _RESETSTICKYTASKQUEUEREQUEST._serialized_start = 19470
+ _RESETSTICKYTASKQUEUEREQUEST._serialized_end = 19580
+ _RESETSTICKYTASKQUEUERESPONSE._serialized_start = 19582
+ _RESETSTICKYTASKQUEUERESPONSE._serialized_end = 19612
+ _SHUTDOWNWORKERREQUEST._serialized_start = 19615
+ _SHUTDOWNWORKERREQUEST._serialized_end = 19898
+ _SHUTDOWNWORKERRESPONSE._serialized_start = 19900
+ _SHUTDOWNWORKERRESPONSE._serialized_end = 19924
+ _QUERYWORKFLOWREQUEST._serialized_start = 19927
+ _QUERYWORKFLOWREQUEST._serialized_end = 20160
+ _QUERYWORKFLOWRESPONSE._serialized_start = 20163
+ _QUERYWORKFLOWRESPONSE._serialized_end = 20304
+ _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_start = 20306
+ _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_end = 20421
+ _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_start = 20424
+ _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_end = 21089
+ _DESCRIBETASKQUEUEREQUEST._serialized_start = 21092
+ _DESCRIBETASKQUEUEREQUEST._serialized_end = 21620
+ _DESCRIBETASKQUEUERESPONSE._serialized_start = 21623
+ _DESCRIBETASKQUEUERESPONSE._serialized_end = 22627
+ _DESCRIBETASKQUEUERESPONSE_STATSBYPRIORITYKEYENTRY._serialized_start = 22307
+ _DESCRIBETASKQUEUERESPONSE_STATSBYPRIORITYKEYENTRY._serialized_end = 22407
+ _DESCRIBETASKQUEUERESPONSE_EFFECTIVERATELIMIT._serialized_start = 22409
+ _DESCRIBETASKQUEUERESPONSE_EFFECTIVERATELIMIT._serialized_end = 22525
+ _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_start = 22527
+ _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_end = 22627
+ _GETCLUSTERINFOREQUEST._serialized_start = 22629
+ _GETCLUSTERINFOREQUEST._serialized_end = 22652
+ _GETCLUSTERINFORESPONSE._serialized_start = 22655
+ _GETCLUSTERINFORESPONSE._serialized_end = 23120
+ _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_start = 23065
+ _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_end = 23120
+ _GETSYSTEMINFOREQUEST._serialized_start = 23122
+ _GETSYSTEMINFOREQUEST._serialized_end = 23144
+ _GETSYSTEMINFORESPONSE._serialized_start = 23147
+ _GETSYSTEMINFORESPONSE._serialized_end = 23647
+ _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_start = 23288
+ _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_end = 23647
+ _LISTTASKQUEUEPARTITIONSREQUEST._serialized_start = 23649
+ _LISTTASKQUEUEPARTITIONSREQUEST._serialized_end = 23758
+ _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_start = 23761
+ _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_end = 23984
+ _CREATESCHEDULEREQUEST._serialized_start = 23987
+ _CREATESCHEDULEREQUEST._serialized_end = 24319
+ _CREATESCHEDULERESPONSE._serialized_start = 24321
+ _CREATESCHEDULERESPONSE._serialized_end = 24369
+ _DESCRIBESCHEDULEREQUEST._serialized_start = 24371
+ _DESCRIBESCHEDULEREQUEST._serialized_end = 24436
+ _DESCRIBESCHEDULERESPONSE._serialized_start = 24439
+ _DESCRIBESCHEDULERESPONSE._serialized_end = 24710
+ _UPDATESCHEDULEREQUEST._serialized_start = 24713
+ _UPDATESCHEDULEREQUEST._serialized_end = 24961
+ _UPDATESCHEDULERESPONSE._serialized_start = 24963
+ _UPDATESCHEDULERESPONSE._serialized_end = 24987
+ _PATCHSCHEDULEREQUEST._serialized_start = 24990
+ _PATCHSCHEDULEREQUEST._serialized_end = 25146
+ _PATCHSCHEDULERESPONSE._serialized_start = 25148
+ _PATCHSCHEDULERESPONSE._serialized_end = 25171
+ _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_start = 25174
+ _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_end = 25342
+ _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_start = 25344
+ _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_end = 25427
+ _DELETESCHEDULEREQUEST._serialized_start = 25429
+ _DELETESCHEDULEREQUEST._serialized_end = 25510
+ _DELETESCHEDULERESPONSE._serialized_start = 25512
+ _DELETESCHEDULERESPONSE._serialized_end = 25536
+ _LISTSCHEDULESREQUEST._serialized_start = 25538
+ _LISTSCHEDULESREQUEST._serialized_end = 25646
+ _LISTSCHEDULESRESPONSE._serialized_start = 25648
+ _LISTSCHEDULESRESPONSE._serialized_end = 25760
+ _COUNTSCHEDULESREQUEST._serialized_start = 25762
+ _COUNTSCHEDULESREQUEST._serialized_end = 25819
+ _COUNTSCHEDULESRESPONSE._serialized_start = 25822
+ _COUNTSCHEDULESRESPONSE._serialized_end = 26041
+ _COUNTSCHEDULESRESPONSE_AGGREGATIONGROUP._serialized_start = 18770
+ _COUNTSCHEDULESRESPONSE_AGGREGATIONGROUP._serialized_end = 18858
+ _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 26044
+ _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 26690
+ _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_ADDNEWCOMPATIBLEVERSION._serialized_start = 26491
_UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_ADDNEWCOMPATIBLEVERSION._serialized_end = (
- 26102
+ 26602
)
- _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_start = 26104
- _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_end = 26177
- _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 26192
- _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 26256
- _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 26258
- _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 26353
- _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 26355
- _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 26471
- _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_start = 26474
- _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_end = 28191
- _UPDATEWORKERVERSIONINGRULESREQUEST_INSERTBUILDIDASSIGNMENTRULE._serialized_start = 27526
+ _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_start = 26604
+ _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_end = 26677
+ _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 26692
+ _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 26756
+ _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 26758
+ _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 26853
+ _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 26855
+ _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 26971
+ _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_start = 26974
+ _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_end = 28691
+ _UPDATEWORKERVERSIONINGRULESREQUEST_INSERTBUILDIDASSIGNMENTRULE._serialized_start = 28026
_UPDATEWORKERVERSIONINGRULESREQUEST_INSERTBUILDIDASSIGNMENTRULE._serialized_end = (
- 27639
+ 28139
)
- _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACEBUILDIDASSIGNMENTRULE._serialized_start = 27642
+ _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACEBUILDIDASSIGNMENTRULE._serialized_start = 28142
_UPDATEWORKERVERSIONINGRULESREQUEST_REPLACEBUILDIDASSIGNMENTRULE._serialized_end = (
- 27771
+ 28271
)
- _UPDATEWORKERVERSIONINGRULESREQUEST_DELETEBUILDIDASSIGNMENTRULE._serialized_start = 27773
+ _UPDATEWORKERVERSIONINGRULESREQUEST_DELETEBUILDIDASSIGNMENTRULE._serialized_start = 28273
_UPDATEWORKERVERSIONINGRULESREQUEST_DELETEBUILDIDASSIGNMENTRULE._serialized_end = (
- 27837
+ 28337
)
- _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 27839
- _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 27945
- _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 27947
- _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 28057
- _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 28059
- _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 28121
- _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_start = 28123
- _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_end = 28178
- _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_start = 28194
- _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_end = 28446
- _GETWORKERVERSIONINGRULESREQUEST._serialized_start = 28448
- _GETWORKERVERSIONINGRULESREQUEST._serialized_end = 28520
- _GETWORKERVERSIONINGRULESRESPONSE._serialized_start = 28523
- _GETWORKERVERSIONINGRULESRESPONSE._serialized_end = 28772
- _GETWORKERTASKREACHABILITYREQUEST._serialized_start = 28775
- _GETWORKERTASKREACHABILITYREQUEST._serialized_end = 28931
- _GETWORKERTASKREACHABILITYRESPONSE._serialized_start = 28933
- _GETWORKERTASKREACHABILITYRESPONSE._serialized_end = 29047
- _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_start = 29050
- _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_end = 29311
- _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 29314
- _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 29529
- _STARTBATCHOPERATIONREQUEST._serialized_start = 29532
- _STARTBATCHOPERATIONREQUEST._serialized_end = 30544
- _STARTBATCHOPERATIONRESPONSE._serialized_start = 30546
- _STARTBATCHOPERATIONRESPONSE._serialized_end = 30575
- _STOPBATCHOPERATIONREQUEST._serialized_start = 30577
- _STOPBATCHOPERATIONREQUEST._serialized_end = 30673
- _STOPBATCHOPERATIONRESPONSE._serialized_start = 30675
- _STOPBATCHOPERATIONRESPONSE._serialized_end = 30703
- _DESCRIBEBATCHOPERATIONREQUEST._serialized_start = 30705
- _DESCRIBEBATCHOPERATIONREQUEST._serialized_end = 30771
- _DESCRIBEBATCHOPERATIONRESPONSE._serialized_start = 30774
- _DESCRIBEBATCHOPERATIONRESPONSE._serialized_end = 31176
- _LISTBATCHOPERATIONSREQUEST._serialized_start = 31178
- _LISTBATCHOPERATIONSREQUEST._serialized_end = 31269
- _LISTBATCHOPERATIONSRESPONSE._serialized_start = 31271
- _LISTBATCHOPERATIONSRESPONSE._serialized_end = 31392
- _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_start = 31395
- _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_end = 31580
- _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_start = 31583
- _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_end = 31802
- _POLLNEXUSTASKQUEUEREQUEST._serialized_start = 31805
- _POLLNEXUSTASKQUEUEREQUEST._serialized_end = 32167
- _POLLNEXUSTASKQUEUERESPONSE._serialized_start = 32170
- _POLLNEXUSTASKQUEUERESPONSE._serialized_end = 32350
- _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_start = 32353
- _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_end = 32495
- _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_start = 32497
- _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_end = 32532
- _RESPONDNEXUSTASKFAILEDREQUEST._serialized_start = 32535
- _RESPONDNEXUSTASKFAILEDREQUEST._serialized_end = 32675
- _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_start = 32677
- _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_end = 32709
- _EXECUTEMULTIOPERATIONREQUEST._serialized_start = 32712
- _EXECUTEMULTIOPERATIONREQUEST._serialized_end = 33063
- _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_start = 32857
- _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_end = 33063
- _EXECUTEMULTIOPERATIONRESPONSE._serialized_start = 33066
- _EXECUTEMULTIOPERATIONRESPONSE._serialized_end = 33398
- _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_start = 33192
- _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_end = 33398
- _UPDATEACTIVITYOPTIONSREQUEST._serialized_start = 33401
- _UPDATEACTIVITYOPTIONSREQUEST._serialized_end = 33737
- _UPDATEACTIVITYOPTIONSRESPONSE._serialized_start = 33739
- _UPDATEACTIVITYOPTIONSRESPONSE._serialized_end = 33839
- _PAUSEACTIVITYREQUEST._serialized_start = 33842
- _PAUSEACTIVITYREQUEST._serialized_end = 34021
- _PAUSEACTIVITYRESPONSE._serialized_start = 34023
- _PAUSEACTIVITYRESPONSE._serialized_end = 34046
- _UNPAUSEACTIVITYREQUEST._serialized_start = 34049
- _UNPAUSEACTIVITYREQUEST._serialized_end = 34329
- _UNPAUSEACTIVITYRESPONSE._serialized_start = 34331
- _UNPAUSEACTIVITYRESPONSE._serialized_end = 34356
- _RESETACTIVITYREQUEST._serialized_start = 34359
- _RESETACTIVITYREQUEST._serialized_end = 34666
- _RESETACTIVITYRESPONSE._serialized_start = 34668
- _RESETACTIVITYRESPONSE._serialized_end = 34691
- _UPDATEWORKFLOWEXECUTIONOPTIONSREQUEST._serialized_start = 34694
- _UPDATEWORKFLOWEXECUTIONOPTIONSREQUEST._serialized_end = 34978
- _UPDATEWORKFLOWEXECUTIONOPTIONSRESPONSE._serialized_start = 34981
- _UPDATEWORKFLOWEXECUTIONOPTIONSRESPONSE._serialized_end = 35109
- _DESCRIBEDEPLOYMENTREQUEST._serialized_start = 35111
- _DESCRIBEDEPLOYMENTREQUEST._serialized_end = 35217
- _DESCRIBEDEPLOYMENTRESPONSE._serialized_start = 35219
- _DESCRIBEDEPLOYMENTRESPONSE._serialized_end = 35316
- _DESCRIBEWORKERDEPLOYMENTVERSIONREQUEST._serialized_start = 35319
- _DESCRIBEWORKERDEPLOYMENTVERSIONREQUEST._serialized_end = 35513
- _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_start = 35516
- _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_end = 36168
- _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE._serialized_start = 35777
- _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE._serialized_end = 36168
- _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE_STATSBYPRIORITYKEYENTRY._serialized_start = 22088
- _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE_STATSBYPRIORITYKEYENTRY._serialized_end = 22188
- _DESCRIBEWORKERDEPLOYMENTREQUEST._serialized_start = 36170
- _DESCRIBEWORKERDEPLOYMENTREQUEST._serialized_end = 36247
- _DESCRIBEWORKERDEPLOYMENTRESPONSE._serialized_start = 36250
- _DESCRIBEWORKERDEPLOYMENTRESPONSE._serialized_end = 36390
- _LISTDEPLOYMENTSREQUEST._serialized_start = 36392
- _LISTDEPLOYMENTSREQUEST._serialized_end = 36500
- _LISTDEPLOYMENTSRESPONSE._serialized_start = 36502
- _LISTDEPLOYMENTSRESPONSE._serialized_end = 36621
- _SETCURRENTDEPLOYMENTREQUEST._serialized_start = 36624
- _SETCURRENTDEPLOYMENTREQUEST._serialized_end = 36829
- _SETCURRENTDEPLOYMENTRESPONSE._serialized_start = 36832
- _SETCURRENTDEPLOYMENTRESPONSE._serialized_end = 37017
- _SETWORKERDEPLOYMENTCURRENTVERSIONREQUEST._serialized_start = 37020
- _SETWORKERDEPLOYMENTCURRENTVERSIONREQUEST._serialized_end = 37249
- _SETWORKERDEPLOYMENTCURRENTVERSIONRESPONSE._serialized_start = 37252
- _SETWORKERDEPLOYMENTCURRENTVERSIONRESPONSE._serialized_end = 37443
- _SETWORKERDEPLOYMENTRAMPINGVERSIONREQUEST._serialized_start = 37446
- _SETWORKERDEPLOYMENTRAMPINGVERSIONREQUEST._serialized_end = 37695
- _SETWORKERDEPLOYMENTRAMPINGVERSIONRESPONSE._serialized_start = 37698
- _SETWORKERDEPLOYMENTRAMPINGVERSIONRESPONSE._serialized_end = 37922
- _LISTWORKERDEPLOYMENTSREQUEST._serialized_start = 37924
- _LISTWORKERDEPLOYMENTSREQUEST._serialized_end = 38017
- _LISTWORKERDEPLOYMENTSRESPONSE._serialized_start = 38020
- _LISTWORKERDEPLOYMENTSRESPONSE._serialized_end = 38691
- _LISTWORKERDEPLOYMENTSRESPONSE_WORKERDEPLOYMENTSUMMARY._serialized_start = 38195
- _LISTWORKERDEPLOYMENTSRESPONSE_WORKERDEPLOYMENTSUMMARY._serialized_end = 38691
- _DELETEWORKERDEPLOYMENTVERSIONREQUEST._serialized_start = 38694
- _DELETEWORKERDEPLOYMENTVERSIONREQUEST._serialized_end = 38894
- _DELETEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_start = 38896
- _DELETEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_end = 38935
- _DELETEWORKERDEPLOYMENTREQUEST._serialized_start = 38937
- _DELETEWORKERDEPLOYMENTREQUEST._serialized_end = 39030
- _DELETEWORKERDEPLOYMENTRESPONSE._serialized_start = 39032
- _DELETEWORKERDEPLOYMENTRESPONSE._serialized_end = 39064
- _UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST._serialized_start = 39067
- _UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST._serialized_end = 39485
- _UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST_UPSERTENTRIESENTRY._serialized_start = 39400
+ _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 28339
+ _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 28445
+ _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 28447
+ _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 28557
+ _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 28559
+ _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 28621
+ _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_start = 28623
+ _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_end = 28678
+ _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_start = 28694
+ _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_end = 28946
+ _GETWORKERVERSIONINGRULESREQUEST._serialized_start = 28948
+ _GETWORKERVERSIONINGRULESREQUEST._serialized_end = 29020
+ _GETWORKERVERSIONINGRULESRESPONSE._serialized_start = 29023
+ _GETWORKERVERSIONINGRULESRESPONSE._serialized_end = 29272
+ _GETWORKERTASKREACHABILITYREQUEST._serialized_start = 29275
+ _GETWORKERTASKREACHABILITYREQUEST._serialized_end = 29431
+ _GETWORKERTASKREACHABILITYRESPONSE._serialized_start = 29433
+ _GETWORKERTASKREACHABILITYRESPONSE._serialized_end = 29547
+ _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_start = 29550
+ _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_end = 29811
+ _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 29814
+ _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 30029
+ _STARTBATCHOPERATIONREQUEST._serialized_start = 30032
+ _STARTBATCHOPERATIONREQUEST._serialized_end = 31044
+ _STARTBATCHOPERATIONRESPONSE._serialized_start = 31046
+ _STARTBATCHOPERATIONRESPONSE._serialized_end = 31075
+ _STOPBATCHOPERATIONREQUEST._serialized_start = 31077
+ _STOPBATCHOPERATIONREQUEST._serialized_end = 31173
+ _STOPBATCHOPERATIONRESPONSE._serialized_start = 31175
+ _STOPBATCHOPERATIONRESPONSE._serialized_end = 31203
+ _DESCRIBEBATCHOPERATIONREQUEST._serialized_start = 31205
+ _DESCRIBEBATCHOPERATIONREQUEST._serialized_end = 31271
+ _DESCRIBEBATCHOPERATIONRESPONSE._serialized_start = 31274
+ _DESCRIBEBATCHOPERATIONRESPONSE._serialized_end = 31676
+ _LISTBATCHOPERATIONSREQUEST._serialized_start = 31678
+ _LISTBATCHOPERATIONSREQUEST._serialized_end = 31769
+ _LISTBATCHOPERATIONSRESPONSE._serialized_start = 31771
+ _LISTBATCHOPERATIONSRESPONSE._serialized_end = 31892
+ _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_start = 31895
+ _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_end = 32080
+ _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_start = 32083
+ _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_end = 32302
+ _POLLNEXUSTASKQUEUEREQUEST._serialized_start = 32305
+ _POLLNEXUSTASKQUEUEREQUEST._serialized_end = 32696
+ _POLLNEXUSTASKQUEUERESPONSE._serialized_start = 32699
+ _POLLNEXUSTASKQUEUERESPONSE._serialized_end = 32879
+ _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_start = 32882
+ _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_end = 33024
+ _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_start = 33026
+ _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_end = 33061
+ _RESPONDNEXUSTASKFAILEDREQUEST._serialized_start = 33064
+ _RESPONDNEXUSTASKFAILEDREQUEST._serialized_end = 33259
+ _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_start = 33261
+ _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_end = 33293
+ _EXECUTEMULTIOPERATIONREQUEST._serialized_start = 33296
+ _EXECUTEMULTIOPERATIONREQUEST._serialized_end = 33647
+ _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_start = 33441
+ _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_end = 33647
+ _EXECUTEMULTIOPERATIONRESPONSE._serialized_start = 33650
+ _EXECUTEMULTIOPERATIONRESPONSE._serialized_end = 33982
+ _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_start = 33776
+ _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_end = 33982
+ _UPDATEACTIVITYOPTIONSREQUEST._serialized_start = 33985
+ _UPDATEACTIVITYOPTIONSREQUEST._serialized_end = 34321
+ _UPDATEACTIVITYOPTIONSRESPONSE._serialized_start = 34323
+ _UPDATEACTIVITYOPTIONSRESPONSE._serialized_end = 34423
+ _PAUSEACTIVITYREQUEST._serialized_start = 34426
+ _PAUSEACTIVITYREQUEST._serialized_end = 34605
+ _PAUSEACTIVITYRESPONSE._serialized_start = 34607
+ _PAUSEACTIVITYRESPONSE._serialized_end = 34630
+ _UNPAUSEACTIVITYREQUEST._serialized_start = 34633
+ _UNPAUSEACTIVITYREQUEST._serialized_end = 34913
+ _UNPAUSEACTIVITYRESPONSE._serialized_start = 34915
+ _UNPAUSEACTIVITYRESPONSE._serialized_end = 34940
+ _RESETACTIVITYREQUEST._serialized_start = 34943
+ _RESETACTIVITYREQUEST._serialized_end = 35250
+ _RESETACTIVITYRESPONSE._serialized_start = 35252
+ _RESETACTIVITYRESPONSE._serialized_end = 35275
+ _UPDATEWORKFLOWEXECUTIONOPTIONSREQUEST._serialized_start = 35278
+ _UPDATEWORKFLOWEXECUTIONOPTIONSREQUEST._serialized_end = 35562
+ _UPDATEWORKFLOWEXECUTIONOPTIONSRESPONSE._serialized_start = 35565
+ _UPDATEWORKFLOWEXECUTIONOPTIONSRESPONSE._serialized_end = 35693
+ _DESCRIBEDEPLOYMENTREQUEST._serialized_start = 35695
+ _DESCRIBEDEPLOYMENTREQUEST._serialized_end = 35801
+ _DESCRIBEDEPLOYMENTRESPONSE._serialized_start = 35803
+ _DESCRIBEDEPLOYMENTRESPONSE._serialized_end = 35900
+ _DESCRIBEWORKERDEPLOYMENTVERSIONREQUEST._serialized_start = 35903
+ _DESCRIBEWORKERDEPLOYMENTVERSIONREQUEST._serialized_end = 36097
+ _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_start = 36100
+ _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_end = 36752
+ _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE._serialized_start = 36361
+ _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE._serialized_end = 36752
+ _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE_STATSBYPRIORITYKEYENTRY._serialized_start = 22307
+ _DESCRIBEWORKERDEPLOYMENTVERSIONRESPONSE_VERSIONTASKQUEUE_STATSBYPRIORITYKEYENTRY._serialized_end = 22407
+ _DESCRIBEWORKERDEPLOYMENTREQUEST._serialized_start = 36754
+ _DESCRIBEWORKERDEPLOYMENTREQUEST._serialized_end = 36831
+ _DESCRIBEWORKERDEPLOYMENTRESPONSE._serialized_start = 36834
+ _DESCRIBEWORKERDEPLOYMENTRESPONSE._serialized_end = 36974
+ _LISTDEPLOYMENTSREQUEST._serialized_start = 36976
+ _LISTDEPLOYMENTSREQUEST._serialized_end = 37084
+ _LISTDEPLOYMENTSRESPONSE._serialized_start = 37086
+ _LISTDEPLOYMENTSRESPONSE._serialized_end = 37205
+ _SETCURRENTDEPLOYMENTREQUEST._serialized_start = 37208
+ _SETCURRENTDEPLOYMENTREQUEST._serialized_end = 37413
+ _SETCURRENTDEPLOYMENTRESPONSE._serialized_start = 37416
+ _SETCURRENTDEPLOYMENTRESPONSE._serialized_end = 37601
+ _SETWORKERDEPLOYMENTCURRENTVERSIONREQUEST._serialized_start = 37604
+ _SETWORKERDEPLOYMENTCURRENTVERSIONREQUEST._serialized_end = 37833
+ _SETWORKERDEPLOYMENTCURRENTVERSIONRESPONSE._serialized_start = 37836
+ _SETWORKERDEPLOYMENTCURRENTVERSIONRESPONSE._serialized_end = 38027
+ _SETWORKERDEPLOYMENTRAMPINGVERSIONREQUEST._serialized_start = 38030
+ _SETWORKERDEPLOYMENTRAMPINGVERSIONREQUEST._serialized_end = 38279
+ _SETWORKERDEPLOYMENTRAMPINGVERSIONRESPONSE._serialized_start = 38282
+ _SETWORKERDEPLOYMENTRAMPINGVERSIONRESPONSE._serialized_end = 38506
+ _LISTWORKERDEPLOYMENTSREQUEST._serialized_start = 38508
+ _LISTWORKERDEPLOYMENTSREQUEST._serialized_end = 38601
+ _LISTWORKERDEPLOYMENTSRESPONSE._serialized_start = 38604
+ _LISTWORKERDEPLOYMENTSRESPONSE._serialized_end = 39275
+ _LISTWORKERDEPLOYMENTSRESPONSE_WORKERDEPLOYMENTSUMMARY._serialized_start = 38779
+ _LISTWORKERDEPLOYMENTSRESPONSE_WORKERDEPLOYMENTSUMMARY._serialized_end = 39275
+ _DELETEWORKERDEPLOYMENTVERSIONREQUEST._serialized_start = 39278
+ _DELETEWORKERDEPLOYMENTVERSIONREQUEST._serialized_end = 39478
+ _DELETEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_start = 39480
+ _DELETEWORKERDEPLOYMENTVERSIONRESPONSE._serialized_end = 39519
+ _DELETEWORKERDEPLOYMENTREQUEST._serialized_start = 39521
+ _DELETEWORKERDEPLOYMENTREQUEST._serialized_end = 39614
+ _DELETEWORKERDEPLOYMENTRESPONSE._serialized_start = 39616
+ _DELETEWORKERDEPLOYMENTRESPONSE._serialized_end = 39648
+ _UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST._serialized_start = 39651
+ _UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST._serialized_end = 40069
+ _UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST_UPSERTENTRIESENTRY._serialized_start = 39984
_UPDATEWORKERDEPLOYMENTVERSIONMETADATAREQUEST_UPSERTENTRIESENTRY._serialized_end = (
- 39485
+ 40069
)
- _UPDATEWORKERDEPLOYMENTVERSIONMETADATARESPONSE._serialized_start = 39487
- _UPDATEWORKERDEPLOYMENTVERSIONMETADATARESPONSE._serialized_end = 39597
- _SETWORKERDEPLOYMENTMANAGERREQUEST._serialized_start = 39600
- _SETWORKERDEPLOYMENTMANAGERREQUEST._serialized_end = 39789
- _SETWORKERDEPLOYMENTMANAGERRESPONSE._serialized_start = 39791
- _SETWORKERDEPLOYMENTMANAGERRESPONSE._serialized_end = 39890
- _GETCURRENTDEPLOYMENTREQUEST._serialized_start = 39892
- _GETCURRENTDEPLOYMENTREQUEST._serialized_end = 39961
- _GETCURRENTDEPLOYMENTRESPONSE._serialized_start = 39963
- _GETCURRENTDEPLOYMENTRESPONSE._serialized_end = 40070
- _GETDEPLOYMENTREACHABILITYREQUEST._serialized_start = 40072
- _GETDEPLOYMENTREACHABILITYREQUEST._serialized_end = 40185
- _GETDEPLOYMENTREACHABILITYRESPONSE._serialized_start = 40188
- _GETDEPLOYMENTREACHABILITYRESPONSE._serialized_end = 40415
- _CREATEWORKFLOWRULEREQUEST._serialized_start = 40418
- _CREATEWORKFLOWRULEREQUEST._serialized_end = 40598
- _CREATEWORKFLOWRULERESPONSE._serialized_start = 40600
- _CREATEWORKFLOWRULERESPONSE._serialized_end = 40695
- _DESCRIBEWORKFLOWRULEREQUEST._serialized_start = 40697
- _DESCRIBEWORKFLOWRULEREQUEST._serialized_end = 40762
- _DESCRIBEWORKFLOWRULERESPONSE._serialized_start = 40764
- _DESCRIBEWORKFLOWRULERESPONSE._serialized_end = 40845
- _DELETEWORKFLOWRULEREQUEST._serialized_start = 40847
- _DELETEWORKFLOWRULEREQUEST._serialized_end = 40910
- _DELETEWORKFLOWRULERESPONSE._serialized_start = 40912
- _DELETEWORKFLOWRULERESPONSE._serialized_end = 40940
- _LISTWORKFLOWRULESREQUEST._serialized_start = 40942
- _LISTWORKFLOWRULESREQUEST._serialized_end = 41012
- _LISTWORKFLOWRULESRESPONSE._serialized_start = 41014
- _LISTWORKFLOWRULESRESPONSE._serialized_end = 41118
- _TRIGGERWORKFLOWRULEREQUEST._serialized_start = 41121
- _TRIGGERWORKFLOWRULEREQUEST._serialized_end = 41327
- _TRIGGERWORKFLOWRULERESPONSE._serialized_start = 41329
- _TRIGGERWORKFLOWRULERESPONSE._serialized_end = 41375
- _RECORDWORKERHEARTBEATREQUEST._serialized_start = 41378
- _RECORDWORKERHEARTBEATREQUEST._serialized_end = 41512
- _RECORDWORKERHEARTBEATRESPONSE._serialized_start = 41514
- _RECORDWORKERHEARTBEATRESPONSE._serialized_end = 41545
- _LISTWORKERSREQUEST._serialized_start = 41547
- _LISTWORKERSREQUEST._serialized_end = 41645
- _LISTWORKERSRESPONSE._serialized_start = 41647
- _LISTWORKERSRESPONSE._serialized_end = 41751
- _UPDATETASKQUEUECONFIGREQUEST._serialized_start = 41754
- _UPDATETASKQUEUECONFIGREQUEST._serialized_end = 42479
- _UPDATETASKQUEUECONFIGREQUEST_RATELIMITUPDATE._serialized_start = 42321
- _UPDATETASKQUEUECONFIGREQUEST_RATELIMITUPDATE._serialized_end = 42412
+ _UPDATEWORKERDEPLOYMENTVERSIONMETADATARESPONSE._serialized_start = 40071
+ _UPDATEWORKERDEPLOYMENTVERSIONMETADATARESPONSE._serialized_end = 40181
+ _SETWORKERDEPLOYMENTMANAGERREQUEST._serialized_start = 40184
+ _SETWORKERDEPLOYMENTMANAGERREQUEST._serialized_end = 40373
+ _SETWORKERDEPLOYMENTMANAGERRESPONSE._serialized_start = 40375
+ _SETWORKERDEPLOYMENTMANAGERRESPONSE._serialized_end = 40474
+ _GETCURRENTDEPLOYMENTREQUEST._serialized_start = 40476
+ _GETCURRENTDEPLOYMENTREQUEST._serialized_end = 40545
+ _GETCURRENTDEPLOYMENTRESPONSE._serialized_start = 40547
+ _GETCURRENTDEPLOYMENTRESPONSE._serialized_end = 40654
+ _GETDEPLOYMENTREACHABILITYREQUEST._serialized_start = 40656
+ _GETDEPLOYMENTREACHABILITYREQUEST._serialized_end = 40769
+ _GETDEPLOYMENTREACHABILITYRESPONSE._serialized_start = 40772
+ _GETDEPLOYMENTREACHABILITYRESPONSE._serialized_end = 40999
+ _CREATEWORKFLOWRULEREQUEST._serialized_start = 41002
+ _CREATEWORKFLOWRULEREQUEST._serialized_end = 41182
+ _CREATEWORKFLOWRULERESPONSE._serialized_start = 41184
+ _CREATEWORKFLOWRULERESPONSE._serialized_end = 41279
+ _DESCRIBEWORKFLOWRULEREQUEST._serialized_start = 41281
+ _DESCRIBEWORKFLOWRULEREQUEST._serialized_end = 41346
+ _DESCRIBEWORKFLOWRULERESPONSE._serialized_start = 41348
+ _DESCRIBEWORKFLOWRULERESPONSE._serialized_end = 41429
+ _DELETEWORKFLOWRULEREQUEST._serialized_start = 41431
+ _DELETEWORKFLOWRULEREQUEST._serialized_end = 41494
+ _DELETEWORKFLOWRULERESPONSE._serialized_start = 41496
+ _DELETEWORKFLOWRULERESPONSE._serialized_end = 41524
+ _LISTWORKFLOWRULESREQUEST._serialized_start = 41526
+ _LISTWORKFLOWRULESREQUEST._serialized_end = 41596
+ _LISTWORKFLOWRULESRESPONSE._serialized_start = 41598
+ _LISTWORKFLOWRULESRESPONSE._serialized_end = 41702
+ _TRIGGERWORKFLOWRULEREQUEST._serialized_start = 41705
+ _TRIGGERWORKFLOWRULEREQUEST._serialized_end = 41911
+ _TRIGGERWORKFLOWRULERESPONSE._serialized_start = 41913
+ _TRIGGERWORKFLOWRULERESPONSE._serialized_end = 41959
+ _RECORDWORKERHEARTBEATREQUEST._serialized_start = 41962
+ _RECORDWORKERHEARTBEATREQUEST._serialized_end = 42096
+ _RECORDWORKERHEARTBEATRESPONSE._serialized_start = 42098
+ _RECORDWORKERHEARTBEATRESPONSE._serialized_end = 42129
+ _LISTWORKERSREQUEST._serialized_start = 42131
+ _LISTWORKERSREQUEST._serialized_end = 42229
+ _LISTWORKERSRESPONSE._serialized_start = 42231
+ _LISTWORKERSRESPONSE._serialized_end = 42335
+ _UPDATETASKQUEUECONFIGREQUEST._serialized_start = 42338
+ _UPDATETASKQUEUECONFIGREQUEST._serialized_end = 43063
+ _UPDATETASKQUEUECONFIGREQUEST_RATELIMITUPDATE._serialized_start = 42905
+ _UPDATETASKQUEUECONFIGREQUEST_RATELIMITUPDATE._serialized_end = 42996
_UPDATETASKQUEUECONFIGREQUEST_SETFAIRNESSWEIGHTOVERRIDESENTRY._serialized_start = (
- 42414
+ 42998
)
_UPDATETASKQUEUECONFIGREQUEST_SETFAIRNESSWEIGHTOVERRIDESENTRY._serialized_end = (
- 42479
+ 43063
)
- _UPDATETASKQUEUECONFIGRESPONSE._serialized_start = 42481
- _UPDATETASKQUEUECONFIGRESPONSE._serialized_end = 42572
- _FETCHWORKERCONFIGREQUEST._serialized_start = 42575
- _FETCHWORKERCONFIGREQUEST._serialized_end = 42712
- _FETCHWORKERCONFIGRESPONSE._serialized_start = 42714
- _FETCHWORKERCONFIGRESPONSE._serialized_end = 42799
- _UPDATEWORKERCONFIGREQUEST._serialized_start = 42802
- _UPDATEWORKERCONFIGREQUEST._serialized_end = 43047
- _UPDATEWORKERCONFIGRESPONSE._serialized_start = 43049
- _UPDATEWORKERCONFIGRESPONSE._serialized_end = 43149
- _DESCRIBEWORKERREQUEST._serialized_start = 43151
- _DESCRIBEWORKERREQUEST._serialized_end = 43222
- _DESCRIBEWORKERRESPONSE._serialized_start = 43224
- _DESCRIBEWORKERRESPONSE._serialized_end = 43305
- _PAUSEWORKFLOWEXECUTIONREQUEST._serialized_start = 43308
- _PAUSEWORKFLOWEXECUTIONREQUEST._serialized_end = 43449
- _PAUSEWORKFLOWEXECUTIONRESPONSE._serialized_start = 43451
- _PAUSEWORKFLOWEXECUTIONRESPONSE._serialized_end = 43483
- _UNPAUSEWORKFLOWEXECUTIONREQUEST._serialized_start = 43486
- _UNPAUSEWORKFLOWEXECUTIONREQUEST._serialized_end = 43629
- _UNPAUSEWORKFLOWEXECUTIONRESPONSE._serialized_start = 43631
- _UNPAUSEWORKFLOWEXECUTIONRESPONSE._serialized_end = 43665
- _STARTACTIVITYEXECUTIONREQUEST._serialized_start = 43668
- _STARTACTIVITYEXECUTIONREQUEST._serialized_end = 44616
- _STARTACTIVITYEXECUTIONRESPONSE._serialized_start = 44618
- _STARTACTIVITYEXECUTIONRESPONSE._serialized_end = 44683
- _DESCRIBEACTIVITYEXECUTIONREQUEST._serialized_start = 44686
- _DESCRIBEACTIVITYEXECUTIONREQUEST._serialized_end = 44849
- _DESCRIBEACTIVITYEXECUTIONRESPONSE._serialized_start = 44852
- _DESCRIBEACTIVITYEXECUTIONRESPONSE._serialized_end = 45109
- _POLLACTIVITYEXECUTIONREQUEST._serialized_start = 45111
- _POLLACTIVITYEXECUTIONREQUEST._serialized_end = 45197
- _POLLACTIVITYEXECUTIONRESPONSE._serialized_start = 45199
- _POLLACTIVITYEXECUTIONRESPONSE._serialized_end = 45315
- _LISTACTIVITYEXECUTIONSREQUEST._serialized_start = 45317
- _LISTACTIVITYEXECUTIONSREQUEST._serialized_end = 45426
- _LISTACTIVITYEXECUTIONSRESPONSE._serialized_start = 45429
- _LISTACTIVITYEXECUTIONSRESPONSE._serialized_end = 45559
- _COUNTACTIVITYEXECUTIONSREQUEST._serialized_start = 45561
- _COUNTACTIVITYEXECUTIONSREQUEST._serialized_end = 45627
- _COUNTACTIVITYEXECUTIONSRESPONSE._serialized_start = 45630
- _COUNTACTIVITYEXECUTIONSRESPONSE._serialized_end = 45867
- _COUNTACTIVITYEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_start = 18664
- _COUNTACTIVITYEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_end = 18752
- _REQUESTCANCELACTIVITYEXECUTIONREQUEST._serialized_start = 45870
- _REQUESTCANCELACTIVITYEXECUTIONREQUEST._serialized_end = 46019
- _REQUESTCANCELACTIVITYEXECUTIONRESPONSE._serialized_start = 46021
- _REQUESTCANCELACTIVITYEXECUTIONRESPONSE._serialized_end = 46061
- _TERMINATEACTIVITYEXECUTIONREQUEST._serialized_start = 46064
- _TERMINATEACTIVITYEXECUTIONREQUEST._serialized_end = 46209
- _TERMINATEACTIVITYEXECUTIONRESPONSE._serialized_start = 46211
- _TERMINATEACTIVITYEXECUTIONRESPONSE._serialized_end = 46247
- _DELETEACTIVITYEXECUTIONREQUEST._serialized_start = 46249
- _DELETEACTIVITYEXECUTIONREQUEST._serialized_end = 46337
- _DELETEACTIVITYEXECUTIONRESPONSE._serialized_start = 46339
- _DELETEACTIVITYEXECUTIONRESPONSE._serialized_end = 46372
+ _UPDATETASKQUEUECONFIGRESPONSE._serialized_start = 43065
+ _UPDATETASKQUEUECONFIGRESPONSE._serialized_end = 43156
+ _FETCHWORKERCONFIGREQUEST._serialized_start = 43159
+ _FETCHWORKERCONFIGREQUEST._serialized_end = 43296
+ _FETCHWORKERCONFIGRESPONSE._serialized_start = 43298
+ _FETCHWORKERCONFIGRESPONSE._serialized_end = 43383
+ _UPDATEWORKERCONFIGREQUEST._serialized_start = 43386
+ _UPDATEWORKERCONFIGREQUEST._serialized_end = 43631
+ _UPDATEWORKERCONFIGRESPONSE._serialized_start = 43633
+ _UPDATEWORKERCONFIGRESPONSE._serialized_end = 43733
+ _DESCRIBEWORKERREQUEST._serialized_start = 43735
+ _DESCRIBEWORKERREQUEST._serialized_end = 43806
+ _DESCRIBEWORKERRESPONSE._serialized_start = 43808
+ _DESCRIBEWORKERRESPONSE._serialized_end = 43889
+ _PAUSEWORKFLOWEXECUTIONREQUEST._serialized_start = 43892
+ _PAUSEWORKFLOWEXECUTIONREQUEST._serialized_end = 44033
+ _PAUSEWORKFLOWEXECUTIONRESPONSE._serialized_start = 44035
+ _PAUSEWORKFLOWEXECUTIONRESPONSE._serialized_end = 44067
+ _UNPAUSEWORKFLOWEXECUTIONREQUEST._serialized_start = 44070
+ _UNPAUSEWORKFLOWEXECUTIONREQUEST._serialized_end = 44213
+ _UNPAUSEWORKFLOWEXECUTIONRESPONSE._serialized_start = 44215
+ _UNPAUSEWORKFLOWEXECUTIONRESPONSE._serialized_end = 44249
+ _STARTACTIVITYEXECUTIONREQUEST._serialized_start = 44252
+ _STARTACTIVITYEXECUTIONREQUEST._serialized_end = 45200
+ _STARTACTIVITYEXECUTIONRESPONSE._serialized_start = 45202
+ _STARTACTIVITYEXECUTIONRESPONSE._serialized_end = 45267
+ _DESCRIBEACTIVITYEXECUTIONREQUEST._serialized_start = 45270
+ _DESCRIBEACTIVITYEXECUTIONREQUEST._serialized_end = 45433
+ _DESCRIBEACTIVITYEXECUTIONRESPONSE._serialized_start = 45436
+ _DESCRIBEACTIVITYEXECUTIONRESPONSE._serialized_end = 45693
+ _POLLACTIVITYEXECUTIONREQUEST._serialized_start = 45695
+ _POLLACTIVITYEXECUTIONREQUEST._serialized_end = 45781
+ _POLLACTIVITYEXECUTIONRESPONSE._serialized_start = 45783
+ _POLLACTIVITYEXECUTIONRESPONSE._serialized_end = 45899
+ _LISTACTIVITYEXECUTIONSREQUEST._serialized_start = 45901
+ _LISTACTIVITYEXECUTIONSREQUEST._serialized_end = 46010
+ _LISTACTIVITYEXECUTIONSRESPONSE._serialized_start = 46013
+ _LISTACTIVITYEXECUTIONSRESPONSE._serialized_end = 46143
+ _COUNTACTIVITYEXECUTIONSREQUEST._serialized_start = 46145
+ _COUNTACTIVITYEXECUTIONSREQUEST._serialized_end = 46211
+ _COUNTACTIVITYEXECUTIONSRESPONSE._serialized_start = 46214
+ _COUNTACTIVITYEXECUTIONSRESPONSE._serialized_end = 46451
+ _COUNTACTIVITYEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_start = 18770
+ _COUNTACTIVITYEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_end = 18858
+ _REQUESTCANCELACTIVITYEXECUTIONREQUEST._serialized_start = 46454
+ _REQUESTCANCELACTIVITYEXECUTIONREQUEST._serialized_end = 46603
+ _REQUESTCANCELACTIVITYEXECUTIONRESPONSE._serialized_start = 46605
+ _REQUESTCANCELACTIVITYEXECUTIONRESPONSE._serialized_end = 46645
+ _TERMINATEACTIVITYEXECUTIONREQUEST._serialized_start = 46648
+ _TERMINATEACTIVITYEXECUTIONREQUEST._serialized_end = 46793
+ _TERMINATEACTIVITYEXECUTIONRESPONSE._serialized_start = 46795
+ _TERMINATEACTIVITYEXECUTIONRESPONSE._serialized_end = 46831
+ _DELETEACTIVITYEXECUTIONREQUEST._serialized_start = 46833
+ _DELETEACTIVITYEXECUTIONREQUEST._serialized_end = 46921
+ _DELETEACTIVITYEXECUTIONRESPONSE._serialized_start = 46923
+ _DELETEACTIVITYEXECUTIONRESPONSE._serialized_end = 46956
# @@protoc_insertion_point(module_scope)
diff --git a/temporalio/api/workflowservice/v1/request_response_pb2.pyi b/temporalio/api/workflowservice/v1/request_response_pb2.pyi
index 9daa0eec7..4c10f560f 100644
--- a/temporalio/api/workflowservice/v1/request_response_pb2.pyi
+++ b/temporalio/api/workflowservice/v1/request_response_pb2.pyi
@@ -1069,6 +1069,7 @@ class PollWorkflowTaskQueueRequest(google.protobuf.message.Message):
NAMESPACE_FIELD_NUMBER: builtins.int
TASK_QUEUE_FIELD_NUMBER: builtins.int
IDENTITY_FIELD_NUMBER: builtins.int
+ WORKER_INSTANCE_KEY_FIELD_NUMBER: builtins.int
BINARY_CHECKSUM_FIELD_NUMBER: builtins.int
WORKER_VERSION_CAPABILITIES_FIELD_NUMBER: builtins.int
DEPLOYMENT_OPTIONS_FIELD_NUMBER: builtins.int
@@ -1077,6 +1078,10 @@ class PollWorkflowTaskQueueRequest(google.protobuf.message.Message):
def task_queue(self) -> temporalio.api.taskqueue.v1.message_pb2.TaskQueue: ...
identity: builtins.str
"""The identity of the worker/client who is polling this task queue"""
+ worker_instance_key: builtins.str
+ """A unique key for this worker instance, used for tracking worker lifecycle.
+ This is guaranteed to be unique, whereas identity is not guaranteed to be unique.
+ """
binary_checksum: builtins.str
"""Deprecated. Use deployment_options instead.
Each worker process should provide an ID unique to the specific set of code it is running
@@ -1103,6 +1108,7 @@ class PollWorkflowTaskQueueRequest(google.protobuf.message.Message):
namespace: builtins.str = ...,
task_queue: temporalio.api.taskqueue.v1.message_pb2.TaskQueue | None = ...,
identity: builtins.str = ...,
+ worker_instance_key: builtins.str = ...,
binary_checksum: builtins.str = ...,
worker_version_capabilities: temporalio.api.common.v1.message_pb2.WorkerVersionCapabilities
| None = ...,
@@ -1133,6 +1139,8 @@ class PollWorkflowTaskQueueRequest(google.protobuf.message.Message):
b"namespace",
"task_queue",
b"task_queue",
+ "worker_instance_key",
+ b"worker_instance_key",
"worker_version_capabilities",
b"worker_version_capabilities",
],
@@ -1783,6 +1791,7 @@ class PollActivityTaskQueueRequest(google.protobuf.message.Message):
NAMESPACE_FIELD_NUMBER: builtins.int
TASK_QUEUE_FIELD_NUMBER: builtins.int
IDENTITY_FIELD_NUMBER: builtins.int
+ WORKER_INSTANCE_KEY_FIELD_NUMBER: builtins.int
TASK_QUEUE_METADATA_FIELD_NUMBER: builtins.int
WORKER_VERSION_CAPABILITIES_FIELD_NUMBER: builtins.int
DEPLOYMENT_OPTIONS_FIELD_NUMBER: builtins.int
@@ -1791,6 +1800,10 @@ class PollActivityTaskQueueRequest(google.protobuf.message.Message):
def task_queue(self) -> temporalio.api.taskqueue.v1.message_pb2.TaskQueue: ...
identity: builtins.str
"""The identity of the worker/client"""
+ worker_instance_key: builtins.str
+ """A unique key for this worker instance, used for tracking worker lifecycle.
+ This is guaranteed to be unique, whereas identity is not guaranteed to be unique.
+ """
@property
def task_queue_metadata(
self,
@@ -1814,6 +1827,7 @@ class PollActivityTaskQueueRequest(google.protobuf.message.Message):
namespace: builtins.str = ...,
task_queue: temporalio.api.taskqueue.v1.message_pb2.TaskQueue | None = ...,
identity: builtins.str = ...,
+ worker_instance_key: builtins.str = ...,
task_queue_metadata: temporalio.api.taskqueue.v1.message_pb2.TaskQueueMetadata
| None = ...,
worker_version_capabilities: temporalio.api.common.v1.message_pb2.WorkerVersionCapabilities
@@ -1847,6 +1861,8 @@ class PollActivityTaskQueueRequest(google.protobuf.message.Message):
b"task_queue",
"task_queue_metadata",
b"task_queue_metadata",
+ "worker_instance_key",
+ b"worker_instance_key",
"worker_version_capabilities",
b"worker_version_capabilities",
],
@@ -1880,15 +1896,18 @@ class PollActivityTaskQueueResponse(google.protobuf.message.Message):
task_token: builtins.bytes
"""A unique identifier for this task"""
workflow_namespace: builtins.str
- """The namespace the workflow which requested this activity lives in"""
+ """The namespace of the activity. If this is a workflow activity then this is the namespace of
+ the workflow also. If this is a standalone activity then the name of this field is
+ misleading, but retained for compatibility with workflow activities.
+ """
@property
def workflow_type(self) -> temporalio.api.common.v1.message_pb2.WorkflowType:
- """Type of the requesting workflow"""
+ """Type of the requesting workflow (if this is a workflow activity)."""
@property
def workflow_execution(
self,
) -> temporalio.api.common.v1.message_pb2.WorkflowExecution:
- """Execution info of the requesting workflow"""
+ """Execution info of the requesting workflow (if this is a workflow activity)"""
@property
def activity_type(self) -> temporalio.api.common.v1.message_pb2.ActivityType: ...
activity_id: builtins.str
@@ -4185,14 +4204,40 @@ class ShutdownWorkerRequest(google.protobuf.message.Message):
IDENTITY_FIELD_NUMBER: builtins.int
REASON_FIELD_NUMBER: builtins.int
WORKER_HEARTBEAT_FIELD_NUMBER: builtins.int
+ WORKER_INSTANCE_KEY_FIELD_NUMBER: builtins.int
+ TASK_QUEUE_FIELD_NUMBER: builtins.int
+ TASK_QUEUE_TYPES_FIELD_NUMBER: builtins.int
namespace: builtins.str
sticky_task_queue: builtins.str
+ """sticky_task_queue may not always be populated. We want to ensure all workers
+ send a shutdown request to update worker state for heartbeating, as well
+ as cancel pending poll calls early, instead of waiting for timeouts.
+ """
identity: builtins.str
reason: builtins.str
@property
def worker_heartbeat(
self,
) -> temporalio.api.worker.v1.message_pb2.WorkerHeartbeat: ...
+ worker_instance_key: builtins.str
+ """Technically this is also sent in the WorkerHeartbeat, but
+ since worker heartbeating can be turned off, this needs
+ to be a separate, top-level field.
+ """
+ task_queue: builtins.str
+ """Task queue name the worker is polling on. This allows server to cancel
+ all outstanding poll RPC calls from SDK. This avoids a race condition that
+ can lead to tasks being lost.
+ """
+ @property
+ def task_queue_types(
+ self,
+ ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
+ temporalio.api.enums.v1.task_queue_pb2.TaskQueueType.ValueType
+ ]:
+ """Task queue types that help server cancel outstanding poll RPC
+ calls from SDK. This avoids a race condition that can lead to tasks being lost.
+ """
def __init__(
self,
*,
@@ -4202,6 +4247,12 @@ class ShutdownWorkerRequest(google.protobuf.message.Message):
reason: builtins.str = ...,
worker_heartbeat: temporalio.api.worker.v1.message_pb2.WorkerHeartbeat
| None = ...,
+ worker_instance_key: builtins.str = ...,
+ task_queue: builtins.str = ...,
+ task_queue_types: collections.abc.Iterable[
+ temporalio.api.enums.v1.task_queue_pb2.TaskQueueType.ValueType
+ ]
+ | None = ...,
) -> None: ...
def HasField(
self,
@@ -4218,8 +4269,14 @@ class ShutdownWorkerRequest(google.protobuf.message.Message):
b"reason",
"sticky_task_queue",
b"sticky_task_queue",
+ "task_queue",
+ b"task_queue",
+ "task_queue_types",
+ b"task_queue_types",
"worker_heartbeat",
b"worker_heartbeat",
+ "worker_instance_key",
+ b"worker_instance_key",
],
) -> None: ...
@@ -5617,6 +5674,94 @@ class ListSchedulesResponse(google.protobuf.message.Message):
global___ListSchedulesResponse = ListSchedulesResponse
+class CountSchedulesRequest(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ NAMESPACE_FIELD_NUMBER: builtins.int
+ QUERY_FIELD_NUMBER: builtins.int
+ namespace: builtins.str
+ query: builtins.str
+ """Visibility query, see https://docs.temporal.io/list-filter for the syntax."""
+ def __init__(
+ self,
+ *,
+ namespace: builtins.str = ...,
+ query: builtins.str = ...,
+ ) -> None: ...
+ def ClearField(
+ self,
+ field_name: typing_extensions.Literal[
+ "namespace", b"namespace", "query", b"query"
+ ],
+ ) -> None: ...
+
+global___CountSchedulesRequest = CountSchedulesRequest
+
+class CountSchedulesResponse(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ class AggregationGroup(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+
+ GROUP_VALUES_FIELD_NUMBER: builtins.int
+ COUNT_FIELD_NUMBER: builtins.int
+ @property
+ def group_values(
+ self,
+ ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
+ temporalio.api.common.v1.message_pb2.Payload
+ ]: ...
+ count: builtins.int
+ def __init__(
+ self,
+ *,
+ group_values: collections.abc.Iterable[
+ temporalio.api.common.v1.message_pb2.Payload
+ ]
+ | None = ...,
+ count: builtins.int = ...,
+ ) -> None: ...
+ def ClearField(
+ self,
+ field_name: typing_extensions.Literal[
+ "count", b"count", "group_values", b"group_values"
+ ],
+ ) -> None: ...
+
+ COUNT_FIELD_NUMBER: builtins.int
+ GROUPS_FIELD_NUMBER: builtins.int
+ count: builtins.int
+ """If `query` is not grouping by any field, the count is an approximate number
+ of schedules that match the query.
+ If `query` is grouping by a field, the count is simply the sum of the counts
+ of the groups returned in the response. This number can be smaller than the
+ total number of schedules matching the query.
+ """
+ @property
+ def groups(
+ self,
+ ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[
+ global___CountSchedulesResponse.AggregationGroup
+ ]:
+ """Contains the groups if the request is grouping by a field.
+ The list might not be complete, and the counts of each group is approximate.
+ """
+ def __init__(
+ self,
+ *,
+ count: builtins.int = ...,
+ groups: collections.abc.Iterable[
+ global___CountSchedulesResponse.AggregationGroup
+ ]
+ | None = ...,
+ ) -> None: ...
+ def ClearField(
+ self,
+ field_name: typing_extensions.Literal["count", b"count", "groups", b"groups"],
+ ) -> None: ...
+
+global___CountSchedulesResponse = CountSchedulesResponse
+
class UpdateWorkerBuildIdCompatibilityRequest(google.protobuf.message.Message):
"""[cleanup-wv-pre-release]"""
@@ -7125,6 +7270,7 @@ class PollNexusTaskQueueRequest(google.protobuf.message.Message):
NAMESPACE_FIELD_NUMBER: builtins.int
IDENTITY_FIELD_NUMBER: builtins.int
+ WORKER_INSTANCE_KEY_FIELD_NUMBER: builtins.int
TASK_QUEUE_FIELD_NUMBER: builtins.int
WORKER_VERSION_CAPABILITIES_FIELD_NUMBER: builtins.int
DEPLOYMENT_OPTIONS_FIELD_NUMBER: builtins.int
@@ -7132,6 +7278,10 @@ class PollNexusTaskQueueRequest(google.protobuf.message.Message):
namespace: builtins.str
identity: builtins.str
"""The identity of the client who initiated this request."""
+ worker_instance_key: builtins.str
+ """A unique key for this worker instance, used for tracking worker lifecycle.
+ This is guaranteed to be unique, whereas identity is not guaranteed to be unique.
+ """
@property
def task_queue(self) -> temporalio.api.taskqueue.v1.message_pb2.TaskQueue: ...
@property
@@ -7159,6 +7309,7 @@ class PollNexusTaskQueueRequest(google.protobuf.message.Message):
*,
namespace: builtins.str = ...,
identity: builtins.str = ...,
+ worker_instance_key: builtins.str = ...,
task_queue: temporalio.api.taskqueue.v1.message_pb2.TaskQueue | None = ...,
worker_version_capabilities: temporalio.api.common.v1.message_pb2.WorkerVersionCapabilities
| None = ...,
@@ -7193,6 +7344,8 @@ class PollNexusTaskQueueRequest(google.protobuf.message.Message):
b"task_queue",
"worker_heartbeat",
b"worker_heartbeat",
+ "worker_instance_key",
+ b"worker_instance_key",
"worker_version_capabilities",
b"worker_version_capabilities",
],
@@ -7302,6 +7455,7 @@ class RespondNexusTaskFailedRequest(google.protobuf.message.Message):
IDENTITY_FIELD_NUMBER: builtins.int
TASK_TOKEN_FIELD_NUMBER: builtins.int
ERROR_FIELD_NUMBER: builtins.int
+ FAILURE_FIELD_NUMBER: builtins.int
namespace: builtins.str
identity: builtins.str
"""The identity of the client who initiated this request."""
@@ -7309,7 +7463,10 @@ class RespondNexusTaskFailedRequest(google.protobuf.message.Message):
"""A unique identifier for this task."""
@property
def error(self) -> temporalio.api.nexus.v1.message_pb2.HandlerError:
- """The error the handler failed with."""
+ """Deprecated. Use the failure field instead."""
+ @property
+ def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure:
+ """The error the handler failed with. Must contain a NexusHandlerFailureInfo object."""
def __init__(
self,
*,
@@ -7317,15 +7474,19 @@ class RespondNexusTaskFailedRequest(google.protobuf.message.Message):
identity: builtins.str = ...,
task_token: builtins.bytes = ...,
error: temporalio.api.nexus.v1.message_pb2.HandlerError | None = ...,
+ failure: temporalio.api.failure.v1.message_pb2.Failure | None = ...,
) -> None: ...
def HasField(
- self, field_name: typing_extensions.Literal["error", b"error"]
+ self,
+ field_name: typing_extensions.Literal["error", b"error", "failure", b"failure"],
) -> builtins.bool: ...
def ClearField(
self,
field_name: typing_extensions.Literal[
"error",
b"error",
+ "failure",
+ b"failure",
"identity",
b"identity",
"namespace",
diff --git a/temporalio/api/workflowservice/v1/service_pb2.py b/temporalio/api/workflowservice/v1/service_pb2.py
index a96d3d3e0..6f649e1d4 100644
--- a/temporalio/api/workflowservice/v1/service_pb2.py
+++ b/temporalio/api/workflowservice/v1/service_pb2.py
@@ -21,7 +21,7 @@
)
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n-temporal/api/workflowservice/v1/service.proto\x12\x1ftemporal.api.workflowservice.v1\x1a\x36temporal/api/workflowservice/v1/request_response.proto\x1a\x1cgoogle/api/annotations.proto2\x9d\xd6\x01\n\x0fWorkflowService\x12\xc3\x01\n\x11RegisterNamespace\x12\x39.temporal.api.workflowservice.v1.RegisterNamespaceRequest\x1a:.temporal.api.workflowservice.v1.RegisterNamespaceResponse"7\x82\xd3\xe4\x93\x02\x31"\x13/cluster/namespaces:\x01*Z\x17"\x12/api/v1/namespaces:\x01*\x12\xd5\x01\n\x11\x44\x65scribeNamespace\x12\x39.temporal.api.workflowservice.v1.DescribeNamespaceRequest\x1a:.temporal.api.workflowservice.v1.DescribeNamespaceResponse"I\x82\xd3\xe4\x93\x02\x43\x12\x1f/cluster/namespaces/{namespace}Z \x12\x1e/api/v1/namespaces/{namespace}\x12\xb4\x01\n\x0eListNamespaces\x12\x36.temporal.api.workflowservice.v1.ListNamespacesRequest\x1a\x37.temporal.api.workflowservice.v1.ListNamespacesResponse"1\x82\xd3\xe4\x93\x02+\x12\x13/cluster/namespacesZ\x14\x12\x12/api/v1/namespaces\x12\xe3\x01\n\x0fUpdateNamespace\x12\x37.temporal.api.workflowservice.v1.UpdateNamespaceRequest\x1a\x38.temporal.api.workflowservice.v1.UpdateNamespaceResponse"]\x82\xd3\xe4\x93\x02W"&/cluster/namespaces/{namespace}/update:\x01*Z*"%/api/v1/namespaces/{namespace}/update:\x01*\x12\x8f\x01\n\x12\x44\x65precateNamespace\x12:.temporal.api.workflowservice.v1.DeprecateNamespaceRequest\x1a;.temporal.api.workflowservice.v1.DeprecateNamespaceResponse"\x00\x12\x92\x02\n\x16StartWorkflowExecution\x12>.temporal.api.workflowservice.v1.StartWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.StartWorkflowExecutionResponse"w\x82\xd3\xe4\x93\x02q"//namespaces/{namespace}/workflows/{workflow_id}:\x01*Z;"6/api/v1/namespaces/{namespace}/workflows/{workflow_id}:\x01*\x12\xa5\x02\n\x15\x45xecuteMultiOperation\x12=.temporal.api.workflowservice.v1.ExecuteMultiOperationRequest\x1a>.temporal.api.workflowservice.v1.ExecuteMultiOperationResponse"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01"9/namespaces/{namespace}/workflows/execute-multi-operation:\x01*ZE"@/api/v1/namespaces/{namespace}/workflows/execute-multi-operation:\x01*\x12\xc1\x02\n\x1bGetWorkflowExecutionHistory\x12\x43.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryRequest\x1a\x44.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01\x12\x41/namespaces/{namespace}/workflows/{execution.workflow_id}/historyZJ\x12H/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/history\x12\xe6\x02\n"GetWorkflowExecutionHistoryReverse\x12J.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseRequest\x1aK.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseResponse"\xa6\x01\x82\xd3\xe4\x93\x02\x9f\x01\x12I/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverseZR\x12P/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverse\x12\x98\x01\n\x15PollWorkflowTaskQueue\x12=.temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest\x1a>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse"\x00\x12\xad\x01\n\x1cRespondWorkflowTaskCompleted\x12\x44.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest\x1a\x45.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedResponse"\x00\x12\xa4\x01\n\x19RespondWorkflowTaskFailed\x12\x41.temporal.api.workflowservice.v1.RespondWorkflowTaskFailedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondWorkflowTaskFailedResponse"\x00\x12\x98\x01\n\x15PollActivityTaskQueue\x12=.temporal.api.workflowservice.v1.PollActivityTaskQueueRequest\x1a>.temporal.api.workflowservice.v1.PollActivityTaskQueueResponse"\x00\x12\x9b\x02\n\x1bRecordActivityTaskHeartbeat\x12\x43.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatRequest\x1a\x44.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatResponse"q\x82\xd3\xe4\x93\x02k",/namespaces/{namespace}/activities/heartbeat:\x01*Z8"3/api/v1/namespaces/{namespace}/activities/heartbeat:\x01*\x12\xb3\x02\n\x1fRecordActivityTaskHeartbeatById\x12G.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatByIdRequest\x1aH.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatByIdResponse"}\x82\xd3\xe4\x93\x02w"2/namespaces/{namespace}/activities/heartbeat-by-id:\x01*Z>"9/api/v1/namespaces/{namespace}/activities/heartbeat-by-id:\x01*\x12\x9c\x02\n\x1cRespondActivityTaskCompleted\x12\x44.temporal.api.workflowservice.v1.RespondActivityTaskCompletedRequest\x1a\x45.temporal.api.workflowservice.v1.RespondActivityTaskCompletedResponse"o\x82\xd3\xe4\x93\x02i"+/namespaces/{namespace}/activities/complete:\x01*Z7"2/api/v1/namespaces/{namespace}/activities/complete:\x01*\x12\xb4\x02\n RespondActivityTaskCompletedById\x12H.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdRequest\x1aI.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdResponse"{\x82\xd3\xe4\x93\x02u"1/namespaces/{namespace}/activities/complete-by-id:\x01*Z="8/api/v1/namespaces/{namespace}/activities/complete-by-id:\x01*\x12\x8b\x02\n\x19RespondActivityTaskFailed\x12\x41.temporal.api.workflowservice.v1.RespondActivityTaskFailedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondActivityTaskFailedResponse"g\x82\xd3\xe4\x93\x02\x61"\'/namespaces/{namespace}/activities/fail:\x01*Z3"./api/v1/namespaces/{namespace}/activities/fail:\x01*\x12\xa3\x02\n\x1dRespondActivityTaskFailedById\x12\x45.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdRequest\x1a\x46.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdResponse"s\x82\xd3\xe4\x93\x02m"-/namespaces/{namespace}/activities/fail-by-id:\x01*Z9"4/api/v1/namespaces/{namespace}/activities/fail-by-id:\x01*\x12\x95\x02\n\x1bRespondActivityTaskCanceled\x12\x43.temporal.api.workflowservice.v1.RespondActivityTaskCanceledRequest\x1a\x44.temporal.api.workflowservice.v1.RespondActivityTaskCanceledResponse"k\x82\xd3\xe4\x93\x02\x65")/namespaces/{namespace}/activities/cancel:\x01*Z5"0/api/v1/namespaces/{namespace}/activities/cancel:\x01*\x12\xad\x02\n\x1fRespondActivityTaskCanceledById\x12G.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdRequest\x1aH.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdResponse"w\x82\xd3\xe4\x93\x02q"//namespaces/{namespace}/activities/cancel-by-id:\x01*Z;"6/api/v1/namespaces/{namespace}/activities/cancel-by-id:\x01*\x12\xe0\x02\n\x1eRequestCancelWorkflowExecution\x12\x46.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest\x1aG.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionResponse"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01"I/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\x01*ZU"P/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\x01*\x12\xe7\x02\n\x17SignalWorkflowExecution\x12?.temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.SignalWorkflowExecutionResponse"\xc8\x01\x82\xd3\xe4\x93\x02\xc1\x01"W/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\x01*Zc"^/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\x01*\x12\xf2\x02\n SignalWithStartWorkflowExecution\x12H.temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionRequest\x1aI.temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionResponse"\xb8\x01\x82\xd3\xe4\x93\x02\xb1\x01"O/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\x01*Z["V/api/v1/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\x01*\x12\xc6\x02\n\x16ResetWorkflowExecution\x12>.temporal.api.workflowservice.v1.ResetWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.ResetWorkflowExecutionResponse"\xaa\x01\x82\xd3\xe4\x93\x02\xa3\x01"H/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\x01*ZT"O/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\x01*\x12\xda\x02\n\x1aTerminateWorkflowExecution\x12\x42.temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest\x1a\x43.temporal.api.workflowservice.v1.TerminateWorkflowExecutionResponse"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01"L/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\x01*ZX"S/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\x01*\x12\x9e\x01\n\x17\x44\x65leteWorkflowExecution\x12?.temporal.api.workflowservice.v1.DeleteWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.DeleteWorkflowExecutionResponse"\x00\x12\xa7\x01\n\x1aListOpenWorkflowExecutions\x12\x42.temporal.api.workflowservice.v1.ListOpenWorkflowExecutionsRequest\x1a\x43.temporal.api.workflowservice.v1.ListOpenWorkflowExecutionsResponse"\x00\x12\xad\x01\n\x1cListClosedWorkflowExecutions\x12\x44.temporal.api.workflowservice.v1.ListClosedWorkflowExecutionsRequest\x1a\x45.temporal.api.workflowservice.v1.ListClosedWorkflowExecutionsResponse"\x00\x12\xf0\x01\n\x16ListWorkflowExecutions\x12>.temporal.api.workflowservice.v1.ListWorkflowExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ListWorkflowExecutionsResponse"U\x82\xd3\xe4\x93\x02O\x12!/namespaces/{namespace}/workflowsZ*\x12(/api/v1/namespaces/{namespace}/workflows\x12\x9a\x02\n\x1eListArchivedWorkflowExecutions\x12\x46.temporal.api.workflowservice.v1.ListArchivedWorkflowExecutionsRequest\x1aG.temporal.api.workflowservice.v1.ListArchivedWorkflowExecutionsResponse"g\x82\xd3\xe4\x93\x02\x61\x12*/namespaces/{namespace}/archived-workflowsZ3\x12\x31/api/v1/namespaces/{namespace}/archived-workflows\x12\x9b\x01\n\x16ScanWorkflowExecutions\x12>.temporal.api.workflowservice.v1.ScanWorkflowExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ScanWorkflowExecutionsResponse"\x00\x12\xfd\x01\n\x17\x43ountWorkflowExecutions\x12?.temporal.api.workflowservice.v1.CountWorkflowExecutionsRequest\x1a@.temporal.api.workflowservice.v1.CountWorkflowExecutionsResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/workflow-countZ/\x12-/api/v1/namespaces/{namespace}/workflow-count\x12\x92\x01\n\x13GetSearchAttributes\x12;.temporal.api.workflowservice.v1.GetSearchAttributesRequest\x1a<.temporal.api.workflowservice.v1.GetSearchAttributesResponse"\x00\x12\xa4\x01\n\x19RespondQueryTaskCompleted\x12\x41.temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondQueryTaskCompletedResponse"\x00\x12\x95\x01\n\x14ResetStickyTaskQueue\x12<.temporal.api.workflowservice.v1.ResetStickyTaskQueueRequest\x1a=.temporal.api.workflowservice.v1.ResetStickyTaskQueueResponse"\x00\x12\x83\x01\n\x0eShutdownWorker\x12\x36.temporal.api.workflowservice.v1.ShutdownWorkerRequest\x1a\x37.temporal.api.workflowservice.v1.ShutdownWorkerResponse"\x00\x12\xbf\x02\n\rQueryWorkflow\x12\x35.temporal.api.workflowservice.v1.QueryWorkflowRequest\x1a\x36.temporal.api.workflowservice.v1.QueryWorkflowResponse"\xbe\x01\x82\xd3\xe4\x93\x02\xb7\x01"R/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\x01*Z^"Y/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\x01*\x12\xaa\x02\n\x19\x44\x65scribeWorkflowExecution\x12\x41.temporal.api.workflowservice.v1.DescribeWorkflowExecutionRequest\x1a\x42.temporal.api.workflowservice.v1.DescribeWorkflowExecutionResponse"\x85\x01\x82\xd3\xe4\x93\x02\x7f\x12\x39/namespaces/{namespace}/workflows/{execution.workflow_id}ZB\x12@/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}\x12\x89\x02\n\x11\x44\x65scribeTaskQueue\x12\x39.temporal.api.workflowservice.v1.DescribeTaskQueueRequest\x1a:.temporal.api.workflowservice.v1.DescribeTaskQueueResponse"}\x82\xd3\xe4\x93\x02w\x12\x35/namespaces/{namespace}/task-queues/{task_queue.name}Z>\x12/namespaces/{namespace}/schedules/{schedule_id}/matching-timesZG\x12\x45/api/v1/namespaces/{namespace}/schedules/{schedule_id}/matching-times\x12\xf4\x01\n\x0e\x44\x65leteSchedule\x12\x36.temporal.api.workflowservice.v1.DeleteScheduleRequest\x1a\x37.temporal.api.workflowservice.v1.DeleteScheduleResponse"q\x82\xd3\xe4\x93\x02k*//namespaces/{namespace}/schedules/{schedule_id}Z8*6/api/v1/namespaces/{namespace}/schedules/{schedule_id}\x12\xd5\x01\n\rListSchedules\x12\x35.temporal.api.workflowservice.v1.ListSchedulesRequest\x1a\x36.temporal.api.workflowservice.v1.ListSchedulesResponse"U\x82\xd3\xe4\x93\x02O\x12!/namespaces/{namespace}/schedulesZ*\x12(/api/v1/namespaces/{namespace}/schedules\x12\xb9\x01\n UpdateWorkerBuildIdCompatibility\x12H.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest\x1aI.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityResponse"\x00\x12\xe1\x02\n\x1dGetWorkerBuildIdCompatibility\x12\x45.temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest\x1a\x46.temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse"\xb0\x01\x82\xd3\xe4\x93\x02\xa9\x01\x12N/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibilityZW\x12U/api/v1/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibility\x12\xaa\x01\n\x1bUpdateWorkerVersioningRules\x12\x43.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest\x1a\x44.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse"\x00\x12\xc6\x02\n\x18GetWorkerVersioningRules\x12@.temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest\x1a\x41.temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse"\xa4\x01\x82\xd3\xe4\x93\x02\x9d\x01\x12H/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rulesZQ\x12O/api/v1/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rules\x12\x97\x02\n\x19GetWorkerTaskReachability\x12\x41.temporal.api.workflowservice.v1.GetWorkerTaskReachabilityRequest\x1a\x42.temporal.api.workflowservice.v1.GetWorkerTaskReachabilityResponse"s\x82\xd3\xe4\x93\x02m\x12\x30/namespaces/{namespace}/worker-task-reachabilityZ9\x12\x37/api/v1/namespaces/{namespace}/worker-task-reachability\x12\xc8\x02\n\x12\x44\x65scribeDeployment\x12:.temporal.api.workflowservice.v1.DescribeDeploymentRequest\x1a;.temporal.api.workflowservice.v1.DescribeDeploymentResponse"\xb8\x01\x82\xd3\xe4\x93\x02\xb1\x01\x12R/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}Z[\x12Y/api/v1/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}\x12\xb5\x03\n\x1f\x44\x65scribeWorkerDeploymentVersion\x12G.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionRequest\x1aH.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionResponse"\xfe\x01\x82\xd3\xe4\x93\x02\xf7\x01\x12u/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}Z~\x12|/api/v1/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}\x12\xdf\x01\n\x0fListDeployments\x12\x37.temporal.api.workflowservice.v1.ListDeploymentsRequest\x1a\x38.temporal.api.workflowservice.v1.ListDeploymentsResponse"Y\x82\xd3\xe4\x93\x02S\x12#/namespaces/{namespace}/deploymentsZ,\x12*/api/v1/namespaces/{namespace}/deployments\x12\xf7\x02\n\x19GetDeploymentReachability\x12\x41.temporal.api.workflowservice.v1.GetDeploymentReachabilityRequest\x1a\x42.temporal.api.workflowservice.v1.GetDeploymentReachabilityResponse"\xd2\x01\x82\xd3\xe4\x93\x02\xcb\x01\x12_/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}/reachabilityZh\x12\x66/api/v1/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}/reachability\x12\x99\x02\n\x14GetCurrentDeployment\x12<.temporal.api.workflowservice.v1.GetCurrentDeploymentRequest\x1a=.temporal.api.workflowservice.v1.GetCurrentDeploymentResponse"\x83\x01\x82\xd3\xe4\x93\x02}\x12\x38/namespaces/{namespace}/current-deployment/{series_name}ZA\x12?/api/v1/namespaces/{namespace}/current-deployment/{series_name}\x12\xb6\x02\n\x14SetCurrentDeployment\x12<.temporal.api.workflowservice.v1.SetCurrentDeploymentRequest\x1a=.temporal.api.workflowservice.v1.SetCurrentDeploymentResponse"\xa0\x01\x82\xd3\xe4\x93\x02\x99\x01"C/namespaces/{namespace}/current-deployment/{deployment.series_name}:\x01*ZO"J/api/v1/namespaces/{namespace}/current-deployment/{deployment.series_name}:\x01*\x12\xf7\x02\n!SetWorkerDeploymentCurrentVersion\x12I.temporal.api.workflowservice.v1.SetWorkerDeploymentCurrentVersionRequest\x1aJ.temporal.api.workflowservice.v1.SetWorkerDeploymentCurrentVersionResponse"\xba\x01\x82\xd3\xe4\x93\x02\xb3\x01"P/namespaces/{namespace}/worker-deployments/{deployment_name}/set-current-version:\x01*Z\\"W/api/v1/namespaces/{namespace}/worker-deployments/{deployment_name}/set-current-version:\x01*\x12\xae\x02\n\x18\x44\x65scribeWorkerDeployment\x12@.temporal.api.workflowservice.v1.DescribeWorkerDeploymentRequest\x1a\x41.temporal.api.workflowservice.v1.DescribeWorkerDeploymentResponse"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01\x12.temporal.api.workflowservice.v1.DeleteWorkerDeploymentRequest\x1a?.temporal.api.workflowservice.v1.DeleteWorkerDeploymentResponse"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01*.temporal.api.workflowservice.v1.ListWorkerDeploymentsResponse"g\x82\xd3\xe4\x93\x02\x61\x12*/namespaces/{namespace}/worker-deploymentsZ3\x12\x31/api/v1/namespaces/{namespace}/worker-deployments\x12\xf0\x03\n%UpdateWorkerDeploymentVersionMetadata\x12M.temporal.api.workflowservice.v1.UpdateWorkerDeploymentVersionMetadataRequest\x1aN.temporal.api.workflowservice.v1.UpdateWorkerDeploymentVersionMetadataResponse"\xa7\x02\x82\xd3\xe4\x93\x02\xa0\x02"\x85\x01/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}/update-metadata:\x01*Z\x92\x01"\x8c\x01/api/v1/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}/update-metadata:\x01*\x12\xd2\x02\n\x1aSetWorkerDeploymentManager\x12\x42.temporal.api.workflowservice.v1.SetWorkerDeploymentManagerRequest\x1a\x43.temporal.api.workflowservice.v1.SetWorkerDeploymentManagerResponse"\xaa\x01\x82\xd3\xe4\x93\x02\xa3\x01"H/namespaces/{namespace}/worker-deployments/{deployment_name}/set-manager:\x01*ZT"O/api/v1/namespaces/{namespace}/worker-deployments/{deployment_name}/set-manager:\x01*\x12\xf5\x02\n\x17UpdateWorkflowExecution\x12?.temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponse"\xd6\x01\x82\xd3\xe4\x93\x02\xcf\x01"^/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\x01*Zj"e/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\x01*\x12\xaa\x01\n\x1bPollWorkflowExecutionUpdate\x12\x43.temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateRequest\x1a\x44.temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateResponse"\x00\x12\x8d\x02\n\x13StartBatchOperation\x12;.temporal.api.workflowservice.v1.StartBatchOperationRequest\x1a<.temporal.api.workflowservice.v1.StartBatchOperationResponse"{\x82\xd3\xe4\x93\x02u"1/namespaces/{namespace}/batch-operations/{job_id}:\x01*Z="8/api/v1/namespaces/{namespace}/batch-operations/{job_id}:\x01*\x12\x95\x02\n\x12StopBatchOperation\x12:.temporal.api.workflowservice.v1.StopBatchOperationRequest\x1a;.temporal.api.workflowservice.v1.StopBatchOperationResponse"\x85\x01\x82\xd3\xe4\x93\x02\x7f"6/namespaces/{namespace}/batch-operations/{job_id}/stop:\x01*ZB"=/api/v1/namespaces/{namespace}/batch-operations/{job_id}/stop:\x01*\x12\x90\x02\n\x16\x44\x65scribeBatchOperation\x12>.temporal.api.workflowservice.v1.DescribeBatchOperationRequest\x1a?.temporal.api.workflowservice.v1.DescribeBatchOperationResponse"u\x82\xd3\xe4\x93\x02o\x12\x31/namespaces/{namespace}/batch-operations/{job_id}Z:\x12\x38/api/v1/namespaces/{namespace}/batch-operations/{job_id}\x12\xf5\x01\n\x13ListBatchOperations\x12;.temporal.api.workflowservice.v1.ListBatchOperationsRequest\x1a<.temporal.api.workflowservice.v1.ListBatchOperationsResponse"c\x82\xd3\xe4\x93\x02]\x12(/namespaces/{namespace}/batch-operationsZ1\x12//api/v1/namespaces/{namespace}/batch-operations\x12\x8f\x01\n\x12PollNexusTaskQueue\x12:.temporal.api.workflowservice.v1.PollNexusTaskQueueRequest\x1a;.temporal.api.workflowservice.v1.PollNexusTaskQueueResponse"\x00\x12\xa4\x01\n\x19RespondNexusTaskCompleted\x12\x41.temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondNexusTaskCompletedResponse"\x00\x12\x9b\x01\n\x16RespondNexusTaskFailed\x12>.temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest\x1a?.temporal.api.workflowservice.v1.RespondNexusTaskFailedResponse"\x00\x12\x93\x02\n\x15UpdateActivityOptions\x12=.temporal.api.workflowservice.v1.UpdateActivityOptionsRequest\x1a>.temporal.api.workflowservice.v1.UpdateActivityOptionsResponse"{\x82\xd3\xe4\x93\x02u"1/namespaces/{namespace}/activities/update-options:\x01*Z="8/api/v1/namespaces/{namespace}/activities/update-options:\x01*\x12\xf0\x02\n\x1eUpdateWorkflowExecutionOptions\x12\x46.temporal.api.workflowservice.v1.UpdateWorkflowExecutionOptionsRequest\x1aG.temporal.api.workflowservice.v1.UpdateWorkflowExecutionOptionsResponse"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01"Q/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update-options:\x01*Z]"X/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update-options:\x01*\x12\xe9\x01\n\rPauseActivity\x12\x35.temporal.api.workflowservice.v1.PauseActivityRequest\x1a\x36.temporal.api.workflowservice.v1.PauseActivityResponse"i\x82\xd3\xe4\x93\x02\x63"(/namespaces/{namespace}/activities/pause:\x01*Z4"//api/v1/namespaces/{namespace}/activities/pause:\x01*\x12\xf3\x01\n\x0fUnpauseActivity\x12\x37.temporal.api.workflowservice.v1.UnpauseActivityRequest\x1a\x38.temporal.api.workflowservice.v1.UnpauseActivityResponse"m\x82\xd3\xe4\x93\x02g"*/namespaces/{namespace}/activities/unpause:\x01*Z6"1/api/v1/namespaces/{namespace}/activities/unpause:\x01*\x12\xe9\x01\n\rResetActivity\x12\x35.temporal.api.workflowservice.v1.ResetActivityRequest\x1a\x36.temporal.api.workflowservice.v1.ResetActivityResponse"i\x82\xd3\xe4\x93\x02\x63"(/namespaces/{namespace}/activities/reset:\x01*Z4"//api/v1/namespaces/{namespace}/activities/reset:\x01*\x12\xf4\x01\n\x12\x43reateWorkflowRule\x12:.temporal.api.workflowservice.v1.CreateWorkflowRuleRequest\x1a;.temporal.api.workflowservice.v1.CreateWorkflowRuleResponse"e\x82\xd3\xe4\x93\x02_"&/namespaces/{namespace}/workflow-rules:\x01*Z2"-/api/v1/namespaces/{namespace}/workflow-rules:\x01*\x12\x88\x02\n\x14\x44\x65scribeWorkflowRule\x12<.temporal.api.workflowservice.v1.DescribeWorkflowRuleRequest\x1a=.temporal.api.workflowservice.v1.DescribeWorkflowRuleResponse"s\x82\xd3\xe4\x93\x02m\x12\x30/namespaces/{namespace}/workflow-rules/{rule_id}Z9\x12\x37/api/v1/namespaces/{namespace}/workflow-rules/{rule_id}\x12\x82\x02\n\x12\x44\x65leteWorkflowRule\x12:.temporal.api.workflowservice.v1.DeleteWorkflowRuleRequest\x1a;.temporal.api.workflowservice.v1.DeleteWorkflowRuleResponse"s\x82\xd3\xe4\x93\x02m*0/namespaces/{namespace}/workflow-rules/{rule_id}Z9*7/api/v1/namespaces/{namespace}/workflow-rules/{rule_id}\x12\xeb\x01\n\x11ListWorkflowRules\x12\x39.temporal.api.workflowservice.v1.ListWorkflowRulesRequest\x1a:.temporal.api.workflowservice.v1.ListWorkflowRulesResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/workflow-rulesZ/\x12-/api/v1/namespaces/{namespace}/workflow-rules\x12\xb9\x02\n\x13TriggerWorkflowRule\x12;.temporal.api.workflowservice.v1.TriggerWorkflowRuleRequest\x1a<.temporal.api.workflowservice.v1.TriggerWorkflowRuleResponse"\xa6\x01\x82\xd3\xe4\x93\x02\x9f\x01"F/namespaces/{namespace}/workflows/{execution.workflow_id}/trigger-rule:\x01*ZR"M/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/trigger-rule:\x01*\x12\x83\x02\n\x15RecordWorkerHeartbeat\x12=.temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest\x1a>.temporal.api.workflowservice.v1.RecordWorkerHeartbeatResponse"k\x82\xd3\xe4\x93\x02\x65")/namespaces/{namespace}/workers/heartbeat:\x01*Z5"0/api/v1/namespaces/{namespace}/workers/heartbeat:\x01*\x12\xcb\x01\n\x0bListWorkers\x12\x33.temporal.api.workflowservice.v1.ListWorkersRequest\x1a\x34.temporal.api.workflowservice.v1.ListWorkersResponse"Q\x82\xd3\xe4\x93\x02K\x12\x1f/namespaces/{namespace}/workersZ(\x12&/api/v1/namespaces/{namespace}/workers\x12\xaf\x02\n\x15UpdateTaskQueueConfig\x12=.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest\x1a>.temporal.api.workflowservice.v1.UpdateTaskQueueConfigResponse"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01">/namespaces/{namespace}/task-queues/{task_queue}/update-config:\x01*ZJ"E/api/v1/namespaces/{namespace}/task-queues/{task_queue}/update-config:\x01*\x12\xfd\x01\n\x11\x46\x65tchWorkerConfig\x12\x39.temporal.api.workflowservice.v1.FetchWorkerConfigRequest\x1a:.temporal.api.workflowservice.v1.FetchWorkerConfigResponse"q\x82\xd3\xe4\x93\x02k",/namespaces/{namespace}/workers/fetch-config:\x01*Z8"3/api/v1/namespaces/{namespace}/workers/fetch-config:\x01*\x12\x82\x02\n\x12UpdateWorkerConfig\x12:.temporal.api.workflowservice.v1.UpdateWorkerConfigRequest\x1a;.temporal.api.workflowservice.v1.UpdateWorkerConfigResponse"s\x82\xd3\xe4\x93\x02m"-/namespaces/{namespace}/workers/update-config:\x01*Z9"4/api/v1/namespaces/{namespace}/workers/update-config:\x01*\x12\x94\x02\n\x0e\x44\x65scribeWorker\x12\x36.temporal.api.workflowservice.v1.DescribeWorkerRequest\x1a\x37.temporal.api.workflowservice.v1.DescribeWorkerResponse"\x90\x01\x82\xd3\xe4\x93\x02\x89\x01\x12>/namespaces/{namespace}/workers/describe/{worker_instance_key}ZG\x12\x45/api/v1/namespaces/{namespace}/workers/describe/{worker_instance_key}\x12\xdb\x01\n\x16PauseWorkflowExecution\x12>.temporal.api.workflowservice.v1.PauseWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.PauseWorkflowExecutionResponse"@\x82\xd3\xe4\x93\x02:"5/namespaces/{namespace}/workflows/{workflow_id}/pause:\x01*\x12\xe3\x01\n\x18UnpauseWorkflowExecution\x12@.temporal.api.workflowservice.v1.UnpauseWorkflowExecutionRequest\x1a\x41.temporal.api.workflowservice.v1.UnpauseWorkflowExecutionResponse"B\x82\xd3\xe4\x93\x02<"7/namespaces/{namespace}/workflows/{workflow_id}/unpause:\x01*\x12\x94\x02\n\x16StartActivityExecution\x12>.temporal.api.workflowservice.v1.StartActivityExecutionRequest\x1a?.temporal.api.workflowservice.v1.StartActivityExecutionResponse"y\x82\xd3\xe4\x93\x02s"0/namespaces/{namespace}/activities/{activity_id}:\x01*Z<"7/api/v1/namespaces/{namespace}/activities/{activity_id}:\x01*\x12\x97\x02\n\x19\x44\x65scribeActivityExecution\x12\x41.temporal.api.workflowservice.v1.DescribeActivityExecutionRequest\x1a\x42.temporal.api.workflowservice.v1.DescribeActivityExecutionResponse"s\x82\xd3\xe4\x93\x02m\x12\x30/namespaces/{namespace}/activities/{activity_id}Z9\x12\x37/api/v1/namespaces/{namespace}/activities/{activity_id}\x12\x9c\x02\n\x15PollActivityExecution\x12=.temporal.api.workflowservice.v1.PollActivityExecutionRequest\x1a>.temporal.api.workflowservice.v1.PollActivityExecutionResponse"\x83\x01\x82\xd3\xe4\x93\x02}\x12\x38/namespaces/{namespace}/activities/{activity_id}/outcomeZA\x12?/api/v1/namespaces/{namespace}/activities/{activity_id}/outcome\x12\xf2\x01\n\x16ListActivityExecutions\x12>.temporal.api.workflowservice.v1.ListActivityExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ListActivityExecutionsResponse"W\x82\xd3\xe4\x93\x02Q\x12"/namespaces/{namespace}/activitiesZ+\x12)/api/v1/namespaces/{namespace}/activities\x12\xfd\x01\n\x17\x43ountActivityExecutions\x12?.temporal.api.workflowservice.v1.CountActivityExecutionsRequest\x1a@.temporal.api.workflowservice.v1.CountActivityExecutionsResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/activity-countZ/\x12-/api/v1/namespaces/{namespace}/activity-count\x12\xbc\x02\n\x1eRequestCancelActivityExecution\x12\x46.temporal.api.workflowservice.v1.RequestCancelActivityExecutionRequest\x1aG.temporal.api.workflowservice.v1.RequestCancelActivityExecutionResponse"\x88\x01\x82\xd3\xe4\x93\x02\x81\x01"7/namespaces/{namespace}/activities/{activity_id}/cancel:\x01*ZC">/api/v1/namespaces/{namespace}/activities/{activity_id}/cancel:\x01*\x12\xb6\x02\n\x1aTerminateActivityExecution\x12\x42.temporal.api.workflowservice.v1.TerminateActivityExecutionRequest\x1a\x43.temporal.api.workflowservice.v1.TerminateActivityExecutionResponse"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01":/namespaces/{namespace}/activities/{activity_id}/terminate:\x01*ZF"A/api/v1/namespaces/{namespace}/activities/{activity_id}/terminate:\x01*\x12\x9e\x01\n\x17\x44\x65leteActivityExecution\x12?.temporal.api.workflowservice.v1.DeleteActivityExecutionRequest\x1a@.temporal.api.workflowservice.v1.DeleteActivityExecutionResponse"\x00\x42\xb6\x01\n"io.temporal.api.workflowservice.v1B\x0cServiceProtoP\x01Z5go.temporal.io/api/workflowservice/v1;workflowservice\xaa\x02!Temporalio.Api.WorkflowService.V1\xea\x02$Temporalio::Api::WorkflowService::V1b\x06proto3'
+ b'\n-temporal/api/workflowservice/v1/service.proto\x12\x1ftemporal.api.workflowservice.v1\x1a\x36temporal/api/workflowservice/v1/request_response.proto\x1a\x1cgoogle/api/annotations.proto2\x8d\xd9\x01\n\x0fWorkflowService\x12\xc3\x01\n\x11RegisterNamespace\x12\x39.temporal.api.workflowservice.v1.RegisterNamespaceRequest\x1a:.temporal.api.workflowservice.v1.RegisterNamespaceResponse"7\x82\xd3\xe4\x93\x02\x31"\x13/cluster/namespaces:\x01*Z\x17"\x12/api/v1/namespaces:\x01*\x12\xd5\x01\n\x11\x44\x65scribeNamespace\x12\x39.temporal.api.workflowservice.v1.DescribeNamespaceRequest\x1a:.temporal.api.workflowservice.v1.DescribeNamespaceResponse"I\x82\xd3\xe4\x93\x02\x43\x12\x1f/cluster/namespaces/{namespace}Z \x12\x1e/api/v1/namespaces/{namespace}\x12\xb4\x01\n\x0eListNamespaces\x12\x36.temporal.api.workflowservice.v1.ListNamespacesRequest\x1a\x37.temporal.api.workflowservice.v1.ListNamespacesResponse"1\x82\xd3\xe4\x93\x02+\x12\x13/cluster/namespacesZ\x14\x12\x12/api/v1/namespaces\x12\xe3\x01\n\x0fUpdateNamespace\x12\x37.temporal.api.workflowservice.v1.UpdateNamespaceRequest\x1a\x38.temporal.api.workflowservice.v1.UpdateNamespaceResponse"]\x82\xd3\xe4\x93\x02W"&/cluster/namespaces/{namespace}/update:\x01*Z*"%/api/v1/namespaces/{namespace}/update:\x01*\x12\x8f\x01\n\x12\x44\x65precateNamespace\x12:.temporal.api.workflowservice.v1.DeprecateNamespaceRequest\x1a;.temporal.api.workflowservice.v1.DeprecateNamespaceResponse"\x00\x12\x92\x02\n\x16StartWorkflowExecution\x12>.temporal.api.workflowservice.v1.StartWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.StartWorkflowExecutionResponse"w\x82\xd3\xe4\x93\x02q"//namespaces/{namespace}/workflows/{workflow_id}:\x01*Z;"6/api/v1/namespaces/{namespace}/workflows/{workflow_id}:\x01*\x12\xa5\x02\n\x15\x45xecuteMultiOperation\x12=.temporal.api.workflowservice.v1.ExecuteMultiOperationRequest\x1a>.temporal.api.workflowservice.v1.ExecuteMultiOperationResponse"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01"9/namespaces/{namespace}/workflows/execute-multi-operation:\x01*ZE"@/api/v1/namespaces/{namespace}/workflows/execute-multi-operation:\x01*\x12\xc1\x02\n\x1bGetWorkflowExecutionHistory\x12\x43.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryRequest\x1a\x44.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01\x12\x41/namespaces/{namespace}/workflows/{execution.workflow_id}/historyZJ\x12H/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/history\x12\xe6\x02\n"GetWorkflowExecutionHistoryReverse\x12J.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseRequest\x1aK.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseResponse"\xa6\x01\x82\xd3\xe4\x93\x02\x9f\x01\x12I/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverseZR\x12P/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverse\x12\x98\x01\n\x15PollWorkflowTaskQueue\x12=.temporal.api.workflowservice.v1.PollWorkflowTaskQueueRequest\x1a>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse"\x00\x12\xad\x01\n\x1cRespondWorkflowTaskCompleted\x12\x44.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest\x1a\x45.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedResponse"\x00\x12\xa4\x01\n\x19RespondWorkflowTaskFailed\x12\x41.temporal.api.workflowservice.v1.RespondWorkflowTaskFailedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondWorkflowTaskFailedResponse"\x00\x12\x98\x01\n\x15PollActivityTaskQueue\x12=.temporal.api.workflowservice.v1.PollActivityTaskQueueRequest\x1a>.temporal.api.workflowservice.v1.PollActivityTaskQueueResponse"\x00\x12\x9b\x02\n\x1bRecordActivityTaskHeartbeat\x12\x43.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatRequest\x1a\x44.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatResponse"q\x82\xd3\xe4\x93\x02k",/namespaces/{namespace}/activities/heartbeat:\x01*Z8"3/api/v1/namespaces/{namespace}/activities/heartbeat:\x01*\x12\xb3\x02\n\x1fRecordActivityTaskHeartbeatById\x12G.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatByIdRequest\x1aH.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatByIdResponse"}\x82\xd3\xe4\x93\x02w"2/namespaces/{namespace}/activities/heartbeat-by-id:\x01*Z>"9/api/v1/namespaces/{namespace}/activities/heartbeat-by-id:\x01*\x12\x9c\x02\n\x1cRespondActivityTaskCompleted\x12\x44.temporal.api.workflowservice.v1.RespondActivityTaskCompletedRequest\x1a\x45.temporal.api.workflowservice.v1.RespondActivityTaskCompletedResponse"o\x82\xd3\xe4\x93\x02i"+/namespaces/{namespace}/activities/complete:\x01*Z7"2/api/v1/namespaces/{namespace}/activities/complete:\x01*\x12\xb4\x02\n RespondActivityTaskCompletedById\x12H.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdRequest\x1aI.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdResponse"{\x82\xd3\xe4\x93\x02u"1/namespaces/{namespace}/activities/complete-by-id:\x01*Z="8/api/v1/namespaces/{namespace}/activities/complete-by-id:\x01*\x12\x8b\x02\n\x19RespondActivityTaskFailed\x12\x41.temporal.api.workflowservice.v1.RespondActivityTaskFailedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondActivityTaskFailedResponse"g\x82\xd3\xe4\x93\x02\x61"\'/namespaces/{namespace}/activities/fail:\x01*Z3"./api/v1/namespaces/{namespace}/activities/fail:\x01*\x12\xa3\x02\n\x1dRespondActivityTaskFailedById\x12\x45.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdRequest\x1a\x46.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdResponse"s\x82\xd3\xe4\x93\x02m"-/namespaces/{namespace}/activities/fail-by-id:\x01*Z9"4/api/v1/namespaces/{namespace}/activities/fail-by-id:\x01*\x12\x95\x02\n\x1bRespondActivityTaskCanceled\x12\x43.temporal.api.workflowservice.v1.RespondActivityTaskCanceledRequest\x1a\x44.temporal.api.workflowservice.v1.RespondActivityTaskCanceledResponse"k\x82\xd3\xe4\x93\x02\x65")/namespaces/{namespace}/activities/cancel:\x01*Z5"0/api/v1/namespaces/{namespace}/activities/cancel:\x01*\x12\xad\x02\n\x1fRespondActivityTaskCanceledById\x12G.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdRequest\x1aH.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdResponse"w\x82\xd3\xe4\x93\x02q"//namespaces/{namespace}/activities/cancel-by-id:\x01*Z;"6/api/v1/namespaces/{namespace}/activities/cancel-by-id:\x01*\x12\xe0\x02\n\x1eRequestCancelWorkflowExecution\x12\x46.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest\x1aG.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionResponse"\xac\x01\x82\xd3\xe4\x93\x02\xa5\x01"I/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\x01*ZU"P/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\x01*\x12\xe7\x02\n\x17SignalWorkflowExecution\x12?.temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.SignalWorkflowExecutionResponse"\xc8\x01\x82\xd3\xe4\x93\x02\xc1\x01"W/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\x01*Zc"^/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\x01*\x12\xf2\x02\n SignalWithStartWorkflowExecution\x12H.temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionRequest\x1aI.temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionResponse"\xb8\x01\x82\xd3\xe4\x93\x02\xb1\x01"O/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\x01*Z["V/api/v1/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\x01*\x12\xc6\x02\n\x16ResetWorkflowExecution\x12>.temporal.api.workflowservice.v1.ResetWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.ResetWorkflowExecutionResponse"\xaa\x01\x82\xd3\xe4\x93\x02\xa3\x01"H/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\x01*ZT"O/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\x01*\x12\xda\x02\n\x1aTerminateWorkflowExecution\x12\x42.temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest\x1a\x43.temporal.api.workflowservice.v1.TerminateWorkflowExecutionResponse"\xb2\x01\x82\xd3\xe4\x93\x02\xab\x01"L/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\x01*ZX"S/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\x01*\x12\x9e\x01\n\x17\x44\x65leteWorkflowExecution\x12?.temporal.api.workflowservice.v1.DeleteWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.DeleteWorkflowExecutionResponse"\x00\x12\xa7\x01\n\x1aListOpenWorkflowExecutions\x12\x42.temporal.api.workflowservice.v1.ListOpenWorkflowExecutionsRequest\x1a\x43.temporal.api.workflowservice.v1.ListOpenWorkflowExecutionsResponse"\x00\x12\xad\x01\n\x1cListClosedWorkflowExecutions\x12\x44.temporal.api.workflowservice.v1.ListClosedWorkflowExecutionsRequest\x1a\x45.temporal.api.workflowservice.v1.ListClosedWorkflowExecutionsResponse"\x00\x12\xf0\x01\n\x16ListWorkflowExecutions\x12>.temporal.api.workflowservice.v1.ListWorkflowExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ListWorkflowExecutionsResponse"U\x82\xd3\xe4\x93\x02O\x12!/namespaces/{namespace}/workflowsZ*\x12(/api/v1/namespaces/{namespace}/workflows\x12\x9a\x02\n\x1eListArchivedWorkflowExecutions\x12\x46.temporal.api.workflowservice.v1.ListArchivedWorkflowExecutionsRequest\x1aG.temporal.api.workflowservice.v1.ListArchivedWorkflowExecutionsResponse"g\x82\xd3\xe4\x93\x02\x61\x12*/namespaces/{namespace}/archived-workflowsZ3\x12\x31/api/v1/namespaces/{namespace}/archived-workflows\x12\x9b\x01\n\x16ScanWorkflowExecutions\x12>.temporal.api.workflowservice.v1.ScanWorkflowExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ScanWorkflowExecutionsResponse"\x00\x12\xfd\x01\n\x17\x43ountWorkflowExecutions\x12?.temporal.api.workflowservice.v1.CountWorkflowExecutionsRequest\x1a@.temporal.api.workflowservice.v1.CountWorkflowExecutionsResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/workflow-countZ/\x12-/api/v1/namespaces/{namespace}/workflow-count\x12\x92\x01\n\x13GetSearchAttributes\x12;.temporal.api.workflowservice.v1.GetSearchAttributesRequest\x1a<.temporal.api.workflowservice.v1.GetSearchAttributesResponse"\x00\x12\xa4\x01\n\x19RespondQueryTaskCompleted\x12\x41.temporal.api.workflowservice.v1.RespondQueryTaskCompletedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondQueryTaskCompletedResponse"\x00\x12\x95\x01\n\x14ResetStickyTaskQueue\x12<.temporal.api.workflowservice.v1.ResetStickyTaskQueueRequest\x1a=.temporal.api.workflowservice.v1.ResetStickyTaskQueueResponse"\x00\x12\x83\x01\n\x0eShutdownWorker\x12\x36.temporal.api.workflowservice.v1.ShutdownWorkerRequest\x1a\x37.temporal.api.workflowservice.v1.ShutdownWorkerResponse"\x00\x12\xbf\x02\n\rQueryWorkflow\x12\x35.temporal.api.workflowservice.v1.QueryWorkflowRequest\x1a\x36.temporal.api.workflowservice.v1.QueryWorkflowResponse"\xbe\x01\x82\xd3\xe4\x93\x02\xb7\x01"R/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\x01*Z^"Y/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\x01*\x12\xaa\x02\n\x19\x44\x65scribeWorkflowExecution\x12\x41.temporal.api.workflowservice.v1.DescribeWorkflowExecutionRequest\x1a\x42.temporal.api.workflowservice.v1.DescribeWorkflowExecutionResponse"\x85\x01\x82\xd3\xe4\x93\x02\x7f\x12\x39/namespaces/{namespace}/workflows/{execution.workflow_id}ZB\x12@/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}\x12\x89\x02\n\x11\x44\x65scribeTaskQueue\x12\x39.temporal.api.workflowservice.v1.DescribeTaskQueueRequest\x1a:.temporal.api.workflowservice.v1.DescribeTaskQueueResponse"}\x82\xd3\xe4\x93\x02w\x12\x35/namespaces/{namespace}/task-queues/{task_queue.name}Z>\x12/namespaces/{namespace}/schedules/{schedule_id}/matching-timesZG\x12\x45/api/v1/namespaces/{namespace}/schedules/{schedule_id}/matching-times\x12\xf4\x01\n\x0e\x44\x65leteSchedule\x12\x36.temporal.api.workflowservice.v1.DeleteScheduleRequest\x1a\x37.temporal.api.workflowservice.v1.DeleteScheduleResponse"q\x82\xd3\xe4\x93\x02k*//namespaces/{namespace}/schedules/{schedule_id}Z8*6/api/v1/namespaces/{namespace}/schedules/{schedule_id}\x12\xd5\x01\n\rListSchedules\x12\x35.temporal.api.workflowservice.v1.ListSchedulesRequest\x1a\x36.temporal.api.workflowservice.v1.ListSchedulesResponse"U\x82\xd3\xe4\x93\x02O\x12!/namespaces/{namespace}/schedulesZ*\x12(/api/v1/namespaces/{namespace}/schedules\x12\xe2\x01\n\x0e\x43ountSchedules\x12\x36.temporal.api.workflowservice.v1.CountSchedulesRequest\x1a\x37.temporal.api.workflowservice.v1.CountSchedulesResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/schedule-countZ/\x12-/api/v1/namespaces/{namespace}/schedule-count\x12\xb9\x01\n UpdateWorkerBuildIdCompatibility\x12H.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest\x1aI.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityResponse"\x00\x12\xe1\x02\n\x1dGetWorkerBuildIdCompatibility\x12\x45.temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest\x1a\x46.temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse"\xb0\x01\x82\xd3\xe4\x93\x02\xa9\x01\x12N/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibilityZW\x12U/api/v1/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibility\x12\xaa\x01\n\x1bUpdateWorkerVersioningRules\x12\x43.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesRequest\x1a\x44.temporal.api.workflowservice.v1.UpdateWorkerVersioningRulesResponse"\x00\x12\xc6\x02\n\x18GetWorkerVersioningRules\x12@.temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest\x1a\x41.temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse"\xa4\x01\x82\xd3\xe4\x93\x02\x9d\x01\x12H/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rulesZQ\x12O/api/v1/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rules\x12\x97\x02\n\x19GetWorkerTaskReachability\x12\x41.temporal.api.workflowservice.v1.GetWorkerTaskReachabilityRequest\x1a\x42.temporal.api.workflowservice.v1.GetWorkerTaskReachabilityResponse"s\x82\xd3\xe4\x93\x02m\x12\x30/namespaces/{namespace}/worker-task-reachabilityZ9\x12\x37/api/v1/namespaces/{namespace}/worker-task-reachability\x12\xc8\x02\n\x12\x44\x65scribeDeployment\x12:.temporal.api.workflowservice.v1.DescribeDeploymentRequest\x1a;.temporal.api.workflowservice.v1.DescribeDeploymentResponse"\xb8\x01\x82\xd3\xe4\x93\x02\xb1\x01\x12R/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}Z[\x12Y/api/v1/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}\x12\xb5\x03\n\x1f\x44\x65scribeWorkerDeploymentVersion\x12G.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionRequest\x1aH.temporal.api.workflowservice.v1.DescribeWorkerDeploymentVersionResponse"\xfe\x01\x82\xd3\xe4\x93\x02\xf7\x01\x12u/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}Z~\x12|/api/v1/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}\x12\xdf\x01\n\x0fListDeployments\x12\x37.temporal.api.workflowservice.v1.ListDeploymentsRequest\x1a\x38.temporal.api.workflowservice.v1.ListDeploymentsResponse"Y\x82\xd3\xe4\x93\x02S\x12#/namespaces/{namespace}/deploymentsZ,\x12*/api/v1/namespaces/{namespace}/deployments\x12\xf7\x02\n\x19GetDeploymentReachability\x12\x41.temporal.api.workflowservice.v1.GetDeploymentReachabilityRequest\x1a\x42.temporal.api.workflowservice.v1.GetDeploymentReachabilityResponse"\xd2\x01\x82\xd3\xe4\x93\x02\xcb\x01\x12_/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}/reachabilityZh\x12\x66/api/v1/namespaces/{namespace}/deployments/{deployment.series_name}/{deployment.build_id}/reachability\x12\x99\x02\n\x14GetCurrentDeployment\x12<.temporal.api.workflowservice.v1.GetCurrentDeploymentRequest\x1a=.temporal.api.workflowservice.v1.GetCurrentDeploymentResponse"\x83\x01\x82\xd3\xe4\x93\x02}\x12\x38/namespaces/{namespace}/current-deployment/{series_name}ZA\x12?/api/v1/namespaces/{namespace}/current-deployment/{series_name}\x12\xb6\x02\n\x14SetCurrentDeployment\x12<.temporal.api.workflowservice.v1.SetCurrentDeploymentRequest\x1a=.temporal.api.workflowservice.v1.SetCurrentDeploymentResponse"\xa0\x01\x82\xd3\xe4\x93\x02\x99\x01"C/namespaces/{namespace}/current-deployment/{deployment.series_name}:\x01*ZO"J/api/v1/namespaces/{namespace}/current-deployment/{deployment.series_name}:\x01*\x12\xf7\x02\n!SetWorkerDeploymentCurrentVersion\x12I.temporal.api.workflowservice.v1.SetWorkerDeploymentCurrentVersionRequest\x1aJ.temporal.api.workflowservice.v1.SetWorkerDeploymentCurrentVersionResponse"\xba\x01\x82\xd3\xe4\x93\x02\xb3\x01"P/namespaces/{namespace}/worker-deployments/{deployment_name}/set-current-version:\x01*Z\\"W/api/v1/namespaces/{namespace}/worker-deployments/{deployment_name}/set-current-version:\x01*\x12\xae\x02\n\x18\x44\x65scribeWorkerDeployment\x12@.temporal.api.workflowservice.v1.DescribeWorkerDeploymentRequest\x1a\x41.temporal.api.workflowservice.v1.DescribeWorkerDeploymentResponse"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01\x12.temporal.api.workflowservice.v1.DeleteWorkerDeploymentRequest\x1a?.temporal.api.workflowservice.v1.DeleteWorkerDeploymentResponse"\x8c\x01\x82\xd3\xe4\x93\x02\x85\x01*.temporal.api.workflowservice.v1.ListWorkerDeploymentsResponse"g\x82\xd3\xe4\x93\x02\x61\x12*/namespaces/{namespace}/worker-deploymentsZ3\x12\x31/api/v1/namespaces/{namespace}/worker-deployments\x12\xf0\x03\n%UpdateWorkerDeploymentVersionMetadata\x12M.temporal.api.workflowservice.v1.UpdateWorkerDeploymentVersionMetadataRequest\x1aN.temporal.api.workflowservice.v1.UpdateWorkerDeploymentVersionMetadataResponse"\xa7\x02\x82\xd3\xe4\x93\x02\xa0\x02"\x85\x01/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}/update-metadata:\x01*Z\x92\x01"\x8c\x01/api/v1/namespaces/{namespace}/worker-deployment-versions/{deployment_version.deployment_name}/{deployment_version.build_id}/update-metadata:\x01*\x12\xd2\x02\n\x1aSetWorkerDeploymentManager\x12\x42.temporal.api.workflowservice.v1.SetWorkerDeploymentManagerRequest\x1a\x43.temporal.api.workflowservice.v1.SetWorkerDeploymentManagerResponse"\xaa\x01\x82\xd3\xe4\x93\x02\xa3\x01"H/namespaces/{namespace}/worker-deployments/{deployment_name}/set-manager:\x01*ZT"O/api/v1/namespaces/{namespace}/worker-deployments/{deployment_name}/set-manager:\x01*\x12\xf5\x02\n\x17UpdateWorkflowExecution\x12?.temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponse"\xd6\x01\x82\xd3\xe4\x93\x02\xcf\x01"^/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\x01*Zj"e/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\x01*\x12\xaa\x01\n\x1bPollWorkflowExecutionUpdate\x12\x43.temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateRequest\x1a\x44.temporal.api.workflowservice.v1.PollWorkflowExecutionUpdateResponse"\x00\x12\x8d\x02\n\x13StartBatchOperation\x12;.temporal.api.workflowservice.v1.StartBatchOperationRequest\x1a<.temporal.api.workflowservice.v1.StartBatchOperationResponse"{\x82\xd3\xe4\x93\x02u"1/namespaces/{namespace}/batch-operations/{job_id}:\x01*Z="8/api/v1/namespaces/{namespace}/batch-operations/{job_id}:\x01*\x12\x95\x02\n\x12StopBatchOperation\x12:.temporal.api.workflowservice.v1.StopBatchOperationRequest\x1a;.temporal.api.workflowservice.v1.StopBatchOperationResponse"\x85\x01\x82\xd3\xe4\x93\x02\x7f"6/namespaces/{namespace}/batch-operations/{job_id}/stop:\x01*ZB"=/api/v1/namespaces/{namespace}/batch-operations/{job_id}/stop:\x01*\x12\x90\x02\n\x16\x44\x65scribeBatchOperation\x12>.temporal.api.workflowservice.v1.DescribeBatchOperationRequest\x1a?.temporal.api.workflowservice.v1.DescribeBatchOperationResponse"u\x82\xd3\xe4\x93\x02o\x12\x31/namespaces/{namespace}/batch-operations/{job_id}Z:\x12\x38/api/v1/namespaces/{namespace}/batch-operations/{job_id}\x12\xf5\x01\n\x13ListBatchOperations\x12;.temporal.api.workflowservice.v1.ListBatchOperationsRequest\x1a<.temporal.api.workflowservice.v1.ListBatchOperationsResponse"c\x82\xd3\xe4\x93\x02]\x12(/namespaces/{namespace}/batch-operationsZ1\x12//api/v1/namespaces/{namespace}/batch-operations\x12\x8f\x01\n\x12PollNexusTaskQueue\x12:.temporal.api.workflowservice.v1.PollNexusTaskQueueRequest\x1a;.temporal.api.workflowservice.v1.PollNexusTaskQueueResponse"\x00\x12\xa4\x01\n\x19RespondNexusTaskCompleted\x12\x41.temporal.api.workflowservice.v1.RespondNexusTaskCompletedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondNexusTaskCompletedResponse"\x00\x12\x9b\x01\n\x16RespondNexusTaskFailed\x12>.temporal.api.workflowservice.v1.RespondNexusTaskFailedRequest\x1a?.temporal.api.workflowservice.v1.RespondNexusTaskFailedResponse"\x00\x12\x93\x02\n\x15UpdateActivityOptions\x12=.temporal.api.workflowservice.v1.UpdateActivityOptionsRequest\x1a>.temporal.api.workflowservice.v1.UpdateActivityOptionsResponse"{\x82\xd3\xe4\x93\x02u"1/namespaces/{namespace}/activities/update-options:\x01*Z="8/api/v1/namespaces/{namespace}/activities/update-options:\x01*\x12\xf0\x02\n\x1eUpdateWorkflowExecutionOptions\x12\x46.temporal.api.workflowservice.v1.UpdateWorkflowExecutionOptionsRequest\x1aG.temporal.api.workflowservice.v1.UpdateWorkflowExecutionOptionsResponse"\xbc\x01\x82\xd3\xe4\x93\x02\xb5\x01"Q/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update-options:\x01*Z]"X/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update-options:\x01*\x12\xe9\x01\n\rPauseActivity\x12\x35.temporal.api.workflowservice.v1.PauseActivityRequest\x1a\x36.temporal.api.workflowservice.v1.PauseActivityResponse"i\x82\xd3\xe4\x93\x02\x63"(/namespaces/{namespace}/activities/pause:\x01*Z4"//api/v1/namespaces/{namespace}/activities/pause:\x01*\x12\xf3\x01\n\x0fUnpauseActivity\x12\x37.temporal.api.workflowservice.v1.UnpauseActivityRequest\x1a\x38.temporal.api.workflowservice.v1.UnpauseActivityResponse"m\x82\xd3\xe4\x93\x02g"*/namespaces/{namespace}/activities/unpause:\x01*Z6"1/api/v1/namespaces/{namespace}/activities/unpause:\x01*\x12\xe9\x01\n\rResetActivity\x12\x35.temporal.api.workflowservice.v1.ResetActivityRequest\x1a\x36.temporal.api.workflowservice.v1.ResetActivityResponse"i\x82\xd3\xe4\x93\x02\x63"(/namespaces/{namespace}/activities/reset:\x01*Z4"//api/v1/namespaces/{namespace}/activities/reset:\x01*\x12\xf4\x01\n\x12\x43reateWorkflowRule\x12:.temporal.api.workflowservice.v1.CreateWorkflowRuleRequest\x1a;.temporal.api.workflowservice.v1.CreateWorkflowRuleResponse"e\x82\xd3\xe4\x93\x02_"&/namespaces/{namespace}/workflow-rules:\x01*Z2"-/api/v1/namespaces/{namespace}/workflow-rules:\x01*\x12\x88\x02\n\x14\x44\x65scribeWorkflowRule\x12<.temporal.api.workflowservice.v1.DescribeWorkflowRuleRequest\x1a=.temporal.api.workflowservice.v1.DescribeWorkflowRuleResponse"s\x82\xd3\xe4\x93\x02m\x12\x30/namespaces/{namespace}/workflow-rules/{rule_id}Z9\x12\x37/api/v1/namespaces/{namespace}/workflow-rules/{rule_id}\x12\x82\x02\n\x12\x44\x65leteWorkflowRule\x12:.temporal.api.workflowservice.v1.DeleteWorkflowRuleRequest\x1a;.temporal.api.workflowservice.v1.DeleteWorkflowRuleResponse"s\x82\xd3\xe4\x93\x02m*0/namespaces/{namespace}/workflow-rules/{rule_id}Z9*7/api/v1/namespaces/{namespace}/workflow-rules/{rule_id}\x12\xeb\x01\n\x11ListWorkflowRules\x12\x39.temporal.api.workflowservice.v1.ListWorkflowRulesRequest\x1a:.temporal.api.workflowservice.v1.ListWorkflowRulesResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/workflow-rulesZ/\x12-/api/v1/namespaces/{namespace}/workflow-rules\x12\xb9\x02\n\x13TriggerWorkflowRule\x12;.temporal.api.workflowservice.v1.TriggerWorkflowRuleRequest\x1a<.temporal.api.workflowservice.v1.TriggerWorkflowRuleResponse"\xa6\x01\x82\xd3\xe4\x93\x02\x9f\x01"F/namespaces/{namespace}/workflows/{execution.workflow_id}/trigger-rule:\x01*ZR"M/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/trigger-rule:\x01*\x12\x83\x02\n\x15RecordWorkerHeartbeat\x12=.temporal.api.workflowservice.v1.RecordWorkerHeartbeatRequest\x1a>.temporal.api.workflowservice.v1.RecordWorkerHeartbeatResponse"k\x82\xd3\xe4\x93\x02\x65")/namespaces/{namespace}/workers/heartbeat:\x01*Z5"0/api/v1/namespaces/{namespace}/workers/heartbeat:\x01*\x12\xcb\x01\n\x0bListWorkers\x12\x33.temporal.api.workflowservice.v1.ListWorkersRequest\x1a\x34.temporal.api.workflowservice.v1.ListWorkersResponse"Q\x82\xd3\xe4\x93\x02K\x12\x1f/namespaces/{namespace}/workersZ(\x12&/api/v1/namespaces/{namespace}/workers\x12\xaf\x02\n\x15UpdateTaskQueueConfig\x12=.temporal.api.workflowservice.v1.UpdateTaskQueueConfigRequest\x1a>.temporal.api.workflowservice.v1.UpdateTaskQueueConfigResponse"\x96\x01\x82\xd3\xe4\x93\x02\x8f\x01">/namespaces/{namespace}/task-queues/{task_queue}/update-config:\x01*ZJ"E/api/v1/namespaces/{namespace}/task-queues/{task_queue}/update-config:\x01*\x12\xfd\x01\n\x11\x46\x65tchWorkerConfig\x12\x39.temporal.api.workflowservice.v1.FetchWorkerConfigRequest\x1a:.temporal.api.workflowservice.v1.FetchWorkerConfigResponse"q\x82\xd3\xe4\x93\x02k",/namespaces/{namespace}/workers/fetch-config:\x01*Z8"3/api/v1/namespaces/{namespace}/workers/fetch-config:\x01*\x12\x82\x02\n\x12UpdateWorkerConfig\x12:.temporal.api.workflowservice.v1.UpdateWorkerConfigRequest\x1a;.temporal.api.workflowservice.v1.UpdateWorkerConfigResponse"s\x82\xd3\xe4\x93\x02m"-/namespaces/{namespace}/workers/update-config:\x01*Z9"4/api/v1/namespaces/{namespace}/workers/update-config:\x01*\x12\x94\x02\n\x0e\x44\x65scribeWorker\x12\x36.temporal.api.workflowservice.v1.DescribeWorkerRequest\x1a\x37.temporal.api.workflowservice.v1.DescribeWorkerResponse"\x90\x01\x82\xd3\xe4\x93\x02\x89\x01\x12>/namespaces/{namespace}/workers/describe/{worker_instance_key}ZG\x12\x45/api/v1/namespaces/{namespace}/workers/describe/{worker_instance_key}\x12\x9f\x02\n\x16PauseWorkflowExecution\x12>.temporal.api.workflowservice.v1.PauseWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.PauseWorkflowExecutionResponse"\x83\x01\x82\xd3\xe4\x93\x02}"5/namespaces/{namespace}/workflows/{workflow_id}/pause:\x01*ZA"/api/v1/namespaces/{namespace}/workflows/{workflow_id}/unpause:\x01*\x12\x94\x02\n\x16StartActivityExecution\x12>.temporal.api.workflowservice.v1.StartActivityExecutionRequest\x1a?.temporal.api.workflowservice.v1.StartActivityExecutionResponse"y\x82\xd3\xe4\x93\x02s"0/namespaces/{namespace}/activities/{activity_id}:\x01*Z<"7/api/v1/namespaces/{namespace}/activities/{activity_id}:\x01*\x12\x97\x02\n\x19\x44\x65scribeActivityExecution\x12\x41.temporal.api.workflowservice.v1.DescribeActivityExecutionRequest\x1a\x42.temporal.api.workflowservice.v1.DescribeActivityExecutionResponse"s\x82\xd3\xe4\x93\x02m\x12\x30/namespaces/{namespace}/activities/{activity_id}Z9\x12\x37/api/v1/namespaces/{namespace}/activities/{activity_id}\x12\x9c\x02\n\x15PollActivityExecution\x12=.temporal.api.workflowservice.v1.PollActivityExecutionRequest\x1a>.temporal.api.workflowservice.v1.PollActivityExecutionResponse"\x83\x01\x82\xd3\xe4\x93\x02}\x12\x38/namespaces/{namespace}/activities/{activity_id}/outcomeZA\x12?/api/v1/namespaces/{namespace}/activities/{activity_id}/outcome\x12\xf2\x01\n\x16ListActivityExecutions\x12>.temporal.api.workflowservice.v1.ListActivityExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ListActivityExecutionsResponse"W\x82\xd3\xe4\x93\x02Q\x12"/namespaces/{namespace}/activitiesZ+\x12)/api/v1/namespaces/{namespace}/activities\x12\xfd\x01\n\x17\x43ountActivityExecutions\x12?.temporal.api.workflowservice.v1.CountActivityExecutionsRequest\x1a@.temporal.api.workflowservice.v1.CountActivityExecutionsResponse"_\x82\xd3\xe4\x93\x02Y\x12&/namespaces/{namespace}/activity-countZ/\x12-/api/v1/namespaces/{namespace}/activity-count\x12\xbc\x02\n\x1eRequestCancelActivityExecution\x12\x46.temporal.api.workflowservice.v1.RequestCancelActivityExecutionRequest\x1aG.temporal.api.workflowservice.v1.RequestCancelActivityExecutionResponse"\x88\x01\x82\xd3\xe4\x93\x02\x81\x01"7/namespaces/{namespace}/activities/{activity_id}/cancel:\x01*ZC">/api/v1/namespaces/{namespace}/activities/{activity_id}/cancel:\x01*\x12\xb6\x02\n\x1aTerminateActivityExecution\x12\x42.temporal.api.workflowservice.v1.TerminateActivityExecutionRequest\x1a\x43.temporal.api.workflowservice.v1.TerminateActivityExecutionResponse"\x8e\x01\x82\xd3\xe4\x93\x02\x87\x01":/namespaces/{namespace}/activities/{activity_id}/terminate:\x01*ZF"A/api/v1/namespaces/{namespace}/activities/{activity_id}/terminate:\x01*\x12\x9e\x01\n\x17\x44\x65leteActivityExecution\x12?.temporal.api.workflowservice.v1.DeleteActivityExecutionRequest\x1a@.temporal.api.workflowservice.v1.DeleteActivityExecutionResponse"\x00\x42\xb6\x01\n"io.temporal.api.workflowservice.v1B\x0cServiceProtoP\x01Z5go.temporal.io/api/workflowservice/v1;workflowservice\xaa\x02!Temporalio.Api.WorkflowService.V1\xea\x02$Temporalio::Api::WorkflowService::V1b\x06proto3'
)
@@ -179,6 +179,10 @@
_WORKFLOWSERVICE.methods_by_name[
"ListSchedules"
]._serialized_options = b"\202\323\344\223\002O\022!/namespaces/{namespace}/schedulesZ*\022(/api/v1/namespaces/{namespace}/schedules"
+ _WORKFLOWSERVICE.methods_by_name["CountSchedules"]._options = None
+ _WORKFLOWSERVICE.methods_by_name[
+ "CountSchedules"
+ ]._serialized_options = b"\202\323\344\223\002Y\022&/namespaces/{namespace}/schedule-countZ/\022-/api/v1/namespaces/{namespace}/schedule-count"
_WORKFLOWSERVICE.methods_by_name["GetWorkerBuildIdCompatibility"]._options = None
_WORKFLOWSERVICE.methods_by_name[
"GetWorkerBuildIdCompatibility"
@@ -340,11 +344,11 @@
_WORKFLOWSERVICE.methods_by_name["PauseWorkflowExecution"]._options = None
_WORKFLOWSERVICE.methods_by_name[
"PauseWorkflowExecution"
- ]._serialized_options = b'\202\323\344\223\002:"5/namespaces/{namespace}/workflows/{workflow_id}/pause:\001*'
+ ]._serialized_options = b'\202\323\344\223\002}"5/namespaces/{namespace}/workflows/{workflow_id}/pause:\001*ZA"/api/v1/namespaces/{namespace}/workflows/{workflow_id}/unpause:\001*'
_WORKFLOWSERVICE.methods_by_name["StartActivityExecution"]._options = None
_WORKFLOWSERVICE.methods_by_name[
"StartActivityExecution"
@@ -374,5 +378,5 @@
"TerminateActivityExecution"
]._serialized_options = b'\202\323\344\223\002\207\001":/namespaces/{namespace}/activities/{activity_id}/terminate:\001*ZF"A/api/v1/namespaces/{namespace}/activities/{activity_id}/terminate:\001*'
_WORKFLOWSERVICE._serialized_start = 170
- _WORKFLOWSERVICE._serialized_end = 27591
+ _WORKFLOWSERVICE._serialized_end = 27959
# @@protoc_insertion_point(module_scope)
diff --git a/temporalio/api/workflowservice/v1/service_pb2_grpc.py b/temporalio/api/workflowservice/v1/service_pb2_grpc.py
index a6008601a..795fcca84 100644
--- a/temporalio/api/workflowservice/v1/service_pb2_grpc.py
+++ b/temporalio/api/workflowservice/v1/service_pb2_grpc.py
@@ -278,6 +278,11 @@ def __init__(self, channel):
request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ListSchedulesRequest.SerializeToString,
response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ListSchedulesResponse.FromString,
)
+ self.CountSchedules = channel.unary_unary(
+ "/temporal.api.workflowservice.v1.WorkflowService/CountSchedules",
+ request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.CountSchedulesRequest.SerializeToString,
+ response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.CountSchedulesResponse.FromString,
+ )
self.UpdateWorkerBuildIdCompatibility = channel.unary_unary(
"/temporal.api.workflowservice.v1.WorkflowService/UpdateWorkerBuildIdCompatibility",
request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateWorkerBuildIdCompatibilityRequest.SerializeToString,
@@ -1089,6 +1094,12 @@ def ListSchedules(self, request, context):
context.set_details("Method not implemented!")
raise NotImplementedError("Method not implemented!")
+ def CountSchedules(self, request, context):
+ """CountSchedules is a visibility API to count schedules in a specific namespace."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
def UpdateWorkerBuildIdCompatibility(self, request, context):
"""Deprecated. Use `UpdateWorkerVersioningRules`.
@@ -1904,6 +1915,11 @@ def add_WorkflowServiceServicer_to_server(servicer, server):
request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ListSchedulesRequest.FromString,
response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ListSchedulesResponse.SerializeToString,
),
+ "CountSchedules": grpc.unary_unary_rpc_method_handler(
+ servicer.CountSchedules,
+ request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.CountSchedulesRequest.FromString,
+ response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.CountSchedulesResponse.SerializeToString,
+ ),
"UpdateWorkerBuildIdCompatibility": grpc.unary_unary_rpc_method_handler(
servicer.UpdateWorkerBuildIdCompatibility,
request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateWorkerBuildIdCompatibilityRequest.FromString,
@@ -3646,6 +3662,35 @@ def ListSchedules(
metadata,
)
+ @staticmethod
+ def CountSchedules(
+ request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.unary_unary(
+ request,
+ target,
+ "/temporal.api.workflowservice.v1.WorkflowService/CountSchedules",
+ temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.CountSchedulesRequest.SerializeToString,
+ temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.CountSchedulesResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
@staticmethod
def UpdateWorkerBuildIdCompatibility(
request,
diff --git a/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi b/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi
index e127760ae..5f5f0f9f0 100644
--- a/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi
+++ b/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi
@@ -499,6 +499,11 @@ class WorkflowServiceStub:
temporalio.api.workflowservice.v1.request_response_pb2.ListSchedulesResponse,
]
"""List all schedules in a namespace."""
+ CountSchedules: grpc.UnaryUnaryMultiCallable[
+ temporalio.api.workflowservice.v1.request_response_pb2.CountSchedulesRequest,
+ temporalio.api.workflowservice.v1.request_response_pb2.CountSchedulesResponse,
+ ]
+ """CountSchedules is a visibility API to count schedules in a specific namespace."""
UpdateWorkerBuildIdCompatibility: grpc.UnaryUnaryMultiCallable[
temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkerBuildIdCompatibilityRequest,
temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkerBuildIdCompatibilityResponse,
@@ -1606,6 +1611,13 @@ class WorkflowServiceServicer(metaclass=abc.ABCMeta):
) -> temporalio.api.workflowservice.v1.request_response_pb2.ListSchedulesResponse:
"""List all schedules in a namespace."""
@abc.abstractmethod
+ def CountSchedules(
+ self,
+ request: temporalio.api.workflowservice.v1.request_response_pb2.CountSchedulesRequest,
+ context: grpc.ServicerContext,
+ ) -> temporalio.api.workflowservice.v1.request_response_pb2.CountSchedulesResponse:
+ """CountSchedules is a visibility API to count schedules in a specific namespace."""
+ @abc.abstractmethod
def UpdateWorkerBuildIdCompatibility(
self,
request: temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkerBuildIdCompatibilityRequest,
diff --git a/temporalio/bridge/Cargo.lock b/temporalio/bridge/Cargo.lock
index 7e070992f..d3d126c9b 100644
--- a/temporalio/bridge/Cargo.lock
+++ b/temporalio/bridge/Cargo.lock
@@ -1448,6 +1448,43 @@ dependencies = [
"windows-targets 0.52.6",
]
+[[package]]
+name = "pbjson"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8edd1efdd8ab23ba9cb9ace3d9987a72663d5d7c9f74fa00b51d6213645cf6c"
+dependencies = [
+ "base64",
+ "serde",
+]
+
+[[package]]
+name = "pbjson-build"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ed4d5c6ae95e08ac768883c8401cf0e8deb4e6e1d6a4e1fd3d2ec4f0ec63200"
+dependencies = [
+ "heck",
+ "itertools",
+ "prost",
+ "prost-types",
+]
+
+[[package]]
+name = "pbjson-types"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a14e2757d877c0f607a82ce1b8560e224370f159d66c5d52eb55ea187ef0350e"
+dependencies = [
+ "bytes",
+ "chrono",
+ "pbjson",
+ "pbjson-build",
+ "prost",
+ "prost-build",
+ "serde",
+]
+
[[package]]
name = "percent-encoding"
version = "2.3.1"
@@ -2518,6 +2555,9 @@ dependencies = [
"derive_more",
"dirs",
"opentelemetry",
+ "pbjson",
+ "pbjson-build",
+ "pbjson-types",
"prost",
"prost-wkt",
"prost-wkt-types",
diff --git a/temporalio/bridge/proto/nexus/nexus_pb2.py b/temporalio/bridge/proto/nexus/nexus_pb2.py
index cba925157..9f2321045 100644
--- a/temporalio/bridge/proto/nexus/nexus_pb2.py
+++ b/temporalio/bridge/proto/nexus/nexus_pb2.py
@@ -34,7 +34,7 @@
)
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n#temporal/sdk/core/nexus/nexus.proto\x12\rcoresdk.nexus\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a#temporal/api/nexus/v1/message.proto\x1a\x36temporal/api/workflowservice/v1/request_response.proto\x1a%temporal/sdk/core/common/common.proto"\xf8\x01\n\x14NexusOperationResult\x12\x34\n\tcompleted\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x12\x32\n\x06\x66\x61iled\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\tcancelled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\ttimed_out\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"\xb5\x01\n\x13NexusTaskCompletion\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x34\n\tcompleted\x18\x02 \x01(\x0b\x32\x1f.temporal.api.nexus.v1.ResponseH\x00\x12\x34\n\x05\x65rror\x18\x03 \x01(\x0b\x32#.temporal.api.nexus.v1.HandlerErrorH\x00\x12\x14\n\nack_cancel\x18\x04 \x01(\x08H\x00\x42\x08\n\x06status"\xd0\x01\n\tNexusTask\x12K\n\x04task\x18\x01 \x01(\x0b\x32;.temporal.api.workflowservice.v1.PollNexusTaskQueueResponseH\x00\x12\x35\n\x0b\x63\x61ncel_task\x18\x02 \x01(\x0b\x32\x1e.coresdk.nexus.CancelNexusTaskH\x00\x12\x34\n\x10request_deadline\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\t\n\x07variant"[\n\x0f\x43\x61ncelNexusTask\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x34\n\x06reason\x18\x02 \x01(\x0e\x32$.coresdk.nexus.NexusTaskCancelReason*;\n\x15NexusTaskCancelReason\x12\r\n\tTIMED_OUT\x10\x00\x12\x13\n\x0fWORKER_SHUTDOWN\x10\x01*\x7f\n\x1eNexusOperationCancellationType\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x00\x12\x0b\n\x07\x41\x42\x41NDON\x10\x01\x12\x0e\n\nTRY_CANCEL\x10\x02\x12\x1f\n\x1bWAIT_CANCELLATION_REQUESTED\x10\x03\x42+\xea\x02(Temporalio::Internal::Bridge::Api::Nexusb\x06proto3'
+ b'\n#temporal/sdk/core/nexus/nexus.proto\x12\rcoresdk.nexus\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a#temporal/api/nexus/v1/message.proto\x1a\x36temporal/api/workflowservice/v1/request_response.proto\x1a%temporal/sdk/core/common/common.proto"\xf8\x01\n\x14NexusOperationResult\x12\x34\n\tcompleted\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x12\x32\n\x06\x66\x61iled\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\tcancelled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\ttimed_out\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"\xea\x01\n\x13NexusTaskCompletion\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x34\n\tcompleted\x18\x02 \x01(\x0b\x32\x1f.temporal.api.nexus.v1.ResponseH\x00\x12\x34\n\x05\x65rror\x18\x03 \x01(\x0b\x32#.temporal.api.nexus.v1.HandlerErrorH\x00\x12\x14\n\nack_cancel\x18\x04 \x01(\x08H\x00\x12\x33\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"\xd0\x01\n\tNexusTask\x12K\n\x04task\x18\x01 \x01(\x0b\x32;.temporal.api.workflowservice.v1.PollNexusTaskQueueResponseH\x00\x12\x35\n\x0b\x63\x61ncel_task\x18\x02 \x01(\x0b\x32\x1e.coresdk.nexus.CancelNexusTaskH\x00\x12\x34\n\x10request_deadline\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\t\n\x07variant"[\n\x0f\x43\x61ncelNexusTask\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x34\n\x06reason\x18\x02 \x01(\x0e\x32$.coresdk.nexus.NexusTaskCancelReason*;\n\x15NexusTaskCancelReason\x12\r\n\tTIMED_OUT\x10\x00\x12\x13\n\x0fWORKER_SHUTDOWN\x10\x01*\x7f\n\x1eNexusOperationCancellationType\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x00\x12\x0b\n\x07\x41\x42\x41NDON\x10\x01\x12\x0e\n\nTRY_CANCEL\x10\x02\x12\x1f\n\x1bWAIT_CANCELLATION_REQUESTED\x10\x03\x42+\xea\x02(Temporalio::Internal::Bridge::Api::Nexusb\x06proto3'
)
_NEXUSTASKCANCELREASON = DESCRIPTOR.enum_types_by_name["NexusTaskCancelReason"]
@@ -106,16 +106,16 @@
DESCRIPTOR._serialized_options = (
b"\352\002(Temporalio::Internal::Bridge::Api::Nexus"
)
- _NEXUSTASKCANCELREASON._serialized_start = 1035
- _NEXUSTASKCANCELREASON._serialized_end = 1094
- _NEXUSOPERATIONCANCELLATIONTYPE._serialized_start = 1096
- _NEXUSOPERATIONCANCELLATIONTYPE._serialized_end = 1223
+ _NEXUSTASKCANCELREASON._serialized_start = 1088
+ _NEXUSTASKCANCELREASON._serialized_end = 1147
+ _NEXUSOPERATIONCANCELLATIONTYPE._serialized_start = 1149
+ _NEXUSOPERATIONCANCELLATIONTYPE._serialized_end = 1276
_NEXUSOPERATIONRESULT._serialized_start = 297
_NEXUSOPERATIONRESULT._serialized_end = 545
_NEXUSTASKCOMPLETION._serialized_start = 548
- _NEXUSTASKCOMPLETION._serialized_end = 729
- _NEXUSTASK._serialized_start = 732
- _NEXUSTASK._serialized_end = 940
- _CANCELNEXUSTASK._serialized_start = 942
- _CANCELNEXUSTASK._serialized_end = 1033
+ _NEXUSTASKCOMPLETION._serialized_end = 782
+ _NEXUSTASK._serialized_start = 785
+ _NEXUSTASK._serialized_end = 993
+ _CANCELNEXUSTASK._serialized_start = 995
+ _CANCELNEXUSTASK._serialized_end = 1086
# @@protoc_insertion_point(module_scope)
diff --git a/temporalio/bridge/proto/nexus/nexus_pb2.pyi b/temporalio/bridge/proto/nexus/nexus_pb2.pyi
index f29582b0e..94f390595 100644
--- a/temporalio/bridge/proto/nexus/nexus_pb2.pyi
+++ b/temporalio/bridge/proto/nexus/nexus_pb2.pyi
@@ -165,6 +165,7 @@ class NexusTaskCompletion(google.protobuf.message.Message):
COMPLETED_FIELD_NUMBER: builtins.int
ERROR_FIELD_NUMBER: builtins.int
ACK_CANCEL_FIELD_NUMBER: builtins.int
+ FAILURE_FIELD_NUMBER: builtins.int
task_token: builtins.bytes
"""The unique identifier for this task provided in the poll response"""
@property
@@ -174,13 +175,16 @@ class NexusTaskCompletion(google.protobuf.message.Message):
"""
@property
def error(self) -> temporalio.api.nexus.v1.message_pb2.HandlerError:
- """The handler could not complete the request for some reason."""
+ """The handler could not complete the request for some reason. Deprecated, use failure."""
ack_cancel: builtins.bool
"""The lang SDK acknowledges that it is responding to a `CancelNexusTask` and thus the
response is irrelevant. This is not the only way to respond to a cancel, the other
variants can still be used, but this variant should be used when the handler was aborted
by cancellation.
"""
+ @property
+ def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure:
+ """The handler could not complete the request for some reason."""
def __init__(
self,
*,
@@ -188,6 +192,7 @@ class NexusTaskCompletion(google.protobuf.message.Message):
completed: temporalio.api.nexus.v1.message_pb2.Response | None = ...,
error: temporalio.api.nexus.v1.message_pb2.HandlerError | None = ...,
ack_cancel: builtins.bool = ...,
+ failure: temporalio.api.failure.v1.message_pb2.Failure | None = ...,
) -> None: ...
def HasField(
self,
@@ -198,6 +203,8 @@ class NexusTaskCompletion(google.protobuf.message.Message):
b"completed",
"error",
b"error",
+ "failure",
+ b"failure",
"status",
b"status",
],
@@ -211,6 +218,8 @@ class NexusTaskCompletion(google.protobuf.message.Message):
b"completed",
"error",
b"error",
+ "failure",
+ b"failure",
"status",
b"status",
"task_token",
@@ -219,7 +228,9 @@ class NexusTaskCompletion(google.protobuf.message.Message):
) -> None: ...
def WhichOneof(
self, oneof_group: typing_extensions.Literal["status", b"status"]
- ) -> typing_extensions.Literal["completed", "error", "ack_cancel"] | None: ...
+ ) -> (
+ typing_extensions.Literal["completed", "error", "ack_cancel", "failure"] | None
+ ): ...
global___NexusTaskCompletion = NexusTaskCompletion
diff --git a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py
index 52f62ac8c..337d51735 100644
--- a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py
+++ b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py
@@ -44,7 +44,7 @@
)
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n?temporal/sdk/core/workflow_activation/workflow_activation.proto\x12\x1b\x63oresdk.workflow_activation\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a\x37temporal/sdk/core/activity_result/activity_result.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a#temporal/sdk/core/nexus/nexus.proto"\x94\x03\n\x12WorkflowActivation\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cis_replaying\x18\x03 \x01(\x08\x12\x16\n\x0ehistory_length\x18\x04 \x01(\r\x12@\n\x04jobs\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.WorkflowActivationJob\x12 \n\x18\x61vailable_internal_flags\x18\x06 \x03(\r\x12\x1a\n\x12history_size_bytes\x18\x07 \x01(\x04\x12!\n\x19\x63ontinue_as_new_suggested\x18\x08 \x01(\x08\x12T\n#deployment_version_for_current_task\x18\t \x01(\x0b\x32\'.coresdk.common.WorkerDeploymentVersion\x12\x18\n\x10last_sdk_version\x18\n \x01(\t"\xe0\n\n\x15WorkflowActivationJob\x12N\n\x13initialize_workflow\x18\x01 \x01(\x0b\x32/.coresdk.workflow_activation.InitializeWorkflowH\x00\x12<\n\nfire_timer\x18\x02 \x01(\x0b\x32&.coresdk.workflow_activation.FireTimerH\x00\x12K\n\x12update_random_seed\x18\x04 \x01(\x0b\x32-.coresdk.workflow_activation.UpdateRandomSeedH\x00\x12\x44\n\x0equery_workflow\x18\x05 \x01(\x0b\x32*.coresdk.workflow_activation.QueryWorkflowH\x00\x12\x46\n\x0f\x63\x61ncel_workflow\x18\x06 \x01(\x0b\x32+.coresdk.workflow_activation.CancelWorkflowH\x00\x12\x46\n\x0fsignal_workflow\x18\x07 \x01(\x0b\x32+.coresdk.workflow_activation.SignalWorkflowH\x00\x12H\n\x10resolve_activity\x18\x08 \x01(\x0b\x32,.coresdk.workflow_activation.ResolveActivityH\x00\x12G\n\x10notify_has_patch\x18\t \x01(\x0b\x32+.coresdk.workflow_activation.NotifyHasPatchH\x00\x12q\n&resolve_child_workflow_execution_start\x18\n \x01(\x0b\x32?.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartH\x00\x12\x66\n resolve_child_workflow_execution\x18\x0b \x01(\x0b\x32:.coresdk.workflow_activation.ResolveChildWorkflowExecutionH\x00\x12\x66\n resolve_signal_external_workflow\x18\x0c \x01(\x0b\x32:.coresdk.workflow_activation.ResolveSignalExternalWorkflowH\x00\x12u\n(resolve_request_cancel_external_workflow\x18\r \x01(\x0b\x32\x41.coresdk.workflow_activation.ResolveRequestCancelExternalWorkflowH\x00\x12:\n\tdo_update\x18\x0e \x01(\x0b\x32%.coresdk.workflow_activation.DoUpdateH\x00\x12`\n\x1dresolve_nexus_operation_start\x18\x0f \x01(\x0b\x32\x37.coresdk.workflow_activation.ResolveNexusOperationStartH\x00\x12U\n\x17resolve_nexus_operation\x18\x10 \x01(\x0b\x32\x32.coresdk.workflow_activation.ResolveNexusOperationH\x00\x12I\n\x11remove_from_cache\x18\x32 \x01(\x0b\x32,.coresdk.workflow_activation.RemoveFromCacheH\x00\x42\t\n\x07variant"\xd9\n\n\x12InitializeWorkflow\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x17\n\x0frandomness_seed\x18\x04 \x01(\x04\x12M\n\x07headers\x18\x05 \x03(\x0b\x32<.coresdk.workflow_activation.InitializeWorkflow.HeadersEntry\x12\x10\n\x08identity\x18\x06 \x01(\t\x12I\n\x14parent_workflow_info\x18\x07 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12=\n\x1aworkflow_execution_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x1f\x63ontinued_from_execution_run_id\x18\x0b \x01(\t\x12J\n\x13\x63ontinued_initiator\x18\x0c \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12;\n\x11\x63ontinued_failure\x18\r \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1e\n\x16\x66irst_execution_run_id\x18\x0f \x01(\t\x12\x39\n\x0cretry_policy\x18\x10 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x0f\n\x07\x61ttempt\x18\x11 \x01(\x05\x12\x15\n\rcron_schedule\x18\x12 \x01(\t\x12\x46\n"workflow_execution_expiration_time\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n"cron_schedule_to_schedule_interval\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x15 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x16 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\nstart_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\rroot_workflow\x18\x18 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x08priority\x18\x19 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x18\n\tFireTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r"m\n\x0fResolveActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.activity_result.ActivityResolution\x12\x10\n\x08is_local\x18\x03 \x01(\x08"\xd1\x02\n"ResolveChildWorkflowExecutionStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12[\n\tsucceeded\x18\x02 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccessH\x00\x12X\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailureH\x00\x12]\n\tcancelled\x18\x04 \x01(\x0b\x32H.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelledH\x00\x42\x08\n\x06status";\n)ResolveChildWorkflowExecutionStartSuccess\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\xa6\x01\n)ResolveChildWorkflowExecutionStartFailure\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x15\n\rworkflow_type\x18\x02 \x01(\t\x12M\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32>.coresdk.child_workflow.StartChildWorkflowExecutionFailedCause"`\n+ResolveChildWorkflowExecutionStartCancelled\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"i\n\x1dResolveChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.child_workflow.ChildWorkflowResult"+\n\x10UpdateRandomSeed\x12\x17\n\x0frandomness_seed\x18\x01 \x01(\x04"\x84\x02\n\rQueryWorkflow\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_type\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.coresdk.workflow_activation.QueryWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01" \n\x0e\x43\x61ncelWorkflow\x12\x0e\n\x06reason\x18\x01 \x01(\t"\x83\x02\n\x0eSignalWorkflow\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12.\n\x05input\x18\x02 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x10\n\x08identity\x18\x03 \x01(\t\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.coresdk.workflow_activation.SignalWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01""\n\x0eNotifyHasPatch\x12\x10\n\x08patch_id\x18\x01 \x01(\t"_\n\x1dResolveSignalExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"f\n$ResolveRequestCancelExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xcb\x02\n\x08\x44oUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x14protocol_instance_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x43\n\x07headers\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.DoUpdate.HeadersEntry\x12*\n\x04meta\x18\x06 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x15\n\rrun_validator\x18\x07 \x01(\x08\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x9a\x01\n\x1aResolveNexusOperationStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x19\n\x0foperation_token\x18\x02 \x01(\tH\x00\x12\x16\n\x0cstarted_sync\x18\x03 \x01(\x08H\x00\x12\x32\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"Y\n\x15ResolveNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x33\n\x06result\x18\x02 \x01(\x0b\x32#.coresdk.nexus.NexusOperationResult"\xe0\x02\n\x0fRemoveFromCache\x12\x0f\n\x07message\x18\x01 \x01(\t\x12K\n\x06reason\x18\x02 \x01(\x0e\x32;.coresdk.workflow_activation.RemoveFromCache.EvictionReason"\xee\x01\n\x0e\x45victionReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nCACHE_FULL\x10\x01\x12\x0e\n\nCACHE_MISS\x10\x02\x12\x12\n\x0eNONDETERMINISM\x10\x03\x12\r\n\tLANG_FAIL\x10\x04\x12\x12\n\x0eLANG_REQUESTED\x10\x05\x12\x12\n\x0eTASK_NOT_FOUND\x10\x06\x12\x15\n\x11UNHANDLED_COMMAND\x10\x07\x12\t\n\x05\x46\x41TAL\x10\x08\x12\x1f\n\x1bPAGINATION_OR_HISTORY_FETCH\x10\t\x12\x1d\n\x19WORKFLOW_EXECUTION_ENDING\x10\nB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowActivationb\x06proto3'
+ b'\n?temporal/sdk/core/workflow_activation/workflow_activation.proto\x12\x1b\x63oresdk.workflow_activation\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a\x37temporal/sdk/core/activity_result/activity_result.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a#temporal/sdk/core/nexus/nexus.proto"\xf0\x03\n\x12WorkflowActivation\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cis_replaying\x18\x03 \x01(\x08\x12\x16\n\x0ehistory_length\x18\x04 \x01(\r\x12@\n\x04jobs\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.WorkflowActivationJob\x12 \n\x18\x61vailable_internal_flags\x18\x06 \x03(\r\x12\x1a\n\x12history_size_bytes\x18\x07 \x01(\x04\x12!\n\x19\x63ontinue_as_new_suggested\x18\x08 \x01(\x08\x12T\n#deployment_version_for_current_task\x18\t \x01(\x0b\x32\'.coresdk.common.WorkerDeploymentVersion\x12\x18\n\x10last_sdk_version\x18\n \x01(\t\x12Z\n\x1fsuggest_continue_as_new_reasons\x18\x0b \x03(\x0e\x32\x31.temporal.api.enums.v1.SuggestContinueAsNewReason"\xe0\n\n\x15WorkflowActivationJob\x12N\n\x13initialize_workflow\x18\x01 \x01(\x0b\x32/.coresdk.workflow_activation.InitializeWorkflowH\x00\x12<\n\nfire_timer\x18\x02 \x01(\x0b\x32&.coresdk.workflow_activation.FireTimerH\x00\x12K\n\x12update_random_seed\x18\x04 \x01(\x0b\x32-.coresdk.workflow_activation.UpdateRandomSeedH\x00\x12\x44\n\x0equery_workflow\x18\x05 \x01(\x0b\x32*.coresdk.workflow_activation.QueryWorkflowH\x00\x12\x46\n\x0f\x63\x61ncel_workflow\x18\x06 \x01(\x0b\x32+.coresdk.workflow_activation.CancelWorkflowH\x00\x12\x46\n\x0fsignal_workflow\x18\x07 \x01(\x0b\x32+.coresdk.workflow_activation.SignalWorkflowH\x00\x12H\n\x10resolve_activity\x18\x08 \x01(\x0b\x32,.coresdk.workflow_activation.ResolveActivityH\x00\x12G\n\x10notify_has_patch\x18\t \x01(\x0b\x32+.coresdk.workflow_activation.NotifyHasPatchH\x00\x12q\n&resolve_child_workflow_execution_start\x18\n \x01(\x0b\x32?.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartH\x00\x12\x66\n resolve_child_workflow_execution\x18\x0b \x01(\x0b\x32:.coresdk.workflow_activation.ResolveChildWorkflowExecutionH\x00\x12\x66\n resolve_signal_external_workflow\x18\x0c \x01(\x0b\x32:.coresdk.workflow_activation.ResolveSignalExternalWorkflowH\x00\x12u\n(resolve_request_cancel_external_workflow\x18\r \x01(\x0b\x32\x41.coresdk.workflow_activation.ResolveRequestCancelExternalWorkflowH\x00\x12:\n\tdo_update\x18\x0e \x01(\x0b\x32%.coresdk.workflow_activation.DoUpdateH\x00\x12`\n\x1dresolve_nexus_operation_start\x18\x0f \x01(\x0b\x32\x37.coresdk.workflow_activation.ResolveNexusOperationStartH\x00\x12U\n\x17resolve_nexus_operation\x18\x10 \x01(\x0b\x32\x32.coresdk.workflow_activation.ResolveNexusOperationH\x00\x12I\n\x11remove_from_cache\x18\x32 \x01(\x0b\x32,.coresdk.workflow_activation.RemoveFromCacheH\x00\x42\t\n\x07variant"\xd9\n\n\x12InitializeWorkflow\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x17\n\x0frandomness_seed\x18\x04 \x01(\x04\x12M\n\x07headers\x18\x05 \x03(\x0b\x32<.coresdk.workflow_activation.InitializeWorkflow.HeadersEntry\x12\x10\n\x08identity\x18\x06 \x01(\t\x12I\n\x14parent_workflow_info\x18\x07 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12=\n\x1aworkflow_execution_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x1f\x63ontinued_from_execution_run_id\x18\x0b \x01(\t\x12J\n\x13\x63ontinued_initiator\x18\x0c \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12;\n\x11\x63ontinued_failure\x18\r \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1e\n\x16\x66irst_execution_run_id\x18\x0f \x01(\t\x12\x39\n\x0cretry_policy\x18\x10 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x0f\n\x07\x61ttempt\x18\x11 \x01(\x05\x12\x15\n\rcron_schedule\x18\x12 \x01(\t\x12\x46\n"workflow_execution_expiration_time\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n"cron_schedule_to_schedule_interval\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x15 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x16 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\nstart_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\rroot_workflow\x18\x18 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x08priority\x18\x19 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x18\n\tFireTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r"m\n\x0fResolveActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.activity_result.ActivityResolution\x12\x10\n\x08is_local\x18\x03 \x01(\x08"\xd1\x02\n"ResolveChildWorkflowExecutionStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12[\n\tsucceeded\x18\x02 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccessH\x00\x12X\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailureH\x00\x12]\n\tcancelled\x18\x04 \x01(\x0b\x32H.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelledH\x00\x42\x08\n\x06status";\n)ResolveChildWorkflowExecutionStartSuccess\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\xa6\x01\n)ResolveChildWorkflowExecutionStartFailure\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x15\n\rworkflow_type\x18\x02 \x01(\t\x12M\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32>.coresdk.child_workflow.StartChildWorkflowExecutionFailedCause"`\n+ResolveChildWorkflowExecutionStartCancelled\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"i\n\x1dResolveChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.child_workflow.ChildWorkflowResult"+\n\x10UpdateRandomSeed\x12\x17\n\x0frandomness_seed\x18\x01 \x01(\x04"\x84\x02\n\rQueryWorkflow\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_type\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.coresdk.workflow_activation.QueryWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01" \n\x0e\x43\x61ncelWorkflow\x12\x0e\n\x06reason\x18\x01 \x01(\t"\x83\x02\n\x0eSignalWorkflow\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12.\n\x05input\x18\x02 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x10\n\x08identity\x18\x03 \x01(\t\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.coresdk.workflow_activation.SignalWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01""\n\x0eNotifyHasPatch\x12\x10\n\x08patch_id\x18\x01 \x01(\t"_\n\x1dResolveSignalExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"f\n$ResolveRequestCancelExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xcb\x02\n\x08\x44oUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x14protocol_instance_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x43\n\x07headers\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.DoUpdate.HeadersEntry\x12*\n\x04meta\x18\x06 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x15\n\rrun_validator\x18\x07 \x01(\x08\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x9a\x01\n\x1aResolveNexusOperationStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x19\n\x0foperation_token\x18\x02 \x01(\tH\x00\x12\x16\n\x0cstarted_sync\x18\x03 \x01(\x08H\x00\x12\x32\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"Y\n\x15ResolveNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x33\n\x06result\x18\x02 \x01(\x0b\x32#.coresdk.nexus.NexusOperationResult"\xe0\x02\n\x0fRemoveFromCache\x12\x0f\n\x07message\x18\x01 \x01(\t\x12K\n\x06reason\x18\x02 \x01(\x0e\x32;.coresdk.workflow_activation.RemoveFromCache.EvictionReason"\xee\x01\n\x0e\x45victionReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nCACHE_FULL\x10\x01\x12\x0e\n\nCACHE_MISS\x10\x02\x12\x12\n\x0eNONDETERMINISM\x10\x03\x12\r\n\tLANG_FAIL\x10\x04\x12\x12\n\x0eLANG_REQUESTED\x10\x05\x12\x12\n\x0eTASK_NOT_FOUND\x10\x06\x12\x15\n\x11UNHANDLED_COMMAND\x10\x07\x12\t\n\x05\x46\x41TAL\x10\x08\x12\x1f\n\x1bPAGINATION_OR_HISTORY_FETCH\x10\t\x12\x1d\n\x19WORKFLOW_EXECUTION_ENDING\x10\nB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowActivationb\x06proto3'
)
@@ -377,55 +377,55 @@
_DOUPDATE_HEADERSENTRY._options = None
_DOUPDATE_HEADERSENTRY._serialized_options = b"8\001"
_WORKFLOWACTIVATION._serialized_start = 532
- _WORKFLOWACTIVATION._serialized_end = 936
- _WORKFLOWACTIVATIONJOB._serialized_start = 939
- _WORKFLOWACTIVATIONJOB._serialized_end = 2315
- _INITIALIZEWORKFLOW._serialized_start = 2318
- _INITIALIZEWORKFLOW._serialized_end = 3687
- _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_start = 3608
- _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_end = 3687
- _FIRETIMER._serialized_start = 3689
- _FIRETIMER._serialized_end = 3713
- _RESOLVEACTIVITY._serialized_start = 3715
- _RESOLVEACTIVITY._serialized_end = 3824
- _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_start = 3827
- _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_end = 4164
- _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_start = 4166
- _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_end = 4225
- _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_start = 4228
- _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_end = 4394
- _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_start = 4396
- _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_end = 4492
- _RESOLVECHILDWORKFLOWEXECUTION._serialized_start = 4494
- _RESOLVECHILDWORKFLOWEXECUTION._serialized_end = 4599
- _UPDATERANDOMSEED._serialized_start = 4601
- _UPDATERANDOMSEED._serialized_end = 4644
- _QUERYWORKFLOW._serialized_start = 4647
- _QUERYWORKFLOW._serialized_end = 4907
- _QUERYWORKFLOW_HEADERSENTRY._serialized_start = 3608
- _QUERYWORKFLOW_HEADERSENTRY._serialized_end = 3687
- _CANCELWORKFLOW._serialized_start = 4909
- _CANCELWORKFLOW._serialized_end = 4941
- _SIGNALWORKFLOW._serialized_start = 4944
- _SIGNALWORKFLOW._serialized_end = 5203
- _SIGNALWORKFLOW_HEADERSENTRY._serialized_start = 3608
- _SIGNALWORKFLOW_HEADERSENTRY._serialized_end = 3687
- _NOTIFYHASPATCH._serialized_start = 5205
- _NOTIFYHASPATCH._serialized_end = 5239
- _RESOLVESIGNALEXTERNALWORKFLOW._serialized_start = 5241
- _RESOLVESIGNALEXTERNALWORKFLOW._serialized_end = 5336
- _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_start = 5338
- _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_end = 5440
- _DOUPDATE._serialized_start = 5443
- _DOUPDATE._serialized_end = 5774
- _DOUPDATE_HEADERSENTRY._serialized_start = 3608
- _DOUPDATE_HEADERSENTRY._serialized_end = 3687
- _RESOLVENEXUSOPERATIONSTART._serialized_start = 5777
- _RESOLVENEXUSOPERATIONSTART._serialized_end = 5931
- _RESOLVENEXUSOPERATION._serialized_start = 5933
- _RESOLVENEXUSOPERATION._serialized_end = 6022
- _REMOVEFROMCACHE._serialized_start = 6025
- _REMOVEFROMCACHE._serialized_end = 6377
- _REMOVEFROMCACHE_EVICTIONREASON._serialized_start = 6139
- _REMOVEFROMCACHE_EVICTIONREASON._serialized_end = 6377
+ _WORKFLOWACTIVATION._serialized_end = 1028
+ _WORKFLOWACTIVATIONJOB._serialized_start = 1031
+ _WORKFLOWACTIVATIONJOB._serialized_end = 2407
+ _INITIALIZEWORKFLOW._serialized_start = 2410
+ _INITIALIZEWORKFLOW._serialized_end = 3779
+ _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_start = 3700
+ _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_end = 3779
+ _FIRETIMER._serialized_start = 3781
+ _FIRETIMER._serialized_end = 3805
+ _RESOLVEACTIVITY._serialized_start = 3807
+ _RESOLVEACTIVITY._serialized_end = 3916
+ _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_start = 3919
+ _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_end = 4256
+ _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_start = 4258
+ _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_end = 4317
+ _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_start = 4320
+ _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_end = 4486
+ _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_start = 4488
+ _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_end = 4584
+ _RESOLVECHILDWORKFLOWEXECUTION._serialized_start = 4586
+ _RESOLVECHILDWORKFLOWEXECUTION._serialized_end = 4691
+ _UPDATERANDOMSEED._serialized_start = 4693
+ _UPDATERANDOMSEED._serialized_end = 4736
+ _QUERYWORKFLOW._serialized_start = 4739
+ _QUERYWORKFLOW._serialized_end = 4999
+ _QUERYWORKFLOW_HEADERSENTRY._serialized_start = 3700
+ _QUERYWORKFLOW_HEADERSENTRY._serialized_end = 3779
+ _CANCELWORKFLOW._serialized_start = 5001
+ _CANCELWORKFLOW._serialized_end = 5033
+ _SIGNALWORKFLOW._serialized_start = 5036
+ _SIGNALWORKFLOW._serialized_end = 5295
+ _SIGNALWORKFLOW_HEADERSENTRY._serialized_start = 3700
+ _SIGNALWORKFLOW_HEADERSENTRY._serialized_end = 3779
+ _NOTIFYHASPATCH._serialized_start = 5297
+ _NOTIFYHASPATCH._serialized_end = 5331
+ _RESOLVESIGNALEXTERNALWORKFLOW._serialized_start = 5333
+ _RESOLVESIGNALEXTERNALWORKFLOW._serialized_end = 5428
+ _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_start = 5430
+ _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_end = 5532
+ _DOUPDATE._serialized_start = 5535
+ _DOUPDATE._serialized_end = 5866
+ _DOUPDATE_HEADERSENTRY._serialized_start = 3700
+ _DOUPDATE_HEADERSENTRY._serialized_end = 3779
+ _RESOLVENEXUSOPERATIONSTART._serialized_start = 5869
+ _RESOLVENEXUSOPERATIONSTART._serialized_end = 6023
+ _RESOLVENEXUSOPERATION._serialized_start = 6025
+ _RESOLVENEXUSOPERATION._serialized_end = 6114
+ _REMOVEFROMCACHE._serialized_start = 6117
+ _REMOVEFROMCACHE._serialized_end = 6469
+ _REMOVEFROMCACHE_EVICTIONREASON._serialized_start = 6231
+ _REMOVEFROMCACHE_EVICTIONREASON._serialized_end = 6469
# @@protoc_insertion_point(module_scope)
diff --git a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi
index 0c0c54733..d38346d77 100644
--- a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi
+++ b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi
@@ -93,6 +93,7 @@ class WorkflowActivation(google.protobuf.message.Message):
CONTINUE_AS_NEW_SUGGESTED_FIELD_NUMBER: builtins.int
DEPLOYMENT_VERSION_FOR_CURRENT_TASK_FIELD_NUMBER: builtins.int
LAST_SDK_VERSION_FIELD_NUMBER: builtins.int
+ SUGGEST_CONTINUE_AS_NEW_REASONS_FIELD_NUMBER: builtins.int
run_id: builtins.str
"""The id of the currently active run of the workflow. Also used as a cache key. There may
only ever be one active workflow task (and hence activation) of a run at one time.
@@ -139,6 +140,16 @@ class WorkflowActivation(google.protobuf.message.Message):
"""
last_sdk_version: builtins.str
"""The last seen SDK version from the most recent WFT completed event"""
+ @property
+ def suggest_continue_as_new_reasons(
+ self,
+ ) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[
+ temporalio.api.enums.v1.workflow_pb2.SuggestContinueAsNewReason.ValueType
+ ]:
+ """Experimental. Optionally decide the versioning behavior that the first task of the new run should use.
+ For example, choose to AutoUpgrade on continue-as-new instead of inheriting the pinned version
+ of the previous run.
+ """
def __init__(
self,
*,
@@ -153,6 +164,10 @@ class WorkflowActivation(google.protobuf.message.Message):
deployment_version_for_current_task: temporalio.bridge.proto.common.common_pb2.WorkerDeploymentVersion
| None = ...,
last_sdk_version: builtins.str = ...,
+ suggest_continue_as_new_reasons: collections.abc.Iterable[
+ temporalio.api.enums.v1.workflow_pb2.SuggestContinueAsNewReason.ValueType
+ ]
+ | None = ...,
) -> None: ...
def HasField(
self,
@@ -184,6 +199,8 @@ class WorkflowActivation(google.protobuf.message.Message):
b"last_sdk_version",
"run_id",
b"run_id",
+ "suggest_continue_as_new_reasons",
+ b"suggest_continue_as_new_reasons",
"timestamp",
b"timestamp",
],
diff --git a/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.py b/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.py
index 6176f33a7..31d5dbd5e 100644
--- a/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.py
+++ b/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.py
@@ -42,7 +42,7 @@
)
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
- b'\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a#temporal/sdk/core/nexus/nexus.proto\x1a%temporal/sdk/core/common/common.proto"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r"\xb8\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x10 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xfb\x06\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12j\n\x11search_attributes\x18\x08 \x03(\x0b\x32O.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.SearchAttributesEntry\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x19\n\x17\x43\x61ncelWorkflowExecution"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08"\x94\n\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12g\n\x11search_attributes\x18\x11 \x03(\x0b\x32L.coresdk.workflow_commands.StartChildWorkflowExecution.SearchAttributesEntry\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"J\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t"\x8e\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r"\xe6\x01\n\x1eUpsertWorkflowSearchAttributes\x12j\n\x11search_attributes\x18\x01 \x03(\x0b\x32O.coresdk.workflow_commands.UpsertWorkflowSearchAttributes.SearchAttributesEntry\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response"\x9a\x04\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x12H\n\x11\x63\x61ncellation_type\x18\x08 \x01(\x0e\x32-.coresdk.nexus.NexusOperationCancellationType\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3'
+ b'\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a#temporal/sdk/core/nexus/nexus.proto\x1a%temporal/sdk/core/common/common.proto"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r"\xb8\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x10 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xd8\x07\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12j\n\x11search_attributes\x18\x08 \x03(\x0b\x32O.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.SearchAttributesEntry\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12[\n\x1binitial_versioning_behavior\x18\x0b \x01(\x0e\x32\x36.temporal.api.enums.v1.ContinueAsNewVersioningBehavior\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x19\n\x17\x43\x61ncelWorkflowExecution"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08"\x94\n\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12g\n\x11search_attributes\x18\x11 \x03(\x0b\x32L.coresdk.workflow_commands.StartChildWorkflowExecution.SearchAttributesEntry\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"J\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t"\x8e\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r"\xe6\x01\n\x1eUpsertWorkflowSearchAttributes\x12j\n\x11search_attributes\x18\x01 \x03(\x0b\x32O.coresdk.workflow_commands.UpsertWorkflowSearchAttributes.SearchAttributesEntry\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response"\x9a\x04\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x12H\n\x11\x63\x61ncellation_type\x18\x08 \x01(\x0e\x32-.coresdk.nexus.NexusOperationCancellationType\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3'
)
_ACTIVITYCANCELLATIONTYPE = DESCRIPTOR.enum_types_by_name["ActivityCancellationType"]
@@ -526,8 +526,8 @@
_UPSERTWORKFLOWSEARCHATTRIBUTES_SEARCHATTRIBUTESENTRY._serialized_options = b"8\001"
_SCHEDULENEXUSOPERATION_NEXUSHEADERENTRY._options = None
_SCHEDULENEXUSOPERATION_NEXUSHEADERENTRY._serialized_options = b"8\001"
- _ACTIVITYCANCELLATIONTYPE._serialized_start = 8701
- _ACTIVITYCANCELLATIONTYPE._serialized_end = 8789
+ _ACTIVITYCANCELLATIONTYPE._serialized_start = 8794
+ _ACTIVITYCANCELLATIONTYPE._serialized_end = 8882
_WORKFLOWCOMMAND._serialized_start = 472
_WORKFLOWCOMMAND._serialized_end = 2493
_STARTTIMER._serialized_start = 2495
@@ -555,47 +555,47 @@
_FAILWORKFLOWEXECUTION._serialized_start = 4573
_FAILWORKFLOWEXECUTION._serialized_end = 4647
_CONTINUEASNEWWORKFLOWEXECUTION._serialized_start = 4650
- _CONTINUEASNEWWORKFLOWEXECUTION._serialized_end = 5541
- _CONTINUEASNEWWORKFLOWEXECUTION_MEMOENTRY._serialized_start = 5294
- _CONTINUEASNEWWORKFLOWEXECUTION_MEMOENTRY._serialized_end = 5370
+ _CONTINUEASNEWWORKFLOWEXECUTION._serialized_end = 5634
+ _CONTINUEASNEWWORKFLOWEXECUTION_MEMOENTRY._serialized_start = 5387
+ _CONTINUEASNEWWORKFLOWEXECUTION_MEMOENTRY._serialized_end = 5463
_CONTINUEASNEWWORKFLOWEXECUTION_HEADERSENTRY._serialized_start = 3354
_CONTINUEASNEWWORKFLOWEXECUTION_HEADERSENTRY._serialized_end = 3433
- _CONTINUEASNEWWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_start = 5453
- _CONTINUEASNEWWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_end = 5541
- _CANCELWORKFLOWEXECUTION._serialized_start = 5543
- _CANCELWORKFLOWEXECUTION._serialized_end = 5568
- _SETPATCHMARKER._serialized_start = 5570
- _SETPATCHMARKER._serialized_end = 5624
- _STARTCHILDWORKFLOWEXECUTION._serialized_start = 5627
- _STARTCHILDWORKFLOWEXECUTION._serialized_end = 6927
+ _CONTINUEASNEWWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_start = 5546
+ _CONTINUEASNEWWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_end = 5634
+ _CANCELWORKFLOWEXECUTION._serialized_start = 5636
+ _CANCELWORKFLOWEXECUTION._serialized_end = 5661
+ _SETPATCHMARKER._serialized_start = 5663
+ _SETPATCHMARKER._serialized_end = 5717
+ _STARTCHILDWORKFLOWEXECUTION._serialized_start = 5720
+ _STARTCHILDWORKFLOWEXECUTION._serialized_end = 7020
_STARTCHILDWORKFLOWEXECUTION_HEADERSENTRY._serialized_start = 3354
_STARTCHILDWORKFLOWEXECUTION_HEADERSENTRY._serialized_end = 3433
- _STARTCHILDWORKFLOWEXECUTION_MEMOENTRY._serialized_start = 5294
- _STARTCHILDWORKFLOWEXECUTION_MEMOENTRY._serialized_end = 5370
- _STARTCHILDWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_start = 5453
- _STARTCHILDWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_end = 5541
- _CANCELCHILDWORKFLOWEXECUTION._serialized_start = 6929
- _CANCELCHILDWORKFLOWEXECUTION._serialized_end = 7003
- _REQUESTCANCELEXTERNALWORKFLOWEXECUTION._serialized_start = 7006
- _REQUESTCANCELEXTERNALWORKFLOWEXECUTION._serialized_end = 7148
- _SIGNALEXTERNALWORKFLOWEXECUTION._serialized_start = 7151
- _SIGNALEXTERNALWORKFLOWEXECUTION._serialized_end = 7550
+ _STARTCHILDWORKFLOWEXECUTION_MEMOENTRY._serialized_start = 5387
+ _STARTCHILDWORKFLOWEXECUTION_MEMOENTRY._serialized_end = 5463
+ _STARTCHILDWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_start = 5546
+ _STARTCHILDWORKFLOWEXECUTION_SEARCHATTRIBUTESENTRY._serialized_end = 5634
+ _CANCELCHILDWORKFLOWEXECUTION._serialized_start = 7022
+ _CANCELCHILDWORKFLOWEXECUTION._serialized_end = 7096
+ _REQUESTCANCELEXTERNALWORKFLOWEXECUTION._serialized_start = 7099
+ _REQUESTCANCELEXTERNALWORKFLOWEXECUTION._serialized_end = 7241
+ _SIGNALEXTERNALWORKFLOWEXECUTION._serialized_start = 7244
+ _SIGNALEXTERNALWORKFLOWEXECUTION._serialized_end = 7643
_SIGNALEXTERNALWORKFLOWEXECUTION_HEADERSENTRY._serialized_start = 3354
_SIGNALEXTERNALWORKFLOWEXECUTION_HEADERSENTRY._serialized_end = 3433
- _CANCELSIGNALWORKFLOW._serialized_start = 7552
- _CANCELSIGNALWORKFLOW._serialized_end = 7587
- _UPSERTWORKFLOWSEARCHATTRIBUTES._serialized_start = 7590
- _UPSERTWORKFLOWSEARCHATTRIBUTES._serialized_end = 7820
- _UPSERTWORKFLOWSEARCHATTRIBUTES_SEARCHATTRIBUTESENTRY._serialized_start = 5453
- _UPSERTWORKFLOWSEARCHATTRIBUTES_SEARCHATTRIBUTESENTRY._serialized_end = 5541
- _MODIFYWORKFLOWPROPERTIES._serialized_start = 7822
- _MODIFYWORKFLOWPROPERTIES._serialized_end = 7901
- _UPDATERESPONSE._serialized_start = 7904
- _UPDATERESPONSE._serialized_end = 8114
- _SCHEDULENEXUSOPERATION._serialized_start = 8117
- _SCHEDULENEXUSOPERATION._serialized_end = 8655
- _SCHEDULENEXUSOPERATION_NEXUSHEADERENTRY._serialized_start = 8605
- _SCHEDULENEXUSOPERATION_NEXUSHEADERENTRY._serialized_end = 8655
- _REQUESTCANCELNEXUSOPERATION._serialized_start = 8657
- _REQUESTCANCELNEXUSOPERATION._serialized_end = 8699
+ _CANCELSIGNALWORKFLOW._serialized_start = 7645
+ _CANCELSIGNALWORKFLOW._serialized_end = 7680
+ _UPSERTWORKFLOWSEARCHATTRIBUTES._serialized_start = 7683
+ _UPSERTWORKFLOWSEARCHATTRIBUTES._serialized_end = 7913
+ _UPSERTWORKFLOWSEARCHATTRIBUTES_SEARCHATTRIBUTESENTRY._serialized_start = 5546
+ _UPSERTWORKFLOWSEARCHATTRIBUTES_SEARCHATTRIBUTESENTRY._serialized_end = 5634
+ _MODIFYWORKFLOWPROPERTIES._serialized_start = 7915
+ _MODIFYWORKFLOWPROPERTIES._serialized_end = 7994
+ _UPDATERESPONSE._serialized_start = 7997
+ _UPDATERESPONSE._serialized_end = 8207
+ _SCHEDULENEXUSOPERATION._serialized_start = 8210
+ _SCHEDULENEXUSOPERATION._serialized_end = 8748
+ _SCHEDULENEXUSOPERATION_NEXUSHEADERENTRY._serialized_start = 8698
+ _SCHEDULENEXUSOPERATION_NEXUSHEADERENTRY._serialized_end = 8748
+ _REQUESTCANCELNEXUSOPERATION._serialized_start = 8750
+ _REQUESTCANCELNEXUSOPERATION._serialized_end = 8792
# @@protoc_insertion_point(module_scope)
diff --git a/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.pyi b/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.pyi
index 786a048e8..cde407d53 100644
--- a/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.pyi
+++ b/temporalio/bridge/proto/workflow_commands/workflow_commands_pb2.pyi
@@ -963,6 +963,7 @@ class ContinueAsNewWorkflowExecution(google.protobuf.message.Message):
SEARCH_ATTRIBUTES_FIELD_NUMBER: builtins.int
RETRY_POLICY_FIELD_NUMBER: builtins.int
VERSIONING_INTENT_FIELD_NUMBER: builtins.int
+ INITIAL_VERSIONING_BEHAVIOR_FIELD_NUMBER: builtins.int
workflow_type: builtins.str
"""The identifier the lang-specific sdk uses to execute workflow code"""
task_queue: builtins.str
@@ -1016,6 +1017,13 @@ class ContinueAsNewWorkflowExecution(google.protobuf.message.Message):
temporalio.bridge.proto.common.common_pb2.VersioningIntent.ValueType
)
"""Whether the continued workflow should run on a worker with a compatible build id or not."""
+ initial_versioning_behavior: (
+ temporalio.api.enums.v1.workflow_pb2.ContinueAsNewVersioningBehavior.ValueType
+ )
+ """Experimental. Optionally decide the versioning behavior that the first task of the new run should use.
+ For example, choose to AutoUpgrade on continue-as-new instead of inheriting the pinned version
+ of the previous run.
+ """
def __init__(
self,
*,
@@ -1041,6 +1049,7 @@ class ContinueAsNewWorkflowExecution(google.protobuf.message.Message):
| None = ...,
retry_policy: temporalio.api.common.v1.message_pb2.RetryPolicy | None = ...,
versioning_intent: temporalio.bridge.proto.common.common_pb2.VersioningIntent.ValueType = ...,
+ initial_versioning_behavior: temporalio.api.enums.v1.workflow_pb2.ContinueAsNewVersioningBehavior.ValueType = ...,
) -> None: ...
def HasField(
self,
@@ -1060,6 +1069,8 @@ class ContinueAsNewWorkflowExecution(google.protobuf.message.Message):
b"arguments",
"headers",
b"headers",
+ "initial_versioning_behavior",
+ b"initial_versioning_behavior",
"memo",
b"memo",
"retry_policy",
diff --git a/temporalio/bridge/sdk-core b/temporalio/bridge/sdk-core
index 9dedad111..f859b9cbd 160000
--- a/temporalio/bridge/sdk-core
+++ b/temporalio/bridge/sdk-core
@@ -1 +1 @@
-Subproject commit 9dedad1115ab64a0ffb8decf3ad3f338979dea9f
+Subproject commit f859b9cbdae1582c8aa8992241874f6bdedcd207
diff --git a/temporalio/bridge/services_generated.py b/temporalio/bridge/services_generated.py
index d0f08127e..e70c0a7cc 100644
--- a/temporalio/bridge/services_generated.py
+++ b/temporalio/bridge/services_generated.py
@@ -45,6 +45,24 @@ async def count_activity_executions(
timeout=timeout,
)
+ async def count_schedules(
+ self,
+ req: temporalio.api.workflowservice.v1.CountSchedulesRequest,
+ retry: bool = False,
+ metadata: Mapping[str, str | bytes] = {},
+ timeout: timedelta | None = None,
+ ) -> temporalio.api.workflowservice.v1.CountSchedulesResponse:
+ """Invokes the WorkflowService.count_schedules rpc method."""
+ return await self._client._rpc_call(
+ rpc="count_schedules",
+ req=req,
+ service=self._service,
+ resp_type=temporalio.api.workflowservice.v1.CountSchedulesResponse,
+ retry=retry,
+ metadata=metadata,
+ timeout=timeout,
+ )
+
async def count_workflow_executions(
self,
req: temporalio.api.workflowservice.v1.CountWorkflowExecutionsRequest,
diff --git a/temporalio/bridge/src/client_rpc_generated.rs b/temporalio/bridge/src/client_rpc_generated.rs
index e9e55728b..a8b3d71ef 100644
--- a/temporalio/bridge/src/client_rpc_generated.rs
+++ b/temporalio/bridge/src/client_rpc_generated.rs
@@ -28,6 +28,9 @@ impl ClientRef {
count_activity_executions
)
}
+ "count_schedules" => {
+ rpc_call!(retry_client, call, WorkflowService, count_schedules)
+ }
"count_workflow_executions" => {
rpc_call!(
retry_client,
diff --git a/temporalio/converter.py b/temporalio/converter.py
index 5200c457b..962cb90f1 100644
--- a/temporalio/converter.py
+++ b/temporalio/converter.py
@@ -55,6 +55,8 @@
logger = getLogger(__name__)
+_TEMPORAL_FAILURE_PROTO_TYPE = "temporal.api.failure.v1.Failure"
+
class SerializationContext(ABC):
"""Base serialization context.
@@ -1039,7 +1041,6 @@ def _error_to_failure(
failure.child_workflow_execution_failure_info.retry_state = (
temporalio.api.enums.v1.RetryState.ValueType(error.retry_state or 0)
)
- # TODO(nexus-preview): missing test coverage
elif isinstance(error, temporalio.exceptions.NexusOperationError):
failure.nexus_operation_execution_failure_info.SetInParent()
failure.nexus_operation_execution_failure_info.scheduled_event_id = (
@@ -1058,21 +1059,73 @@ def _nexus_handler_error_to_failure(
payload_converter: PayloadConverter,
failure: temporalio.api.failure.v1.Failure,
) -> None:
- failure.message = str(error)
- if error.__traceback__:
- failure.stack_trace = "\n".join(traceback.format_tb(error.__traceback__))
- if error.__cause__:
- self.to_failure(error.__cause__, payload_converter, failure.cause)
- failure.nexus_handler_failure_info.SetInParent()
- failure.nexus_handler_failure_info.type = error.type.name
- failure.nexus_handler_failure_info.retry_behavior = temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.ValueType(
- temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
- if error.retryable_override is True
- else temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
- if error.retryable_override is False
- else temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_UNSPECIFIED
+ if error.original_failure:
+ self._nexus_failure_to_temporal_failure(
+ error.original_failure, True, failure
+ )
+ else:
+ failure.message = error.message
+ if stack_trace := error.stack_trace:
+ failure.stack_trace = stack_trace
+ elif tb := error.__traceback__:
+ failure.stack_trace = "\n".join(traceback.format_tb(tb))
+ if error.__cause__:
+ self.to_failure(error.__cause__, payload_converter, failure.cause)
+ failure.nexus_handler_failure_info.SetInParent()
+ failure.nexus_handler_failure_info.type = error.type.name
+ failure.nexus_handler_failure_info.retry_behavior = temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.ValueType(
+ temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
+ if error.retryable_override is True
+ else temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
+ if error.retryable_override is False
+ else temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_UNSPECIFIED
+ )
+
+ def _temporal_failure_to_nexus_failure(
+ self, failure: temporalio.api.failure.v1.Failure
+ ) -> nexusrpc.Failure:
+ message, failure.message = failure.message, ""
+ stack_trace, failure.stack_trace = failure.stack_trace, ""
+ failure_dict = google.protobuf.json_format.MessageToDict(failure)
+ failure.message = message
+ failure.stack_trace = stack_trace
+ return nexusrpc.Failure(
+ message=message,
+ stack_trace=stack_trace,
+ metadata={
+ "type": _TEMPORAL_FAILURE_PROTO_TYPE,
+ },
+ details=failure_dict,
)
+ def _nexus_failure_to_temporal_failure(
+ self,
+ failure: nexusrpc.Failure,
+ retryable: bool,
+ temporal_failure: temporalio.api.failure.v1.Failure,
+ ) -> None:
+ if (
+ failure.metadata
+ and failure.metadata.get("type") == _TEMPORAL_FAILURE_PROTO_TYPE
+ ):
+ google.protobuf.json_format.ParseDict(failure.details, temporal_failure)
+ else:
+ temporal_failure.application_failure_info.SetInParent()
+ temporal_failure.application_failure_info.type = "NexusFailure"
+ temporal_failure.application_failure_info.non_retryable = not retryable
+ temporal_failure.application_failure_info.details.SetInParent()
+ temporal_failure.application_failure_info.details.payloads.append(
+ temporalio.api.common.v1.Payload(
+ metadata={"encoding": b"json/plain"},
+ data=json.dumps(
+ dataclasses.replace(failure, message=""), separators=(",", ":")
+ ).encode("utf-8"),
+ )
+ )
+
+ temporal_failure.message = failure.message
+ temporal_failure.stack_trace = failure.stack_trace or ""
+
def from_failure(
self,
failure: temporalio.api.failure.v1.Failure,
@@ -1101,111 +1154,128 @@ def from_failure(
pass
err: temporalio.exceptions.FailureError | nexusrpc.HandlerError
- if failure.HasField("application_failure_info"):
- app_info = failure.application_failure_info
- err = temporalio.exceptions.ApplicationError(
- failure.message or "Application error",
- *payload_converter.from_payloads_wrapper(app_info.details),
- type=app_info.type or None,
- non_retryable=app_info.non_retryable,
- next_retry_delay=app_info.next_retry_delay.ToTimedelta(),
- category=temporalio.exceptions.ApplicationErrorCategory(
- int(app_info.category)
- ),
- )
- elif failure.HasField("timeout_failure_info"):
- timeout_info = failure.timeout_failure_info
- err = temporalio.exceptions.TimeoutError(
- failure.message or "Timeout",
- type=temporalio.exceptions.TimeoutType(int(timeout_info.timeout_type))
- if timeout_info.timeout_type
- else None,
- last_heartbeat_details=payload_converter.from_payloads_wrapper(
- timeout_info.last_heartbeat_details
- ),
- )
- elif failure.HasField("canceled_failure_info"):
- cancel_info = failure.canceled_failure_info
- err = temporalio.exceptions.CancelledError(
- failure.message or "Cancelled",
- *payload_converter.from_payloads_wrapper(cancel_info.details),
- )
- elif failure.HasField("terminated_failure_info"):
- err = temporalio.exceptions.TerminatedError(failure.message or "Terminated")
- elif failure.HasField("server_failure_info"):
- server_info = failure.server_failure_info
- err = temporalio.exceptions.ServerError(
- failure.message or "Server error",
- non_retryable=server_info.non_retryable,
- )
- elif failure.HasField("activity_failure_info"):
- act_info = failure.activity_failure_info
- err = temporalio.exceptions.ActivityError(
- failure.message or "Activity error",
- scheduled_event_id=act_info.scheduled_event_id,
- started_event_id=act_info.started_event_id,
- identity=act_info.identity,
- activity_type=act_info.activity_type.name,
- activity_id=act_info.activity_id,
- retry_state=temporalio.exceptions.RetryState(int(act_info.retry_state))
- if act_info.retry_state
- else None,
- )
- elif failure.HasField("child_workflow_execution_failure_info"):
- child_info = failure.child_workflow_execution_failure_info
- err = temporalio.exceptions.ChildWorkflowError(
- failure.message or "Child workflow error",
- namespace=child_info.namespace,
- workflow_id=child_info.workflow_execution.workflow_id,
- run_id=child_info.workflow_execution.run_id,
- workflow_type=child_info.workflow_type.name,
- initiated_event_id=child_info.initiated_event_id,
- started_event_id=child_info.started_event_id,
- retry_state=temporalio.exceptions.RetryState(
- int(child_info.retry_state)
+ match failure.WhichOneof("failure_info"):
+ case "application_failure_info":
+ app_info = failure.application_failure_info
+ err = temporalio.exceptions.ApplicationError(
+ failure.message or "Application error",
+ *payload_converter.from_payloads_wrapper(app_info.details),
+ type=app_info.type or None,
+ non_retryable=app_info.non_retryable,
+ next_retry_delay=app_info.next_retry_delay.ToTimedelta(),
+ category=temporalio.exceptions.ApplicationErrorCategory(
+ int(app_info.category)
+ ),
)
- if child_info.retry_state
- else None,
- )
- elif failure.HasField("nexus_handler_failure_info"):
- nexus_handler_failure_info = failure.nexus_handler_failure_info
- try:
- _type = nexusrpc.HandlerErrorType[nexus_handler_failure_info.type]
- except KeyError:
- logger.warning(
- f"Unknown Nexus HandlerErrorType: {nexus_handler_failure_info.type}"
+
+ case "timeout_failure_info":
+ timeout_info = failure.timeout_failure_info
+ err = temporalio.exceptions.TimeoutError(
+ failure.message or "Timeout",
+ type=temporalio.exceptions.TimeoutType(
+ int(timeout_info.timeout_type)
+ )
+ if timeout_info.timeout_type
+ else None,
+ last_heartbeat_details=payload_converter.from_payloads_wrapper(
+ timeout_info.last_heartbeat_details
+ ),
)
- _type = nexusrpc.HandlerErrorType.INTERNAL
- retryable_override = (
- True
- if (
- nexus_handler_failure_info.retry_behavior
- == temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
+
+ case "canceled_failure_info":
+ cancel_info = failure.canceled_failure_info
+ err = temporalio.exceptions.CancelledError(
+ failure.message or "Cancelled",
+ *payload_converter.from_payloads_wrapper(cancel_info.details),
)
- else False
- if (
- nexus_handler_failure_info.retry_behavior
- == temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
+ case "terminated_failure_info":
+ err = temporalio.exceptions.TerminatedError(
+ failure.message or "Terminated"
)
- else None
- )
- err = nexusrpc.HandlerError(
- failure.message or "Nexus handler error",
- type=_type,
- retryable_override=retryable_override,
- )
- elif failure.HasField("nexus_operation_execution_failure_info"):
- nexus_op_failure_info = failure.nexus_operation_execution_failure_info
- err = temporalio.exceptions.NexusOperationError(
- failure.message or "Nexus operation error",
- scheduled_event_id=nexus_op_failure_info.scheduled_event_id,
- endpoint=nexus_op_failure_info.endpoint,
- service=nexus_op_failure_info.service,
- operation=nexus_op_failure_info.operation,
- operation_token=nexus_op_failure_info.operation_token,
- )
- else:
- err = temporalio.exceptions.FailureError(failure.message or "Failure error")
+
+ case "server_failure_info":
+ server_info = failure.server_failure_info
+ err = temporalio.exceptions.ServerError(
+ failure.message or "Server error",
+ non_retryable=server_info.non_retryable,
+ )
+
+ case "activity_failure_info":
+ act_info = failure.activity_failure_info
+ err = temporalio.exceptions.ActivityError(
+ failure.message or "Activity error",
+ scheduled_event_id=act_info.scheduled_event_id,
+ started_event_id=act_info.started_event_id,
+ identity=act_info.identity,
+ activity_type=act_info.activity_type.name,
+ activity_id=act_info.activity_id,
+ retry_state=temporalio.exceptions.RetryState(
+ int(act_info.retry_state)
+ )
+ if act_info.retry_state
+ else None,
+ )
+
+ case "child_workflow_execution_failure_info":
+ child_info = failure.child_workflow_execution_failure_info
+ err = temporalio.exceptions.ChildWorkflowError(
+ failure.message or "Child workflow error",
+ namespace=child_info.namespace,
+ workflow_id=child_info.workflow_execution.workflow_id,
+ run_id=child_info.workflow_execution.run_id,
+ workflow_type=child_info.workflow_type.name,
+ initiated_event_id=child_info.initiated_event_id,
+ started_event_id=child_info.started_event_id,
+ retry_state=temporalio.exceptions.RetryState(
+ int(child_info.retry_state)
+ )
+ if child_info.retry_state
+ else None,
+ )
+
+ case "nexus_handler_failure_info":
+ nexus_handler_failure_info = failure.nexus_handler_failure_info
+ try:
+ _type = nexusrpc.HandlerErrorType[nexus_handler_failure_info.type]
+ except KeyError:
+ logger.warning(
+ f"Unknown Nexus HandlerErrorType: {nexus_handler_failure_info.type}"
+ )
+ _type = nexusrpc.HandlerErrorType.INTERNAL
+
+ retryable_override: bool | None
+ match nexus_handler_failure_info.retry_behavior:
+ case temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE:
+ retryable_override = True
+ case temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE:
+ retryable_override = False
+ case _:
+ retryable_override = None
+
+ err = nexusrpc.HandlerError(
+ failure.message or "Nexus handler error",
+ type=_type,
+ retryable_override=retryable_override,
+ stack_trace=failure.stack_trace if failure.stack_trace else None,
+ original_failure=self._temporal_failure_to_nexus_failure(failure),
+ )
+
+ case "nexus_operation_execution_failure_info":
+ nexus_op_failure_info = failure.nexus_operation_execution_failure_info
+ err = temporalio.exceptions.NexusOperationError(
+ failure.message or "Nexus operation error",
+ scheduled_event_id=nexus_op_failure_info.scheduled_event_id,
+ endpoint=nexus_op_failure_info.endpoint,
+ service=nexus_op_failure_info.service,
+ operation=nexus_op_failure_info.operation,
+ operation_token=nexus_op_failure_info.operation_token,
+ )
+
+ case "reset_workflow_failure_info" | None:
+ err = temporalio.exceptions.FailureError(
+ failure.message or "Failure error",
+ )
+
if isinstance(err, temporalio.exceptions.FailureError):
err._failure = failure
if failure.HasField("cause"):
diff --git a/temporalio/nexus/_decorators.py b/temporalio/nexus/_decorators.py
index 795bf3383..6dfd3daff 100644
--- a/temporalio/nexus/_decorators.py
+++ b/temporalio/nexus/_decorators.py
@@ -115,15 +115,13 @@ async def _start(
return WorkflowRunOperationHandler(_start)
method_name = get_callable_name(start)
- nexusrpc.set_operation(
- operation_handler_factory,
- nexusrpc.Operation(
- name=name or method_name,
- method_name=method_name,
- input_type=input_type,
- output_type=output_type,
- ),
+ op = nexusrpc.Operation(
+ name=name or method_name,
+ input_type=input_type,
+ output_type=output_type,
)
+ op.method_name = method_name
+ nexusrpc.set_operation(operation_handler_factory, op)
set_operation_factory(start, operation_handler_factory)
return start
diff --git a/temporalio/worker/_nexus.py b/temporalio/worker/_nexus.py
index a1b8a0148..dfb4bed48 100644
--- a/temporalio/worker/_nexus.py
+++ b/temporalio/worker/_nexus.py
@@ -5,7 +5,6 @@
import asyncio
import concurrent.futures
import contextvars
-import json
import threading
from collections.abc import Callable, Mapping, Sequence
from dataclasses import dataclass
@@ -18,14 +17,11 @@
cast,
)
-import google.protobuf.json_format
import nexusrpc.handler
from nexusrpc import LazyValue
from nexusrpc.handler import CancelOperationContext, Handler, StartOperationContext
import temporalio.api.common.v1
-import temporalio.api.enums.v1
-import temporalio.api.failure.v1
import temporalio.api.nexus.v1
import temporalio.bridge.proto.nexus
import temporalio.bridge.worker
@@ -36,6 +32,8 @@
from temporalio.bridge.worker import PollShutdownError
from temporalio.exceptions import (
ApplicationError,
+ CancelledError,
+ FailureError,
WorkflowAlreadyStartedError,
)
from temporalio.nexus import Info, logger
@@ -246,11 +244,12 @@ async def _handle_cancel_operation_task(
)
except BaseException as err:
logger.warning("Failed to execute Nexus cancel operation method")
+ handler_error = _exception_to_handler_error(err)
completion = temporalio.bridge.proto.nexus.NexusTaskCompletion(
task_token=task_token,
- error=await self._handler_error_to_proto(
- _exception_to_handler_error(err)
- ),
+ )
+ await self._data_converter.encode_failure(
+ handler_error, completion.failure
)
else:
completion = temporalio.bridge.proto.nexus.NexusTaskCompletion(
@@ -297,9 +296,10 @@ async def _handle_start_operation_task(
logger.warning("Failed to execute Nexus start operation method")
completion = temporalio.bridge.proto.nexus.NexusTaskCompletion(
task_token=task_token,
- error=await self._handler_error_to_proto(
- _exception_to_handler_error(err)
- ),
+ )
+ handler_error = _exception_to_handler_error(err)
+ await self._data_converter.encode_failure(
+ handler_error, completion.failure
)
if isinstance(err, concurrent.futures.BrokenExecutor):
@@ -398,81 +398,21 @@ async def _start_operation(
)
)
except nexusrpc.OperationError as err:
- return temporalio.api.nexus.v1.StartOperationResponse(
- operation_error=await self._operation_error_to_proto(err),
- )
-
- async def _nexus_error_to_nexus_failure_proto(
- self,
- error: nexusrpc.HandlerError | nexusrpc.OperationError,
- ) -> temporalio.api.nexus.v1.Failure:
- """Serialize ``error`` as a Nexus Failure proto.
-
- The Nexus Failure represents the top-level error. If there is a cause chain
- attached to the exception, then serialize it as the ``details``.
-
- Notice that any stack trace attached to ``error`` itself is not included in the
- result.
-
- See https://github.com/nexus-rpc/api/blob/main/SPEC.md#failure
- """
- if cause := error.__cause__:
+ # Convert OperationError to a Temporal failure
try:
- failure = temporalio.api.failure.v1.Failure()
- await self._data_converter.encode_failure(cause, failure)
- # Following other SDKs, we move the message from the first item
- # in the details chain to the top level nexus.v1.Failure
- # message. In Go and Java this particularly makes sense since
- # their constructors are controlled such that the nexus
- # exception itself does not have its own message. However, in
- # Python, nexusrpc.HandlerError and nexusrpc.OperationError have
- # their own error messages and stack traces, independent of any
- # cause exception they may have, and this must be propagated to
- # the caller. See _exception_to_handler_error for how we address
- # this by injecting an additional error into the cause chain
- # before the current function is called.
- failure_dict = google.protobuf.json_format.MessageToDict(failure)
- return temporalio.api.nexus.v1.Failure(
- message=failure_dict.pop("message", str(error)),
- metadata={"type": _TEMPORAL_FAILURE_PROTO_TYPE},
- details=json.dumps(
- failure_dict,
- separators=(",", ":"),
- ).encode("utf-8"),
- )
- except BaseException:
- logger.exception("Failed to serialize cause chain of nexus exception")
- return temporalio.api.nexus.v1.Failure(
- message=str(error),
- metadata={},
- details=b"",
- )
-
- async def _operation_error_to_proto(
- self,
- err: nexusrpc.OperationError,
- ) -> temporalio.api.nexus.v1.UnsuccessfulOperationError:
- return temporalio.api.nexus.v1.UnsuccessfulOperationError(
- operation_state=err.state.value,
- failure=await self._nexus_error_to_nexus_failure_proto(err),
- )
-
- async def _handler_error_to_proto(
- self, handler_error: nexusrpc.HandlerError
- ) -> temporalio.api.nexus.v1.HandlerError:
- """Serialize ``handler_error`` as a Nexus HandlerError proto."""
- retry_behavior = (
- temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
- if handler_error.retryable_override is True
- else temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
- if handler_error.retryable_override is False
- else temporalio.api.enums.v1.NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_UNSPECIFIED
- )
- return temporalio.api.nexus.v1.HandlerError(
- error_type=handler_error.type.value,
- failure=await self._nexus_error_to_nexus_failure_proto(handler_error),
- retry_behavior=retry_behavior,
- )
+ match err.state:
+ case nexusrpc.OperationErrorState.CANCELED:
+ raise CancelledError(err.message) from err.__cause__
+ case nexusrpc.OperationErrorState.FAILED:
+ raise ApplicationError(
+ message=err.message,
+ type="OperationError",
+ non_retryable=True,
+ ) from err.__cause__
+ except FailureError as new_err:
+ response = temporalio.api.nexus.v1.StartOperationResponse()
+ await self._data_converter.encode_failure(new_err, response.failure)
+ return response
@dataclass
@@ -509,25 +449,10 @@ def _exception_to_handler_error(err: BaseException) -> nexusrpc.HandlerError:
# Based on sdk-typescript's convertKnownErrors:
# https://github.com/temporalio/sdk-typescript/blob/nexus/packages/worker/src/nexus.ts
if isinstance(err, nexusrpc.HandlerError):
- # Insert an ApplicationError at the head of the cause chain to hold the
- # HandlerError's message and traceback. We do this because
- # _nexus_error_to_nexus_failure_proto moves the message at the head of
- # the cause chain to be the top-level nexus.Failure message. Therefore,
- # if we did not do this, then the HandlerError's own message and
- # traceback would be lost. (This hoisting behavior makes sense for Go
- # and Java since they control construction of HandlerError such that it
- # does not have its own message or stack trace.)
- handler_err = err
- err = ApplicationError(
- message=str(handler_err),
- non_retryable=not handler_err.retryable,
- )
- err.__traceback__ = handler_err.__traceback__
- err.__cause__ = handler_err.__cause__
+ return err
elif isinstance(err, ApplicationError):
handler_err = nexusrpc.HandlerError(
- # TODO(nexus-preview): confirm what we want as message here
- err.message,
+ message="Handler failed with non-retryable application error",
type=nexusrpc.HandlerErrorType.INTERNAL,
retryable_override=not err.non_retryable,
)
@@ -599,7 +524,7 @@ def _exception_to_handler_error(err: BaseException) -> nexusrpc.HandlerError:
)
else:
handler_err = nexusrpc.HandlerError(
- str(err), type=nexusrpc.HandlerErrorType.INTERNAL
+ "Internal handler error", type=nexusrpc.HandlerErrorType.INTERNAL
)
handler_err.__cause__ = err
return handler_err
diff --git a/tests/helpers/nexus.py b/tests/helpers/nexus.py
index 904b4422a..200dd4869 100644
--- a/tests/helpers/nexus.py
+++ b/tests/helpers/nexus.py
@@ -1,20 +1,6 @@
-import dataclasses
-from collections.abc import Mapping
-from dataclasses import dataclass
-from typing import Any
-from urllib.parse import urlparse
-
-import temporalio.api.failure.v1
import temporalio.api.nexus.v1
import temporalio.api.operatorservice.v1
-import temporalio.workflow
from temporalio.client import Client
-from temporalio.converter import FailureConverter, PayloadConverter
-from temporalio.testing import WorkflowEnvironment
-
-with temporalio.workflow.unsafe.imports_passed_through():
- import httpx
- from google.protobuf import json_format
def make_nexus_endpoint_name(task_queue: str) -> str:
@@ -41,91 +27,3 @@ async def create_nexus_endpoint(
)
)
)
-
-
-@dataclass
-class ServiceClient:
- server_address: str # E.g. http://127.0.0.1:7243
- endpoint: str
- service: str
-
- async def start_operation(
- self,
- operation: str,
- body: dict[str, Any] | None = None,
- headers: Mapping[str, str] = {},
- ) -> httpx.Response:
- """
- Start a Nexus operation.
- """
- # TODO(nexus-preview): Support callback URL as query param
- async with httpx.AsyncClient() as http_client:
- return await http_client.post(
- f"http://{self.server_address}/nexus/endpoints/{self.endpoint}/services/{self.service}/{operation}",
- json=body,
- headers=headers,
- )
-
- async def cancel_operation(
- self,
- operation: str,
- token: str,
- ) -> httpx.Response:
- async with httpx.AsyncClient() as http_client:
- return await http_client.post(
- f"http://{self.server_address}/nexus/endpoints/{self.endpoint}/services/{self.service}/{operation}/cancel",
- # Token can also be sent as "Nexus-Operation-Token" header
- params={"token": token},
- )
-
- @staticmethod
- def default_server_address(env: WorkflowEnvironment) -> str:
- # TODO(nexus-preview): nexus tests are making http requests directly but this is
- # not officially supported.
- parsed = urlparse(env.client.service_client.config.target_host)
- host = parsed.hostname or "127.0.0.1"
- http_port = getattr(env, "_http_port", 7243)
- return f"{host}:{http_port}"
-
-
-def dataclass_as_dict(dataclass: Any) -> dict[str, Any]:
- """
- Return a shallow dict of the dataclass's fields.
-
- dataclasses.as_dict goes too far (attempts to pickle values)
- """
- return {
- field.name: getattr(dataclass, field.name)
- for field in dataclasses.fields(dataclass)
- }
-
-
-@dataclass
-class Failure:
- """A Nexus Failure object, with details parsed into an exception.
-
- https://github.com/nexus-rpc/api/blob/main/SPEC.md#failure
- """
-
- message: str = ""
- metadata: dict[str, str] | None = None
- details: dict[str, Any] | None = None
-
- exception_from_details: BaseException | None = dataclasses.field(
- init=False, default=None
- )
-
- def __post_init__(self) -> None:
- if self.metadata and (error_type := self.metadata.get("type")):
- self.exception_from_details = self._instantiate_exception(
- error_type, self.details
- )
-
- def _instantiate_exception(
- self, error_type: str, _details: dict[str, Any] | None
- ) -> BaseException:
- proto = {
- "temporal.api.failure.v1.Failure": temporalio.api.failure.v1.Failure,
- }[error_type]()
- json_format.ParseDict(self.details, proto, ignore_unknown_fields=True)
- return FailureConverter.default.from_failure(proto, PayloadConverter.default)
diff --git a/tests/nexus/test_dynamic_creation_of_user_handler_classes.py b/tests/nexus/test_dynamic_creation_of_user_handler_classes.py
index 95ff1c986..bcb7be8da 100644
--- a/tests/nexus/test_dynamic_creation_of_user_handler_classes.py
+++ b/tests/nexus/test_dynamic_creation_of_user_handler_classes.py
@@ -1,16 +1,14 @@
import uuid
-import httpx
+import nexusrpc
import nexusrpc.handler
import pytest
-from nexusrpc.handler import sync_operation
from temporalio import nexus, workflow
from temporalio.client import Client
-from temporalio.nexus._util import get_operation_factory
from temporalio.testing import WorkflowEnvironment
from temporalio.worker import Worker
-from tests.helpers.nexus import ServiceClient, create_nexus_endpoint
+from tests.helpers.nexus import create_nexus_endpoint, make_nexus_endpoint_name
@workflow.defn
@@ -20,11 +18,6 @@ async def run(self, input: int) -> int:
return input + 1
-@nexusrpc.service
-class MyService:
- increment: nexusrpc.Operation[int, int]
-
-
class MyIncrementOperationHandler(nexusrpc.handler.OperationHandler[int, int]):
async def start(
self,
@@ -45,11 +38,15 @@ async def cancel(
raise NotImplementedError
-@nexusrpc.handler.service_handler
-class MyServiceHandlerWithWorkflowRunOperation:
- @nexusrpc.handler._decorators.operation_handler
- def increment(self) -> nexusrpc.handler.OperationHandler[int, int]:
- return MyIncrementOperationHandler()
+@workflow.defn
+class IncrementCallerWorkflow:
+ @workflow.run
+ async def run(self, input: int, task_queue: str) -> int:
+ client = workflow.create_nexus_client(
+ service="MyService",
+ endpoint=make_nexus_endpoint_name(task_queue),
+ )
+ return await client.execute_operation("increment", input, output_type=int)
async def test_run_nexus_service_from_programmatically_created_service_handler(
@@ -78,85 +75,17 @@ async def test_run_nexus_service_from_programmatically_created_service_handler(
},
)
- service_name = service_handler.service.name
-
- endpoint = (await create_nexus_endpoint(task_queue, client)).endpoint.id
+ await create_nexus_endpoint(task_queue, client)
async with Worker(
client,
task_queue=task_queue,
nexus_service_handlers=[service_handler],
+ workflows=[IncrementCallerWorkflow, MyWorkflow],
):
- server_address = ServiceClient.default_server_address(env)
- async with httpx.AsyncClient() as http_client:
- response = await http_client.post(
- f"http://{server_address}/nexus/endpoints/{endpoint}/services/{service_name}/increment",
- json=1,
- )
- assert response.status_code == 201
-
-
-def make_incrementer_user_service_definition_and_service_handler_classes(
- op_names: list[str],
-) -> tuple[type, type]:
- #
- # service contract
- #
-
- ops = {name: nexusrpc.Operation[int, int] for name in op_names}
- service_cls: type = nexusrpc.service(type("ServiceContract", (), ops))
-
- #
- # service handler
- #
- @sync_operation
- async def _increment_op(
- _self, # type:ignore[reportMissingParameterType]
- _ctx: nexusrpc.handler.StartOperationContext,
- input: int,
- ) -> int:
- return input + 1
-
- op_handler_factories = {}
- for name in op_names:
- op_handler_factory, _ = get_operation_factory(_increment_op)
- assert op_handler_factory
- op_handler_factories[name] = op_handler_factory
-
- handler_cls: type = nexusrpc.handler.service_handler(service=service_cls)(
- type("ServiceImpl", (), op_handler_factories)
- )
-
- return service_cls, handler_cls
-
-
-@pytest.mark.skip(
- reason="Dynamic creation of service contract using type() is not supported"
-)
-async def test_dynamic_creation_of_user_handler_classes(
- client: Client, env: WorkflowEnvironment
-):
- task_queue = str(uuid.uuid4())
-
- service_cls, handler_cls = (
- make_incrementer_user_service_definition_and_service_handler_classes(
- ["increment"]
+ result = await client.execute_workflow(
+ IncrementCallerWorkflow.run,
+ args=[5, task_queue],
+ id=str(uuid.uuid4()),
+ task_queue=task_queue,
)
- )
-
- assert (service_defn := nexusrpc.get_service_definition(service_cls))
- service_name = service_defn.name
-
- endpoint = (await create_nexus_endpoint(task_queue, client)).endpoint.id
- async with Worker(
- client,
- task_queue=task_queue,
- nexus_service_handlers=[handler_cls()],
- ):
- server_address = ServiceClient.default_server_address(env)
- async with httpx.AsyncClient() as http_client:
- response = await http_client.post(
- f"http://{server_address}/nexus/endpoints/{endpoint}/services/{service_name}/increment",
- json=1,
- )
- assert response.status_code == 200
- assert response.json() == 2
+ assert result == 6
diff --git a/tests/nexus/test_handler.py b/tests/nexus/test_handler.py
deleted file mode 100644
index 407e61caf..000000000
--- a/tests/nexus/test_handler.py
+++ /dev/null
@@ -1,1107 +0,0 @@
-"""
-See https://github.com/nexus-rpc/api/blob/main/SPEC.md
-
-This file contains test coverage for Nexus StartOperation and CancelOperation
-operations issued by a caller directly via HTTP.
-
-The response to StartOperation may indicate a protocol-level failure (400
-BAD_REQUEST, 520 UPSTREAM_TIMEOUT, etc). In this case the body is a valid
-Failure object.
-
-
-(https://github.com/nexus-rpc/api/blob/main/SPEC.md#predefined-handler-errors)
-
-"""
-
-import asyncio
-import concurrent.futures
-import logging
-import pprint
-import uuid
-from collections.abc import Callable, Mapping
-from concurrent.futures.thread import ThreadPoolExecutor
-from dataclasses import dataclass, field
-from types import MappingProxyType
-from typing import Any
-
-import httpx
-import nexusrpc
-import pytest
-from nexusrpc import (
- HandlerError,
- HandlerErrorType,
- OperationError,
- OperationErrorState,
-)
-from nexusrpc.handler import (
- CancelOperationContext,
- OperationHandler,
- StartOperationContext,
- StartOperationResultSync,
- service_handler,
- sync_operation,
-)
-from nexusrpc.handler._decorators import operation_handler
-
-from temporalio import nexus, workflow
-from temporalio.client import Client
-from temporalio.common import WorkflowIDReusePolicy
-from temporalio.exceptions import ApplicationError
-from temporalio.nexus import (
- WorkflowRunOperationContext,
- workflow_run_operation,
-)
-from temporalio.testing import WorkflowEnvironment
-from temporalio.worker import Worker
-from tests.helpers.nexus import (
- Failure,
- ServiceClient,
- create_nexus_endpoint,
- dataclass_as_dict,
-)
-
-
-@dataclass
-class Input:
- value: str
-
-
-@dataclass
-class Output:
- value: str
-
-
-@dataclass
-class NonSerializableOutput:
- callable: Callable[[], Any] = lambda: None
-
-
-# TODO(nexus-prelease): Test attaching multiple callers to the same operation.
-# TODO(nexus-preview): type check nexus implementation under mypy
-# TODO(nexus-preview): test malformed inbound_links and outbound_links
-
-
-@nexusrpc.service
-class MyService:
- echo: nexusrpc.Operation[Input, Output]
- echo_renamed: nexusrpc.Operation[Input, Output] = nexusrpc.Operation(
- name="echo-renamed"
- )
- hang: nexusrpc.Operation[Input, Output]
- log: nexusrpc.Operation[Input, Output]
- workflow_run_operation_happy_path: nexusrpc.Operation[Input, Output]
- sync_operation_with_non_async_def: nexusrpc.Operation[Input, Output]
- operation_returning_unwrapped_result_at_runtime_error: nexusrpc.Operation[
- Input, Output
- ]
- non_retryable_application_error: nexusrpc.Operation[Input, Output]
- retryable_application_error: nexusrpc.Operation[Input, Output]
- check_operation_timeout_header: nexusrpc.Operation[Input, Output]
- workflow_run_op_link_test: nexusrpc.Operation[Input, Output]
- handler_error_internal: nexusrpc.Operation[Input, Output]
- operation_error_failed: nexusrpc.Operation[Input, Output]
- idempotency_check: nexusrpc.Operation[None, Output]
- non_serializable_output: nexusrpc.Operation[Input, NonSerializableOutput]
-
-
-@workflow.defn
-class MyWorkflow:
- @workflow.run
- async def run(self, input: Input) -> Output:
- return Output(value=f"from workflow: {input.value}")
-
-
-@workflow.defn
-class WorkflowWithoutTypeAnnotations:
- @workflow.run
- async def run(self, input): # type: ignore
- return Output(value=f"from workflow without type annotations: {input}")
-
-
-@workflow.defn
-class MyLinkTestWorkflow:
- @workflow.run
- async def run(self, input: Input) -> Output:
- return Output(value=f"from link test workflow: {input.value}")
-
-
-# The service_handler decorator is applied by the test
-class MyServiceHandler:
- @sync_operation
- async def echo(self, ctx: StartOperationContext, input: Input) -> Output:
- assert ctx.headers["test-header-key"] == "test-header-value"
- ctx.outbound_links.extend(ctx.inbound_links)
- assert nexus.in_operation()
- return Output(
- value=f"from start method on {self.__class__.__name__}: {input.value}"
- )
-
- # The name override is present in the service definition. But the test below submits
- # the same operation name in the request whether using a service definition or now.
- # The name override here is necessary when the test is not using the service
- # definition. It should be permitted when the service definition is in effect, as
- # long as the name override is the same as that in the service definition.
- @sync_operation(name="echo-renamed")
- async def echo_renamed(self, ctx: StartOperationContext, input: Input) -> Output:
- return await self.echo(ctx, input)
-
- @sync_operation
- async def hang(self, _ctx: StartOperationContext, _input: Input) -> Output:
- await asyncio.Future()
- return Output(value="won't reach here")
-
- @sync_operation
- async def non_retryable_application_error(
- self, _ctx: StartOperationContext, _input: Input
- ) -> Output:
- raise ApplicationError(
- "non-retryable application error",
- "details arg",
- # TODO(nexus-preview): what values of `type` should be tested?
- type="TestFailureType",
- non_retryable=True,
- )
-
- @sync_operation
- async def retryable_application_error(
- self, _ctx: StartOperationContext, _input: Input
- ) -> Output:
- raise ApplicationError(
- "retryable application error",
- "details arg",
- type="TestFailureType",
- non_retryable=False,
- )
-
- @sync_operation
- async def handler_error_internal(
- self, _ctx: StartOperationContext, _input: Input
- ) -> Output:
- raise HandlerError(
- message="deliberate internal handler error",
- type=HandlerErrorType.INTERNAL,
- retryable_override=False,
- ) from RuntimeError("cause message")
-
- @sync_operation
- async def operation_error_failed(
- self, _ctx: StartOperationContext, _input: Input
- ) -> Output:
- raise OperationError(
- message="deliberate operation error",
- state=OperationErrorState.FAILED,
- )
-
- @sync_operation
- async def check_operation_timeout_header(
- self, ctx: StartOperationContext, input: Input
- ) -> Output:
- assert "operation-timeout" in ctx.headers
- return Output(
- value=f"from start method on {self.__class__.__name__}: {input.value}"
- )
-
- @sync_operation
- async def log(self, _ctx: StartOperationContext, input: Input) -> Output:
- nexus.logger.info(
- "Logging from start method", extra={"input_value": input.value}
- )
- return Output(value=f"logged: {input.value}")
-
- @workflow_run_operation
- async def workflow_run_operation_happy_path(
- self, ctx: WorkflowRunOperationContext, input: Input
- ) -> nexus.WorkflowHandle[Output]:
- assert nexus.in_operation()
- return await ctx.start_workflow(
- MyWorkflow.run,
- input,
- id=str(uuid.uuid4()),
- id_reuse_policy=WorkflowIDReusePolicy.REJECT_DUPLICATE,
- )
-
- @sync_operation
- async def sync_operation_with_non_async_def(
- self, _ctx: StartOperationContext, input: Input
- ) -> Output:
- return Output(
- value=f"from start method on {self.__class__.__name__}: {input.value}"
- )
-
- @workflow_run_operation
- async def workflow_run_op_link_test(
- self, ctx: WorkflowRunOperationContext, input: Input
- ) -> nexus.WorkflowHandle[Output]:
- assert any(
- link.url == "http://inbound-link/" for link in ctx.inbound_links
- ), "Inbound link not found"
- assert ctx.request_id == "test-request-id-123", "Request ID mismatch"
- ctx.outbound_links.extend(ctx.inbound_links)
-
- return await ctx.start_workflow(
- MyLinkTestWorkflow.run,
- input,
- id=str(uuid.uuid4()),
- )
-
- class OperationHandlerReturningUnwrappedResult(OperationHandler[Input, Output]):
- async def start( # type: ignore[override] # intentional test error
- self,
- ctx: StartOperationContext,
- input: Input,
- # This return type is a type error, but VSCode doesn't flag it unless
- # "python.analysis.typeCheckingMode" is set to "strict"
- ) -> Output:
- # Invalid: start method must wrap result as StartOperationResultSync
- # or StartOperationResultAsync
- return Output(value="unwrapped result error")
-
- async def cancel(self, ctx: CancelOperationContext, token: str) -> None:
- raise NotImplementedError
-
- @operation_handler
- def operation_returning_unwrapped_result_at_runtime_error(
- self,
- ) -> OperationHandler[Input, Output]:
- return MyServiceHandler.OperationHandlerReturningUnwrappedResult()
-
- @sync_operation
- async def idempotency_check(
- self, ctx: StartOperationContext, _input: None
- ) -> Output:
- return Output(value=f"request_id: {ctx.request_id}")
-
- @sync_operation
- async def non_serializable_output(
- self, _ctx: StartOperationContext, _input: Input
- ) -> NonSerializableOutput:
- return NonSerializableOutput()
-
-
-# Immutable dicts that can be used as dataclass field defaults
-
-SUCCESSFUL_RESPONSE_HEADERS = MappingProxyType(
- {
- "content-type": "application/json",
- }
-)
-
-UNSUCCESSFUL_RESPONSE_HEADERS = MappingProxyType(
- {
- "content-type": "application/json",
- "temporal-nexus-failure-source": "worker",
- }
-)
-
-
-@dataclass
-class SuccessfulResponse:
- status_code: int
- body_json: dict[str, Any] | Callable[[dict[str, Any]], bool] | None = None
- headers: Mapping[str, str] = field(
- default_factory=lambda: SUCCESSFUL_RESPONSE_HEADERS
- )
-
-
-@dataclass
-class UnsuccessfulResponse:
- status_code: int
- failure_message: str | Callable[[str], bool]
- # Is the Nexus Failure expected to have the details field populated?
- failure_details: bool = True
- # Expected value of inverse of non_retryable attribute of exception.
- retryable_exception: bool = True
- body_json: Callable[[dict[str, Any]], bool] | None = None
- headers: Mapping[str, str] = field(
- default_factory=lambda: UNSUCCESSFUL_RESPONSE_HEADERS
- )
-
-
-class _TestCase:
- operation: str # type:ignore[reportUninitializedInstanceVariable]
- service_defn: str = "MyService"
- input: Input = Input("")
- headers: dict[str, str] = {}
- expected: SuccessfulResponse # type:ignore[reportUninitializedInstanceVariable]
- expected_without_service_definition: SuccessfulResponse | None = None
- skip = ""
-
- @classmethod
- def check_response(
- cls,
- response: httpx.Response,
- with_service_definition: bool,
- ) -> None:
- assert response.status_code == cls.expected.status_code, (
- f"expected status code {cls.expected.status_code} "
- f"but got {response.status_code} for response content"
- f"{pprint.pformat(response.content.decode())}"
- )
- if not with_service_definition and cls.expected_without_service_definition:
- expected = cls.expected_without_service_definition
- else:
- expected = cls.expected
- if expected.body_json is not None:
- body = response.json()
- assert isinstance(body, dict)
- if isinstance(expected.body_json, dict):
- assert body == expected.body_json
- else:
- assert expected.body_json(body)
- assert response.headers.items() >= cls.expected.headers.items()
-
-
-class _FailureTestCase(_TestCase):
- expected: UnsuccessfulResponse # type: ignore[assignment]
-
- @classmethod
- def check_response(
- cls, response: httpx.Response, with_service_definition: bool
- ) -> None:
- super().check_response(response, with_service_definition)
- failure = Failure(**response.json())
-
- if isinstance(cls.expected.failure_message, str):
- assert failure.message == cls.expected.failure_message
- else:
- assert cls.expected.failure_message(failure.message)
-
-
-class SyncHandlerHappyPath(_TestCase):
- operation = "echo"
- input = Input("hello")
- # TODO(nexus-prerelease): why is application/json randomly scattered around these tests?
- headers = {
- "Content-Type": "application/json",
- "Test-Header-Key": "test-header-value",
- "Nexus-Link": '; type="test"',
- }
- expected = SuccessfulResponse(
- status_code=200,
- body_json={"value": "from start method on MyServiceHandler: hello"},
- )
- # TODO(nexus-prerelease): headers should be lower-cased
- assert (
- headers.get("Nexus-Link") == '; type="test"'
- ), "Nexus-Link header not echoed correctly."
-
-
-class SyncHandlerHappyPathRenamed(SyncHandlerHappyPath):
- operation = "echo-renamed"
-
-
-class SyncHandlerHappyPathNonAsyncDef(_TestCase):
- operation = "sync_operation_with_non_async_def"
- input = Input("hello")
- expected = SuccessfulResponse(
- status_code=200,
- body_json={"value": "from start method on MyServiceHandler: hello"},
- )
-
-
-class AsyncHandlerHappyPath(_TestCase):
- operation = "workflow_run_operation_happy_path"
- input = Input("hello")
- headers = {"Operation-Timeout": "777s"}
- expected = SuccessfulResponse(
- status_code=201,
- )
-
-
-class WorkflowRunOpLinkTestHappyPath(_TestCase):
- # TODO(nexus-prerelease): fix this test
- skip = "Yields invalid link"
- operation = "workflow_run_op_link_test"
- input = Input("link-test-input")
- headers = {
- "Nexus-Link": '; type="test"',
- "Nexus-Request-Id": "test-request-id-123",
- }
- expected = SuccessfulResponse(
- status_code=201,
- )
-
- @classmethod
- def check_response(
- cls, response: httpx.Response, with_service_definition: bool
- ) -> None:
- super().check_response(response, with_service_definition)
- nexus_link = response.headers.get("nexus-link")
- assert nexus_link is not None, "nexus-link header not found in response"
- assert nexus_link.startswith(
- " Output:
- assert ctx.headers["test-header-key"] == "test-header-value"
- ctx.outbound_links.extend(ctx.inbound_links)
- return Output(
- value=f"from start method on {self.__class__.__name__}: {input.value}"
- )
-
-
-@service_handler(service=EchoService)
-class DefaultCancelHandler:
- @sync_operation
- async def echo(self, _ctx: StartOperationContext, input: Input) -> Output:
- return Output(
- value=f"from start method on {self.__class__.__name__}: {input.value}"
- )
-
-
-@service_handler(service=EchoService)
-class SyncCancelHandler:
- class SyncCancel(OperationHandler[Input, Output]):
- async def start(
- self,
- ctx: StartOperationContext,
- input: Input,
- # This return type is a type error, but VSCode doesn't flag it unless
- # "python.analysis.typeCheckingMode" is set to "strict"
- ) -> StartOperationResultSync[Output]:
- # Invalid: start method must wrap result as StartOperationResultSync
- # or StartOperationResultAsync
- return StartOperationResultSync(Output(value="Hello")) # type: ignore
-
- def cancel(self, ctx: CancelOperationContext, token: str) -> None:
- return None # type: ignore
-
- @operation_handler
- def echo(self) -> OperationHandler[Input, Output]:
- return SyncCancelHandler.SyncCancel()
-
-
-class SyncHandlerNoExecutor(_InstantiationCase):
- handler = SyncStartHandler
- executor = False
- exception = RuntimeError
- match = "you have not supplied an executor"
-
-
-class DefaultCancel(_InstantiationCase):
- handler = DefaultCancelHandler
- executor = False
- exception = None
-
-
-class SyncCancel(_InstantiationCase):
- handler = SyncCancelHandler
- executor = False
- exception = RuntimeError
- match = "you have not supplied an executor"
-
-
-@pytest.mark.parametrize(
- "test_case",
- [SyncHandlerNoExecutor, DefaultCancel, SyncCancel],
-)
-async def test_handler_instantiation(
- test_case: type[_InstantiationCase], client: Client
-):
- task_queue = str(uuid.uuid4())
-
- if test_case.exception is not None:
- with pytest.raises(test_case.exception, match=test_case.match):
- Worker(
- client,
- task_queue=task_queue,
- nexus_service_handlers=[test_case.handler()],
- nexus_task_executor=ThreadPoolExecutor()
- if test_case.executor
- else None,
- )
- else:
- Worker(
- client,
- task_queue=task_queue,
- nexus_service_handlers=[test_case.handler()],
- nexus_task_executor=ThreadPoolExecutor() if test_case.executor else None,
- )
-
-
-async def test_cancel_operation_with_invalid_token(env: WorkflowEnvironment):
- if env.supports_time_skipping:
- pytest.skip("Nexus tests don't work with time-skipping server")
-
- """Verify that canceling an operation with an invalid token fails correctly."""
- task_queue = str(uuid.uuid4())
- endpoint = (await create_nexus_endpoint(task_queue, env.client)).endpoint.id
- service_client = ServiceClient(
- server_address=ServiceClient.default_server_address(env),
- endpoint=endpoint,
- service=MyService.__name__,
- )
-
- decorator = service_handler(service=MyService)
- user_service_handler = decorator(MyServiceHandler)()
-
- async with Worker(
- env.client,
- task_queue=task_queue,
- nexus_service_handlers=[user_service_handler],
- nexus_task_executor=concurrent.futures.ThreadPoolExecutor(),
- ):
- cancel_response = await service_client.cancel_operation(
- "workflow_run_operation_happy_path",
- token="this-is-not-a-valid-token",
- )
- assert cancel_response.status_code == 404
- failure = Failure(**cancel_response.json())
- assert "failed to decode operation token" in failure.message.lower()
-
-
-async def test_request_id_is_received_by_sync_operation(
- env: WorkflowEnvironment,
-):
- if env.supports_time_skipping:
- pytest.skip("Nexus tests don't work with time-skipping server")
-
- task_queue = str(uuid.uuid4())
- endpoint = (await create_nexus_endpoint(task_queue, env.client)).endpoint.id
- service_client = ServiceClient(
- server_address=ServiceClient.default_server_address(env),
- endpoint=endpoint,
- service=MyService.__name__,
- )
-
- decorator = service_handler(service=MyService)
- user_service_handler = decorator(MyServiceHandler)()
-
- async with Worker(
- env.client,
- task_queue=task_queue,
- nexus_service_handlers=[user_service_handler],
- nexus_task_executor=concurrent.futures.ThreadPoolExecutor(),
- ):
- request_id = str(uuid.uuid4())
- resp = await service_client.start_operation(
- "idempotency_check", None, {"Nexus-Request-Id": request_id}
- )
- assert resp.status_code == 200
- assert resp.json() == {"value": f"request_id: {request_id}"}
-
-
-@workflow.defn
-class EchoWorkflow:
- @workflow.run
- async def run(self, input: Input) -> Output:
- return Output(value=input.value)
-
-
-@service_handler
-class ServiceHandlerForRequestIdTest:
- @workflow_run_operation
- async def operation_backed_by_a_workflow(
- self, ctx: WorkflowRunOperationContext, input: Input
- ) -> nexus.WorkflowHandle[Output]:
- return await ctx.start_workflow(
- EchoWorkflow.run,
- input,
- id=input.value,
- id_reuse_policy=WorkflowIDReusePolicy.REJECT_DUPLICATE,
- )
-
- @workflow_run_operation
- async def operation_that_executes_a_workflow_before_starting_the_backing_workflow(
- self, ctx: WorkflowRunOperationContext, input: Input
- ) -> nexus.WorkflowHandle[Output]:
- await nexus.client().start_workflow(
- EchoWorkflow.run,
- input,
- id=input.value,
- task_queue=nexus.info().task_queue,
- )
- # This should fail. It will not fail if the Nexus request ID was incorrectly
- # propagated to both StartWorkflow requests.
- return await ctx.start_workflow(
- EchoWorkflow.run,
- input,
- id=input.value,
- id_reuse_policy=WorkflowIDReusePolicy.REJECT_DUPLICATE,
- )
-
-
-async def test_request_id_becomes_start_workflow_request_id(env: WorkflowEnvironment):
- if env.supports_time_skipping:
- pytest.skip("Nexus tests don't work with time-skipping server")
-
- # We send two Nexus requests that would start a workflow with the same workflow ID,
- # using reuse_policy=REJECT_DUPLICATE. This would fail if they used different
- # request IDs. However, when we use the same request ID, it does not fail,
- # demonstrating that the Nexus Start Operation request ID has become the
- # StartWorkflow request ID.
- task_queue = str(uuid.uuid4())
- endpoint = (await create_nexus_endpoint(task_queue, env.client)).endpoint.id
- service_client = ServiceClient(
- server_address=ServiceClient.default_server_address(env),
- endpoint=endpoint,
- service=ServiceHandlerForRequestIdTest.__name__,
- )
-
- async def start_two_workflows_with_conflicting_workflow_ids(
- request_ids: tuple[tuple[str, int, str], tuple[str, int, str]],
- ):
- workflow_id = str(uuid.uuid4())
- for request_id, status_code, error_message in request_ids:
- resp = await service_client.start_operation(
- "operation_backed_by_a_workflow",
- dataclass_as_dict(Input(workflow_id)),
- {"Nexus-Request-Id": request_id},
- )
- assert resp.status_code == status_code, (
- f"expected status code {status_code} "
- f"but got {resp.status_code} for response content "
- f"{pprint.pformat(resp.content.decode())}"
- )
- if not error_message:
- assert status_code == 201
- op_info = resp.json()
- assert op_info["token"]
- assert op_info["state"] == "running"
- else:
- assert status_code >= 400
- failure = Failure(**resp.json())
- assert failure.message == error_message
-
- async def start_two_workflows_in_a_single_operation(
- request_id: str, status_code: int, error_message: str
- ):
- resp = await service_client.start_operation(
- "operation_that_executes_a_workflow_before_starting_the_backing_workflow",
- dataclass_as_dict(Input("test-workflow-id")),
- {"Nexus-Request-Id": request_id},
- )
- assert resp.status_code == status_code
- if error_message:
- failure = Failure(**resp.json())
- assert failure.message == error_message
-
- async with Worker(
- env.client,
- task_queue=task_queue,
- nexus_service_handlers=[ServiceHandlerForRequestIdTest()],
- nexus_task_executor=concurrent.futures.ThreadPoolExecutor(),
- ):
- request_id_1, request_id_2 = str(uuid.uuid4()), str(uuid.uuid4())
- # Reusing the same request ID does not fail
- await start_two_workflows_with_conflicting_workflow_ids(
- ((request_id_1, 201, ""), (request_id_1, 201, ""))
- )
- # Using a different request ID does fail
- # TODO(nexus-prerelease) I think that this should be a 409 per the spec. Go and
- # Java are not doing that.
- await start_two_workflows_with_conflicting_workflow_ids(
- (
- (request_id_1, 201, ""),
- (request_id_2, 500, "Workflow execution already started"),
- )
- )
- # Two workflows started in the same operation should fail, since the Nexus
- # request ID should be propagated to the backing workflow only.
- await start_two_workflows_in_a_single_operation(
- request_id_1, 500, "Workflow execution already started"
- )
diff --git a/tests/nexus/test_handler_async_operation.py b/tests/nexus/test_handler_async_operation.py
deleted file mode 100644
index d25c8a072..000000000
--- a/tests/nexus/test_handler_async_operation.py
+++ /dev/null
@@ -1,217 +0,0 @@
-"""
-Test that the Nexus SDK can be used to define an operation that responds asynchronously.
-"""
-
-from __future__ import annotations
-
-import asyncio
-import concurrent.futures
-import dataclasses
-import uuid
-from collections.abc import Coroutine
-from dataclasses import dataclass, field
-from typing import Any
-
-import pytest
-from nexusrpc.handler import (
- CancelOperationContext,
- OperationHandler,
- StartOperationContext,
- StartOperationResultAsync,
- service_handler,
-)
-from nexusrpc.handler._decorators import operation_handler
-
-from temporalio.testing import WorkflowEnvironment
-from temporalio.worker import Worker
-from tests.helpers.nexus import ServiceClient, create_nexus_endpoint
-
-
-@dataclass
-class Input:
- value: str
-
-
-@dataclass
-class Output:
- value: str
-
-
-@dataclass
-class AsyncOperationWithAsyncDefs(OperationHandler[Input, Output]):
- executor: TaskExecutor
-
- async def start(
- self, ctx: StartOperationContext, input: Input
- ) -> StartOperationResultAsync:
- async def task() -> Output:
- await asyncio.sleep(0.1)
- return Output("Hello from async operation!")
-
- task_id = str(uuid.uuid4())
- await self.executor.add_task(task_id, task())
- return StartOperationResultAsync(token=task_id)
-
- async def cancel(self, ctx: CancelOperationContext, token: str) -> None:
- self.executor.request_cancel_task(task_id=token)
-
-
-@dataclass
-class AsyncOperationWithNonAsyncDefs(OperationHandler[Input, Output]):
- executor: TaskExecutor
-
- def start(
- self, ctx: StartOperationContext, input: Input
- ) -> StartOperationResultAsync:
- async def task() -> Output:
- await asyncio.sleep(0.1)
- return Output("Hello from async operation!")
-
- task_id = str(uuid.uuid4())
- self.executor.add_task_sync(task_id, task())
- return StartOperationResultAsync(token=task_id)
-
- def cancel(self, ctx: CancelOperationContext, token: str) -> None:
- self.executor.request_cancel_task(task_id=token)
-
-
-@dataclass
-@service_handler
-class MyServiceHandlerWithAsyncDefs:
- executor: TaskExecutor
-
- @operation_handler
- def async_operation(self) -> OperationHandler[Input, Output]:
- return AsyncOperationWithAsyncDefs(self.executor)
-
-
-@dataclass
-@service_handler
-class MyServiceHandlerWithNonAsyncDefs:
- executor: TaskExecutor
-
- @operation_handler
- def async_operation(self) -> OperationHandler[Input, Output]:
- return AsyncOperationWithNonAsyncDefs(self.executor)
-
-
-@pytest.mark.parametrize(
- "service_handler_cls",
- [
- MyServiceHandlerWithAsyncDefs,
- MyServiceHandlerWithNonAsyncDefs,
- ],
-)
-async def test_async_operation_lifecycle(
- env: WorkflowEnvironment,
- service_handler_cls: (
- type[MyServiceHandlerWithAsyncDefs] | type[MyServiceHandlerWithNonAsyncDefs]
- ),
-):
- if env.supports_time_skipping:
- pytest.skip("Nexus tests don't work with time-skipping server")
-
- task_executor = await TaskExecutor.connect()
- task_queue = str(uuid.uuid4())
- endpoint = (await create_nexus_endpoint(task_queue, env.client)).endpoint.id
- service_client = ServiceClient(
- ServiceClient.default_server_address(env),
- endpoint,
- service_handler_cls.__name__,
- )
-
- async with Worker(
- env.client,
- task_queue=task_queue,
- nexus_service_handlers=[service_handler_cls(task_executor)],
- nexus_task_executor=concurrent.futures.ThreadPoolExecutor(),
- ):
- start_response = await service_client.start_operation(
- "async_operation",
- body=dataclass_as_dict(Input(value="Hello from test")),
- )
- assert start_response.status_code == 201
- assert start_response.json()["token"]
- assert start_response.json()["state"] == "running"
-
- # Cancel it
- cancel_response = await service_client.cancel_operation(
- "async_operation",
- token=start_response.json()["token"],
- )
- assert cancel_response.status_code == 202
-
- # get_info and get_result not implemented by server
-
-
-@dataclass
-class TaskExecutor:
- """
- This class represents the task execution platform being used by the team operating the
- Nexus operation.
- """
-
- event_loop: asyncio.AbstractEventLoop
- tasks: dict[str, asyncio.Task[Any]] = field(default_factory=dict)
-
- @classmethod
- async def connect(cls) -> TaskExecutor:
- return cls(event_loop=asyncio.get_running_loop())
-
- async def add_task(self, task_id: str, coro: Coroutine[Any, Any, Any]) -> None:
- """
- Add a task to the task execution platform.
- """
- if task_id in self.tasks:
- raise RuntimeError(f"Task with id {task_id} already exists")
-
- # This function is async def because in reality this step will often write to
- # durable storage.
- self.tasks[task_id] = asyncio.create_task(coro)
-
- def add_task_sync(self, task_id: str, coro: Coroutine[Any, Any, Any]) -> None:
- """
- Add a task to the task execution platform from a sync context.
- """
- asyncio.run_coroutine_threadsafe(
- self.add_task(task_id, coro), self.event_loop
- ).result()
-
- async def get_task_result(self, task_id: str) -> Any:
- """
- Get the result of a task from the task execution platform.
- """
- task = self.tasks.get(task_id)
- if not task:
- raise RuntimeError(f"Task not found with id {task_id}")
- return await task
-
- def get_task_result_sync(self, task_id: str) -> Any:
- """
- Get the result of a task from the task execution platform from a sync context.
- """
- return asyncio.run_coroutine_threadsafe(
- self.get_task_result(task_id), self.event_loop
- ).result()
-
- def request_cancel_task(self, task_id: str) -> None:
- """
- Request cancellation of a task on the task execution platform.
- """
- task = self.tasks.get(task_id)
- if not task:
- raise RuntimeError(f"Task not found with id {task_id}")
- task.cancel()
- # Not implemented: cancellation confirmation, deletion on cancellation
-
-
-def dataclass_as_dict(dataclass: Any) -> dict[str, Any]:
- """
- Return a shallow dict of the dataclass's fields.
-
- dataclasses.as_dict goes too far (attempts to pickle values)
- """
- return {
- field.name: getattr(dataclass, field.name)
- for field in dataclasses.fields(dataclass)
- }
diff --git a/tests/nexus/test_handler_operation_definitions.py b/tests/nexus/test_handler_operation_definitions.py
index e975a8fc8..8a0d6262a 100644
--- a/tests/nexus/test_handler_operation_definitions.py
+++ b/tests/nexus/test_handler_operation_definitions.py
@@ -42,7 +42,6 @@ async def my_workflow_run_operation_handler(
expected_operations = {
"my_workflow_run_operation_handler": nexusrpc.Operation(
name="my_workflow_run_operation_handler",
- method_name="my_workflow_run_operation_handler",
input_type=Input,
output_type=Output,
),
@@ -73,7 +72,6 @@ async def workflow_run_operation_with_name_override(
expected_operations = {
"workflow_run_operation_with_name_override": nexusrpc.Operation(
name="operation-name",
- method_name="workflow_run_operation_with_name_override",
input_type=Input,
output_type=Output,
),
diff --git a/tests/nexus/test_workflow_caller_error_chains.py b/tests/nexus/test_workflow_caller_error_chains.py
index 07a575d60..dddecbca6 100644
--- a/tests/nexus/test_workflow_caller_error_chains.py
+++ b/tests/nexus/test_workflow_caller_error_chains.py
@@ -1,9 +1,8 @@
from __future__ import annotations
import uuid
-from collections.abc import Callable
-from dataclasses import dataclass
-from typing import Any
+from collections.abc import Iterator
+from dataclasses import dataclass, field
import nexusrpc
import nexusrpc.handler
@@ -19,26 +18,192 @@
)
from temporalio.exceptions import (
ApplicationError,
+ CancelledError,
NexusOperationError,
)
from temporalio.testing import WorkflowEnvironment
from temporalio.worker import Worker
from tests.helpers.nexus import create_nexus_endpoint, make_nexus_endpoint_name
-error_conversion_test_cases: dict[str, type[ErrorConversionTestCase]] = {}
+
+@dataclass
+class ExpectedError:
+ message: str
+ optional: bool = field(kw_only=True, default=False)
+
+
+@dataclass
+class ExpectedNexusOperationError(ExpectedError):
+ service: str
+
+
+@dataclass
+class ExpectedHandlerError(ExpectedError):
+ type: str # HandlerErrorType name (e.g., "INTERNAL", "NOT_FOUND")
+ retryable: bool
+
+
+@dataclass
+class ExpectedApplicationError(ExpectedError):
+ non_retryable: bool
+ type: str | None = None
+
+
+@dataclass
+class ExpectedCancelledError(ExpectedError):
+ pass
+
+
+class ExpectedErrorChain:
+ def __init__(self, *errs: ExpectedError) -> None:
+ self._errs = errs
+
+ def required_len(self) -> int:
+ return sum(not e.optional for e in self._errs)
+
+ def __len__(self) -> int:
+ return len(self._errs)
+
+ def __iter__(self) -> Iterator[ExpectedError]:
+ return iter(self._errs)
+
+ def __getitem__(self, i: int) -> ExpectedError:
+ return self._errs[i]
+
+
+ExpectedExceptionInfo = (
+ ExpectedNexusOperationError
+ | ExpectedHandlerError
+ | ExpectedApplicationError
+ | ExpectedCancelledError
+)
@dataclass
-class ErrorConversionTestCase:
- action_in_nexus_operation: Callable[..., Any]
- expected_exception_chain_in_workflow: list[tuple[type[Exception], dict[str, Any]]]
+class ErrorTestCase:
+ name: str
+ operation_name: str
+ expected_exception_chain: ExpectedErrorChain
+
+
+class CustomError(Exception):
+ pass
+
+
+@dataclass
+class ErrorTestInput:
+ task_queue: str
+ operation_name: str
+
+
+# Handler service with one operation per test case
+
+
+@nexusrpc.handler.service_handler
+class ErrorTestService:
+ @sync_operation
+ async def raise_application_error_non_retryable(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ raise ApplicationError(
+ "application-error-message",
+ type="application-error-type",
+ non_retryable=True,
+ )
+
+ @sync_operation
+ async def raise_application_error_non_retryable_from_custom_error(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ try:
+ raise CustomError("custom-error-message")
+ except CustomError as err:
+ raise ApplicationError(
+ "application-error-message",
+ type="application-error-type",
+ non_retryable=True,
+ ) from err
+
+ @sync_operation
+ async def raise_nexus_handler_error_not_found(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ try:
+ raise RuntimeError("runtime-error-message")
+ except RuntimeError as err:
+ raise nexusrpc.HandlerError(
+ "handler-error-message",
+ type=nexusrpc.HandlerErrorType.NOT_FOUND,
+ ) from err
- def __init_subclass__(cls, **kwargs): # type:ignore[reportMissingParameterType]
- super().__init_subclass__(**kwargs)
- assert cls.__name__ not in error_conversion_test_cases
- error_conversion_test_cases[cls.__name__] = cls
+ @sync_operation
+ async def raise_nexus_handler_error_not_found_from_custom_error(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ try:
+ raise CustomError("custom-error-message")
+ except CustomError as err:
+ raise nexusrpc.HandlerError(
+ "handler-error-message",
+ type=nexusrpc.HandlerErrorType.NOT_FOUND,
+ ) from err
+ @sync_operation
+ async def raise_nexus_handler_error_not_found_from_handler_error_unavailable(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ try:
+ raise nexusrpc.HandlerError(
+ "handler-error-message-2",
+ type=nexusrpc.HandlerErrorType.UNAVAILABLE,
+ )
+ except nexusrpc.HandlerError as err:
+ raise nexusrpc.HandlerError(
+ "handler-error-message",
+ type=nexusrpc.HandlerErrorType.NOT_FOUND,
+ ) from err
+ @sync_operation
+ async def raise_nexus_operation_error_from_application_error_non_retryable_from_custom_error(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ try:
+ try:
+ raise CustomError("custom-error-message")
+ except CustomError as err:
+ raise ApplicationError(
+ "application-error-message",
+ type="application-error-type",
+ non_retryable=True,
+ ) from err
+ except ApplicationError as err:
+ raise nexusrpc.OperationError(
+ "operation-error-message",
+ state=nexusrpc.OperationErrorState.FAILED,
+ ) from err
+
+ @sync_operation
+ async def raise_nexus_operation_canceled_error_from_application_error_non_retryable_from_custom_error(
+ self, _ctx: StartOperationContext, _input: ErrorTestInput
+ ) -> None:
+ try:
+ try:
+ raise CustomError("custom-error-message")
+ except CustomError as err:
+ raise ApplicationError(
+ "application-error-message",
+ type="application-error-type",
+ non_retryable=True,
+ ) from err
+ except ApplicationError as err:
+ raise nexusrpc.OperationError(
+ "operation-error-message",
+ state=nexusrpc.OperationErrorState.CANCELED,
+ ) from err
+
+
+# Test cases
+#
# If a nexus handler raises a non-retryable ApplicationError, the calling workflow
# should see a non-retryable exception.
#
@@ -70,185 +235,149 @@ def __init_subclass__(cls, **kwargs): # type:ignore[reportMissingParameterType]
# ]
# }
# )
-
-
-class RaiseApplicationErrorNonRetryable(ErrorConversionTestCase):
- @staticmethod
- def action_in_nexus_operation():
- raise ApplicationError(
- "application-error-message",
+RaiseApplicationErrorNonRetryable = ErrorTestCase(
+ name="RaiseApplicationErrorNonRetryable",
+ operation_name=ErrorTestService.raise_application_error_non_retryable.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
+ ),
+ ExpectedHandlerError(
+ message="Handler failed with non-retryable application error",
+ type="INTERNAL",
+ retryable=False,
+ ),
+ ExpectedHandlerError(
+ message="Handler failed with non-retryable application error",
+ type="INTERNAL",
+ retryable=False,
+ optional=True,
+ ),
+ ExpectedApplicationError(
+ message="application-error-message",
type="application-error-type",
non_retryable=True,
- )
+ ),
+ ),
+)
+
- expected_exception_chain_in_workflow = [
- (
- NexusOperationError,
- {
- "service": "ErrorTestService",
- "message": "nexus operation completed unsuccessfully",
- },
+RaiseApplicationErrorNonRetryableFromCustomError = ErrorTestCase(
+ name="RaiseApplicationErrorNonRetryableFromCustomError",
+ operation_name=ErrorTestService.raise_application_error_non_retryable_from_custom_error.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
),
- (
- nexusrpc.HandlerError,
- {
- # In this test case the user code raised ApplicationError directly, and
- # a wrapping HandlerError was synthesized with the same error message as
- # that of the ApplicationError. The server prepends 'handler error
- # (INTERNAL):'
- "message": "handler error (INTERNAL): application-error-message",
- "type": nexusrpc.HandlerErrorType.INTERNAL,
- "retryable": False,
- },
+ ExpectedHandlerError(
+ message="Handler failed with non-retryable application error",
+ type="INTERNAL",
+ retryable=False,
),
- (
- ApplicationError,
- {
- "message": "application-error-message",
- "type": "application-error-type",
- "non_retryable": True,
- },
+ ExpectedHandlerError(
+ message="Handler failed with non-retryable application error",
+ type="INTERNAL",
+ retryable=False,
+ optional=True,
),
- ]
-
-
-class RaiseApplicationErrorNonRetryableFromCustomError(ErrorConversionTestCase):
- @staticmethod
- def action_in_nexus_operation():
- try:
- raise CustomError("custom-error-message")
- except CustomError as err:
- raise ApplicationError(
- "application-error-message",
- type="application-error-type",
- non_retryable=True,
- ) from err
-
- expected_exception_chain_in_workflow = (
- RaiseApplicationErrorNonRetryable.expected_exception_chain_in_workflow
- + [
- (
- ApplicationError,
- {
- "message": "custom-error-message",
- "type": "CustomError",
- "non_retryable": False,
- },
- ),
- ]
- )
+ ExpectedApplicationError(
+ message="application-error-message",
+ type="application-error-type",
+ non_retryable=True,
+ ),
+ ExpectedApplicationError(
+ message="custom-error-message",
+ type="CustomError",
+ non_retryable=False,
+ ),
+ ),
+)
-class RaiseNexusHandlerErrorNotFound(ErrorConversionTestCase):
- @staticmethod
- def action_in_nexus_operation():
- try:
- raise RuntimeError("runtime-error-message")
- except RuntimeError as err:
- raise nexusrpc.HandlerError(
- "handler-error-message",
- type=nexusrpc.HandlerErrorType.NOT_FOUND,
- ) from err
-
- expected_exception_chain_in_workflow = [
- (
- NexusOperationError,
- {
- "service": "ErrorTestService",
- "message": "nexus operation completed unsuccessfully",
- },
+RaiseNexusHandlerErrorNotFound = ErrorTestCase(
+ name="RaiseNexusHandlerErrorNotFound",
+ operation_name=ErrorTestService.raise_nexus_handler_error_not_found.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
),
- (
- nexusrpc.HandlerError,
- {
- # In this test case the user code raised HandlerError directly, so there
- # was no need to synthesize a wrapping HandlerError The server prepends
- # 'handler error (INTERNAL):'
- "message": "handler error (NOT_FOUND): handler-error-message",
- "type": nexusrpc.HandlerErrorType.NOT_FOUND,
- # The following HandlerError types should be considered non-retryable:
- # BAD_REQUEST, UNAUTHENTICATED, UNAUTHORIZED, NOT_FOUND, and
- # RESOURCE_EXHAUSTED. In this test case, the handler does not set the
- # retryable flag in the HandlerError sent to the server. This value is
- # computed by the retryable property on HandlerError.
- "retryable": False,
- },
+ ExpectedHandlerError(
+ message="handler-error-message",
+ type="NOT_FOUND",
+ retryable=False,
),
- (
- ApplicationError,
- {
- "message": "handler-error-message",
- "non_retryable": True,
- },
+ ExpectedHandlerError(
+ message="handler-error-message",
+ type="NOT_FOUND",
+ retryable=False,
+ optional=True,
),
- (
- ApplicationError,
- {
- "message": "runtime-error-message",
- "type": "RuntimeError",
- "non_retryable": False,
- },
+ ExpectedApplicationError(
+ message="runtime-error-message",
+ type="RuntimeError",
+ non_retryable=False,
),
- ]
-
-
-class RaiseNexusHandlerErrorNotFoundFromCustomError(ErrorConversionTestCase):
- @staticmethod
- def action_in_nexus_operation():
- try:
- raise CustomError("custom-error-message")
- except CustomError as err:
- raise nexusrpc.HandlerError(
- "handler-error-message",
- type=nexusrpc.HandlerErrorType.NOT_FOUND,
- ) from err
+ ),
+)
- expected_exception_chain_in_workflow = (
- RaiseNexusHandlerErrorNotFound.expected_exception_chain_in_workflow[:-1]
- + [
- (
- ApplicationError,
- {
- # TODO(nexus-preview): empirically, this is "handler-error-message",
- # but it should be "runtime-error-message"
- # "message": "runtime-error-message",
- "type": "CustomError",
- "non_retryable": False,
- },
- )
- ]
- )
+RaiseNexusHandlerErrorNotFoundFromCustomError = ErrorTestCase(
+ name="RaiseNexusHandlerErrorNotFoundFromCustomError",
+ operation_name=ErrorTestService.raise_nexus_handler_error_not_found_from_custom_error.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
+ ),
+ ExpectedHandlerError(
+ message="handler-error-message",
+ type="NOT_FOUND",
+ retryable=False,
+ ),
+ ExpectedHandlerError(
+ message="handler-error-message",
+ type="NOT_FOUND",
+ retryable=False,
+ optional=True,
+ ),
+ ExpectedApplicationError(
+ message="custom-error-message",
+ type="CustomError",
+ non_retryable=False,
+ ),
+ ),
+)
-class RaiseNexusHandlerErrorNotFoundFromHandlerErrorUnavailable(
- ErrorConversionTestCase
-):
- @staticmethod
- def action_in_nexus_operation():
- try:
- raise nexusrpc.HandlerError(
- "handler-error-message-2",
- type=nexusrpc.HandlerErrorType.UNAVAILABLE,
- )
- except nexusrpc.HandlerError as err:
- raise nexusrpc.HandlerError(
- "handler-error-message",
- type=nexusrpc.HandlerErrorType.NOT_FOUND,
- ) from err
- expected_exception_chain_in_workflow = (
- RaiseNexusHandlerErrorNotFound.expected_exception_chain_in_workflow[:-1]
- + [
- (
- nexusrpc.HandlerError,
- {
- "message": "handler-error-message-2",
- "type": nexusrpc.HandlerErrorType.UNAVAILABLE,
- "retryable": True,
- },
- )
- ]
- )
+RaiseNexusHandlerErrorNotFoundFromHandlerErrorUnavailable = ErrorTestCase(
+ name="RaiseNexusHandlerErrorNotFoundFromHandlerErrorUnavailable",
+ operation_name=ErrorTestService.raise_nexus_handler_error_not_found_from_handler_error_unavailable.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
+ ),
+ ExpectedHandlerError(
+ message="handler-error-message",
+ type="NOT_FOUND",
+ retryable=False,
+ ),
+ ExpectedHandlerError(
+ message="handler-error-message",
+ type="NOT_FOUND",
+ retryable=False,
+ optional=True,
+ ),
+ ExpectedHandlerError(
+ message="handler-error-message-2",
+ type="UNAVAILABLE",
+ retryable=True,
+ ),
+ ),
+)
# If a nexus handler raises an OperationError, the calling workflow
@@ -292,72 +421,168 @@ def action_in_nexus_operation():
# ]
# }
# )
-#
-class RaiseNexusOperationErrorFromApplicationErrorNonRetryableFromCustomError(
- ErrorConversionTestCase
-):
- @staticmethod
- def action_in_nexus_operation():
- try:
- try:
- raise CustomError("custom-error-message")
- except CustomError as err:
- raise ApplicationError(
- "application-error-message",
- type="application-error-type",
- non_retryable=True,
- ) from err
- except ApplicationError as err:
- raise nexusrpc.OperationError(
- "operation-error-message",
- state=nexusrpc.OperationErrorState.FAILED,
- ) from err
-
- expected_exception_chain_in_workflow = [
- (
- NexusOperationError,
- {
- "message": "nexus operation completed unsuccessfully",
- "service": "ErrorTestService",
- },
+RaiseNexusOperationErrorFromApplicationErrorNonRetryableFromCustomError = ErrorTestCase(
+ name="RaiseNexusOperationErrorFromApplicationErrorNonRetryableFromCustomError",
+ operation_name=ErrorTestService.raise_nexus_operation_error_from_application_error_non_retryable_from_custom_error.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
),
- (
- ApplicationError,
- {
- "message": "application-error-message",
- "type": "application-error-type",
- "non_retryable": True,
- },
+ ExpectedApplicationError(
+ message="operation-error-message", type="OperationError", non_retryable=True
),
- (
- ApplicationError,
- {
- "message": "custom-error-message",
- "type": "CustomError",
- "non_retryable": False,
- },
+ ExpectedApplicationError(
+ message="application-error-message",
+ type="application-error-type",
+ non_retryable=True,
),
- ]
-
-
-class CustomError(Exception):
- pass
-
+ ExpectedApplicationError(
+ message="custom-error-message",
+ type="CustomError",
+ non_retryable=False,
+ ),
+ ),
+)
-@dataclass
-class ErrorTestInput:
- task_queue: str
- name: str
+RaiseNexusOperationCanceledErrorFromApplicationErrorNonRetryableFromCustomError = ErrorTestCase(
+ name="RaiseNexusOperationCanceledErrorFromApplicationErrorNonRetryableFromCustomError",
+ operation_name=ErrorTestService.raise_nexus_operation_canceled_error_from_application_error_non_retryable_from_custom_error.__name__,
+ expected_exception_chain=ExpectedErrorChain(
+ ExpectedNexusOperationError(
+ message="nexus operation completed unsuccessfully",
+ service="ErrorTestService",
+ ),
+ ExpectedCancelledError(
+ message="operation-error-message",
+ ),
+ ExpectedApplicationError(
+ message="application-error-message",
+ type="application-error-type",
+ non_retryable=True,
+ ),
+ ExpectedApplicationError(
+ message="custom-error-message",
+ type="CustomError",
+ non_retryable=False,
+ ),
+ ),
+)
-@nexusrpc.handler.service_handler
-class ErrorTestService:
- @sync_operation
- async def op(self, _ctx: StartOperationContext, input: ErrorTestInput) -> None:
- error_conversion_test_cases[input.name].action_in_nexus_operation()
+_EXPECTED_CHAINS: dict[str, ExpectedErrorChain] = {
+ tc.operation_name: tc.expected_exception_chain
+ for tc in [
+ RaiseApplicationErrorNonRetryable,
+ RaiseApplicationErrorNonRetryableFromCustomError,
+ RaiseNexusHandlerErrorNotFound,
+ RaiseNexusHandlerErrorNotFoundFromCustomError,
+ RaiseNexusHandlerErrorNotFoundFromHandlerErrorUnavailable,
+ RaiseNexusOperationErrorFromApplicationErrorNonRetryableFromCustomError,
+ RaiseNexusOperationCanceledErrorFromApplicationErrorNonRetryableFromCustomError,
+ ]
+}
+
+
+# Caller workflow
+
+
+def _matches_expected(actual: BaseException, expected: ExpectedError) -> bool:
+ """Check if an actual exception matches the expected error specification."""
+ if isinstance(expected, ExpectedNexusOperationError):
+ if not isinstance(actual, NexusOperationError):
+ return False
+ if actual.message != expected.message:
+ return False
+ if actual.service != expected.service:
+ return False
+ return True
+
+ elif isinstance(expected, ExpectedHandlerError):
+ if not isinstance(actual, nexusrpc.HandlerError):
+ return False
+ if expected.message not in str(actual):
+ return False
+ if actual.type.name != expected.type:
+ return False
+ if actual.retryable != expected.retryable:
+ return False
+ return True
+
+ elif isinstance(expected, ExpectedApplicationError):
+ if not isinstance(actual, ApplicationError):
+ return False
+ if actual.message != expected.message:
+ return False
+ if actual.non_retryable != expected.non_retryable:
+ return False
+ if expected.type is not None and actual.type != expected.type:
+ return False
+ return True
+
+ elif isinstance(expected, ExpectedCancelledError):
+ if not isinstance(actual, CancelledError):
+ return False
+ if actual.message != expected.message:
+ return False
+ return True
+
+ return False
+
+
+def _format_mismatch(actual: BaseException, expected: ExpectedError) -> str:
+ """Format a detailed mismatch message for debugging."""
+ lines = ["Mismatch between actual and expected error:"]
+ lines.append(f" Actual: {type(actual).__name__}: {actual}")
+ lines.append(f" Expected: {expected}")
+ return "\n".join(lines)
+
+
+def _validate_exception_chain(
+ err: BaseException,
+ expected_chain: ExpectedErrorChain,
+) -> None:
+ """Walk the exception chain and validate each exception against expected.
+
+ Optional expected errors can be skipped if they don't match the current actual error.
+ """
+ actual_chain: list[BaseException] = []
+ current: BaseException | None = err
+ while current is not None:
+ actual_chain.append(current)
+ current = current.__cause__
+
+ actual_idx = 0
+ expected_idx = 0
+
+ while actual_idx < len(actual_chain) and expected_idx < len(expected_chain):
+ actual = actual_chain[actual_idx]
+ expected = expected_chain[expected_idx]
+
+ if _matches_expected(actual, expected):
+ # Match found, advance both
+ actual_idx += 1
+ expected_idx += 1
+ elif expected.optional:
+ # Optional expected error didn't match, skip it
+ print(f"Skipping optional expected error: {expected}")
+ expected_idx += 1
+ else:
+ # Required expected error didn't match
+ assert False, _format_mismatch(actual, expected)
+ # Check remaining expected errors are all optional
+ while expected_idx < len(expected_chain):
+ expected = expected_chain[expected_idx]
+ assert (
+ expected.optional
+ ), f"Required expected error not found in chain: {expected}"
+ expected_idx += 1
-# Caller
+ # Check no remaining actual errors
+ assert actual_idx == len(
+ actual_chain
+ ), f"Unexpected errors in chain: {actual_chain[actual_idx:]}"
@workflow.defn(sandboxed=False)
@@ -370,38 +595,35 @@ def __init__(self, input: ErrorTestInput):
)
@workflow.run
- async def invoke_nexus_op_and_assert_error(self, input: ErrorTestInput) -> None:
+ async def run(self, input: ErrorTestInput) -> None:
try:
await self.nexus_client.execute_operation(
- ErrorTestService.op, # type: ignore[arg-type] # mypy can't infer OutputT=None in Union type
+ input.operation_name,
input,
output_type=None,
)
except BaseException as err:
- errs = [err]
- while err.__cause__:
- errs.append(err.__cause__)
- err = err.__cause__
-
- test_case = error_conversion_test_cases[input.name]
- assert len(errs) == len(test_case.expected_exception_chain_in_workflow)
- for err, (expected_cls, expected_fields) in zip(
- errs, test_case.expected_exception_chain_in_workflow
- ):
- assert isinstance(err, expected_cls)
- for k, v in expected_fields.items():
- if k == "message" and isinstance(err, nexusrpc.HandlerError):
- assert str(err) == v
- else:
- assert getattr(err, k) == v
-
- else:
- assert False, "Unreachable"
-
-
-@pytest.mark.parametrize("test_case", list(error_conversion_test_cases.values()))
+ _validate_exception_chain(err, _EXPECTED_CHAINS[input.operation_name])
+ return
+
+ raise AssertionError("Expected exception was not raised")
+
+
+@pytest.mark.parametrize(
+ "test_case",
+ [
+ RaiseApplicationErrorNonRetryable,
+ RaiseApplicationErrorNonRetryableFromCustomError,
+ RaiseNexusHandlerErrorNotFound,
+ RaiseNexusHandlerErrorNotFoundFromCustomError,
+ RaiseNexusHandlerErrorNotFoundFromHandlerErrorUnavailable,
+ RaiseNexusOperationErrorFromApplicationErrorNonRetryableFromCustomError,
+ RaiseNexusOperationCanceledErrorFromApplicationErrorNonRetryableFromCustomError,
+ ],
+ ids=lambda tc: tc.name,
+)
async def test_errors_raised_by_nexus_operation(
- client: Client, env: WorkflowEnvironment, test_case: type[ErrorConversionTestCase]
+ client: Client, env: WorkflowEnvironment, test_case: ErrorTestCase
):
if env.supports_time_skipping:
pytest.skip("Nexus tests don't work with time-skipping server")
@@ -415,10 +637,10 @@ async def test_errors_raised_by_nexus_operation(
):
await create_nexus_endpoint(task_queue, client)
await client.execute_workflow(
- ErrorTestCallerWorkflow.invoke_nexus_op_and_assert_error,
+ ErrorTestCallerWorkflow.run,
ErrorTestInput(
task_queue=task_queue,
- name=test_case.__name__,
+ operation_name=test_case.operation_name,
),
id=str(uuid.uuid4()),
task_queue=task_queue,
diff --git a/tests/nexus/test_workflow_caller_errors.py b/tests/nexus/test_workflow_caller_errors.py
index 31353c5a9..0f80663ef 100644
--- a/tests/nexus/test_workflow_caller_errors.py
+++ b/tests/nexus/test_workflow_caller_errors.py
@@ -31,6 +31,7 @@
NexusOperationError,
TimeoutError,
)
+from temporalio.service import RPCError, RPCStatusCode
from temporalio.testing import WorkflowEnvironment
from temporalio.worker import Worker
from tests.helpers import LogCapturer, assert_eq_eventually
@@ -49,6 +50,13 @@ class ErrorTestInput:
id: str
+@dataclass
+class RPCErrorInput:
+ status_code_value: int # RPCStatusCode int value
+ task_queue: str
+ id: str
+
+
@workflow.defn
class NonTerminatingWorkflow:
@workflow.run
@@ -108,6 +116,18 @@ async def fails_due_to_workflow_already_started(
task_queue=nexus.info().task_queue,
)
+ @nexusrpc.handler.sync_operation
+ def raise_rpc_error(
+ self, _ctx: nexusrpc.handler.StartOperationContext, input: RPCErrorInput
+ ) -> None:
+ operation_invocation_counts[input.id] += 1
+ status_code = RPCStatusCode(input.status_code_value)
+ raise RPCError(
+ f"Test error for {status_code.name}",
+ status_code,
+ b"",
+ )
+
@workflow.defn(sandboxed=False)
class CallerWorkflow:
@@ -120,6 +140,20 @@ async def run(self, input: ErrorTestInput) -> None:
await nexus_client.execute_operation(input.operation_name, input)
+@workflow.defn(sandboxed=False)
+class RPCErrorCallerWorkflow:
+ @workflow.run
+ async def run(self, input: RPCErrorInput) -> None:
+ nexus_client = workflow.create_nexus_client(
+ service="ErrorTestService",
+ endpoint=make_nexus_endpoint_name(input.task_queue),
+ )
+ await nexus_client.execute_operation(
+ ErrorTestService.raise_rpc_error,
+ input,
+ )
+
+
@pytest.mark.parametrize(
"operation_name",
[
@@ -239,7 +273,7 @@ async def expect_timeout_cancellation_async(
self, ctx: StartOperationContext, _input: None
) -> None:
try:
- await asyncio.wait_for(ctx.task_cancellation.wait_until_cancelled(), 1)
+ await asyncio.wait_for(ctx.task_cancellation.wait_until_cancelled(), 3)
except asyncio.TimeoutError:
raise ApplicationError("expected cancel", non_retryable=True)
@@ -265,7 +299,7 @@ async def run(self, operation: str) -> None:
operation,
None,
output_type=None,
- schedule_to_close_timeout=timedelta(seconds=0.1),
+ schedule_to_close_timeout=timedelta(seconds=2),
)
@@ -394,3 +428,112 @@ async def test_error_raised_by_timeout_of_nexus_cancel_operation(
)
assert capturer.find_log("expected cancellation") is None
+
+
+# RPCError tests
+
+
+@pytest.mark.parametrize(
+ ["status_code", "expected_handler_error_type"],
+ [
+ (RPCStatusCode.INVALID_ARGUMENT, nexusrpc.HandlerErrorType.BAD_REQUEST),
+ (RPCStatusCode.ALREADY_EXISTS, nexusrpc.HandlerErrorType.INTERNAL),
+ (RPCStatusCode.FAILED_PRECONDITION, nexusrpc.HandlerErrorType.INTERNAL),
+ (RPCStatusCode.OUT_OF_RANGE, nexusrpc.HandlerErrorType.INTERNAL),
+ (RPCStatusCode.NOT_FOUND, nexusrpc.HandlerErrorType.NOT_FOUND),
+ (RPCStatusCode.UNIMPLEMENTED, nexusrpc.HandlerErrorType.NOT_IMPLEMENTED),
+ ],
+)
+async def test_rpc_error_fails_without_retry(
+ client: Client,
+ env: WorkflowEnvironment,
+ status_code: RPCStatusCode,
+ expected_handler_error_type: nexusrpc.HandlerErrorType,
+):
+ if env.supports_time_skipping:
+ pytest.skip("Nexus tests don't work with time-skipping server")
+
+ input = RPCErrorInput(
+ status_code_value=status_code.value,
+ task_queue=str(uuid.uuid4()),
+ id=str(uuid.uuid4()),
+ )
+ async with Worker(
+ client,
+ nexus_service_handlers=[ErrorTestService()],
+ nexus_task_executor=concurrent.futures.ThreadPoolExecutor(max_workers=1),
+ workflows=[RPCErrorCallerWorkflow],
+ task_queue=input.task_queue,
+ ):
+ await create_nexus_endpoint(input.task_queue, client)
+ try:
+ await client.execute_workflow(
+ RPCErrorCallerWorkflow.run,
+ input,
+ id=str(uuid.uuid4()),
+ task_queue=input.task_queue,
+ )
+ except Exception as err:
+ assert isinstance(err, WorkflowFailureError)
+ assert isinstance(err.__cause__, NexusOperationError)
+ handler_error = err.__cause__.__cause__
+ assert isinstance(handler_error, nexusrpc.HandlerError)
+ assert not handler_error.retryable
+ assert handler_error.type == expected_handler_error_type
+ # Verify no retry occurred
+ assert operation_invocation_counts[input.id] == 1
+ else:
+ pytest.fail("Expected WorkflowFailureError")
+
+
+@pytest.mark.parametrize(
+ "status_code",
+ [
+ RPCStatusCode.ABORTED,
+ RPCStatusCode.UNAVAILABLE,
+ RPCStatusCode.CANCELLED,
+ RPCStatusCode.DATA_LOSS,
+ RPCStatusCode.INTERNAL,
+ RPCStatusCode.UNKNOWN,
+ RPCStatusCode.UNAUTHENTICATED,
+ RPCStatusCode.PERMISSION_DENIED,
+ RPCStatusCode.RESOURCE_EXHAUSTED,
+ RPCStatusCode.DEADLINE_EXCEEDED,
+ RPCStatusCode.OK, # fallback case
+ ],
+)
+async def test_rpc_error_is_retried(
+ client: Client,
+ env: WorkflowEnvironment,
+ status_code: RPCStatusCode,
+):
+ if env.supports_time_skipping:
+ pytest.skip("Nexus tests don't work with time-skipping server")
+
+ input = RPCErrorInput(
+ status_code_value=status_code.value,
+ task_queue=str(uuid.uuid4()),
+ id=str(uuid.uuid4()),
+ )
+ async with Worker(
+ client,
+ nexus_service_handlers=[ErrorTestService()],
+ nexus_task_executor=concurrent.futures.ThreadPoolExecutor(max_workers=1),
+ workflows=[RPCErrorCallerWorkflow],
+ task_queue=input.task_queue,
+ ):
+ await create_nexus_endpoint(input.task_queue, client)
+
+ handle = await client.start_workflow(
+ RPCErrorCallerWorkflow.run,
+ input,
+ id=str(uuid.uuid4()),
+ task_queue=input.task_queue,
+ )
+
+ async def times_called() -> int:
+ return operation_invocation_counts[input.id]
+
+ await assert_eq_eventually(2, times_called)
+
+ await handle.cancel()
diff --git a/tests/nexus/test_workflow_run_operation.py b/tests/nexus/test_workflow_run_operation.py
index 7d284412c..19ff56008 100644
--- a/tests/nexus/test_workflow_run_operation.py
+++ b/tests/nexus/test_workflow_run_operation.py
@@ -1,4 +1,3 @@
-import re
import uuid
from dataclasses import dataclass
from typing import Any
@@ -15,16 +14,12 @@
from nexusrpc.handler._decorators import operation_handler
from temporalio import workflow
+from temporalio.client import Client
from temporalio.nexus import WorkflowRunOperationContext
from temporalio.nexus._operation_handlers import WorkflowRunOperationHandler
from temporalio.testing import WorkflowEnvironment
from temporalio.worker import Worker
-from tests.helpers.nexus import (
- Failure,
- ServiceClient,
- create_nexus_endpoint,
- dataclass_as_dict,
-)
+from tests.helpers.nexus import create_nexus_endpoint, make_nexus_endpoint_name
@dataclass
@@ -79,6 +74,17 @@ def op(self) -> OperationHandler:
return MyOperation()
+@workflow.defn
+class CallerWorkflow:
+ @workflow.run
+ async def run(self, input: Input, service_name: str, task_queue: str) -> str:
+ client = workflow.create_nexus_client(
+ service=service_name,
+ endpoint=make_nexus_endpoint_name(task_queue),
+ )
+ return await client.execute_operation("op", input, output_type=str)
+
+
@pytest.mark.parametrize(
"service_handler_cls",
[
@@ -87,6 +93,7 @@ def op(self) -> OperationHandler:
],
)
async def test_workflow_run_operation(
+ client: Client,
env: WorkflowEnvironment,
service_handler_cls: type[Any],
):
@@ -94,26 +101,18 @@ async def test_workflow_run_operation(
pytest.skip("Nexus tests don't work with time-skipping server")
task_queue = str(uuid.uuid4())
- endpoint = (await create_nexus_endpoint(task_queue, env.client)).endpoint.id
+ await create_nexus_endpoint(task_queue, client)
assert (service_defn := nexusrpc.get_service_definition(service_handler_cls))
- service_client = ServiceClient(
- server_address=ServiceClient.default_server_address(env),
- endpoint=endpoint,
- service=service_defn.name,
- )
async with Worker(
- env.client,
+ client,
task_queue=task_queue,
nexus_service_handlers=[service_handler_cls()],
+ workflows=[CallerWorkflow, EchoWorkflow],
):
- resp = await service_client.start_operation(
- "op",
- dataclass_as_dict(Input(value="test")),
+ result = await client.execute_workflow(
+ CallerWorkflow.run,
+ args=[Input(value="test"), service_defn.name, task_queue],
+ id=str(uuid.uuid4()),
+ task_queue=task_queue,
)
- if hasattr(service_handler_cls, "__expected__error__"):
- status_code, message = service_handler_cls.__expected__error__
- assert resp.status_code == status_code
- failure = Failure(**resp.json())
- assert re.search(message, failure.message)
- else:
- assert resp.status_code == 201
+ assert result == "test"
diff --git a/tests/test_converter.py b/tests/test_converter.py
index bb5b3c8bc..8ef5f8a68 100644
--- a/tests/test_converter.py
+++ b/tests/test_converter.py
@@ -19,6 +19,7 @@
)
from uuid import UUID, uuid4
+import nexusrpc
import pydantic
import pytest
import typing_extensions
@@ -27,6 +28,7 @@
import temporalio.api.common.v1
import temporalio.common
from temporalio.api.common.v1 import Payload, Payloads
+from temporalio.api.enums.v1 import NexusHandlerErrorRetryBehavior
from temporalio.api.failure.v1 import Failure
from temporalio.common import RawValue
from temporalio.converter import (
@@ -44,7 +46,11 @@
encode_search_attribute_values,
value_to_type,
)
-from temporalio.exceptions import ApplicationError, FailureError
+from temporalio.exceptions import (
+ ApplicationError,
+ FailureError,
+ NexusOperationError,
+)
# StrEnum is available in 3.11+
if sys.version_info >= (3, 11):
@@ -596,6 +602,248 @@ async def test_failure_encoded_attributes():
assert failure == orig_failure
+@pytest.mark.parametrize(
+ "handler_type,retryable_override,expected_retryable",
+ [
+ (nexusrpc.HandlerErrorType.BAD_REQUEST, None, None),
+ (nexusrpc.HandlerErrorType.BAD_REQUEST, True, True),
+ (nexusrpc.HandlerErrorType.BAD_REQUEST, False, False),
+ (nexusrpc.HandlerErrorType.INTERNAL, None, None),
+ (nexusrpc.HandlerErrorType.INTERNAL, True, True),
+ (nexusrpc.HandlerErrorType.NOT_FOUND, False, False),
+ (nexusrpc.HandlerErrorType.RESOURCE_EXHAUSTED, None, None),
+ (nexusrpc.HandlerErrorType.UNAVAILABLE, True, True),
+ (nexusrpc.HandlerErrorType.UPSTREAM_TIMEOUT, None, None),
+ (nexusrpc.HandlerErrorType.UNAUTHENTICATED, None, None),
+ (nexusrpc.HandlerErrorType.UNAUTHORIZED, None, None),
+ ],
+)
+async def test_nexus_handler_error_round_trip(
+ handler_type: nexusrpc.HandlerErrorType,
+ retryable_override: bool | None,
+ expected_retryable: bool | None,
+):
+ """Test round-trip conversion of nexusrpc.HandlerError through failure converter."""
+ message = f"test message for {handler_type.name}"
+ original_error = nexusrpc.HandlerError(
+ message,
+ type=handler_type,
+ retryable_override=retryable_override,
+ )
+
+ # Convert to failure
+ failure = Failure()
+ await DataConverter.default.encode_failure(original_error, failure)
+
+ # Verify failure structure
+ assert failure.HasField("nexus_handler_failure_info")
+ assert failure.nexus_handler_failure_info.type == handler_type.name
+ assert failure.message == message
+
+ # Verify retryable behavior mapping
+ if retryable_override is True:
+ assert (
+ failure.nexus_handler_failure_info.retry_behavior
+ == NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
+ )
+ elif retryable_override is False:
+ assert (
+ failure.nexus_handler_failure_info.retry_behavior
+ == NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
+ )
+ else:
+ assert (
+ failure.nexus_handler_failure_info.retry_behavior
+ == NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_UNSPECIFIED
+ )
+
+ # Convert back to error
+ result_error = await DataConverter.default.decode_failure(failure)
+
+ # Verify result
+ assert isinstance(result_error, nexusrpc.HandlerError)
+ assert result_error.type == handler_type
+ assert result_error.retryable_override == expected_retryable
+ assert result_error.message == message
+ assert result_error.original_failure
+ assert result_error.original_failure.details
+
+ # modify result_error.original_failure as a way of confirming that it is used
+ # when encoding the resulting failure
+ result_error.original_failure.details = {
+ "nexusHandlerFailureInfo": {
+ **result_error.original_failure.details["nexusHandlerFailureInfo"],
+ "type": "TEST TYPE",
+ }
+ }
+
+ result_failure = Failure()
+ await DataConverter.default.encode_failure(result_error, result_failure)
+ assert result_failure.HasField("nexus_handler_failure_info")
+ assert result_failure.nexus_handler_failure_info.type == "TEST TYPE"
+ assert result_failure.message == message
+
+ # Verify retryable behavior mapping
+ if retryable_override is True:
+ assert (
+ result_failure.nexus_handler_failure_info.retry_behavior
+ == NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
+ )
+ elif retryable_override is False:
+ assert (
+ result_failure.nexus_handler_failure_info.retry_behavior
+ == NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
+ )
+ else:
+ assert (
+ result_failure.nexus_handler_failure_info.retry_behavior
+ == NexusHandlerErrorRetryBehavior.NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_UNSPECIFIED
+ )
+
+
+async def test_nexus_handler_error_with_cause():
+ """Test HandlerError with a cause chain is properly converted."""
+ # Create a cause chain
+ root_cause = ValueError("root cause")
+ middle_cause = RuntimeError("middle cause")
+ middle_cause.__cause__ = root_cause
+
+ handler_error = nexusrpc.HandlerError(
+ "handler error message",
+ type=nexusrpc.HandlerErrorType.INTERNAL,
+ )
+ handler_error.__cause__ = middle_cause
+
+ # Convert to failure
+ failure = Failure()
+ await DataConverter.default.encode_failure(handler_error, failure)
+
+ # Verify message and cause chain in failure
+ assert failure.message == "handler error message"
+ assert failure.HasField("cause")
+ assert failure.cause.message == "middle cause"
+ assert failure.cause.application_failure_info.type == "RuntimeError"
+ assert failure.cause.HasField("cause")
+ assert failure.cause.cause.message == "root cause"
+ assert failure.cause.cause.application_failure_info.type == "ValueError"
+
+ # Convert back
+ result_error = await DataConverter.default.decode_failure(failure)
+
+ # Verify cause chain with messages (ApplicationError prepends type to message in str())
+ assert isinstance(result_error, nexusrpc.HandlerError)
+ assert str(result_error) == "handler error message"
+ assert result_error.__cause__ is not None
+ assert isinstance(result_error.__cause__, ApplicationError)
+ assert str(result_error.__cause__) == "RuntimeError: middle cause"
+ assert result_error.__cause__.__cause__ is not None
+ assert str(result_error.__cause__.__cause__) == "ValueError: root cause"
+
+
+async def test_nexus_handler_error_unknown_type_fallback():
+ """Test that unknown HandlerErrorType falls back to INTERNAL during from_failure."""
+ # Create a failure with an unknown type
+ failure = Failure()
+ failure.message = "unknown type error"
+ failure.nexus_handler_failure_info.type = "UNKNOWN_TYPE_XYZ"
+
+ # Convert to error
+ result_error = await DataConverter.default.decode_failure(failure)
+
+ # Should fall back to INTERNAL with message preserved
+ assert isinstance(result_error, nexusrpc.HandlerError)
+ assert result_error.type == nexusrpc.HandlerErrorType.INTERNAL
+ assert str(result_error) == "unknown type error"
+
+
+async def test_nexus_operation_error_round_trip():
+ """Test round-trip conversion of NexusOperationError."""
+ test_cases = [
+ # (scheduled_event_id, endpoint, service, operation, operation_token)
+ (123, "my-endpoint", "MyService", "myOperation", "token-abc"),
+ (0, "", "", "", ""), # Empty values
+ (999, "endpoint-2", "ServiceB", "op2", ""), # Empty token
+ (1, "e", "s", "o", "very-long-token-" + "x" * 100),
+ ]
+
+ for scheduled_event_id, endpoint, service, operation, operation_token in test_cases:
+ message = "nexus operation failed"
+ original_error = NexusOperationError(
+ message,
+ scheduled_event_id=scheduled_event_id,
+ endpoint=endpoint,
+ service=service,
+ operation=operation,
+ operation_token=operation_token,
+ )
+
+ # Convert to failure
+ failure = Failure()
+ await DataConverter.default.encode_failure(original_error, failure)
+
+ # Verify failure structure and message
+ assert failure.message == message
+ assert failure.HasField("nexus_operation_execution_failure_info")
+ info = failure.nexus_operation_execution_failure_info
+ assert info.scheduled_event_id == scheduled_event_id
+ assert info.endpoint == endpoint
+ assert info.service == service
+ assert info.operation == operation
+ assert info.operation_token == operation_token
+
+ # Convert back
+ result_error = await DataConverter.default.decode_failure(failure)
+
+ # Verify result including message
+ assert isinstance(result_error, NexusOperationError)
+ assert result_error.message == message
+ assert result_error.scheduled_event_id == scheduled_event_id
+ assert result_error.endpoint == endpoint
+ assert result_error.service == service
+ assert result_error.operation == operation
+ assert result_error.operation_token == operation_token
+
+
+async def test_nexus_operation_error_with_cause():
+ """Test NexusOperationError with a HandlerError as cause."""
+ # Create NexusOperationError with HandlerError as cause
+ cause_error = nexusrpc.HandlerError(
+ "handler failed",
+ type=nexusrpc.HandlerErrorType.NOT_FOUND,
+ )
+
+ original_error = NexusOperationError(
+ "nexus operation failed",
+ scheduled_event_id=42,
+ endpoint="test-endpoint",
+ service="TestService",
+ operation="testOp",
+ operation_token="token123",
+ )
+ original_error.__cause__ = cause_error
+
+ # Convert to failure
+ failure = Failure()
+ await DataConverter.default.encode_failure(original_error, failure)
+
+ # Verify message and cause is present
+ assert failure.message == "nexus operation failed"
+ assert failure.HasField("cause")
+ assert failure.cause.HasField("nexus_handler_failure_info")
+ assert failure.cause.message == "handler failed"
+
+ # Convert back
+ result_error = await DataConverter.default.decode_failure(failure)
+
+ # Verify messages preserved
+ assert isinstance(result_error, NexusOperationError)
+ assert result_error.message == "nexus operation failed"
+ assert result_error.__cause__ is not None
+ assert isinstance(result_error.__cause__, nexusrpc.HandlerError)
+ assert result_error.__cause__.type == nexusrpc.HandlerErrorType.NOT_FOUND
+ assert str(result_error.__cause__) == "handler failed"
+
+
class IPv4AddressPayloadConverter(CompositePayloadConverter):
def __init__(self) -> None:
# Replace default JSON plain with our own that has our type converter
diff --git a/uv.lock b/uv.lock
index 813cdf64e..2042ea2b1 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1821,14 +1821,10 @@ wheels = [
[[package]]
name = "nexus-rpc"
version = "1.3.0"
-source = { registry = "https://pypi.org/simple" }
+source = { git = "https://github.com/nexus-rpc/sdk-python.git?branch=amazzeo%2Fadd-failure#a18eb62b2fbfc87b3c9e6328115a6deed96eed53" }
dependencies = [
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/2e/f2/d54f5c03d8f4672ccc0875787a385f53dcb61f98a8ae594b5620e85b9cb3/nexus_rpc-1.3.0.tar.gz", hash = "sha256:e56d3b57b60d707ce7a72f83f23f106b86eca1043aa658e44582ab5ff30ab9ad", size = 75650, upload-time = "2025-12-08T22:59:13.002Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/d6/74/0afd841de3199c148146c1d43b4bfb5605b2f1dc4c9a9087fe395091ea5a/nexus_rpc-1.3.0-py3-none-any.whl", hash = "sha256:aee0707b4861b22d8124ecb3f27d62dafbe8777dc50c66c91e49c006f971b92d", size = 28873, upload-time = "2025-12-08T22:59:12.024Z" },
-]
[[package]]
name = "nh3"
@@ -3066,7 +3062,7 @@ dev = [
requires-dist = [
{ name = "grpcio", marker = "extra == 'grpc'", specifier = ">=1.48.2,<2" },
{ name = "mcp", marker = "extra == 'openai-agents'", specifier = ">=1.9.4,<2" },
- { name = "nexus-rpc", specifier = "==1.3.0" },
+ { name = "nexus-rpc", git = "https://github.com/nexus-rpc/sdk-python.git?branch=amazzeo%2Fadd-failure" },
{ name = "openai-agents", marker = "extra == 'openai-agents'", specifier = ">=0.3,<0.7" },
{ name = "opentelemetry-api", marker = "extra == 'opentelemetry'", specifier = ">=1.11.1,<2" },
{ name = "opentelemetry-sdk", marker = "extra == 'opentelemetry'", specifier = ">=1.11.1,<2" },