diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d578bb5..753f040e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ jobs: python: "3.12" docsTarget: true cloudTestTarget: true + clippyLinter: true - os: ubuntu-latest python: "3.8" protoCheckTarget: true @@ -58,6 +59,8 @@ jobs: # https://github.com/python-poetry/poetry/pull/7694 are fixed - run: python -m pip install --upgrade wheel "poetry==1.3.2" poethepoet - run: poetry install --no-root --all-extras + - run: poe bridge-lint + if: ${{ matrix.clippyLinter }} - run: poe lint - run: poe build-develop - run: mkdir junit-xml diff --git a/.gitignore b/.gitignore index 79c26177..021ac733 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ temporalio/bridge/temporal_sdk_bridge* /tests/helpers/golangserver/golangserver /tests/helpers/golangworker/golangworker /.idea +/sdk-python.iml diff --git a/pyproject.toml b/pyproject.toml index a1b22daf..d394bbaf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,6 +81,7 @@ lint = [ {cmd = "pyright"}, {ref = "lint-docs"}, ] +bridge-lint = { cmd = "cargo clippy -- -D warnings", cwd = "temporalio/bridge" } # TODO(cretz): Why does pydocstyle complain about @overload missing docs after # https://github.com/PyCQA/pydocstyle/pull/511? lint-docs = "pydocstyle --ignore-decorators=overload" diff --git a/temporalio/api/activity/__init__.py b/temporalio/api/activity/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/temporalio/api/activity/v1/__init__.py b/temporalio/api/activity/v1/__init__.py new file mode 100644 index 00000000..a6e54842 --- /dev/null +++ b/temporalio/api/activity/v1/__init__.py @@ -0,0 +1,5 @@ +from .message_pb2 import ActivityOptions + +__all__ = [ + "ActivityOptions", +] diff --git a/temporalio/api/activity/v1/message_pb2.py b/temporalio/api/activity/v1/message_pb2.py new file mode 100644 index 00000000..58f1d95c --- /dev/null +++ b/temporalio/api/activity/v1/message_pb2.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: temporal/api/activity/v1/message.proto +"""Generated protocol buffer code.""" + +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 + +from temporalio.api.common.v1 import ( + message_pb2 as temporal_dot_api_dot_common_dot_v1_dot_message__pb2, +) +from temporalio.api.taskqueue.v1 import ( + message_pb2 as temporal_dot_api_dot_taskqueue_dot_v1_dot_message__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b"\n&temporal/api/activity/v1/message.proto\x12\x18temporal.api.activity.v1\x1a$temporal/api/common/v1/message.proto\x1a'temporal/api/taskqueue/v1/message.proto\x1a\x1egoogle/protobuf/duration.proto\"\xf3\x02\n\x0f\x41\x63tivityOptions\x12\x38\n\ntask_queue\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12<\n\x19schedule_to_close_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x06 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicyB\x93\x01\n\x1bio.temporal.api.activity.v1B\x0cMessageProtoP\x01Z'go.temporal.io/api/activity/v1;activity\xaa\x02\x1aTemporalio.Api.Activity.V1\xea\x02\x1dTemporalio::Api::Activity::V1b\x06proto3" +) + + +_ACTIVITYOPTIONS = DESCRIPTOR.message_types_by_name["ActivityOptions"] +ActivityOptions = _reflection.GeneratedProtocolMessageType( + "ActivityOptions", + (_message.Message,), + { + "DESCRIPTOR": _ACTIVITYOPTIONS, + "__module__": "temporal.api.activity.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.activity.v1.ActivityOptions) + }, +) +_sym_db.RegisterMessage(ActivityOptions) + +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b"\n\033io.temporal.api.activity.v1B\014MessageProtoP\001Z'go.temporal.io/api/activity/v1;activity\252\002\032Temporalio.Api.Activity.V1\352\002\035Temporalio::Api::Activity::V1" + _ACTIVITYOPTIONS._serialized_start = 180 + _ACTIVITYOPTIONS._serialized_end = 551 +# @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/activity/v1/message_pb2.pyi b/temporalio/api/activity/v1/message_pb2.pyi new file mode 100644 index 00000000..b46435d2 --- /dev/null +++ b/temporalio/api/activity/v1/message_pb2.pyi @@ -0,0 +1,132 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +The MIT License + +Copyright (c) 2020 Temporal Technologies Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +""" + +import builtins +import sys + +import google.protobuf.descriptor +import google.protobuf.duration_pb2 +import google.protobuf.message + +import temporalio.api.common.v1.message_pb2 +import temporalio.api.taskqueue.v1.message_pb2 + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class ActivityOptions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TASK_QUEUE_FIELD_NUMBER: builtins.int + SCHEDULE_TO_CLOSE_TIMEOUT_FIELD_NUMBER: builtins.int + SCHEDULE_TO_START_TIMEOUT_FIELD_NUMBER: builtins.int + START_TO_CLOSE_TIMEOUT_FIELD_NUMBER: builtins.int + HEARTBEAT_TIMEOUT_FIELD_NUMBER: builtins.int + RETRY_POLICY_FIELD_NUMBER: builtins.int + @property + def task_queue(self) -> temporalio.api.taskqueue.v1.message_pb2.TaskQueue: ... + @property + def schedule_to_close_timeout(self) -> google.protobuf.duration_pb2.Duration: + """Indicates how long the caller is willing to wait for an activity completion. Limits how long + retries will be attempted. Either this or `start_to_close_timeout` must be specified. + + (-- api-linter: core::0140::prepositions=disabled + aip.dev/not-precedent: "to" is used to indicate interval. --) + """ + @property + def schedule_to_start_timeout(self) -> google.protobuf.duration_pb2.Duration: + """Limits time an activity task can stay in a task queue before a worker picks it up. This + timeout is always non retryable, as all a retry would achieve is to put it back into the same + queue. Defaults to `schedule_to_close_timeout` or workflow execution timeout if not + specified. + + (-- api-linter: core::0140::prepositions=disabled + aip.dev/not-precedent: "to" is used to indicate interval. --) + """ + @property + def start_to_close_timeout(self) -> google.protobuf.duration_pb2.Duration: + """Maximum time an activity is allowed to execute after being picked up by a worker. This + timeout is always retryable. Either this or `schedule_to_close_timeout` must be + specified. + + (-- api-linter: core::0140::prepositions=disabled + aip.dev/not-precedent: "to" is used to indicate interval. --) + """ + @property + def heartbeat_timeout(self) -> google.protobuf.duration_pb2.Duration: + """Maximum permitted time between successful worker heartbeats.""" + @property + def retry_policy(self) -> temporalio.api.common.v1.message_pb2.RetryPolicy: ... + def __init__( + self, + *, + task_queue: temporalio.api.taskqueue.v1.message_pb2.TaskQueue | None = ..., + schedule_to_close_timeout: google.protobuf.duration_pb2.Duration | None = ..., + schedule_to_start_timeout: google.protobuf.duration_pb2.Duration | None = ..., + start_to_close_timeout: google.protobuf.duration_pb2.Duration | None = ..., + heartbeat_timeout: google.protobuf.duration_pb2.Duration | None = ..., + retry_policy: temporalio.api.common.v1.message_pb2.RetryPolicy | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "heartbeat_timeout", + b"heartbeat_timeout", + "retry_policy", + b"retry_policy", + "schedule_to_close_timeout", + b"schedule_to_close_timeout", + "schedule_to_start_timeout", + b"schedule_to_start_timeout", + "start_to_close_timeout", + b"start_to_close_timeout", + "task_queue", + b"task_queue", + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "heartbeat_timeout", + b"heartbeat_timeout", + "retry_policy", + b"retry_policy", + "schedule_to_close_timeout", + b"schedule_to_close_timeout", + "schedule_to_start_timeout", + b"schedule_to_start_timeout", + "start_to_close_timeout", + b"start_to_close_timeout", + "task_queue", + b"task_queue", + ], + ) -> None: ... + +global___ActivityOptions = ActivityOptions diff --git a/temporalio/api/common/v1/__init__.py b/temporalio/api/common/v1/__init__.py index d957455a..42a75d80 100644 --- a/temporalio/api/common/v1/__init__.py +++ b/temporalio/api/common/v1/__init__.py @@ -4,6 +4,7 @@ Callback, DataBlob, Header, + Link, Memo, MeteringMetadata, Payload, @@ -23,6 +24,7 @@ "DataBlob", "GrpcStatus", "Header", + "Link", "Memo", "MeteringMetadata", "Payload", diff --git a/temporalio/api/common/v1/message_pb2.py b/temporalio/api/common/v1/message_pb2.py index 19a35c04..4b05f3fb 100644 --- a/temporalio/api/common/v1/message_pb2.py +++ b/temporalio/api/common/v1/message_pb2.py @@ -20,12 +20,15 @@ from temporalio.api.enums.v1 import ( common_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_common__pb2, ) +from temporalio.api.enums.v1 import ( + event_type_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_event__type__pb2, +) from temporalio.api.enums.v1 import ( reset_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_reset__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n$temporal/api/common/v1/message.proto\x12\x16temporal.api.common.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a"temporal/api/enums/v1/common.proto\x1a!temporal/api/enums/v1/reset.proto"T\n\x08\x44\x61taBlob\x12:\n\rencoding_type\x18\x01 \x01(\x0e\x32#.temporal.api.enums.v1.EncodingType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c"=\n\x08Payloads\x12\x31\n\x08payloads\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload"\x89\x01\n\x07Payload\x12?\n\x08metadata\x18\x01 \x03(\x0b\x32-.temporal.api.common.v1.Payload.MetadataEntry\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01"\xbe\x01\n\x10SearchAttributes\x12S\n\x0eindexed_fields\x18\x01 \x03(\x0b\x32;.temporal.api.common.v1.SearchAttributes.IndexedFieldsEntry\x1aU\n\x12IndexedFieldsEntry\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"\x90\x01\n\x04Memo\x12\x38\n\x06\x66ields\x18\x01 \x03(\x0b\x32(.temporal.api.common.v1.Memo.FieldsEntry\x1aN\n\x0b\x46ieldsEntry\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"\x94\x01\n\x06Header\x12:\n\x06\x66ields\x18\x01 \x03(\x0b\x32*.temporal.api.common.v1.Header.FieldsEntry\x1aN\n\x0b\x46ieldsEntry\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"8\n\x11WorkflowExecution\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t"\x1c\n\x0cWorkflowType\x12\x0c\n\x04name\x18\x01 \x01(\t"\x1c\n\x0c\x41\x63tivityType\x12\x0c\n\x04name\x18\x01 \x01(\t"\xd1\x01\n\x0bRetryPolicy\x12\x33\n\x10initial_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1b\n\x13\x62\x61\x63koff_coefficient\x18\x02 \x01(\x01\x12\x33\n\x10maximum_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10maximum_attempts\x18\x04 \x01(\x05\x12!\n\x19non_retryable_error_types\x18\x05 \x03(\t"F\n\x10MeteringMetadata\x12\x32\n*nonfirst_local_activity_execution_attempts\x18\r \x01(\r">\n\x12WorkerVersionStamp\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x16\n\x0euse_versioning\x18\x03 \x01(\x08"E\n\x19WorkerVersionCapabilities\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x16\n\x0euse_versioning\x18\x02 \x01(\x08"\xe9\x02\n\x0cResetOptions\x12\x35\n\x13\x66irst_workflow_task\x18\x01 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x12last_workflow_task\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x1a\n\x10workflow_task_id\x18\x03 \x01(\x03H\x00\x12\x12\n\x08\x62uild_id\x18\x04 \x01(\tH\x00\x12\x43\n\x12reset_reapply_type\x18\n \x01(\x0e\x32\'.temporal.api.enums.v1.ResetReapplyType\x12\x18\n\x10\x63urrent_run_only\x18\x0b \x01(\x08\x12S\n\x1breset_reapply_exclude_types\x18\x0c \x03(\x0e\x32..temporal.api.enums.v1.ResetReapplyExcludeTypeB\x08\n\x06target"\xde\x01\n\x08\x43\x61llback\x12\x37\n\x05nexus\x18\x02 \x01(\x0b\x32&.temporal.api.common.v1.Callback.NexusH\x00\x1a\x87\x01\n\x05Nexus\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x42\n\x06header\x18\x02 \x03(\x0b\x32\x32.temporal.api.common.v1.Callback.Nexus.HeaderEntry\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\x07variantJ\x04\x08\x01\x10\x02\x42\x89\x01\n\x19io.temporal.api.common.v1B\x0cMessageProtoP\x01Z#go.temporal.io/api/common/v1;common\xaa\x02\x18Temporalio.Api.Common.V1\xea\x02\x1bTemporalio::Api::Common::V1b\x06proto3' + b'\n$temporal/api/common/v1/message.proto\x12\x16temporal.api.common.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a"temporal/api/enums/v1/common.proto\x1a&temporal/api/enums/v1/event_type.proto\x1a!temporal/api/enums/v1/reset.proto"T\n\x08\x44\x61taBlob\x12:\n\rencoding_type\x18\x01 \x01(\x0e\x32#.temporal.api.enums.v1.EncodingType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c"=\n\x08Payloads\x12\x31\n\x08payloads\x18\x01 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload"\x89\x01\n\x07Payload\x12?\n\x08metadata\x18\x01 \x03(\x0b\x32-.temporal.api.common.v1.Payload.MetadataEntry\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01"\xbe\x01\n\x10SearchAttributes\x12S\n\x0eindexed_fields\x18\x01 \x03(\x0b\x32;.temporal.api.common.v1.SearchAttributes.IndexedFieldsEntry\x1aU\n\x12IndexedFieldsEntry\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"\x90\x01\n\x04Memo\x12\x38\n\x06\x66ields\x18\x01 \x03(\x0b\x32(.temporal.api.common.v1.Memo.FieldsEntry\x1aN\n\x0b\x46ieldsEntry\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"\x94\x01\n\x06Header\x12:\n\x06\x66ields\x18\x01 \x03(\x0b\x32*.temporal.api.common.v1.Header.FieldsEntry\x1aN\n\x0b\x46ieldsEntry\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"8\n\x11WorkflowExecution\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t"\x1c\n\x0cWorkflowType\x12\x0c\n\x04name\x18\x01 \x01(\t"\x1c\n\x0c\x41\x63tivityType\x12\x0c\n\x04name\x18\x01 \x01(\t"\xd1\x01\n\x0bRetryPolicy\x12\x33\n\x10initial_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1b\n\x13\x62\x61\x63koff_coefficient\x18\x02 \x01(\x01\x12\x33\n\x10maximum_interval\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10maximum_attempts\x18\x04 \x01(\x05\x12!\n\x19non_retryable_error_types\x18\x05 \x03(\t"F\n\x10MeteringMetadata\x12\x32\n*nonfirst_local_activity_execution_attempts\x18\r \x01(\r">\n\x12WorkerVersionStamp\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x16\n\x0euse_versioning\x18\x03 \x01(\x08"E\n\x19WorkerVersionCapabilities\x12\x10\n\x08\x62uild_id\x18\x01 \x01(\t\x12\x16\n\x0euse_versioning\x18\x02 \x01(\x08"\xe9\x02\n\x0cResetOptions\x12\x35\n\x13\x66irst_workflow_task\x18\x01 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x12last_workflow_task\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x1a\n\x10workflow_task_id\x18\x03 \x01(\x03H\x00\x12\x12\n\x08\x62uild_id\x18\x04 \x01(\tH\x00\x12\x43\n\x12reset_reapply_type\x18\n \x01(\x0e\x32\'.temporal.api.enums.v1.ResetReapplyType\x12\x18\n\x10\x63urrent_run_only\x18\x0b \x01(\x08\x12S\n\x1breset_reapply_exclude_types\x18\x0c \x03(\x0e\x32..temporal.api.enums.v1.ResetReapplyExcludeTypeB\x08\n\x06target"\xb7\x02\n\x08\x43\x61llback\x12\x37\n\x05nexus\x18\x02 \x01(\x0b\x32&.temporal.api.common.v1.Callback.NexusH\x00\x12=\n\x08internal\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.Callback.InternalH\x00\x1a\x87\x01\n\x05Nexus\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x42\n\x06header\x18\x02 \x03(\x0b\x32\x32.temporal.api.common.v1.Callback.Nexus.HeaderEntry\x1a-\n\x0bHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x18\n\x08Internal\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42\t\n\x07variantJ\x04\x08\x01\x10\x02"\xb0\x03\n\x04Link\x12\x44\n\x0eworkflow_event\x18\x01 \x01(\x0b\x32*.temporal.api.common.v1.Link.WorkflowEventH\x00\x12:\n\tbatch_job\x18\x02 \x01(\x0b\x32%.temporal.api.common.v1.Link.BatchJobH\x00\x1a\xfe\x01\n\rWorkflowEvent\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\x12N\n\tevent_ref\x18\x64 \x01(\x0b\x32\x39.temporal.api.common.v1.Link.WorkflowEvent.EventReferenceH\x00\x1aX\n\x0e\x45ventReference\x12\x10\n\x08\x65vent_id\x18\x01 \x01(\x03\x12\x34\n\nevent_type\x18\x02 \x01(\x0e\x32 .temporal.api.enums.v1.EventTypeB\x0b\n\treference\x1a\x1a\n\x08\x42\x61tchJob\x12\x0e\n\x06job_id\x18\x01 \x01(\tB\t\n\x07variantB\x89\x01\n\x19io.temporal.api.common.v1B\x0cMessageProtoP\x01Z#go.temporal.io/api/common/v1;common\xaa\x02\x18Temporalio.Api.Common.V1\xea\x02\x1bTemporalio::Api::Common::V1b\x06proto3' ) @@ -54,6 +57,13 @@ _CALLBACK = DESCRIPTOR.message_types_by_name["Callback"] _CALLBACK_NEXUS = _CALLBACK.nested_types_by_name["Nexus"] _CALLBACK_NEXUS_HEADERENTRY = _CALLBACK_NEXUS.nested_types_by_name["HeaderEntry"] +_CALLBACK_INTERNAL = _CALLBACK.nested_types_by_name["Internal"] +_LINK = DESCRIPTOR.message_types_by_name["Link"] +_LINK_WORKFLOWEVENT = _LINK.nested_types_by_name["WorkflowEvent"] +_LINK_WORKFLOWEVENT_EVENTREFERENCE = _LINK_WORKFLOWEVENT.nested_types_by_name[ + "EventReference" +] +_LINK_BATCHJOB = _LINK.nested_types_by_name["BatchJob"] DataBlob = _reflection.GeneratedProtocolMessageType( "DataBlob", (_message.Message,), @@ -270,6 +280,15 @@ # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Callback.Nexus) }, ), + "Internal": _reflection.GeneratedProtocolMessageType( + "Internal", + (_message.Message,), + { + "DESCRIPTOR": _CALLBACK_INTERNAL, + "__module__": "temporal.api.common.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Callback.Internal) + }, + ), "DESCRIPTOR": _CALLBACK, "__module__": "temporal.api.common.v1.message_pb2", # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Callback) @@ -278,6 +297,48 @@ _sym_db.RegisterMessage(Callback) _sym_db.RegisterMessage(Callback.Nexus) _sym_db.RegisterMessage(Callback.Nexus.HeaderEntry) +_sym_db.RegisterMessage(Callback.Internal) + +Link = _reflection.GeneratedProtocolMessageType( + "Link", + (_message.Message,), + { + "WorkflowEvent": _reflection.GeneratedProtocolMessageType( + "WorkflowEvent", + (_message.Message,), + { + "EventReference": _reflection.GeneratedProtocolMessageType( + "EventReference", + (_message.Message,), + { + "DESCRIPTOR": _LINK_WORKFLOWEVENT_EVENTREFERENCE, + "__module__": "temporal.api.common.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Link.WorkflowEvent.EventReference) + }, + ), + "DESCRIPTOR": _LINK_WORKFLOWEVENT, + "__module__": "temporal.api.common.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Link.WorkflowEvent) + }, + ), + "BatchJob": _reflection.GeneratedProtocolMessageType( + "BatchJob", + (_message.Message,), + { + "DESCRIPTOR": _LINK_BATCHJOB, + "__module__": "temporal.api.common.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Link.BatchJob) + }, + ), + "DESCRIPTOR": _LINK, + "__module__": "temporal.api.common.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.common.v1.Link) + }, +) +_sym_db.RegisterMessage(Link) +_sym_db.RegisterMessage(Link.WorkflowEvent) +_sym_db.RegisterMessage(Link.WorkflowEvent.EventReference) +_sym_db.RegisterMessage(Link.BatchJob) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None @@ -292,46 +353,56 @@ _HEADER_FIELDSENTRY._serialized_options = b"8\001" _CALLBACK_NEXUS_HEADERENTRY._options = None _CALLBACK_NEXUS_HEADERENTRY._serialized_options = b"8\001" - _DATABLOB._serialized_start = 196 - _DATABLOB._serialized_end = 280 - _PAYLOADS._serialized_start = 282 - _PAYLOADS._serialized_end = 343 - _PAYLOAD._serialized_start = 346 - _PAYLOAD._serialized_end = 483 - _PAYLOAD_METADATAENTRY._serialized_start = 436 - _PAYLOAD_METADATAENTRY._serialized_end = 483 - _SEARCHATTRIBUTES._serialized_start = 486 - _SEARCHATTRIBUTES._serialized_end = 676 - _SEARCHATTRIBUTES_INDEXEDFIELDSENTRY._serialized_start = 591 - _SEARCHATTRIBUTES_INDEXEDFIELDSENTRY._serialized_end = 676 - _MEMO._serialized_start = 679 - _MEMO._serialized_end = 823 - _MEMO_FIELDSENTRY._serialized_start = 745 - _MEMO_FIELDSENTRY._serialized_end = 823 - _HEADER._serialized_start = 826 - _HEADER._serialized_end = 974 - _HEADER_FIELDSENTRY._serialized_start = 745 - _HEADER_FIELDSENTRY._serialized_end = 823 - _WORKFLOWEXECUTION._serialized_start = 976 - _WORKFLOWEXECUTION._serialized_end = 1032 - _WORKFLOWTYPE._serialized_start = 1034 - _WORKFLOWTYPE._serialized_end = 1062 - _ACTIVITYTYPE._serialized_start = 1064 - _ACTIVITYTYPE._serialized_end = 1092 - _RETRYPOLICY._serialized_start = 1095 - _RETRYPOLICY._serialized_end = 1304 - _METERINGMETADATA._serialized_start = 1306 - _METERINGMETADATA._serialized_end = 1376 - _WORKERVERSIONSTAMP._serialized_start = 1378 - _WORKERVERSIONSTAMP._serialized_end = 1440 - _WORKERVERSIONCAPABILITIES._serialized_start = 1442 - _WORKERVERSIONCAPABILITIES._serialized_end = 1511 - _RESETOPTIONS._serialized_start = 1514 - _RESETOPTIONS._serialized_end = 1875 - _CALLBACK._serialized_start = 1878 - _CALLBACK._serialized_end = 2100 - _CALLBACK_NEXUS._serialized_start = 1948 - _CALLBACK_NEXUS._serialized_end = 2083 - _CALLBACK_NEXUS_HEADERENTRY._serialized_start = 2038 - _CALLBACK_NEXUS_HEADERENTRY._serialized_end = 2083 + _DATABLOB._serialized_start = 236 + _DATABLOB._serialized_end = 320 + _PAYLOADS._serialized_start = 322 + _PAYLOADS._serialized_end = 383 + _PAYLOAD._serialized_start = 386 + _PAYLOAD._serialized_end = 523 + _PAYLOAD_METADATAENTRY._serialized_start = 476 + _PAYLOAD_METADATAENTRY._serialized_end = 523 + _SEARCHATTRIBUTES._serialized_start = 526 + _SEARCHATTRIBUTES._serialized_end = 716 + _SEARCHATTRIBUTES_INDEXEDFIELDSENTRY._serialized_start = 631 + _SEARCHATTRIBUTES_INDEXEDFIELDSENTRY._serialized_end = 716 + _MEMO._serialized_start = 719 + _MEMO._serialized_end = 863 + _MEMO_FIELDSENTRY._serialized_start = 785 + _MEMO_FIELDSENTRY._serialized_end = 863 + _HEADER._serialized_start = 866 + _HEADER._serialized_end = 1014 + _HEADER_FIELDSENTRY._serialized_start = 785 + _HEADER_FIELDSENTRY._serialized_end = 863 + _WORKFLOWEXECUTION._serialized_start = 1016 + _WORKFLOWEXECUTION._serialized_end = 1072 + _WORKFLOWTYPE._serialized_start = 1074 + _WORKFLOWTYPE._serialized_end = 1102 + _ACTIVITYTYPE._serialized_start = 1104 + _ACTIVITYTYPE._serialized_end = 1132 + _RETRYPOLICY._serialized_start = 1135 + _RETRYPOLICY._serialized_end = 1344 + _METERINGMETADATA._serialized_start = 1346 + _METERINGMETADATA._serialized_end = 1416 + _WORKERVERSIONSTAMP._serialized_start = 1418 + _WORKERVERSIONSTAMP._serialized_end = 1480 + _WORKERVERSIONCAPABILITIES._serialized_start = 1482 + _WORKERVERSIONCAPABILITIES._serialized_end = 1551 + _RESETOPTIONS._serialized_start = 1554 + _RESETOPTIONS._serialized_end = 1915 + _CALLBACK._serialized_start = 1918 + _CALLBACK._serialized_end = 2229 + _CALLBACK_NEXUS._serialized_start = 2051 + _CALLBACK_NEXUS._serialized_end = 2186 + _CALLBACK_NEXUS_HEADERENTRY._serialized_start = 2141 + _CALLBACK_NEXUS_HEADERENTRY._serialized_end = 2186 + _CALLBACK_INTERNAL._serialized_start = 2188 + _CALLBACK_INTERNAL._serialized_end = 2212 + _LINK._serialized_start = 2232 + _LINK._serialized_end = 2664 + _LINK_WORKFLOWEVENT._serialized_start = 2371 + _LINK_WORKFLOWEVENT._serialized_end = 2625 + _LINK_WORKFLOWEVENT_EVENTREFERENCE._serialized_start = 2524 + _LINK_WORKFLOWEVENT_EVENTREFERENCE._serialized_end = 2612 + _LINK_BATCHJOB._serialized_start = 2627 + _LINK_BATCHJOB._serialized_end = 2653 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/common/v1/message_pb2.pyi b/temporalio/api/common/v1/message_pb2.pyi index 0fee2fa1..3a22ea80 100644 --- a/temporalio/api/common/v1/message_pb2.pyi +++ b/temporalio/api/common/v1/message_pb2.pyi @@ -35,6 +35,7 @@ import google.protobuf.internal.containers import google.protobuf.message import temporalio.api.enums.v1.common_pb2 +import temporalio.api.enums.v1.event_type_pb2 import temporalio.api.enums.v1.reset_pb2 if sys.version_info >= (3, 8): @@ -658,24 +659,186 @@ class Callback(google.protobuf.message.Message): field_name: typing_extensions.Literal["header", b"header", "url", b"url"], ) -> None: ... + class Internal(google.protobuf.message.Message): + """Callbacks to be delivered internally within the system. + This variant is not settable in the API and will be rejected by the service with an INVALID_ARGUMENT error. + The only reason that this is exposed is because callbacks are replicated across clusters via the + WorkflowExecutionStarted event, which is defined in the public API. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATA_FIELD_NUMBER: builtins.int + data: builtins.bytes + """Opaque internal data.""" + def __init__( + self, + *, + data: builtins.bytes = ..., + ) -> None: ... + def ClearField( + self, field_name: typing_extensions.Literal["data", b"data"] + ) -> None: ... + NEXUS_FIELD_NUMBER: builtins.int + INTERNAL_FIELD_NUMBER: builtins.int @property def nexus(self) -> global___Callback.Nexus: ... + @property + def internal(self) -> global___Callback.Internal: ... def __init__( self, *, nexus: global___Callback.Nexus | None = ..., + internal: global___Callback.Internal | None = ..., ) -> None: ... def HasField( self, - field_name: typing_extensions.Literal["nexus", b"nexus", "variant", b"variant"], + field_name: typing_extensions.Literal[ + "internal", b"internal", "nexus", b"nexus", "variant", b"variant" + ], ) -> builtins.bool: ... def ClearField( self, - field_name: typing_extensions.Literal["nexus", b"nexus", "variant", b"variant"], + field_name: typing_extensions.Literal[ + "internal", b"internal", "nexus", b"nexus", "variant", b"variant" + ], ) -> None: ... def WhichOneof( self, oneof_group: typing_extensions.Literal["variant", b"variant"] - ) -> typing_extensions.Literal["nexus"] | None: ... + ) -> typing_extensions.Literal["nexus", "internal"] | None: ... global___Callback = Callback + +class Link(google.protobuf.message.Message): + """Link can be associated with history events. It might contain information about an external entity + related to the history event. For example, workflow A makes a Nexus call that starts workflow B: + in this case, a history event in workflow A could contain a Link to the workflow started event in + workflow B, and vice-versa. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class WorkflowEvent(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class EventReference(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + EVENT_ID_FIELD_NUMBER: builtins.int + EVENT_TYPE_FIELD_NUMBER: builtins.int + event_id: builtins.int + event_type: temporalio.api.enums.v1.event_type_pb2.EventType.ValueType + def __init__( + self, + *, + event_id: builtins.int = ..., + event_type: temporalio.api.enums.v1.event_type_pb2.EventType.ValueType = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "event_id", b"event_id", "event_type", b"event_type" + ], + ) -> None: ... + + NAMESPACE_FIELD_NUMBER: builtins.int + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + EVENT_REF_FIELD_NUMBER: builtins.int + namespace: builtins.str + workflow_id: builtins.str + run_id: builtins.str + @property + def event_ref(self) -> global___Link.WorkflowEvent.EventReference: ... + def __init__( + self, + *, + namespace: builtins.str = ..., + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + event_ref: global___Link.WorkflowEvent.EventReference | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "event_ref", b"event_ref", "reference", b"reference" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "event_ref", + b"event_ref", + "namespace", + b"namespace", + "reference", + b"reference", + "run_id", + b"run_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + def WhichOneof( + self, oneof_group: typing_extensions.Literal["reference", b"reference"] + ) -> typing_extensions.Literal["event_ref"] | None: ... + + class BatchJob(google.protobuf.message.Message): + """A link to a built-in batch job. + Batch jobs can be used to perform operations on a set of workflows (e.g. terminate, signal, cancel, etc). + This link can be put on workflow history events generated by actions taken by a batch job. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + JOB_ID_FIELD_NUMBER: builtins.int + job_id: builtins.str + def __init__( + self, + *, + job_id: builtins.str = ..., + ) -> None: ... + def ClearField( + self, field_name: typing_extensions.Literal["job_id", b"job_id"] + ) -> None: ... + + WORKFLOW_EVENT_FIELD_NUMBER: builtins.int + BATCH_JOB_FIELD_NUMBER: builtins.int + @property + def workflow_event(self) -> global___Link.WorkflowEvent: ... + @property + def batch_job(self) -> global___Link.BatchJob: ... + def __init__( + self, + *, + workflow_event: global___Link.WorkflowEvent | None = ..., + batch_job: global___Link.BatchJob | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "batch_job", + b"batch_job", + "variant", + b"variant", + "workflow_event", + b"workflow_event", + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "batch_job", + b"batch_job", + "variant", + b"variant", + "workflow_event", + b"workflow_event", + ], + ) -> None: ... + def WhichOneof( + self, oneof_group: typing_extensions.Literal["variant", b"variant"] + ) -> typing_extensions.Literal["workflow_event", "batch_job"] | None: ... + +global___Link = Link diff --git a/temporalio/api/enums/v1/event_type_pb2.py b/temporalio/api/enums/v1/event_type_pb2.py index 0b630cb0..01b385d3 100644 --- a/temporalio/api/enums/v1/event_type_pb2.py +++ b/temporalio/api/enums/v1/event_type_pb2.py @@ -16,7 +16,7 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n&temporal/api/enums/v1/event_type.proto\x12\x15temporal.api.enums.v1*\xe8\x13\n\tEventType\x12\x1a\n\x16\x45VENT_TYPE_UNSPECIFIED\x10\x00\x12)\n%EVENT_TYPE_WORKFLOW_EXECUTION_STARTED\x10\x01\x12+\n\'EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED\x10\x02\x12(\n$EVENT_TYPE_WORKFLOW_EXECUTION_FAILED\x10\x03\x12+\n\'EVENT_TYPE_WORKFLOW_EXECUTION_TIMED_OUT\x10\x04\x12&\n"EVENT_TYPE_WORKFLOW_TASK_SCHEDULED\x10\x05\x12$\n EVENT_TYPE_WORKFLOW_TASK_STARTED\x10\x06\x12&\n"EVENT_TYPE_WORKFLOW_TASK_COMPLETED\x10\x07\x12&\n"EVENT_TYPE_WORKFLOW_TASK_TIMED_OUT\x10\x08\x12#\n\x1f\x45VENT_TYPE_WORKFLOW_TASK_FAILED\x10\t\x12&\n"EVENT_TYPE_ACTIVITY_TASK_SCHEDULED\x10\n\x12$\n EVENT_TYPE_ACTIVITY_TASK_STARTED\x10\x0b\x12&\n"EVENT_TYPE_ACTIVITY_TASK_COMPLETED\x10\x0c\x12#\n\x1f\x45VENT_TYPE_ACTIVITY_TASK_FAILED\x10\r\x12&\n"EVENT_TYPE_ACTIVITY_TASK_TIMED_OUT\x10\x0e\x12-\n)EVENT_TYPE_ACTIVITY_TASK_CANCEL_REQUESTED\x10\x0f\x12%\n!EVENT_TYPE_ACTIVITY_TASK_CANCELED\x10\x10\x12\x1c\n\x18\x45VENT_TYPE_TIMER_STARTED\x10\x11\x12\x1a\n\x16\x45VENT_TYPE_TIMER_FIRED\x10\x12\x12\x1d\n\x19\x45VENT_TYPE_TIMER_CANCELED\x10\x13\x12\x32\n.EVENT_TYPE_WORKFLOW_EXECUTION_CANCEL_REQUESTED\x10\x14\x12*\n&EVENT_TYPE_WORKFLOW_EXECUTION_CANCELED\x10\x15\x12\x43\n?EVENT_TYPE_REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED\x10\x16\x12@\n\n\x1b\x66irst_workflow_task_backoff\x18\x15 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x16 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x17 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x45\n\x16prev_auto_reset_points\x18\x18 \x01(\x0b\x32%.temporal.api.workflow.v1.ResetPoints\x12.\n\x06header\x18\x19 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12&\n\x1eparent_initiated_event_version\x18\x1a \x01(\x03\x12\x13\n\x0bworkflow_id\x18\x1c \x01(\t\x12H\n\x14source_version_stamp\x18\x1d \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12>\n\x14\x63ompletion_callbacks\x18\x1e \x03(\x0b\x32 .temporal.api.common.v1.Callback\x12J\n\x17root_workflow_execution\x18\x1f \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1a\n\x12inherited_build_id\x18 \x01(\t"\xa5\x01\n)WorkflowExecutionCompletedEventAttributes\x12\x30\n\x06result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x1c\n\x14new_execution_run_id\x18\x03 \x01(\t"\xdb\x01\n&WorkflowExecutionFailedEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x36\n\x0bretry_state\x18\x02 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03\x12\x1c\n\x14new_execution_run_id\x18\x04 \x01(\t"\x80\x01\n(WorkflowExecutionTimedOutEventAttributes\x12\x36\n\x0bretry_state\x18\x01 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState\x12\x1c\n\x14new_execution_run_id\x18\x02 \x01(\t"\xc0\x06\n.WorkflowExecutionContinuedAsNewEventAttributes\x12\x1c\n\x14new_execution_run_id\x18\x01 \x01(\t\x12;\n\rworkflow_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x03 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x37\n\x14workflow_run_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n workflow_task_completed_event_id\x18\x07 \x01(\x03\x12\x39\n\x16\x62\x61\x63koff_start_interval\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12@\n\tinitiator\x18\t \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12\x31\n\x07\x66\x61ilure\x18\n \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0b \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12.\n\x06header\x18\x0c \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12*\n\x04memo\x18\r \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0e \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x18\n\x10inherit_build_id\x18\x0f \x01(\x08"\xac\x01\n$WorkflowTaskScheduledEventAttributes\x12\x38\n\ntask_queue\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x39\n\x16start_to_close_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07\x61ttempt\x18\x03 \x01(\x05"\x8a\x02\n"WorkflowTaskStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x1f\n\x17suggest_continue_as_new\x18\x04 \x01(\x08\x12\x1a\n\x12history_size_bytes\x18\x05 \x01(\x03\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12!\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03"\xda\x02\n$WorkflowTaskCompletedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x17\n\x0f\x62inary_checksum\x18\x04 \x01(\t\x12\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12H\n\x0csdk_metadata\x18\x06 \x01(\x0b\x32\x32.temporal.api.sdk.v1.WorkflowTaskCompletedMetadata\x12\x43\n\x11metering_metadata\x18\r \x01(\x0b\x32(.temporal.api.common.v1.MeteringMetadata"\x95\x01\n#WorkflowTaskTimedOutEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12\x38\n\x0ctimeout_type\x18\x03 \x01(\x0e\x32".temporal.api.enums.v1.TimeoutType"\xff\x02\n!WorkflowTaskFailedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12=\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCause\x12\x31\n\x07\x66\x61ilure\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x13\n\x0b\x62\x61se_run_id\x18\x06 \x01(\t\x12\x12\n\nnew_run_id\x18\x07 \x01(\t\x12\x1a\n\x12\x66ork_event_version\x18\x08 \x01(\x03\x12\x17\n\x0f\x62inary_checksum\x18\t \x01(\t\x12\x42\n\x0eworker_version\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\x8a\x05\n$ActivityTaskScheduledEventAttributes\x12\x13\n\x0b\x61\x63tivity_id\x18\x01 \x01(\t\x12;\n\ractivity_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12\x38\n\ntask_queue\x18\x04 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12.\n\x06header\x18\x05 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12/\n\x05input\x18\x06 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\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(\n workflow_task_completed_event_id\x18\x0b \x01(\x03\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x1d\n\x15use_workflow_build_id\x18\r \x01(\x08J\x04\x08\x03\x10\x04"\x96\x02\n"ActivityTaskStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x05\x12\x36\n\x0clast_failure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12!\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03"\xe4\x01\n$ActivityTaskCompletedEventAttributes\x12\x30\n\x06result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1a\n\x12scheduled_event_id\x18\x02 \x01(\x03\x12\x18\n\x10started_event_id\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\x9a\x02\n!ActivityTaskFailedEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1a\n\x12scheduled_event_id\x18\x02 \x01(\x03\x12\x18\n\x10started_event_id\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x36\n\x0bretry_state\x18\x05 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\xc6\x01\n#ActivityTaskTimedOutEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1a\n\x12scheduled_event_id\x18\x02 \x01(\x03\x12\x18\n\x10started_event_id\x18\x03 \x01(\x03\x12\x36\n\x0bretry_state\x18\x04 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState"r\n*ActivityTaskCancelRequestedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03"\x8e\x02\n#ActivityTaskCanceledEventAttributes\x12\x31\n\x07\x64\x65tails\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12(\n latest_cancel_requested_event_id\x18\x02 \x01(\x03\x12\x1a\n\x12scheduled_event_id\x18\x03 \x01(\x03\x12\x18\n\x10started_event_id\x18\x04 \x01(\x03\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\x93\x01\n\x1bTimerStartedEventAttributes\x12\x10\n\x08timer_id\x18\x01 \x01(\t\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03"G\n\x19TimerFiredEventAttributes\x12\x10\n\x08timer_id\x18\x01 \x01(\t\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03"\x86\x01\n\x1cTimerCanceledEventAttributes\x12\x10\n\x08timer_id\x18\x01 \x01(\t\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t"\xc7\x01\n/WorkflowExecutionCancelRequestedEventAttributes\x12\r\n\x05\x63\x61use\x18\x01 \x01(\t\x12#\n\x1b\x65xternal_initiated_event_id\x18\x02 \x01(\x03\x12N\n\x1b\x65xternal_workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x04 \x01(\t"\x87\x01\n(WorkflowExecutionCanceledEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads"\xe9\x02\n\x1dMarkerRecordedEventAttributes\x12\x13\n\x0bmarker_name\x18\x01 \x01(\t\x12T\n\x07\x64\x65tails\x18\x02 \x03(\x0b\x32\x43.temporal.api.history.v1.MarkerRecordedEventAttributes.DetailsEntry\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03\x12.\n\x06header\x18\x04 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x1aP\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads:\x02\x38\x01"\xa7\x02\n(WorkflowExecutionSignaledEventAttributes\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12/\n\x05input\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12.\n\x06header\x18\x04 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12#\n\x1bskip_generate_workflow_task\x18\x05 \x01(\x08\x12N\n\x1b\x65xternal_workflow_execution\x18\x06 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\x81\x01\n*WorkflowExecutionTerminatedEventAttributes\x12\x0e\n\x06reason\x18\x01 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t"\x98\x02\n>RequestCancelExternalWorkflowExecutionInitiatedEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0f\n\x07\x63ontrol\x18\x04 \x01(\t\x12\x1b\n\x13\x63hild_workflow_only\x18\x05 \x01(\x08\x12\x0e\n\x06reason\x18\x06 \x01(\t"\xd6\x02\n;RequestCancelExternalWorkflowExecutionFailedEventAttributes\x12P\n\x05\x63\x61use\x18\x01 \x01(\x0e\x32\x41.temporal.api.enums.v1.CancelExternalWorkflowExecutionFailedCause\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x11\n\tnamespace\x18\x03 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x04 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x0f\n\x07\x63ontrol\x18\x06 \x01(\t"\xc5\x01\n7ExternalWorkflowExecutionCancelRequestedEventAttributes\x12\x1a\n\x12initiated_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x04 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\xf7\x02\n7SignalExternalWorkflowExecutionInitiatedEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\t \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12/\n\x05input\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x0f\n\x07\x63ontrol\x18\x06 \x01(\t\x12\x1b\n\x13\x63hild_workflow_only\x18\x07 \x01(\x08\x12.\n\x06header\x18\x08 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header"\xcf\x02\n4SignalExternalWorkflowExecutionFailedEventAttributes\x12P\n\x05\x63\x61use\x18\x01 \x01(\x0e\x32\x41.temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x11\n\tnamespace\x18\x03 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x04 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x0f\n\x07\x63ontrol\x18\x06 \x01(\t"\xcf\x01\n0ExternalWorkflowExecutionSignaledEventAttributes\x12\x1a\n\x12initiated_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x05 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0f\n\x07\x63ontrol\x18\x04 \x01(\t"\x9e\x01\n-UpsertWorkflowSearchAttributesEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x43\n\x11search_attributes\x18\x02 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes"\x8a\x01\n)WorkflowPropertiesModifiedEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x33\n\rupserted_memo\x18\x02 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo"\xac\x07\n3StartChildWorkflowExecutionInitiatedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x12 \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\x45\n\x13parent_close_policy\x18\t \x01(\x0e\x32(.temporal.api.enums.v1.ParentClosePolicy\x12\x0f\n\x07\x63ontrol\x18\n \x01(\t\x12(\n workflow_task_completed_event_id\x18\x0b \x01(\x03\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\x12.\n\x06header\x18\x0f \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12*\n\x04memo\x18\x10 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x11 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x18\n\x10inherit_build_id\x18\x13 \x01(\x08"\xd2\x02\n0StartChildWorkflowExecutionFailedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x08 \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\x12L\n\x05\x63\x61use\x18\x04 \x01(\x0e\x32=.temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause\x12\x0f\n\x07\x63ontrol\x18\x05 \x01(\t\x12\x1a\n\x12initiated_event_id\x18\x06 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x07 \x01(\x03"\xa7\x02\n,ChildWorkflowExecutionStartedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x06 \x01(\t\x12\x1a\n\x12initiated_event_id\x18\x02 \x01(\x03\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12.\n\x06header\x18\x05 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header"\xc5\x02\n.ChildWorkflowExecutionCompletedEventAttributes\x12\x30\n\x06result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x18\n\x10started_event_id\x18\x06 \x01(\x03"\xfb\x02\n+ChildWorkflowExecutionFailedEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x08 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x18\n\x10started_event_id\x18\x06 \x01(\x03\x12\x36\n\x0bretry_state\x18\x07 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState"\xc5\x02\n-ChildWorkflowExecutionCanceledEventAttributes\x12\x31\n\x07\x64\x65tails\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x18\n\x10started_event_id\x18\x06 \x01(\x03"\xca\x02\n-ChildWorkflowExecutionTimedOutEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\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\x1a\n\x12initiated_event_id\x18\x04 \x01(\x03\x12\x18\n\x10started_event_id\x18\x05 \x01(\x03\x12\x36\n\x0bretry_state\x18\x06 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState"\x94\x02\n/ChildWorkflowExecutionTerminatedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x06 \x01(\t\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\x1a\n\x12initiated_event_id\x18\x04 \x01(\x03\x12\x18\n\x10started_event_id\x18\x05 \x01(\x03"\xc0\x02\n3WorkflowPropertiesModifiedExternallyEventAttributes\x12\x16\n\x0enew_task_queue\x18\x01 \x01(\t\x12<\n\x19new_workflow_task_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12;\n\x18new_workflow_run_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x41\n\x1enew_workflow_execution_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x33\n\rupserted_memo\x18\x05 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo"\x90\x01\n3ActivityPropertiesModifiedExternallyEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12=\n\x10new_retry_policy\x18\x02 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy"\xdc\x01\n.WorkflowExecutionUpdateAcceptedEventAttributes\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12#\n\x1b\x61\x63\x63\x65pted_request_message_id\x18\x02 \x01(\t\x12,\n$accepted_request_sequencing_event_id\x18\x03 \x01(\x03\x12\x39\n\x10\x61\x63\x63\x65pted_request\x18\x04 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request"\xaa\x01\n/WorkflowExecutionUpdateCompletedEventAttributes\x12*\n\x04meta\x18\x01 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x19\n\x11\x61\x63\x63\x65pted_event_id\x18\x03 \x01(\x03\x12\x30\n\x07outcome\x18\x02 \x01(\x0b\x32\x1f.temporal.api.update.v1.Outcome"\x8f\x02\n.WorkflowExecutionUpdateRejectedEventAttributes\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12#\n\x1brejected_request_message_id\x18\x02 \x01(\t\x12,\n$rejected_request_sequencing_event_id\x18\x03 \x01(\x03\x12\x39\n\x10rejected_request\x18\x04 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xa4\x01\n.WorkflowExecutionUpdateAdmittedEventAttributes\x12\x30\n\x07request\x18\x01 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request\x12@\n\x06origin\x18\x02 \x01(\x0e\x32\x30.temporal.api.enums.v1.UpdateAdmittedEventOrigin"\xa6\x03\n&NexusOperationScheduledEventAttributes\x12\x10\n\x08\x65ndpoint\x18\x01 \x01(\t\x12\x0f\n\x07service\x18\x02 \x01(\t\x12\x11\n\toperation\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x66\n\x0cnexus_header\x18\x06 \x03(\x0b\x32P.temporal.api.history.v1.NexusOperationScheduledEventAttributes.NexusHeaderEntry\x12(\n workflow_task_completed_event_id\x18\x07 \x01(\x03\x12\x12\n\nrequest_id\x18\x08 \x01(\t\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"X\n$NexusOperationStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x14\n\x0coperation_id\x18\x03 \x01(\t"u\n&NexusOperationCompletedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12/\n\x06result\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload"t\n#NexusOperationFailedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"v\n%NexusOperationTimedOutEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"v\n%NexusOperationCanceledEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"t\n,NexusOperationCancelRequestedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03"\xe5\x37\n\x0cHistoryEvent\x12\x10\n\x08\x65vent_id\x18\x01 \x01(\x03\x12.\n\nevent_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\nevent_type\x18\x03 \x01(\x0e\x32 .temporal.api.enums.v1.EventType\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12\x0f\n\x07task_id\x18\x05 \x01(\x03\x12\x1a\n\x11worker_may_ignore\x18\xac\x02 \x01(\x08\x12\x39\n\ruser_metadata\x18\xad\x02 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12w\n+workflow_execution_started_event_attributes\x18\x06 \x01(\x0b\x32@.temporal.api.history.v1.WorkflowExecutionStartedEventAttributesH\x00\x12{\n-workflow_execution_completed_event_attributes\x18\x07 \x01(\x0b\x32\x42.temporal.api.history.v1.WorkflowExecutionCompletedEventAttributesH\x00\x12u\n*workflow_execution_failed_event_attributes\x18\x08 \x01(\x0b\x32?.temporal.api.history.v1.WorkflowExecutionFailedEventAttributesH\x00\x12z\n-workflow_execution_timed_out_event_attributes\x18\t \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionTimedOutEventAttributesH\x00\x12q\n(workflow_task_scheduled_event_attributes\x18\n \x01(\x0b\x32=.temporal.api.history.v1.WorkflowTaskScheduledEventAttributesH\x00\x12m\n&workflow_task_started_event_attributes\x18\x0b \x01(\x0b\x32;.temporal.api.history.v1.WorkflowTaskStartedEventAttributesH\x00\x12q\n(workflow_task_completed_event_attributes\x18\x0c \x01(\x0b\x32=.temporal.api.history.v1.WorkflowTaskCompletedEventAttributesH\x00\x12p\n(workflow_task_timed_out_event_attributes\x18\r \x01(\x0b\x32<.temporal.api.history.v1.WorkflowTaskTimedOutEventAttributesH\x00\x12k\n%workflow_task_failed_event_attributes\x18\x0e \x01(\x0b\x32:.temporal.api.history.v1.WorkflowTaskFailedEventAttributesH\x00\x12q\n(activity_task_scheduled_event_attributes\x18\x0f \x01(\x0b\x32=.temporal.api.history.v1.ActivityTaskScheduledEventAttributesH\x00\x12m\n&activity_task_started_event_attributes\x18\x10 \x01(\x0b\x32;.temporal.api.history.v1.ActivityTaskStartedEventAttributesH\x00\x12q\n(activity_task_completed_event_attributes\x18\x11 \x01(\x0b\x32=.temporal.api.history.v1.ActivityTaskCompletedEventAttributesH\x00\x12k\n%activity_task_failed_event_attributes\x18\x12 \x01(\x0b\x32:.temporal.api.history.v1.ActivityTaskFailedEventAttributesH\x00\x12p\n(activity_task_timed_out_event_attributes\x18\x13 \x01(\x0b\x32<.temporal.api.history.v1.ActivityTaskTimedOutEventAttributesH\x00\x12^\n\x1etimer_started_event_attributes\x18\x14 \x01(\x0b\x32\x34.temporal.api.history.v1.TimerStartedEventAttributesH\x00\x12Z\n\x1ctimer_fired_event_attributes\x18\x15 \x01(\x0b\x32\x32.temporal.api.history.v1.TimerFiredEventAttributesH\x00\x12~\n/activity_task_cancel_requested_event_attributes\x18\x16 \x01(\x0b\x32\x43.temporal.api.history.v1.ActivityTaskCancelRequestedEventAttributesH\x00\x12o\n\'activity_task_canceled_event_attributes\x18\x17 \x01(\x0b\x32<.temporal.api.history.v1.ActivityTaskCanceledEventAttributesH\x00\x12`\n\x1ftimer_canceled_event_attributes\x18\x18 \x01(\x0b\x32\x35.temporal.api.history.v1.TimerCanceledEventAttributesH\x00\x12\x62\n marker_recorded_event_attributes\x18\x19 \x01(\x0b\x32\x36.temporal.api.history.v1.MarkerRecordedEventAttributesH\x00\x12y\n,workflow_execution_signaled_event_attributes\x18\x1a \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionSignaledEventAttributesH\x00\x12}\n.workflow_execution_terminated_event_attributes\x18\x1b \x01(\x0b\x32\x43.temporal.api.history.v1.WorkflowExecutionTerminatedEventAttributesH\x00\x12\x88\x01\n4workflow_execution_cancel_requested_event_attributes\x18\x1c \x01(\x0b\x32H.temporal.api.history.v1.WorkflowExecutionCancelRequestedEventAttributesH\x00\x12y\n,workflow_execution_canceled_event_attributes\x18\x1d \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionCanceledEventAttributesH\x00\x12\xa8\x01\nErequest_cancel_external_workflow_execution_initiated_event_attributes\x18\x1e \x01(\x0b\x32W.temporal.api.history.v1.RequestCancelExternalWorkflowExecutionInitiatedEventAttributesH\x00\x12\xa2\x01\nBrequest_cancel_external_workflow_execution_failed_event_attributes\x18\x1f \x01(\x0b\x32T.temporal.api.history.v1.RequestCancelExternalWorkflowExecutionFailedEventAttributesH\x00\x12\x99\x01\n=external_workflow_execution_cancel_requested_event_attributes\x18 \x01(\x0b\x32P.temporal.api.history.v1.ExternalWorkflowExecutionCancelRequestedEventAttributesH\x00\x12\x87\x01\n4workflow_execution_continued_as_new_event_attributes\x18! \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionContinuedAsNewEventAttributesH\x00\x12\x91\x01\n9start_child_workflow_execution_initiated_event_attributes\x18" \x01(\x0b\x32L.temporal.api.history.v1.StartChildWorkflowExecutionInitiatedEventAttributesH\x00\x12\x8b\x01\n6start_child_workflow_execution_failed_event_attributes\x18# \x01(\x0b\x32I.temporal.api.history.v1.StartChildWorkflowExecutionFailedEventAttributesH\x00\x12\x82\x01\n1child_workflow_execution_started_event_attributes\x18$ \x01(\x0b\x32\x45.temporal.api.history.v1.ChildWorkflowExecutionStartedEventAttributesH\x00\x12\x86\x01\n3child_workflow_execution_completed_event_attributes\x18% \x01(\x0b\x32G.temporal.api.history.v1.ChildWorkflowExecutionCompletedEventAttributesH\x00\x12\x80\x01\n0child_workflow_execution_failed_event_attributes\x18& \x01(\x0b\x32\x44.temporal.api.history.v1.ChildWorkflowExecutionFailedEventAttributesH\x00\x12\x84\x01\n2child_workflow_execution_canceled_event_attributes\x18\' \x01(\x0b\x32\x46.temporal.api.history.v1.ChildWorkflowExecutionCanceledEventAttributesH\x00\x12\x85\x01\n3child_workflow_execution_timed_out_event_attributes\x18( \x01(\x0b\x32\x46.temporal.api.history.v1.ChildWorkflowExecutionTimedOutEventAttributesH\x00\x12\x88\x01\n4child_workflow_execution_terminated_event_attributes\x18) \x01(\x0b\x32H.temporal.api.history.v1.ChildWorkflowExecutionTerminatedEventAttributesH\x00\x12\x99\x01\n=signal_external_workflow_execution_initiated_event_attributes\x18* \x01(\x0b\x32P.temporal.api.history.v1.SignalExternalWorkflowExecutionInitiatedEventAttributesH\x00\x12\x93\x01\n:signal_external_workflow_execution_failed_event_attributes\x18+ \x01(\x0b\x32M.temporal.api.history.v1.SignalExternalWorkflowExecutionFailedEventAttributesH\x00\x12\x8a\x01\n5external_workflow_execution_signaled_event_attributes\x18, \x01(\x0b\x32I.temporal.api.history.v1.ExternalWorkflowExecutionSignaledEventAttributesH\x00\x12\x84\x01\n2upsert_workflow_search_attributes_event_attributes\x18- \x01(\x0b\x32\x46.temporal.api.history.v1.UpsertWorkflowSearchAttributesEventAttributesH\x00\x12\x86\x01\n3workflow_execution_update_accepted_event_attributes\x18. \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionUpdateAcceptedEventAttributesH\x00\x12\x86\x01\n3workflow_execution_update_rejected_event_attributes\x18/ \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionUpdateRejectedEventAttributesH\x00\x12\x88\x01\n4workflow_execution_update_completed_event_attributes\x18\x30 \x01(\x0b\x32H.temporal.api.history.v1.WorkflowExecutionUpdateCompletedEventAttributesH\x00\x12\x90\x01\n8workflow_properties_modified_externally_event_attributes\x18\x31 \x01(\x0b\x32L.temporal.api.history.v1.WorkflowPropertiesModifiedExternallyEventAttributesH\x00\x12\x90\x01\n8activity_properties_modified_externally_event_attributes\x18\x32 \x01(\x0b\x32L.temporal.api.history.v1.ActivityPropertiesModifiedExternallyEventAttributesH\x00\x12{\n-workflow_properties_modified_event_attributes\x18\x33 \x01(\x0b\x32\x42.temporal.api.history.v1.WorkflowPropertiesModifiedEventAttributesH\x00\x12\x86\x01\n3workflow_execution_update_admitted_event_attributes\x18\x34 \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionUpdateAdmittedEventAttributesH\x00\x12u\n*nexus_operation_scheduled_event_attributes\x18\x35 \x01(\x0b\x32?.temporal.api.history.v1.NexusOperationScheduledEventAttributesH\x00\x12q\n(nexus_operation_started_event_attributes\x18\x36 \x01(\x0b\x32=.temporal.api.history.v1.NexusOperationStartedEventAttributesH\x00\x12u\n*nexus_operation_completed_event_attributes\x18\x37 \x01(\x0b\x32?.temporal.api.history.v1.NexusOperationCompletedEventAttributesH\x00\x12o\n\'nexus_operation_failed_event_attributes\x18\x38 \x01(\x0b\x32<.temporal.api.history.v1.NexusOperationFailedEventAttributesH\x00\x12s\n)nexus_operation_canceled_event_attributes\x18\x39 \x01(\x0b\x32>.temporal.api.history.v1.NexusOperationCanceledEventAttributesH\x00\x12t\n*nexus_operation_timed_out_event_attributes\x18: \x01(\x0b\x32>.temporal.api.history.v1.NexusOperationTimedOutEventAttributesH\x00\x12\x82\x01\n1nexus_operation_cancel_requested_event_attributes\x18; \x01(\x0b\x32\x45.temporal.api.history.v1.NexusOperationCancelRequestedEventAttributesH\x00\x42\x0c\n\nattributes"@\n\x07History\x12\x35\n\x06\x65vents\x18\x01 \x03(\x0b\x32%.temporal.api.history.v1.HistoryEventB\x8e\x01\n\x1aio.temporal.api.history.v1B\x0cMessageProtoP\x01Z%go.temporal.io/api/history/v1;history\xaa\x02\x19Temporalio.Api.History.V1\xea\x02\x1cTemporalio::Api::History::V1b\x06proto3' + b'\n%temporal/api/history/v1/message.proto\x12\x17temporal.api.history.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&temporal/api/enums/v1/event_type.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a"temporal/api/enums/v1/update.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/taskqueue/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a&temporal/api/workflow/v1/message.proto\x1a\x30temporal/api/sdk/v1/task_complete_metadata.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto"\xf9\x0c\n\'WorkflowExecutionStartedEventAttributes\x12;\n\rworkflow_type\x18\x01 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12!\n\x19parent_workflow_namespace\x18\x02 \x01(\t\x12$\n\x1cparent_workflow_namespace_id\x18\x1b \x01(\t\x12L\n\x19parent_workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12!\n\x19parent_initiated_event_id\x18\x04 \x01(\x03\x12\x38\n\ntask_queue\x18\x05 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x06 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\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"\n\x1a\x63ontinued_execution_run_id\x18\n \x01(\t\x12@\n\tinitiator\x18\x0b \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12;\n\x11\x63ontinued_failure\x18\x0c \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\r \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12!\n\x19original_execution_run_id\x18\x0e \x01(\t\x12\x10\n\x08identity\x18\x0f \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x10 \x01(\t\x12\x39\n\x0cretry_policy\x18\x11 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x0f\n\x07\x61ttempt\x18\x12 \x01(\x05\x12\x46\n"workflow_execution_expiration_time\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rcron_schedule\x18\x14 \x01(\t\x12>\n\x1b\x66irst_workflow_task_backoff\x18\x15 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x16 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x17 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x45\n\x16prev_auto_reset_points\x18\x18 \x01(\x0b\x32%.temporal.api.workflow.v1.ResetPoints\x12.\n\x06header\x18\x19 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12&\n\x1eparent_initiated_event_version\x18\x1a \x01(\x03\x12\x13\n\x0bworkflow_id\x18\x1c \x01(\t\x12H\n\x14source_version_stamp\x18\x1d \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12>\n\x14\x63ompletion_callbacks\x18\x1e \x03(\x0b\x32 .temporal.api.common.v1.Callback\x12J\n\x17root_workflow_execution\x18\x1f \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1a\n\x12inherited_build_id\x18 \x01(\t"\xa5\x01\n)WorkflowExecutionCompletedEventAttributes\x12\x30\n\x06result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x1c\n\x14new_execution_run_id\x18\x03 \x01(\t"\xdb\x01\n&WorkflowExecutionFailedEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x36\n\x0bretry_state\x18\x02 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03\x12\x1c\n\x14new_execution_run_id\x18\x04 \x01(\t"\x80\x01\n(WorkflowExecutionTimedOutEventAttributes\x12\x36\n\x0bretry_state\x18\x01 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState\x12\x1c\n\x14new_execution_run_id\x18\x02 \x01(\t"\xc0\x06\n.WorkflowExecutionContinuedAsNewEventAttributes\x12\x1c\n\x14new_execution_run_id\x18\x01 \x01(\t\x12;\n\rworkflow_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x03 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x37\n\x14workflow_run_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n workflow_task_completed_event_id\x18\x07 \x01(\x03\x12\x39\n\x16\x62\x61\x63koff_start_interval\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12@\n\tinitiator\x18\t \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12\x31\n\x07\x66\x61ilure\x18\n \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0b \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12.\n\x06header\x18\x0c \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12*\n\x04memo\x18\r \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0e \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x18\n\x10inherit_build_id\x18\x0f \x01(\x08"\xac\x01\n$WorkflowTaskScheduledEventAttributes\x12\x38\n\ntask_queue\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12\x39\n\x16start_to_close_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07\x61ttempt\x18\x03 \x01(\x05"\x8a\x02\n"WorkflowTaskStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x1f\n\x17suggest_continue_as_new\x18\x04 \x01(\x08\x12\x1a\n\x12history_size_bytes\x18\x05 \x01(\x03\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12!\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03"\xda\x02\n$WorkflowTaskCompletedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x17\n\x0f\x62inary_checksum\x18\x04 \x01(\t\x12\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12H\n\x0csdk_metadata\x18\x06 \x01(\x0b\x32\x32.temporal.api.sdk.v1.WorkflowTaskCompletedMetadata\x12\x43\n\x11metering_metadata\x18\r \x01(\x0b\x32(.temporal.api.common.v1.MeteringMetadata"\x95\x01\n#WorkflowTaskTimedOutEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12\x38\n\x0ctimeout_type\x18\x03 \x01(\x0e\x32".temporal.api.enums.v1.TimeoutType"\xff\x02\n!WorkflowTaskFailedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12=\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCause\x12\x31\n\x07\x66\x61ilure\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x13\n\x0b\x62\x61se_run_id\x18\x06 \x01(\t\x12\x12\n\nnew_run_id\x18\x07 \x01(\t\x12\x1a\n\x12\x66ork_event_version\x18\x08 \x01(\x03\x12\x17\n\x0f\x62inary_checksum\x18\t \x01(\t\x12\x42\n\x0eworker_version\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\x8a\x05\n$ActivityTaskScheduledEventAttributes\x12\x13\n\x0b\x61\x63tivity_id\x18\x01 \x01(\t\x12;\n\ractivity_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12\x38\n\ntask_queue\x18\x04 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12.\n\x06header\x18\x05 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12/\n\x05input\x18\x06 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\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(\n workflow_task_completed_event_id\x18\x0b \x01(\x03\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x1d\n\x15use_workflow_build_id\x18\r \x01(\x08J\x04\x08\x03\x10\x04"\x96\x02\n"ActivityTaskStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x05\x12\x36\n\x0clast_failure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12!\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03"\xe4\x01\n$ActivityTaskCompletedEventAttributes\x12\x30\n\x06result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1a\n\x12scheduled_event_id\x18\x02 \x01(\x03\x12\x18\n\x10started_event_id\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\x9a\x02\n!ActivityTaskFailedEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1a\n\x12scheduled_event_id\x18\x02 \x01(\x03\x12\x18\n\x10started_event_id\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t\x12\x36\n\x0bretry_state\x18\x05 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\xc6\x01\n#ActivityTaskTimedOutEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1a\n\x12scheduled_event_id\x18\x02 \x01(\x03\x12\x18\n\x10started_event_id\x18\x03 \x01(\x03\x12\x36\n\x0bretry_state\x18\x04 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState"r\n*ActivityTaskCancelRequestedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03"\x8e\x02\n#ActivityTaskCanceledEventAttributes\x12\x31\n\x07\x64\x65tails\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12(\n latest_cancel_requested_event_id\x18\x02 \x01(\x03\x12\x1a\n\x12scheduled_event_id\x18\x03 \x01(\x03\x12\x18\n\x10started_event_id\x18\x04 \x01(\x03\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"\x93\x01\n\x1bTimerStartedEventAttributes\x12\x10\n\x08timer_id\x18\x01 \x01(\t\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03"G\n\x19TimerFiredEventAttributes\x12\x10\n\x08timer_id\x18\x01 \x01(\t\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03"\x86\x01\n\x1cTimerCanceledEventAttributes\x12\x10\n\x08timer_id\x18\x01 \x01(\t\x12\x18\n\x10started_event_id\x18\x02 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t"\xc7\x01\n/WorkflowExecutionCancelRequestedEventAttributes\x12\r\n\x05\x63\x61use\x18\x01 \x01(\t\x12#\n\x1b\x65xternal_initiated_event_id\x18\x02 \x01(\x03\x12N\n\x1b\x65xternal_workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x10\n\x08identity\x18\x04 \x01(\t"\x87\x01\n(WorkflowExecutionCanceledEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads"\xe9\x02\n\x1dMarkerRecordedEventAttributes\x12\x13\n\x0bmarker_name\x18\x01 \x01(\t\x12T\n\x07\x64\x65tails\x18\x02 \x03(\x0b\x32\x43.temporal.api.history.v1.MarkerRecordedEventAttributes.DetailsEntry\x12(\n workflow_task_completed_event_id\x18\x03 \x01(\x03\x12.\n\x06header\x18\x04 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x1aP\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads:\x02\x38\x01"\xa7\x02\n(WorkflowExecutionSignaledEventAttributes\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12/\n\x05input\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t\x12.\n\x06header\x18\x04 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12#\n\x1bskip_generate_workflow_task\x18\x05 \x01(\x08\x12N\n\x1b\x65xternal_workflow_execution\x18\x06 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\x81\x01\n*WorkflowExecutionTerminatedEventAttributes\x12\x0e\n\x06reason\x18\x01 \x01(\t\x12\x31\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x10\n\x08identity\x18\x03 \x01(\t"\x98\x02\n>RequestCancelExternalWorkflowExecutionInitiatedEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0f\n\x07\x63ontrol\x18\x04 \x01(\t\x12\x1b\n\x13\x63hild_workflow_only\x18\x05 \x01(\x08\x12\x0e\n\x06reason\x18\x06 \x01(\t"\xd6\x02\n;RequestCancelExternalWorkflowExecutionFailedEventAttributes\x12P\n\x05\x63\x61use\x18\x01 \x01(\x0e\x32\x41.temporal.api.enums.v1.CancelExternalWorkflowExecutionFailedCause\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x11\n\tnamespace\x18\x03 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x04 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x0f\n\x07\x63ontrol\x18\x06 \x01(\t"\xc5\x01\n7ExternalWorkflowExecutionCancelRequestedEventAttributes\x12\x1a\n\x12initiated_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x04 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"\xf7\x02\n7SignalExternalWorkflowExecutionInitiatedEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\t \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12/\n\x05input\x18\x05 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x0f\n\x07\x63ontrol\x18\x06 \x01(\t\x12\x1b\n\x13\x63hild_workflow_only\x18\x07 \x01(\x08\x12.\n\x06header\x18\x08 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header"\xcf\x02\n4SignalExternalWorkflowExecutionFailedEventAttributes\x12P\n\x05\x63\x61use\x18\x01 \x01(\x0e\x32\x41.temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x11\n\tnamespace\x18\x03 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x04 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x0f\n\x07\x63ontrol\x18\x06 \x01(\t"\xcf\x01\n0ExternalWorkflowExecutionSignaledEventAttributes\x12\x1a\n\x12initiated_event_id\x18\x01 \x01(\x03\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x05 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x0f\n\x07\x63ontrol\x18\x04 \x01(\t"\x9e\x01\n-UpsertWorkflowSearchAttributesEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x43\n\x11search_attributes\x18\x02 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes"\x8a\x01\n)WorkflowPropertiesModifiedEventAttributes\x12(\n workflow_task_completed_event_id\x18\x01 \x01(\x03\x12\x33\n\rupserted_memo\x18\x02 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo"\xac\x07\n3StartChildWorkflowExecutionInitiatedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x12 \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\x45\n\x13parent_close_policy\x18\t \x01(\x0e\x32(.temporal.api.enums.v1.ParentClosePolicy\x12\x0f\n\x07\x63ontrol\x18\n \x01(\t\x12(\n workflow_task_completed_event_id\x18\x0b \x01(\x03\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\x12.\n\x06header\x18\x0f \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12*\n\x04memo\x18\x10 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x11 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x18\n\x10inherit_build_id\x18\x13 \x01(\x08"\xd2\x02\n0StartChildWorkflowExecutionFailedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x08 \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\x12L\n\x05\x63\x61use\x18\x04 \x01(\x0e\x32=.temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause\x12\x0f\n\x07\x63ontrol\x18\x05 \x01(\t\x12\x1a\n\x12initiated_event_id\x18\x06 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x07 \x01(\x03"\xa7\x02\n,ChildWorkflowExecutionStartedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x06 \x01(\t\x12\x1a\n\x12initiated_event_id\x18\x02 \x01(\x03\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12.\n\x06header\x18\x05 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header"\xc5\x02\n.ChildWorkflowExecutionCompletedEventAttributes\x12\x30\n\x06result\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x18\n\x10started_event_id\x18\x06 \x01(\x03"\xfb\x02\n+ChildWorkflowExecutionFailedEventAttributes\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x08 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x18\n\x10started_event_id\x18\x06 \x01(\x03\x12\x36\n\x0bretry_state\x18\x07 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState"\xc5\x02\n-ChildWorkflowExecutionCanceledEventAttributes\x12\x31\n\x07\x64\x65tails\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12;\n\rworkflow_type\x18\x04 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x1a\n\x12initiated_event_id\x18\x05 \x01(\x03\x12\x18\n\x10started_event_id\x18\x06 \x01(\x03"\xca\x02\n-ChildWorkflowExecutionTimedOutEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x07 \x01(\t\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\x1a\n\x12initiated_event_id\x18\x04 \x01(\x03\x12\x18\n\x10started_event_id\x18\x05 \x01(\x03\x12\x36\n\x0bretry_state\x18\x06 \x01(\x0e\x32!.temporal.api.enums.v1.RetryState"\x94\x02\n/ChildWorkflowExecutionTerminatedEventAttributes\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x14\n\x0cnamespace_id\x18\x06 \x01(\t\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\x1a\n\x12initiated_event_id\x18\x04 \x01(\x03\x12\x18\n\x10started_event_id\x18\x05 \x01(\x03"\xc0\x02\n3WorkflowPropertiesModifiedExternallyEventAttributes\x12\x16\n\x0enew_task_queue\x18\x01 \x01(\t\x12<\n\x19new_workflow_task_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12;\n\x18new_workflow_run_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x41\n\x1enew_workflow_execution_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x33\n\rupserted_memo\x18\x05 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo"\x90\x01\n3ActivityPropertiesModifiedExternallyEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12=\n\x10new_retry_policy\x18\x02 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy"\xdc\x01\n.WorkflowExecutionUpdateAcceptedEventAttributes\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12#\n\x1b\x61\x63\x63\x65pted_request_message_id\x18\x02 \x01(\t\x12,\n$accepted_request_sequencing_event_id\x18\x03 \x01(\x03\x12\x39\n\x10\x61\x63\x63\x65pted_request\x18\x04 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request"\xaa\x01\n/WorkflowExecutionUpdateCompletedEventAttributes\x12*\n\x04meta\x18\x01 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x19\n\x11\x61\x63\x63\x65pted_event_id\x18\x03 \x01(\x03\x12\x30\n\x07outcome\x18\x02 \x01(\x0b\x32\x1f.temporal.api.update.v1.Outcome"\x8f\x02\n.WorkflowExecutionUpdateRejectedEventAttributes\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12#\n\x1brejected_request_message_id\x18\x02 \x01(\t\x12,\n$rejected_request_sequencing_event_id\x18\x03 \x01(\x03\x12\x39\n\x10rejected_request\x18\x04 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request\x12\x31\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xa4\x01\n.WorkflowExecutionUpdateAdmittedEventAttributes\x12\x30\n\x07request\x18\x01 \x01(\x0b\x32\x1f.temporal.api.update.v1.Request\x12@\n\x06origin\x18\x02 \x01(\x0e\x32\x30.temporal.api.enums.v1.UpdateAdmittedEventOrigin"\xbb\x03\n&NexusOperationScheduledEventAttributes\x12\x10\n\x08\x65ndpoint\x18\x01 \x01(\t\x12\x0f\n\x07service\x18\x02 \x01(\t\x12\x11\n\toperation\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x66\n\x0cnexus_header\x18\x06 \x03(\x0b\x32P.temporal.api.history.v1.NexusOperationScheduledEventAttributes.NexusHeaderEntry\x12(\n workflow_task_completed_event_id\x18\x07 \x01(\x03\x12\x12\n\nrequest_id\x18\x08 \x01(\t\x12\x13\n\x0b\x65ndpoint_id\x18\t \x01(\t\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"l\n$NexusOperationStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x14\n\x0coperation_id\x18\x03 \x01(\t\x12\x12\n\nrequest_id\x18\x04 \x01(\t"\x89\x01\n&NexusOperationCompletedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12/\n\x06result\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x12\n\nrequest_id\x18\x03 \x01(\t"\x88\x01\n#NexusOperationFailedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x12\n\nrequest_id\x18\x03 \x01(\t"\x8a\x01\n%NexusOperationTimedOutEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x12\n\nrequest_id\x18\x03 \x01(\t"\x8a\x01\n%NexusOperationCanceledEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x12\n\nrequest_id\x18\x03 \x01(\t"t\n,NexusOperationCancelRequestedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03"\x93\x38\n\x0cHistoryEvent\x12\x10\n\x08\x65vent_id\x18\x01 \x01(\x03\x12.\n\nevent_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\nevent_type\x18\x03 \x01(\x0e\x32 .temporal.api.enums.v1.EventType\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12\x0f\n\x07task_id\x18\x05 \x01(\x03\x12\x1a\n\x11worker_may_ignore\x18\xac\x02 \x01(\x08\x12\x39\n\ruser_metadata\x18\xad\x02 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12,\n\x05links\x18\xae\x02 \x03(\x0b\x32\x1c.temporal.api.common.v1.Link\x12w\n+workflow_execution_started_event_attributes\x18\x06 \x01(\x0b\x32@.temporal.api.history.v1.WorkflowExecutionStartedEventAttributesH\x00\x12{\n-workflow_execution_completed_event_attributes\x18\x07 \x01(\x0b\x32\x42.temporal.api.history.v1.WorkflowExecutionCompletedEventAttributesH\x00\x12u\n*workflow_execution_failed_event_attributes\x18\x08 \x01(\x0b\x32?.temporal.api.history.v1.WorkflowExecutionFailedEventAttributesH\x00\x12z\n-workflow_execution_timed_out_event_attributes\x18\t \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionTimedOutEventAttributesH\x00\x12q\n(workflow_task_scheduled_event_attributes\x18\n \x01(\x0b\x32=.temporal.api.history.v1.WorkflowTaskScheduledEventAttributesH\x00\x12m\n&workflow_task_started_event_attributes\x18\x0b \x01(\x0b\x32;.temporal.api.history.v1.WorkflowTaskStartedEventAttributesH\x00\x12q\n(workflow_task_completed_event_attributes\x18\x0c \x01(\x0b\x32=.temporal.api.history.v1.WorkflowTaskCompletedEventAttributesH\x00\x12p\n(workflow_task_timed_out_event_attributes\x18\r \x01(\x0b\x32<.temporal.api.history.v1.WorkflowTaskTimedOutEventAttributesH\x00\x12k\n%workflow_task_failed_event_attributes\x18\x0e \x01(\x0b\x32:.temporal.api.history.v1.WorkflowTaskFailedEventAttributesH\x00\x12q\n(activity_task_scheduled_event_attributes\x18\x0f \x01(\x0b\x32=.temporal.api.history.v1.ActivityTaskScheduledEventAttributesH\x00\x12m\n&activity_task_started_event_attributes\x18\x10 \x01(\x0b\x32;.temporal.api.history.v1.ActivityTaskStartedEventAttributesH\x00\x12q\n(activity_task_completed_event_attributes\x18\x11 \x01(\x0b\x32=.temporal.api.history.v1.ActivityTaskCompletedEventAttributesH\x00\x12k\n%activity_task_failed_event_attributes\x18\x12 \x01(\x0b\x32:.temporal.api.history.v1.ActivityTaskFailedEventAttributesH\x00\x12p\n(activity_task_timed_out_event_attributes\x18\x13 \x01(\x0b\x32<.temporal.api.history.v1.ActivityTaskTimedOutEventAttributesH\x00\x12^\n\x1etimer_started_event_attributes\x18\x14 \x01(\x0b\x32\x34.temporal.api.history.v1.TimerStartedEventAttributesH\x00\x12Z\n\x1ctimer_fired_event_attributes\x18\x15 \x01(\x0b\x32\x32.temporal.api.history.v1.TimerFiredEventAttributesH\x00\x12~\n/activity_task_cancel_requested_event_attributes\x18\x16 \x01(\x0b\x32\x43.temporal.api.history.v1.ActivityTaskCancelRequestedEventAttributesH\x00\x12o\n\'activity_task_canceled_event_attributes\x18\x17 \x01(\x0b\x32<.temporal.api.history.v1.ActivityTaskCanceledEventAttributesH\x00\x12`\n\x1ftimer_canceled_event_attributes\x18\x18 \x01(\x0b\x32\x35.temporal.api.history.v1.TimerCanceledEventAttributesH\x00\x12\x62\n marker_recorded_event_attributes\x18\x19 \x01(\x0b\x32\x36.temporal.api.history.v1.MarkerRecordedEventAttributesH\x00\x12y\n,workflow_execution_signaled_event_attributes\x18\x1a \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionSignaledEventAttributesH\x00\x12}\n.workflow_execution_terminated_event_attributes\x18\x1b \x01(\x0b\x32\x43.temporal.api.history.v1.WorkflowExecutionTerminatedEventAttributesH\x00\x12\x88\x01\n4workflow_execution_cancel_requested_event_attributes\x18\x1c \x01(\x0b\x32H.temporal.api.history.v1.WorkflowExecutionCancelRequestedEventAttributesH\x00\x12y\n,workflow_execution_canceled_event_attributes\x18\x1d \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionCanceledEventAttributesH\x00\x12\xa8\x01\nErequest_cancel_external_workflow_execution_initiated_event_attributes\x18\x1e \x01(\x0b\x32W.temporal.api.history.v1.RequestCancelExternalWorkflowExecutionInitiatedEventAttributesH\x00\x12\xa2\x01\nBrequest_cancel_external_workflow_execution_failed_event_attributes\x18\x1f \x01(\x0b\x32T.temporal.api.history.v1.RequestCancelExternalWorkflowExecutionFailedEventAttributesH\x00\x12\x99\x01\n=external_workflow_execution_cancel_requested_event_attributes\x18 \x01(\x0b\x32P.temporal.api.history.v1.ExternalWorkflowExecutionCancelRequestedEventAttributesH\x00\x12\x87\x01\n4workflow_execution_continued_as_new_event_attributes\x18! \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionContinuedAsNewEventAttributesH\x00\x12\x91\x01\n9start_child_workflow_execution_initiated_event_attributes\x18" \x01(\x0b\x32L.temporal.api.history.v1.StartChildWorkflowExecutionInitiatedEventAttributesH\x00\x12\x8b\x01\n6start_child_workflow_execution_failed_event_attributes\x18# \x01(\x0b\x32I.temporal.api.history.v1.StartChildWorkflowExecutionFailedEventAttributesH\x00\x12\x82\x01\n1child_workflow_execution_started_event_attributes\x18$ \x01(\x0b\x32\x45.temporal.api.history.v1.ChildWorkflowExecutionStartedEventAttributesH\x00\x12\x86\x01\n3child_workflow_execution_completed_event_attributes\x18% \x01(\x0b\x32G.temporal.api.history.v1.ChildWorkflowExecutionCompletedEventAttributesH\x00\x12\x80\x01\n0child_workflow_execution_failed_event_attributes\x18& \x01(\x0b\x32\x44.temporal.api.history.v1.ChildWorkflowExecutionFailedEventAttributesH\x00\x12\x84\x01\n2child_workflow_execution_canceled_event_attributes\x18\' \x01(\x0b\x32\x46.temporal.api.history.v1.ChildWorkflowExecutionCanceledEventAttributesH\x00\x12\x85\x01\n3child_workflow_execution_timed_out_event_attributes\x18( \x01(\x0b\x32\x46.temporal.api.history.v1.ChildWorkflowExecutionTimedOutEventAttributesH\x00\x12\x88\x01\n4child_workflow_execution_terminated_event_attributes\x18) \x01(\x0b\x32H.temporal.api.history.v1.ChildWorkflowExecutionTerminatedEventAttributesH\x00\x12\x99\x01\n=signal_external_workflow_execution_initiated_event_attributes\x18* \x01(\x0b\x32P.temporal.api.history.v1.SignalExternalWorkflowExecutionInitiatedEventAttributesH\x00\x12\x93\x01\n:signal_external_workflow_execution_failed_event_attributes\x18+ \x01(\x0b\x32M.temporal.api.history.v1.SignalExternalWorkflowExecutionFailedEventAttributesH\x00\x12\x8a\x01\n5external_workflow_execution_signaled_event_attributes\x18, \x01(\x0b\x32I.temporal.api.history.v1.ExternalWorkflowExecutionSignaledEventAttributesH\x00\x12\x84\x01\n2upsert_workflow_search_attributes_event_attributes\x18- \x01(\x0b\x32\x46.temporal.api.history.v1.UpsertWorkflowSearchAttributesEventAttributesH\x00\x12\x86\x01\n3workflow_execution_update_accepted_event_attributes\x18. \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionUpdateAcceptedEventAttributesH\x00\x12\x86\x01\n3workflow_execution_update_rejected_event_attributes\x18/ \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionUpdateRejectedEventAttributesH\x00\x12\x88\x01\n4workflow_execution_update_completed_event_attributes\x18\x30 \x01(\x0b\x32H.temporal.api.history.v1.WorkflowExecutionUpdateCompletedEventAttributesH\x00\x12\x90\x01\n8workflow_properties_modified_externally_event_attributes\x18\x31 \x01(\x0b\x32L.temporal.api.history.v1.WorkflowPropertiesModifiedExternallyEventAttributesH\x00\x12\x90\x01\n8activity_properties_modified_externally_event_attributes\x18\x32 \x01(\x0b\x32L.temporal.api.history.v1.ActivityPropertiesModifiedExternallyEventAttributesH\x00\x12{\n-workflow_properties_modified_event_attributes\x18\x33 \x01(\x0b\x32\x42.temporal.api.history.v1.WorkflowPropertiesModifiedEventAttributesH\x00\x12\x86\x01\n3workflow_execution_update_admitted_event_attributes\x18\x34 \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionUpdateAdmittedEventAttributesH\x00\x12u\n*nexus_operation_scheduled_event_attributes\x18\x35 \x01(\x0b\x32?.temporal.api.history.v1.NexusOperationScheduledEventAttributesH\x00\x12q\n(nexus_operation_started_event_attributes\x18\x36 \x01(\x0b\x32=.temporal.api.history.v1.NexusOperationStartedEventAttributesH\x00\x12u\n*nexus_operation_completed_event_attributes\x18\x37 \x01(\x0b\x32?.temporal.api.history.v1.NexusOperationCompletedEventAttributesH\x00\x12o\n\'nexus_operation_failed_event_attributes\x18\x38 \x01(\x0b\x32<.temporal.api.history.v1.NexusOperationFailedEventAttributesH\x00\x12s\n)nexus_operation_canceled_event_attributes\x18\x39 \x01(\x0b\x32>.temporal.api.history.v1.NexusOperationCanceledEventAttributesH\x00\x12t\n*nexus_operation_timed_out_event_attributes\x18: \x01(\x0b\x32>.temporal.api.history.v1.NexusOperationTimedOutEventAttributesH\x00\x12\x82\x01\n1nexus_operation_cancel_requested_event_attributes\x18; \x01(\x0b\x32\x45.temporal.api.history.v1.NexusOperationCancelRequestedEventAttributesH\x00\x42\x0c\n\nattributes"@\n\x07History\x12\x35\n\x06\x65vents\x18\x01 \x03(\x0b\x32%.temporal.api.history.v1.HistoryEventB\x8e\x01\n\x1aio.temporal.api.history.v1B\x0cMessageProtoP\x01Z%go.temporal.io/api/history/v1;history\xaa\x02\x19Temporalio.Api.History.V1\xea\x02\x1cTemporalio::Api::History::V1b\x06proto3' ) @@ -1022,23 +1022,23 @@ _WORKFLOWEXECUTIONUPDATEADMITTEDEVENTATTRIBUTES._serialized_start = 14884 _WORKFLOWEXECUTIONUPDATEADMITTEDEVENTATTRIBUTES._serialized_end = 15048 _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_start = 15051 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_end = 15473 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_start = 15423 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_end = 15473 - _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_start = 15475 - _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_end = 15563 - _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 15565 - _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 15682 - _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_start = 15684 - _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_end = 15800 - _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 15802 - _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 15920 - _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_start = 15922 - _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_end = 16040 - _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 16042 - _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 16158 - _HISTORYEVENT._serialized_start = 16161 - _HISTORYEVENT._serialized_end = 23302 - _HISTORY._serialized_start = 23304 - _HISTORY._serialized_end = 23368 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_end = 15494 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_start = 15444 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_end = 15494 + _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_start = 15496 + _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_end = 15604 + _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 15607 + _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 15744 + _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_start = 15747 + _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_end = 15883 + _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 15886 + _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 16024 + _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_start = 16027 + _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_end = 16165 + _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 16167 + _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 16283 + _HISTORYEVENT._serialized_start = 16286 + _HISTORYEVENT._serialized_end = 23473 + _HISTORY._serialized_start = 23475 + _HISTORY._serialized_end = 23539 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/history/v1/message_pb2.pyi b/temporalio/api/history/v1/message_pb2.pyi index df696f0c..c2b299ef 100644 --- a/temporalio/api/history/v1/message_pb2.pyi +++ b/temporalio/api/history/v1/message_pb2.pyi @@ -3280,6 +3280,7 @@ class NexusOperationScheduledEventAttributes(google.protobuf.message.Message): NEXUS_HEADER_FIELD_NUMBER: builtins.int WORKFLOW_TASK_COMPLETED_EVENT_ID_FIELD_NUMBER: builtins.int REQUEST_ID_FIELD_NUMBER: builtins.int + ENDPOINT_ID_FIELD_NUMBER: builtins.int endpoint: builtins.str """Endpoint name, must exist in the endpoint registry.""" service: builtins.str @@ -3314,6 +3315,11 @@ class NexusOperationScheduledEventAttributes(google.protobuf.message.Message): """A unique ID generated by the history service upon creation of this event. The ID will be transmitted with all nexus StartOperation requests and is used as an idempotentency key. """ + endpoint_id: builtins.str + """Endpoint ID as resolved in the endpoint registry at the time this event was generated. + This is stored on the event and used internally by the server in case the endpoint is renamed from the time the + event was originally scheduled. + """ def __init__( self, *, @@ -3325,6 +3331,7 @@ class NexusOperationScheduledEventAttributes(google.protobuf.message.Message): nexus_header: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., workflow_task_completed_event_id: builtins.int = ..., request_id: builtins.str = ..., + endpoint_id: builtins.str = ..., ) -> None: ... def HasField( self, @@ -3337,6 +3344,8 @@ class NexusOperationScheduledEventAttributes(google.protobuf.message.Message): field_name: typing_extensions.Literal[ "endpoint", b"endpoint", + "endpoint_id", + b"endpoint_id", "input", b"input", "nexus_header", @@ -3367,22 +3376,31 @@ class NexusOperationStartedEventAttributes(google.protobuf.message.Message): SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int OPERATION_ID_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int scheduled_event_id: builtins.int """The ID of the `NEXUS_OPERATION_SCHEDULED` event this task corresponds to.""" operation_id: builtins.str """The operation ID returned by the Nexus handler in the response to the StartOperation request. This ID is used when canceling the operation. """ + request_id: builtins.str + """The request ID allocated at schedule time.""" def __init__( self, *, scheduled_event_id: builtins.int = ..., operation_id: builtins.str = ..., + request_id: builtins.str = ..., ) -> None: ... def ClearField( self, field_name: typing_extensions.Literal[ - "operation_id", b"operation_id", "scheduled_event_id", b"scheduled_event_id" + "operation_id", + b"operation_id", + "request_id", + b"request_id", + "scheduled_event_id", + b"scheduled_event_id", ], ) -> None: ... @@ -3395,6 +3413,7 @@ class NexusOperationCompletedEventAttributes(google.protobuf.message.Message): SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int RESULT_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int scheduled_event_id: builtins.int """The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.""" @property @@ -3402,11 +3421,14 @@ class NexusOperationCompletedEventAttributes(google.protobuf.message.Message): """Serialized result of the Nexus operation. The response of the Nexus handler. Delivered either via a completion callback or as a response to a synchronous operation. """ + request_id: builtins.str + """The request ID allocated at schedule time.""" def __init__( self, *, scheduled_event_id: builtins.int = ..., result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + request_id: builtins.str = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal["result", b"result"] @@ -3414,7 +3436,12 @@ class NexusOperationCompletedEventAttributes(google.protobuf.message.Message): def ClearField( self, field_name: typing_extensions.Literal[ - "result", b"result", "scheduled_event_id", b"scheduled_event_id" + "request_id", + b"request_id", + "result", + b"result", + "scheduled_event_id", + b"scheduled_event_id", ], ) -> None: ... @@ -3427,16 +3454,20 @@ class NexusOperationFailedEventAttributes(google.protobuf.message.Message): SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int FAILURE_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int scheduled_event_id: builtins.int """The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.""" @property def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: """Failure details. A NexusOperationFailureInfo wrapping an ApplicationFailureInfo.""" + request_id: builtins.str + """The request ID allocated at schedule time.""" def __init__( self, *, scheduled_event_id: builtins.int = ..., failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + request_id: builtins.str = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal["failure", b"failure"] @@ -3444,7 +3475,12 @@ class NexusOperationFailedEventAttributes(google.protobuf.message.Message): def ClearField( self, field_name: typing_extensions.Literal[ - "failure", b"failure", "scheduled_event_id", b"scheduled_event_id" + "failure", + b"failure", + "request_id", + b"request_id", + "scheduled_event_id", + b"scheduled_event_id", ], ) -> None: ... @@ -3457,16 +3493,20 @@ class NexusOperationTimedOutEventAttributes(google.protobuf.message.Message): SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int FAILURE_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int scheduled_event_id: builtins.int """The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.""" @property def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: """Failure details. A NexusOperationFailureInfo wrapping a CanceledFailureInfo.""" + request_id: builtins.str + """The request ID allocated at schedule time.""" def __init__( self, *, scheduled_event_id: builtins.int = ..., failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + request_id: builtins.str = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal["failure", b"failure"] @@ -3474,7 +3514,12 @@ class NexusOperationTimedOutEventAttributes(google.protobuf.message.Message): def ClearField( self, field_name: typing_extensions.Literal[ - "failure", b"failure", "scheduled_event_id", b"scheduled_event_id" + "failure", + b"failure", + "request_id", + b"request_id", + "scheduled_event_id", + b"scheduled_event_id", ], ) -> None: ... @@ -3487,16 +3532,20 @@ class NexusOperationCanceledEventAttributes(google.protobuf.message.Message): SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int FAILURE_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int scheduled_event_id: builtins.int """The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.""" @property def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: """Cancellation details.""" + request_id: builtins.str + """The request ID allocated at schedule time.""" def __init__( self, *, scheduled_event_id: builtins.int = ..., failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + request_id: builtins.str = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal["failure", b"failure"] @@ -3504,7 +3553,12 @@ class NexusOperationCanceledEventAttributes(google.protobuf.message.Message): def ClearField( self, field_name: typing_extensions.Literal[ - "failure", b"failure", "scheduled_event_id", b"scheduled_event_id" + "failure", + b"failure", + "request_id", + b"request_id", + "scheduled_event_id", + b"scheduled_event_id", ], ) -> None: ... @@ -3555,6 +3609,7 @@ class HistoryEvent(google.protobuf.message.Message): TASK_ID_FIELD_NUMBER: builtins.int WORKER_MAY_IGNORE_FIELD_NUMBER: builtins.int USER_METADATA_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int WORKFLOW_EXECUTION_STARTED_EVENT_ATTRIBUTES_FIELD_NUMBER: builtins.int WORKFLOW_EXECUTION_COMPLETED_EVENT_ATTRIBUTES_FIELD_NUMBER: builtins.int WORKFLOW_EXECUTION_FAILED_EVENT_ATTRIBUTES_FIELD_NUMBER: builtins.int @@ -3644,6 +3699,13 @@ class HistoryEvent(google.protobuf.message.Message): user interfaces. """ @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.common.v1.message_pb2.Link + ]: + """Links associated with the event.""" + @property def workflow_execution_started_event_attributes( self, ) -> global___WorkflowExecutionStartedEventAttributes: ... @@ -3868,6 +3930,8 @@ class HistoryEvent(google.protobuf.message.Message): worker_may_ignore: builtins.bool = ..., user_metadata: temporalio.api.sdk.v1.user_metadata_pb2.UserMetadata | None = ..., + links: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.Link] + | None = ..., workflow_execution_started_event_attributes: global___WorkflowExecutionStartedEventAttributes | None = ..., workflow_execution_completed_event_attributes: global___WorkflowExecutionCompletedEventAttributes @@ -4138,6 +4202,8 @@ class HistoryEvent(google.protobuf.message.Message): b"external_workflow_execution_cancel_requested_event_attributes", "external_workflow_execution_signaled_event_attributes", b"external_workflow_execution_signaled_event_attributes", + "links", + b"links", "marker_recorded_event_attributes", b"marker_recorded_event_attributes", "nexus_operation_cancel_requested_event_attributes", diff --git a/temporalio/api/nexus/v1/__init__.py b/temporalio/api/nexus/v1/__init__.py index f7f55b28..7ae90d59 100644 --- a/temporalio/api/nexus/v1/__init__.py +++ b/temporalio/api/nexus/v1/__init__.py @@ -6,6 +6,7 @@ EndpointTarget, Failure, HandlerError, + Link, Request, Response, StartOperationRequest, @@ -21,6 +22,7 @@ "EndpointTarget", "Failure", "HandlerError", + "Link", "Request", "Response", "StartOperationRequest", diff --git a/temporalio/api/nexus/v1/message_pb2.py b/temporalio/api/nexus/v1/message_pb2.py index e6fad2a4..ed0da760 100644 --- a/temporalio/api/nexus/v1/message_pb2.py +++ b/temporalio/api/nexus/v1/message_pb2.py @@ -19,12 +19,9 @@ from temporalio.api.common.v1 import ( message_pb2 as temporal_dot_api_dot_common_dot_v1_dot_message__pb2, ) -from temporalio.api.sdk.v1 import ( - user_metadata_pb2 as temporal_dot_api_dot_sdk_dot_v1_dot_user__metadata__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/sdk/v1/user_metadata.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"S\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"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"\xa5\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\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"R\n\x16\x43\x61ncelOperationRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x14\n\x0coperation_id\x18\x03 \x01(\t"\xc7\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\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"\xe4\x02\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\x38\n\x04Sync\x12\x30\n\x07payload\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x1a\x1d\n\x05\x41sync\x12\x14\n\x0coperation_id\x18\x01 \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"\x88\x01\n\x0c\x45ndpointSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x08metadata\x18\x02 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\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"\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"S\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"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"R\n\x16\x43\x61ncelOperationRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\x12\x14\n\x0coperation_id\x18\x03 \x01(\t"\xc7\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\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"\x90\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\x38\n\x04Sync\x12\x30\n\x07payload\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x1aI\n\x05\x41sync\x12\x14\n\x0coperation_id\x18\x01 \x01(\t\x12*\n\x05links\x18\x02 \x03(\x0b\x32\x1b.temporal.api.nexus.v1.LinkB\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' ) @@ -34,6 +31,7 @@ _UNSUCCESSFULOPERATIONERROR = DESCRIPTOR.message_types_by_name[ "UnsuccessfulOperationError" ] +_LINK = DESCRIPTOR.message_types_by_name["Link"] _STARTOPERATIONREQUEST = DESCRIPTOR.message_types_by_name["StartOperationRequest"] _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY = ( _STARTOPERATIONREQUEST.nested_types_by_name["CallbackHeaderEntry"] @@ -94,6 +92,17 @@ ) _sym_db.RegisterMessage(UnsuccessfulOperationError) +Link = _reflection.GeneratedProtocolMessageType( + "Link", + (_message.Message,), + { + "DESCRIPTOR": _LINK, + "__module__": "temporal.api.nexus.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.nexus.v1.Link) + }, +) +_sym_db.RegisterMessage(Link) + StartOperationRequest = _reflection.GeneratedProtocolMessageType( "StartOperationRequest", (_message.Message,), @@ -262,42 +271,44 @@ _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_options = b"8\001" _REQUEST_HEADERENTRY._options = None _REQUEST_HEADERENTRY._serialized_options = b"8\001" - _FAILURE._serialized_start = 175 - _FAILURE._serialized_end = 331 - _FAILURE_METADATAENTRY._serialized_start = 284 - _FAILURE_METADATAENTRY._serialized_end = 331 - _HANDLERERROR._serialized_start = 333 - _HANDLERERROR._serialized_end = 416 - _UNSUCCESSFULOPERATIONERROR._serialized_start = 418 - _UNSUCCESSFULOPERATIONERROR._serialized_end = 520 - _STARTOPERATIONREQUEST._serialized_start = 523 - _STARTOPERATIONREQUEST._serialized_end = 816 - _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_start = 763 - _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_end = 816 - _CANCELOPERATIONREQUEST._serialized_start = 818 - _CANCELOPERATIONREQUEST._serialized_end = 900 - _REQUEST._serialized_start = 903 - _REQUEST._serialized_end = 1230 - _REQUEST_HEADERENTRY._serialized_start = 1174 - _REQUEST_HEADERENTRY._serialized_end = 1219 - _STARTOPERATIONRESPONSE._serialized_start = 1233 - _STARTOPERATIONRESPONSE._serialized_end = 1589 - _STARTOPERATIONRESPONSE_SYNC._serialized_start = 1491 - _STARTOPERATIONRESPONSE_SYNC._serialized_end = 1547 - _STARTOPERATIONRESPONSE_ASYNC._serialized_start = 1549 - _STARTOPERATIONRESPONSE_ASYNC._serialized_end = 1578 - _CANCELOPERATIONRESPONSE._serialized_start = 1591 - _CANCELOPERATIONRESPONSE._serialized_end = 1616 - _RESPONSE._serialized_start = 1619 - _RESPONSE._serialized_end = 1790 - _ENDPOINT._serialized_start = 1793 - _ENDPOINT._serialized_end = 2009 - _ENDPOINTSPEC._serialized_start = 2012 - _ENDPOINTSPEC._serialized_end = 2148 - _ENDPOINTTARGET._serialized_start = 2151 - _ENDPOINTTARGET._serialized_end = 2384 - _ENDPOINTTARGET_WORKER._serialized_start = 2301 - _ENDPOINTTARGET_WORKER._serialized_end = 2348 - _ENDPOINTTARGET_EXTERNAL._serialized_start = 2350 - _ENDPOINTTARGET_EXTERNAL._serialized_end = 2373 + _FAILURE._serialized_start = 134 + _FAILURE._serialized_end = 290 + _FAILURE_METADATAENTRY._serialized_start = 243 + _FAILURE_METADATAENTRY._serialized_end = 290 + _HANDLERERROR._serialized_start = 292 + _HANDLERERROR._serialized_end = 375 + _UNSUCCESSFULOPERATIONERROR._serialized_start = 377 + _UNSUCCESSFULOPERATIONERROR._serialized_end = 479 + _LINK._serialized_start = 481 + _LINK._serialized_end = 514 + _STARTOPERATIONREQUEST._serialized_start = 517 + _STARTOPERATIONREQUEST._serialized_end = 854 + _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_start = 801 + _STARTOPERATIONREQUEST_CALLBACKHEADERENTRY._serialized_end = 854 + _CANCELOPERATIONREQUEST._serialized_start = 856 + _CANCELOPERATIONREQUEST._serialized_end = 938 + _REQUEST._serialized_start = 941 + _REQUEST._serialized_end = 1268 + _REQUEST_HEADERENTRY._serialized_start = 1212 + _REQUEST_HEADERENTRY._serialized_end = 1257 + _STARTOPERATIONRESPONSE._serialized_start = 1271 + _STARTOPERATIONRESPONSE._serialized_end = 1671 + _STARTOPERATIONRESPONSE_SYNC._serialized_start = 1529 + _STARTOPERATIONRESPONSE_SYNC._serialized_end = 1585 + _STARTOPERATIONRESPONSE_ASYNC._serialized_start = 1587 + _STARTOPERATIONRESPONSE_ASYNC._serialized_end = 1660 + _CANCELOPERATIONRESPONSE._serialized_start = 1673 + _CANCELOPERATIONRESPONSE._serialized_end = 1698 + _RESPONSE._serialized_start = 1701 + _RESPONSE._serialized_end = 1872 + _ENDPOINT._serialized_start = 1875 + _ENDPOINT._serialized_end = 2091 + _ENDPOINTSPEC._serialized_start = 2094 + _ENDPOINTSPEC._serialized_end = 2231 + _ENDPOINTTARGET._serialized_start = 2234 + _ENDPOINTTARGET._serialized_end = 2467 + _ENDPOINTTARGET_WORKER._serialized_start = 2384 + _ENDPOINTTARGET_WORKER._serialized_end = 2431 + _ENDPOINTTARGET_EXTERNAL._serialized_start = 2433 + _ENDPOINTTARGET_EXTERNAL._serialized_end = 2456 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/nexus/v1/message_pb2.pyi b/temporalio/api/nexus/v1/message_pb2.pyi index 43868674..27d15e7a 100644 --- a/temporalio/api/nexus/v1/message_pb2.pyi +++ b/temporalio/api/nexus/v1/message_pb2.pyi @@ -32,7 +32,6 @@ import google.protobuf.message import google.protobuf.timestamp_pb2 import temporalio.api.common.v1.message_pb2 -import temporalio.api.sdk.v1.user_metadata_pb2 if sys.version_info >= (3, 8): import typing as typing_extensions @@ -145,6 +144,26 @@ class UnsuccessfulOperationError(google.protobuf.message.Message): global___UnsuccessfulOperationError = UnsuccessfulOperationError +class Link(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + URL_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + url: builtins.str + """See https://github.com/nexus-rpc/api/blob/main/SPEC.md#links.""" + type: builtins.str + def __init__( + self, + *, + url: builtins.str = ..., + type: builtins.str = ..., + ) -> None: ... + def ClearField( + self, field_name: typing_extensions.Literal["type", b"type", "url", b"url"] + ) -> None: ... + +global___Link = Link + class StartOperationRequest(google.protobuf.message.Message): """A request to start an operation.""" @@ -174,6 +193,7 @@ class StartOperationRequest(google.protobuf.message.Message): CALLBACK_FIELD_NUMBER: builtins.int PAYLOAD_FIELD_NUMBER: builtins.int CALLBACK_HEADER_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int service: builtins.str """Name of service to start the operation in.""" operation: builtins.str @@ -190,6 +210,13 @@ class StartOperationRequest(google.protobuf.message.Message): self, ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: """Header that is expected to be attached to the callback request when the operation completes.""" + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___Link + ]: + """Links contain caller information and can be attached to the operations started by the handler.""" def __init__( self, *, @@ -200,6 +227,7 @@ class StartOperationRequest(google.protobuf.message.Message): payload: temporalio.api.common.v1.message_pb2.Payload | None = ..., callback_header: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + links: collections.abc.Iterable[global___Link] | None = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal["payload", b"payload"] @@ -211,6 +239,8 @@ class StartOperationRequest(google.protobuf.message.Message): b"callback", "callback_header", b"callback_header", + "links", + b"links", "operation", b"operation", "payload", @@ -378,14 +408,25 @@ class StartOperationResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor OPERATION_ID_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int operation_id: builtins.str + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___Link + ]: ... def __init__( self, *, operation_id: builtins.str = ..., + links: collections.abc.Iterable[global___Link] | None = ..., ) -> None: ... def ClearField( - self, field_name: typing_extensions.Literal["operation_id", b"operation_id"] + self, + field_name: typing_extensions.Literal[ + "links", b"links", "operation_id", b"operation_id" + ], ) -> None: ... SYNC_SUCCESS_FIELD_NUMBER: builtins.int @@ -579,14 +620,18 @@ class EndpointSpec(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor NAME_FIELD_NUMBER: builtins.int - METADATA_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int TARGET_FIELD_NUMBER: builtins.int name: builtins.str """Endpoint name, unique for this cluster. Must match `[a-zA-Z_][a-zA-Z0-9_]*`. Renaming an endpoint breaks all workflow callers that reference this endpoint, causing operations to fail. """ @property - def metadata(self) -> temporalio.api.sdk.v1.user_metadata_pb2.UserMetadata: ... + def description(self) -> temporalio.api.common.v1.message_pb2.Payload: + """Markdown description serialized as a single JSON string. + If the Payload is encrypted, the UI and CLI may decrypt with the configured codec server endpoint. + By default, the server enforces a limit of 20,000 bytes for this entire payload. + """ @property def target(self) -> global___EndpointTarget: """Target to route requests to.""" @@ -594,19 +639,19 @@ class EndpointSpec(google.protobuf.message.Message): self, *, name: builtins.str = ..., - metadata: temporalio.api.sdk.v1.user_metadata_pb2.UserMetadata | None = ..., + description: temporalio.api.common.v1.message_pb2.Payload | None = ..., target: global___EndpointTarget | None = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal[ - "metadata", b"metadata", "target", b"target" + "description", b"description", "target", b"target" ], ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ - "metadata", b"metadata", "name", b"name", "target", b"target" + "description", b"description", "name", b"name", "target", b"target" ], ) -> None: ... diff --git a/temporalio/api/operatorservice/v1/service_pb2.py b/temporalio/api/operatorservice/v1/service_pb2.py index 98e7b234..1e016243 100644 --- a/temporalio/api/operatorservice/v1/service_pb2.py +++ b/temporalio/api/operatorservice/v1/service_pb2.py @@ -21,7 +21,7 @@ ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n-temporal/api/operatorservice/v1/service.proto\x12\x1ftemporal.api.operatorservice.v1\x1a\x36temporal/api/operatorservice/v1/request_response.proto\x1a\x1cgoogle/api/annotations.proto2\xbf\x0f\n\x0fOperatorService\x12\x92\x01\n\x13\x41\x64\x64SearchAttributes\x12;.temporal.api.operatorservice.v1.AddSearchAttributesRequest\x1a<.temporal.api.operatorservice.v1.AddSearchAttributesResponse"\x00\x12\x9b\x01\n\x16RemoveSearchAttributes\x12>.temporal.api.operatorservice.v1.RemoveSearchAttributesRequest\x1a?.temporal.api.operatorservice.v1.RemoveSearchAttributesResponse"\x00\x12\xc6\x01\n\x14ListSearchAttributes\x12<.temporal.api.operatorservice.v1.ListSearchAttributesRequest\x1a=.temporal.api.operatorservice.v1.ListSearchAttributesResponse"1\x82\xd3\xe4\x93\x02+\x12)/namespaces/{namespace}/search-attributes\x12\x86\x01\n\x0f\x44\x65leteNamespace\x12\x37.temporal.api.operatorservice.v1.DeleteNamespaceRequest\x1a\x38.temporal.api.operatorservice.v1.DeleteNamespaceResponse"\x00\x12\xa1\x01\n\x18\x41\x64\x64OrUpdateRemoteCluster\x12@.temporal.api.operatorservice.v1.AddOrUpdateRemoteClusterRequest\x1a\x41.temporal.api.operatorservice.v1.AddOrUpdateRemoteClusterResponse"\x00\x12\x92\x01\n\x13RemoveRemoteCluster\x12;.temporal.api.operatorservice.v1.RemoveRemoteClusterRequest\x1a<.temporal.api.operatorservice.v1.RemoveRemoteClusterResponse"\x00\x12}\n\x0cListClusters\x12\x34.temporal.api.operatorservice.v1.ListClustersRequest\x1a\x35.temporal.api.operatorservice.v1.ListClustersResponse"\x00\x12\xa6\x01\n\x10GetNexusEndpoint\x12\x38.temporal.api.operatorservice.v1.GetNexusEndpointRequest\x1a\x39.temporal.api.operatorservice.v1.GetNexusEndpointResponse"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/nexus/endpoints/{id}\x12\xad\x01\n\x13\x43reateNexusEndpoint\x12;.temporal.api.operatorservice.v1.CreateNexusEndpointRequest\x1a<.temporal.api.operatorservice.v1.CreateNexusEndpointResponse"\x1b\x82\xd3\xe4\x93\x02\x15"\x10/nexus/endpoints:\x01*\x12\xb9\x01\n\x13UpdateNexusEndpoint\x12;.temporal.api.operatorservice.v1.UpdateNexusEndpointRequest\x1a<.temporal.api.operatorservice.v1.UpdateNexusEndpointResponse"\'\x82\xd3\xe4\x93\x02!"\x1c/nexus/endpoints/{id}/update:\x01*\x12\xaf\x01\n\x13\x44\x65leteNexusEndpoint\x12;.temporal.api.operatorservice.v1.DeleteNexusEndpointRequest\x1a<.temporal.api.operatorservice.v1.DeleteNexusEndpointResponse"\x1d\x82\xd3\xe4\x93\x02\x17*\x15/nexus/endpoints/{id}\x12\xa7\x01\n\x12ListNexusEndpoints\x12:.temporal.api.operatorservice.v1.ListNexusEndpointsRequest\x1a;.temporal.api.operatorservice.v1.ListNexusEndpointsResponse"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/nexus/endpointsB\xb6\x01\n"io.temporal.api.operatorservice.v1B\x0cServiceProtoP\x01Z5go.temporal.io/api/operatorservice/v1;operatorservice\xaa\x02!Temporalio.Api.OperatorService.V1\xea\x02$Temporalio::Api::OperatorService::V1b\x06proto3' + b'\n-temporal/api/operatorservice/v1/service.proto\x12\x1ftemporal.api.operatorservice.v1\x1a\x36temporal/api/operatorservice/v1/request_response.proto\x1a\x1cgoogle/api/annotations.proto2\xc6\x11\n\x0fOperatorService\x12\x92\x01\n\x13\x41\x64\x64SearchAttributes\x12;.temporal.api.operatorservice.v1.AddSearchAttributesRequest\x1a<.temporal.api.operatorservice.v1.AddSearchAttributesResponse"\x00\x12\x9b\x01\n\x16RemoveSearchAttributes\x12>.temporal.api.operatorservice.v1.RemoveSearchAttributesRequest\x1a?.temporal.api.operatorservice.v1.RemoveSearchAttributesResponse"\x00\x12\x82\x02\n\x14ListSearchAttributes\x12<.temporal.api.operatorservice.v1.ListSearchAttributesRequest\x1a=.temporal.api.operatorservice.v1.ListSearchAttributesResponse"m\x82\xd3\xe4\x93\x02g\x12\x31/cluster/namespaces/{namespace}/search-attributesZ2\x12\x30/api/v1/namespaces/{namespace}/search-attributes\x12\x86\x01\n\x0f\x44\x65leteNamespace\x12\x37.temporal.api.operatorservice.v1.DeleteNamespaceRequest\x1a\x38.temporal.api.operatorservice.v1.DeleteNamespaceResponse"\x00\x12\xa1\x01\n\x18\x41\x64\x64OrUpdateRemoteCluster\x12@.temporal.api.operatorservice.v1.AddOrUpdateRemoteClusterRequest\x1a\x41.temporal.api.operatorservice.v1.AddOrUpdateRemoteClusterResponse"\x00\x12\x92\x01\n\x13RemoveRemoteCluster\x12;.temporal.api.operatorservice.v1.RemoveRemoteClusterRequest\x1a<.temporal.api.operatorservice.v1.RemoveRemoteClusterResponse"\x00\x12}\n\x0cListClusters\x12\x34.temporal.api.operatorservice.v1.ListClustersRequest\x1a\x35.temporal.api.operatorservice.v1.ListClustersResponse"\x00\x12\xce\x01\n\x10GetNexusEndpoint\x12\x38.temporal.api.operatorservice.v1.GetNexusEndpointRequest\x1a\x39.temporal.api.operatorservice.v1.GetNexusEndpointResponse"E\x82\xd3\xe4\x93\x02?\x12\x1d/cluster/nexus/endpoints/{id}Z\x1e\x12\x1c/api/v1/nexus/endpoints/{id}\x12\xd3\x01\n\x13\x43reateNexusEndpoint\x12;.temporal.api.operatorservice.v1.CreateNexusEndpointRequest\x1a<.temporal.api.operatorservice.v1.CreateNexusEndpointResponse"A\x82\xd3\xe4\x93\x02;"\x18/cluster/nexus/endpoints:\x01*Z\x1c"\x17/api/v1/nexus/endpoints:\x01*\x12\xeb\x01\n\x13UpdateNexusEndpoint\x12;.temporal.api.operatorservice.v1.UpdateNexusEndpointRequest\x1a<.temporal.api.operatorservice.v1.UpdateNexusEndpointResponse"Y\x82\xd3\xe4\x93\x02S"$/cluster/nexus/endpoints/{id}/update:\x01*Z("#/api/v1/nexus/endpoints/{id}/update:\x01*\x12\xd7\x01\n\x13\x44\x65leteNexusEndpoint\x12;.temporal.api.operatorservice.v1.DeleteNexusEndpointRequest\x1a<.temporal.api.operatorservice.v1.DeleteNexusEndpointResponse"E\x82\xd3\xe4\x93\x02?*\x1d/cluster/nexus/endpoints/{id}Z\x1e*\x1c/api/v1/nexus/endpoints/{id}\x12\xca\x01\n\x12ListNexusEndpoints\x12:.temporal.api.operatorservice.v1.ListNexusEndpointsRequest\x1a;.temporal.api.operatorservice.v1.ListNexusEndpointsResponse";\x82\xd3\xe4\x93\x02\x35\x12\x18/cluster/nexus/endpointsZ\x19\x12\x17/api/v1/nexus/endpointsB\xb6\x01\n"io.temporal.api.operatorservice.v1B\x0cServiceProtoP\x01Z5go.temporal.io/api/operatorservice/v1;operatorservice\xaa\x02!Temporalio.Api.OperatorService.V1\xea\x02$Temporalio::Api::OperatorService::V1b\x06proto3' ) @@ -32,31 +32,27 @@ _OPERATORSERVICE.methods_by_name["ListSearchAttributes"]._options = None _OPERATORSERVICE.methods_by_name[ "ListSearchAttributes" - ]._serialized_options = ( - b"\202\323\344\223\002+\022)/namespaces/{namespace}/search-attributes" - ) + ]._serialized_options = b"\202\323\344\223\002g\0221/cluster/namespaces/{namespace}/search-attributesZ2\0220/api/v1/namespaces/{namespace}/search-attributes" _OPERATORSERVICE.methods_by_name["GetNexusEndpoint"]._options = None _OPERATORSERVICE.methods_by_name[ "GetNexusEndpoint" - ]._serialized_options = b"\202\323\344\223\002\027\022\025/nexus/endpoints/{id}" + ]._serialized_options = b"\202\323\344\223\002?\022\035/cluster/nexus/endpoints/{id}Z\036\022\034/api/v1/nexus/endpoints/{id}" _OPERATORSERVICE.methods_by_name["CreateNexusEndpoint"]._options = None _OPERATORSERVICE.methods_by_name[ "CreateNexusEndpoint" - ]._serialized_options = b'\202\323\344\223\002\025"\020/nexus/endpoints:\001*' + ]._serialized_options = b'\202\323\344\223\002;"\030/cluster/nexus/endpoints:\001*Z\034"\027/api/v1/nexus/endpoints:\001*' _OPERATORSERVICE.methods_by_name["UpdateNexusEndpoint"]._options = None _OPERATORSERVICE.methods_by_name[ "UpdateNexusEndpoint" - ]._serialized_options = ( - b'\202\323\344\223\002!"\034/nexus/endpoints/{id}/update:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002S"$/cluster/nexus/endpoints/{id}/update:\001*Z("#/api/v1/nexus/endpoints/{id}/update:\001*' _OPERATORSERVICE.methods_by_name["DeleteNexusEndpoint"]._options = None _OPERATORSERVICE.methods_by_name[ "DeleteNexusEndpoint" - ]._serialized_options = b"\202\323\344\223\002\027*\025/nexus/endpoints/{id}" + ]._serialized_options = b"\202\323\344\223\002?*\035/cluster/nexus/endpoints/{id}Z\036*\034/api/v1/nexus/endpoints/{id}" _OPERATORSERVICE.methods_by_name["ListNexusEndpoints"]._options = None _OPERATORSERVICE.methods_by_name[ "ListNexusEndpoints" - ]._serialized_options = b"\202\323\344\223\002\022\022\020/nexus/endpoints" + ]._serialized_options = b"\202\323\344\223\0025\022\030/cluster/nexus/endpointsZ\031\022\027/api/v1/nexus/endpoints" _OPERATORSERVICE._serialized_start = 169 - _OPERATORSERVICE._serialized_end = 2152 + _OPERATORSERVICE._serialized_end = 2415 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/schedule/v1/message_pb2.py b/temporalio/api/schedule/v1/message_pb2.py index 713f2200..745151d5 100644 --- a/temporalio/api/schedule/v1/message_pb2.py +++ b/temporalio/api/schedule/v1/message_pb2.py @@ -23,12 +23,15 @@ from temporalio.api.enums.v1 import ( schedule_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_schedule__pb2, ) +from temporalio.api.enums.v1 import ( + workflow_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_workflow__pb2, +) from temporalio.api.workflow.v1 import ( message_pb2 as temporal_dot_api_dot_workflow_dot_v1_dot_message__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n&temporal/api/schedule/v1/message.proto\x12\x18temporal.api.schedule.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/schedule.proto\x1a&temporal/api/workflow/v1/message.proto"\x95\x01\n\x0c\x43\x61lendarSpec\x12\x0e\n\x06second\x18\x01 \x01(\t\x12\x0e\n\x06minute\x18\x02 \x01(\t\x12\x0c\n\x04hour\x18\x03 \x01(\t\x12\x14\n\x0c\x64\x61y_of_month\x18\x04 \x01(\t\x12\r\n\x05month\x18\x05 \x01(\t\x12\x0c\n\x04year\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x61y_of_week\x18\x07 \x01(\t\x12\x0f\n\x07\x63omment\x18\x08 \x01(\t"1\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x12\x0c\n\x04step\x18\x03 \x01(\x05"\x86\x03\n\x16StructuredCalendarSpec\x12/\n\x06second\x18\x01 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12/\n\x06minute\x18\x02 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12-\n\x04hour\x18\x03 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12\x35\n\x0c\x64\x61y_of_month\x18\x04 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12.\n\x05month\x18\x05 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12-\n\x04year\x18\x06 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12\x34\n\x0b\x64\x61y_of_week\x18\x07 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12\x0f\n\x07\x63omment\x18\x08 \x01(\t"e\n\x0cIntervalSpec\x12+\n\x08interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05phase\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\xba\x04\n\x0cScheduleSpec\x12M\n\x13structured_calendar\x18\x07 \x03(\x0b\x32\x30.temporal.api.schedule.v1.StructuredCalendarSpec\x12\x13\n\x0b\x63ron_string\x18\x08 \x03(\t\x12\x38\n\x08\x63\x61lendar\x18\x01 \x03(\x0b\x32&.temporal.api.schedule.v1.CalendarSpec\x12\x38\n\x08interval\x18\x02 \x03(\x0b\x32&.temporal.api.schedule.v1.IntervalSpec\x12\x44\n\x10\x65xclude_calendar\x18\x03 \x03(\x0b\x32&.temporal.api.schedule.v1.CalendarSpecB\x02\x18\x01\x12U\n\x1b\x65xclude_structured_calendar\x18\t \x03(\x0b\x32\x30.temporal.api.schedule.v1.StructuredCalendarSpec\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12)\n\x06jitter\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x15\n\rtimezone_name\x18\n \x01(\t\x12\x15\n\rtimezone_data\x18\x0b \x01(\x0c"\xc8\x01\n\x10SchedulePolicies\x12\x44\n\x0eoverlap_policy\x18\x01 \x01(\x0e\x32,.temporal.api.enums.v1.ScheduleOverlapPolicy\x12\x31\n\x0e\x63\x61tchup_window\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10pause_on_failure\x18\x03 \x01(\x08\x12!\n\x19keep_original_workflow_id\x18\x04 \x01(\x08"h\n\x0eScheduleAction\x12L\n\x0estart_workflow\x18\x01 \x01(\x0b\x32\x32.temporal.api.workflow.v1.NewWorkflowExecutionInfoH\x00\x42\x08\n\x06\x61\x63tion"\xc4\x01\n\x14ScheduleActionResult\x12\x31\n\rschedule_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x61\x63tual_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12H\n\x15start_workflow_result\x18\x0b \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution"b\n\rScheduleState\x12\r\n\x05notes\x18\x01 \x01(\t\x12\x0e\n\x06paused\x18\x02 \x01(\x08\x12\x17\n\x0flimited_actions\x18\x03 \x01(\x08\x12\x19\n\x11remaining_actions\x18\x04 \x01(\x03"a\n\x19TriggerImmediatelyRequest\x12\x44\n\x0eoverlap_policy\x18\x01 \x01(\x0e\x32,.temporal.api.enums.v1.ScheduleOverlapPolicy"\xb5\x01\n\x0f\x42\x61\x63kfillRequest\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x44\n\x0eoverlap_policy\x18\x03 \x01(\x0e\x32,.temporal.api.enums.v1.ScheduleOverlapPolicy"\xc6\x01\n\rSchedulePatch\x12P\n\x13trigger_immediately\x18\x01 \x01(\x0b\x32\x33.temporal.api.schedule.v1.TriggerImmediatelyRequest\x12\x43\n\x10\x62\x61\x63kfill_request\x18\x02 \x03(\x0b\x32).temporal.api.schedule.v1.BackfillRequest\x12\r\n\x05pause\x18\x03 \x01(\t\x12\x0f\n\x07unpause\x18\x04 \x01(\t"\xd6\x03\n\x0cScheduleInfo\x12\x14\n\x0c\x61\x63tion_count\x18\x01 \x01(\x03\x12\x1d\n\x15missed_catchup_window\x18\x02 \x01(\x03\x12\x17\n\x0foverlap_skipped\x18\x03 \x01(\x03\x12\x16\n\x0e\x62uffer_dropped\x18\n \x01(\x03\x12\x13\n\x0b\x62uffer_size\x18\x0b \x01(\x03\x12\x44\n\x11running_workflows\x18\t \x03(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x46\n\x0erecent_actions\x18\x04 \x03(\x0b\x32..temporal.api.schedule.v1.ScheduleActionResult\x12\x37\n\x13\x66uture_action_times\x18\x05 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12"\n\x16invalid_schedule_error\x18\x08 \x01(\tB\x02\x18\x01"\xf0\x01\n\x08Schedule\x12\x34\n\x04spec\x18\x01 \x01(\x0b\x32&.temporal.api.schedule.v1.ScheduleSpec\x12\x38\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32(.temporal.api.schedule.v1.ScheduleAction\x12<\n\x08policies\x18\x03 \x01(\x0b\x32*.temporal.api.schedule.v1.SchedulePolicies\x12\x36\n\x05state\x18\x04 \x01(\x0b\x32\'.temporal.api.schedule.v1.ScheduleState"\xa5\x02\n\x10ScheduleListInfo\x12\x34\n\x04spec\x18\x01 \x01(\x0b\x32&.temporal.api.schedule.v1.ScheduleSpec\x12;\n\rworkflow_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\r\n\x05notes\x18\x03 \x01(\t\x12\x0e\n\x06paused\x18\x04 \x01(\x08\x12\x46\n\x0erecent_actions\x18\x05 \x03(\x0b\x32..temporal.api.schedule.v1.ScheduleActionResult\x12\x37\n\x13\x66uture_action_times\x18\x06 \x03(\x0b\x32\x1a.google.protobuf.Timestamp"\xd3\x01\n\x11ScheduleListEntry\x12\x13\n\x0bschedule_id\x18\x01 \x01(\t\x12*\n\x04memo\x18\x02 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x03 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x38\n\x04info\x18\x04 \x01(\x0b\x32*.temporal.api.schedule.v1.ScheduleListInfoB\x93\x01\n\x1bio.temporal.api.schedule.v1B\x0cMessageProtoP\x01Z\'go.temporal.io/api/schedule/v1;schedule\xaa\x02\x1aTemporalio.Api.Schedule.V1\xea\x02\x1dTemporalio::Api::Schedule::V1b\x06proto3' + b'\n&temporal/api/schedule/v1/message.proto\x12\x18temporal.api.schedule.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/schedule.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a&temporal/api/workflow/v1/message.proto"\x95\x01\n\x0c\x43\x61lendarSpec\x12\x0e\n\x06second\x18\x01 \x01(\t\x12\x0e\n\x06minute\x18\x02 \x01(\t\x12\x0c\n\x04hour\x18\x03 \x01(\t\x12\x14\n\x0c\x64\x61y_of_month\x18\x04 \x01(\t\x12\r\n\x05month\x18\x05 \x01(\t\x12\x0c\n\x04year\x18\x06 \x01(\t\x12\x13\n\x0b\x64\x61y_of_week\x18\x07 \x01(\t\x12\x0f\n\x07\x63omment\x18\x08 \x01(\t"1\n\x05Range\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x12\x0c\n\x04step\x18\x03 \x01(\x05"\x86\x03\n\x16StructuredCalendarSpec\x12/\n\x06second\x18\x01 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12/\n\x06minute\x18\x02 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12-\n\x04hour\x18\x03 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12\x35\n\x0c\x64\x61y_of_month\x18\x04 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12.\n\x05month\x18\x05 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12-\n\x04year\x18\x06 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12\x34\n\x0b\x64\x61y_of_week\x18\x07 \x03(\x0b\x32\x1f.temporal.api.schedule.v1.Range\x12\x0f\n\x07\x63omment\x18\x08 \x01(\t"e\n\x0cIntervalSpec\x12+\n\x08interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05phase\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\xba\x04\n\x0cScheduleSpec\x12M\n\x13structured_calendar\x18\x07 \x03(\x0b\x32\x30.temporal.api.schedule.v1.StructuredCalendarSpec\x12\x13\n\x0b\x63ron_string\x18\x08 \x03(\t\x12\x38\n\x08\x63\x61lendar\x18\x01 \x03(\x0b\x32&.temporal.api.schedule.v1.CalendarSpec\x12\x38\n\x08interval\x18\x02 \x03(\x0b\x32&.temporal.api.schedule.v1.IntervalSpec\x12\x44\n\x10\x65xclude_calendar\x18\x03 \x03(\x0b\x32&.temporal.api.schedule.v1.CalendarSpecB\x02\x18\x01\x12U\n\x1b\x65xclude_structured_calendar\x18\t \x03(\x0b\x32\x30.temporal.api.schedule.v1.StructuredCalendarSpec\x12.\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12)\n\x06jitter\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x15\n\rtimezone_name\x18\n \x01(\t\x12\x15\n\rtimezone_data\x18\x0b \x01(\x0c"\xc8\x01\n\x10SchedulePolicies\x12\x44\n\x0eoverlap_policy\x18\x01 \x01(\x0e\x32,.temporal.api.enums.v1.ScheduleOverlapPolicy\x12\x31\n\x0e\x63\x61tchup_window\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10pause_on_failure\x18\x03 \x01(\x08\x12!\n\x19keep_original_workflow_id\x18\x04 \x01(\x08"h\n\x0eScheduleAction\x12L\n\x0estart_workflow\x18\x01 \x01(\x0b\x32\x32.temporal.api.workflow.v1.NewWorkflowExecutionInfoH\x00\x42\x08\n\x06\x61\x63tion"\x93\x02\n\x14ScheduleActionResult\x12\x31\n\rschedule_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x61\x63tual_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12H\n\x15start_workflow_result\x18\x0b \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12M\n\x15start_workflow_status\x18\x0c \x01(\x0e\x32..temporal.api.enums.v1.WorkflowExecutionStatus"b\n\rScheduleState\x12\r\n\x05notes\x18\x01 \x01(\t\x12\x0e\n\x06paused\x18\x02 \x01(\x08\x12\x17\n\x0flimited_actions\x18\x03 \x01(\x08\x12\x19\n\x11remaining_actions\x18\x04 \x01(\x03"a\n\x19TriggerImmediatelyRequest\x12\x44\n\x0eoverlap_policy\x18\x01 \x01(\x0e\x32,.temporal.api.enums.v1.ScheduleOverlapPolicy"\xb5\x01\n\x0f\x42\x61\x63kfillRequest\x12.\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x44\n\x0eoverlap_policy\x18\x03 \x01(\x0e\x32,.temporal.api.enums.v1.ScheduleOverlapPolicy"\xc6\x01\n\rSchedulePatch\x12P\n\x13trigger_immediately\x18\x01 \x01(\x0b\x32\x33.temporal.api.schedule.v1.TriggerImmediatelyRequest\x12\x43\n\x10\x62\x61\x63kfill_request\x18\x02 \x03(\x0b\x32).temporal.api.schedule.v1.BackfillRequest\x12\r\n\x05pause\x18\x03 \x01(\t\x12\x0f\n\x07unpause\x18\x04 \x01(\t"\xd6\x03\n\x0cScheduleInfo\x12\x14\n\x0c\x61\x63tion_count\x18\x01 \x01(\x03\x12\x1d\n\x15missed_catchup_window\x18\x02 \x01(\x03\x12\x17\n\x0foverlap_skipped\x18\x03 \x01(\x03\x12\x16\n\x0e\x62uffer_dropped\x18\n \x01(\x03\x12\x13\n\x0b\x62uffer_size\x18\x0b \x01(\x03\x12\x44\n\x11running_workflows\x18\t \x03(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x46\n\x0erecent_actions\x18\x04 \x03(\x0b\x32..temporal.api.schedule.v1.ScheduleActionResult\x12\x37\n\x13\x66uture_action_times\x18\x05 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12"\n\x16invalid_schedule_error\x18\x08 \x01(\tB\x02\x18\x01"\xf0\x01\n\x08Schedule\x12\x34\n\x04spec\x18\x01 \x01(\x0b\x32&.temporal.api.schedule.v1.ScheduleSpec\x12\x38\n\x06\x61\x63tion\x18\x02 \x01(\x0b\x32(.temporal.api.schedule.v1.ScheduleAction\x12<\n\x08policies\x18\x03 \x01(\x0b\x32*.temporal.api.schedule.v1.SchedulePolicies\x12\x36\n\x05state\x18\x04 \x01(\x0b\x32\'.temporal.api.schedule.v1.ScheduleState"\xa5\x02\n\x10ScheduleListInfo\x12\x34\n\x04spec\x18\x01 \x01(\x0b\x32&.temporal.api.schedule.v1.ScheduleSpec\x12;\n\rworkflow_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\r\n\x05notes\x18\x03 \x01(\t\x12\x0e\n\x06paused\x18\x04 \x01(\x08\x12\x46\n\x0erecent_actions\x18\x05 \x03(\x0b\x32..temporal.api.schedule.v1.ScheduleActionResult\x12\x37\n\x13\x66uture_action_times\x18\x06 \x03(\x0b\x32\x1a.google.protobuf.Timestamp"\xd3\x01\n\x11ScheduleListEntry\x12\x13\n\x0bschedule_id\x18\x01 \x01(\t\x12*\n\x04memo\x18\x02 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x03 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x38\n\x04info\x18\x04 \x01(\x0b\x32*.temporal.api.schedule.v1.ScheduleListInfoB\x93\x01\n\x1bio.temporal.api.schedule.v1B\x0cMessageProtoP\x01Z\'go.temporal.io/api/schedule/v1;schedule\xaa\x02\x1aTemporalio.Api.Schedule.V1\xea\x02\x1dTemporalio::Api::Schedule::V1b\x06proto3' ) @@ -235,36 +238,36 @@ _SCHEDULEINFO.fields_by_name[ "invalid_schedule_error" ]._serialized_options = b"\030\001" - _CALENDARSPEC._serialized_start = 250 - _CALENDARSPEC._serialized_end = 399 - _RANGE._serialized_start = 401 - _RANGE._serialized_end = 450 - _STRUCTUREDCALENDARSPEC._serialized_start = 453 - _STRUCTUREDCALENDARSPEC._serialized_end = 843 - _INTERVALSPEC._serialized_start = 845 - _INTERVALSPEC._serialized_end = 946 - _SCHEDULESPEC._serialized_start = 949 - _SCHEDULESPEC._serialized_end = 1519 - _SCHEDULEPOLICIES._serialized_start = 1522 - _SCHEDULEPOLICIES._serialized_end = 1722 - _SCHEDULEACTION._serialized_start = 1724 - _SCHEDULEACTION._serialized_end = 1828 - _SCHEDULEACTIONRESULT._serialized_start = 1831 - _SCHEDULEACTIONRESULT._serialized_end = 2027 - _SCHEDULESTATE._serialized_start = 2029 - _SCHEDULESTATE._serialized_end = 2127 - _TRIGGERIMMEDIATELYREQUEST._serialized_start = 2129 - _TRIGGERIMMEDIATELYREQUEST._serialized_end = 2226 - _BACKFILLREQUEST._serialized_start = 2229 - _BACKFILLREQUEST._serialized_end = 2410 - _SCHEDULEPATCH._serialized_start = 2413 - _SCHEDULEPATCH._serialized_end = 2611 - _SCHEDULEINFO._serialized_start = 2614 - _SCHEDULEINFO._serialized_end = 3084 - _SCHEDULE._serialized_start = 3087 - _SCHEDULE._serialized_end = 3327 - _SCHEDULELISTINFO._serialized_start = 3330 - _SCHEDULELISTINFO._serialized_end = 3623 - _SCHEDULELISTENTRY._serialized_start = 3626 - _SCHEDULELISTENTRY._serialized_end = 3837 + _CALENDARSPEC._serialized_start = 288 + _CALENDARSPEC._serialized_end = 437 + _RANGE._serialized_start = 439 + _RANGE._serialized_end = 488 + _STRUCTUREDCALENDARSPEC._serialized_start = 491 + _STRUCTUREDCALENDARSPEC._serialized_end = 881 + _INTERVALSPEC._serialized_start = 883 + _INTERVALSPEC._serialized_end = 984 + _SCHEDULESPEC._serialized_start = 987 + _SCHEDULESPEC._serialized_end = 1557 + _SCHEDULEPOLICIES._serialized_start = 1560 + _SCHEDULEPOLICIES._serialized_end = 1760 + _SCHEDULEACTION._serialized_start = 1762 + _SCHEDULEACTION._serialized_end = 1866 + _SCHEDULEACTIONRESULT._serialized_start = 1869 + _SCHEDULEACTIONRESULT._serialized_end = 2144 + _SCHEDULESTATE._serialized_start = 2146 + _SCHEDULESTATE._serialized_end = 2244 + _TRIGGERIMMEDIATELYREQUEST._serialized_start = 2246 + _TRIGGERIMMEDIATELYREQUEST._serialized_end = 2343 + _BACKFILLREQUEST._serialized_start = 2346 + _BACKFILLREQUEST._serialized_end = 2527 + _SCHEDULEPATCH._serialized_start = 2530 + _SCHEDULEPATCH._serialized_end = 2728 + _SCHEDULEINFO._serialized_start = 2731 + _SCHEDULEINFO._serialized_end = 3201 + _SCHEDULE._serialized_start = 3204 + _SCHEDULE._serialized_end = 3444 + _SCHEDULELISTINFO._serialized_start = 3447 + _SCHEDULELISTINFO._serialized_end = 3740 + _SCHEDULELISTENTRY._serialized_start = 3743 + _SCHEDULELISTENTRY._serialized_end = 3954 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/schedule/v1/message_pb2.pyi b/temporalio/api/schedule/v1/message_pb2.pyi index 854fa14a..911eac11 100644 --- a/temporalio/api/schedule/v1/message_pb2.pyi +++ b/temporalio/api/schedule/v1/message_pb2.pyi @@ -19,6 +19,7 @@ import google.protobuf.timestamp_pb2 import temporalio.api.common.v1.message_pb2 import temporalio.api.enums.v1.schedule_pb2 +import temporalio.api.enums.v1.workflow_pb2 import temporalio.api.workflow.v1.message_pb2 if sys.version_info >= (3, 8): @@ -592,6 +593,7 @@ class ScheduleActionResult(google.protobuf.message.Message): SCHEDULE_TIME_FIELD_NUMBER: builtins.int ACTUAL_TIME_FIELD_NUMBER: builtins.int START_WORKFLOW_RESULT_FIELD_NUMBER: builtins.int + START_WORKFLOW_STATUS_FIELD_NUMBER: builtins.int @property def schedule_time(self) -> google.protobuf.timestamp_pb2.Timestamp: """Time that the action was taken (according to the schedule, including jitter).""" @@ -603,6 +605,12 @@ class ScheduleActionResult(google.protobuf.message.Message): self, ) -> temporalio.api.common.v1.message_pb2.WorkflowExecution: """If action was start_workflow:""" + start_workflow_status: ( + temporalio.api.enums.v1.workflow_pb2.WorkflowExecutionStatus.ValueType + ) + """If the action was start_workflow, this field will reflect an + eventually-consistent view of the started workflow's status. + """ def __init__( self, *, @@ -610,6 +618,7 @@ class ScheduleActionResult(google.protobuf.message.Message): actual_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., start_workflow_result: temporalio.api.common.v1.message_pb2.WorkflowExecution | None = ..., + start_workflow_status: temporalio.api.enums.v1.workflow_pb2.WorkflowExecutionStatus.ValueType = ..., ) -> None: ... def HasField( self, @@ -631,6 +640,8 @@ class ScheduleActionResult(google.protobuf.message.Message): b"schedule_time", "start_workflow_result", b"start_workflow_result", + "start_workflow_status", + b"start_workflow_status", ], ) -> None: ... diff --git a/temporalio/api/sdk/v1/workflow_metadata_pb2.pyi b/temporalio/api/sdk/v1/workflow_metadata_pb2.pyi index 1166e144..d10bfaea 100644 --- a/temporalio/api/sdk/v1/workflow_metadata_pb2.pyi +++ b/temporalio/api/sdk/v1/workflow_metadata_pb2.pyi @@ -89,19 +89,22 @@ class WorkflowDefinition(google.protobuf.message.Message): self, ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ global___WorkflowInteractionDefinition - ]: ... + ]: + """Query definitions, sorted by name.""" @property def signal_definitions( self, ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ global___WorkflowInteractionDefinition - ]: ... + ]: + """Signal definitions, sorted by name.""" @property def update_definitions( self, ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ global___WorkflowInteractionDefinition - ]: ... + ]: + """Update definitions, sorted by name.""" def __init__( self, *, diff --git a/temporalio/api/taskqueue/v1/message_pb2.pyi b/temporalio/api/taskqueue/v1/message_pb2.pyi index a14aa1bb..4425f314 100644 --- a/temporalio/api/taskqueue/v1/message_pb2.pyi +++ b/temporalio/api/taskqueue/v1/message_pb2.pyi @@ -121,8 +121,8 @@ class TaskQueueVersionSelection(google.protobuf.message.Message): unversioned: builtins.bool """Include the unversioned queue.""" all_active: builtins.bool - """Include all active versions. A version is considered active if it has had new - tasks or polls recently. + """Include all active versions. A version is considered active if, in the last few minutes, + it has had new tasks or polls, or it has been the subject of certain task queue API calls. """ def __init__( self, @@ -239,9 +239,10 @@ class TaskQueueTypeInfo(google.protobuf.message.Message): global___TaskQueueTypeInfo = TaskQueueTypeInfo class TaskQueueStats(google.protobuf.message.Message): - """For workflow task queues, we only report the normal queue stats, not sticky queues. This means the stats - reported here do not count all workflow tasks. However, because the tasks queued in sticky queues only remain - valid for a few seconds, the inaccuracy becomes less significant as the backlog age grows. + """TaskQueueStats contains statistics about task queue backlog and activity. + + For workflow task queue type, this result is partial because tasks sent to sticky queues are not included. Read + comments above each metric to understand the impact of sticky queue exclusion on that metric accuracy. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -251,19 +252,53 @@ class TaskQueueStats(google.protobuf.message.Message): TASKS_ADD_RATE_FIELD_NUMBER: builtins.int TASKS_DISPATCH_RATE_FIELD_NUMBER: builtins.int approximate_backlog_count: builtins.int - """The approximate number of tasks backlogged in this task queue. May count expired tasks but eventually converges - to the right value. + """The approximate number of tasks backlogged in this task queue. May count expired tasks but eventually + converges to the right value. Can be relied upon for scaling decisions. + + Special note for workflow task queue type: this metric does not count sticky queue tasks. However, because + those tasks only remain valid for a few seconds, the inaccuracy becomes less significant as the backlog size + grows. """ @property def approximate_backlog_age(self) -> google.protobuf.duration_pb2.Duration: - """Approximate age of the oldest task in the backlog based on the create timestamp of the task at the head of the queue.""" + """Approximate age of the oldest task in the backlog based on the creation time of the task at the head of + the queue. Can be relied upon for scaling decisions. + + Special note for workflow task queue type: this metric does not count sticky queue tasks. However, because + those tasks only remain valid for a few seconds, they should not affect the result when backlog is older than + few seconds. + """ tasks_add_rate: builtins.float - """Approximate tasks per second added to the task queue based on activity within a fixed window. This includes both backlogged and - sync-matched tasks. + """The approximate tasks per second added to the task queue, averaging the last 30 seconds. These includes tasks + whether or not they were added to/dispatched from the backlog or they were dispatched immediately without going + to the backlog (sync-matched). + + The difference between `tasks_add_rate` and `tasks_dispatch_rate` is a reliable metric for the rate at which + backlog grows/shrinks. + + Note: the actual tasks delivered to the workers may significantly be higher than the numbers reported by + tasks_add_rate, because: + - Tasks can be sent to workers without going to the task queue. This is called Eager dispatch. Eager dispatch is + enable for activities by default in the latest SDKs. + - Tasks going to Sticky queue are not accounted for. Note that, typically, only the first workflow task of each + workflow goes to a normal queue, and the rest workflow tasks go to the Sticky queue associated with a specific + worker instance. """ tasks_dispatch_rate: builtins.float - """Approximate tasks per second dispatched to workers based on activity within a fixed window. This includes both backlogged and - sync-matched tasks. + """The approximate tasks per second dispatched from the task queue, averaging the last 30 seconds. These includes + tasks whether or not they were added to/dispatched from the backlog or they were dispatched immediately without + going to the backlog (sync-matched). + + The difference between `tasks_add_rate` and `tasks_dispatch_rate` is a reliable metric for the rate at which + backlog grows/shrinks. + + Note: the actual tasks delivered to the workers may significantly be higher than the numbers reported by + tasks_dispatch_rate, because: + - Tasks can be sent to workers without going to the task queue. This is called Eager dispatch. Eager dispatch is + enable for activities by default in the latest SDKs. + - Tasks going to Sticky queue are not accounted for. Note that, typically, only the first workflow task of each + workflow goes to a normal queue, and the rest workflow tasks go to the Sticky queue associated with a specific + worker instance. """ def __init__( self, diff --git a/temporalio/api/update/v1/message_pb2.pyi b/temporalio/api/update/v1/message_pb2.pyi index ddfe76b1..a1806f0b 100644 --- a/temporalio/api/update/v1/message_pb2.pyi +++ b/temporalio/api/update/v1/message_pb2.pyi @@ -42,16 +42,17 @@ else: DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class WaitPolicy(google.protobuf.message.Message): - """Specifies to the gRPC server how long the client wants the an update-related - RPC call to wait before returning control to the caller. - """ + """Specifies client's intent to wait for Update results.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor LIFECYCLE_STAGE_FIELD_NUMBER: builtins.int lifecycle_stage: temporalio.api.enums.v1.update_pb2.UpdateWorkflowExecutionLifecycleStage.ValueType - """Indicates the update lifecycle stage that the gRPC call should wait for - before returning. + """Indicates the Update lifecycle stage that the Update must reach before + API call is returned. + NOTE: This field works together with API call timeout which is limited by + server timeout (maximum wait time). If server timeout is expired before + user specified timeout, API call returns even if specified stage is not reached. """ def __init__( self, @@ -66,9 +67,7 @@ class WaitPolicy(google.protobuf.message.Message): global___WaitPolicy = WaitPolicy class UpdateRef(google.protobuf.message.Message): - """The data needed by a client to refer to a previously invoked workflow - execution update process. - """ + """The data needed by a client to refer to a previously invoked Workflow Update.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -102,7 +101,7 @@ class UpdateRef(google.protobuf.message.Message): global___UpdateRef = UpdateRef class Outcome(google.protobuf.message.Message): - """The outcome of a workflow update - success or failure.""" + """The outcome of a Workflow Update: success or failure.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -137,16 +136,16 @@ class Outcome(google.protobuf.message.Message): global___Outcome = Outcome class Meta(google.protobuf.message.Message): - """Metadata about a workflow execution update.""" + """Metadata about a Workflow Update.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor UPDATE_ID_FIELD_NUMBER: builtins.int IDENTITY_FIELD_NUMBER: builtins.int update_id: builtins.str - """An ID with workflow-scoped uniqueness for this update""" + """An ID with workflow-scoped uniqueness for this Update.""" identity: builtins.str - """A string identifying the agent that requested this update.""" + """A string identifying the agent that requested this Update.""" def __init__( self, *, @@ -170,14 +169,14 @@ class Input(google.protobuf.message.Message): ARGS_FIELD_NUMBER: builtins.int @property def header(self) -> temporalio.api.common.v1.message_pb2.Header: - """Headers that are passed with the update from the requesting entity. + """Headers that are passed with the Update from the requesting entity. These can include things like auth or tracing tokens. """ name: builtins.str - """The name of the input handler to invoke on the target workflow""" + """The name of the Update handler to invoke on the target Workflow.""" @property def args(self) -> temporalio.api.common.v1.message_pb2.Payloads: - """The arguments to pass to the named handler.""" + """The arguments to pass to the named Update handler.""" def __init__( self, *, @@ -199,7 +198,7 @@ class Input(google.protobuf.message.Message): global___Input = Input class Request(google.protobuf.message.Message): - """The client request that triggers a workflow execution update""" + """The client request that triggers a Workflow Update.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -225,9 +224,7 @@ class Request(google.protobuf.message.Message): global___Request = Request class Rejection(google.protobuf.message.Message): - """An update protocol message indicating that a workflow execution update has - been rejected. - """ + """An Update protocol message indicating that a Workflow Update has been rejected.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -272,7 +269,7 @@ class Rejection(google.protobuf.message.Message): global___Rejection = Rejection class Acceptance(google.protobuf.message.Message): - """An update protocol message indicating that a workflow execution update has + """An Update protocol message indicating that a Workflow Update has been accepted (i.e. passed the worker-side validation phase). """ @@ -311,7 +308,7 @@ class Acceptance(google.protobuf.message.Message): global___Acceptance = Acceptance class Response(google.protobuf.message.Message): - """An update protocol message indicating that a workflow execution update has + """An Update protocol message indicating that a Workflow Update has completed with the contained outcome. """ diff --git a/temporalio/api/workflow/v1/message_pb2.py b/temporalio/api/workflow/v1/message_pb2.py index 442e6879..181586f8 100644 --- a/temporalio/api/workflow/v1/message_pb2.py +++ b/temporalio/api/workflow/v1/message_pb2.py @@ -38,7 +38,7 @@ ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n&temporal/api/workflow/v1/message.proto\x12\x18temporal.api.workflow.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a"temporal/api/enums/v1/common.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/taskqueue/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto"\xe1\x07\n\x15WorkflowExecutionInfo\x12<\n\texecution\x18\x01 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x04type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nclose_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x06status\x18\x05 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowExecutionStatus\x12\x16\n\x0ehistory_length\x18\x06 \x01(\x03\x12\x1b\n\x13parent_namespace_id\x18\x07 \x01(\t\x12\x43\n\x10parent_execution\x18\x08 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x0e\x65xecution_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x04memo\x18\n \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0b \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12@\n\x11\x61uto_reset_points\x18\x0c \x01(\x0b\x32%.temporal.api.workflow.v1.ResetPoints\x12\x12\n\ntask_queue\x18\r \x01(\t\x12\x1e\n\x16state_transition_count\x18\x0e \x01(\x03\x12\x1a\n\x12history_size_bytes\x18\x0f \x01(\x03\x12T\n most_recent_worker_version_stamp\x18\x10 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12\x35\n\x12\x65xecution_duration\x18\x11 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x41\n\x0eroot_execution\x18\x12 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x19\n\x11\x61ssigned_build_id\x18\x13 \x01(\t\x12\x1a\n\x12inherited_build_id\x18\x14 \x01(\t"\xc7\x02\n\x17WorkflowExecutionConfig\x12\x38\n\ntask_queue\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12=\n\x1aworkflow_execution_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12@\n\x1d\x64\x65\x66\x61ult_workflow_task_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\ruser_metadata\x18\x05 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata"\x87\x06\n\x13PendingActivityInfo\x12\x13\n\x0b\x61\x63tivity_id\x18\x01 \x01(\t\x12;\n\ractivity_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12:\n\x05state\x18\x03 \x01(\x0e\x32+.temporal.api.enums.v1.PendingActivityState\x12;\n\x11heartbeat_details\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x37\n\x13last_heartbeat_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x11last_started_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\x07 \x01(\x05\x12\x18\n\x10maximum_attempts\x18\x08 \x01(\x05\x12\x32\n\x0escheduled_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x65xpiration_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x0clast_failure\x18\x0b \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1c\n\x14last_worker_identity\x18\x0c \x01(\t\x12\x37\n\x15use_workflow_build_id\x18\r \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12.\n$last_independently_assigned_build_id\x18\x0e \x01(\tH\x00\x12M\n\x19last_worker_version_stamp\x18\x0f \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x13\n\x11\x61ssigned_build_id"\xb9\x01\n\x19PendingChildExecutionInfo\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x1a\n\x12workflow_type_name\x18\x03 \x01(\t\x12\x14\n\x0cinitiated_id\x18\x04 \x01(\x03\x12\x45\n\x13parent_close_policy\x18\x05 \x01(\x0e\x32(.temporal.api.enums.v1.ParentClosePolicy"\x8d\x02\n\x17PendingWorkflowTaskInfo\x12>\n\x05state\x18\x01 \x01(\x0e\x32/.temporal.api.enums.v1.PendingWorkflowTaskState\x12\x32\n\x0escheduled_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17original_scheduled_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\x05 \x01(\x05"G\n\x0bResetPoints\x12\x38\n\x06points\x18\x01 \x03(\x0b\x32(.temporal.api.workflow.v1.ResetPointInfo"\xeb\x01\n\x0eResetPointInfo\x12\x10\n\x08\x62uild_id\x18\x07 \x01(\t\x12\x17\n\x0f\x62inary_checksum\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12(\n first_workflow_task_completed_id\x18\x03 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nresettable\x18\x06 \x01(\x08"\x86\x06\n\x18NewWorkflowExecutionInfo\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12;\n\rworkflow_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x03 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12=\n\x1aworkflow_execution_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x18workflow_id_reuse_policy\x18\x08 \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\n \x01(\t\x12*\n\x04memo\x18\x0b \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0c \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\r \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x38\n\ruser_metadata\x18\x0e \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata"\xba\x04\n\x0c\x43\x61llbackInfo\x12\x32\n\x08\x63\x61llback\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Callback\x12?\n\x07trigger\x18\x02 \x01(\x0b\x32..temporal.api.workflow.v1.CallbackInfo.Trigger\x12\x35\n\x11registration_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x05state\x18\x04 \x01(\x0e\x32$.temporal.api.enums.v1.CallbackState\x12\x0f\n\x07\x61ttempt\x18\x05 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\x07 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12>\n\x1anext_attempt_schedule_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x10\n\x0eWorkflowClosed\x1a\x66\n\x07Trigger\x12P\n\x0fworkflow_closed\x18\x01 \x01(\x0b\x32\x35.temporal.api.workflow.v1.CallbackInfo.WorkflowClosedH\x00\x42\t\n\x07variant"\xc1\x04\n\x19PendingNexusOperationInfo\x12\x10\n\x08\x65ndpoint\x18\x01 \x01(\t\x12\x0f\n\x07service\x18\x02 \x01(\t\x12\x11\n\toperation\x18\x03 \x01(\t\x12\x14\n\x0coperation_id\x18\x04 \x01(\t\x12<\n\x19schedule_to_close_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x32\n\x0escheduled_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x05state\x18\x07 \x01(\x0e\x32\x31.temporal.api.enums.v1.PendingNexusOperationState\x12\x0f\n\x07\x61ttempt\x18\x08 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\n \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12>\n\x1anext_attempt_schedule_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12S\n\x11\x63\x61ncellation_info\x18\x0c \x01(\x0b\x32\x38.temporal.api.workflow.v1.NexusOperationCancellationInfo"\xec\x02\n\x1eNexusOperationCancellationInfo\x12\x32\n\x0erequested_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\x05state\x18\x02 \x01(\x0e\x32\x36.temporal.api.enums.v1.NexusOperationCancellationState\x12\x0f\n\x07\x61ttempt\x18\x03 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12>\n\x1anext_attempt_schedule_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x93\x01\n\x1bio.temporal.api.workflow.v1B\x0cMessageProtoP\x01Z\'go.temporal.io/api/workflow/v1;workflow\xaa\x02\x1aTemporalio.Api.Workflow.V1\xea\x02\x1dTemporalio::Api::Workflow::V1b\x06proto3' + b'\n&temporal/api/workflow/v1/message.proto\x12\x18temporal.api.workflow.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a"temporal/api/enums/v1/common.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/taskqueue/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto"\xf7\x07\n\x15WorkflowExecutionInfo\x12<\n\texecution\x18\x01 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x04type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12.\n\nstart_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nclose_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x06status\x18\x05 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowExecutionStatus\x12\x16\n\x0ehistory_length\x18\x06 \x01(\x03\x12\x1b\n\x13parent_namespace_id\x18\x07 \x01(\t\x12\x43\n\x10parent_execution\x18\x08 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x0e\x65xecution_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12*\n\x04memo\x18\n \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0b \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12@\n\x11\x61uto_reset_points\x18\x0c \x01(\x0b\x32%.temporal.api.workflow.v1.ResetPoints\x12\x12\n\ntask_queue\x18\r \x01(\t\x12\x1e\n\x16state_transition_count\x18\x0e \x01(\x03\x12\x1a\n\x12history_size_bytes\x18\x0f \x01(\x03\x12T\n most_recent_worker_version_stamp\x18\x10 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12\x35\n\x12\x65xecution_duration\x18\x11 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x41\n\x0eroot_execution\x18\x12 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x19\n\x11\x61ssigned_build_id\x18\x13 \x01(\t\x12\x1a\n\x12inherited_build_id\x18\x14 \x01(\t\x12\x14\n\x0c\x66irst_run_id\x18\x15 \x01(\t"\xc7\x02\n\x17WorkflowExecutionConfig\x12\x38\n\ntask_queue\x18\x01 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12=\n\x1aworkflow_execution_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12@\n\x1d\x64\x65\x66\x61ult_workflow_task_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\ruser_metadata\x18\x05 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata"\xd2\x07\n\x13PendingActivityInfo\x12\x13\n\x0b\x61\x63tivity_id\x18\x01 \x01(\t\x12;\n\ractivity_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.ActivityType\x12:\n\x05state\x18\x03 \x01(\x0e\x32+.temporal.api.enums.v1.PendingActivityState\x12;\n\x11heartbeat_details\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x37\n\x13last_heartbeat_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x11last_started_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\x07 \x01(\x05\x12\x18\n\x10maximum_attempts\x18\x08 \x01(\x05\x12\x32\n\x0escheduled_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x0f\x65xpiration_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x0clast_failure\x18\x0b \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1c\n\x14last_worker_identity\x18\x0c \x01(\t\x12\x37\n\x15use_workflow_build_id\x18\r \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12.\n$last_independently_assigned_build_id\x18\x0e \x01(\tH\x00\x12M\n\x19last_worker_version_stamp\x18\x0f \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\x12\x39\n\x16\x63urrent_retry_interval\x18\x10 \x01(\x0b\x32\x19.google.protobuf.Duration\x12>\n\x1alast_attempt_complete_time\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x1anext_attempt_schedule_time\x18\x12 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06paused\x18\x13 \x01(\x08\x42\x13\n\x11\x61ssigned_build_id"\xb9\x01\n\x19PendingChildExecutionInfo\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x1a\n\x12workflow_type_name\x18\x03 \x01(\t\x12\x14\n\x0cinitiated_id\x18\x04 \x01(\x03\x12\x45\n\x13parent_close_policy\x18\x05 \x01(\x0e\x32(.temporal.api.enums.v1.ParentClosePolicy"\x8d\x02\n\x17PendingWorkflowTaskInfo\x12>\n\x05state\x18\x01 \x01(\x0e\x32/.temporal.api.enums.v1.PendingWorkflowTaskState\x12\x32\n\x0escheduled_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12;\n\x17original_scheduled_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\x05 \x01(\x05"G\n\x0bResetPoints\x12\x38\n\x06points\x18\x01 \x03(\x0b\x32(.temporal.api.workflow.v1.ResetPointInfo"\xeb\x01\n\x0eResetPointInfo\x12\x10\n\x08\x62uild_id\x18\x07 \x01(\t\x12\x17\n\x0f\x62inary_checksum\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12(\n first_workflow_task_completed_id\x18\x03 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x65xpire_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nresettable\x18\x06 \x01(\x08"\x86\x06\n\x18NewWorkflowExecutionInfo\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12;\n\rworkflow_type\x18\x02 \x01(\x0b\x32$.temporal.api.common.v1.WorkflowType\x12\x38\n\ntask_queue\x18\x03 \x01(\x0b\x32$.temporal.api.taskqueue.v1.TaskQueue\x12/\n\x05input\x18\x04 \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12=\n\x1aworkflow_execution_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x18workflow_id_reuse_policy\x18\x08 \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\n \x01(\t\x12*\n\x04memo\x18\x0b \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x0c \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\x06header\x18\r \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12\x38\n\ruser_metadata\x18\x0e \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata"\xba\x04\n\x0c\x43\x61llbackInfo\x12\x32\n\x08\x63\x61llback\x18\x01 \x01(\x0b\x32 .temporal.api.common.v1.Callback\x12?\n\x07trigger\x18\x02 \x01(\x0b\x32..temporal.api.workflow.v1.CallbackInfo.Trigger\x12\x35\n\x11registration_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x33\n\x05state\x18\x04 \x01(\x0e\x32$.temporal.api.enums.v1.CallbackState\x12\x0f\n\x07\x61ttempt\x18\x05 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\x07 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12>\n\x1anext_attempt_schedule_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x10\n\x0eWorkflowClosed\x1a\x66\n\x07Trigger\x12P\n\x0fworkflow_closed\x18\x01 \x01(\x0b\x32\x35.temporal.api.workflow.v1.CallbackInfo.WorkflowClosedH\x00\x42\t\n\x07variant"\xdd\x04\n\x19PendingNexusOperationInfo\x12\x10\n\x08\x65ndpoint\x18\x01 \x01(\t\x12\x0f\n\x07service\x18\x02 \x01(\t\x12\x11\n\toperation\x18\x03 \x01(\t\x12\x14\n\x0coperation_id\x18\x04 \x01(\t\x12<\n\x19schedule_to_close_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x32\n\x0escheduled_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x05state\x18\x07 \x01(\x0e\x32\x31.temporal.api.enums.v1.PendingNexusOperationState\x12\x0f\n\x07\x61ttempt\x18\x08 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\n \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12>\n\x1anext_attempt_schedule_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12S\n\x11\x63\x61ncellation_info\x18\x0c \x01(\x0b\x32\x38.temporal.api.workflow.v1.NexusOperationCancellationInfo\x12\x1a\n\x12scheduled_event_id\x18\r \x01(\x03"\xec\x02\n\x1eNexusOperationCancellationInfo\x12\x32\n\x0erequested_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\x05state\x18\x02 \x01(\x0e\x32\x36.temporal.api.enums.v1.NexusOperationCancellationState\x12\x0f\n\x07\x61ttempt\x18\x03 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12>\n\x1anext_attempt_schedule_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x93\x01\n\x1bio.temporal.api.workflow.v1B\x0cMessageProtoP\x01Z\'go.temporal.io/api/workflow/v1;workflow\xaa\x02\x1aTemporalio.Api.Workflow.V1\xea\x02\x1dTemporalio::Api::Workflow::V1b\x06proto3' ) @@ -206,29 +206,29 @@ DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b"\n\033io.temporal.api.workflow.v1B\014MessageProtoP\001Z'go.temporal.io/api/workflow/v1;workflow\252\002\032Temporalio.Api.Workflow.V1\352\002\035Temporalio::Api::Workflow::V1" _WORKFLOWEXECUTIONINFO._serialized_start = 396 - _WORKFLOWEXECUTIONINFO._serialized_end = 1389 - _WORKFLOWEXECUTIONCONFIG._serialized_start = 1392 - _WORKFLOWEXECUTIONCONFIG._serialized_end = 1719 - _PENDINGACTIVITYINFO._serialized_start = 1722 - _PENDINGACTIVITYINFO._serialized_end = 2497 - _PENDINGCHILDEXECUTIONINFO._serialized_start = 2500 - _PENDINGCHILDEXECUTIONINFO._serialized_end = 2685 - _PENDINGWORKFLOWTASKINFO._serialized_start = 2688 - _PENDINGWORKFLOWTASKINFO._serialized_end = 2957 - _RESETPOINTS._serialized_start = 2959 - _RESETPOINTS._serialized_end = 3030 - _RESETPOINTINFO._serialized_start = 3033 - _RESETPOINTINFO._serialized_end = 3268 - _NEWWORKFLOWEXECUTIONINFO._serialized_start = 3271 - _NEWWORKFLOWEXECUTIONINFO._serialized_end = 4045 - _CALLBACKINFO._serialized_start = 4048 - _CALLBACKINFO._serialized_end = 4618 - _CALLBACKINFO_WORKFLOWCLOSED._serialized_start = 4498 - _CALLBACKINFO_WORKFLOWCLOSED._serialized_end = 4514 - _CALLBACKINFO_TRIGGER._serialized_start = 4516 - _CALLBACKINFO_TRIGGER._serialized_end = 4618 - _PENDINGNEXUSOPERATIONINFO._serialized_start = 4621 - _PENDINGNEXUSOPERATIONINFO._serialized_end = 5198 - _NEXUSOPERATIONCANCELLATIONINFO._serialized_start = 5201 - _NEXUSOPERATIONCANCELLATIONINFO._serialized_end = 5565 + _WORKFLOWEXECUTIONINFO._serialized_end = 1411 + _WORKFLOWEXECUTIONCONFIG._serialized_start = 1414 + _WORKFLOWEXECUTIONCONFIG._serialized_end = 1741 + _PENDINGACTIVITYINFO._serialized_start = 1744 + _PENDINGACTIVITYINFO._serialized_end = 2722 + _PENDINGCHILDEXECUTIONINFO._serialized_start = 2725 + _PENDINGCHILDEXECUTIONINFO._serialized_end = 2910 + _PENDINGWORKFLOWTASKINFO._serialized_start = 2913 + _PENDINGWORKFLOWTASKINFO._serialized_end = 3182 + _RESETPOINTS._serialized_start = 3184 + _RESETPOINTS._serialized_end = 3255 + _RESETPOINTINFO._serialized_start = 3258 + _RESETPOINTINFO._serialized_end = 3493 + _NEWWORKFLOWEXECUTIONINFO._serialized_start = 3496 + _NEWWORKFLOWEXECUTIONINFO._serialized_end = 4270 + _CALLBACKINFO._serialized_start = 4273 + _CALLBACKINFO._serialized_end = 4843 + _CALLBACKINFO_WORKFLOWCLOSED._serialized_start = 4723 + _CALLBACKINFO_WORKFLOWCLOSED._serialized_end = 4739 + _CALLBACKINFO_TRIGGER._serialized_start = 4741 + _CALLBACKINFO_TRIGGER._serialized_end = 4843 + _PENDINGNEXUSOPERATIONINFO._serialized_start = 4846 + _PENDINGNEXUSOPERATIONINFO._serialized_end = 5451 + _NEXUSOPERATIONCANCELLATIONINFO._serialized_start = 5454 + _NEXUSOPERATIONCANCELLATIONINFO._serialized_end = 5818 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/workflow/v1/message_pb2.pyi b/temporalio/api/workflow/v1/message_pb2.pyi index e1001b12..d64c9c97 100644 --- a/temporalio/api/workflow/v1/message_pb2.pyi +++ b/temporalio/api/workflow/v1/message_pb2.pyi @@ -72,6 +72,7 @@ class WorkflowExecutionInfo(google.protobuf.message.Message): ROOT_EXECUTION_FIELD_NUMBER: builtins.int ASSIGNED_BUILD_ID_FIELD_NUMBER: builtins.int INHERITED_BUILD_ID_FIELD_NUMBER: builtins.int + FIRST_RUN_ID_FIELD_NUMBER: builtins.int @property def execution(self) -> temporalio.api.common.v1.message_pb2.WorkflowExecution: ... @property @@ -142,6 +143,14 @@ class WorkflowExecutionInfo(google.protobuf.message.Message): """Build ID inherited from a previous/parent execution. If present, assigned_build_id will be set to this, instead of using the assignment rules. """ + first_run_id: builtins.str + """The first run ID in the execution chain. + Executions created via the following operations are considered to be in the same chain + - ContinueAsNew + - Workflow Retry + - Workflow Reset + - Cron Schedule + """ def __init__( self, *, @@ -169,6 +178,7 @@ class WorkflowExecutionInfo(google.protobuf.message.Message): | None = ..., assigned_build_id: builtins.str = ..., inherited_build_id: builtins.str = ..., + first_run_id: builtins.str = ..., ) -> None: ... def HasField( self, @@ -214,6 +224,8 @@ class WorkflowExecutionInfo(google.protobuf.message.Message): b"execution_duration", "execution_time", b"execution_time", + "first_run_id", + b"first_run_id", "history_length", b"history_length", "history_size_bytes", @@ -330,6 +342,10 @@ class PendingActivityInfo(google.protobuf.message.Message): USE_WORKFLOW_BUILD_ID_FIELD_NUMBER: builtins.int LAST_INDEPENDENTLY_ASSIGNED_BUILD_ID_FIELD_NUMBER: builtins.int LAST_WORKER_VERSION_STAMP_FIELD_NUMBER: builtins.int + CURRENT_RETRY_INTERVAL_FIELD_NUMBER: builtins.int + LAST_ATTEMPT_COMPLETE_TIME_FIELD_NUMBER: builtins.int + NEXT_ATTEMPT_SCHEDULE_TIME_FIELD_NUMBER: builtins.int + PAUSED_FIELD_NUMBER: builtins.int activity_id: builtins.str @property def activity_type(self) -> temporalio.api.common.v1.message_pb2.ActivityType: ... @@ -363,6 +379,23 @@ class PendingActivityInfo(google.protobuf.message.Message): self, ) -> temporalio.api.common.v1.message_pb2.WorkerVersionStamp: """The version stamp of the worker to whom this activity was most recently dispatched""" + @property + def current_retry_interval(self) -> google.protobuf.duration_pb2.Duration: + """The time activity will wait until the next retry. + If activity is currently running it will be next retry interval if activity failed. + If activity is currently waiting it will be current retry interval. + If there will be no retry it will be null. + """ + @property + def last_attempt_complete_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The time when the last activity attempt was completed. If activity has not been completed yet then it will be null.""" + @property + def next_attempt_schedule_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Next time when activity will be scheduled. + If activity is currently scheduled or started it will be null. + """ + paused: builtins.bool + """Indicates if activity is paused.""" def __init__( self, *, @@ -382,6 +415,12 @@ class PendingActivityInfo(google.protobuf.message.Message): last_independently_assigned_build_id: builtins.str = ..., last_worker_version_stamp: temporalio.api.common.v1.message_pb2.WorkerVersionStamp | None = ..., + current_retry_interval: google.protobuf.duration_pb2.Duration | None = ..., + last_attempt_complete_time: google.protobuf.timestamp_pb2.Timestamp + | None = ..., + next_attempt_schedule_time: google.protobuf.timestamp_pb2.Timestamp + | None = ..., + paused: builtins.bool = ..., ) -> None: ... def HasField( self, @@ -390,10 +429,14 @@ class PendingActivityInfo(google.protobuf.message.Message): b"activity_type", "assigned_build_id", b"assigned_build_id", + "current_retry_interval", + b"current_retry_interval", "expiration_time", b"expiration_time", "heartbeat_details", b"heartbeat_details", + "last_attempt_complete_time", + b"last_attempt_complete_time", "last_failure", b"last_failure", "last_heartbeat_time", @@ -404,6 +447,8 @@ class PendingActivityInfo(google.protobuf.message.Message): b"last_started_time", "last_worker_version_stamp", b"last_worker_version_stamp", + "next_attempt_schedule_time", + b"next_attempt_schedule_time", "scheduled_time", b"scheduled_time", "use_workflow_build_id", @@ -421,10 +466,14 @@ class PendingActivityInfo(google.protobuf.message.Message): b"assigned_build_id", "attempt", b"attempt", + "current_retry_interval", + b"current_retry_interval", "expiration_time", b"expiration_time", "heartbeat_details", b"heartbeat_details", + "last_attempt_complete_time", + b"last_attempt_complete_time", "last_failure", b"last_failure", "last_heartbeat_time", @@ -439,6 +488,10 @@ class PendingActivityInfo(google.protobuf.message.Message): b"last_worker_version_stamp", "maximum_attempts", b"maximum_attempts", + "next_attempt_schedule_time", + b"next_attempt_schedule_time", + "paused", + b"paused", "scheduled_time", b"scheduled_time", "state", @@ -945,6 +998,7 @@ class PendingNexusOperationInfo(google.protobuf.message.Message): LAST_ATTEMPT_FAILURE_FIELD_NUMBER: builtins.int NEXT_ATTEMPT_SCHEDULE_TIME_FIELD_NUMBER: builtins.int CANCELLATION_INFO_FIELD_NUMBER: builtins.int + SCHEDULED_EVENT_ID_FIELD_NUMBER: builtins.int endpoint: builtins.str """Endpoint name. Resolved to a URL via the cluster's endpoint registry. @@ -981,6 +1035,10 @@ class PendingNexusOperationInfo(google.protobuf.message.Message): """The time when the next attempt is scheduled.""" @property def cancellation_info(self) -> global___NexusOperationCancellationInfo: ... + scheduled_event_id: builtins.int + """The event ID of the NexusOperationScheduled event. Can be used to correlate an operation in the + DescribeWorkflowExecution response with workflow history. + """ def __init__( self, *, @@ -999,6 +1057,7 @@ class PendingNexusOperationInfo(google.protobuf.message.Message): next_attempt_schedule_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., cancellation_info: global___NexusOperationCancellationInfo | None = ..., + scheduled_event_id: builtins.int = ..., ) -> None: ... def HasField( self, @@ -1038,6 +1097,8 @@ class PendingNexusOperationInfo(google.protobuf.message.Message): b"operation_id", "schedule_to_close_timeout", b"schedule_to_close_timeout", + "scheduled_event_id", + b"scheduled_event_id", "scheduled_time", b"scheduled_time", "service", diff --git a/temporalio/api/workflowservice/v1/__init__.py b/temporalio/api/workflowservice/v1/__init__.py index a0dafb3f..b5e22d32 100644 --- a/temporalio/api/workflowservice/v1/__init__.py +++ b/temporalio/api/workflowservice/v1/__init__.py @@ -57,6 +57,8 @@ ListWorkflowExecutionsResponse, PatchScheduleRequest, PatchScheduleResponse, + PauseActivityByIdRequest, + PauseActivityByIdResponse, PollActivityTaskQueueRequest, PollActivityTaskQueueResponse, PollNexusTaskQueueRequest, @@ -75,6 +77,8 @@ RegisterNamespaceResponse, RequestCancelWorkflowExecutionRequest, RequestCancelWorkflowExecutionResponse, + ResetActivityByIdRequest, + ResetActivityByIdResponse, ResetStickyTaskQueueRequest, ResetStickyTaskQueueResponse, ResetWorkflowExecutionRequest, @@ -103,6 +107,8 @@ RespondWorkflowTaskFailedResponse, ScanWorkflowExecutionsRequest, ScanWorkflowExecutionsResponse, + ShutdownWorkerRequest, + ShutdownWorkerResponse, SignalWithStartWorkflowExecutionRequest, SignalWithStartWorkflowExecutionResponse, SignalWorkflowExecutionRequest, @@ -115,6 +121,10 @@ StopBatchOperationResponse, TerminateWorkflowExecutionRequest, TerminateWorkflowExecutionResponse, + UnpauseActivityByIdRequest, + UnpauseActivityByIdResponse, + UpdateActivityOptionsByIdRequest, + UpdateActivityOptionsByIdResponse, UpdateNamespaceRequest, UpdateNamespaceResponse, UpdateScheduleRequest, @@ -186,6 +196,8 @@ "ListWorkflowExecutionsResponse", "PatchScheduleRequest", "PatchScheduleResponse", + "PauseActivityByIdRequest", + "PauseActivityByIdResponse", "PollActivityTaskQueueRequest", "PollActivityTaskQueueResponse", "PollNexusTaskQueueRequest", @@ -204,6 +216,8 @@ "RegisterNamespaceResponse", "RequestCancelWorkflowExecutionRequest", "RequestCancelWorkflowExecutionResponse", + "ResetActivityByIdRequest", + "ResetActivityByIdResponse", "ResetStickyTaskQueueRequest", "ResetStickyTaskQueueResponse", "ResetWorkflowExecutionRequest", @@ -232,6 +246,8 @@ "RespondWorkflowTaskFailedResponse", "ScanWorkflowExecutionsRequest", "ScanWorkflowExecutionsResponse", + "ShutdownWorkerRequest", + "ShutdownWorkerResponse", "SignalWithStartWorkflowExecutionRequest", "SignalWithStartWorkflowExecutionResponse", "SignalWorkflowExecutionRequest", @@ -244,6 +260,10 @@ "StopBatchOperationResponse", "TerminateWorkflowExecutionRequest", "TerminateWorkflowExecutionResponse", + "UnpauseActivityByIdRequest", + "UnpauseActivityByIdResponse", + "UpdateActivityOptionsByIdRequest", + "UpdateActivityOptionsByIdResponse", "UpdateNamespaceRequest", "UpdateNamespaceResponse", "UpdateScheduleRequest", diff --git a/temporalio/api/workflowservice/v1/request_response_pb2.py b/temporalio/api/workflowservice/v1/request_response_pb2.py index 6d4b1064..df9bfb50 100644 --- a/temporalio/api/workflowservice/v1/request_response_pb2.py +++ b/temporalio/api/workflowservice/v1/request_response_pb2.py @@ -15,8 +15,12 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from temporalio.api.activity.v1 import ( + message_pb2 as temporal_dot_api_dot_activity_dot_v1_dot_message__pb2, +) from temporalio.api.batch.v1 import ( message_pb2 as temporal_dot_api_dot_batch_dot_v1_dot_message__pb2, ) @@ -100,7 +104,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/workflow.proto\x1a%temporal/api/enums/v1/namespace.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a"temporal/api/enums/v1/common.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/update.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/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/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\x1egoogle/protobuf/duration.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"\xb3\t\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"\x9e\x01\n\x1eStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x03 \x01(\x08\x12[\n\x13\x65\x61ger_workflow_task\x18\x02 \x01(\x0b\x32>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse"\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"\xee\x01\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\x17\n\x0f\x62inary_checksum\x18\x04 \x01(\t\x12V\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilities"\xbe\x06\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\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"\xa4\x06\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\x17\n\x0f\x62inary_checksum\x18\x07 \x01(\t\x12m\n\rquery_results\x18\x08 \x03(\x0b\x32V.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.QueryResultsEntry\x12\x11\n\tnamespace\x18\t \x01(\t\x12H\n\x14worker_version_stamp\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\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\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"\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"\xdf\x02\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\x17\n\x0f\x62inary_checksum\x18\x05 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x33\n\x08messages\x18\x07 \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12\x42\n\x0eworker_version\x18\x08 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"#\n!RespondWorkflowTaskFailedResponse"\xa0\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\x12V\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilities"\xe8\x06\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"\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"?\n#RecordActivityTaskHeartbeatResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \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"C\n\'RecordActivityTaskHeartbeatByIdResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08"\xd4\x01\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\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"&\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"\x94\x02\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\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"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"\xd4\x01\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\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"%\n#RespondActivityTaskCanceledResponse"\xba\x01\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")\n\'RespondActivityTaskCanceledByIdResponse"\xd7\x01\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"(\n&RequestCancelWorkflowExecutionResponse"\xcc\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\x0f\n\x07\x63ontrol\x18\x07 \x01(\t\x12.\n\x06header\x18\x08 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12#\n\x1bskip_generate_workflow_task\x18\t \x01(\x08"!\n\x1fSignalWorkflowExecutionResponse"\xe0\x08\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\x0f\n\x07\x63ontrol\x18\x0e \x01(\t\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#\n\x1bskip_generate_workflow_task\x18\x15 \x01(\x08\x12\x38\n\ruser_metadata\x18\x17 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata"K\n(SignalWithStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x02 \x01(\x08"\xde\x02\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\x12\x43\n\x12reset_reapply_type\x18\x06 \x01(\x0e\x32\'.temporal.api.enums.v1.ResetReapplyType\x12S\n\x1breset_reapply_exclude_types\x18\x07 \x03(\x0e\x32..temporal.api.enums.v1.ResetReapplyExcludeType"0\n\x1eResetWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\xf2\x01\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"$\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"\xde\x01\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(\tJ\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"\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"\xc0\x04\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"\xe1\x03\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!\n\x19include_task_queue_status\x18\x04 \x01(\x08\x12>\n\x08\x61pi_mode\x18\x05 \x01(\x0e\x32,.temporal.api.enums.v1.DescribeTaskQueueMode\x12\x46\n\x08versions\x18\x06 \x01(\x0b\x32\x34.temporal.api.taskqueue.v1.TaskQueueVersionSelection\x12>\n\x10task_queue_types\x18\x07 \x03(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12\x14\n\x0creport_stats\x18\x08 \x01(\x08\x12\x16\n\x0ereport_pollers\x18\t \x01(\x08\x12 \n\x18report_task_reachability\x18\n \x01(\x08"\xe5\x02\n\x19\x44\x65scribeTaskQueueResponse\x12\x36\n\x07pollers\x18\x01 \x03(\x0b\x32%.temporal.api.taskqueue.v1.PollerInfo\x12\x45\n\x11task_queue_status\x18\x02 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueStatus\x12\x63\n\rversions_info\x18\x03 \x03(\x0b\x32L.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.VersionsInfoEntry\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"\x8b\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\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"\xe5\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\xd8\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"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"\xdd\x04\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\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"\xd2\x01\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\x12V\n\x1bworker_version_capabilities\x18\x04 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilities"a\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"\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\x08responseB\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/update.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/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/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\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"\xe0\t\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"\x9e\x01\n\x1eStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x03 \x01(\x08\x12[\n\x13\x65\x61ger_workflow_task\x18\x02 \x01(\x0b\x32>.temporal.api.workflowservice.v1.PollWorkflowTaskQueueResponse"\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"\xee\x01\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\x17\n\x0f\x62inary_checksum\x18\x04 \x01(\t\x12V\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilities"\xbe\x06\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\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"\xd4\x07\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\x17\n\x0f\x62inary_checksum\x18\x07 \x01(\t\x12m\n\rquery_results\x18\x08 \x03(\x0b\x32V.temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.QueryResultsEntry\x12\x11\n\tnamespace\x18\t \x01(\t\x12H\n\x14worker_version_stamp\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp\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\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"\xdf\x02\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\x17\n\x0f\x62inary_checksum\x18\x05 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x33\n\x08messages\x18\x07 \x03(\x0b\x32!.temporal.api.protocol.v1.Message\x12\x42\n\x0eworker_version\x18\x08 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"#\n!RespondWorkflowTaskFailedResponse"\xa0\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\x12V\n\x1bworker_version_capabilities\x18\x05 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilities"\xe8\x06\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"\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"X\n#RecordActivityTaskHeartbeatResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x63tivity_paused\x18\x02 \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"C\n\'RecordActivityTaskHeartbeatByIdResponse\x12\x18\n\x10\x63\x61ncel_requested\x18\x01 \x01(\x08"\xd4\x01\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\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"&\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"\x94\x02\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\x42\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"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"\xd4\x01\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\x42\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStamp"%\n#RespondActivityTaskCanceledResponse"\xba\x01\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")\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"\xf9\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\x0f\n\x07\x63ontrol\x18\x07 \x01(\t\x12.\n\x06header\x18\x08 \x01(\x0b\x32\x1e.temporal.api.common.v1.Header\x12#\n\x1bskip_generate_workflow_task\x18\t \x01(\x08\x12+\n\x05links\x18\n \x03(\x0b\x32\x1c.temporal.api.common.v1.Link"!\n\x1fSignalWorkflowExecutionResponse"\x8d\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\x0f\n\x07\x63ontrol\x18\x0e \x01(\t\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#\n\x1bskip_generate_workflow_task\x18\x15 \x01(\x08\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"K\n(SignalWithStartWorkflowExecutionResponse\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12\x0f\n\x07started\x18\x02 \x01(\x08"\xde\x02\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\x12\x43\n\x12reset_reapply_type\x18\x06 \x01(\x0e\x32\'.temporal.api.enums.v1.ResetReapplyType\x12S\n\x1breset_reapply_exclude_types\x18\x07 \x03(\x0e\x32..temporal.api.enums.v1.ResetReapplyExcludeType"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"\xde\x01\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(\tJ\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"g\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"\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"\xc0\x04\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"\xe1\x03\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!\n\x19include_task_queue_status\x18\x04 \x01(\x08\x12>\n\x08\x61pi_mode\x18\x05 \x01(\x0e\x32,.temporal.api.enums.v1.DescribeTaskQueueMode\x12\x46\n\x08versions\x18\x06 \x01(\x0b\x32\x34.temporal.api.taskqueue.v1.TaskQueueVersionSelection\x12>\n\x10task_queue_types\x18\x07 \x03(\x0e\x32$.temporal.api.enums.v1.TaskQueueType\x12\x14\n\x0creport_stats\x18\x08 \x01(\x08\x12\x16\n\x0ereport_pollers\x18\t \x01(\x08\x12 \n\x18report_task_reachability\x18\n \x01(\x08"\xe5\x02\n\x19\x44\x65scribeTaskQueueResponse\x12\x36\n\x07pollers\x18\x01 \x03(\x0b\x32%.temporal.api.taskqueue.v1.PollerInfo\x12\x45\n\x11task_queue_status\x18\x02 \x01(\x0b\x32*.temporal.api.taskqueue.v1.TaskQueueStatus\x12\x63\n\rversions_info\x18\x03 \x03(\x0b\x32L.temporal.api.workflowservice.v1.DescribeTaskQueueResponse.VersionsInfoEntry\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"\x8b\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\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"\xdd\x04\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\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"\xd2\x01\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\x12V\n\x1bworker_version_capabilities\x18\x04 \x01(\x0b\x32\x31.temporal.api.common.v1.WorkerVersionCapabilities"a\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"\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"\x8b\x02\n UpdateActivityOptionsByIdRequest\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\x10\n\x08identity\x18\x05 \x01(\t\x12\x43\n\x10\x61\x63tivity_options\x18\x06 \x01(\x0b\x32).temporal.api.activity.v1.ActivityOptions\x12/\n\x0bupdate_mask\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x12\n\nrequest_id\x18\x08 \x01(\t"h\n!UpdateActivityOptionsByIdResponse\x12\x43\n\x10\x61\x63tivity_options\x18\x01 \x01(\x0b\x32).temporal.api.activity.v1.ActivityOptions"\x8d\x01\n\x18PauseActivityByIdRequest\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\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t"\x1b\n\x19PauseActivityByIdResponse"\xb8\x03\n\x1aUnpauseActivityByIdRequest\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\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12]\n\x06resume\x18\x07 \x01(\x0b\x32K.temporal.api.workflowservice.v1.UnpauseActivityByIdRequest.ResumeOperationH\x00\x12[\n\x05reset\x18\x08 \x01(\x0b\x32J.temporal.api.workflowservice.v1.UnpauseActivityByIdRequest.ResetOperationH\x00\x1a"\n\x0fResumeOperation\x12\x0f\n\x07no_wait\x18\x01 \x01(\x08\x1a:\n\x0eResetOperation\x12\x0f\n\x07no_wait\x18\x01 \x01(\x08\x12\x17\n\x0freset_heartbeat\x18\x02 \x01(\x08\x42\x0b\n\toperation"\x1d\n\x1bUnpauseActivityByIdResponse"\xb7\x01\n\x18ResetActivityByIdRequest\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\x10\n\x08identity\x18\x05 \x01(\t\x12\x12\n\nrequest_id\x18\x06 \x01(\t\x12\x0f\n\x07no_wait\x18\x07 \x01(\x08\x12\x17\n\x0freset_heartbeat\x18\x08 \x01(\x08"\x1b\n\x19ResetActivityByIdResponseB\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' ) @@ -158,6 +162,9 @@ _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY = ( _RESPONDWORKFLOWTASKCOMPLETEDREQUEST.nested_types_by_name["QueryResultsEntry"] ) +_RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES = ( + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST.nested_types_by_name["Capabilities"] +) _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE = DESCRIPTOR.message_types_by_name[ "RespondWorkflowTaskCompletedResponse" ] @@ -317,6 +324,8 @@ _RESETSTICKYTASKQUEUERESPONSE = DESCRIPTOR.message_types_by_name[ "ResetStickyTaskQueueResponse" ] +_SHUTDOWNWORKERREQUEST = DESCRIPTOR.message_types_by_name["ShutdownWorkerRequest"] +_SHUTDOWNWORKERRESPONSE = DESCRIPTOR.message_types_by_name["ShutdownWorkerResponse"] _QUERYWORKFLOWREQUEST = DESCRIPTOR.message_types_by_name["QueryWorkflowRequest"] _QUERYWORKFLOWRESPONSE = DESCRIPTOR.message_types_by_name["QueryWorkflowResponse"] _DESCRIBEWORKFLOWEXECUTIONREQUEST = DESCRIPTOR.message_types_by_name[ @@ -503,6 +512,32 @@ _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE = ( _EXECUTEMULTIOPERATIONRESPONSE.nested_types_by_name["Response"] ) +_UPDATEACTIVITYOPTIONSBYIDREQUEST = DESCRIPTOR.message_types_by_name[ + "UpdateActivityOptionsByIdRequest" +] +_UPDATEACTIVITYOPTIONSBYIDRESPONSE = DESCRIPTOR.message_types_by_name[ + "UpdateActivityOptionsByIdResponse" +] +_PAUSEACTIVITYBYIDREQUEST = DESCRIPTOR.message_types_by_name["PauseActivityByIdRequest"] +_PAUSEACTIVITYBYIDRESPONSE = DESCRIPTOR.message_types_by_name[ + "PauseActivityByIdResponse" +] +_UNPAUSEACTIVITYBYIDREQUEST = DESCRIPTOR.message_types_by_name[ + "UnpauseActivityByIdRequest" +] +_UNPAUSEACTIVITYBYIDREQUEST_RESUMEOPERATION = ( + _UNPAUSEACTIVITYBYIDREQUEST.nested_types_by_name["ResumeOperation"] +) +_UNPAUSEACTIVITYBYIDREQUEST_RESETOPERATION = ( + _UNPAUSEACTIVITYBYIDREQUEST.nested_types_by_name["ResetOperation"] +) +_UNPAUSEACTIVITYBYIDRESPONSE = DESCRIPTOR.message_types_by_name[ + "UnpauseActivityByIdResponse" +] +_RESETACTIVITYBYIDREQUEST = DESCRIPTOR.message_types_by_name["ResetActivityByIdRequest"] +_RESETACTIVITYBYIDRESPONSE = DESCRIPTOR.message_types_by_name[ + "ResetActivityByIdResponse" +] RegisterNamespaceRequest = _reflection.GeneratedProtocolMessageType( "RegisterNamespaceRequest", (_message.Message,), @@ -734,6 +769,15 @@ # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.QueryResultsEntry) }, ), + "Capabilities": _reflection.GeneratedProtocolMessageType( + "Capabilities", + (_message.Message,), + { + "DESCRIPTOR": _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest.Capabilities) + }, + ), "DESCRIPTOR": _RESPONDWORKFLOWTASKCOMPLETEDREQUEST, "__module__": "temporal.api.workflowservice.v1.request_response_pb2", # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.RespondWorkflowTaskCompletedRequest) @@ -741,6 +785,7 @@ ) _sym_db.RegisterMessage(RespondWorkflowTaskCompletedRequest) _sym_db.RegisterMessage(RespondWorkflowTaskCompletedRequest.QueryResultsEntry) +_sym_db.RegisterMessage(RespondWorkflowTaskCompletedRequest.Capabilities) RespondWorkflowTaskCompletedResponse = _reflection.GeneratedProtocolMessageType( "RespondWorkflowTaskCompletedResponse", @@ -1323,6 +1368,28 @@ ) _sym_db.RegisterMessage(ResetStickyTaskQueueResponse) +ShutdownWorkerRequest = _reflection.GeneratedProtocolMessageType( + "ShutdownWorkerRequest", + (_message.Message,), + { + "DESCRIPTOR": _SHUTDOWNWORKERREQUEST, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.ShutdownWorkerRequest) + }, +) +_sym_db.RegisterMessage(ShutdownWorkerRequest) + +ShutdownWorkerResponse = _reflection.GeneratedProtocolMessageType( + "ShutdownWorkerResponse", + (_message.Message,), + { + "DESCRIPTOR": _SHUTDOWNWORKERRESPONSE, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.ShutdownWorkerResponse) + }, +) +_sym_db.RegisterMessage(ShutdownWorkerResponse) + QueryWorkflowRequest = _reflection.GeneratedProtocolMessageType( "QueryWorkflowRequest", (_message.Message,), @@ -2085,6 +2152,114 @@ _sym_db.RegisterMessage(ExecuteMultiOperationResponse) _sym_db.RegisterMessage(ExecuteMultiOperationResponse.Response) +UpdateActivityOptionsByIdRequest = _reflection.GeneratedProtocolMessageType( + "UpdateActivityOptionsByIdRequest", + (_message.Message,), + { + "DESCRIPTOR": _UPDATEACTIVITYOPTIONSBYIDREQUEST, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.UpdateActivityOptionsByIdRequest) + }, +) +_sym_db.RegisterMessage(UpdateActivityOptionsByIdRequest) + +UpdateActivityOptionsByIdResponse = _reflection.GeneratedProtocolMessageType( + "UpdateActivityOptionsByIdResponse", + (_message.Message,), + { + "DESCRIPTOR": _UPDATEACTIVITYOPTIONSBYIDRESPONSE, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.UpdateActivityOptionsByIdResponse) + }, +) +_sym_db.RegisterMessage(UpdateActivityOptionsByIdResponse) + +PauseActivityByIdRequest = _reflection.GeneratedProtocolMessageType( + "PauseActivityByIdRequest", + (_message.Message,), + { + "DESCRIPTOR": _PAUSEACTIVITYBYIDREQUEST, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.PauseActivityByIdRequest) + }, +) +_sym_db.RegisterMessage(PauseActivityByIdRequest) + +PauseActivityByIdResponse = _reflection.GeneratedProtocolMessageType( + "PauseActivityByIdResponse", + (_message.Message,), + { + "DESCRIPTOR": _PAUSEACTIVITYBYIDRESPONSE, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.PauseActivityByIdResponse) + }, +) +_sym_db.RegisterMessage(PauseActivityByIdResponse) + +UnpauseActivityByIdRequest = _reflection.GeneratedProtocolMessageType( + "UnpauseActivityByIdRequest", + (_message.Message,), + { + "ResumeOperation": _reflection.GeneratedProtocolMessageType( + "ResumeOperation", + (_message.Message,), + { + "DESCRIPTOR": _UNPAUSEACTIVITYBYIDREQUEST_RESUMEOPERATION, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.UnpauseActivityByIdRequest.ResumeOperation) + }, + ), + "ResetOperation": _reflection.GeneratedProtocolMessageType( + "ResetOperation", + (_message.Message,), + { + "DESCRIPTOR": _UNPAUSEACTIVITYBYIDREQUEST_RESETOPERATION, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.UnpauseActivityByIdRequest.ResetOperation) + }, + ), + "DESCRIPTOR": _UNPAUSEACTIVITYBYIDREQUEST, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.UnpauseActivityByIdRequest) + }, +) +_sym_db.RegisterMessage(UnpauseActivityByIdRequest) +_sym_db.RegisterMessage(UnpauseActivityByIdRequest.ResumeOperation) +_sym_db.RegisterMessage(UnpauseActivityByIdRequest.ResetOperation) + +UnpauseActivityByIdResponse = _reflection.GeneratedProtocolMessageType( + "UnpauseActivityByIdResponse", + (_message.Message,), + { + "DESCRIPTOR": _UNPAUSEACTIVITYBYIDRESPONSE, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.UnpauseActivityByIdResponse) + }, +) +_sym_db.RegisterMessage(UnpauseActivityByIdResponse) + +ResetActivityByIdRequest = _reflection.GeneratedProtocolMessageType( + "ResetActivityByIdRequest", + (_message.Message,), + { + "DESCRIPTOR": _RESETACTIVITYBYIDREQUEST, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.ResetActivityByIdRequest) + }, +) +_sym_db.RegisterMessage(ResetActivityByIdRequest) + +ResetActivityByIdResponse = _reflection.GeneratedProtocolMessageType( + "ResetActivityByIdResponse", + (_message.Message,), + { + "DESCRIPTOR": _RESETACTIVITYBYIDRESPONSE, + "__module__": "temporal.api.workflowservice.v1.request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.ResetActivityByIdResponse) + }, +) +_sym_db.RegisterMessage(ResetActivityByIdResponse) + if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b'\n"io.temporal.api.workflowservice.v1B\024RequestResponseProtoP\001Z5go.temporal.io/api/workflowservice/v1;workflowservice\252\002!Temporalio.Api.WorkflowService.V1\352\002$Temporalio::Api::WorkflowService::V1' @@ -2102,302 +2277,328 @@ _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_options = b"8\001" _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._options = None _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_options = b"8\001" - _REGISTERNAMESPACEREQUEST._serialized_start = 1220 - _REGISTERNAMESPACEREQUEST._serialized_end = 1868 - _REGISTERNAMESPACEREQUEST_DATAENTRY._serialized_start = 1825 - _REGISTERNAMESPACEREQUEST_DATAENTRY._serialized_end = 1868 - _REGISTERNAMESPACERESPONSE._serialized_start = 1870 - _REGISTERNAMESPACERESPONSE._serialized_end = 1897 - _LISTNAMESPACESREQUEST._serialized_start = 1900 - _LISTNAMESPACESREQUEST._serialized_end = 2037 - _LISTNAMESPACESRESPONSE._serialized_start = 2040 - _LISTNAMESPACESRESPONSE._serialized_end = 2169 - _DESCRIBENAMESPACEREQUEST._serialized_start = 2171 - _DESCRIBENAMESPACEREQUEST._serialized_end = 2228 - _DESCRIBENAMESPACERESPONSE._serialized_start = 2231 - _DESCRIBENAMESPACERESPONSE._serialized_end = 2595 - _UPDATENAMESPACEREQUEST._serialized_start = 2598 - _UPDATENAMESPACEREQUEST._serialized_end = 2933 - _UPDATENAMESPACERESPONSE._serialized_start = 2936 - _UPDATENAMESPACERESPONSE._serialized_end = 3227 - _DEPRECATENAMESPACEREQUEST._serialized_start = 3229 - _DEPRECATENAMESPACEREQUEST._serialized_end = 3299 - _DEPRECATENAMESPACERESPONSE._serialized_start = 3301 - _DEPRECATENAMESPACERESPONSE._serialized_end = 3329 - _STARTWORKFLOWEXECUTIONREQUEST._serialized_start = 3332 - _STARTWORKFLOWEXECUTIONREQUEST._serialized_end = 4535 - _STARTWORKFLOWEXECUTIONRESPONSE._serialized_start = 4538 - _STARTWORKFLOWEXECUTIONRESPONSE._serialized_end = 4696 - _GETWORKFLOWEXECUTIONHISTORYREQUEST._serialized_start = 4699 - _GETWORKFLOWEXECUTIONHISTORYREQUEST._serialized_end = 4997 - _GETWORKFLOWEXECUTIONHISTORYRESPONSE._serialized_start = 5000 - _GETWORKFLOWEXECUTIONHISTORYRESPONSE._serialized_end = 5186 - _GETWORKFLOWEXECUTIONHISTORYREVERSEREQUEST._serialized_start = 5189 - _GETWORKFLOWEXECUTIONHISTORYREVERSEREQUEST._serialized_end = 5365 - _GETWORKFLOWEXECUTIONHISTORYREVERSERESPONSE._serialized_start = 5367 - _GETWORKFLOWEXECUTIONHISTORYREVERSERESPONSE._serialized_end = 5487 - _POLLWORKFLOWTASKQUEUEREQUEST._serialized_start = 5490 - _POLLWORKFLOWTASKQUEUEREQUEST._serialized_end = 5728 - _POLLWORKFLOWTASKQUEUERESPONSE._serialized_start = 5731 - _POLLWORKFLOWTASKQUEUERESPONSE._serialized_end = 6561 - _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_start = 6477 - _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_end = 6561 - _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_start = 6564 - _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_end = 7368 - _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_start = 7273 - _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_end = 7368 - _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_start = 7371 - _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_end = 7616 - _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_start = 7619 - _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_end = 7970 - _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_start = 7972 - _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_end = 8007 - _POLLACTIVITYTASKQUEUEREQUEST._serialized_start = 8010 - _POLLACTIVITYTASKQUEUEREQUEST._serialized_end = 8298 - _POLLACTIVITYTASKQUEUERESPONSE._serialized_start = 8301 - _POLLACTIVITYTASKQUEUERESPONSE._serialized_end = 9173 - _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_start = 9176 - _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_end = 9320 - _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_start = 9322 - _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_end = 9385 - _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_start = 9388 - _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_end = 9574 - _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_start = 9576 - _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_end = 9643 - _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_start = 9646 - _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_end = 9858 - _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_start = 9860 - _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_end = 9898 - _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_start = 9901 - _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_end = 10087 - _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_start = 10089 - _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_end = 10131 - _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_start = 10134 - _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_end = 10410 - _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_start = 10412 - _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_end = 10499 - _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_start = 10502 - _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_end = 10752 - _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_start = 10754 - _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_end = 10845 - _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_start = 10848 - _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_end = 11060 - _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_start = 11062 - _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_end = 11099 - _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_start = 11102 - _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_end = 11288 - _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_start = 11290 - _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_end = 11331 - _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_start = 11334 - _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_end = 11549 - _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_start = 11551 - _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_end = 11591 - _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_start = 11594 - _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_end = 11926 - _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_start = 11928 - _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_end = 11961 - _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_start = 11964 - _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_end = 13084 - _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_start = 13086 - _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_end = 13161 - _RESETWORKFLOWEXECUTIONREQUEST._serialized_start = 13164 - _RESETWORKFLOWEXECUTIONREQUEST._serialized_end = 13514 - _RESETWORKFLOWEXECUTIONRESPONSE._serialized_start = 13516 - _RESETWORKFLOWEXECUTIONRESPONSE._serialized_end = 13564 - _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_start = 13567 - _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_end = 13809 - _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 13811 - _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 13847 - _DELETEWORKFLOWEXECUTIONREQUEST._serialized_start = 13849 - _DELETEWORKFLOWEXECUTIONREQUEST._serialized_end = 13971 - _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_start = 13973 - _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_end = 14006 - _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_start = 14009 - _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_end = 14338 - _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_start = 14341 - _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_end = 14471 - _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 14474 - _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 14868 - _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 14871 - _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15003 - _LISTWORKFLOWEXECUTIONSREQUEST._serialized_start = 15005 - _LISTWORKFLOWEXECUTIONSREQUEST._serialized_end = 15114 - _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15116 - _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15242 - _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 15244 - _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 15361 - _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15364 - _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15498 - _SCANWORKFLOWEXECUTIONSREQUEST._serialized_start = 15500 - _SCANWORKFLOWEXECUTIONSREQUEST._serialized_end = 15609 - _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15611 - _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15737 - _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_start = 15739 - _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_end = 15805 - _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15808 - _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 16045 - _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_start = 15957 - _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_end = 16045 - _GETSEARCHATTRIBUTESREQUEST._serialized_start = 16047 - _GETSEARCHATTRIBUTESREQUEST._serialized_end = 16075 - _GETSEARCHATTRIBUTESRESPONSE._serialized_start = 16078 - _GETSEARCHATTRIBUTESRESPONSE._serialized_end = 16279 - _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_start = 16195 - _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_end = 16279 - _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_start = 16282 - _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_end = 16504 - _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_start = 16506 - _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_end = 16541 - _RESETSTICKYTASKQUEUEREQUEST._serialized_start = 16543 - _RESETSTICKYTASKQUEUEREQUEST._serialized_end = 16653 - _RESETSTICKYTASKQUEUERESPONSE._serialized_start = 16655 - _RESETSTICKYTASKQUEUERESPONSE._serialized_end = 16685 - _QUERYWORKFLOWREQUEST._serialized_start = 16688 - _QUERYWORKFLOWREQUEST._serialized_end = 16921 - _QUERYWORKFLOWRESPONSE._serialized_start = 16924 - _QUERYWORKFLOWRESPONSE._serialized_end = 17065 - _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_start = 17067 - _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_end = 17182 - _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_start = 17185 - _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_end = 17761 - _DESCRIBETASKQUEUEREQUEST._serialized_start = 17764 - _DESCRIBETASKQUEUEREQUEST._serialized_end = 18245 - _DESCRIBETASKQUEUERESPONSE._serialized_start = 18248 - _DESCRIBETASKQUEUERESPONSE._serialized_end = 18605 - _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_start = 18505 - _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_end = 18605 - _GETCLUSTERINFOREQUEST._serialized_start = 18607 - _GETCLUSTERINFOREQUEST._serialized_end = 18630 - _GETCLUSTERINFORESPONSE._serialized_start = 18633 - _GETCLUSTERINFORESPONSE._serialized_end = 19028 - _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_start = 18973 - _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_end = 19028 - _GETSYSTEMINFOREQUEST._serialized_start = 19030 - _GETSYSTEMINFOREQUEST._serialized_end = 19052 - _GETSYSTEMINFORESPONSE._serialized_start = 19055 - _GETSYSTEMINFORESPONSE._serialized_end = 19540 - _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_start = 19196 - _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_end = 19540 - _LISTTASKQUEUEPARTITIONSREQUEST._serialized_start = 19542 - _LISTTASKQUEUEPARTITIONSREQUEST._serialized_end = 19651 - _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_start = 19654 - _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_end = 19877 - _CREATESCHEDULEREQUEST._serialized_start = 19880 - _CREATESCHEDULEREQUEST._serialized_end = 20212 - _CREATESCHEDULERESPONSE._serialized_start = 20214 - _CREATESCHEDULERESPONSE._serialized_end = 20262 - _DESCRIBESCHEDULEREQUEST._serialized_start = 20264 - _DESCRIBESCHEDULEREQUEST._serialized_end = 20329 - _DESCRIBESCHEDULERESPONSE._serialized_start = 20332 - _DESCRIBESCHEDULERESPONSE._serialized_end = 20603 - _UPDATESCHEDULEREQUEST._serialized_start = 20606 - _UPDATESCHEDULEREQUEST._serialized_end = 20854 - _UPDATESCHEDULERESPONSE._serialized_start = 20856 - _UPDATESCHEDULERESPONSE._serialized_end = 20880 - _PATCHSCHEDULEREQUEST._serialized_start = 20883 - _PATCHSCHEDULEREQUEST._serialized_end = 21039 - _PATCHSCHEDULERESPONSE._serialized_start = 21041 - _PATCHSCHEDULERESPONSE._serialized_end = 21064 - _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_start = 21067 - _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_end = 21235 - _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_start = 21237 - _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_end = 21320 - _DELETESCHEDULEREQUEST._serialized_start = 21322 - _DELETESCHEDULEREQUEST._serialized_end = 21403 - _DELETESCHEDULERESPONSE._serialized_start = 21405 - _DELETESCHEDULERESPONSE._serialized_end = 21429 - _LISTSCHEDULESREQUEST._serialized_start = 21431 - _LISTSCHEDULESREQUEST._serialized_end = 21539 - _LISTSCHEDULESRESPONSE._serialized_start = 21541 - _LISTSCHEDULESRESPONSE._serialized_end = 21653 - _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 21656 - _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 22302 - _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_ADDNEWCOMPATIBLEVERSION._serialized_start = 22103 + _REGISTERNAMESPACEREQUEST._serialized_start = 1294 + _REGISTERNAMESPACEREQUEST._serialized_end = 1942 + _REGISTERNAMESPACEREQUEST_DATAENTRY._serialized_start = 1899 + _REGISTERNAMESPACEREQUEST_DATAENTRY._serialized_end = 1942 + _REGISTERNAMESPACERESPONSE._serialized_start = 1944 + _REGISTERNAMESPACERESPONSE._serialized_end = 1971 + _LISTNAMESPACESREQUEST._serialized_start = 1974 + _LISTNAMESPACESREQUEST._serialized_end = 2111 + _LISTNAMESPACESRESPONSE._serialized_start = 2114 + _LISTNAMESPACESRESPONSE._serialized_end = 2243 + _DESCRIBENAMESPACEREQUEST._serialized_start = 2245 + _DESCRIBENAMESPACEREQUEST._serialized_end = 2302 + _DESCRIBENAMESPACERESPONSE._serialized_start = 2305 + _DESCRIBENAMESPACERESPONSE._serialized_end = 2669 + _UPDATENAMESPACEREQUEST._serialized_start = 2672 + _UPDATENAMESPACEREQUEST._serialized_end = 3007 + _UPDATENAMESPACERESPONSE._serialized_start = 3010 + _UPDATENAMESPACERESPONSE._serialized_end = 3301 + _DEPRECATENAMESPACEREQUEST._serialized_start = 3303 + _DEPRECATENAMESPACEREQUEST._serialized_end = 3373 + _DEPRECATENAMESPACERESPONSE._serialized_start = 3375 + _DEPRECATENAMESPACERESPONSE._serialized_end = 3403 + _STARTWORKFLOWEXECUTIONREQUEST._serialized_start = 3406 + _STARTWORKFLOWEXECUTIONREQUEST._serialized_end = 4654 + _STARTWORKFLOWEXECUTIONRESPONSE._serialized_start = 4657 + _STARTWORKFLOWEXECUTIONRESPONSE._serialized_end = 4815 + _GETWORKFLOWEXECUTIONHISTORYREQUEST._serialized_start = 4818 + _GETWORKFLOWEXECUTIONHISTORYREQUEST._serialized_end = 5116 + _GETWORKFLOWEXECUTIONHISTORYRESPONSE._serialized_start = 5119 + _GETWORKFLOWEXECUTIONHISTORYRESPONSE._serialized_end = 5305 + _GETWORKFLOWEXECUTIONHISTORYREVERSEREQUEST._serialized_start = 5308 + _GETWORKFLOWEXECUTIONHISTORYREVERSEREQUEST._serialized_end = 5484 + _GETWORKFLOWEXECUTIONHISTORYREVERSERESPONSE._serialized_start = 5486 + _GETWORKFLOWEXECUTIONHISTORYREVERSERESPONSE._serialized_end = 5606 + _POLLWORKFLOWTASKQUEUEREQUEST._serialized_start = 5609 + _POLLWORKFLOWTASKQUEUEREQUEST._serialized_end = 5847 + _POLLWORKFLOWTASKQUEUERESPONSE._serialized_start = 5850 + _POLLWORKFLOWTASKQUEUERESPONSE._serialized_end = 6680 + _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_start = 6596 + _POLLWORKFLOWTASKQUEUERESPONSE_QUERIESENTRY._serialized_end = 6680 + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_start = 6683 + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST._serialized_end = 7663 + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_start = 7497 + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_QUERYRESULTSENTRY._serialized_end = 7592 + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES._serialized_start = 7594 + _RESPONDWORKFLOWTASKCOMPLETEDREQUEST_CAPABILITIES._serialized_end = 7663 + _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_start = 7666 + _RESPONDWORKFLOWTASKCOMPLETEDRESPONSE._serialized_end = 7911 + _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_start = 7914 + _RESPONDWORKFLOWTASKFAILEDREQUEST._serialized_end = 8265 + _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_start = 8267 + _RESPONDWORKFLOWTASKFAILEDRESPONSE._serialized_end = 8302 + _POLLACTIVITYTASKQUEUEREQUEST._serialized_start = 8305 + _POLLACTIVITYTASKQUEUEREQUEST._serialized_end = 8593 + _POLLACTIVITYTASKQUEUERESPONSE._serialized_start = 8596 + _POLLACTIVITYTASKQUEUERESPONSE._serialized_end = 9468 + _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_start = 9471 + _RECORDACTIVITYTASKHEARTBEATREQUEST._serialized_end = 9615 + _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_start = 9617 + _RECORDACTIVITYTASKHEARTBEATRESPONSE._serialized_end = 9705 + _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_start = 9708 + _RECORDACTIVITYTASKHEARTBEATBYIDREQUEST._serialized_end = 9894 + _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_start = 9896 + _RECORDACTIVITYTASKHEARTBEATBYIDRESPONSE._serialized_end = 9963 + _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_start = 9966 + _RESPONDACTIVITYTASKCOMPLETEDREQUEST._serialized_end = 10178 + _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_start = 10180 + _RESPONDACTIVITYTASKCOMPLETEDRESPONSE._serialized_end = 10218 + _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_start = 10221 + _RESPONDACTIVITYTASKCOMPLETEDBYIDREQUEST._serialized_end = 10407 + _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_start = 10409 + _RESPONDACTIVITYTASKCOMPLETEDBYIDRESPONSE._serialized_end = 10451 + _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_start = 10454 + _RESPONDACTIVITYTASKFAILEDREQUEST._serialized_end = 10730 + _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_start = 10732 + _RESPONDACTIVITYTASKFAILEDRESPONSE._serialized_end = 10819 + _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_start = 10822 + _RESPONDACTIVITYTASKFAILEDBYIDREQUEST._serialized_end = 11072 + _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_start = 11074 + _RESPONDACTIVITYTASKFAILEDBYIDRESPONSE._serialized_end = 11165 + _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_start = 11168 + _RESPONDACTIVITYTASKCANCELEDREQUEST._serialized_end = 11380 + _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_start = 11382 + _RESPONDACTIVITYTASKCANCELEDRESPONSE._serialized_end = 11419 + _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_start = 11422 + _RESPONDACTIVITYTASKCANCELEDBYIDREQUEST._serialized_end = 11608 + _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_start = 11610 + _RESPONDACTIVITYTASKCANCELEDBYIDRESPONSE._serialized_end = 11651 + _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_start = 11654 + _REQUESTCANCELWORKFLOWEXECUTIONREQUEST._serialized_end = 11914 + _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_start = 11916 + _REQUESTCANCELWORKFLOWEXECUTIONRESPONSE._serialized_end = 11956 + _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_start = 11959 + _SIGNALWORKFLOWEXECUTIONREQUEST._serialized_end = 12336 + _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_start = 12338 + _SIGNALWORKFLOWEXECUTIONRESPONSE._serialized_end = 12371 + _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_start = 12374 + _SIGNALWITHSTARTWORKFLOWEXECUTIONREQUEST._serialized_end = 13539 + _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_start = 13541 + _SIGNALWITHSTARTWORKFLOWEXECUTIONRESPONSE._serialized_end = 13616 + _RESETWORKFLOWEXECUTIONREQUEST._serialized_start = 13619 + _RESETWORKFLOWEXECUTIONREQUEST._serialized_end = 13969 + _RESETWORKFLOWEXECUTIONRESPONSE._serialized_start = 13971 + _RESETWORKFLOWEXECUTIONRESPONSE._serialized_end = 14019 + _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_start = 14022 + _TERMINATEWORKFLOWEXECUTIONREQUEST._serialized_end = 14309 + _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 14311 + _TERMINATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 14347 + _DELETEWORKFLOWEXECUTIONREQUEST._serialized_start = 14349 + _DELETEWORKFLOWEXECUTIONREQUEST._serialized_end = 14471 + _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_start = 14473 + _DELETEWORKFLOWEXECUTIONRESPONSE._serialized_end = 14506 + _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_start = 14509 + _LISTOPENWORKFLOWEXECUTIONSREQUEST._serialized_end = 14838 + _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_start = 14841 + _LISTOPENWORKFLOWEXECUTIONSRESPONSE._serialized_end = 14971 + _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 14974 + _LISTCLOSEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 15368 + _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15371 + _LISTCLOSEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15503 + _LISTWORKFLOWEXECUTIONSREQUEST._serialized_start = 15505 + _LISTWORKFLOWEXECUTIONSREQUEST._serialized_end = 15614 + _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15616 + _LISTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15742 + _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_start = 15744 + _LISTARCHIVEDWORKFLOWEXECUTIONSREQUEST._serialized_end = 15861 + _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_start = 15864 + _LISTARCHIVEDWORKFLOWEXECUTIONSRESPONSE._serialized_end = 15998 + _SCANWORKFLOWEXECUTIONSREQUEST._serialized_start = 16000 + _SCANWORKFLOWEXECUTIONSREQUEST._serialized_end = 16109 + _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_start = 16111 + _SCANWORKFLOWEXECUTIONSRESPONSE._serialized_end = 16237 + _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_start = 16239 + _COUNTWORKFLOWEXECUTIONSREQUEST._serialized_end = 16305 + _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_start = 16308 + _COUNTWORKFLOWEXECUTIONSRESPONSE._serialized_end = 16545 + _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_start = 16457 + _COUNTWORKFLOWEXECUTIONSRESPONSE_AGGREGATIONGROUP._serialized_end = 16545 + _GETSEARCHATTRIBUTESREQUEST._serialized_start = 16547 + _GETSEARCHATTRIBUTESREQUEST._serialized_end = 16575 + _GETSEARCHATTRIBUTESRESPONSE._serialized_start = 16578 + _GETSEARCHATTRIBUTESRESPONSE._serialized_end = 16779 + _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_start = 16695 + _GETSEARCHATTRIBUTESRESPONSE_KEYSENTRY._serialized_end = 16779 + _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_start = 16782 + _RESPONDQUERYTASKCOMPLETEDREQUEST._serialized_end = 17004 + _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_start = 17006 + _RESPONDQUERYTASKCOMPLETEDRESPONSE._serialized_end = 17041 + _RESETSTICKYTASKQUEUEREQUEST._serialized_start = 17043 + _RESETSTICKYTASKQUEUEREQUEST._serialized_end = 17153 + _RESETSTICKYTASKQUEUERESPONSE._serialized_start = 17155 + _RESETSTICKYTASKQUEUERESPONSE._serialized_end = 17185 + _SHUTDOWNWORKERREQUEST._serialized_start = 17187 + _SHUTDOWNWORKERREQUEST._serialized_end = 17290 + _SHUTDOWNWORKERRESPONSE._serialized_start = 17292 + _SHUTDOWNWORKERRESPONSE._serialized_end = 17316 + _QUERYWORKFLOWREQUEST._serialized_start = 17319 + _QUERYWORKFLOWREQUEST._serialized_end = 17552 + _QUERYWORKFLOWRESPONSE._serialized_start = 17555 + _QUERYWORKFLOWRESPONSE._serialized_end = 17696 + _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_start = 17698 + _DESCRIBEWORKFLOWEXECUTIONREQUEST._serialized_end = 17813 + _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_start = 17816 + _DESCRIBEWORKFLOWEXECUTIONRESPONSE._serialized_end = 18392 + _DESCRIBETASKQUEUEREQUEST._serialized_start = 18395 + _DESCRIBETASKQUEUEREQUEST._serialized_end = 18876 + _DESCRIBETASKQUEUERESPONSE._serialized_start = 18879 + _DESCRIBETASKQUEUERESPONSE._serialized_end = 19236 + _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_start = 19136 + _DESCRIBETASKQUEUERESPONSE_VERSIONSINFOENTRY._serialized_end = 19236 + _GETCLUSTERINFOREQUEST._serialized_start = 19238 + _GETCLUSTERINFOREQUEST._serialized_end = 19261 + _GETCLUSTERINFORESPONSE._serialized_start = 19264 + _GETCLUSTERINFORESPONSE._serialized_end = 19659 + _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_start = 19604 + _GETCLUSTERINFORESPONSE_SUPPORTEDCLIENTSENTRY._serialized_end = 19659 + _GETSYSTEMINFOREQUEST._serialized_start = 19661 + _GETSYSTEMINFOREQUEST._serialized_end = 19683 + _GETSYSTEMINFORESPONSE._serialized_start = 19686 + _GETSYSTEMINFORESPONSE._serialized_end = 20186 + _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_start = 19827 + _GETSYSTEMINFORESPONSE_CAPABILITIES._serialized_end = 20186 + _LISTTASKQUEUEPARTITIONSREQUEST._serialized_start = 20188 + _LISTTASKQUEUEPARTITIONSREQUEST._serialized_end = 20297 + _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_start = 20300 + _LISTTASKQUEUEPARTITIONSRESPONSE._serialized_end = 20523 + _CREATESCHEDULEREQUEST._serialized_start = 20526 + _CREATESCHEDULEREQUEST._serialized_end = 20858 + _CREATESCHEDULERESPONSE._serialized_start = 20860 + _CREATESCHEDULERESPONSE._serialized_end = 20908 + _DESCRIBESCHEDULEREQUEST._serialized_start = 20910 + _DESCRIBESCHEDULEREQUEST._serialized_end = 20975 + _DESCRIBESCHEDULERESPONSE._serialized_start = 20978 + _DESCRIBESCHEDULERESPONSE._serialized_end = 21249 + _UPDATESCHEDULEREQUEST._serialized_start = 21252 + _UPDATESCHEDULEREQUEST._serialized_end = 21500 + _UPDATESCHEDULERESPONSE._serialized_start = 21502 + _UPDATESCHEDULERESPONSE._serialized_end = 21526 + _PATCHSCHEDULEREQUEST._serialized_start = 21529 + _PATCHSCHEDULEREQUEST._serialized_end = 21685 + _PATCHSCHEDULERESPONSE._serialized_start = 21687 + _PATCHSCHEDULERESPONSE._serialized_end = 21710 + _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_start = 21713 + _LISTSCHEDULEMATCHINGTIMESREQUEST._serialized_end = 21881 + _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_start = 21883 + _LISTSCHEDULEMATCHINGTIMESRESPONSE._serialized_end = 21966 + _DELETESCHEDULEREQUEST._serialized_start = 21968 + _DELETESCHEDULEREQUEST._serialized_end = 22049 + _DELETESCHEDULERESPONSE._serialized_start = 22051 + _DELETESCHEDULERESPONSE._serialized_end = 22075 + _LISTSCHEDULESREQUEST._serialized_start = 22077 + _LISTSCHEDULESREQUEST._serialized_end = 22185 + _LISTSCHEDULESRESPONSE._serialized_start = 22187 + _LISTSCHEDULESRESPONSE._serialized_end = 22299 + _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 22302 + _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 22948 + _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_ADDNEWCOMPATIBLEVERSION._serialized_start = 22749 _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_ADDNEWCOMPATIBLEVERSION._serialized_end = ( - 22214 + 22860 ) - _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_start = 22216 - _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_end = 22289 - _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 22304 - _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 22368 - _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 22370 - _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 22465 - _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 22467 - _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 22583 - _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_start = 22586 - _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_end = 24303 - _UPDATEWORKERVERSIONINGRULESREQUEST_INSERTBUILDIDASSIGNMENTRULE._serialized_start = 23638 + _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_start = 22862 + _UPDATEWORKERBUILDIDCOMPATIBILITYREQUEST_MERGESETS._serialized_end = 22935 + _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 22950 + _UPDATEWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 23014 + _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_start = 23016 + _GETWORKERBUILDIDCOMPATIBILITYREQUEST._serialized_end = 23111 + _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_start = 23113 + _GETWORKERBUILDIDCOMPATIBILITYRESPONSE._serialized_end = 23229 + _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_start = 23232 + _UPDATEWORKERVERSIONINGRULESREQUEST._serialized_end = 24949 + _UPDATEWORKERVERSIONINGRULESREQUEST_INSERTBUILDIDASSIGNMENTRULE._serialized_start = 24284 _UPDATEWORKERVERSIONINGRULESREQUEST_INSERTBUILDIDASSIGNMENTRULE._serialized_end = ( - 23751 + 24397 ) - _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACEBUILDIDASSIGNMENTRULE._serialized_start = 23754 + _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACEBUILDIDASSIGNMENTRULE._serialized_start = 24400 _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACEBUILDIDASSIGNMENTRULE._serialized_end = ( - 23883 + 24529 ) - _UPDATEWORKERVERSIONINGRULESREQUEST_DELETEBUILDIDASSIGNMENTRULE._serialized_start = 23885 + _UPDATEWORKERVERSIONINGRULESREQUEST_DELETEBUILDIDASSIGNMENTRULE._serialized_start = 24531 _UPDATEWORKERVERSIONINGRULESREQUEST_DELETEBUILDIDASSIGNMENTRULE._serialized_end = ( - 23949 + 24595 ) - _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 23951 - _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 24057 - _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 24059 - _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 24169 - _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 24171 - _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 24233 - _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_start = 24235 - _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_end = 24290 - _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_start = 24306 - _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_end = 24558 - _GETWORKERVERSIONINGRULESREQUEST._serialized_start = 24560 - _GETWORKERVERSIONINGRULESREQUEST._serialized_end = 24632 - _GETWORKERVERSIONINGRULESRESPONSE._serialized_start = 24635 - _GETWORKERVERSIONINGRULESRESPONSE._serialized_end = 24884 - _GETWORKERTASKREACHABILITYREQUEST._serialized_start = 24887 - _GETWORKERTASKREACHABILITYREQUEST._serialized_end = 25043 - _GETWORKERTASKREACHABILITYRESPONSE._serialized_start = 25045 - _GETWORKERTASKREACHABILITYRESPONSE._serialized_end = 25159 - _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_start = 25162 - _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_end = 25423 - _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 25426 - _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 25641 - _STARTBATCHOPERATIONREQUEST._serialized_start = 25644 - _STARTBATCHOPERATIONREQUEST._serialized_end = 26249 - _STARTBATCHOPERATIONRESPONSE._serialized_start = 26251 - _STARTBATCHOPERATIONRESPONSE._serialized_end = 26280 - _STOPBATCHOPERATIONREQUEST._serialized_start = 26282 - _STOPBATCHOPERATIONREQUEST._serialized_end = 26378 - _STOPBATCHOPERATIONRESPONSE._serialized_start = 26380 - _STOPBATCHOPERATIONRESPONSE._serialized_end = 26408 - _DESCRIBEBATCHOPERATIONREQUEST._serialized_start = 26410 - _DESCRIBEBATCHOPERATIONREQUEST._serialized_end = 26476 - _DESCRIBEBATCHOPERATIONRESPONSE._serialized_start = 26479 - _DESCRIBEBATCHOPERATIONRESPONSE._serialized_end = 26881 - _LISTBATCHOPERATIONSREQUEST._serialized_start = 26883 - _LISTBATCHOPERATIONSREQUEST._serialized_end = 26974 - _LISTBATCHOPERATIONSRESPONSE._serialized_start = 26976 - _LISTBATCHOPERATIONSRESPONSE._serialized_end = 27097 - _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_start = 27100 - _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_end = 27285 - _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_start = 27288 - _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_end = 27507 - _POLLNEXUSTASKQUEUEREQUEST._serialized_start = 27510 - _POLLNEXUSTASKQUEUEREQUEST._serialized_end = 27720 - _POLLNEXUSTASKQUEUERESPONSE._serialized_start = 27722 - _POLLNEXUSTASKQUEUERESPONSE._serialized_end = 27819 - _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_start = 27822 - _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_end = 27964 - _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_start = 27966 - _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_end = 28001 - _RESPONDNEXUSTASKFAILEDREQUEST._serialized_start = 28004 - _RESPONDNEXUSTASKFAILEDREQUEST._serialized_end = 28144 - _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_start = 28146 - _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_end = 28178 - _EXECUTEMULTIOPERATIONREQUEST._serialized_start = 28181 - _EXECUTEMULTIOPERATIONREQUEST._serialized_end = 28532 - _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_start = 28326 - _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_end = 28532 - _EXECUTEMULTIOPERATIONRESPONSE._serialized_start = 28535 - _EXECUTEMULTIOPERATIONRESPONSE._serialized_end = 28867 - _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_start = 28661 - _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_end = 28867 + _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 24597 + _UPDATEWORKERVERSIONINGRULESREQUEST_ADDCOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 24703 + _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 24705 + _UPDATEWORKERVERSIONINGRULESREQUEST_REPLACECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 24815 + _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_start = 24817 + _UPDATEWORKERVERSIONINGRULESREQUEST_DELETECOMPATIBLEBUILDIDREDIRECTRULE._serialized_end = 24879 + _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_start = 24881 + _UPDATEWORKERVERSIONINGRULESREQUEST_COMMITBUILDID._serialized_end = 24936 + _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_start = 24952 + _UPDATEWORKERVERSIONINGRULESRESPONSE._serialized_end = 25204 + _GETWORKERVERSIONINGRULESREQUEST._serialized_start = 25206 + _GETWORKERVERSIONINGRULESREQUEST._serialized_end = 25278 + _GETWORKERVERSIONINGRULESRESPONSE._serialized_start = 25281 + _GETWORKERVERSIONINGRULESRESPONSE._serialized_end = 25530 + _GETWORKERTASKREACHABILITYREQUEST._serialized_start = 25533 + _GETWORKERTASKREACHABILITYREQUEST._serialized_end = 25689 + _GETWORKERTASKREACHABILITYRESPONSE._serialized_start = 25691 + _GETWORKERTASKREACHABILITYRESPONSE._serialized_end = 25805 + _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_start = 25808 + _UPDATEWORKFLOWEXECUTIONREQUEST._serialized_end = 26069 + _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_start = 26072 + _UPDATEWORKFLOWEXECUTIONRESPONSE._serialized_end = 26287 + _STARTBATCHOPERATIONREQUEST._serialized_start = 26290 + _STARTBATCHOPERATIONREQUEST._serialized_end = 26895 + _STARTBATCHOPERATIONRESPONSE._serialized_start = 26897 + _STARTBATCHOPERATIONRESPONSE._serialized_end = 26926 + _STOPBATCHOPERATIONREQUEST._serialized_start = 26928 + _STOPBATCHOPERATIONREQUEST._serialized_end = 27024 + _STOPBATCHOPERATIONRESPONSE._serialized_start = 27026 + _STOPBATCHOPERATIONRESPONSE._serialized_end = 27054 + _DESCRIBEBATCHOPERATIONREQUEST._serialized_start = 27056 + _DESCRIBEBATCHOPERATIONREQUEST._serialized_end = 27122 + _DESCRIBEBATCHOPERATIONRESPONSE._serialized_start = 27125 + _DESCRIBEBATCHOPERATIONRESPONSE._serialized_end = 27527 + _LISTBATCHOPERATIONSREQUEST._serialized_start = 27529 + _LISTBATCHOPERATIONSREQUEST._serialized_end = 27620 + _LISTBATCHOPERATIONSRESPONSE._serialized_start = 27622 + _LISTBATCHOPERATIONSRESPONSE._serialized_end = 27743 + _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_start = 27746 + _POLLWORKFLOWEXECUTIONUPDATEREQUEST._serialized_end = 27931 + _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_start = 27934 + _POLLWORKFLOWEXECUTIONUPDATERESPONSE._serialized_end = 28153 + _POLLNEXUSTASKQUEUEREQUEST._serialized_start = 28156 + _POLLNEXUSTASKQUEUEREQUEST._serialized_end = 28366 + _POLLNEXUSTASKQUEUERESPONSE._serialized_start = 28368 + _POLLNEXUSTASKQUEUERESPONSE._serialized_end = 28465 + _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_start = 28468 + _RESPONDNEXUSTASKCOMPLETEDREQUEST._serialized_end = 28610 + _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_start = 28612 + _RESPONDNEXUSTASKCOMPLETEDRESPONSE._serialized_end = 28647 + _RESPONDNEXUSTASKFAILEDREQUEST._serialized_start = 28650 + _RESPONDNEXUSTASKFAILEDREQUEST._serialized_end = 28790 + _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_start = 28792 + _RESPONDNEXUSTASKFAILEDRESPONSE._serialized_end = 28824 + _EXECUTEMULTIOPERATIONREQUEST._serialized_start = 28827 + _EXECUTEMULTIOPERATIONREQUEST._serialized_end = 29178 + _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_start = 28972 + _EXECUTEMULTIOPERATIONREQUEST_OPERATION._serialized_end = 29178 + _EXECUTEMULTIOPERATIONRESPONSE._serialized_start = 29181 + _EXECUTEMULTIOPERATIONRESPONSE._serialized_end = 29513 + _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_start = 29307 + _EXECUTEMULTIOPERATIONRESPONSE_RESPONSE._serialized_end = 29513 + _UPDATEACTIVITYOPTIONSBYIDREQUEST._serialized_start = 29516 + _UPDATEACTIVITYOPTIONSBYIDREQUEST._serialized_end = 29783 + _UPDATEACTIVITYOPTIONSBYIDRESPONSE._serialized_start = 29785 + _UPDATEACTIVITYOPTIONSBYIDRESPONSE._serialized_end = 29889 + _PAUSEACTIVITYBYIDREQUEST._serialized_start = 29892 + _PAUSEACTIVITYBYIDREQUEST._serialized_end = 30033 + _PAUSEACTIVITYBYIDRESPONSE._serialized_start = 30035 + _PAUSEACTIVITYBYIDRESPONSE._serialized_end = 30062 + _UNPAUSEACTIVITYBYIDREQUEST._serialized_start = 30065 + _UNPAUSEACTIVITYBYIDREQUEST._serialized_end = 30505 + _UNPAUSEACTIVITYBYIDREQUEST_RESUMEOPERATION._serialized_start = 30398 + _UNPAUSEACTIVITYBYIDREQUEST_RESUMEOPERATION._serialized_end = 30432 + _UNPAUSEACTIVITYBYIDREQUEST_RESETOPERATION._serialized_start = 30434 + _UNPAUSEACTIVITYBYIDREQUEST_RESETOPERATION._serialized_end = 30492 + _UNPAUSEACTIVITYBYIDRESPONSE._serialized_start = 30507 + _UNPAUSEACTIVITYBYIDRESPONSE._serialized_end = 30536 + _RESETACTIVITYBYIDREQUEST._serialized_start = 30539 + _RESETACTIVITYBYIDREQUEST._serialized_end = 30722 + _RESETACTIVITYBYIDRESPONSE._serialized_start = 30724 + _RESETACTIVITYBYIDRESPONSE._serialized_end = 30751 # @@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 ad838aeb..d5ecb1d3 100644 --- a/temporalio/api/workflowservice/v1/request_response_pb2.pyi +++ b/temporalio/api/workflowservice/v1/request_response_pb2.pyi @@ -30,10 +30,12 @@ import sys import google.protobuf.descriptor import google.protobuf.duration_pb2 +import google.protobuf.field_mask_pb2 import google.protobuf.internal.containers import google.protobuf.message import google.protobuf.timestamp_pb2 +import temporalio.api.activity.v1.message_pb2 import temporalio.api.batch.v1.message_pb2 import temporalio.api.command.v1.message_pb2 import temporalio.api.common.v1.message_pb2 @@ -559,6 +561,7 @@ class StartWorkflowExecutionRequest(google.protobuf.message.Message): WORKFLOW_START_DELAY_FIELD_NUMBER: builtins.int COMPLETION_CALLBACKS_FIELD_NUMBER: builtins.int USER_METADATA_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int namespace: builtins.str workflow_id: builtins.str @property @@ -649,6 +652,13 @@ class StartWorkflowExecutionRequest(google.protobuf.message.Message): for use by user interfaces to display the fixed as-of-start summary and details of the workflow. """ + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.common.v1.message_pb2.Link + ]: + """Links to be associated with the workflow.""" def __init__( self, *, @@ -681,6 +691,8 @@ class StartWorkflowExecutionRequest(google.protobuf.message.Message): | None = ..., user_metadata: temporalio.api.sdk.v1.user_metadata_pb2.UserMetadata | None = ..., + links: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.Link] + | None = ..., ) -> None: ... def HasField( self, @@ -732,6 +744,8 @@ class StartWorkflowExecutionRequest(google.protobuf.message.Message): b"input", "last_completion_result", b"last_completion_result", + "links", + b"links", "memo", b"memo", "namespace", @@ -1287,6 +1301,33 @@ class RespondWorkflowTaskCompletedRequest(google.protobuf.message.Message): field_name: typing_extensions.Literal["key", b"key", "value", b"value"], ) -> None: ... + class Capabilities(google.protobuf.message.Message): + """SDK capability details.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DISCARD_SPECULATIVE_WORKFLOW_TASK_WITH_EVENTS_FIELD_NUMBER: builtins.int + discard_speculative_workflow_task_with_events: builtins.bool + """True if the SDK can handle speculative workflow task with command events. + If true, the server may chosse, at its discretion, to discard a speculative workflow task + even if that speculative task included command events the SDK had not previouly processed + + (-- api-linter: core::0140::prepositions=disabled + aip.dev/not-precedent: "with" used to describe the workflow task. --) + """ + def __init__( + self, + *, + discard_speculative_workflow_task_with_events: builtins.bool = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "discard_speculative_workflow_task_with_events", + b"discard_speculative_workflow_task_with_events", + ], + ) -> None: ... + TASK_TOKEN_FIELD_NUMBER: builtins.int COMMANDS_FIELD_NUMBER: builtins.int IDENTITY_FIELD_NUMBER: builtins.int @@ -1300,6 +1341,7 @@ class RespondWorkflowTaskCompletedRequest(google.protobuf.message.Message): MESSAGES_FIELD_NUMBER: builtins.int SDK_METADATA_FIELD_NUMBER: builtins.int METERING_METADATA_FIELD_NUMBER: builtins.int + CAPABILITIES_FIELD_NUMBER: builtins.int task_token: builtins.bytes """The task token as received in `PollWorkflowTaskQueueResponse`""" @property @@ -1367,6 +1409,9 @@ class RespondWorkflowTaskCompletedRequest(google.protobuf.message.Message): self, ) -> temporalio.api.common.v1.message_pb2.MeteringMetadata: """Local usage data collected for metering""" + @property + def capabilities(self) -> global___RespondWorkflowTaskCompletedRequest.Capabilities: + """All capabilities the SDK supports.""" def __init__( self, *, @@ -1396,10 +1441,14 @@ class RespondWorkflowTaskCompletedRequest(google.protobuf.message.Message): | None = ..., metering_metadata: temporalio.api.common.v1.message_pb2.MeteringMetadata | None = ..., + capabilities: global___RespondWorkflowTaskCompletedRequest.Capabilities + | None = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal[ + "capabilities", + b"capabilities", "metering_metadata", b"metering_metadata", "sdk_metadata", @@ -1415,6 +1464,8 @@ class RespondWorkflowTaskCompletedRequest(google.protobuf.message.Message): field_name: typing_extensions.Literal[ "binary_checksum", b"binary_checksum", + "capabilities", + b"capabilities", "commands", b"commands", "force_create_new_workflow_task", @@ -1459,8 +1510,12 @@ class RespondWorkflowTaskCompletedResponse(google.protobuf.message.Message): ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ global___PollActivityTaskQueueResponse ]: - """See `ScheduleActivityTaskCommandAttributes::request_start`""" + """See `ScheduleActivityTaskCommandAttributes::request_eager_execution`""" reset_history_event_id: builtins.int + """If non zero, indicates the server has discarded the workflow task that was being responded to. + Will be the event ID of the last workflow task started event in the history before the new workflow task. + Server is only expected to discard a workflow task if it could not have modified the workflow state. + """ def __init__( self, *, @@ -1873,18 +1928,27 @@ class RecordActivityTaskHeartbeatResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor CANCEL_REQUESTED_FIELD_NUMBER: builtins.int + ACTIVITY_PAUSED_FIELD_NUMBER: builtins.int cancel_requested: builtins.bool """Will be set to true if the activity has been asked to cancel itself. The SDK should then notify the activity of cancellation if it is still running. """ + activity_paused: builtins.bool + """Will be set to true if the activity is paused.""" def __init__( self, *, cancel_requested: builtins.bool = ..., + activity_paused: builtins.bool = ..., ) -> None: ... def ClearField( self, - field_name: typing_extensions.Literal["cancel_requested", b"cancel_requested"], + field_name: typing_extensions.Literal[ + "activity_paused", + b"activity_paused", + "cancel_requested", + b"cancel_requested", + ], ) -> None: ... global___RecordActivityTaskHeartbeatResponse = RecordActivityTaskHeartbeatResponse @@ -2428,6 +2492,7 @@ class RequestCancelWorkflowExecutionRequest(google.protobuf.message.Message): REQUEST_ID_FIELD_NUMBER: builtins.int FIRST_EXECUTION_RUN_ID_FIELD_NUMBER: builtins.int REASON_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int namespace: builtins.str @property def workflow_execution( @@ -2444,6 +2509,13 @@ class RequestCancelWorkflowExecutionRequest(google.protobuf.message.Message): """ reason: builtins.str """Reason for requesting the cancellation""" + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.common.v1.message_pb2.Link + ]: + """Links to be associated with the WorkflowExecutionCanceled event.""" def __init__( self, *, @@ -2454,6 +2526,8 @@ class RequestCancelWorkflowExecutionRequest(google.protobuf.message.Message): request_id: builtins.str = ..., first_execution_run_id: builtins.str = ..., reason: builtins.str = ..., + links: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.Link] + | None = ..., ) -> None: ... def HasField( self, @@ -2468,6 +2542,8 @@ class RequestCancelWorkflowExecutionRequest(google.protobuf.message.Message): b"first_execution_run_id", "identity", b"identity", + "links", + b"links", "namespace", b"namespace", "reason", @@ -2502,6 +2578,7 @@ class SignalWorkflowExecutionRequest(google.protobuf.message.Message): CONTROL_FIELD_NUMBER: builtins.int HEADER_FIELD_NUMBER: builtins.int SKIP_GENERATE_WORKFLOW_TASK_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int namespace: builtins.str @property def workflow_execution( @@ -2525,6 +2602,13 @@ class SignalWorkflowExecutionRequest(google.protobuf.message.Message): """ skip_generate_workflow_task: builtins.bool """Indicates that a new workflow task should not be generated when this signal is received.""" + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.common.v1.message_pb2.Link + ]: + """Links to be associated with the WorkflowExecutionSignaled event.""" def __init__( self, *, @@ -2538,6 +2622,8 @@ class SignalWorkflowExecutionRequest(google.protobuf.message.Message): control: builtins.str = ..., header: temporalio.api.common.v1.message_pb2.Header | None = ..., skip_generate_workflow_task: builtins.bool = ..., + links: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.Link] + | None = ..., ) -> None: ... def HasField( self, @@ -2561,6 +2647,8 @@ class SignalWorkflowExecutionRequest(google.protobuf.message.Message): b"identity", "input", b"input", + "links", + b"links", "namespace", b"namespace", "request_id", @@ -2611,6 +2699,7 @@ class SignalWithStartWorkflowExecutionRequest(google.protobuf.message.Message): WORKFLOW_START_DELAY_FIELD_NUMBER: builtins.int SKIP_GENERATE_WORKFLOW_TASK_FIELD_NUMBER: builtins.int USER_METADATA_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int namespace: builtins.str workflow_id: builtins.str @property @@ -2688,6 +2777,13 @@ class SignalWithStartWorkflowExecutionRequest(google.protobuf.message.Message): for use by user interfaces to display the fixed as-of-start summary and details of the workflow. """ + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.common.v1.message_pb2.Link + ]: + """Links to be associated with the WorkflowExecutionStarted and WorkflowExecutionSignaled events.""" def __init__( self, *, @@ -2716,6 +2812,8 @@ class SignalWithStartWorkflowExecutionRequest(google.protobuf.message.Message): skip_generate_workflow_task: builtins.bool = ..., user_metadata: temporalio.api.sdk.v1.user_metadata_pb2.UserMetadata | None = ..., + links: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.Link] + | None = ..., ) -> None: ... def HasField( self, @@ -2761,6 +2859,8 @@ class SignalWithStartWorkflowExecutionRequest(google.protobuf.message.Message): b"identity", "input", b"input", + "links", + b"links", "memo", b"memo", "namespace", @@ -2931,6 +3031,7 @@ class TerminateWorkflowExecutionRequest(google.protobuf.message.Message): DETAILS_FIELD_NUMBER: builtins.int IDENTITY_FIELD_NUMBER: builtins.int FIRST_EXECUTION_RUN_ID_FIELD_NUMBER: builtins.int + LINKS_FIELD_NUMBER: builtins.int namespace: builtins.str @property def workflow_execution( @@ -2947,6 +3048,13 @@ class TerminateWorkflowExecutionRequest(google.protobuf.message.Message): `workflow_execution`), or specified (if it is) workflow execution is not part of the same execution chain as this id. """ + @property + def links( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.common.v1.message_pb2.Link + ]: + """Links to be associated with the WorkflowExecutionTerminated event.""" def __init__( self, *, @@ -2957,6 +3065,8 @@ class TerminateWorkflowExecutionRequest(google.protobuf.message.Message): details: temporalio.api.common.v1.message_pb2.Payloads | None = ..., identity: builtins.str = ..., first_execution_run_id: builtins.str = ..., + links: collections.abc.Iterable[temporalio.api.common.v1.message_pb2.Link] + | None = ..., ) -> None: ... def HasField( self, @@ -2973,6 +3083,8 @@ class TerminateWorkflowExecutionRequest(google.protobuf.message.Message): b"first_execution_run_id", "identity", b"identity", + "links", + b"links", "namespace", b"namespace", "reason", @@ -3677,6 +3789,50 @@ class ResetStickyTaskQueueResponse(google.protobuf.message.Message): global___ResetStickyTaskQueueResponse = ResetStickyTaskQueueResponse +class ShutdownWorkerRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + STICKY_TASK_QUEUE_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + REASON_FIELD_NUMBER: builtins.int + namespace: builtins.str + sticky_task_queue: builtins.str + identity: builtins.str + reason: builtins.str + def __init__( + self, + *, + namespace: builtins.str = ..., + sticky_task_queue: builtins.str = ..., + identity: builtins.str = ..., + reason: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "identity", + b"identity", + "namespace", + b"namespace", + "reason", + b"reason", + "sticky_task_queue", + b"sticky_task_queue", + ], + ) -> None: ... + +global___ShutdownWorkerRequest = ShutdownWorkerRequest + +class ShutdownWorkerResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ShutdownWorkerResponse = ShutdownWorkerResponse + class QueryWorkflowRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -4201,6 +4357,7 @@ class GetSystemInfoResponse(google.protobuf.message.Message): EAGER_WORKFLOW_START_FIELD_NUMBER: builtins.int SDK_METADATA_FIELD_NUMBER: builtins.int COUNT_GROUP_BY_EXECUTION_STATUS_FIELD_NUMBER: builtins.int + NEXUS_FIELD_NUMBER: builtins.int signal_and_query_header: builtins.bool """True if signal and query headers are supported.""" internal_error_differentiation: builtins.bool @@ -4233,6 +4390,10 @@ class GetSystemInfoResponse(google.protobuf.message.Message): """True if the server supports count group by execution status (-- api-linter: core::0140::prepositions=disabled --) """ + nexus: builtins.bool + """True if the server supports Nexus operations. + This flag is dependent both on server version and for Nexus to be enabled via server configuration. + """ def __init__( self, *, @@ -4246,6 +4407,7 @@ class GetSystemInfoResponse(google.protobuf.message.Message): eager_workflow_start: builtins.bool = ..., sdk_metadata: builtins.bool = ..., count_group_by_execution_status: builtins.bool = ..., + nexus: builtins.bool = ..., ) -> None: ... def ClearField( self, @@ -4262,6 +4424,8 @@ class GetSystemInfoResponse(google.protobuf.message.Message): b"encoded_failure_attributes", "internal_error_differentiation", b"internal_error_differentiation", + "nexus", + b"nexus", "sdk_metadata", b"sdk_metadata", "signal_and_query_header", @@ -5732,29 +5896,32 @@ class UpdateWorkflowExecutionRequest(google.protobuf.message.Message): WAIT_POLICY_FIELD_NUMBER: builtins.int REQUEST_FIELD_NUMBER: builtins.int namespace: builtins.str - """The namespace name of the target workflow""" + """The namespace name of the target Workflow.""" @property def workflow_execution( self, ) -> temporalio.api.common.v1.message_pb2.WorkflowExecution: - """The target workflow id and (optionally) a specific run thereof + """The target Workflow Id and (optionally) a specific Run Id thereof. (-- api-linter: core::0203::optional=disabled aip.dev/not-precedent: false positive triggered by the word "optional" --) """ first_execution_run_id: builtins.str - """If set, this call will error if the most recent (if no run id is set on - `workflow_execution`), or specified (if it is) workflow execution is not - part of the same execution chain as this id. + """If set, this call will error if the most recent (if no Run Id is set on + `workflow_execution`), or specified (if it is) Workflow Execution is not + part of the same execution chain as this Id. """ @property def wait_policy(self) -> temporalio.api.update.v1.message_pb2.WaitPolicy: - """Describes when this request should return - basically whether the - update is synchronous, asynchronous, or somewhere in between. + """Specifies client's intent to wait for Update results. + NOTE: This field works together with API call timeout which is limited by + server timeout (maximum wait time). If server timeout is expired before + user specified timeout, API call returns even if specified stage is not reached. + Actual reached stage will be included in the response. """ @property def request(self) -> temporalio.api.update.v1.message_pb2.Request: """The request information that will be delivered all the way down to the - workflow execution. + Workflow Execution. """ def __init__( self, @@ -5806,8 +5973,8 @@ class UpdateWorkflowExecutionResponse(google.protobuf.message.Message): """Enough information for subsequent poll calls if needed. Never null.""" @property def outcome(self) -> temporalio.api.update.v1.message_pb2.Outcome: - """The outcome of the update if and only if the workflow execution update - has completed. If this response is being returned before the update has + """The outcome of the Update if and only if the Workflow Update + has completed. If this response is being returned before the Update has completed then this field will not be set. """ stage: temporalio.api.enums.v1.update_pb2.UpdateWorkflowExecutionLifecycleStage.ValueType @@ -6227,19 +6394,17 @@ class PollWorkflowExecutionUpdateRequest(google.protobuf.message.Message): IDENTITY_FIELD_NUMBER: builtins.int WAIT_POLICY_FIELD_NUMBER: builtins.int namespace: builtins.str - """The namespace of the workflow execution to which the update was + """The namespace of the Workflow Execution to which the Update was originally issued. """ @property def update_ref(self) -> temporalio.api.update.v1.message_pb2.UpdateRef: - """The update reference returned in the initial - UpdateWorkflowExecutionResponse - """ + """The Update reference returned in the initial UpdateWorkflowExecutionResponse.""" identity: builtins.str - """The identity of the worker/client who is polling this update outcome""" + """The identity of the worker/client who is polling this Update outcome.""" @property def wait_policy(self) -> temporalio.api.update.v1.message_pb2.WaitPolicy: - """Describes when this poll request should return a response. + """Specifies client's intent to wait for Update results. Omit to request a non-blocking poll. """ def __init__( @@ -6300,7 +6465,7 @@ class PollWorkflowExecutionUpdateResponse(google.protobuf.message.Message): """ @property def update_ref(self) -> temporalio.api.update.v1.message_pb2.UpdateRef: - """Sufficient information to address this update.""" + """Sufficient information to address this Update.""" def __init__( self, *, @@ -6519,9 +6684,14 @@ class ExecuteMultiOperationRequest(google.protobuf.message.Message): """Additional restrictions: - setting `cron_schedule` is invalid - setting `request_eager_execution` is invalid + - setting `workflow_start_delay` is invalid """ @property - def update_workflow(self) -> global___UpdateWorkflowExecutionRequest: ... + def update_workflow(self) -> global___UpdateWorkflowExecutionRequest: + """Additional restrictions: + - setting `first_execution_run_id` is invalid + - setting `workflow_execution.run_id` is invalid + """ def __init__( self, *, @@ -6654,3 +6824,369 @@ class ExecuteMultiOperationResponse(google.protobuf.message.Message): ) -> None: ... global___ExecuteMultiOperationResponse = ExecuteMultiOperationResponse + +class UpdateActivityOptionsByIdRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + ACTIVITY_OPTIONS_FIELD_NUMBER: builtins.int + UPDATE_MASK_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + namespace: builtins.str + """Namespace of the workflow which scheduled this activity""" + workflow_id: builtins.str + """ID of the workflow which scheduled this activity""" + run_id: builtins.str + """Run ID of the workflow which scheduled this activity + if empty - latest workflow is used + """ + activity_id: builtins.str + """ID of the activity we're updating""" + identity: builtins.str + """The identity of the client who initiated this request""" + @property + def activity_options( + self, + ) -> temporalio.api.activity.v1.message_pb2.ActivityOptions: + """Activity options. Partial updates are accepted and controlled by update_mask""" + @property + def update_mask(self) -> google.protobuf.field_mask_pb2.FieldMask: + """Controls which fields from `activity_options` will be applied""" + request_id: builtins.str + """Used to de-dupe requests""" + def __init__( + self, + *, + namespace: builtins.str = ..., + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + activity_id: builtins.str = ..., + identity: builtins.str = ..., + activity_options: temporalio.api.activity.v1.message_pb2.ActivityOptions + | None = ..., + update_mask: google.protobuf.field_mask_pb2.FieldMask | None = ..., + request_id: builtins.str = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "activity_options", b"activity_options", "update_mask", b"update_mask" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", + "activity_options", + b"activity_options", + "identity", + b"identity", + "namespace", + b"namespace", + "request_id", + b"request_id", + "run_id", + b"run_id", + "update_mask", + b"update_mask", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___UpdateActivityOptionsByIdRequest = UpdateActivityOptionsByIdRequest + +class UpdateActivityOptionsByIdResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ACTIVITY_OPTIONS_FIELD_NUMBER: builtins.int + @property + def activity_options( + self, + ) -> temporalio.api.activity.v1.message_pb2.ActivityOptions: + """Activity options after an update""" + def __init__( + self, + *, + activity_options: temporalio.api.activity.v1.message_pb2.ActivityOptions + | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal["activity_options", b"activity_options"], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal["activity_options", b"activity_options"], + ) -> None: ... + +global___UpdateActivityOptionsByIdResponse = UpdateActivityOptionsByIdResponse + +class PauseActivityByIdRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + namespace: builtins.str + """Namespace of the workflow which scheduled this activity.""" + workflow_id: builtins.str + """ID of the workflow which scheduled this activity.""" + run_id: builtins.str + """Run ID of the workflow which scheduled this activity. + If empty - latest workflow is used. + """ + activity_id: builtins.str + """ID of the activity we're updating.""" + identity: builtins.str + """The identity of the client who initiated this request.""" + request_id: builtins.str + """Used to de-dupe requests.""" + def __init__( + self, + *, + namespace: builtins.str = ..., + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + activity_id: builtins.str = ..., + identity: builtins.str = ..., + request_id: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", + "identity", + b"identity", + "namespace", + b"namespace", + "request_id", + b"request_id", + "run_id", + b"run_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___PauseActivityByIdRequest = PauseActivityByIdRequest + +class PauseActivityByIdResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___PauseActivityByIdResponse = PauseActivityByIdResponse + +class UnpauseActivityByIdRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class ResumeOperation(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NO_WAIT_FIELD_NUMBER: builtins.int + no_wait: builtins.bool + """Indicates that if the activity is waiting to retry, it will be scheduled immediately.""" + def __init__( + self, + *, + no_wait: builtins.bool = ..., + ) -> None: ... + def ClearField( + self, field_name: typing_extensions.Literal["no_wait", b"no_wait"] + ) -> None: ... + + class ResetOperation(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NO_WAIT_FIELD_NUMBER: builtins.int + RESET_HEARTBEAT_FIELD_NUMBER: builtins.int + no_wait: builtins.bool + """Indicates that the activity should be scheduled immediately. + Note that this may run simultaneously with any existing executions of the activity. + """ + reset_heartbeat: builtins.bool + """If set, the Heartbeat Details will be cleared out to make the Activity start over from the beginning""" + def __init__( + self, + *, + no_wait: builtins.bool = ..., + reset_heartbeat: builtins.bool = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "no_wait", b"no_wait", "reset_heartbeat", b"reset_heartbeat" + ], + ) -> None: ... + + NAMESPACE_FIELD_NUMBER: builtins.int + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + RESUME_FIELD_NUMBER: builtins.int + RESET_FIELD_NUMBER: builtins.int + namespace: builtins.str + """Namespace of the workflow which scheduled this activity.""" + workflow_id: builtins.str + """ID of the workflow which scheduled this activity.""" + run_id: builtins.str + """Run ID of the workflow which scheduled this activity. + If empty - latest workflow is used. + """ + activity_id: builtins.str + """ID of the activity we're updating.""" + identity: builtins.str + """The identity of the client who initiated this request.""" + request_id: builtins.str + """Used to de-dupe requests.""" + @property + def resume(self) -> global___UnpauseActivityByIdRequest.ResumeOperation: ... + @property + def reset(self) -> global___UnpauseActivityByIdRequest.ResetOperation: ... + def __init__( + self, + *, + namespace: builtins.str = ..., + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + activity_id: builtins.str = ..., + identity: builtins.str = ..., + request_id: builtins.str = ..., + resume: global___UnpauseActivityByIdRequest.ResumeOperation | None = ..., + reset: global___UnpauseActivityByIdRequest.ResetOperation | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "operation", b"operation", "reset", b"reset", "resume", b"resume" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", + "identity", + b"identity", + "namespace", + b"namespace", + "operation", + b"operation", + "request_id", + b"request_id", + "reset", + b"reset", + "resume", + b"resume", + "run_id", + b"run_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + def WhichOneof( + self, oneof_group: typing_extensions.Literal["operation", b"operation"] + ) -> typing_extensions.Literal["resume", "reset"] | None: ... + +global___UnpauseActivityByIdRequest = UnpauseActivityByIdRequest + +class UnpauseActivityByIdResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UnpauseActivityByIdResponse = UnpauseActivityByIdResponse + +class ResetActivityByIdRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + NO_WAIT_FIELD_NUMBER: builtins.int + RESET_HEARTBEAT_FIELD_NUMBER: builtins.int + namespace: builtins.str + """Namespace of the workflow which scheduled this activity.""" + workflow_id: builtins.str + """ID of the workflow which scheduled this activity.""" + run_id: builtins.str + """Run ID of the workflow which scheduled this activity. + If empty - latest workflow is used. + """ + activity_id: builtins.str + """ID of the activity we're updating.""" + identity: builtins.str + """The identity of the client who initiated this request.""" + request_id: builtins.str + """Used to de-dupe requests.""" + no_wait: builtins.bool + """Indicates that activity should be scheduled immediately. + If this flag doesn't set, and activity currently running - temporal will wait until activity is completed. + """ + reset_heartbeat: builtins.bool + """Indicates that activity should reset heartbeat details. + This flag will be applied only to the new instance of the activity. + """ + def __init__( + self, + *, + namespace: builtins.str = ..., + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + activity_id: builtins.str = ..., + identity: builtins.str = ..., + request_id: builtins.str = ..., + no_wait: builtins.bool = ..., + reset_heartbeat: builtins.bool = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", + "identity", + b"identity", + "namespace", + b"namespace", + "no_wait", + b"no_wait", + "request_id", + b"request_id", + "reset_heartbeat", + b"reset_heartbeat", + "run_id", + b"run_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___ResetActivityByIdRequest = ResetActivityByIdRequest + +class ResetActivityByIdResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ResetActivityByIdResponse = ResetActivityByIdResponse diff --git a/temporalio/api/workflowservice/v1/service_pb2.py b/temporalio/api/workflowservice/v1/service_pb2.py index 386d8c3f..585a850d 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\xbb\x63\n\x0fWorkflowService\x12\xa2\x01\n\x11RegisterNamespace\x12\x39.temporal.api.workflowservice.v1.RegisterNamespaceRequest\x1a:.temporal.api.workflowservice.v1.RegisterNamespaceResponse"\x16\x82\xd3\xe4\x93\x02\x10"\x0b/namespaces:\x01*\x12\xab\x01\n\x11\x44\x65scribeNamespace\x12\x39.temporal.api.workflowservice.v1.DescribeNamespaceRequest\x1a:.temporal.api.workflowservice.v1.DescribeNamespaceResponse"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/namespaces/{namespace}\x12\x96\x01\n\x0eListNamespaces\x12\x36.temporal.api.workflowservice.v1.ListNamespacesRequest\x1a\x37.temporal.api.workflowservice.v1.ListNamespacesResponse"\x13\x82\xd3\xe4\x93\x02\r\x12\x0b/namespaces\x12\xaf\x01\n\x0fUpdateNamespace\x12\x37.temporal.api.workflowservice.v1.UpdateNamespaceRequest\x1a\x38.temporal.api.workflowservice.v1.UpdateNamespaceResponse")\x82\xd3\xe4\x93\x02#"\x1e/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\xd5\x01\n\x16StartWorkflowExecution\x12>.temporal.api.workflowservice.v1.StartWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.StartWorkflowExecutionResponse":\x82\xd3\xe4\x93\x02\x34"//namespaces/{namespace}/workflows/{workflow_id}:\x01*\x12\xdc\x01\n\x15\x45xecuteMultiOperation\x12=.temporal.api.workflowservice.v1.ExecuteMultiOperationRequest\x1a>.temporal.api.workflowservice.v1.ExecuteMultiOperationResponse"D\x82\xd3\xe4\x93\x02>"9/namespaces/{namespace}/workflows/execute-multi-operation:\x01*\x12\xf3\x01\n\x1bGetWorkflowExecutionHistory\x12\x43.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryRequest\x1a\x44.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryResponse"I\x82\xd3\xe4\x93\x02\x43\x12\x41/namespaces/{namespace}/workflows/{execution.workflow_id}/history\x12\x90\x02\n"GetWorkflowExecutionHistoryReverse\x12J.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseRequest\x1aK.temporal.api.workflowservice.v1.GetWorkflowExecutionHistoryReverseResponse"Q\x82\xd3\xe4\x93\x02K\x12I/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\xe1\x01\n\x1bRecordActivityTaskHeartbeat\x12\x43.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatRequest\x1a\x44.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatResponse"7\x82\xd3\xe4\x93\x02\x31",/namespaces/{namespace}/activities/heartbeat:\x01*\x12\xf3\x01\n\x1fRecordActivityTaskHeartbeatById\x12G.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatByIdRequest\x1aH.temporal.api.workflowservice.v1.RecordActivityTaskHeartbeatByIdResponse"=\x82\xd3\xe4\x93\x02\x37"2/namespaces/{namespace}/activities/heartbeat-by-id:\x01*\x12\xe3\x01\n\x1cRespondActivityTaskCompleted\x12\x44.temporal.api.workflowservice.v1.RespondActivityTaskCompletedRequest\x1a\x45.temporal.api.workflowservice.v1.RespondActivityTaskCompletedResponse"6\x82\xd3\xe4\x93\x02\x30"+/namespaces/{namespace}/activities/complete:\x01*\x12\xf5\x01\n RespondActivityTaskCompletedById\x12H.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdRequest\x1aI.temporal.api.workflowservice.v1.RespondActivityTaskCompletedByIdResponse"<\x82\xd3\xe4\x93\x02\x36"1/namespaces/{namespace}/activities/complete-by-id:\x01*\x12\xd6\x01\n\x19RespondActivityTaskFailed\x12\x41.temporal.api.workflowservice.v1.RespondActivityTaskFailedRequest\x1a\x42.temporal.api.workflowservice.v1.RespondActivityTaskFailedResponse"2\x82\xd3\xe4\x93\x02,"\'/namespaces/{namespace}/activities/fail:\x01*\x12\xe8\x01\n\x1dRespondActivityTaskFailedById\x12\x45.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdRequest\x1a\x46.temporal.api.workflowservice.v1.RespondActivityTaskFailedByIdResponse"8\x82\xd3\xe4\x93\x02\x32"-/namespaces/{namespace}/activities/fail-by-id:\x01*\x12\xde\x01\n\x1bRespondActivityTaskCanceled\x12\x43.temporal.api.workflowservice.v1.RespondActivityTaskCanceledRequest\x1a\x44.temporal.api.workflowservice.v1.RespondActivityTaskCanceledResponse"4\x82\xd3\xe4\x93\x02.")/namespaces/{namespace}/activities/cancel:\x01*\x12\xf0\x01\n\x1fRespondActivityTaskCanceledById\x12G.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdRequest\x1aH.temporal.api.workflowservice.v1.RespondActivityTaskCanceledByIdResponse":\x82\xd3\xe4\x93\x02\x34"//namespaces/{namespace}/activities/cancel-by-id:\x01*\x12\x87\x02\n\x1eRequestCancelWorkflowExecution\x12\x46.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest\x1aG.temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionResponse"T\x82\xd3\xe4\x93\x02N"I/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\x01*\x12\x80\x02\n\x17SignalWorkflowExecution\x12?.temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.SignalWorkflowExecutionResponse"b\x82\xd3\xe4\x93\x02\\"W/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\x01*\x12\x93\x02\n SignalWithStartWorkflowExecution\x12H.temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionRequest\x1aI.temporal.api.workflowservice.v1.SignalWithStartWorkflowExecutionResponse"Z\x82\xd3\xe4\x93\x02T"O/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\x01*\x12\xee\x01\n\x16ResetWorkflowExecution\x12>.temporal.api.workflowservice.v1.ResetWorkflowExecutionRequest\x1a?.temporal.api.workflowservice.v1.ResetWorkflowExecutionResponse"S\x82\xd3\xe4\x93\x02M"H/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\x01*\x12\xfe\x01\n\x1aTerminateWorkflowExecution\x12\x42.temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest\x1a\x43.temporal.api.workflowservice.v1.TerminateWorkflowExecutionResponse"W\x82\xd3\xe4\x93\x02Q"L/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\xc4\x01\n\x16ListWorkflowExecutions\x12>.temporal.api.workflowservice.v1.ListWorkflowExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ListWorkflowExecutionsResponse")\x82\xd3\xe4\x93\x02#\x12!/namespaces/{namespace}/workflows\x12\xe5\x01\n\x1eListArchivedWorkflowExecutions\x12\x46.temporal.api.workflowservice.v1.ListArchivedWorkflowExecutionsRequest\x1aG.temporal.api.workflowservice.v1.ListArchivedWorkflowExecutionsResponse"2\x82\xd3\xe4\x93\x02,\x12*/namespaces/{namespace}/archived-workflows\x12\x9b\x01\n\x16ScanWorkflowExecutions\x12>.temporal.api.workflowservice.v1.ScanWorkflowExecutionsRequest\x1a?.temporal.api.workflowservice.v1.ScanWorkflowExecutionsResponse"\x00\x12\xcc\x01\n\x17\x43ountWorkflowExecutions\x12?.temporal.api.workflowservice.v1.CountWorkflowExecutionsRequest\x1a@.temporal.api.workflowservice.v1.CountWorkflowExecutionsResponse".\x82\xd3\xe4\x93\x02(\x12&/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\xdd\x01\n\rQueryWorkflow\x12\x35.temporal.api.workflowservice.v1.QueryWorkflowRequest\x1a\x36.temporal.api.workflowservice.v1.QueryWorkflowResponse"]\x82\xd3\xe4\x93\x02W"R/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\x01*\x12\xe5\x01\n\x19\x44\x65scribeWorkflowExecution\x12\x41.temporal.api.workflowservice.v1.DescribeWorkflowExecutionRequest\x1a\x42.temporal.api.workflowservice.v1.DescribeWorkflowExecutionResponse"A\x82\xd3\xe4\x93\x02;\x12\x39/namespaces/{namespace}/workflows/{execution.workflow_id}\x12\xc9\x01\n\x11\x44\x65scribeTaskQueue\x12\x39.temporal.api.workflowservice.v1.DescribeTaskQueueRequest\x1a:.temporal.api.workflowservice.v1.DescribeTaskQueueResponse"=\x82\xd3\xe4\x93\x02\x37\x12\x35/namespaces/{namespace}/task-queues/{task_queue.name}\x12\x98\x01\n\x0eGetClusterInfo\x12\x36.temporal.api.workflowservice.v1.GetClusterInfoRequest\x1a\x37.temporal.api.workflowservice.v1.GetClusterInfoResponse"\x15\x82\xd3\xe4\x93\x02\x0f\x12\r/cluster-info\x12\x94\x01\n\rGetSystemInfo\x12\x35.temporal.api.workflowservice.v1.GetSystemInfoRequest\x1a\x36.temporal.api.workflowservice.v1.GetSystemInfoResponse"\x14\x82\xd3\xe4\x93\x02\x0e\x12\x0c/system-info\x12\x9e\x01\n\x17ListTaskQueuePartitions\x12?.temporal.api.workflowservice.v1.ListTaskQueuePartitionsRequest\x1a@.temporal.api.workflowservice.v1.ListTaskQueuePartitionsResponse"\x00\x12\xbd\x01\n\x0e\x43reateSchedule\x12\x36.temporal.api.workflowservice.v1.CreateScheduleRequest\x1a\x37.temporal.api.workflowservice.v1.CreateScheduleResponse":\x82\xd3\xe4\x93\x02\x34"//namespaces/{namespace}/schedules/{schedule_id}:\x01*\x12\xc0\x01\n\x10\x44\x65scribeSchedule\x12\x38.temporal.api.workflowservice.v1.DescribeScheduleRequest\x1a\x39.temporal.api.workflowservice.v1.DescribeScheduleResponse"7\x82\xd3\xe4\x93\x02\x31\x12//namespaces/{namespace}/schedules/{schedule_id}\x12\xc4\x01\n\x0eUpdateSchedule\x12\x36.temporal.api.workflowservice.v1.UpdateScheduleRequest\x1a\x37.temporal.api.workflowservice.v1.UpdateScheduleResponse"A\x82\xd3\xe4\x93\x02;"6/namespaces/{namespace}/schedules/{schedule_id}/update:\x01*\x12\xc0\x01\n\rPatchSchedule\x12\x35.temporal.api.workflowservice.v1.PatchScheduleRequest\x1a\x36.temporal.api.workflowservice.v1.PatchScheduleResponse"@\x82\xd3\xe4\x93\x02:"5/namespaces/{namespace}/schedules/{schedule_id}/patch:\x01*\x12\xea\x01\n\x19ListScheduleMatchingTimes\x12\x41.temporal.api.workflowservice.v1.ListScheduleMatchingTimesRequest\x1a\x42.temporal.api.workflowservice.v1.ListScheduleMatchingTimesResponse"F\x82\xd3\xe4\x93\x02@\x12>/namespaces/{namespace}/schedules/{schedule_id}/matching-times\x12\xba\x01\n\x0e\x44\x65leteSchedule\x12\x36.temporal.api.workflowservice.v1.DeleteScheduleRequest\x1a\x37.temporal.api.workflowservice.v1.DeleteScheduleResponse"7\x82\xd3\xe4\x93\x02\x31*//namespaces/{namespace}/schedules/{schedule_id}\x12\xa9\x01\n\rListSchedules\x12\x35.temporal.api.workflowservice.v1.ListSchedulesRequest\x1a\x36.temporal.api.workflowservice.v1.ListSchedulesResponse")\x82\xd3\xe4\x93\x02#\x12!/namespaces/{namespace}/schedules\x12\xb9\x01\n UpdateWorkerBuildIdCompatibility\x12H.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityRequest\x1aI.temporal.api.workflowservice.v1.UpdateWorkerBuildIdCompatibilityResponse"\x00\x12\x86\x02\n\x1dGetWorkerBuildIdCompatibility\x12\x45.temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityRequest\x1a\x46.temporal.api.workflowservice.v1.GetWorkerBuildIdCompatibilityResponse"V\x82\xd3\xe4\x93\x02P\x12N/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\xf1\x01\n\x18GetWorkerVersioningRules\x12@.temporal.api.workflowservice.v1.GetWorkerVersioningRulesRequest\x1a\x41.temporal.api.workflowservice.v1.GetWorkerVersioningRulesResponse"P\x82\xd3\xe4\x93\x02J\x12H/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rules\x12\xdc\x01\n\x19GetWorkerTaskReachability\x12\x41.temporal.api.workflowservice.v1.GetWorkerTaskReachabilityRequest\x1a\x42.temporal.api.workflowservice.v1.GetWorkerTaskReachabilityResponse"8\x82\xd3\xe4\x93\x02\x32\x12\x30/namespaces/{namespace}/worker-task-reachability\x12\x87\x02\n\x17UpdateWorkflowExecution\x12?.temporal.api.workflowservice.v1.UpdateWorkflowExecutionRequest\x1a@.temporal.api.workflowservice.v1.UpdateWorkflowExecutionResponse"i\x82\xd3\xe4\x93\x02\x63"^/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\xce\x01\n\x13StartBatchOperation\x12;.temporal.api.workflowservice.v1.StartBatchOperationRequest\x1a<.temporal.api.workflowservice.v1.StartBatchOperationResponse"<\x82\xd3\xe4\x93\x02\x36"1/namespaces/{namespace}/batch-operations/{job_id}:\x01*\x12\xd0\x01\n\x12StopBatchOperation\x12:.temporal.api.workflowservice.v1.StopBatchOperationRequest\x1a;.temporal.api.workflowservice.v1.StopBatchOperationResponse"A\x82\xd3\xe4\x93\x02;"6/namespaces/{namespace}/batch-operations/{job_id}/stop:\x01*\x12\xd4\x01\n\x16\x44\x65scribeBatchOperation\x12>.temporal.api.workflowservice.v1.DescribeBatchOperationRequest\x1a?.temporal.api.workflowservice.v1.DescribeBatchOperationResponse"9\x82\xd3\xe4\x93\x02\x33\x12\x31/namespaces/{namespace}/batch-operations/{job_id}\x12\xc2\x01\n\x13ListBatchOperations\x12;.temporal.api.workflowservice.v1.ListBatchOperationsRequest\x1a<.temporal.api.workflowservice.v1.ListBatchOperationsResponse"0\x82\xd3\xe4\x93\x02*\x12(/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\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\x97\x83\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\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\xad\x02\n\x19UpdateActivityOptionsById\x12\x41.temporal.api.workflowservice.v1.UpdateActivityOptionsByIdRequest\x1a\x42.temporal.api.workflowservice.v1.UpdateActivityOptionsByIdResponse"\x88\x01\x82\xd3\xe4\x93\x02\x81\x01"7/namespaces/{namespace}/activities/update-options-by-id:\x01*ZC">/api/v1/namespaces/{namespace}/activities/update-options-by-id:\x01*\x12\x81\x02\n\x11PauseActivityById\x12\x39.temporal.api.workflowservice.v1.PauseActivityByIdRequest\x1a:.temporal.api.workflowservice.v1.PauseActivityByIdResponse"u\x82\xd3\xe4\x93\x02o"./namespaces/{namespace}/activities/pause-by-id:\x01*Z:"5/api/v1/namespaces/{namespace}/activities/pause-by-id:\x01*\x12\x8b\x02\n\x13UnpauseActivityById\x12;.temporal.api.workflowservice.v1.UnpauseActivityByIdRequest\x1a<.temporal.api.workflowservice.v1.UnpauseActivityByIdResponse"y\x82\xd3\xe4\x93\x02s"0/namespaces/{namespace}/activities/unpause-by-id:\x01*Z<"7/api/v1/namespaces/{namespace}/activities/unpause-by-id:\x01*\x12\x81\x02\n\x11ResetActivityById\x12\x39.temporal.api.workflowservice.v1.ResetActivityByIdRequest\x1a:.temporal.api.workflowservice.v1.ResetActivityByIdResponse"u\x82\xd3\xe4\x93\x02o"./namespaces/{namespace}/activities/reset-by-id:\x01*Z:"5/api/v1/namespaces/{namespace}/activities/reset-by-id:\x01*B\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' ) @@ -32,217 +32,201 @@ _WORKFLOWSERVICE.methods_by_name["RegisterNamespace"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RegisterNamespace" - ]._serialized_options = b'\202\323\344\223\002\020"\013/namespaces:\001*' + ]._serialized_options = b'\202\323\344\223\0021"\023/cluster/namespaces:\001*Z\027"\022/api/v1/namespaces:\001*' _WORKFLOWSERVICE.methods_by_name["DescribeNamespace"]._options = None _WORKFLOWSERVICE.methods_by_name[ "DescribeNamespace" - ]._serialized_options = b"\202\323\344\223\002\031\022\027/namespaces/{namespace}" + ]._serialized_options = b"\202\323\344\223\002C\022\037/cluster/namespaces/{namespace}Z \022\036/api/v1/namespaces/{namespace}" _WORKFLOWSERVICE.methods_by_name["ListNamespaces"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ListNamespaces" - ]._serialized_options = b"\202\323\344\223\002\r\022\013/namespaces" + ]._serialized_options = b"\202\323\344\223\002+\022\023/cluster/namespacesZ\024\022\022/api/v1/namespaces" _WORKFLOWSERVICE.methods_by_name["UpdateNamespace"]._options = None _WORKFLOWSERVICE.methods_by_name[ "UpdateNamespace" - ]._serialized_options = ( - b'\202\323\344\223\002#"\036/namespaces/{namespace}/update:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002W"&/cluster/namespaces/{namespace}/update:\001*Z*"%/api/v1/namespaces/{namespace}/update:\001*' _WORKFLOWSERVICE.methods_by_name["StartWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "StartWorkflowExecution" - ]._serialized_options = ( - b'\202\323\344\223\0024"//namespaces/{namespace}/workflows/{workflow_id}:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002q"//namespaces/{namespace}/workflows/{workflow_id}:\001*Z;"6/api/v1/namespaces/{namespace}/workflows/{workflow_id}:\001*' _WORKFLOWSERVICE.methods_by_name["ExecuteMultiOperation"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ExecuteMultiOperation" - ]._serialized_options = b'\202\323\344\223\002>"9/namespaces/{namespace}/workflows/execute-multi-operation:\001*' + ]._serialized_options = b'\202\323\344\223\002\205\001"9/namespaces/{namespace}/workflows/execute-multi-operation:\001*ZE"@/api/v1/namespaces/{namespace}/workflows/execute-multi-operation:\001*' _WORKFLOWSERVICE.methods_by_name["GetWorkflowExecutionHistory"]._options = None _WORKFLOWSERVICE.methods_by_name[ "GetWorkflowExecutionHistory" - ]._serialized_options = b"\202\323\344\223\002C\022A/namespaces/{namespace}/workflows/{execution.workflow_id}/history" + ]._serialized_options = b"\202\323\344\223\002\217\001\022A/namespaces/{namespace}/workflows/{execution.workflow_id}/historyZJ\022H/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/history" _WORKFLOWSERVICE.methods_by_name[ "GetWorkflowExecutionHistoryReverse" ]._options = None _WORKFLOWSERVICE.methods_by_name[ "GetWorkflowExecutionHistoryReverse" - ]._serialized_options = b"\202\323\344\223\002K\022I/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverse" + ]._serialized_options = b"\202\323\344\223\002\237\001\022I/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverseZR\022P/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/history-reverse" _WORKFLOWSERVICE.methods_by_name["RecordActivityTaskHeartbeat"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RecordActivityTaskHeartbeat" - ]._serialized_options = ( - b'\202\323\344\223\0021",/namespaces/{namespace}/activities/heartbeat:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002k",/namespaces/{namespace}/activities/heartbeat:\001*Z8"3/api/v1/namespaces/{namespace}/activities/heartbeat:\001*' _WORKFLOWSERVICE.methods_by_name["RecordActivityTaskHeartbeatById"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RecordActivityTaskHeartbeatById" - ]._serialized_options = b'\202\323\344\223\0027"2/namespaces/{namespace}/activities/heartbeat-by-id:\001*' + ]._serialized_options = b'\202\323\344\223\002w"2/namespaces/{namespace}/activities/heartbeat-by-id:\001*Z>"9/api/v1/namespaces/{namespace}/activities/heartbeat-by-id:\001*' _WORKFLOWSERVICE.methods_by_name["RespondActivityTaskCompleted"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RespondActivityTaskCompleted" - ]._serialized_options = ( - b'\202\323\344\223\0020"+/namespaces/{namespace}/activities/complete:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002i"+/namespaces/{namespace}/activities/complete:\001*Z7"2/api/v1/namespaces/{namespace}/activities/complete:\001*' _WORKFLOWSERVICE.methods_by_name["RespondActivityTaskCompletedById"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RespondActivityTaskCompletedById" - ]._serialized_options = b'\202\323\344\223\0026"1/namespaces/{namespace}/activities/complete-by-id:\001*' + ]._serialized_options = b'\202\323\344\223\002u"1/namespaces/{namespace}/activities/complete-by-id:\001*Z="8/api/v1/namespaces/{namespace}/activities/complete-by-id:\001*' _WORKFLOWSERVICE.methods_by_name["RespondActivityTaskFailed"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RespondActivityTaskFailed" - ]._serialized_options = ( - b"\202\323\344\223\002,\"'/namespaces/{namespace}/activities/fail:\001*" - ) + ]._serialized_options = b'\202\323\344\223\002a"\'/namespaces/{namespace}/activities/fail:\001*Z3"./api/v1/namespaces/{namespace}/activities/fail:\001*' _WORKFLOWSERVICE.methods_by_name["RespondActivityTaskFailedById"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RespondActivityTaskFailedById" - ]._serialized_options = ( - b'\202\323\344\223\0022"-/namespaces/{namespace}/activities/fail-by-id:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002m"-/namespaces/{namespace}/activities/fail-by-id:\001*Z9"4/api/v1/namespaces/{namespace}/activities/fail-by-id:\001*' _WORKFLOWSERVICE.methods_by_name["RespondActivityTaskCanceled"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RespondActivityTaskCanceled" - ]._serialized_options = ( - b'\202\323\344\223\002.")/namespaces/{namespace}/activities/cancel:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002e")/namespaces/{namespace}/activities/cancel:\001*Z5"0/api/v1/namespaces/{namespace}/activities/cancel:\001*' _WORKFLOWSERVICE.methods_by_name["RespondActivityTaskCanceledById"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RespondActivityTaskCanceledById" - ]._serialized_options = ( - b'\202\323\344\223\0024"//namespaces/{namespace}/activities/cancel-by-id:\001*' - ) + ]._serialized_options = b'\202\323\344\223\002q"//namespaces/{namespace}/activities/cancel-by-id:\001*Z;"6/api/v1/namespaces/{namespace}/activities/cancel-by-id:\001*' _WORKFLOWSERVICE.methods_by_name["RequestCancelWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "RequestCancelWorkflowExecution" - ]._serialized_options = b'\202\323\344\223\002N"I/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\001*' + ]._serialized_options = b'\202\323\344\223\002\245\001"I/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\001*ZU"P/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/cancel:\001*' _WORKFLOWSERVICE.methods_by_name["SignalWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "SignalWorkflowExecution" - ]._serialized_options = b'\202\323\344\223\002\\"W/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\001*' + ]._serialized_options = b'\202\323\344\223\002\301\001"W/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\001*Zc"^/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/signal/{signal_name}:\001*' _WORKFLOWSERVICE.methods_by_name["SignalWithStartWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "SignalWithStartWorkflowExecution" - ]._serialized_options = b'\202\323\344\223\002T"O/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\001*' + ]._serialized_options = b'\202\323\344\223\002\261\001"O/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\001*Z["V/api/v1/namespaces/{namespace}/workflows/{workflow_id}/signal-with-start/{signal_name}:\001*' _WORKFLOWSERVICE.methods_by_name["ResetWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ResetWorkflowExecution" - ]._serialized_options = b'\202\323\344\223\002M"H/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\001*' + ]._serialized_options = b'\202\323\344\223\002\243\001"H/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\001*ZT"O/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/reset:\001*' _WORKFLOWSERVICE.methods_by_name["TerminateWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "TerminateWorkflowExecution" - ]._serialized_options = b'\202\323\344\223\002Q"L/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\001*' + ]._serialized_options = b'\202\323\344\223\002\253\001"L/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\001*ZX"S/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/terminate:\001*' _WORKFLOWSERVICE.methods_by_name["ListWorkflowExecutions"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ListWorkflowExecutions" - ]._serialized_options = ( - b"\202\323\344\223\002#\022!/namespaces/{namespace}/workflows" - ) + ]._serialized_options = b"\202\323\344\223\002O\022!/namespaces/{namespace}/workflowsZ*\022(/api/v1/namespaces/{namespace}/workflows" _WORKFLOWSERVICE.methods_by_name["ListArchivedWorkflowExecutions"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ListArchivedWorkflowExecutions" - ]._serialized_options = ( - b"\202\323\344\223\002,\022*/namespaces/{namespace}/archived-workflows" - ) + ]._serialized_options = b"\202\323\344\223\002a\022*/namespaces/{namespace}/archived-workflowsZ3\0221/api/v1/namespaces/{namespace}/archived-workflows" _WORKFLOWSERVICE.methods_by_name["CountWorkflowExecutions"]._options = None _WORKFLOWSERVICE.methods_by_name[ "CountWorkflowExecutions" - ]._serialized_options = ( - b"\202\323\344\223\002(\022&/namespaces/{namespace}/workflow-count" - ) + ]._serialized_options = b"\202\323\344\223\002Y\022&/namespaces/{namespace}/workflow-countZ/\022-/api/v1/namespaces/{namespace}/workflow-count" _WORKFLOWSERVICE.methods_by_name["QueryWorkflow"]._options = None _WORKFLOWSERVICE.methods_by_name[ "QueryWorkflow" - ]._serialized_options = b'\202\323\344\223\002W"R/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\001*' + ]._serialized_options = b'\202\323\344\223\002\267\001"R/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\001*Z^"Y/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/query/{query.query_type}:\001*' _WORKFLOWSERVICE.methods_by_name["DescribeWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "DescribeWorkflowExecution" - ]._serialized_options = b"\202\323\344\223\002;\0229/namespaces/{namespace}/workflows/{execution.workflow_id}" + ]._serialized_options = b"\202\323\344\223\002\177\0229/namespaces/{namespace}/workflows/{execution.workflow_id}ZB\022@/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}" _WORKFLOWSERVICE.methods_by_name["DescribeTaskQueue"]._options = None _WORKFLOWSERVICE.methods_by_name[ "DescribeTaskQueue" - ]._serialized_options = b"\202\323\344\223\0027\0225/namespaces/{namespace}/task-queues/{task_queue.name}" + ]._serialized_options = b"\202\323\344\223\002w\0225/namespaces/{namespace}/task-queues/{task_queue.name}Z>\022/namespaces/{namespace}/schedules/{schedule_id}/matching-times" + ]._serialized_options = b"\202\323\344\223\002\211\001\022>/namespaces/{namespace}/schedules/{schedule_id}/matching-timesZG\022E/api/v1/namespaces/{namespace}/schedules/{schedule_id}/matching-times" _WORKFLOWSERVICE.methods_by_name["DeleteSchedule"]._options = None _WORKFLOWSERVICE.methods_by_name[ "DeleteSchedule" - ]._serialized_options = ( - b"\202\323\344\223\0021*//namespaces/{namespace}/schedules/{schedule_id}" - ) + ]._serialized_options = b"\202\323\344\223\002k*//namespaces/{namespace}/schedules/{schedule_id}Z8*6/api/v1/namespaces/{namespace}/schedules/{schedule_id}" _WORKFLOWSERVICE.methods_by_name["ListSchedules"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ListSchedules" - ]._serialized_options = ( - b"\202\323\344\223\002#\022!/namespaces/{namespace}/schedules" - ) + ]._serialized_options = b"\202\323\344\223\002O\022!/namespaces/{namespace}/schedulesZ*\022(/api/v1/namespaces/{namespace}/schedules" _WORKFLOWSERVICE.methods_by_name["GetWorkerBuildIdCompatibility"]._options = None _WORKFLOWSERVICE.methods_by_name[ "GetWorkerBuildIdCompatibility" - ]._serialized_options = b"\202\323\344\223\002P\022N/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibility" + ]._serialized_options = b"\202\323\344\223\002\251\001\022N/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibilityZW\022U/api/v1/namespaces/{namespace}/task-queues/{task_queue}/worker-build-id-compatibility" _WORKFLOWSERVICE.methods_by_name["GetWorkerVersioningRules"]._options = None _WORKFLOWSERVICE.methods_by_name[ "GetWorkerVersioningRules" - ]._serialized_options = b"\202\323\344\223\002J\022H/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rules" + ]._serialized_options = b"\202\323\344\223\002\235\001\022H/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rulesZQ\022O/api/v1/namespaces/{namespace}/task-queues/{task_queue}/worker-versioning-rules" _WORKFLOWSERVICE.methods_by_name["GetWorkerTaskReachability"]._options = None _WORKFLOWSERVICE.methods_by_name[ "GetWorkerTaskReachability" - ]._serialized_options = ( - b"\202\323\344\223\0022\0220/namespaces/{namespace}/worker-task-reachability" - ) + ]._serialized_options = b"\202\323\344\223\002m\0220/namespaces/{namespace}/worker-task-reachabilityZ9\0227/api/v1/namespaces/{namespace}/worker-task-reachability" _WORKFLOWSERVICE.methods_by_name["UpdateWorkflowExecution"]._options = None _WORKFLOWSERVICE.methods_by_name[ "UpdateWorkflowExecution" - ]._serialized_options = b'\202\323\344\223\002c"^/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\001*' + ]._serialized_options = b'\202\323\344\223\002\317\001"^/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\001*Zj"e/api/v1/namespaces/{namespace}/workflows/{workflow_execution.workflow_id}/update/{request.input.name}:\001*' _WORKFLOWSERVICE.methods_by_name["StartBatchOperation"]._options = None _WORKFLOWSERVICE.methods_by_name[ "StartBatchOperation" - ]._serialized_options = b'\202\323\344\223\0026"1/namespaces/{namespace}/batch-operations/{job_id}:\001*' + ]._serialized_options = b'\202\323\344\223\002u"1/namespaces/{namespace}/batch-operations/{job_id}:\001*Z="8/api/v1/namespaces/{namespace}/batch-operations/{job_id}:\001*' _WORKFLOWSERVICE.methods_by_name["StopBatchOperation"]._options = None _WORKFLOWSERVICE.methods_by_name[ "StopBatchOperation" - ]._serialized_options = b'\202\323\344\223\002;"6/namespaces/{namespace}/batch-operations/{job_id}/stop:\001*' + ]._serialized_options = b'\202\323\344\223\002\177"6/namespaces/{namespace}/batch-operations/{job_id}/stop:\001*ZB"=/api/v1/namespaces/{namespace}/batch-operations/{job_id}/stop:\001*' _WORKFLOWSERVICE.methods_by_name["DescribeBatchOperation"]._options = None _WORKFLOWSERVICE.methods_by_name[ "DescribeBatchOperation" - ]._serialized_options = ( - b"\202\323\344\223\0023\0221/namespaces/{namespace}/batch-operations/{job_id}" - ) + ]._serialized_options = b"\202\323\344\223\002o\0221/namespaces/{namespace}/batch-operations/{job_id}Z:\0228/api/v1/namespaces/{namespace}/batch-operations/{job_id}" _WORKFLOWSERVICE.methods_by_name["ListBatchOperations"]._options = None _WORKFLOWSERVICE.methods_by_name[ "ListBatchOperations" - ]._serialized_options = ( - b"\202\323\344\223\002*\022(/namespaces/{namespace}/batch-operations" - ) - _WORKFLOWSERVICE._serialized_start = 169 - _WORKFLOWSERVICE._serialized_end = 12900 + ]._serialized_options = b"\202\323\344\223\002]\022(/namespaces/{namespace}/batch-operationsZ1\022//api/v1/namespaces/{namespace}/batch-operations" + _WORKFLOWSERVICE.methods_by_name["UpdateActivityOptionsById"]._options = None + _WORKFLOWSERVICE.methods_by_name[ + "UpdateActivityOptionsById" + ]._serialized_options = b'\202\323\344\223\002\201\001"7/namespaces/{namespace}/activities/update-options-by-id:\001*ZC">/api/v1/namespaces/{namespace}/activities/update-options-by-id:\001*' + _WORKFLOWSERVICE.methods_by_name["PauseActivityById"]._options = None + _WORKFLOWSERVICE.methods_by_name[ + "PauseActivityById" + ]._serialized_options = b'\202\323\344\223\002o"./namespaces/{namespace}/activities/pause-by-id:\001*Z:"5/api/v1/namespaces/{namespace}/activities/pause-by-id:\001*' + _WORKFLOWSERVICE.methods_by_name["UnpauseActivityById"]._options = None + _WORKFLOWSERVICE.methods_by_name[ + "UnpauseActivityById" + ]._serialized_options = b'\202\323\344\223\002s"0/namespaces/{namespace}/activities/unpause-by-id:\001*Z<"7/api/v1/namespaces/{namespace}/activities/unpause-by-id:\001*' + _WORKFLOWSERVICE.methods_by_name["ResetActivityById"]._options = None + _WORKFLOWSERVICE.methods_by_name[ + "ResetActivityById" + ]._serialized_options = b'\202\323\344\223\002o"./namespaces/{namespace}/activities/reset-by-id:\001*Z:"5/api/v1/namespaces/{namespace}/activities/reset-by-id:\001*' + _WORKFLOWSERVICE._serialized_start = 170 + _WORKFLOWSERVICE._serialized_end = 16961 # @@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 69db51fa..310e7cb2 100644 --- a/temporalio/api/workflowservice/v1/service_pb2_grpc.py +++ b/temporalio/api/workflowservice/v1/service_pb2_grpc.py @@ -208,6 +208,11 @@ def __init__(self, channel): request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetStickyTaskQueueRequest.SerializeToString, response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetStickyTaskQueueResponse.FromString, ) + self.ShutdownWorker = channel.unary_unary( + "/temporal.api.workflowservice.v1.WorkflowService/ShutdownWorker", + request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ShutdownWorkerRequest.SerializeToString, + response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ShutdownWorkerResponse.FromString, + ) self.QueryWorkflow = channel.unary_unary( "/temporal.api.workflowservice.v1.WorkflowService/QueryWorkflow", request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.QueryWorkflowRequest.SerializeToString, @@ -343,6 +348,26 @@ def __init__(self, channel): request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.RespondNexusTaskFailedRequest.SerializeToString, response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.RespondNexusTaskFailedResponse.FromString, ) + self.UpdateActivityOptionsById = channel.unary_unary( + "/temporal.api.workflowservice.v1.WorkflowService/UpdateActivityOptionsById", + request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateActivityOptionsByIdRequest.SerializeToString, + response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateActivityOptionsByIdResponse.FromString, + ) + self.PauseActivityById = channel.unary_unary( + "/temporal.api.workflowservice.v1.WorkflowService/PauseActivityById", + request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.PauseActivityByIdRequest.SerializeToString, + response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.PauseActivityByIdResponse.FromString, + ) + self.UnpauseActivityById = channel.unary_unary( + "/temporal.api.workflowservice.v1.WorkflowService/UnpauseActivityById", + request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UnpauseActivityByIdRequest.SerializeToString, + response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UnpauseActivityByIdResponse.FromString, + ) + self.ResetActivityById = channel.unary_unary( + "/temporal.api.workflowservice.v1.WorkflowService/ResetActivityById", + request_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetActivityByIdRequest.SerializeToString, + response_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetActivityByIdResponse.FromString, + ) class WorkflowServiceServicer(object): @@ -760,6 +785,29 @@ def ResetStickyTaskQueue(self, request, context): 1. StickyTaskQueue 2. StickyScheduleToStartTimeout + When possible, ShutdownWorker should be preferred over + ResetStickyTaskQueue (particularly when a worker is shutting down or + cycling). + + (-- api-linter: core::0127::http-annotation=disabled + aip.dev/not-precedent: We do not expose worker API to HTTP. --) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def ShutdownWorker(self, request, context): + """ShutdownWorker is used to indicate that the given sticky task + queue is no longer being polled by its worker. Following the completion of + ShutdownWorker, newly-added workflow tasks will instead be placed + in the normal task queue, eligible for any worker to pick up. + + ShutdownWorker should be called by workers while shutting down, + after they've shut down their pollers. If another sticky poll + request is issued, the sticky task queue will be revived. + + As of Temporal Server v1.25.0, ShutdownWorker hasn't yet been implemented. + (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --) """ @@ -886,17 +934,18 @@ def UpdateWorkerVersioningRules(self, request, context): """Use this API to manage Worker Versioning Rules for a given Task Queue. There are two types of rules: Build ID Assignment rules and Compatible Build ID Redirect rules. - Assignment rules are used to assign a Build ID for a new execution when it starts. Its primary - use case is to specify the latest Build ID but it has powerful features for gradual rollout + Assignment rules determine how to assign new executions to a Build IDs. Their primary + use case is to specify the latest Build ID but they have powerful features for gradual rollout of a new Build ID. - Once a Build ID is assigned to a workflow execution and it completes its first Workflow Task, + Once a workflow execution is assigned to a Build ID and it completes its first Workflow Task, the workflow stays on the assigned Build ID regardless of changes in assignment rules. This eliminates the need for compatibility between versions when you only care about using the new version for new workflows and let existing workflows finish in their own version. - Activities, Child Workflows and Continue-as-New executions have the option to inherit their - parent/previous workflow or use the latest assigment rules to independently select a Build ID. + Activities, Child Workflows and Continue-as-New executions have the option to inherit the + Build ID of their parent/previous workflow or use the latest assignment rules to independently + select a Build ID. Redirect rules should only be used when you want to move workflows and activities assigned to one Build ID (source) to another compatible Build ID (target). You are responsible to make sure @@ -940,13 +989,13 @@ def GetWorkerTaskReachability(self, request, context): raise NotImplementedError("Method not implemented!") def UpdateWorkflowExecution(self, request, context): - """Invokes the specified update function on user workflow code.""" + """Invokes the specified Update function on user Workflow code.""" context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") raise NotImplementedError("Method not implemented!") def PollWorkflowExecutionUpdate(self, request, context): - """Polls a workflow execution for the outcome of a workflow execution update + """Polls a Workflow Execution for the outcome of a Workflow Update previously issued through the UpdateWorkflowExecution RPC. The effective timeout on this call will be shorter of the the caller-supplied gRPC timeout and the server's configured long-poll timeout. @@ -1009,6 +1058,74 @@ def RespondNexusTaskFailed(self, request, context): context.set_details("Method not implemented!") raise NotImplementedError("Method not implemented!") + def UpdateActivityOptionsById(self, request, context): + """UpdateActivityOptionsById is called by the client to update the options of an activity + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def PauseActivityById(self, request, context): + """PauseActivityById pauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + + Pausing an activity means: + - If the activity is currently waiting for a retry or is running and subsequently fails, + it will not be rescheduled until it is unpaused. + - If the activity is already paused, calling this method will have no effect. + - If the activity is running and finishes successfully, the activity will be completed. + - If the activity is running and finishes with failure: + * if there is no retry left - the activity will be completed. + * if there are more retries left - the activity will be paused. + For long-running activities: + - activities in paused state will send a cancellation with "activity_paused" set to 'true' in response to 'RecordActivityTaskHeartbeat'. + - The activity should respond to the cancellation accordingly. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def UnpauseActivityById(self, request, context): + """UnpauseActivityById unpauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + There are two 'modes' of unpausing an activity: + 'resume' - If the activity is paused, it will be resumed and scheduled for execution. + * If the activity is currently running Unpause with 'resume' has no effect. + * if 'no_wait' flag is set and the activity is waiting, the activity will be scheduled immediately. + 'reset' - If the activity is paused, it will be reset to its initial state and (depending on parameters) scheduled for execution. + * If the activity is currently running, Unpause with 'reset' will reset the number of attempts. + * if 'no_wait' flag is set, the activity will be scheduled immediately. + * if 'reset_heartbeats' flag is set, the activity heartbeat timer and heartbeats will be reset. + If the activity is in waiting for retry and past it retry timeout, it will be scheduled immediately. + Once the activity is unpaused, all timeout timers will be regenerated. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + def ResetActivityById(self, request, context): + """ResetActivityById unpauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + Resetting an activity means: + * number of attempts will be reset to 0. + * activity timeouts will be resetted. + If the activity currently running: + * if 'no_wait' flag is provided, a new instance of the activity will be scheduled immediately. + * if 'no_wait' flag is not provided, a new instance of the activity will be scheduled after current instance completes if needed. + If 'reset_heartbeats' flag is set, the activity heartbeat timer and heartbeats will be reset. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + def add_WorkflowServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -1192,6 +1309,11 @@ def add_WorkflowServiceServicer_to_server(servicer, server): request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetStickyTaskQueueRequest.FromString, response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetStickyTaskQueueResponse.SerializeToString, ), + "ShutdownWorker": grpc.unary_unary_rpc_method_handler( + servicer.ShutdownWorker, + request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ShutdownWorkerRequest.FromString, + response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ShutdownWorkerResponse.SerializeToString, + ), "QueryWorkflow": grpc.unary_unary_rpc_method_handler( servicer.QueryWorkflow, request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.QueryWorkflowRequest.FromString, @@ -1327,6 +1449,26 @@ def add_WorkflowServiceServicer_to_server(servicer, server): request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.RespondNexusTaskFailedRequest.FromString, response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.RespondNexusTaskFailedResponse.SerializeToString, ), + "UpdateActivityOptionsById": grpc.unary_unary_rpc_method_handler( + servicer.UpdateActivityOptionsById, + request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateActivityOptionsByIdRequest.FromString, + response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateActivityOptionsByIdResponse.SerializeToString, + ), + "PauseActivityById": grpc.unary_unary_rpc_method_handler( + servicer.PauseActivityById, + request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.PauseActivityByIdRequest.FromString, + response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.PauseActivityByIdResponse.SerializeToString, + ), + "UnpauseActivityById": grpc.unary_unary_rpc_method_handler( + servicer.UnpauseActivityById, + request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UnpauseActivityByIdRequest.FromString, + response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UnpauseActivityByIdResponse.SerializeToString, + ), + "ResetActivityById": grpc.unary_unary_rpc_method_handler( + servicer.ResetActivityById, + request_deserializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetActivityByIdRequest.FromString, + response_serializer=temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetActivityByIdResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( "temporal.api.workflowservice.v1.WorkflowService", rpc_method_handlers @@ -2393,6 +2535,35 @@ def ResetStickyTaskQueue( metadata, ) + @staticmethod + def ShutdownWorker( + 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/ShutdownWorker", + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ShutdownWorkerRequest.SerializeToString, + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ShutdownWorkerResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) + @staticmethod def QueryWorkflow( request, @@ -3175,3 +3346,119 @@ def RespondNexusTaskFailed( timeout, metadata, ) + + @staticmethod + def UpdateActivityOptionsById( + 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/UpdateActivityOptionsById", + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateActivityOptionsByIdRequest.SerializeToString, + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UpdateActivityOptionsByIdResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) + + @staticmethod + def PauseActivityById( + 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/PauseActivityById", + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.PauseActivityByIdRequest.SerializeToString, + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.PauseActivityByIdResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) + + @staticmethod + def UnpauseActivityById( + 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/UnpauseActivityById", + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UnpauseActivityByIdRequest.SerializeToString, + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.UnpauseActivityByIdResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) + + @staticmethod + def ResetActivityById( + 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/ResetActivityById", + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetActivityByIdRequest.SerializeToString, + temporal_dot_api_dot_workflowservice_dot_v1_dot_request__response__pb2.ResetActivityByIdResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi b/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi index 712a9f0b..a0d991a6 100644 --- a/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi +++ b/temporalio/api/workflowservice/v1/service_pb2_grpc.pyi @@ -414,6 +414,28 @@ class WorkflowServiceStub: 1. StickyTaskQueue 2. StickyScheduleToStartTimeout + When possible, ShutdownWorker should be preferred over + ResetStickyTaskQueue (particularly when a worker is shutting down or + cycling). + + (-- api-linter: core::0127::http-annotation=disabled + aip.dev/not-precedent: We do not expose worker API to HTTP. --) + """ + ShutdownWorker: grpc.UnaryUnaryMultiCallable[ + temporalio.api.workflowservice.v1.request_response_pb2.ShutdownWorkerRequest, + temporalio.api.workflowservice.v1.request_response_pb2.ShutdownWorkerResponse, + ] + """ShutdownWorker is used to indicate that the given sticky task + queue is no longer being polled by its worker. Following the completion of + ShutdownWorker, newly-added workflow tasks will instead be placed + in the normal task queue, eligible for any worker to pick up. + + ShutdownWorker should be called by workers while shutting down, + after they've shut down their pollers. If another sticky poll + request is issued, the sticky task queue will be revived. + + As of Temporal Server v1.25.0, ShutdownWorker hasn't yet been implemented. + (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --) """ @@ -524,17 +546,18 @@ class WorkflowServiceStub: """Use this API to manage Worker Versioning Rules for a given Task Queue. There are two types of rules: Build ID Assignment rules and Compatible Build ID Redirect rules. - Assignment rules are used to assign a Build ID for a new execution when it starts. Its primary - use case is to specify the latest Build ID but it has powerful features for gradual rollout + Assignment rules determine how to assign new executions to a Build IDs. Their primary + use case is to specify the latest Build ID but they have powerful features for gradual rollout of a new Build ID. - Once a Build ID is assigned to a workflow execution and it completes its first Workflow Task, + Once a workflow execution is assigned to a Build ID and it completes its first Workflow Task, the workflow stays on the assigned Build ID regardless of changes in assignment rules. This eliminates the need for compatibility between versions when you only care about using the new version for new workflows and let existing workflows finish in their own version. - Activities, Child Workflows and Continue-as-New executions have the option to inherit their - parent/previous workflow or use the latest assigment rules to independently select a Build ID. + Activities, Child Workflows and Continue-as-New executions have the option to inherit the + Build ID of their parent/previous workflow or use the latest assignment rules to independently + select a Build ID. Redirect rules should only be used when you want to move workflows and activities assigned to one Build ID (source) to another compatible Build ID (target). You are responsible to make sure @@ -575,12 +598,12 @@ class WorkflowServiceStub: temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkflowExecutionRequest, temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkflowExecutionResponse, ] - """Invokes the specified update function on user workflow code.""" + """Invokes the specified Update function on user Workflow code.""" PollWorkflowExecutionUpdate: grpc.UnaryUnaryMultiCallable[ temporalio.api.workflowservice.v1.request_response_pb2.PollWorkflowExecutionUpdateRequest, temporalio.api.workflowservice.v1.request_response_pb2.PollWorkflowExecutionUpdateResponse, ] - """Polls a workflow execution for the outcome of a workflow execution update + """Polls a Workflow Execution for the outcome of a Workflow Update previously issued through the UpdateWorkflowExecution RPC. The effective timeout on this call will be shorter of the the caller-supplied gRPC timeout and the server's configured long-poll timeout. @@ -632,6 +655,70 @@ class WorkflowServiceStub: (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --) """ + UpdateActivityOptionsById: grpc.UnaryUnaryMultiCallable[ + temporalio.api.workflowservice.v1.request_response_pb2.UpdateActivityOptionsByIdRequest, + temporalio.api.workflowservice.v1.request_response_pb2.UpdateActivityOptionsByIdResponse, + ] + """UpdateActivityOptionsById is called by the client to update the options of an activity + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + PauseActivityById: grpc.UnaryUnaryMultiCallable[ + temporalio.api.workflowservice.v1.request_response_pb2.PauseActivityByIdRequest, + temporalio.api.workflowservice.v1.request_response_pb2.PauseActivityByIdResponse, + ] + """PauseActivityById pauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + + Pausing an activity means: + - If the activity is currently waiting for a retry or is running and subsequently fails, + it will not be rescheduled until it is unpaused. + - If the activity is already paused, calling this method will have no effect. + - If the activity is running and finishes successfully, the activity will be completed. + - If the activity is running and finishes with failure: + * if there is no retry left - the activity will be completed. + * if there are more retries left - the activity will be paused. + For long-running activities: + - activities in paused state will send a cancellation with "activity_paused" set to 'true' in response to 'RecordActivityTaskHeartbeat'. + - The activity should respond to the cancellation accordingly. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + UnpauseActivityById: grpc.UnaryUnaryMultiCallable[ + temporalio.api.workflowservice.v1.request_response_pb2.UnpauseActivityByIdRequest, + temporalio.api.workflowservice.v1.request_response_pb2.UnpauseActivityByIdResponse, + ] + """UnpauseActivityById unpauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + There are two 'modes' of unpausing an activity: + 'resume' - If the activity is paused, it will be resumed and scheduled for execution. + * If the activity is currently running Unpause with 'resume' has no effect. + * if 'no_wait' flag is set and the activity is waiting, the activity will be scheduled immediately. + 'reset' - If the activity is paused, it will be reset to its initial state and (depending on parameters) scheduled for execution. + * If the activity is currently running, Unpause with 'reset' will reset the number of attempts. + * if 'no_wait' flag is set, the activity will be scheduled immediately. + * if 'reset_heartbeats' flag is set, the activity heartbeat timer and heartbeats will be reset. + If the activity is in waiting for retry and past it retry timeout, it will be scheduled immediately. + Once the activity is unpaused, all timeout timers will be regenerated. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + ResetActivityById: grpc.UnaryUnaryMultiCallable[ + temporalio.api.workflowservice.v1.request_response_pb2.ResetActivityByIdRequest, + temporalio.api.workflowservice.v1.request_response_pb2.ResetActivityByIdResponse, + ] + """ResetActivityById unpauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + Resetting an activity means: + * number of attempts will be reset to 0. + * activity timeouts will be resetted. + If the activity currently running: + * if 'no_wait' flag is provided, a new instance of the activity will be scheduled immediately. + * if 'no_wait' flag is not provided, a new instance of the activity will be scheduled after current instance completes if needed. + If 'reset_heartbeats' flag is set, the activity heartbeat timer and heartbeats will be reset. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ class WorkflowServiceServicer(metaclass=abc.ABCMeta): """WorkflowService API defines how Temporal SDKs and other clients interact with the Temporal server @@ -1092,6 +1179,30 @@ class WorkflowServiceServicer(metaclass=abc.ABCMeta): 1. StickyTaskQueue 2. StickyScheduleToStartTimeout + When possible, ShutdownWorker should be preferred over + ResetStickyTaskQueue (particularly when a worker is shutting down or + cycling). + + (-- api-linter: core::0127::http-annotation=disabled + aip.dev/not-precedent: We do not expose worker API to HTTP. --) + """ + @abc.abstractmethod + def ShutdownWorker( + self, + request: temporalio.api.workflowservice.v1.request_response_pb2.ShutdownWorkerRequest, + context: grpc.ServicerContext, + ) -> temporalio.api.workflowservice.v1.request_response_pb2.ShutdownWorkerResponse: + """ShutdownWorker is used to indicate that the given sticky task + queue is no longer being polled by its worker. Following the completion of + ShutdownWorker, newly-added workflow tasks will instead be placed + in the normal task queue, eligible for any worker to pick up. + + ShutdownWorker should be called by workers while shutting down, + after they've shut down their pollers. If another sticky poll + request is issued, the sticky task queue will be revived. + + As of Temporal Server v1.25.0, ShutdownWorker hasn't yet been implemented. + (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --) """ @@ -1238,17 +1349,18 @@ class WorkflowServiceServicer(metaclass=abc.ABCMeta): """Use this API to manage Worker Versioning Rules for a given Task Queue. There are two types of rules: Build ID Assignment rules and Compatible Build ID Redirect rules. - Assignment rules are used to assign a Build ID for a new execution when it starts. Its primary - use case is to specify the latest Build ID but it has powerful features for gradual rollout + Assignment rules determine how to assign new executions to a Build IDs. Their primary + use case is to specify the latest Build ID but they have powerful features for gradual rollout of a new Build ID. - Once a Build ID is assigned to a workflow execution and it completes its first Workflow Task, + Once a workflow execution is assigned to a Build ID and it completes its first Workflow Task, the workflow stays on the assigned Build ID regardless of changes in assignment rules. This eliminates the need for compatibility between versions when you only care about using the new version for new workflows and let existing workflows finish in their own version. - Activities, Child Workflows and Continue-as-New executions have the option to inherit their - parent/previous workflow or use the latest assigment rules to independently select a Build ID. + Activities, Child Workflows and Continue-as-New executions have the option to inherit the + Build ID of their parent/previous workflow or use the latest assignment rules to independently + select a Build ID. Redirect rules should only be used when you want to move workflows and activities assigned to one Build ID (source) to another compatible Build ID (target). You are responsible to make sure @@ -1295,14 +1407,14 @@ class WorkflowServiceServicer(metaclass=abc.ABCMeta): request: temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkflowExecutionRequest, context: grpc.ServicerContext, ) -> temporalio.api.workflowservice.v1.request_response_pb2.UpdateWorkflowExecutionResponse: - """Invokes the specified update function on user workflow code.""" + """Invokes the specified Update function on user Workflow code.""" @abc.abstractmethod def PollWorkflowExecutionUpdate( self, request: temporalio.api.workflowservice.v1.request_response_pb2.PollWorkflowExecutionUpdateRequest, context: grpc.ServicerContext, ) -> temporalio.api.workflowservice.v1.request_response_pb2.PollWorkflowExecutionUpdateResponse: - """Polls a workflow execution for the outcome of a workflow execution update + """Polls a Workflow Execution for the outcome of a Workflow Update previously issued through the UpdateWorkflowExecution RPC. The effective timeout on this call will be shorter of the the caller-supplied gRPC timeout and the server's configured long-poll timeout. @@ -1368,6 +1480,82 @@ class WorkflowServiceServicer(metaclass=abc.ABCMeta): (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --) """ + @abc.abstractmethod + def UpdateActivityOptionsById( + self, + request: temporalio.api.workflowservice.v1.request_response_pb2.UpdateActivityOptionsByIdRequest, + context: grpc.ServicerContext, + ) -> temporalio.api.workflowservice.v1.request_response_pb2.UpdateActivityOptionsByIdResponse: + """UpdateActivityOptionsById is called by the client to update the options of an activity + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + @abc.abstractmethod + def PauseActivityById( + self, + request: temporalio.api.workflowservice.v1.request_response_pb2.PauseActivityByIdRequest, + context: grpc.ServicerContext, + ) -> ( + temporalio.api.workflowservice.v1.request_response_pb2.PauseActivityByIdResponse + ): + """PauseActivityById pauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + + Pausing an activity means: + - If the activity is currently waiting for a retry or is running and subsequently fails, + it will not be rescheduled until it is unpaused. + - If the activity is already paused, calling this method will have no effect. + - If the activity is running and finishes successfully, the activity will be completed. + - If the activity is running and finishes with failure: + * if there is no retry left - the activity will be completed. + * if there are more retries left - the activity will be paused. + For long-running activities: + - activities in paused state will send a cancellation with "activity_paused" set to 'true' in response to 'RecordActivityTaskHeartbeat'. + - The activity should respond to the cancellation accordingly. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + @abc.abstractmethod + def UnpauseActivityById( + self, + request: temporalio.api.workflowservice.v1.request_response_pb2.UnpauseActivityByIdRequest, + context: grpc.ServicerContext, + ) -> temporalio.api.workflowservice.v1.request_response_pb2.UnpauseActivityByIdResponse: + """UnpauseActivityById unpauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + There are two 'modes' of unpausing an activity: + 'resume' - If the activity is paused, it will be resumed and scheduled for execution. + * If the activity is currently running Unpause with 'resume' has no effect. + * if 'no_wait' flag is set and the activity is waiting, the activity will be scheduled immediately. + 'reset' - If the activity is paused, it will be reset to its initial state and (depending on parameters) scheduled for execution. + * If the activity is currently running, Unpause with 'reset' will reset the number of attempts. + * if 'no_wait' flag is set, the activity will be scheduled immediately. + * if 'reset_heartbeats' flag is set, the activity heartbeat timer and heartbeats will be reset. + If the activity is in waiting for retry and past it retry timeout, it will be scheduled immediately. + Once the activity is unpaused, all timeout timers will be regenerated. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ + @abc.abstractmethod + def ResetActivityById( + self, + request: temporalio.api.workflowservice.v1.request_response_pb2.ResetActivityByIdRequest, + context: grpc.ServicerContext, + ) -> ( + temporalio.api.workflowservice.v1.request_response_pb2.ResetActivityByIdResponse + ): + """ResetActivityById unpauses the execution of an activity specified by its ID. + Returns a `NotFound` error if there is no pending activity with the provided ID. + Resetting an activity means: + * number of attempts will be reset to 0. + * activity timeouts will be resetted. + If the activity currently running: + * if 'no_wait' flag is provided, a new instance of the activity will be scheduled immediately. + * if 'no_wait' flag is not provided, a new instance of the activity will be scheduled after current instance completes if needed. + If 'reset_heartbeats' flag is set, the activity heartbeat timer and heartbeats will be reset. + (-- api-linter: core::0136::prepositions=disabled + aip.dev/not-precedent: "By" is used to indicate request type. --) + """ def add_WorkflowServiceServicer_to_server( servicer: WorkflowServiceServicer, server: grpc.Server diff --git a/temporalio/bridge/Cargo.lock b/temporalio/bridge/Cargo.lock index 13a1e557..2ee2cbd1 100644 --- a/temporalio/bridge/Cargo.lock +++ b/temporalio/bridge/Cargo.lock @@ -39,9 +39,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "anstyle" @@ -51,15 +51,15 @@ checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anyhow" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -111,9 +111,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", @@ -244,9 +244,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -309,9 +309,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ "libc", ] @@ -440,9 +440,9 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", @@ -595,9 +595,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "filetime" @@ -619,9 +619,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -777,8 +777,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -847,9 +849,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ "allocator-api2", "equivalent", @@ -970,9 +972,9 @@ dependencies = [ [[package]] name = "hyper-timeout" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ "hyper", "hyper-util", @@ -1000,6 +1002,124 @@ dependencies = [ "tracing", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -1008,12 +1128,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -1033,7 +1164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -1113,9 +1244,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" [[package]] name = "libredox" @@ -1134,6 +1265,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -1162,7 +1299,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -1234,9 +1371,9 @@ dependencies = [ [[package]] name = "mockall" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", @@ -1248,9 +1385,9 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", "proc-macro2", @@ -1342,7 +1479,7 @@ dependencies = [ "js-sys", "once_cell", "pin-project-lite", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1358,7 +1495,7 @@ dependencies = [ "opentelemetry-proto", "opentelemetry_sdk", "prost", - "thiserror", + "thiserror 1.0.69", "tokio", "tonic", ] @@ -1404,7 +1541,7 @@ dependencies = [ "percent-encoding", "rand", "serde_json", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", ] @@ -1589,7 +1726,7 @@ dependencies = [ "memchr", "parking_lot", "protobuf", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1801,9 +1938,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", @@ -1812,33 +1949,36 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror", + "thiserror 2.0.3", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring", "rustc-hash", "rustls", + "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.3", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ "cfg_aliases", "libc", @@ -1913,7 +2053,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -1928,9 +2068,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -2055,9 +2195,9 @@ version = "0.1.0" [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags", "errno", @@ -2068,9 +2208,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "7f1a745511c54ba6d4465e8d5dfbd81b45791756de28d4981af70d6dca128f1e" dependencies = [ "log", "once_cell", @@ -2108,6 +2248,9 @@ name = "rustls-pki-types" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -2162,9 +2305,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -2172,18 +2315,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", @@ -2192,9 +2335,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -2310,6 +2453,12 @@ dependencies = [ "lock_api", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" version = "0.11.1" @@ -2324,9 +2473,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.86" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -2348,6 +2497,17 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sysinfo" version = "0.32.0" @@ -2363,9 +2523,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -2380,9 +2540,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -2412,7 +2572,7 @@ dependencies = [ "slotmap", "temporal-sdk-core-api", "temporal-sdk-core-protos", - "thiserror", + "thiserror 1.0.69", "tokio", "tonic", "tower 0.5.1", @@ -2426,11 +2586,10 @@ name = "temporal-sdk-bridge" version = "0.1.0" dependencies = [ "anyhow", + "async-trait", "futures", "log", - "once_cell", "prost", - "prost-types", "pyo3", "pyo3-asyncio", "pythonize", @@ -2492,7 +2651,7 @@ dependencies = [ "temporal-client", "temporal-sdk-core-api", "temporal-sdk-core-protos", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -2517,7 +2676,7 @@ dependencies = [ "prost-types", "serde_json", "temporal-sdk-core-protos", - "thiserror", + "thiserror 1.0.69", "tonic", "tracing-core", "url", @@ -2538,7 +2697,7 @@ dependencies = [ "rand", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "tonic", "tonic-build", "uuid", @@ -2552,18 +2711,38 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", @@ -2599,6 +2778,16 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -2616,9 +2805,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -2875,27 +3064,12 @@ dependencies = [ "syn", ] -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-xid" version = "0.2.6" @@ -2916,15 +3090,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "uuid" version = "1.11.0" @@ -3051,6 +3237,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "winapi" version = "0.3.9" @@ -3238,6 +3434,18 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "xattr" version = "1.3.1" @@ -3249,6 +3457,30 @@ dependencies = [ "rustix", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -3270,6 +3502,27 @@ dependencies = [ "syn", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -3290,6 +3543,28 @@ dependencies = [ "syn", ] +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zip" version = "2.2.0" @@ -3312,7 +3587,7 @@ dependencies = [ "pbkdf2", "rand", "sha1", - "thiserror", + "thiserror 1.0.69", "time", "zeroize", "zopfli", diff --git a/temporalio/bridge/Cargo.toml b/temporalio/bridge/Cargo.toml index 3dfd818e..9b55872c 100644 --- a/temporalio/bridge/Cargo.toml +++ b/temporalio/bridge/Cargo.toml @@ -9,11 +9,10 @@ crate-type = ["cdylib"] [dependencies] anyhow = "1.0" +async-trait = "0.1" futures = "0.3" log = "0.4" -once_cell = "1.16" prost = "0.13" -prost-types = "0.13" pyo3 = { version = "0.20", features = ["extension-module", "abi3-py38", "anyhow"] } pyo3-asyncio = { version = "0.20", features = ["tokio-runtime"] } pythonize = "0.20" diff --git a/temporalio/bridge/sdk-core b/temporalio/bridge/sdk-core index 74b928bb..9879b552 160000 --- a/temporalio/bridge/sdk-core +++ b/temporalio/bridge/sdk-core @@ -1 +1 @@ -Subproject commit 74b928bb256bd861eadb56f25535f33a449b135d +Subproject commit 9879b552e4acda73236a3593d91b7ccc052c5c36 diff --git a/temporalio/bridge/src/client.rs b/temporalio/bridge/src/client.rs index c67abe13..ddf60197 100644 --- a/temporalio/bridge/src/client.rs +++ b/temporalio/bridge/src/client.rs @@ -502,9 +502,9 @@ impl TryFrom for ClientOptions { if let Some(tls_config) = opts.tls_config { gateway_opts.tls_cfg(tls_config.try_into()?); } - return gateway_opts + gateway_opts .build() - .map_err(|err| PyValueError::new_err(format!("Invalid client config: {}", err))); + .map_err(|err| PyValueError::new_err(format!("Invalid client config: {}", err))) } } diff --git a/temporalio/bridge/src/lib.rs b/temporalio/bridge/src/lib.rs index 589117f2..8e0daa27 100644 --- a/temporalio/bridge/src/lib.rs +++ b/temporalio/bridge/src/lib.rs @@ -45,6 +45,13 @@ fn temporal_sdk_bridge(py: Python, m: &PyModule) -> PyResult<()> { )?; m.add_class::()?; m.add_class::()?; + m.add_class::()?; + m.add_class::()?; + m.add_class::()?; + m.add_class::()?; + m.add_class::()?; + m.add_class::()?; + m.add_class::()?; m.add_function(wrap_pyfunction!(new_worker, m)?)?; m.add_function(wrap_pyfunction!(new_replay_worker, m)?)?; Ok(()) @@ -56,12 +63,12 @@ fn connect_client<'a>( runtime_ref: &runtime::RuntimeRef, config: client::ClientConfig, ) -> PyResult<&'a PyAny> { - client::connect_client(py, &runtime_ref, config) + client::connect_client(py, runtime_ref, config) } #[pyfunction] fn new_metric_meter(runtime_ref: &runtime::RuntimeRef) -> Option { - metric::new_metric_meter(&runtime_ref) + metric::new_metric_meter(runtime_ref) } #[pyfunction] @@ -70,7 +77,7 @@ fn init_runtime(telemetry_config: runtime::TelemetryConfig) -> PyResult(py: Python<'a>, thread_id: std::os::raw::c_long, exc: &PyAny) -> bool { +fn raise_in_thread(py: Python, thread_id: std::os::raw::c_long, exc: &PyAny) -> bool { runtime::raise_in_thread(py, thread_id, exc) } @@ -80,7 +87,7 @@ fn start_dev_server<'a>( runtime_ref: &runtime::RuntimeRef, config: testing::DevServerConfig, ) -> PyResult<&'a PyAny> { - testing::start_dev_server(py, &runtime_ref, config) + testing::start_dev_server(py, runtime_ref, config) } #[pyfunction] @@ -89,7 +96,7 @@ fn start_test_server<'a>( runtime_ref: &runtime::RuntimeRef, config: testing::TestServerConfig, ) -> PyResult<&'a PyAny> { - testing::start_test_server(py, &runtime_ref, config) + testing::start_test_server(py, runtime_ref, config) } #[pyfunction] @@ -98,7 +105,7 @@ fn new_worker( client: &client::ClientRef, config: worker::WorkerConfig, ) -> PyResult { - worker::new_worker(&runtime_ref, &client, config) + worker::new_worker(runtime_ref, client, config) } #[pyfunction] @@ -107,5 +114,5 @@ fn new_replay_worker<'a>( runtime_ref: &runtime::RuntimeRef, config: worker::WorkerConfig, ) -> PyResult<&'a PyTuple> { - worker::new_replay_worker(py, &runtime_ref, config) + worker::new_replay_worker(py, runtime_ref, config) } diff --git a/temporalio/bridge/src/metric.rs b/temporalio/bridge/src/metric.rs index 6e3a3329..45d2f12c 100644 --- a/temporalio/bridge/src/metric.rs +++ b/temporalio/bridge/src/metric.rs @@ -221,9 +221,9 @@ fn build_metric_parameters( #[pymethods] impl MetricAttributesRef { - fn with_additional_attributes<'p>( + fn with_additional_attributes( &self, - py: Python<'p>, + py: Python, meter: &MetricMeterRef, new_attrs: HashMap, ) -> PyResult { @@ -240,8 +240,8 @@ impl MetricAttributesRef { } } -fn metric_key_value_from_py<'p>( - py: Python<'p>, +fn metric_key_value_from_py( + py: Python, k: String, obj: PyObject, ) -> PyResult { @@ -317,8 +317,8 @@ impl CustomMetricAttributes for BufferedMetricAttributes { } } -pub fn convert_metric_events<'p>( - py: Python<'p>, +pub fn convert_metric_events( + py: Python, events: Vec>, durations_as_seconds: bool, ) -> Vec { @@ -328,8 +328,8 @@ pub fn convert_metric_events<'p>( .collect() } -fn convert_metric_event<'p>( - py: Python<'p>, +fn convert_metric_event( + py: Python, event: MetricEvent, durations_as_seconds: bool, ) -> Option { diff --git a/temporalio/bridge/src/runtime.rs b/temporalio/bridge/src/runtime.rs index aec8e8d7..cc1bd06a 100644 --- a/temporalio/bridge/src/runtime.rs +++ b/temporalio/bridge/src/runtime.rs @@ -13,7 +13,7 @@ use temporal_sdk_core::telemetry::{ build_otlp_metric_exporter, start_prometheus_metric_exporter, CoreLogStreamConsumer, MetricsCallBuffer, }; -use temporal_sdk_core::CoreRuntime; +use temporal_sdk_core::{CoreRuntime, TokioRuntimeBuilder}; use temporal_sdk_core_api::telemetry::metrics::{CoreMeter, MetricCallBufferer}; use temporal_sdk_core_api::telemetry::{ CoreLog, Logger, MetricTemporality, OtelCollectorOptionsBuilder, @@ -123,7 +123,7 @@ pub fn init_runtime(telemetry_config: TelemetryConfig) -> PyResult { telemetry_build .build() .map_err(|err| PyValueError::new_err(format!("Invalid telemetry config: {}", err)))?, - tokio::runtime::Builder::new_multi_thread(), + TokioRuntimeBuilder::default(), ) .map_err(|err| PyRuntimeError::new_err(format!("Failed initializing telemetry: {}", err)))?; @@ -178,7 +178,7 @@ pub fn init_runtime(telemetry_config: TelemetryConfig) -> PyResult { }) } -pub fn raise_in_thread<'a>(_py: Python<'a>, thread_id: std::os::raw::c_long, exc: &PyAny) -> bool { +pub fn raise_in_thread(_py: Python, thread_id: std::os::raw::c_long, exc: &PyAny) -> bool { unsafe { pyo3::ffi::PyThreadState_SetAsyncExc(thread_id, exc.as_ptr()) == 1 } } @@ -204,9 +204,9 @@ impl Drop for Runtime { #[pymethods] impl RuntimeRef { - fn retrieve_buffered_metrics<'p>( + fn retrieve_buffered_metrics( &self, - py: Python<'p>, + py: Python, durations_as_seconds: bool, ) -> Vec { convert_metric_events( @@ -297,7 +297,7 @@ impl TryFrom for Arc { fn try_from(conf: MetricsConfig) -> PyResult { if let Some(otel_conf) = conf.opentelemetry { - if !conf.prometheus.is_none() { + if conf.prometheus.is_some() { return Err(PyValueError::new_err( "Cannot have OpenTelemetry and Prometheus metrics", )); @@ -364,10 +364,10 @@ impl TryFrom for Arc { // altered to support spawning based on current Tokio runtime instead of a // single static one -struct TokioRuntime; +pub(crate) struct TokioRuntime; tokio::task_local! { - static TASK_LOCALS: once_cell::unsync::OnceCell; + static TASK_LOCALS: std::cell::OnceCell; } impl pyo3_asyncio::generic::Runtime for TokioRuntime { @@ -378,9 +378,7 @@ impl pyo3_asyncio::generic::Runtime for TokioRuntime { where F: Future + Send + 'static, { - tokio::runtime::Handle::current().spawn(async move { - fut.await; - }) + tokio::runtime::Handle::current().spawn(fut) } } @@ -392,16 +390,15 @@ impl pyo3_asyncio::generic::ContextExt for TokioRuntime { where F: Future + Send + 'static, { - let cell = once_cell::unsync::OnceCell::new(); + let cell = std::cell::OnceCell::new(); cell.set(locals).unwrap(); Box::pin(TASK_LOCALS.scope(cell, fut)) } fn get_task_locals() -> Option { - match TASK_LOCALS.try_with(|c| c.get().map(|locals| locals.clone())) { - Ok(locals) => locals, - Err(_) => None, - } + TASK_LOCALS + .try_with(|c| c.get().cloned()) + .unwrap_or_default() } } diff --git a/temporalio/bridge/src/worker.rs b/temporalio/bridge/src/worker.rs index 5e468151..8256e849 100644 --- a/temporalio/bridge/src/worker.rs +++ b/temporalio/bridge/src/worker.rs @@ -1,16 +1,21 @@ use anyhow::Context; +use log::error; use prost::Message; use pyo3::exceptions::{PyException, PyRuntimeError, PyValueError}; use pyo3::prelude::*; use pyo3::types::{PyBytes, PyTuple}; use std::collections::HashMap; use std::collections::HashSet; -use std::sync::Arc; +use std::marker::PhantomData; +use std::sync::{Arc, OnceLock}; use std::time::Duration; use temporal_sdk_core::api::errors::{PollActivityError, PollWfError}; use temporal_sdk_core::replay::{HistoryForReplay, ReplayWorkerInput}; use temporal_sdk_core_api::errors::WorkflowErrorType; -use temporal_sdk_core_api::worker::SlotKind; +use temporal_sdk_core_api::worker::{ + SlotInfo, SlotInfoTrait, SlotKind, SlotKindType, SlotMarkUsedContext, SlotReleaseContext, + SlotReservationContext, SlotSupplier as SlotSupplierTrait, SlotSupplierPermit, +}; use temporal_sdk_core_api::Worker; use temporal_sdk_core_protos::coresdk::workflow_completion::WorkflowActivationCompletion; use temporal_sdk_core_protos::coresdk::{ActivityHeartbeat, ActivityTaskCompletion}; @@ -26,6 +31,10 @@ pyo3::create_exception!(temporal_sdk_bridge, PollShutdownError, PyException); #[pyclass] pub struct WorkerRef { worker: Option>, + /// Set upon the call to `validate`, with the task locals for the event loop at that time, which + /// is whatever event loop the user is running their worker in. This loop might be needed by + /// other rust-created threads that want to run async python code. + event_loop_task_locals: Arc>, runtime: runtime::Runtime, } @@ -63,6 +72,7 @@ pub struct TunerHolder { pub enum SlotSupplier { FixedSize(FixedSizeSlotSupplier), ResourceBased(ResourceBasedSlotSupplier), + Custom(CustomSlotSupplier), } #[derive(FromPyObject)] @@ -79,6 +89,271 @@ pub struct ResourceBasedSlotSupplier { tuner_config: ResourceBasedTunerConfig, } +#[pyclass] +pub struct SlotReserveCtx { + #[pyo3(get)] + pub slot_type: String, + #[pyo3(get)] + pub task_queue: String, + #[pyo3(get)] + pub worker_identity: String, + #[pyo3(get)] + pub worker_build_id: String, + #[pyo3(get)] + pub is_sticky: bool, +} + +impl SlotReserveCtx { + fn from_ctx(slot_type: SlotKindType, ctx: &dyn SlotReservationContext) -> Self { + SlotReserveCtx { + slot_type: match slot_type { + SlotKindType::Workflow => "workflow".to_string(), + SlotKindType::Activity => "activity".to_string(), + SlotKindType::LocalActivity => "local-activity".to_string(), + }, + task_queue: ctx.task_queue().to_string(), + worker_identity: ctx.worker_identity().to_string(), + worker_build_id: ctx.worker_build_id().to_string(), + is_sticky: ctx.is_sticky(), + } + } +} + +#[pyclass] +pub struct SlotMarkUsedCtx { + #[pyo3(get)] + slot_info: PyObject, + #[pyo3(get)] + permit: PyObject, +} + +// NOTE: this is dumb because we already have the generated proto code, we just can't use +// it b/c it's not pyclassable. In theory maybe we could compile-flag enable it in the core +// protos crate but... that's a lot for just this. Maybe if there are other use cases. + +#[pyclass] +pub struct WorkflowSlotInfo { + #[pyo3(get)] + pub workflow_type: String, + #[pyo3(get)] + pub is_sticky: bool, +} +#[pyclass] +pub struct ActivitySlotInfo { + #[pyo3(get)] + pub activity_type: String, +} +#[pyclass] +pub struct LocalActivitySlotInfo { + #[pyo3(get)] + pub activity_type: String, +} + +#[pyclass] +pub struct SlotReleaseCtx { + #[pyo3(get)] + slot_info: Option, + #[pyo3(get)] + permit: PyObject, +} + +fn slot_info_to_py_obj(py: Python<'_>, info: SlotInfo) -> PyObject { + match info { + SlotInfo::Workflow(w) => WorkflowSlotInfo { + workflow_type: w.workflow_type.clone(), + is_sticky: w.is_sticky, + } + .into_py(py), + SlotInfo::Activity(a) => ActivitySlotInfo { + activity_type: a.activity_type.clone(), + } + .into_py(py), + SlotInfo::LocalActivity(a) => LocalActivitySlotInfo { + activity_type: a.activity_type.clone(), + } + .into_py(py), + } +} + +#[pyclass] +#[derive(Clone)] +pub struct CustomSlotSupplier { + inner: PyObject, +} + +struct CustomSlotSupplierOfType { + inner: PyObject, + event_loop_task_locals: Arc>, + _phantom: PhantomData, +} + +#[pymethods] +impl CustomSlotSupplier { + #[new] + fn new(inner: PyObject) -> Self { + CustomSlotSupplier { inner } + } +} + +// Shouldn't really need this callback nonsense, it should be possible to do this from the pyo3 +// asyncio library, but we'd have to vendor the whole thing to make the right improvements. When +// pyo3 is upgraded and we are using https://github.com/PyO3/pyo3-async-runtimes (the replacement) +// consider upstreaming a way to do this. + +#[pyclass] +struct CreatedTaskForSlotCallback { + stored_task: Arc>, +} + +#[pymethods] +impl CreatedTaskForSlotCallback { + fn __call__(&self, task: PyObject) -> PyResult<()> { + self.stored_task.set(task).expect("must only be set once"); + Ok(()) + } +} + +struct TaskCanceller { + stored_task: Arc>, +} + +impl TaskCanceller { + fn new(stored_task: Arc>) -> Self { + TaskCanceller { stored_task } + } +} + +impl Drop for TaskCanceller { + fn drop(&mut self) { + if let Some(task) = self.stored_task.get() { + Python::with_gil(|py| { + task.call_method0(py, "cancel") + .expect("Failed to cancel task"); + }); + } + } +} + +#[async_trait::async_trait] +impl SlotSupplierTrait for CustomSlotSupplierOfType { + type SlotKind = SK; + + async fn reserve_slot(&self, ctx: &dyn SlotReservationContext) -> SlotSupplierPermit { + loop { + let stored_task = Arc::new(OnceLock::new()); + let _task_canceller = TaskCanceller::new(stored_task.clone()); + let pypermit = match Python::with_gil(|py| { + let py_obj = self.inner.as_ref(py); + let called = py_obj.call_method1( + "reserve_slot", + ( + SlotReserveCtx::from_ctx(SK::kind(), ctx), + CreatedTaskForSlotCallback { stored_task }, + ), + )?; + let tl = self + .event_loop_task_locals + .get() + .expect("task locals must be set"); + pyo3_asyncio::into_future_with_locals(tl, called) + }) { + Ok(f) => f, + Err(e) => { + error!( + "Unexpected error in custom slot supplier `reserve_slot`: {}", + e + ); + continue; + } + } + .await; + match pypermit { + Ok(p) => { + return SlotSupplierPermit::with_user_data(p); + } + Err(_) => { + // This is a user thrown error, re-raised by the logging wrapper so we can + // loop, so do that. + } + } + } + } + + fn try_reserve_slot(&self, ctx: &dyn SlotReservationContext) -> Option { + Python::with_gil(|py| { + let py_obj = self.inner.as_ref(py); + let pa = py_obj.call_method1( + "try_reserve_slot", + (SlotReserveCtx::from_ctx(SK::kind(), ctx),), + )?; + + if pa.is_none() { + return Ok(None); + } + PyResult::Ok(Some(SlotSupplierPermit::with_user_data(pa.into_py(py)))) + }) + .unwrap_or_else(|e| { + error!( + "Uncaught error in custom slot supplier `try_reserve_slot`: {}", + e + ); + None + }) + } + + fn mark_slot_used(&self, ctx: &dyn SlotMarkUsedContext) { + if let Err(e) = Python::with_gil(|py| { + let permit = ctx + .permit() + .user_data::() + .cloned() + .unwrap_or_else(|| py.None()); + let py_obj = self.inner.as_ref(py); + py_obj.call_method1( + "mark_slot_used", + (SlotMarkUsedCtx { + slot_info: slot_info_to_py_obj(py, ctx.info().downcast()), + permit, + },), + )?; + PyResult::Ok(()) + }) { + error!( + "Uncaught error in custom slot supplier `mark_slot_used`: {}", + e + ); + } + } + + fn release_slot(&self, ctx: &dyn SlotReleaseContext) { + if let Err(e) = Python::with_gil(|py| { + let permit = ctx + .permit() + .user_data::() + .cloned() + .unwrap_or_else(|| py.None()); + let py_obj = self.inner.as_ref(py); + py_obj.call_method1( + "release_slot", + (SlotReleaseCtx { + slot_info: ctx.info().map(|i| slot_info_to_py_obj(py, i.downcast())), + permit, + },), + )?; + PyResult::Ok(()) + }) { + error!( + "Uncaught error in custom slot supplier `release_slot`: {}", + e + ); + } + } + + fn available_slots(&self) -> Option { + None + } +} + #[derive(FromPyObject, Clone, Copy, PartialEq)] pub struct ResourceBasedTunerConfig { target_memory_usage: f64, @@ -100,7 +375,8 @@ pub fn new_worker( config: WorkerConfig, ) -> PyResult { enter_sync!(runtime_ref.runtime); - let config: temporal_sdk_core::WorkerConfig = config.try_into()?; + let event_loop_task_locals = Arc::new(OnceLock::new()); + let config = convert_worker_config(config, event_loop_task_locals.clone())?; let worker = temporal_sdk_core::init_worker( &runtime_ref.runtime.core, config, @@ -109,6 +385,7 @@ pub fn new_worker( .context("Failed creating worker")?; Ok(WorkerRef { worker: Some(Arc::new(worker)), + event_loop_task_locals, runtime: runtime_ref.runtime.clone(), }) } @@ -119,7 +396,8 @@ pub fn new_replay_worker<'a>( config: WorkerConfig, ) -> PyResult<&'a PyTuple> { enter_sync!(runtime_ref.runtime); - let config: temporal_sdk_core::WorkerConfig = config.try_into()?; + let event_loop_task_locals = Arc::new(OnceLock::new()); + let config = convert_worker_config(config, event_loop_task_locals.clone())?; let (history_pusher, stream) = HistoryPusher::new(runtime_ref.runtime.clone()); let worker = WorkerRef { worker: Some(Arc::new( @@ -127,6 +405,7 @@ pub fn new_replay_worker<'a>( |err| PyValueError::new_err(format!("Failed creating replay worker: {}", err)), )?, )), + event_loop_task_locals: Default::default(), runtime: runtime_ref.runtime.clone(), }; Ok(PyTuple::new( @@ -139,6 +418,13 @@ pub fn new_replay_worker<'a>( impl WorkerRef { fn validate<'p>(&self, py: Python<'p>) -> PyResult<&'p PyAny> { let worker = self.worker.as_ref().unwrap().clone(); + // Set custom slot supplier task locals so they can run futures. + // Event loop is assumed to be running at this point. + let task_locals = pyo3_asyncio::TaskLocals::with_running_loop(py)?.copy_context(py)?; + self.event_loop_task_locals + .set(task_locals) + .expect("must only be set once"); + self.runtime.future_into_py(py, async move { worker .validate() @@ -253,141 +539,152 @@ impl WorkerRef { } } -impl TryFrom for temporal_sdk_core::WorkerConfig { - type Error = PyErr; - - fn try_from(conf: WorkerConfig) -> PyResult { - let converted_tuner: temporal_sdk_core::TunerHolder = conf.tuner.try_into()?; - temporal_sdk_core::WorkerConfigBuilder::default() - .namespace(conf.namespace) - .task_queue(conf.task_queue) - .worker_build_id(conf.build_id) - .client_identity_override(conf.identity_override) - .max_cached_workflows(conf.max_cached_workflows) - .max_concurrent_wft_polls(conf.max_concurrent_workflow_task_polls) - .tuner(Arc::new(converted_tuner)) - .nonsticky_to_sticky_poll_ratio(conf.nonsticky_to_sticky_poll_ratio) - .max_concurrent_at_polls(conf.max_concurrent_activity_task_polls) - .no_remote_activities(conf.no_remote_activities) - .sticky_queue_schedule_to_start_timeout(Duration::from_millis( - conf.sticky_queue_schedule_to_start_timeout_millis, - )) - .max_heartbeat_throttle_interval(Duration::from_millis( - conf.max_heartbeat_throttle_interval_millis, - )) - .default_heartbeat_throttle_interval(Duration::from_millis( - conf.default_heartbeat_throttle_interval_millis, - )) - .max_worker_activities_per_second(conf.max_activities_per_second) - .max_task_queue_activities_per_second(conf.max_task_queue_activities_per_second) - // Even though grace period is optional, if it is not set then the - // auto-cancel-activity behavior of shutdown will not occur, so we - // always set it even if 0. - .graceful_shutdown_period(Duration::from_millis(conf.graceful_shutdown_period_millis)) - .use_worker_versioning(conf.use_worker_versioning) - .workflow_failure_errors(if conf.nondeterminism_as_workflow_fail { - HashSet::from([WorkflowErrorType::Nondeterminism]) - } else { - HashSet::new() - }) - .workflow_types_to_failure_errors( - conf.nondeterminism_as_workflow_fail_for_types - .iter() - .map(|s| { - ( - s.to_owned(), - HashSet::from([WorkflowErrorType::Nondeterminism]), - ) - }) - .collect::>>(), - ) - .build() - .map_err(|err| PyValueError::new_err(format!("Invalid worker config: {}", err))) - } +fn convert_worker_config( + conf: WorkerConfig, + task_locals: Arc>, +) -> PyResult { + let converted_tuner = convert_tuner_holder(conf.tuner, task_locals)?; + temporal_sdk_core::WorkerConfigBuilder::default() + .namespace(conf.namespace) + .task_queue(conf.task_queue) + .worker_build_id(conf.build_id) + .client_identity_override(conf.identity_override) + .max_cached_workflows(conf.max_cached_workflows) + .max_concurrent_wft_polls(conf.max_concurrent_workflow_task_polls) + .tuner(Arc::new(converted_tuner)) + .nonsticky_to_sticky_poll_ratio(conf.nonsticky_to_sticky_poll_ratio) + .max_concurrent_at_polls(conf.max_concurrent_activity_task_polls) + .no_remote_activities(conf.no_remote_activities) + .sticky_queue_schedule_to_start_timeout(Duration::from_millis( + conf.sticky_queue_schedule_to_start_timeout_millis, + )) + .max_heartbeat_throttle_interval(Duration::from_millis( + conf.max_heartbeat_throttle_interval_millis, + )) + .default_heartbeat_throttle_interval(Duration::from_millis( + conf.default_heartbeat_throttle_interval_millis, + )) + .max_worker_activities_per_second(conf.max_activities_per_second) + .max_task_queue_activities_per_second(conf.max_task_queue_activities_per_second) + // Even though grace period is optional, if it is not set then the + // auto-cancel-activity behavior of shutdown will not occur, so we + // always set it even if 0. + .graceful_shutdown_period(Duration::from_millis(conf.graceful_shutdown_period_millis)) + .use_worker_versioning(conf.use_worker_versioning) + .workflow_failure_errors(if conf.nondeterminism_as_workflow_fail { + HashSet::from([WorkflowErrorType::Nondeterminism]) + } else { + HashSet::new() + }) + .workflow_types_to_failure_errors( + conf.nondeterminism_as_workflow_fail_for_types + .iter() + .map(|s| { + ( + s.to_owned(), + HashSet::from([WorkflowErrorType::Nondeterminism]), + ) + }) + .collect::>>(), + ) + .build() + .map_err(|err| PyValueError::new_err(format!("Invalid worker config: {}", err))) } -impl TryFrom for temporal_sdk_core::TunerHolder { - type Error = PyErr; - - fn try_from(holder: TunerHolder) -> PyResult { - // Verify all resource-based options are the same if any are set - let maybe_wf_resource_opts = - if let SlotSupplier::ResourceBased(ref ss) = holder.workflow_slot_supplier { - Some(&ss.tuner_config) - } else { - None - }; - let maybe_act_resource_opts = - if let SlotSupplier::ResourceBased(ref ss) = holder.activity_slot_supplier { - Some(&ss.tuner_config) - } else { - None - }; - let maybe_local_act_resource_opts = - if let SlotSupplier::ResourceBased(ref ss) = holder.local_activity_slot_supplier { - Some(&ss.tuner_config) - } else { - None - }; - let all_resource_opts = [ - maybe_wf_resource_opts, - maybe_act_resource_opts, - maybe_local_act_resource_opts, - ]; - let mut set_resource_opts = all_resource_opts.iter().flatten(); - let first = set_resource_opts.next(); - let all_are_same = if let Some(first) = first { - set_resource_opts.all(|elem| elem == first) +fn convert_tuner_holder( + holder: TunerHolder, + task_locals: Arc>, +) -> PyResult { + // Verify all resource-based options are the same if any are set + let maybe_wf_resource_opts = + if let SlotSupplier::ResourceBased(ref ss) = holder.workflow_slot_supplier { + Some(&ss.tuner_config) } else { - true + None }; - if !all_are_same { - return Err(PyValueError::new_err( - "All resource-based slot suppliers must have the same ResourceBasedTunerOptions", - )); - } - - let mut options = temporal_sdk_core::TunerHolderOptionsBuilder::default(); - if let Some(first) = first { - options.resource_based_options( - temporal_sdk_core::ResourceBasedSlotsOptionsBuilder::default() - .target_mem_usage(first.target_memory_usage) - .target_cpu_usage(first.target_cpu_usage) - .build() - .expect("Building ResourceBasedSlotsOptions is infallible"), - ); + let maybe_act_resource_opts = + if let SlotSupplier::ResourceBased(ref ss) = holder.activity_slot_supplier { + Some(&ss.tuner_config) + } else { + None + }; + let maybe_local_act_resource_opts = + if let SlotSupplier::ResourceBased(ref ss) = holder.local_activity_slot_supplier { + Some(&ss.tuner_config) + } else { + None }; - options - .workflow_slot_options(holder.workflow_slot_supplier.try_into()?) - .activity_slot_options(holder.activity_slot_supplier.try_into()?) - .local_activity_slot_options(holder.local_activity_slot_supplier.try_into()?); - Ok(options - .build() - .map_err(|e| PyValueError::new_err(format!("Invalid tuner holder options: {}", e)))? - .build_tuner_holder() - .context("Failed building tuner holder")?) + let all_resource_opts = [ + maybe_wf_resource_opts, + maybe_act_resource_opts, + maybe_local_act_resource_opts, + ]; + let mut set_resource_opts = all_resource_opts.iter().flatten(); + let first = set_resource_opts.next(); + let all_are_same = if let Some(first) = first { + set_resource_opts.all(|elem| elem == first) + } else { + true + }; + if !all_are_same { + return Err(PyValueError::new_err( + "All resource-based slot suppliers must have the same ResourceBasedTunerOptions", + )); } -} -impl TryFrom for temporal_sdk_core::SlotSupplierOptions { - type Error = PyErr; + let mut options = temporal_sdk_core::TunerHolderOptionsBuilder::default(); + if let Some(first) = first { + options.resource_based_options( + temporal_sdk_core::ResourceBasedSlotsOptionsBuilder::default() + .target_mem_usage(first.target_memory_usage) + .target_cpu_usage(first.target_cpu_usage) + .build() + .expect("Building ResourceBasedSlotsOptions is infallible"), + ); + }; + options + .workflow_slot_options(convert_slot_supplier( + holder.workflow_slot_supplier, + task_locals.clone(), + )?) + .activity_slot_options(convert_slot_supplier( + holder.activity_slot_supplier, + task_locals.clone(), + )?) + .local_activity_slot_options(convert_slot_supplier( + holder.local_activity_slot_supplier, + task_locals, + )?); + Ok(options + .build() + .map_err(|e| PyValueError::new_err(format!("Invalid tuner holder options: {}", e)))? + .build_tuner_holder() + .context("Failed building tuner holder")?) +} - fn try_from(supplier: SlotSupplier) -> PyResult> { - Ok(match supplier { - SlotSupplier::FixedSize(fs) => temporal_sdk_core::SlotSupplierOptions::FixedSize { - slots: fs.num_slots, +fn convert_slot_supplier( + supplier: SlotSupplier, + task_locals: Arc>, +) -> PyResult> { + Ok(match supplier { + SlotSupplier::FixedSize(fs) => temporal_sdk_core::SlotSupplierOptions::FixedSize { + slots: fs.num_slots, + }, + SlotSupplier::ResourceBased(ss) => temporal_sdk_core::SlotSupplierOptions::ResourceBased( + temporal_sdk_core::ResourceSlotOptions::new( + ss.minimum_slots, + ss.maximum_slots, + Duration::from_millis(ss.ramp_throttle_ms), + ), + ), + SlotSupplier::Custom(cs) => temporal_sdk_core::SlotSupplierOptions::Custom(Arc::new( + CustomSlotSupplierOfType:: { + inner: cs.inner, + event_loop_task_locals: task_locals, + _phantom: PhantomData, }, - SlotSupplier::ResourceBased(ss) => { - temporal_sdk_core::SlotSupplierOptions::ResourceBased( - temporal_sdk_core::ResourceSlotOptions::new( - ss.minimum_slots, - ss.maximum_slots, - Duration::from_millis(ss.ramp_throttle_ms), - ), - ) - } - }) - } + )), + }) } /// For feeding histories into core during replay diff --git a/temporalio/bridge/worker.py b/temporalio/bridge/worker.py index cffb7fb6..b04af11f 100644 --- a/temporalio/bridge/worker.py +++ b/temporalio/bridge/worker.py @@ -6,7 +6,6 @@ from __future__ import annotations from dataclasses import dataclass -from datetime import timedelta from typing import ( TYPE_CHECKING, Awaitable, @@ -33,6 +32,9 @@ import temporalio.bridge.temporal_sdk_bridge import temporalio.converter import temporalio.exceptions +from temporalio.bridge.temporal_sdk_bridge import ( + CustomSlotSupplier as BridgeCustomSlotSupplier, +) from temporalio.bridge.temporal_sdk_bridge import PollShutdownError @@ -86,7 +88,11 @@ class FixedSizeSlotSupplier: num_slots: int -SlotSupplier: TypeAlias = Union[FixedSizeSlotSupplier, ResourceBasedSlotSupplier] +SlotSupplier: TypeAlias = Union[ + FixedSizeSlotSupplier, + ResourceBasedSlotSupplier, + BridgeCustomSlotSupplier, +] @dataclass diff --git a/temporalio/service.py b/temporalio/service.py index 87b78ad0..9c7cc4a5 100644 --- a/temporalio/service.py +++ b/temporalio/service.py @@ -615,6 +615,31 @@ def __init__(self, client: ServiceClient) -> None: wsv1.UpdateWorkerVersioningRulesRequest, wsv1.UpdateWorkerVersioningRulesResponse, ) + self.pause_activity_by_id = client._new_call( + "pause_activity_by_id", + wsv1.PauseActivityByIdRequest, + wsv1.PauseActivityByIdResponse, + ) + self.unpause_activity_by_id = client._new_call( + "unpause_activity_by_id", + wsv1.UnpauseActivityByIdRequest, + wsv1.UnpauseActivityByIdResponse, + ) + self.reset_activity_by_id = client._new_call( + "reset_activity_by_id", + wsv1.ResetActivityByIdRequest, + wsv1.ResetActivityByIdResponse, + ) + self.update_activity_options_by_id = client._new_call( + "update_activity_options_by_id", + wsv1.UpdateActivityOptionsByIdRequest, + wsv1.UpdateActivityOptionsByIdResponse, + ) + self.shutdown_worker = client._new_call( + "shutdown_worker", + wsv1.ShutdownWorkerRequest, + wsv1.ShutdownWorkerResponse, + ) class OperatorService: diff --git a/temporalio/worker/__init__.py b/temporalio/worker/__init__.py index 48fd1a1a..a12bf442 100644 --- a/temporalio/worker/__init__.py +++ b/temporalio/worker/__init__.py @@ -27,11 +27,20 @@ WorkflowReplayResults, ) from ._tuning import ( + ActivitySlotInfo, + CustomSlotSupplier, FixedSizeSlotSupplier, + LocalActivitySlotInfo, ResourceBasedSlotConfig, ResourceBasedSlotSupplier, ResourceBasedTunerConfig, + SlotInfo, + SlotMarkUsedContext, + SlotPermit, + SlotReleaseContext, + SlotReserveContext, WorkerTuner, + WorkflowSlotInfo, ) from ._worker import Worker, WorkerConfig from ._workflow_instance import ( diff --git a/temporalio/worker/_tuning.py b/temporalio/worker/_tuning.py index a015e0ea..ef1f2a25 100644 --- a/temporalio/worker/_tuning.py +++ b/temporalio/worker/_tuning.py @@ -1,7 +1,9 @@ +import asyncio +import logging from abc import ABC, abstractmethod from dataclasses import dataclass from datetime import timedelta -from typing import Literal, Optional, Union +from typing import Any, Callable, Literal, Optional, Protocol, Union, runtime_checkable from typing_extensions import TypeAlias @@ -9,6 +11,8 @@ _DEFAULT_RESOURCE_ACTIVITY_MAX = 500 +logger = logging.getLogger(__name__) + @dataclass(frozen=True) class FixedSizeSlotSupplier: @@ -70,7 +74,225 @@ class ResourceBasedSlotSupplier: :py:class:`CompositeTuner`, all resource-based slot suppliers must use the same tuner options.""" -SlotSupplier: TypeAlias = Union[FixedSizeSlotSupplier, ResourceBasedSlotSupplier] +class SlotPermit: + """A permit to use a slot for a workflow/activity/local activity task. + + You can inherit from this class to add your own data to the permit. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + pass + + +# WARNING: This must match Rust worker::SlotReserveCtx +class SlotReserveContext(Protocol): + """Context for reserving a slot from a :py:class:`CustomSlotSupplier`. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + slot_type: Literal["workflow", "activity", "local-activity"] + """The type of slot trying to be reserved. Always one of "workflow", "activity", or "local-activity".""" + task_queue: str + """The name of the task queue for which this reservation request is associated.""" + worker_identity: str + """The identity of the worker that is requesting the reservation.""" + worker_build_id: str + """The build id of the worker that is requesting the reservation.""" + is_sticky: bool + """True iff this is a reservation for a sticky poll for a workflow task.""" + + +# WARNING: This must match Rust worker::WorkflowSlotInfo +@runtime_checkable +class WorkflowSlotInfo(Protocol): + """Info about a workflow task slot usage. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + workflow_type: str + is_sticky: bool + + +# WARNING: This must match Rust worker::ActivitySlotInfo +@runtime_checkable +class ActivitySlotInfo(Protocol): + """Info about an activity task slot usage. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + activity_type: str + + +# WARNING: This must match Rust worker::LocalActivitySlotInfo +@runtime_checkable +class LocalActivitySlotInfo(Protocol): + """Info about a local activity task slot usage. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + activity_type: str + + +SlotInfo: TypeAlias = Union[WorkflowSlotInfo, ActivitySlotInfo, LocalActivitySlotInfo] + + +# WARNING: This must match Rust worker::SlotMarkUsedCtx +@dataclass(frozen=True) +class SlotMarkUsedContext(Protocol): + """Context for marking a slot used from a :py:class:`CustomSlotSupplier`. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + slot_info: SlotInfo + """Info about the task that will be using the slot.""" + permit: SlotPermit + """The permit that was issued when the slot was reserved.""" + + +# WARNING: This must match Rust worker::SlotReleaseCtx +@dataclass(frozen=True) +class SlotReleaseContext: + """Context for releasing a slot from a :py:class:`CustomSlotSupplier`. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + slot_info: SlotInfo + """Info about the task that will be using the slot.""" + permit: SlotPermit + """The permit that was issued when the slot was reserved.""" + + +class CustomSlotSupplier(ABC): + """This class can be implemented to provide custom slot supplier behavior. + + .. warning:: + Custom slot suppliers are currently experimental. + """ + + @abstractmethod + async def reserve_slot(self, ctx: SlotReserveContext) -> SlotPermit: + """This function is called before polling for new tasks. Your implementation must block until a + slot is available then return a permit to use that slot. + + The only acceptable exception to throw is :py:class:`asyncio.CancelledError`, as invocations of this method may + be cancelled. Any other exceptions thrown will be logged and ignored. + + It is technically possible but rare, during worker shutdown, for this method to be called and return a value, + but the Rust Core may not have a chance to _observe_ that value. In such cases the returned permit will not be + released. The permit will, however, be forgotten and python will garbage collect it. So if you use the same slot + supplier over the lifetime of more than one worker and it is critically important for you to clean up some + resources associated all permits you construct, then consider using a finalizer on your returned permits. + + Args: + ctx: The context for slot reservation. + + Returns: + A permit to use the slot which may be populated with your own data. + """ + ... + + @abstractmethod + def try_reserve_slot(self, ctx: SlotReserveContext) -> Optional[SlotPermit]: + """This function is called when trying to reserve slots for "eager" workflow and activity tasks. + Eager tasks are those which are returned as a result of completing a workflow task, rather than + from polling. Your implementation must not block, and if a slot is available, return a permit + to use that slot. + + Args: + ctx: The context for slot reservation. + + Returns: + Maybe a permit to use the slot which may be populated with your own data. + """ + ... + + @abstractmethod + def mark_slot_used(self, ctx: SlotMarkUsedContext) -> None: + """This function is called once a slot is actually being used to process some task, which may be + some time after the slot was reserved originally. For example, if there is no work for a + worker, a number of slots equal to the number of active pollers may already be reserved, but + none of them are being used yet. This call should be non-blocking. + + Args: + ctx: The context for marking a slot as used. + """ + ... + + @abstractmethod + def release_slot(self, ctx: SlotReleaseContext) -> None: + """This function is called once a permit is no longer needed. This could be because the task has + finished, whether successfully or not, or because the slot was no longer needed (ex: the number + of active pollers decreased). This call should be non-blocking. + + Args: + ctx: The context for releasing a slot. + """ + ... + + +SlotSupplier: TypeAlias = Union[ + FixedSizeSlotSupplier, ResourceBasedSlotSupplier, CustomSlotSupplier +] + + +class _BridgeSlotSupplierWrapper: + def __init__(self, supplier: CustomSlotSupplier): + self._supplier = supplier + + async def reserve_slot( + self, ctx: SlotReserveContext, reserve_cb: Callable[[Any], None] + ) -> SlotPermit: + try: + reserve_fut = asyncio.create_task(self._supplier.reserve_slot(ctx)) + reserve_cb(reserve_fut) + return await reserve_fut + except asyncio.CancelledError: + raise + except Exception: + logger.warning( + "Error in custom slot supplier `reserve_slot`", exc_info=True + ) + # Error needs to be re-thrown here so the rust code will loop + raise + + def try_reserve_slot(self, ctx: SlotReserveContext) -> Optional[SlotPermit]: + try: + return self._supplier.try_reserve_slot(ctx) + except Exception: + logger.warning( + "Error in custom slot supplier `try_reserve_slot`", exc_info=True + ) + return None + + def release_slot(self, ctx: SlotReleaseContext) -> None: + try: + self._supplier.release_slot(ctx) + except Exception: + logger.warning( + "Error in custom slot supplier `release_slot`", exc_info=True + ) + + def mark_slot_used(self, ctx: SlotMarkUsedContext) -> None: + try: + self._supplier.mark_slot_used(ctx) + except Exception: + logger.warning( + "Error in custom slot supplier `mark_slot_used`", exc_info=True + ) def _to_bridge_slot_supplier( @@ -99,6 +321,10 @@ def _to_bridge_slot_supplier( slot_supplier.tuner_config.target_cpu_usage, ), ) + elif isinstance(slot_supplier, CustomSlotSupplier): + return temporalio.bridge.worker.BridgeCustomSlotSupplier( + _BridgeSlotSupplierWrapper(slot_supplier) + ) else: raise TypeError(f"Unknown slot supplier type: {slot_supplier}") diff --git a/temporalio/worker/_worker.py b/temporalio/worker/_worker.py index 30c0e521..607bfa27 100644 --- a/temporalio/worker/_worker.py +++ b/temporalio/worker/_worker.py @@ -325,10 +325,6 @@ def __init__( disable_safe_eviction=disable_safe_workflow_eviction, ) - workflow_slot_supplier: temporalio.bridge.worker.SlotSupplier - activity_slot_supplier: temporalio.bridge.worker.SlotSupplier - local_activity_slot_supplier: temporalio.bridge.worker.SlotSupplier - if tuner is not None: if ( max_concurrent_workflow_tasks diff --git a/tests/worker/test_worker.py b/tests/worker/test_worker.py index 6af18059..ceac2981 100644 --- a/tests/worker/test_worker.py +++ b/tests/worker/test_worker.py @@ -2,6 +2,7 @@ import asyncio import concurrent.futures +import threading import uuid from datetime import timedelta from typing import Any, Awaitable, Callable, Optional @@ -13,15 +14,23 @@ from temporalio.client import BuildIdOpAddNewDefault, Client, TaskReachabilityType from temporalio.testing import WorkflowEnvironment from temporalio.worker import ( + ActivitySlotInfo, + CustomSlotSupplier, FixedSizeSlotSupplier, + LocalActivitySlotInfo, ResourceBasedSlotConfig, ResourceBasedSlotSupplier, ResourceBasedTunerConfig, + SlotMarkUsedContext, + SlotPermit, + SlotReleaseContext, + SlotReserveContext, Worker, WorkerTuner, + WorkflowSlotInfo, ) from temporalio.workflow import VersioningIntent -from tests.helpers import new_worker, worker_versioning_enabled +from tests.helpers import assert_eq_eventually, new_worker, worker_versioning_enabled def test_load_default_worker_binary_id(): @@ -324,7 +333,7 @@ async def test_warns_when_workers_too_lot(client: Client, env: WorkflowEnvironme with concurrent.futures.ThreadPoolExecutor() as executor: with pytest.warns( UserWarning, - match=f"Worker max_concurrent_activities is 500 but activity_executor's max_workers is only", + match="Worker max_concurrent_activities is 500 but activity_executor's max_workers is only", ): async with new_worker( client, @@ -336,6 +345,180 @@ async def test_warns_when_workers_too_lot(client: Client, env: WorkflowEnvironme pass +async def test_custom_slot_supplier(client: Client, env: WorkflowEnvironment): + class MyPermit(SlotPermit): + def __init__(self, pnum: int): + super().__init__() + self.pnum = pnum + + class MySlotSupplier(CustomSlotSupplier): + reserves = 0 + releases = 0 + highest_seen_reserve_on_release = 0 + used = 0 + seen_sticky_kinds = set() + seen_slot_kinds = set() + seen_used_slot_kinds = set() + seen_release_info_empty = False + seen_release_info_nonempty = False + + async def reserve_slot(self, ctx: SlotReserveContext) -> SlotPermit: + self.reserve_asserts(ctx) + # Verify an async call doesn't bungle things + await asyncio.sleep(0.01) + self.reserves += 1 + return MyPermit(self.reserves) + + def try_reserve_slot(self, ctx: SlotReserveContext) -> Optional[SlotPermit]: + self.reserve_asserts(ctx) + return None + + def mark_slot_used(self, ctx: SlotMarkUsedContext) -> None: + assert ctx.permit is not None + assert isinstance(ctx.permit, MyPermit) + assert ctx.permit.pnum is not None + assert ctx.slot_info is not None + if isinstance(ctx.slot_info, WorkflowSlotInfo): + self.seen_used_slot_kinds.add("wf") + elif isinstance(ctx.slot_info, ActivitySlotInfo): + self.seen_used_slot_kinds.add("a") + elif isinstance(ctx.slot_info, LocalActivitySlotInfo): + self.seen_used_slot_kinds.add("la") + self.used += 1 + + def release_slot(self, ctx: SlotReleaseContext) -> None: + assert ctx.permit is not None + assert isinstance(ctx.permit, MyPermit) + assert ctx.permit.pnum is not None + self.highest_seen_reserve_on_release = max( + ctx.permit.pnum, self.highest_seen_reserve_on_release + ) + # Info may be empty, and we should see both empty and not + if ctx.slot_info is None: + self.seen_release_info_empty = True + else: + self.seen_release_info_nonempty = True + self.releases += 1 + + def reserve_asserts(self, ctx): + assert ctx.task_queue is not None + assert ctx.worker_identity is not None + assert ctx.worker_build_id is not None + self.seen_sticky_kinds.add(ctx.is_sticky) + self.seen_slot_kinds.add(ctx.slot_type) + + ss = MySlotSupplier() + + tuner = WorkerTuner.create_composite( + workflow_supplier=ss, activity_supplier=ss, local_activity_supplier=ss + ) + async with new_worker( + client, + WaitOnSignalWorkflow, + activities=[say_hello], + tuner=tuner, + identity="myworker", + ) as w: + wf1 = await client.start_workflow( + WaitOnSignalWorkflow.run, + id=f"custom-slot-supplier-{uuid.uuid4()}", + task_queue=w.task_queue, + ) + await wf1.signal(WaitOnSignalWorkflow.my_signal, "finish") + await wf1.result() + + # We can't use reserve number directly because there is a technically possible race + # where the python reserve function appears to complete, but Rust doesn't see that. + # This isn't solvable without redoing a chunk of pyo3-asyncio. So we only check + # that the permits passed to release line up. + assert ss.highest_seen_reserve_on_release == ss.releases + # Two workflow tasks, one activity + assert ss.used == 3 + assert ss.seen_sticky_kinds == {True, False} + assert ss.seen_slot_kinds == {"workflow", "activity", "local-activity"} + assert ss.seen_used_slot_kinds == {"wf", "a"} + assert ss.seen_release_info_empty + assert ss.seen_release_info_nonempty + + +@workflow.defn +class SimpleWorkflow: + @workflow.run + async def run(self) -> str: + return "hi" + + +async def test_throwing_slot_supplier(client: Client, env: WorkflowEnvironment): + """Ensures a (mostly) broken slot supplier doesn't hose everything up""" + + class ThrowingSlotSupplier(CustomSlotSupplier): + marked_used = False + + async def reserve_slot(self, ctx: SlotReserveContext) -> SlotPermit: + # Hand out workflow tasks until one is used + if ctx.slot_type == "workflow" and not self.marked_used: + return SlotPermit() + raise ValueError("I always throw") + + def try_reserve_slot(self, ctx: SlotReserveContext) -> Optional[SlotPermit]: + raise ValueError("I always throw") + + def mark_slot_used(self, ctx: SlotMarkUsedContext) -> None: + raise ValueError("I always throw") + + def release_slot(self, ctx: SlotReleaseContext) -> None: + raise ValueError("I always throw") + + ss = ThrowingSlotSupplier() + + tuner = WorkerTuner.create_composite( + workflow_supplier=ss, activity_supplier=ss, local_activity_supplier=ss + ) + async with new_worker( + client, + SimpleWorkflow, + activities=[say_hello], + tuner=tuner, + ) as w: + wf1 = await client.start_workflow( + SimpleWorkflow.run, + id=f"throwing-slot-supplier-{uuid.uuid4()}", + task_queue=w.task_queue, + ) + await wf1.result() + + +async def test_blocking_slot_supplier(client: Client, env: WorkflowEnvironment): + class BlockingSlotSupplier(CustomSlotSupplier): + marked_used = False + + async def reserve_slot(self, ctx: SlotReserveContext) -> SlotPermit: + await asyncio.get_event_loop().create_future() + raise ValueError("Should be unreachable") + + def try_reserve_slot(self, ctx: SlotReserveContext) -> Optional[SlotPermit]: + return None + + def mark_slot_used(self, ctx: SlotMarkUsedContext) -> None: + return None + + def release_slot(self, ctx: SlotReleaseContext) -> None: + return None + + ss = BlockingSlotSupplier() + + tuner = WorkerTuner.create_composite( + workflow_supplier=ss, activity_supplier=ss, local_activity_supplier=ss + ) + async with new_worker( + client, + SimpleWorkflow, + activities=[say_hello], + tuner=tuner, + ) as _w: + await asyncio.sleep(1) + + def create_worker( client: Client, on_fatal_error: Optional[Callable[[BaseException], Awaitable[None]]] = None,