diff --git a/temporalio/api/history/v1/message_pb2.py b/temporalio/api/history/v1/message_pb2.py index 7f406dccee..06b9499b64 100644 --- a/temporalio/api/history/v1/message_pb2.py +++ b/temporalio/api/history/v1/message_pb2.py @@ -14,6 +14,7 @@ _sym_db = _symbol_database.Default() +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 @@ -58,7 +59,7 @@ ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - 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/deployment/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\x1a,temporal/api/sdk/v1/event_group_marker.proto"\xda\x12\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\x12L\n\x14source_version_stamp\x18\x1d \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\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\x1e\n\x12inherited_build_id\x18 \x01(\tB\x02\x18\x01\x12I\n\x13versioning_override\x18! \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12\x33\n\'parent_pinned_worker_deployment_version\x18" \x01(\tB\x02\x18\x01\x12\x32\n\x08priority\x18# \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12U\n\x18inherited_pinned_version\x18% \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12Y\n\x1binherited_auto_upgrade_info\x18\' \x01(\x0b\x32\x34.temporal.api.deployment.v1.InheritedAutoUpgradeInfo\x12 \n\x18\x65\x61ger_execution_accepted\x18& \x01(\x08\x12^\n\x1f\x64\x65\x63lined_target_version_upgrade\x18( \x01(\x0b\x32\x35.temporal.api.history.v1.DeclinedTargetVersionUpgrade\x12H\n\x14time_skipping_config\x18) \x01(\x0b\x32*.temporal.api.common.v1.TimeSkippingConfig\x12]\n\x1ftime_skipping_state_propagation\x18+ \x01(\x0b\x32\x34.temporal.api.common.v1.TimeSkippingStatePropagationJ\x04\x08$\x10%J\x04\x08*\x10+R parent_pinned_deployment_versionR\x18initial_skipped_duration"\x88\x01\n\x1c\x44\x65\x63linedTargetVersionUpgrade\x12O\n\x12\x64\x65ployment_version\x18\x01 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12\x17\n\x0frevision_number\x18\x02 \x01(\x03"\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"\xa5\x07\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\x35\n\x07\x66\x61ilure\x18\n \x01(\x0b\x32 .temporal.api.failure.v1.FailureB\x02\x18\x01\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\x1c\n\x10inherit_build_id\x18\x0f \x01(\x08\x42\x02\x18\x01\x12[\n\x1binitial_versioning_behavior\x18\x10 \x01(\x0e\x32\x36.temporal.api.enums.v1.ContinueAsNewVersioningBehavior"\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"\xa0\x03\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\x12Z\n\x1fsuggest_continue_as_new_reasons\x18\x08 \x03(\x0e\x32\x31.temporal.api.enums.v1.SuggestContinueAsNewReason\x12\x30\n(target_worker_deployment_version_changed\x18\t \x01(\x08\x12\x1a\n\x12history_size_bytes\x18\x05 \x01(\x03\x12\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12%\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03\x42\x02\x18\x01"\x82\x05\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\x1b\n\x0f\x62inary_checksum\x18\x04 \x01(\tB\x02\x18\x01\x12\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\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\x12>\n\ndeployment\x18\x07 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12\x46\n\x13versioning_behavior\x18\x08 \x01(\x0e\x32).temporal.api.enums.v1.VersioningBehavior\x12%\n\x19worker_deployment_version\x18\t \x01(\tB\x02\x18\x01\x12\x1e\n\x16worker_deployment_name\x18\n \x01(\t\x12O\n\x12\x64\x65ployment_version\x18\x0b \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion"\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"\x87\x03\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\x1b\n\x0f\x62inary_checksum\x18\t \x01(\tB\x02\x18\x01\x12\x46\n\x0eworker_version\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01"\xc2\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!\n\x15use_workflow_build_id\x18\r \x01(\x08\x42\x02\x18\x01\x12\x32\n\x08priority\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.PriorityJ\x04\x08\x03\x10\x04"\x9e\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\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12%\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03\x42\x02\x18\x01"\xe8\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\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01"\xdd\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\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12=\n\x05\x63\x61use\x18\x07 \x01(\x0e\x32..temporal.api.enums.v1.ActivityTaskFailedCause"\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"\x92\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\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01"\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"\xbf\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\x42\x02\x18\x01\x12N\n\x1b\x65xternal_workflow_execution\x18\x06 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x12\n\nrequest_id\x18\x07 \x01(\t"\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"\x9c\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\x13\n\x07\x63ontrol\x18\x04 \x01(\tB\x02\x18\x01\x12\x1b\n\x13\x63hild_workflow_only\x18\x05 \x01(\x08\x12\x0e\n\x06reason\x18\x06 \x01(\t"\xda\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\x13\n\x07\x63ontrol\x18\x06 \x01(\tB\x02\x18\x01"\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"\xfb\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\x13\n\x07\x63ontrol\x18\x06 \x01(\tB\x02\x18\x01\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"\xd3\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\x13\n\x07\x63ontrol\x18\x06 \x01(\tB\x02\x18\x01"\xd3\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\x13\n\x07\x63ontrol\x18\x04 \x01(\tB\x02\x18\x01"\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"\xfc\t\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\x13\n\x07\x63ontrol\x18\n \x01(\tB\x02\x18\x01\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\x1c\n\x10inherit_build_id\x18\x13 \x01(\x08\x42\x02\x18\x01\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12H\n\x14time_skipping_config\x18\x15 \x01(\x0b\x32*.temporal.api.common.v1.TimeSkippingConfig\x12]\n\x1ftime_skipping_state_propagation\x18\x17 \x01(\x0b\x32\x34.temporal.api.common.v1.TimeSkippingStatePropagation\x12I\n\x13versioning_override\x18\x18 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverrideJ\x04\x08\x16\x10\x17R\x18initial_skipped_duration"\xd6\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\x13\n\x07\x63ontrol\x18\x05 \x01(\tB\x02\x18\x01\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"\xda\x05\n.WorkflowExecutionOptionsUpdatedEventAttributes\x12I\n\x13versioning_override\x18\x01 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12!\n\x19unset_versioning_override\x18\x02 \x01(\x08\x12\x1b\n\x13\x61ttached_request_id\x18\x03 \x01(\t\x12G\n\x1d\x61ttached_completion_callbacks\x18\x04 \x03(\x0b\x32 .temporal.api.common.v1.Callback\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x32\n\x08priority\x18\x06 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12H\n\x14time_skipping_config\x18\x07 \x01(\x0b\x32*.temporal.api.common.v1.TimeSkippingConfig\x12$\n\x1ctime_skipping_config_updated\x18\t \x01(\x08\x12\x84\x01\n\x17workflow_update_options\x18\x08 \x03(\x0b\x32\x63.temporal.api.history.v1.WorkflowExecutionOptionsUpdatedEventAttributes.WorkflowUpdateOptionsUpdate\x1a\x96\x01\n\x1bWorkflowUpdateOptionsUpdate\x12\x11\n\tupdate_id\x18\x01 \x01(\t\x12\x1b\n\x13\x61ttached_request_id\x18\x02 \x01(\t\x12G\n\x1d\x61ttached_completion_callbacks\x18\x03 \x03(\x0b\x32 .temporal.api.common.v1.Callback"\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"^\n&WorkflowExecutionPausedEventAttributes\x12\x10\n\x08identity\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t"`\n(WorkflowExecutionUnpausedEventAttributes\x12\x10\n\x08identity\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t"\xc5\x01\n8WorkflowExecutionTimeSkippingTransitionedEventAttributes\x12/\n\x0btarget_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x1b\x64isabled_after_fast_forward\x18\x02 \x01(\x08\x12\x33\n\x0fwall_clock_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\xb4\x04\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\x12<\n\x19schedule_to_start_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x89\x01\n$NexusOperationStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x0coperation_id\x18\x03 \x01(\tB\x02\x18\x01\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\x17\n\x0foperation_token\x18\x05 \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"\x97\x01\n3NexusOperationCancelRequestCompletedEventAttributes\x12\x1a\n\x12requested_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x1a\n\x12scheduled_event_id\x18\x03 \x01(\x03"\xc7\x01\n0NexusOperationCancelRequestFailedEventAttributes\x12\x1a\n\x12requested_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1a\n\x12scheduled_event_id\x18\x04 \x01(\x03"\xca?\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\x12\x35\n\tprincipal\x18\xaf\x02 \x01(\x0b\x32!.temporal.api.common.v1.Principal\x12\x43\n\x13\x65vent_group_markers\x18\xb0\x02 \x03(\x0b\x32%.temporal.api.sdk.v1.EventGroupMarker\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\x12\x86\x01\n3workflow_execution_options_updated_event_attributes\x18< \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionOptionsUpdatedEventAttributesH\x00\x12\x91\x01\n9nexus_operation_cancel_request_completed_event_attributes\x18= \x01(\x0b\x32L.temporal.api.history.v1.NexusOperationCancelRequestCompletedEventAttributesH\x00\x12\x8b\x01\n6nexus_operation_cancel_request_failed_event_attributes\x18> \x01(\x0b\x32I.temporal.api.history.v1.NexusOperationCancelRequestFailedEventAttributesH\x00\x12u\n*workflow_execution_paused_event_attributes\x18? \x01(\x0b\x32?.temporal.api.history.v1.WorkflowExecutionPausedEventAttributesH\x00\x12y\n,workflow_execution_unpaused_event_attributes\x18@ \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionUnpausedEventAttributesH\x00\x12\x9b\x01\n>workflow_execution_time_skipping_transitioned_event_attributes\x18\x41 \x01(\x0b\x32Q.temporal.api.history.v1.WorkflowExecutionTimeSkippingTransitionedEventAttributesH\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\x19google/protobuf/any.proto\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/deployment/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\x1a,temporal/api/sdk/v1/event_group_marker.proto"\xda\x12\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\x12L\n\x14source_version_stamp\x18\x1d \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\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\x1e\n\x12inherited_build_id\x18 \x01(\tB\x02\x18\x01\x12I\n\x13versioning_override\x18! \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12\x33\n\'parent_pinned_worker_deployment_version\x18" \x01(\tB\x02\x18\x01\x12\x32\n\x08priority\x18# \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12U\n\x18inherited_pinned_version\x18% \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12Y\n\x1binherited_auto_upgrade_info\x18\' \x01(\x0b\x32\x34.temporal.api.deployment.v1.InheritedAutoUpgradeInfo\x12 \n\x18\x65\x61ger_execution_accepted\x18& \x01(\x08\x12^\n\x1f\x64\x65\x63lined_target_version_upgrade\x18( \x01(\x0b\x32\x35.temporal.api.history.v1.DeclinedTargetVersionUpgrade\x12H\n\x14time_skipping_config\x18) \x01(\x0b\x32*.temporal.api.common.v1.TimeSkippingConfig\x12]\n\x1ftime_skipping_state_propagation\x18+ \x01(\x0b\x32\x34.temporal.api.common.v1.TimeSkippingStatePropagationJ\x04\x08$\x10%J\x04\x08*\x10+R parent_pinned_deployment_versionR\x18initial_skipped_duration"\x88\x01\n\x1c\x44\x65\x63linedTargetVersionUpgrade\x12O\n\x12\x64\x65ployment_version\x18\x01 \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion\x12\x17\n\x0frevision_number\x18\x02 \x01(\x03"\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"\xa5\x07\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\x35\n\x07\x66\x61ilure\x18\n \x01(\x0b\x32 .temporal.api.failure.v1.FailureB\x02\x18\x01\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\x1c\n\x10inherit_build_id\x18\x0f \x01(\x08\x42\x02\x18\x01\x12[\n\x1binitial_versioning_behavior\x18\x10 \x01(\x0e\x32\x36.temporal.api.enums.v1.ContinueAsNewVersioningBehavior"\xd7\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\x12)\n\x0b\x61ttachments\x18\x04 \x03(\x0b\x32\x14.google.protobuf.Any"\xa0\x03\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\x12Z\n\x1fsuggest_continue_as_new_reasons\x18\x08 \x03(\x0e\x32\x31.temporal.api.enums.v1.SuggestContinueAsNewReason\x12\x30\n(target_worker_deployment_version_changed\x18\t \x01(\x08\x12\x1a\n\x12history_size_bytes\x18\x05 \x01(\x03\x12\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12%\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03\x42\x02\x18\x01"\x82\x05\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\x1b\n\x0f\x62inary_checksum\x18\x04 \x01(\tB\x02\x18\x01\x12\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\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\x12>\n\ndeployment\x18\x07 \x01(\x0b\x32&.temporal.api.deployment.v1.DeploymentB\x02\x18\x01\x12\x46\n\x13versioning_behavior\x18\x08 \x01(\x0e\x32).temporal.api.enums.v1.VersioningBehavior\x12%\n\x19worker_deployment_version\x18\t \x01(\tB\x02\x18\x01\x12\x1e\n\x16worker_deployment_name\x18\n \x01(\t\x12O\n\x12\x64\x65ployment_version\x18\x0b \x01(\x0b\x32\x33.temporal.api.deployment.v1.WorkerDeploymentVersion"\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"\x87\x03\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\x1b\n\x0f\x62inary_checksum\x18\t \x01(\tB\x02\x18\x01\x12\x46\n\x0eworker_version\x18\n \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01"\xc2\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!\n\x15use_workflow_build_id\x18\r \x01(\x08\x42\x02\x18\x01\x12\x32\n\x08priority\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.PriorityJ\x04\x08\x03\x10\x04"\x9e\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\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12%\n\x19\x62uild_id_redirect_counter\x18\x07 \x01(\x03\x42\x02\x18\x01"\xe8\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\x46\n\x0eworker_version\x18\x05 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01"\xdd\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\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01\x12=\n\x05\x63\x61use\x18\x07 \x01(\x0e\x32..temporal.api.enums.v1.ActivityTaskFailedCause"\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"\x92\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\x46\n\x0eworker_version\x18\x06 \x01(\x0b\x32*.temporal.api.common.v1.WorkerVersionStampB\x02\x18\x01"\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"\xbf\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\x42\x02\x18\x01\x12N\n\x1b\x65xternal_workflow_execution\x18\x06 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x12\n\nrequest_id\x18\x07 \x01(\t"\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"\x9c\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\x13\n\x07\x63ontrol\x18\x04 \x01(\tB\x02\x18\x01\x12\x1b\n\x13\x63hild_workflow_only\x18\x05 \x01(\x08\x12\x0e\n\x06reason\x18\x06 \x01(\t"\xda\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\x13\n\x07\x63ontrol\x18\x06 \x01(\tB\x02\x18\x01"\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"\xfb\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\x13\n\x07\x63ontrol\x18\x06 \x01(\tB\x02\x18\x01\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"\xd3\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\x13\n\x07\x63ontrol\x18\x06 \x01(\tB\x02\x18\x01"\xd3\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\x13\n\x07\x63ontrol\x18\x04 \x01(\tB\x02\x18\x01"\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"\xfc\t\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\x13\n\x07\x63ontrol\x18\n \x01(\tB\x02\x18\x01\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\x1c\n\x10inherit_build_id\x18\x13 \x01(\x08\x42\x02\x18\x01\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12H\n\x14time_skipping_config\x18\x15 \x01(\x0b\x32*.temporal.api.common.v1.TimeSkippingConfig\x12]\n\x1ftime_skipping_state_propagation\x18\x17 \x01(\x0b\x32\x34.temporal.api.common.v1.TimeSkippingStatePropagation\x12I\n\x13versioning_override\x18\x18 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverrideJ\x04\x08\x16\x10\x17R\x18initial_skipped_duration"\xd6\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\x13\n\x07\x63ontrol\x18\x05 \x01(\tB\x02\x18\x01\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"\xda\x05\n.WorkflowExecutionOptionsUpdatedEventAttributes\x12I\n\x13versioning_override\x18\x01 \x01(\x0b\x32,.temporal.api.workflow.v1.VersioningOverride\x12!\n\x19unset_versioning_override\x18\x02 \x01(\x08\x12\x1b\n\x13\x61ttached_request_id\x18\x03 \x01(\t\x12G\n\x1d\x61ttached_completion_callbacks\x18\x04 \x03(\x0b\x32 .temporal.api.common.v1.Callback\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x32\n\x08priority\x18\x06 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12H\n\x14time_skipping_config\x18\x07 \x01(\x0b\x32*.temporal.api.common.v1.TimeSkippingConfig\x12$\n\x1ctime_skipping_config_updated\x18\t \x01(\x08\x12\x84\x01\n\x17workflow_update_options\x18\x08 \x03(\x0b\x32\x63.temporal.api.history.v1.WorkflowExecutionOptionsUpdatedEventAttributes.WorkflowUpdateOptionsUpdate\x1a\x96\x01\n\x1bWorkflowUpdateOptionsUpdate\x12\x11\n\tupdate_id\x18\x01 \x01(\t\x12\x1b\n\x13\x61ttached_request_id\x18\x02 \x01(\t\x12G\n\x1d\x61ttached_completion_callbacks\x18\x03 \x03(\x0b\x32 .temporal.api.common.v1.Callback"\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"^\n&WorkflowExecutionPausedEventAttributes\x12\x10\n\x08identity\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t"`\n(WorkflowExecutionUnpausedEventAttributes\x12\x10\n\x08identity\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x12\n\nrequest_id\x18\x03 \x01(\t"\xc5\x01\n8WorkflowExecutionTimeSkippingTransitionedEventAttributes\x12/\n\x0btarget_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12#\n\x1b\x64isabled_after_fast_forward\x18\x02 \x01(\x08\x12\x33\n\x0fwall_clock_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\xb4\x04\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\x12<\n\x19schedule_to_start_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x89\x01\n$NexusOperationStartedEventAttributes\x12\x1a\n\x12scheduled_event_id\x18\x01 \x01(\x03\x12\x18\n\x0coperation_id\x18\x03 \x01(\tB\x02\x18\x01\x12\x12\n\nrequest_id\x18\x04 \x01(\t\x12\x17\n\x0foperation_token\x18\x05 \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"\x97\x01\n3NexusOperationCancelRequestCompletedEventAttributes\x12\x1a\n\x12requested_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x1a\n\x12scheduled_event_id\x18\x03 \x01(\x03"\xc7\x01\n0NexusOperationCancelRequestFailedEventAttributes\x12\x1a\n\x12requested_event_id\x18\x01 \x01(\x03\x12(\n workflow_task_completed_event_id\x18\x02 \x01(\x03\x12\x31\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x1a\n\x12scheduled_event_id\x18\x04 \x01(\x03"\xca?\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\x12\x35\n\tprincipal\x18\xaf\x02 \x01(\x0b\x32!.temporal.api.common.v1.Principal\x12\x43\n\x13\x65vent_group_markers\x18\xb0\x02 \x03(\x0b\x32%.temporal.api.sdk.v1.EventGroupMarker\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\x12\x86\x01\n3workflow_execution_options_updated_event_attributes\x18< \x01(\x0b\x32G.temporal.api.history.v1.WorkflowExecutionOptionsUpdatedEventAttributesH\x00\x12\x91\x01\n9nexus_operation_cancel_request_completed_event_attributes\x18= \x01(\x0b\x32L.temporal.api.history.v1.NexusOperationCancelRequestCompletedEventAttributesH\x00\x12\x8b\x01\n6nexus_operation_cancel_request_failed_event_attributes\x18> \x01(\x0b\x32I.temporal.api.history.v1.NexusOperationCancelRequestFailedEventAttributesH\x00\x12u\n*workflow_execution_paused_event_attributes\x18? \x01(\x0b\x32?.temporal.api.history.v1.WorkflowExecutionPausedEventAttributesH\x00\x12y\n,workflow_execution_unpaused_event_attributes\x18@ \x01(\x0b\x32\x41.temporal.api.history.v1.WorkflowExecutionUnpausedEventAttributesH\x00\x12\x9b\x01\n>workflow_execution_time_skipping_transitioned_event_attributes\x18\x41 \x01(\x0b\x32Q.temporal.api.history.v1.WorkflowExecutionTimeSkippingTransitionedEventAttributesH\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' ) @@ -1210,140 +1211,140 @@ _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES.fields_by_name[ "operation_id" ]._serialized_options = b"\030\001" - _WORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_start = 663 - _WORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_end = 3057 - _DECLINEDTARGETVERSIONUPGRADE._serialized_start = 3060 - _DECLINEDTARGETVERSIONUPGRADE._serialized_end = 3196 - _WORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 3199 - _WORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 3364 - _WORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 3367 - _WORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 3586 - _WORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 3589 - _WORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 3717 - _WORKFLOWEXECUTIONCONTINUEDASNEWEVENTATTRIBUTES._serialized_start = 3720 - _WORKFLOWEXECUTIONCONTINUEDASNEWEVENTATTRIBUTES._serialized_end = 4653 - _WORKFLOWTASKSCHEDULEDEVENTATTRIBUTES._serialized_start = 4656 - _WORKFLOWTASKSCHEDULEDEVENTATTRIBUTES._serialized_end = 4828 - _WORKFLOWTASKSTARTEDEVENTATTRIBUTES._serialized_start = 4831 - _WORKFLOWTASKSTARTEDEVENTATTRIBUTES._serialized_end = 5247 - _WORKFLOWTASKCOMPLETEDEVENTATTRIBUTES._serialized_start = 5250 - _WORKFLOWTASKCOMPLETEDEVENTATTRIBUTES._serialized_end = 5892 - _WORKFLOWTASKTIMEDOUTEVENTATTRIBUTES._serialized_start = 5895 - _WORKFLOWTASKTIMEDOUTEVENTATTRIBUTES._serialized_end = 6044 - _WORKFLOWTASKFAILEDEVENTATTRIBUTES._serialized_start = 6047 - _WORKFLOWTASKFAILEDEVENTATTRIBUTES._serialized_end = 6438 - _ACTIVITYTASKSCHEDULEDEVENTATTRIBUTES._serialized_start = 6441 - _ACTIVITYTASKSCHEDULEDEVENTATTRIBUTES._serialized_end = 7147 - _ACTIVITYTASKSTARTEDEVENTATTRIBUTES._serialized_start = 7150 - _ACTIVITYTASKSTARTEDEVENTATTRIBUTES._serialized_end = 7436 - _ACTIVITYTASKCOMPLETEDEVENTATTRIBUTES._serialized_start = 7439 - _ACTIVITYTASKCOMPLETEDEVENTATTRIBUTES._serialized_end = 7671 - _ACTIVITYTASKFAILEDEVENTATTRIBUTES._serialized_start = 7674 - _ACTIVITYTASKFAILEDEVENTATTRIBUTES._serialized_end = 8023 - _ACTIVITYTASKTIMEDOUTEVENTATTRIBUTES._serialized_start = 8026 - _ACTIVITYTASKTIMEDOUTEVENTATTRIBUTES._serialized_end = 8224 - _ACTIVITYTASKCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 8226 - _ACTIVITYTASKCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 8340 - _ACTIVITYTASKCANCELEDEVENTATTRIBUTES._serialized_start = 8343 - _ACTIVITYTASKCANCELEDEVENTATTRIBUTES._serialized_end = 8617 - _TIMERSTARTEDEVENTATTRIBUTES._serialized_start = 8620 - _TIMERSTARTEDEVENTATTRIBUTES._serialized_end = 8767 - _TIMERFIREDEVENTATTRIBUTES._serialized_start = 8769 - _TIMERFIREDEVENTATTRIBUTES._serialized_end = 8840 - _TIMERCANCELEDEVENTATTRIBUTES._serialized_start = 8843 - _TIMERCANCELEDEVENTATTRIBUTES._serialized_end = 8977 - _WORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 8980 - _WORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 9179 - _WORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_start = 9182 - _WORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_end = 9317 - _MARKERRECORDEDEVENTATTRIBUTES._serialized_start = 9320 - _MARKERRECORDEDEVENTATTRIBUTES._serialized_end = 9681 - _MARKERRECORDEDEVENTATTRIBUTES_DETAILSENTRY._serialized_start = 9601 - _MARKERRECORDEDEVENTATTRIBUTES_DETAILSENTRY._serialized_end = 9681 - _WORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_start = 9684 - _WORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_end = 10003 - _WORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_start = 10006 - _WORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_end = 10135 - _REQUESTCANCELEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_start = 10138 + _WORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_start = 690 + _WORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_end = 3084 + _DECLINEDTARGETVERSIONUPGRADE._serialized_start = 3087 + _DECLINEDTARGETVERSIONUPGRADE._serialized_end = 3223 + _WORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 3226 + _WORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 3391 + _WORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 3394 + _WORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 3613 + _WORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 3616 + _WORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 3744 + _WORKFLOWEXECUTIONCONTINUEDASNEWEVENTATTRIBUTES._serialized_start = 3747 + _WORKFLOWEXECUTIONCONTINUEDASNEWEVENTATTRIBUTES._serialized_end = 4680 + _WORKFLOWTASKSCHEDULEDEVENTATTRIBUTES._serialized_start = 4683 + _WORKFLOWTASKSCHEDULEDEVENTATTRIBUTES._serialized_end = 4898 + _WORKFLOWTASKSTARTEDEVENTATTRIBUTES._serialized_start = 4901 + _WORKFLOWTASKSTARTEDEVENTATTRIBUTES._serialized_end = 5317 + _WORKFLOWTASKCOMPLETEDEVENTATTRIBUTES._serialized_start = 5320 + _WORKFLOWTASKCOMPLETEDEVENTATTRIBUTES._serialized_end = 5962 + _WORKFLOWTASKTIMEDOUTEVENTATTRIBUTES._serialized_start = 5965 + _WORKFLOWTASKTIMEDOUTEVENTATTRIBUTES._serialized_end = 6114 + _WORKFLOWTASKFAILEDEVENTATTRIBUTES._serialized_start = 6117 + _WORKFLOWTASKFAILEDEVENTATTRIBUTES._serialized_end = 6508 + _ACTIVITYTASKSCHEDULEDEVENTATTRIBUTES._serialized_start = 6511 + _ACTIVITYTASKSCHEDULEDEVENTATTRIBUTES._serialized_end = 7217 + _ACTIVITYTASKSTARTEDEVENTATTRIBUTES._serialized_start = 7220 + _ACTIVITYTASKSTARTEDEVENTATTRIBUTES._serialized_end = 7506 + _ACTIVITYTASKCOMPLETEDEVENTATTRIBUTES._serialized_start = 7509 + _ACTIVITYTASKCOMPLETEDEVENTATTRIBUTES._serialized_end = 7741 + _ACTIVITYTASKFAILEDEVENTATTRIBUTES._serialized_start = 7744 + _ACTIVITYTASKFAILEDEVENTATTRIBUTES._serialized_end = 8093 + _ACTIVITYTASKTIMEDOUTEVENTATTRIBUTES._serialized_start = 8096 + _ACTIVITYTASKTIMEDOUTEVENTATTRIBUTES._serialized_end = 8294 + _ACTIVITYTASKCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 8296 + _ACTIVITYTASKCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 8410 + _ACTIVITYTASKCANCELEDEVENTATTRIBUTES._serialized_start = 8413 + _ACTIVITYTASKCANCELEDEVENTATTRIBUTES._serialized_end = 8687 + _TIMERSTARTEDEVENTATTRIBUTES._serialized_start = 8690 + _TIMERSTARTEDEVENTATTRIBUTES._serialized_end = 8837 + _TIMERFIREDEVENTATTRIBUTES._serialized_start = 8839 + _TIMERFIREDEVENTATTRIBUTES._serialized_end = 8910 + _TIMERCANCELEDEVENTATTRIBUTES._serialized_start = 8913 + _TIMERCANCELEDEVENTATTRIBUTES._serialized_end = 9047 + _WORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 9050 + _WORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 9249 + _WORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_start = 9252 + _WORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_end = 9387 + _MARKERRECORDEDEVENTATTRIBUTES._serialized_start = 9390 + _MARKERRECORDEDEVENTATTRIBUTES._serialized_end = 9751 + _MARKERRECORDEDEVENTATTRIBUTES_DETAILSENTRY._serialized_start = 9671 + _MARKERRECORDEDEVENTATTRIBUTES_DETAILSENTRY._serialized_end = 9751 + _WORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_start = 9754 + _WORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_end = 10073 + _WORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_start = 10076 + _WORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_end = 10205 + _REQUESTCANCELEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_start = 10208 _REQUESTCANCELEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_end = ( - 10422 + 10492 ) _REQUESTCANCELEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = ( - 10425 + 10495 ) - _REQUESTCANCELEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 10771 - _EXTERNALWORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 10774 - _EXTERNALWORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 10971 - _SIGNALEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_start = 10974 - _SIGNALEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_end = 11353 - _SIGNALEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 11356 - _SIGNALEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 11695 - _EXTERNALWORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_start = 11698 - _EXTERNALWORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_end = 11909 - _UPSERTWORKFLOWSEARCHATTRIBUTESEVENTATTRIBUTES._serialized_start = 11912 - _UPSERTWORKFLOWSEARCHATTRIBUTESEVENTATTRIBUTES._serialized_end = 12070 - _WORKFLOWPROPERTIESMODIFIEDEVENTATTRIBUTES._serialized_start = 12073 - _WORKFLOWPROPERTIESMODIFIEDEVENTATTRIBUTES._serialized_end = 12211 - _STARTCHILDWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_start = 12214 - _STARTCHILDWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_end = 13490 - _STARTCHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 13493 - _STARTCHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 13835 - _CHILDWORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_start = 13838 - _CHILDWORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_end = 14133 - _CHILDWORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 14136 - _CHILDWORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 14461 - _CHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 14464 - _CHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 14843 - _CHILDWORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_start = 14846 - _CHILDWORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_end = 15171 - _CHILDWORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 15174 - _CHILDWORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 15504 - _CHILDWORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_start = 15507 - _CHILDWORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_end = 15783 - _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES._serialized_start = 15786 - _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES._serialized_end = 16516 - _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES_WORKFLOWUPDATEOPTIONSUPDATE._serialized_start = 16366 - _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES_WORKFLOWUPDATEOPTIONSUPDATE._serialized_end = 16516 - _WORKFLOWPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_start = 16519 - _WORKFLOWPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_end = 16839 - _ACTIVITYPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_start = 16842 - _ACTIVITYPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_end = 16986 - _WORKFLOWEXECUTIONUPDATEACCEPTEDEVENTATTRIBUTES._serialized_start = 16989 - _WORKFLOWEXECUTIONUPDATEACCEPTEDEVENTATTRIBUTES._serialized_end = 17209 - _WORKFLOWEXECUTIONUPDATECOMPLETEDEVENTATTRIBUTES._serialized_start = 17212 - _WORKFLOWEXECUTIONUPDATECOMPLETEDEVENTATTRIBUTES._serialized_end = 17382 - _WORKFLOWEXECUTIONUPDATEREJECTEDEVENTATTRIBUTES._serialized_start = 17385 - _WORKFLOWEXECUTIONUPDATEREJECTEDEVENTATTRIBUTES._serialized_end = 17656 - _WORKFLOWEXECUTIONUPDATEADMITTEDEVENTATTRIBUTES._serialized_start = 17659 - _WORKFLOWEXECUTIONUPDATEADMITTEDEVENTATTRIBUTES._serialized_end = 17823 - _WORKFLOWEXECUTIONPAUSEDEVENTATTRIBUTES._serialized_start = 17825 - _WORKFLOWEXECUTIONPAUSEDEVENTATTRIBUTES._serialized_end = 17919 - _WORKFLOWEXECUTIONUNPAUSEDEVENTATTRIBUTES._serialized_start = 17921 - _WORKFLOWEXECUTIONUNPAUSEDEVENTATTRIBUTES._serialized_end = 18017 - _WORKFLOWEXECUTIONTIMESKIPPINGTRANSITIONEDEVENTATTRIBUTES._serialized_start = 18020 - _WORKFLOWEXECUTIONTIMESKIPPINGTRANSITIONEDEVENTATTRIBUTES._serialized_end = 18217 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_start = 18220 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_end = 18784 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_start = 18734 - _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_end = 18784 - _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_start = 18787 - _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_end = 18924 - _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 18927 - _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 19064 - _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_start = 19067 - _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_end = 19203 - _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 19206 - _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 19344 - _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_start = 19347 - _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_end = 19485 - _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 19487 - _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 19603 - _NEXUSOPERATIONCANCELREQUESTCOMPLETEDEVENTATTRIBUTES._serialized_start = 19606 - _NEXUSOPERATIONCANCELREQUESTCOMPLETEDEVENTATTRIBUTES._serialized_end = 19757 - _NEXUSOPERATIONCANCELREQUESTFAILEDEVENTATTRIBUTES._serialized_start = 19760 - _NEXUSOPERATIONCANCELREQUESTFAILEDEVENTATTRIBUTES._serialized_end = 19959 - _HISTORYEVENT._serialized_start = 19962 - _HISTORYEVENT._serialized_end = 28100 - _HISTORY._serialized_start = 28102 - _HISTORY._serialized_end = 28166 + _REQUESTCANCELEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 10841 + _EXTERNALWORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 10844 + _EXTERNALWORKFLOWEXECUTIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 11041 + _SIGNALEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_start = 11044 + _SIGNALEXTERNALWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_end = 11423 + _SIGNALEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 11426 + _SIGNALEXTERNALWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 11765 + _EXTERNALWORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_start = 11768 + _EXTERNALWORKFLOWEXECUTIONSIGNALEDEVENTATTRIBUTES._serialized_end = 11979 + _UPSERTWORKFLOWSEARCHATTRIBUTESEVENTATTRIBUTES._serialized_start = 11982 + _UPSERTWORKFLOWSEARCHATTRIBUTESEVENTATTRIBUTES._serialized_end = 12140 + _WORKFLOWPROPERTIESMODIFIEDEVENTATTRIBUTES._serialized_start = 12143 + _WORKFLOWPROPERTIESMODIFIEDEVENTATTRIBUTES._serialized_end = 12281 + _STARTCHILDWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_start = 12284 + _STARTCHILDWORKFLOWEXECUTIONINITIATEDEVENTATTRIBUTES._serialized_end = 13560 + _STARTCHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 13563 + _STARTCHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 13905 + _CHILDWORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_start = 13908 + _CHILDWORKFLOWEXECUTIONSTARTEDEVENTATTRIBUTES._serialized_end = 14203 + _CHILDWORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 14206 + _CHILDWORKFLOWEXECUTIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 14531 + _CHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_start = 14534 + _CHILDWORKFLOWEXECUTIONFAILEDEVENTATTRIBUTES._serialized_end = 14913 + _CHILDWORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_start = 14916 + _CHILDWORKFLOWEXECUTIONCANCELEDEVENTATTRIBUTES._serialized_end = 15241 + _CHILDWORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 15244 + _CHILDWORKFLOWEXECUTIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 15574 + _CHILDWORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_start = 15577 + _CHILDWORKFLOWEXECUTIONTERMINATEDEVENTATTRIBUTES._serialized_end = 15853 + _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES._serialized_start = 15856 + _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES._serialized_end = 16586 + _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES_WORKFLOWUPDATEOPTIONSUPDATE._serialized_start = 16436 + _WORKFLOWEXECUTIONOPTIONSUPDATEDEVENTATTRIBUTES_WORKFLOWUPDATEOPTIONSUPDATE._serialized_end = 16586 + _WORKFLOWPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_start = 16589 + _WORKFLOWPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_end = 16909 + _ACTIVITYPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_start = 16912 + _ACTIVITYPROPERTIESMODIFIEDEXTERNALLYEVENTATTRIBUTES._serialized_end = 17056 + _WORKFLOWEXECUTIONUPDATEACCEPTEDEVENTATTRIBUTES._serialized_start = 17059 + _WORKFLOWEXECUTIONUPDATEACCEPTEDEVENTATTRIBUTES._serialized_end = 17279 + _WORKFLOWEXECUTIONUPDATECOMPLETEDEVENTATTRIBUTES._serialized_start = 17282 + _WORKFLOWEXECUTIONUPDATECOMPLETEDEVENTATTRIBUTES._serialized_end = 17452 + _WORKFLOWEXECUTIONUPDATEREJECTEDEVENTATTRIBUTES._serialized_start = 17455 + _WORKFLOWEXECUTIONUPDATEREJECTEDEVENTATTRIBUTES._serialized_end = 17726 + _WORKFLOWEXECUTIONUPDATEADMITTEDEVENTATTRIBUTES._serialized_start = 17729 + _WORKFLOWEXECUTIONUPDATEADMITTEDEVENTATTRIBUTES._serialized_end = 17893 + _WORKFLOWEXECUTIONPAUSEDEVENTATTRIBUTES._serialized_start = 17895 + _WORKFLOWEXECUTIONPAUSEDEVENTATTRIBUTES._serialized_end = 17989 + _WORKFLOWEXECUTIONUNPAUSEDEVENTATTRIBUTES._serialized_start = 17991 + _WORKFLOWEXECUTIONUNPAUSEDEVENTATTRIBUTES._serialized_end = 18087 + _WORKFLOWEXECUTIONTIMESKIPPINGTRANSITIONEDEVENTATTRIBUTES._serialized_start = 18090 + _WORKFLOWEXECUTIONTIMESKIPPINGTRANSITIONEDEVENTATTRIBUTES._serialized_end = 18287 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_start = 18290 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES._serialized_end = 18854 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_start = 18804 + _NEXUSOPERATIONSCHEDULEDEVENTATTRIBUTES_NEXUSHEADERENTRY._serialized_end = 18854 + _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_start = 18857 + _NEXUSOPERATIONSTARTEDEVENTATTRIBUTES._serialized_end = 18994 + _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_start = 18997 + _NEXUSOPERATIONCOMPLETEDEVENTATTRIBUTES._serialized_end = 19134 + _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_start = 19137 + _NEXUSOPERATIONFAILEDEVENTATTRIBUTES._serialized_end = 19273 + _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_start = 19276 + _NEXUSOPERATIONTIMEDOUTEVENTATTRIBUTES._serialized_end = 19414 + _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_start = 19417 + _NEXUSOPERATIONCANCELEDEVENTATTRIBUTES._serialized_end = 19555 + _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_start = 19557 + _NEXUSOPERATIONCANCELREQUESTEDEVENTATTRIBUTES._serialized_end = 19673 + _NEXUSOPERATIONCANCELREQUESTCOMPLETEDEVENTATTRIBUTES._serialized_start = 19676 + _NEXUSOPERATIONCANCELREQUESTCOMPLETEDEVENTATTRIBUTES._serialized_end = 19827 + _NEXUSOPERATIONCANCELREQUESTFAILEDEVENTATTRIBUTES._serialized_start = 19830 + _NEXUSOPERATIONCANCELREQUESTFAILEDEVENTATTRIBUTES._serialized_end = 20029 + _HISTORYEVENT._serialized_start = 20032 + _HISTORYEVENT._serialized_end = 28170 + _HISTORY._serialized_start = 28172 + _HISTORY._serialized_end = 28236 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/history/v1/message_pb2.pyi b/temporalio/api/history/v1/message_pb2.pyi index b913bbf58b..df9c6c3c94 100644 --- a/temporalio/api/history/v1/message_pb2.pyi +++ b/temporalio/api/history/v1/message_pb2.pyi @@ -7,6 +7,7 @@ import builtins import collections.abc import sys +import google.protobuf.any_pb2 import google.protobuf.descriptor import google.protobuf.duration_pb2 import google.protobuf.internal.containers @@ -852,6 +853,7 @@ class WorkflowTaskScheduledEventAttributes(google.protobuf.message.Message): TASK_QUEUE_FIELD_NUMBER: builtins.int START_TO_CLOSE_TIMEOUT_FIELD_NUMBER: builtins.int ATTEMPT_FIELD_NUMBER: builtins.int + ATTACHMENTS_FIELD_NUMBER: builtins.int @property def task_queue(self) -> temporalio.api.taskqueue.v1.message_pb2.TaskQueue: """The task queue this workflow task was enqueued in, which could be a normal or sticky queue""" @@ -864,12 +866,26 @@ class WorkflowTaskScheduledEventAttributes(google.protobuf.message.Message): """ attempt: builtins.int """Starting at 1, how many attempts there have been to complete this task""" + @property + def attachments( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + google.protobuf.any_pb2.Any + ]: + """Data the server attaches to this task for the Workflow, such as wakes for its stream + readers or progress of its Nexus operations. Opaque to the SDK core. Counts toward the + History size limit. + + (-- api-linter: core::0146::any=disabled + aip.dev/not-precedent: attachments are meant to hold arbitrary server data. --) + """ def __init__( self, *, task_queue: temporalio.api.taskqueue.v1.message_pb2.TaskQueue | None = ..., start_to_close_timeout: google.protobuf.duration_pb2.Duration | None = ..., attempt: builtins.int = ..., + attachments: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ..., ) -> None: ... def HasField( self, @@ -883,6 +899,8 @@ class WorkflowTaskScheduledEventAttributes(google.protobuf.message.Message): def ClearField( self, field_name: typing_extensions.Literal[ + "attachments", + b"attachments", "attempt", b"attempt", "start_to_close_timeout", diff --git a/temporalio/api/stream/v1/__init__.py b/temporalio/api/stream/v1/__init__.py index 93bec5bac3..26c654f8bf 100644 --- a/temporalio/api/stream/v1/__init__.py +++ b/temporalio/api/stream/v1/__init__.py @@ -1,5 +1,17 @@ -from .message_pb2 import StreamReference +from .message_pb2 import ( + StreamCallbackInfo, + StreamNotification, + StreamNotificationResult, + StreamReference, + StreamWake, + WorkflowWakeTarget, +) __all__ = [ + "StreamCallbackInfo", + "StreamNotification", + "StreamNotificationResult", "StreamReference", + "StreamWake", + "WorkflowWakeTarget", ] diff --git a/temporalio/api/stream/v1/message_pb2.py b/temporalio/api/stream/v1/message_pb2.py index d4a6ae42ab..0fb81612a4 100644 --- a/temporalio/api/stream/v1/message_pb2.py +++ b/temporalio/api/stream/v1/message_pb2.py @@ -14,16 +14,36 @@ _sym_db = _symbol_database.Default() +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + +from temporalio.api.common.v1 import ( + message_pb2 as temporal_dot_api_dot_common_dot_v1_dot_message__pb2, +) +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 ( stream_pb2 as temporal_dot_api_dot_enums_dot_v1_dot_stream__pb2, ) +from temporalio.api.failure.v1 import ( + message_pb2 as temporal_dot_api_dot_failure_dot_v1_dot_message__pb2, +) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n$temporal/api/stream/v1/message.proto\x12\x16temporal.api.stream.v1\x1a"temporal/api/enums/v1/stream.proto"\x96\x01\n\x0fStreamReference\x12:\n\nowner_kind\x18\x01 \x01(\x0e\x32&.temporal.api.enums.v1.StreamOwnerKind\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\r\n\x05topic\x18\x04 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x05 \x01(\tB\x89\x01\n\x19io.temporal.api.stream.v1B\x0cMessageProtoP\x01Z#go.temporal.io/api/stream/v1;stream\xaa\x02\x18Temporalio.Api.Stream.V1\xea\x02\x1bTemporalio::Api::Stream::V1b\x06proto3' + b'\n$temporal/api/stream/v1/message.proto\x12\x16temporal.api.stream.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a"temporal/api/enums/v1/common.proto\x1a"temporal/api/enums/v1/stream.proto\x1a%temporal/api/failure/v1/message.proto"\x96\x01\n\x0fStreamReference\x12:\n\nowner_kind\x18\x01 \x01(\x0e\x32&.temporal.api.enums.v1.StreamOwnerKind\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\r\n\x05topic\x18\x04 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x05 \x01(\t"\x9d\x03\n\x12StreamCallbackInfo\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x08\x63\x61llback\x18\x02 \x01(\x0b\x32 .temporal.api.common.v1.Callback\x12\x33\n\x05state\x18\x03 \x01(\x0e\x32$.temporal.api.enums.v1.CallbackState\x12\x19\n\x11\x64\x65livered_counter\x18\x04 \x01(\x03\x12\x19\n\x11progress_disabled\x18\x05 \x01(\x08\x12\x0f\n\x07\x61ttempt\x18\x06 \x01(\x05\x12>\n\x1alast_attempt_complete_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12>\n\x14last_attempt_failure\x18\x08 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x43\n\x0fworkflow_target\x18\t \x01(\x0b\x32*.temporal.api.stream.v1.WorkflowWakeTarget"R\n\x12WorkflowWakeTarget\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x17\n\x0fsubscription_id\x18\x03 \x01(\t"\xe3\x02\n\nStreamWake\x12\x17\n\x0fsubscription_id\x18\x01 \x01(\t\x12\x10\n\x08position\x18\x02 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x03 \x01(\x03\x12\x42\n\x08metadata\x18\x04 \x03(\x0b\x32\x30.temporal.api.stream.v1.StreamWake.MetadataEntry\x12\x0f\n\x07recheck\x18\x05 \x01(\x08\x12\x0e\n\x06\x63losed\x18\x06 \x01(\x08\x12\x35\n\x0c\x63lose_result\x18\x07 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x08 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x13\n\x0bresubscribe\x18\t \x01(\x08\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\xf1\x01\n\x12StreamNotification\x12;\n\nstream_ref\x18\x01 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x10\n\x08position\x18\x02 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x03 \x01(\x03\x12J\n\x08metadata\x18\x04 \x03(\x0b\x32\x38.temporal.api.stream.v1.StreamNotification.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"9\n\x18StreamNotificationResult\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\tB\x89\x01\n\x19io.temporal.api.stream.v1B\x0cMessageProtoP\x01Z#go.temporal.io/api/stream/v1;stream\xaa\x02\x18Temporalio.Api.Stream.V1\xea\x02\x1bTemporalio::Api::Stream::V1b\x06proto3' ) _STREAMREFERENCE = DESCRIPTOR.message_types_by_name["StreamReference"] +_STREAMCALLBACKINFO = DESCRIPTOR.message_types_by_name["StreamCallbackInfo"] +_WORKFLOWWAKETARGET = DESCRIPTOR.message_types_by_name["WorkflowWakeTarget"] +_STREAMWAKE = DESCRIPTOR.message_types_by_name["StreamWake"] +_STREAMWAKE_METADATAENTRY = _STREAMWAKE.nested_types_by_name["MetadataEntry"] +_STREAMNOTIFICATION = DESCRIPTOR.message_types_by_name["StreamNotification"] +_STREAMNOTIFICATION_METADATAENTRY = _STREAMNOTIFICATION.nested_types_by_name[ + "MetadataEntry" +] +_STREAMNOTIFICATIONRESULT = DESCRIPTOR.message_types_by_name["StreamNotificationResult"] StreamReference = _reflection.GeneratedProtocolMessageType( "StreamReference", (_message.Message,), @@ -35,9 +55,102 @@ ) _sym_db.RegisterMessage(StreamReference) +StreamCallbackInfo = _reflection.GeneratedProtocolMessageType( + "StreamCallbackInfo", + (_message.Message,), + { + "DESCRIPTOR": _STREAMCALLBACKINFO, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.StreamCallbackInfo) + }, +) +_sym_db.RegisterMessage(StreamCallbackInfo) + +WorkflowWakeTarget = _reflection.GeneratedProtocolMessageType( + "WorkflowWakeTarget", + (_message.Message,), + { + "DESCRIPTOR": _WORKFLOWWAKETARGET, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.WorkflowWakeTarget) + }, +) +_sym_db.RegisterMessage(WorkflowWakeTarget) + +StreamWake = _reflection.GeneratedProtocolMessageType( + "StreamWake", + (_message.Message,), + { + "MetadataEntry": _reflection.GeneratedProtocolMessageType( + "MetadataEntry", + (_message.Message,), + { + "DESCRIPTOR": _STREAMWAKE_METADATAENTRY, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.StreamWake.MetadataEntry) + }, + ), + "DESCRIPTOR": _STREAMWAKE, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.StreamWake) + }, +) +_sym_db.RegisterMessage(StreamWake) +_sym_db.RegisterMessage(StreamWake.MetadataEntry) + +StreamNotification = _reflection.GeneratedProtocolMessageType( + "StreamNotification", + (_message.Message,), + { + "MetadataEntry": _reflection.GeneratedProtocolMessageType( + "MetadataEntry", + (_message.Message,), + { + "DESCRIPTOR": _STREAMNOTIFICATION_METADATAENTRY, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.StreamNotification.MetadataEntry) + }, + ), + "DESCRIPTOR": _STREAMNOTIFICATION, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.StreamNotification) + }, +) +_sym_db.RegisterMessage(StreamNotification) +_sym_db.RegisterMessage(StreamNotification.MetadataEntry) + +StreamNotificationResult = _reflection.GeneratedProtocolMessageType( + "StreamNotificationResult", + (_message.Message,), + { + "DESCRIPTOR": _STREAMNOTIFICATIONRESULT, + "__module__": "temporalio.api.stream.v1.message_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.stream.v1.StreamNotificationResult) + }, +) +_sym_db.RegisterMessage(StreamNotificationResult) + if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None DESCRIPTOR._serialized_options = b"\n\031io.temporal.api.stream.v1B\014MessageProtoP\001Z#go.temporal.io/api/stream/v1;stream\252\002\030Temporalio.Api.Stream.V1\352\002\033Temporalio::Api::Stream::V1" - _STREAMREFERENCE._serialized_start = 101 - _STREAMREFERENCE._serialized_end = 251 + _STREAMWAKE_METADATAENTRY._options = None + _STREAMWAKE_METADATAENTRY._serialized_options = b"8\001" + _STREAMNOTIFICATION_METADATAENTRY._options = None + _STREAMNOTIFICATION_METADATAENTRY._serialized_options = b"8\001" + _STREAMREFERENCE._serialized_start = 247 + _STREAMREFERENCE._serialized_end = 397 + _STREAMCALLBACKINFO._serialized_start = 400 + _STREAMCALLBACKINFO._serialized_end = 813 + _WORKFLOWWAKETARGET._serialized_start = 815 + _WORKFLOWWAKETARGET._serialized_end = 897 + _STREAMWAKE._serialized_start = 900 + _STREAMWAKE._serialized_end = 1255 + _STREAMWAKE_METADATAENTRY._serialized_start = 1208 + _STREAMWAKE_METADATAENTRY._serialized_end = 1255 + _STREAMNOTIFICATION._serialized_start = 1258 + _STREAMNOTIFICATION._serialized_end = 1499 + _STREAMNOTIFICATION_METADATAENTRY._serialized_start = 1208 + _STREAMNOTIFICATION_METADATAENTRY._serialized_end = 1255 + _STREAMNOTIFICATIONRESULT._serialized_start = 1501 + _STREAMNOTIFICATIONRESULT._serialized_end = 1558 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/stream/v1/message_pb2.pyi b/temporalio/api/stream/v1/message_pb2.pyi index a36aeef985..9a6affd7e7 100644 --- a/temporalio/api/stream/v1/message_pb2.pyi +++ b/temporalio/api/stream/v1/message_pb2.pyi @@ -4,12 +4,18 @@ isort:skip_file """ import builtins +import collections.abc import sys import google.protobuf.descriptor +import google.protobuf.internal.containers import google.protobuf.message +import google.protobuf.timestamp_pb2 +import temporalio.api.common.v1.message_pb2 +import temporalio.api.enums.v1.common_pb2 import temporalio.api.enums.v1.stream_pb2 +import temporalio.api.failure.v1.message_pb2 if sys.version_info >= (3, 8): import typing as typing_extensions @@ -73,3 +79,342 @@ class StreamReference(google.protobuf.message.Message): ) -> None: ... global___StreamReference = StreamReference + +class StreamCallbackInfo(google.protobuf.message.Message): + """A callback attached to a stream notifier, as DescribeStreamNotifier reports it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + REQUEST_ID_FIELD_NUMBER: builtins.int + CALLBACK_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + DELIVERED_COUNTER_FIELD_NUMBER: builtins.int + PROGRESS_DISABLED_FIELD_NUMBER: builtins.int + ATTEMPT_FIELD_NUMBER: builtins.int + LAST_ATTEMPT_COMPLETE_TIME_FIELD_NUMBER: builtins.int + LAST_ATTEMPT_FAILURE_FIELD_NUMBER: builtins.int + WORKFLOW_TARGET_FIELD_NUMBER: builtins.int + request_id: builtins.str + """The request ID the callback was attached with.""" + @property + def callback(self) -> temporalio.api.common.v1.message_pb2.Callback: + """The callback. Its header keeps its keys, but every value is empty, since the values hold + the caller's credentials. + """ + state: temporalio.api.enums.v1.common_pb2.CallbackState.ValueType + """The state of the callback's completion delivery.""" + delivered_counter: builtins.int + """The highest counter delivered to the callback as progress.""" + progress_disabled: builtins.bool + """Whether the receiver refused progress, so the callback only gets the completion.""" + attempt: builtins.int + """The number of attempts made for the delivery in flight, starting at 1.""" + @property + def last_attempt_complete_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """The time the last attempt completed.""" + @property + def last_attempt_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """The failure of the last attempt, if it failed.""" + @property + def workflow_target(self) -> global___WorkflowWakeTarget: + """The Workflow the callback wakes, when it was attached with a `workflow_target` and not a + Nexus callback. Then `callback` is unset. + """ + def __init__( + self, + *, + request_id: builtins.str = ..., + callback: temporalio.api.common.v1.message_pb2.Callback | None = ..., + state: temporalio.api.enums.v1.common_pb2.CallbackState.ValueType = ..., + delivered_counter: builtins.int = ..., + progress_disabled: builtins.bool = ..., + attempt: builtins.int = ..., + last_attempt_complete_time: google.protobuf.timestamp_pb2.Timestamp + | None = ..., + last_attempt_failure: temporalio.api.failure.v1.message_pb2.Failure + | None = ..., + workflow_target: global___WorkflowWakeTarget | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "callback", + b"callback", + "last_attempt_complete_time", + b"last_attempt_complete_time", + "last_attempt_failure", + b"last_attempt_failure", + "workflow_target", + b"workflow_target", + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "attempt", + b"attempt", + "callback", + b"callback", + "delivered_counter", + b"delivered_counter", + "last_attempt_complete_time", + b"last_attempt_complete_time", + "last_attempt_failure", + b"last_attempt_failure", + "progress_disabled", + b"progress_disabled", + "request_id", + b"request_id", + "state", + b"state", + "workflow_target", + b"workflow_target", + ], + ) -> None: ... + +global___StreamCallbackInfo = StreamCallbackInfo + +class WorkflowWakeTarget(google.protobuf.message.Message): + """A Workflow that a stream notifier wakes when the stream moves or closes. The Workflow is in the + namespace of the request that attached it. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + workflow_id: builtins.str + run_id: builtins.str + subscription_id: builtins.str + """Names one reader of the stream in that run. The Workflow gets the wakes of each reader as + their own `StreamWake`. At most 256 bytes. + """ + def __init__( + self, + *, + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + subscription_id: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "run_id", + b"run_id", + "subscription_id", + b"subscription_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___WorkflowWakeTarget = WorkflowWakeTarget + +class StreamWake(google.protobuf.message.Message): + """A wake for one reader of a stream in a Workflow. The server records it as one of the + `attachments` of the next Workflow Task scheduled event, so it adds no event of its own. + + A wake says that the stream moved, not what it holds. The reader reads the stream itself. Wakes + of one reader are folded, so the reader sees the latest one, with the highest `counter`. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class MetadataEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal["key", b"key", "value", b"value"], + ) -> None: ... + + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + POSITION_FIELD_NUMBER: builtins.int + COUNTER_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + RECHECK_FIELD_NUMBER: builtins.int + CLOSED_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + RESUBSCRIBE_FIELD_NUMBER: builtins.int + subscription_id: builtins.str + """The `subscription_id` of the `WorkflowWakeTarget` this wake is for.""" + position: builtins.str + """The position that came with `counter`, in the producer's terms.""" + counter: builtins.int + """The highest counter the notifier has seen. A reader that subscribed after a counter wakes + when this value is above it. Zero when the notifier has seen no notification. + """ + @property + def metadata( + self, + ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """The metadata that came with `counter`.""" + recheck: builtins.bool + """Set when the notifier asks the reader to read again with no new counter. The notifier sends + it after a quiet period, so a reader also finds records whose notification was lost. + """ + closed: builtins.bool + """Set when the stream closed. The reader reads to the end of the stream, then sees the + outcome. + """ + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """The result the stream closed with, when `closed` is set. Optional.""" + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """The failure the stream closed with, when `closed` is set and it closed with one.""" + resubscribe: builtins.bool + """Set when the notifier dropped this reader, for example at the notifier's idle timeout. The + reader attaches again under a new request ID. + """ + def __init__( + self, + *, + subscription_id: builtins.str = ..., + position: builtins.str = ..., + counter: builtins.int = ..., + metadata: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + recheck: builtins.bool = ..., + closed: builtins.bool = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + resubscribe: builtins.bool = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", b"close_failure", "close_result", b"close_result" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "closed", + b"closed", + "counter", + b"counter", + "metadata", + b"metadata", + "position", + b"position", + "recheck", + b"recheck", + "resubscribe", + b"resubscribe", + "subscription_id", + b"subscription_id", + ], + ) -> None: ... + +global___StreamWake = StreamWake + +class StreamNotification(google.protobuf.message.Message): + """One stream's entry in a NotifyStreams request: the same fields as a NotifyStream request that + does not close the stream. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class MetadataEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal["key", b"key", "value", b"value"], + ) -> None: ... + + STREAM_REF_FIELD_NUMBER: builtins.int + POSITION_FIELD_NUMBER: builtins.int + COUNTER_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + @property + def stream_ref(self) -> global___StreamReference: ... + position: builtins.str + """Where the stream stands, in the producer's terms. At most 1 KiB of UTF-8.""" + counter: builtins.int + """The newest counter of the stream. Must be positive. The notifier ignores a counter at or + below the one it holds. + """ + @property + def metadata( + self, + ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Small details passed on to the callbacks. At most 2 KiB in total, counted as UTF-8 bytes.""" + def __init__( + self, + *, + stream_ref: global___StreamReference | None = ..., + position: builtins.str = ..., + counter: builtins.int = ..., + metadata: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream_ref", b"stream_ref"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "counter", + b"counter", + "metadata", + b"metadata", + "position", + b"position", + "stream_ref", + b"stream_ref", + ], + ) -> None: ... + +global___StreamNotification = StreamNotification + +class StreamNotificationResult(google.protobuf.message.Message): + """The answer to one entry of a NotifyStreams request.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + code: builtins.int + """The gRPC status code of the entry, as a NotifyStream call for it would answer. Zero (OK) + when the server applied the entry, or dropped it since the stream has no notifier. + """ + message: builtins.str + """Why the server refused the entry. Empty when `code` is zero.""" + def __init__( + self, + *, + code: builtins.int = ..., + message: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal["code", b"code", "message", b"message"], + ) -> None: ... + +global___StreamNotificationResult = StreamNotificationResult diff --git a/temporalio/api/workflowservice/v1/__init__.py b/temporalio/api/workflowservice/v1/__init__.py index ab72e6b09e..66fc27a4be 100644 --- a/temporalio/api/workflowservice/v1/__init__.py +++ b/temporalio/api/workflowservice/v1/__init__.py @@ -246,8 +246,26 @@ ValidateWorkerDeploymentVersionComputeConfigRequest, ValidateWorkerDeploymentVersionComputeConfigResponse, ) +from .stream_request_response_pb2 import ( + AttachStreamCallbackRequest, + AttachStreamCallbackResponse, + DescribeStreamNotifierRequest, + DescribeStreamNotifierResponse, + DetachStreamCallbackRequest, + DetachStreamCallbackResponse, + NotifyStreamRequest, + NotifyStreamResponse, + NotifyStreamsRequest, + NotifyStreamsResponse, + PollStreamNotifierRequest, + PollStreamNotifierResponse, + WaitStreamCallbackRequest, + WaitStreamCallbackResponse, +) __all__ = [ + "AttachStreamCallbackRequest", + "AttachStreamCallbackResponse", "CountActivityExecutionsRequest", "CountActivityExecutionsResponse", "CountNexusOperationExecutionsRequest", @@ -294,6 +312,8 @@ "DescribeNexusOperationExecutionResponse", "DescribeScheduleRequest", "DescribeScheduleResponse", + "DescribeStreamNotifierRequest", + "DescribeStreamNotifierResponse", "DescribeTaskQueueRequest", "DescribeTaskQueueResponse", "DescribeWorkerDeploymentRequest", @@ -306,6 +326,8 @@ "DescribeWorkflowExecutionResponse", "DescribeWorkflowRuleRequest", "DescribeWorkflowRuleResponse", + "DetachStreamCallbackRequest", + "DetachStreamCallbackResponse", "ExecuteMultiOperationRequest", "ExecuteMultiOperationResponse", "FetchWorkerConfigRequest", @@ -360,6 +382,10 @@ "ListWorkflowExecutionsResponse", "ListWorkflowRulesRequest", "ListWorkflowRulesResponse", + "NotifyStreamRequest", + "NotifyStreamResponse", + "NotifyStreamsRequest", + "NotifyStreamsResponse", "PatchScheduleRequest", "PatchScheduleResponse", "PauseActivityExecutionRequest", @@ -376,6 +402,8 @@ "PollNexusOperationExecutionResponse", "PollNexusTaskQueueRequest", "PollNexusTaskQueueResponse", + "PollStreamNotifierRequest", + "PollStreamNotifierResponse", "PollWorkflowExecutionTimeSkippingRequest", "PollWorkflowExecutionTimeSkippingResponse", "PollWorkflowExecutionUpdateRequest", @@ -494,6 +522,8 @@ "UpdateWorkflowExecutionResponse", "ValidateWorkerDeploymentVersionComputeConfigRequest", "ValidateWorkerDeploymentVersionComputeConfigResponse", + "WaitStreamCallbackRequest", + "WaitStreamCallbackResponse", ] # gRPC is optional diff --git a/temporalio/api/workflowservice/v1/stream_request_response_pb2.py b/temporalio/api/workflowservice/v1/stream_request_response_pb2.py new file mode 100644 index 0000000000..47cb12d4b1 --- /dev/null +++ b/temporalio/api/workflowservice/v1/stream_request_response_pb2.py @@ -0,0 +1,287 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: temporal/api/workflowservice/v1/stream_request_response.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 timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + +from temporalio.api.common.v1 import ( + message_pb2 as temporal_dot_api_dot_common_dot_v1_dot_message__pb2, +) +from temporalio.api.failure.v1 import ( + message_pb2 as temporal_dot_api_dot_failure_dot_v1_dot_message__pb2, +) +from temporalio.api.stream.v1 import ( + message_pb2 as temporal_dot_api_dot_stream_dot_v1_dot_message__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n=temporal/api/workflowservice/v1/stream_request_response.proto\x12\x1ftemporal.api.workflowservice.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/stream/v1/message.proto"\xe9\x02\n\x1b\x41ttachStreamCallbackRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12;\n\nstream_ref\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x38\n\x08\x63\x61llback\x18\x04 \x01(\x0b\x32&.temporal.api.common.v1.Callback.Nexus\x12\x10\n\x08identity\x18\x05 \x01(\t\x12\x17\n\x0foperation_token\x18\x06 \x01(\t\x12.\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x43\n\x0fworkflow_target\x18\x08 \x01(\x0b\x32*.temporal.api.stream.v1.WorkflowWakeTarget\x12\x0c\n\x04idle\x18\t \x01(\x08"\x1e\n\x1c\x41ttachStreamCallbackResponse"\xa8\x01\n\x19WaitStreamCallbackRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12;\n\nstream_ref\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x15\n\rafter_counter\x18\x04 \x01(\x03\x12\x10\n\x08identity\x18\x05 \x01(\t"\x1c\n\x1aWaitStreamCallbackResponse"\x93\x01\n\x1b\x44\x65tachStreamCallbackRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12;\n\nstream_ref\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x12\n\nrequest_id\x18\x03 \x01(\t\x12\x10\n\x08identity\x18\x04 \x01(\t"\x1e\n\x1c\x44\x65tachStreamCallbackResponse"\xa0\x03\n\x13NotifyStreamRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12;\n\nstream_ref\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x10\n\x08position\x18\x03 \x01(\t\x12\x0f\n\x07\x63ounter\x18\x04 \x01(\x03\x12T\n\x08metadata\x18\x05 \x03(\x0b\x32\x42.temporal.api.workflowservice.v1.NotifyStreamRequest.MetadataEntry\x12\r\n\x05\x63lose\x18\x06 \x01(\x08\x12\x35\n\x0c\x63lose_result\x18\x07 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x10\n\x08identity\x18\x08 \x01(\t\x12\x37\n\rclose_failure\x18\t \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x16\n\x14NotifyStreamResponse"o\n\x1d\x44\x65scribeStreamNotifierRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12;\n\nstream_ref\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference"\xcb\x01\n\x1e\x44\x65scribeStreamNotifierResponse\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x03\x12\x10\n\x08position\x18\x02 \x01(\t\x12\x0e\n\x06\x63losed\x18\x03 \x01(\x08\x12=\n\tcallbacks\x18\x04 \x03(\x0b\x32*.temporal.api.stream.v1.StreamCallbackInfo\x12\x37\n\rclose_failure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\x94\x01\n\x19PollStreamNotifierRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12;\n\nstream_ref\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x15\n\rafter_counter\x18\x03 \x01(\x03\x12\x10\n\x08identity\x18\x04 \x01(\t"\xcd\x02\n\x1aPollStreamNotifierResponse\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x03\x12\x10\n\x08position\x18\x02 \x01(\t\x12[\n\x08metadata\x18\x03 \x03(\x0b\x32I.temporal.api.workflowservice.v1.PollStreamNotifierResponse.MetadataEntry\x12\x0e\n\x06\x63losed\x18\x04 \x01(\x08\x12\x35\n\x0c\x63lose_result\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x06 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"~\n\x14NotifyStreamsRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x41\n\rnotifications\x18\x02 \x03(\x0b\x32*.temporal.api.stream.v1.StreamNotification\x12\x10\n\x08identity\x18\x03 \x01(\t"Z\n\x15NotifyStreamsResponse\x12\x41\n\x07results\x18\x01 \x03(\x0b\x32\x30.temporal.api.stream.v1.StreamNotificationResultB\xc4\x01\n"io.temporal.api.workflowservice.v1B\x1aStreamRequestResponseProtoP\x01Z5go.temporal.io/api/workflowservice/v1;workflowservice\xaa\x02!Temporalio.Api.WorkflowService.V1\xea\x02$Temporalio::Api::WorkflowService::V1b\x06proto3' +) + + +_ATTACHSTREAMCALLBACKREQUEST = DESCRIPTOR.message_types_by_name[ + "AttachStreamCallbackRequest" +] +_ATTACHSTREAMCALLBACKRESPONSE = DESCRIPTOR.message_types_by_name[ + "AttachStreamCallbackResponse" +] +_WAITSTREAMCALLBACKREQUEST = DESCRIPTOR.message_types_by_name[ + "WaitStreamCallbackRequest" +] +_WAITSTREAMCALLBACKRESPONSE = DESCRIPTOR.message_types_by_name[ + "WaitStreamCallbackResponse" +] +_DETACHSTREAMCALLBACKREQUEST = DESCRIPTOR.message_types_by_name[ + "DetachStreamCallbackRequest" +] +_DETACHSTREAMCALLBACKRESPONSE = DESCRIPTOR.message_types_by_name[ + "DetachStreamCallbackResponse" +] +_NOTIFYSTREAMREQUEST = DESCRIPTOR.message_types_by_name["NotifyStreamRequest"] +_NOTIFYSTREAMREQUEST_METADATAENTRY = _NOTIFYSTREAMREQUEST.nested_types_by_name[ + "MetadataEntry" +] +_NOTIFYSTREAMRESPONSE = DESCRIPTOR.message_types_by_name["NotifyStreamResponse"] +_DESCRIBESTREAMNOTIFIERREQUEST = DESCRIPTOR.message_types_by_name[ + "DescribeStreamNotifierRequest" +] +_DESCRIBESTREAMNOTIFIERRESPONSE = DESCRIPTOR.message_types_by_name[ + "DescribeStreamNotifierResponse" +] +_POLLSTREAMNOTIFIERREQUEST = DESCRIPTOR.message_types_by_name[ + "PollStreamNotifierRequest" +] +_POLLSTREAMNOTIFIERRESPONSE = DESCRIPTOR.message_types_by_name[ + "PollStreamNotifierResponse" +] +_POLLSTREAMNOTIFIERRESPONSE_METADATAENTRY = ( + _POLLSTREAMNOTIFIERRESPONSE.nested_types_by_name["MetadataEntry"] +) +_NOTIFYSTREAMSREQUEST = DESCRIPTOR.message_types_by_name["NotifyStreamsRequest"] +_NOTIFYSTREAMSRESPONSE = DESCRIPTOR.message_types_by_name["NotifyStreamsResponse"] +AttachStreamCallbackRequest = _reflection.GeneratedProtocolMessageType( + "AttachStreamCallbackRequest", + (_message.Message,), + { + "DESCRIPTOR": _ATTACHSTREAMCALLBACKREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.AttachStreamCallbackRequest) + }, +) +_sym_db.RegisterMessage(AttachStreamCallbackRequest) + +AttachStreamCallbackResponse = _reflection.GeneratedProtocolMessageType( + "AttachStreamCallbackResponse", + (_message.Message,), + { + "DESCRIPTOR": _ATTACHSTREAMCALLBACKRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.AttachStreamCallbackResponse) + }, +) +_sym_db.RegisterMessage(AttachStreamCallbackResponse) + +WaitStreamCallbackRequest = _reflection.GeneratedProtocolMessageType( + "WaitStreamCallbackRequest", + (_message.Message,), + { + "DESCRIPTOR": _WAITSTREAMCALLBACKREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.WaitStreamCallbackRequest) + }, +) +_sym_db.RegisterMessage(WaitStreamCallbackRequest) + +WaitStreamCallbackResponse = _reflection.GeneratedProtocolMessageType( + "WaitStreamCallbackResponse", + (_message.Message,), + { + "DESCRIPTOR": _WAITSTREAMCALLBACKRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.WaitStreamCallbackResponse) + }, +) +_sym_db.RegisterMessage(WaitStreamCallbackResponse) + +DetachStreamCallbackRequest = _reflection.GeneratedProtocolMessageType( + "DetachStreamCallbackRequest", + (_message.Message,), + { + "DESCRIPTOR": _DETACHSTREAMCALLBACKREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.DetachStreamCallbackRequest) + }, +) +_sym_db.RegisterMessage(DetachStreamCallbackRequest) + +DetachStreamCallbackResponse = _reflection.GeneratedProtocolMessageType( + "DetachStreamCallbackResponse", + (_message.Message,), + { + "DESCRIPTOR": _DETACHSTREAMCALLBACKRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.DetachStreamCallbackResponse) + }, +) +_sym_db.RegisterMessage(DetachStreamCallbackResponse) + +NotifyStreamRequest = _reflection.GeneratedProtocolMessageType( + "NotifyStreamRequest", + (_message.Message,), + { + "MetadataEntry": _reflection.GeneratedProtocolMessageType( + "MetadataEntry", + (_message.Message,), + { + "DESCRIPTOR": _NOTIFYSTREAMREQUEST_METADATAENTRY, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.NotifyStreamRequest.MetadataEntry) + }, + ), + "DESCRIPTOR": _NOTIFYSTREAMREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.NotifyStreamRequest) + }, +) +_sym_db.RegisterMessage(NotifyStreamRequest) +_sym_db.RegisterMessage(NotifyStreamRequest.MetadataEntry) + +NotifyStreamResponse = _reflection.GeneratedProtocolMessageType( + "NotifyStreamResponse", + (_message.Message,), + { + "DESCRIPTOR": _NOTIFYSTREAMRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.NotifyStreamResponse) + }, +) +_sym_db.RegisterMessage(NotifyStreamResponse) + +DescribeStreamNotifierRequest = _reflection.GeneratedProtocolMessageType( + "DescribeStreamNotifierRequest", + (_message.Message,), + { + "DESCRIPTOR": _DESCRIBESTREAMNOTIFIERREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.DescribeStreamNotifierRequest) + }, +) +_sym_db.RegisterMessage(DescribeStreamNotifierRequest) + +DescribeStreamNotifierResponse = _reflection.GeneratedProtocolMessageType( + "DescribeStreamNotifierResponse", + (_message.Message,), + { + "DESCRIPTOR": _DESCRIBESTREAMNOTIFIERRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.DescribeStreamNotifierResponse) + }, +) +_sym_db.RegisterMessage(DescribeStreamNotifierResponse) + +PollStreamNotifierRequest = _reflection.GeneratedProtocolMessageType( + "PollStreamNotifierRequest", + (_message.Message,), + { + "DESCRIPTOR": _POLLSTREAMNOTIFIERREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.PollStreamNotifierRequest) + }, +) +_sym_db.RegisterMessage(PollStreamNotifierRequest) + +PollStreamNotifierResponse = _reflection.GeneratedProtocolMessageType( + "PollStreamNotifierResponse", + (_message.Message,), + { + "MetadataEntry": _reflection.GeneratedProtocolMessageType( + "MetadataEntry", + (_message.Message,), + { + "DESCRIPTOR": _POLLSTREAMNOTIFIERRESPONSE_METADATAENTRY, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.PollStreamNotifierResponse.MetadataEntry) + }, + ), + "DESCRIPTOR": _POLLSTREAMNOTIFIERRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.PollStreamNotifierResponse) + }, +) +_sym_db.RegisterMessage(PollStreamNotifierResponse) +_sym_db.RegisterMessage(PollStreamNotifierResponse.MetadataEntry) + +NotifyStreamsRequest = _reflection.GeneratedProtocolMessageType( + "NotifyStreamsRequest", + (_message.Message,), + { + "DESCRIPTOR": _NOTIFYSTREAMSREQUEST, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.NotifyStreamsRequest) + }, +) +_sym_db.RegisterMessage(NotifyStreamsRequest) + +NotifyStreamsResponse = _reflection.GeneratedProtocolMessageType( + "NotifyStreamsResponse", + (_message.Message,), + { + "DESCRIPTOR": _NOTIFYSTREAMSRESPONSE, + "__module__": "temporalio.api.workflowservice.v1.stream_request_response_pb2", + # @@protoc_insertion_point(class_scope:temporal.api.workflowservice.v1.NotifyStreamsResponse) + }, +) +_sym_db.RegisterMessage(NotifyStreamsResponse) + +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n"io.temporal.api.workflowservice.v1B\032StreamRequestResponseProtoP\001Z5go.temporal.io/api/workflowservice/v1;workflowservice\252\002!Temporalio.Api.WorkflowService.V1\352\002$Temporalio::Api::WorkflowService::V1' + _NOTIFYSTREAMREQUEST_METADATAENTRY._options = None + _NOTIFYSTREAMREQUEST_METADATAENTRY._serialized_options = b"8\001" + _POLLSTREAMNOTIFIERRESPONSE_METADATAENTRY._options = None + _POLLSTREAMNOTIFIERRESPONSE_METADATAENTRY._serialized_options = b"8\001" + _ATTACHSTREAMCALLBACKREQUEST._serialized_start = 247 + _ATTACHSTREAMCALLBACKREQUEST._serialized_end = 608 + _ATTACHSTREAMCALLBACKRESPONSE._serialized_start = 610 + _ATTACHSTREAMCALLBACKRESPONSE._serialized_end = 640 + _WAITSTREAMCALLBACKREQUEST._serialized_start = 643 + _WAITSTREAMCALLBACKREQUEST._serialized_end = 811 + _WAITSTREAMCALLBACKRESPONSE._serialized_start = 813 + _WAITSTREAMCALLBACKRESPONSE._serialized_end = 841 + _DETACHSTREAMCALLBACKREQUEST._serialized_start = 844 + _DETACHSTREAMCALLBACKREQUEST._serialized_end = 991 + _DETACHSTREAMCALLBACKRESPONSE._serialized_start = 993 + _DETACHSTREAMCALLBACKRESPONSE._serialized_end = 1023 + _NOTIFYSTREAMREQUEST._serialized_start = 1026 + _NOTIFYSTREAMREQUEST._serialized_end = 1442 + _NOTIFYSTREAMREQUEST_METADATAENTRY._serialized_start = 1395 + _NOTIFYSTREAMREQUEST_METADATAENTRY._serialized_end = 1442 + _NOTIFYSTREAMRESPONSE._serialized_start = 1444 + _NOTIFYSTREAMRESPONSE._serialized_end = 1466 + _DESCRIBESTREAMNOTIFIERREQUEST._serialized_start = 1468 + _DESCRIBESTREAMNOTIFIERREQUEST._serialized_end = 1579 + _DESCRIBESTREAMNOTIFIERRESPONSE._serialized_start = 1582 + _DESCRIBESTREAMNOTIFIERRESPONSE._serialized_end = 1785 + _POLLSTREAMNOTIFIERREQUEST._serialized_start = 1788 + _POLLSTREAMNOTIFIERREQUEST._serialized_end = 1936 + _POLLSTREAMNOTIFIERRESPONSE._serialized_start = 1939 + _POLLSTREAMNOTIFIERRESPONSE._serialized_end = 2272 + _POLLSTREAMNOTIFIERRESPONSE_METADATAENTRY._serialized_start = 1395 + _POLLSTREAMNOTIFIERRESPONSE_METADATAENTRY._serialized_end = 1442 + _NOTIFYSTREAMSREQUEST._serialized_start = 2274 + _NOTIFYSTREAMSREQUEST._serialized_end = 2400 + _NOTIFYSTREAMSRESPONSE._serialized_start = 2402 + _NOTIFYSTREAMSRESPONSE._serialized_end = 2492 +# @@protoc_insertion_point(module_scope) diff --git a/temporalio/api/workflowservice/v1/stream_request_response_pb2.pyi b/temporalio/api/workflowservice/v1/stream_request_response_pb2.pyi new file mode 100644 index 0000000000..489314550a --- /dev/null +++ b/temporalio/api/workflowservice/v1/stream_request_response_pb2.pyi @@ -0,0 +1,654 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" + +import builtins +import collections.abc +import sys + +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import google.protobuf.timestamp_pb2 + +import temporalio.api.common.v1.message_pb2 +import temporalio.api.failure.v1.message_pb2 +import temporalio.api.stream.v1.message_pb2 + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class AttachStreamCallbackRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + STREAM_REF_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + CALLBACK_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + OPERATION_TOKEN_FIELD_NUMBER: builtins.int + START_TIME_FIELD_NUMBER: builtins.int + WORKFLOW_TARGET_FIELD_NUMBER: builtins.int + IDLE_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def stream_ref(self) -> temporalio.api.stream.v1.message_pb2.StreamReference: + """The stream whose notifier holds the callback.""" + request_id: builtins.str + """Identifies the attachment. Attaching again with the same request ID changes nothing, and + DetachStreamCallback names the callback by it. A Nexus handler passes its start request ID. + """ + @property + def callback(self) -> temporalio.api.common.v1.message_pb2.Callback.Nexus: + """Receives the stream's progress while it is open, and one completion when it closes. If the + stream is already closed, the completion is delivered right away. A Nexus handler passes the + callback URL and headers of its start request. + """ + identity: builtins.str + """The identity of the client attaching the callback.""" + operation_token: builtins.str + """The operation token the handler returns from its start. The notifier sends it with each + progress delivery and with the completion, so a completion that reaches the caller before + the start response still names the operation. + """ + @property + def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """When the handler started the operation. Sent with the token, for the same reason.""" + @property + def workflow_target( + self, + ) -> temporalio.api.stream.v1.message_pb2.WorkflowWakeTarget: + """A Workflow in this namespace that the notifier wakes, in place of a Nexus callback. The + Workflow gets each change of the stream as a `StreamWake` on its next Workflow Task. Exactly + one of `callback` and `workflow_target` is set. + """ + idle: builtins.bool + """Attaches the callback idle. An idle callback gets no progress until WaitStreamCallback asks + for one wake, and it goes back to idle after that delivery. It still gets the completion + when the stream closes. A Workflow reader attaches its `workflow_target` idle, so a busy + reader gets no wake. + """ + def __init__( + self, + *, + namespace: builtins.str = ..., + stream_ref: temporalio.api.stream.v1.message_pb2.StreamReference | None = ..., + request_id: builtins.str = ..., + callback: temporalio.api.common.v1.message_pb2.Callback.Nexus | None = ..., + identity: builtins.str = ..., + operation_token: builtins.str = ..., + start_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., + workflow_target: temporalio.api.stream.v1.message_pb2.WorkflowWakeTarget + | None = ..., + idle: builtins.bool = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "callback", + b"callback", + "start_time", + b"start_time", + "stream_ref", + b"stream_ref", + "workflow_target", + b"workflow_target", + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "callback", + b"callback", + "identity", + b"identity", + "idle", + b"idle", + "namespace", + b"namespace", + "operation_token", + b"operation_token", + "request_id", + b"request_id", + "start_time", + b"start_time", + "stream_ref", + b"stream_ref", + "workflow_target", + b"workflow_target", + ], + ) -> None: ... + +global___AttachStreamCallbackRequest = AttachStreamCallbackRequest + +class AttachStreamCallbackResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___AttachStreamCallbackResponse = AttachStreamCallbackResponse + +class WaitStreamCallbackRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + STREAM_REF_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + AFTER_COUNTER_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def stream_ref(self) -> temporalio.api.stream.v1.message_pb2.StreamReference: ... + request_id: builtins.str + """The request ID the idle callback was attached with.""" + after_counter: builtins.int + """The notifier delivers progress to the callback once, when its counter is above this value. + If the counter is above it already, the delivery goes out at once. A reader passes the + counter of the position its last read reached. + + (-- api-linter: core::0140::prepositions=disabled + aip.dev/not-precedent: "after" names the bound the counter must pass. --) + """ + identity: builtins.str + """The identity of the caller.""" + def __init__( + self, + *, + namespace: builtins.str = ..., + stream_ref: temporalio.api.stream.v1.message_pb2.StreamReference | None = ..., + request_id: builtins.str = ..., + after_counter: builtins.int = ..., + identity: builtins.str = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream_ref", b"stream_ref"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "after_counter", + b"after_counter", + "identity", + b"identity", + "namespace", + b"namespace", + "request_id", + b"request_id", + "stream_ref", + b"stream_ref", + ], + ) -> None: ... + +global___WaitStreamCallbackRequest = WaitStreamCallbackRequest + +class WaitStreamCallbackResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___WaitStreamCallbackResponse = WaitStreamCallbackResponse + +class DetachStreamCallbackRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + STREAM_REF_FIELD_NUMBER: builtins.int + REQUEST_ID_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def stream_ref(self) -> temporalio.api.stream.v1.message_pb2.StreamReference: ... + request_id: builtins.str + """The request ID the callback was attached with. Detaching a callback that is not attached + changes nothing. + """ + identity: builtins.str + """The identity of the client detaching the callback.""" + def __init__( + self, + *, + namespace: builtins.str = ..., + stream_ref: temporalio.api.stream.v1.message_pb2.StreamReference | None = ..., + request_id: builtins.str = ..., + identity: builtins.str = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream_ref", b"stream_ref"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "identity", + b"identity", + "namespace", + b"namespace", + "request_id", + b"request_id", + "stream_ref", + b"stream_ref", + ], + ) -> None: ... + +global___DetachStreamCallbackRequest = DetachStreamCallbackRequest + +class DetachStreamCallbackResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___DetachStreamCallbackResponse = DetachStreamCallbackResponse + +class NotifyStreamRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class MetadataEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal["key", b"key", "value", b"value"], + ) -> None: ... + + NAMESPACE_FIELD_NUMBER: builtins.int + STREAM_REF_FIELD_NUMBER: builtins.int + POSITION_FIELD_NUMBER: builtins.int + COUNTER_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + CLOSE_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def stream_ref(self) -> temporalio.api.stream.v1.message_pb2.StreamReference: ... + position: builtins.str + """Where the stream stands after the append this notification reports, in the producer's terms, + such as a stream cursor. Passed on to the callbacks as the progress position. The server + rejects a position longer than 1 KiB of UTF-8. + """ + counter: builtins.int + """Orders the notifications of one stream. The notifier keeps the highest counter it has seen + and ignores a lower one, so a producer may send them out of order. Must be positive. + """ + @property + def metadata( + self, + ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """Small details passed on to the callbacks. The server rejects metadata whose keys and values + exceed 2 KiB in total, counted as UTF-8 bytes. + """ + close: builtins.bool + """Closes the stream: the notifier completes every attached callback with `close_result`, or + with `close_failure`, and completes callbacks attached later right away. + """ + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """The completion result when `close` is set, such as a summary of the stream. Optional.""" + identity: builtins.str + """The identity of the producer.""" + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """Closes the stream with a failure instead of `close_result`. The notifier completes every + callback as failed, or as canceled when the failure has canceled info. Needs `close`, and + the server rejects a request that sets both `close_result` and `close_failure`. + """ + def __init__( + self, + *, + namespace: builtins.str = ..., + stream_ref: temporalio.api.stream.v1.message_pb2.StreamReference | None = ..., + position: builtins.str = ..., + counter: builtins.int = ..., + metadata: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + close: builtins.bool = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + identity: builtins.str = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "stream_ref", + b"stream_ref", + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "close", + b"close", + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "counter", + b"counter", + "identity", + b"identity", + "metadata", + b"metadata", + "namespace", + b"namespace", + "position", + b"position", + "stream_ref", + b"stream_ref", + ], + ) -> None: ... + +global___NotifyStreamRequest = NotifyStreamRequest + +class NotifyStreamResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___NotifyStreamResponse = NotifyStreamResponse + +class DescribeStreamNotifierRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + STREAM_REF_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def stream_ref(self) -> temporalio.api.stream.v1.message_pb2.StreamReference: ... + def __init__( + self, + *, + namespace: builtins.str = ..., + stream_ref: temporalio.api.stream.v1.message_pb2.StreamReference | None = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream_ref", b"stream_ref"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "namespace", b"namespace", "stream_ref", b"stream_ref" + ], + ) -> None: ... + +global___DescribeStreamNotifierRequest = DescribeStreamNotifierRequest + +class DescribeStreamNotifierResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + COUNTER_FIELD_NUMBER: builtins.int + POSITION_FIELD_NUMBER: builtins.int + CLOSED_FIELD_NUMBER: builtins.int + CALLBACKS_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + counter: builtins.int + """The highest counter the notifier has seen.""" + position: builtins.str + """The position that came with `counter`.""" + closed: builtins.bool + """Whether the stream was closed.""" + @property + def callbacks( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.stream.v1.message_pb2.StreamCallbackInfo + ]: + """The callbacks the notifier holds, in the order they were attached.""" + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """The failure the stream closed with, when it closed with one.""" + def __init__( + self, + *, + counter: builtins.int = ..., + position: builtins.str = ..., + closed: builtins.bool = ..., + callbacks: collections.abc.Iterable[ + temporalio.api.stream.v1.message_pb2.StreamCallbackInfo + ] + | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["close_failure", b"close_failure"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "callbacks", + b"callbacks", + "close_failure", + b"close_failure", + "closed", + b"closed", + "counter", + b"counter", + "position", + b"position", + ], + ) -> None: ... + +global___DescribeStreamNotifierResponse = DescribeStreamNotifierResponse + +class PollStreamNotifierRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + STREAM_REF_FIELD_NUMBER: builtins.int + AFTER_COUNTER_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def stream_ref(self) -> temporalio.api.stream.v1.message_pb2.StreamReference: ... + after_counter: builtins.int + """The poll returns when the notifier's counter is above this value, or when the stream is + closed. A reader passes the counter of the position its last read reached, so a + notification that landed before the poll makes it return at once. + + (-- api-linter: core::0140::prepositions=disabled + aip.dev/not-precedent: "after" names the bound the counter must pass. --) + """ + identity: builtins.str + """The identity of the client that polls.""" + def __init__( + self, + *, + namespace: builtins.str = ..., + stream_ref: temporalio.api.stream.v1.message_pb2.StreamReference | None = ..., + after_counter: builtins.int = ..., + identity: builtins.str = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream_ref", b"stream_ref"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "after_counter", + b"after_counter", + "identity", + b"identity", + "namespace", + b"namespace", + "stream_ref", + b"stream_ref", + ], + ) -> None: ... + +global___PollStreamNotifierRequest = PollStreamNotifierRequest + +class PollStreamNotifierResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class MetadataEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal["key", b"key", "value", b"value"], + ) -> None: ... + + COUNTER_FIELD_NUMBER: builtins.int + POSITION_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + CLOSED_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + counter: builtins.int + """The highest counter the notifier has seen. At or below the request's `after_counter` when + the poll reached its wait limit with no change. Then the client reads the stream again. + """ + position: builtins.str + """The position that came with `counter`.""" + @property + def metadata( + self, + ) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """The metadata that came with `counter`.""" + closed: builtins.bool + """Whether the stream was closed.""" + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """The result the stream closed with, when `closed` is set. Optional.""" + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """The failure the stream closed with, when `closed` is set and it closed with one.""" + def __init__( + self, + *, + counter: builtins.int = ..., + position: builtins.str = ..., + metadata: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + closed: builtins.bool = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", b"close_failure", "close_result", b"close_result" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "closed", + b"closed", + "counter", + b"counter", + "metadata", + b"metadata", + "position", + b"position", + ], + ) -> None: ... + +global___PollStreamNotifierResponse = PollStreamNotifierResponse + +class NotifyStreamsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMESPACE_FIELD_NUMBER: builtins.int + NOTIFICATIONS_FIELD_NUMBER: builtins.int + IDENTITY_FIELD_NUMBER: builtins.int + namespace: builtins.str + @property + def notifications( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.stream.v1.message_pb2.StreamNotification + ]: + """One entry per stream. The server rejects a request with more than + `streamnotifier.maxNotifyBatch` entries, or with two entries for one stream. + """ + identity: builtins.str + """The identity of the caller, such as a stream driver.""" + def __init__( + self, + *, + namespace: builtins.str = ..., + notifications: collections.abc.Iterable[ + temporalio.api.stream.v1.message_pb2.StreamNotification + ] + | None = ..., + identity: builtins.str = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "identity", + b"identity", + "namespace", + b"namespace", + "notifications", + b"notifications", + ], + ) -> None: ... + +global___NotifyStreamsRequest = NotifyStreamsRequest + +class NotifyStreamsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RESULTS_FIELD_NUMBER: builtins.int + @property + def results( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + temporalio.api.stream.v1.message_pb2.StreamNotificationResult + ]: + """One result per entry of the request, in the same order. Empty only from a server that + fails the whole call on a bad entry, so an empty list on success means every entry applied. + """ + def __init__( + self, + *, + results: collections.abc.Iterable[ + temporalio.api.stream.v1.message_pb2.StreamNotificationResult + ] + | None = ..., + ) -> None: ... + def ClearField( + self, field_name: typing_extensions.Literal["results", b"results"] + ) -> None: ... + +global___NotifyStreamsResponse = NotifyStreamsResponse diff --git a/temporalio/api/workflowservice/v1/stream_request_response_pb2_grpc.py b/temporalio/api/workflowservice/v1/stream_request_response_pb2_grpc.py new file mode 100644 index 0000000000..bf947056a2 --- /dev/null +++ b/temporalio/api/workflowservice/v1/stream_request_response_pb2_grpc.py @@ -0,0 +1,4 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" + +import grpc diff --git a/temporalio/api/workflowservice/v1/stream_request_response_pb2_grpc.pyi b/temporalio/api/workflowservice/v1/stream_request_response_pb2_grpc.pyi new file mode 100644 index 0000000000..f3a5a087ef --- /dev/null +++ b/temporalio/api/workflowservice/v1/stream_request_response_pb2_grpc.pyi @@ -0,0 +1,4 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +""" diff --git a/temporalio/bridge/Cargo.lock b/temporalio/bridge/Cargo.lock index f941e43ea8..35314d57a0 100644 --- a/temporalio/bridge/Cargo.lock +++ b/temporalio/bridge/Cargo.lock @@ -2926,11 +2926,14 @@ dependencies = [ [[package]] name = "temporalio-streams" version = "0.1.0" -source = "git+https://github.com/moetemp/sdk-streams?rev=dc5d8bfa9b734a6b8fc7f76b2f97344306ea8427#dc5d8bfa9b734a6b8fc7f76b2f97344306ea8427" +source = "git+https://github.com/moetemp/sdk-streams?rev=16592b73e5fa198c6f35cfbf22368fe566cca793#16592b73e5fa198c6f35cfbf22368fe566cca793" dependencies = [ "async-trait", "aws-lc-rs", + "bytes", "crc16", + "gethostname", + "lru", "parking_lot", "prost", "prost-wkt-types", diff --git a/temporalio/bridge/Cargo.toml b/temporalio/bridge/Cargo.toml index 85c61f93cc..d3e71ab827 100644 --- a/temporalio/bridge/Cargo.toml +++ b/temporalio/bridge/Cargo.toml @@ -91,7 +91,7 @@ url = "2.2" # makes it use the submodule's crates, so the bridge sees one `Connection` type. [dependencies.temporalio-streams] git = "https://github.com/moetemp/sdk-streams" -rev = "dc5d8bfa9b734a6b8fc7f76b2f97344306ea8427" +rev = "16592b73e5fa198c6f35cfbf22368fe566cca793" default-features = false features = ["envconfig", "redis"] diff --git a/temporalio/bridge/proto/streams/__init__.py b/temporalio/bridge/proto/streams/__init__.py index afa31dcddc..1e7e59ff6b 100644 --- a/temporalio/bridge/proto/streams/__init__.py +++ b/temporalio/bridge/proto/streams/__init__.py @@ -10,10 +10,14 @@ DeleteOwnerResponse, DescribeStoreRequest, DescribeStoreResponse, + FlushNotificationsRequest, + FlushNotificationsResponse, FollowedRecord, + FollowRangeRequest, FollowRequest, FollowResponse, FollowSource, + FollowSubscriber, LatestRequest, LatestResponse, LinkState, @@ -22,19 +26,28 @@ OutputRecord, PublishWorkflowTaskRequest, PublishWorkflowTaskResponse, + ReadRangeRequest, ReadRecord, ReadRequest, ReadResponse, + ReadSubscriber, RedisStoreConfig, + ReleaseFloorRequest, + ReleaseFloorResponse, + ResolvedActivityOutcome, + ResolvedOwnerActivity, RetireProducerRequest, RetireProducerResponse, RunEvictedRequest, RunEvictedResponse, ShutdownWorkerRequest, ShutdownWorkerResponse, + SourceRange, + SourceWake, StoreAppendRequest, StoreAppendResponse, StoreCapabilities, + StoredClose, StoredRecord, StoreLatestRequest, StoreLatestResponse, @@ -45,7 +58,13 @@ StreamFailureKind, StreamOwnerKind, StreamStoreConfig, + SubscribeRequest, + SubscribeResponse, Supersession, + UnsubscribeRequest, + UnsubscribeResponse, + WaitForNotificationRequest, + WaitForNotificationResponse, WorkflowTerminalCommand, ) @@ -61,9 +80,13 @@ "DeleteOwnerResponse", "DescribeStoreRequest", "DescribeStoreResponse", + "FlushNotificationsRequest", + "FlushNotificationsResponse", + "FollowRangeRequest", "FollowRequest", "FollowResponse", "FollowSource", + "FollowSubscriber", "FollowedRecord", "LatestRequest", "LatestResponse", @@ -73,16 +96,24 @@ "OutputRecord", "PublishWorkflowTaskRequest", "PublishWorkflowTaskResponse", + "ReadRangeRequest", "ReadRecord", "ReadRequest", "ReadResponse", + "ReadSubscriber", "RedisStoreConfig", + "ReleaseFloorRequest", + "ReleaseFloorResponse", + "ResolvedActivityOutcome", + "ResolvedOwnerActivity", "RetireProducerRequest", "RetireProducerResponse", "RunEvictedRequest", "RunEvictedResponse", "ShutdownWorkerRequest", "ShutdownWorkerResponse", + "SourceRange", + "SourceWake", "StoreAppendRequest", "StoreAppendResponse", "StoreCapabilities", @@ -90,12 +121,19 @@ "StoreLatestResponse", "StoreReadRequest", "StoreReadResponse", + "StoredClose", "StoredRecord", "StreamAddress", "StreamFailure", "StreamFailureKind", "StreamOwnerKind", "StreamStoreConfig", + "SubscribeRequest", + "SubscribeResponse", "Supersession", + "UnsubscribeRequest", + "UnsubscribeResponse", + "WaitForNotificationRequest", + "WaitForNotificationResponse", "WorkflowTerminalCommand", ] diff --git a/temporalio/bridge/proto/streams/streams_pb2.py b/temporalio/bridge/proto/streams/streams_pb2.py index 29f7ffc39f..74bc69ee99 100644 --- a/temporalio/bridge/proto/streams/streams_pb2.py +++ b/temporalio/bridge/proto/streams/streams_pb2.py @@ -16,26 +16,37 @@ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from temporalio.api.common.v1 import ( message_pb2 as temporal_dot_api_dot_common_dot_v1_dot_message__pb2, ) +from temporalio.api.failure.v1 import ( + message_pb2 as temporal_dot_api_dot_failure_dot_v1_dot_message__pb2, +) +from temporalio.api.workflowservice.v1 import ( + stream_request_response_pb2 as temporal_dot_api_dot_workflowservice_dot_v1_dot_stream__request__response__pb2, +) from temporalio.bridge.proto.streams.v1 import ( message_pb2 as temporal_dot_sdk_dot_streams_dot_v1_dot_message__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\'temporal/sdk/core/streams/streams.proto\x12\x0f\x63oresdk.streams\x1a\x1egoogle/protobuf/duration.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/sdk/streams/v1/message.proto"\xbc\x01\n\x11StreamStoreConfig\x12\x32\n\x05redis\x18\x01 \x01(\x0b\x32!.coresdk.streams.RedisStoreConfigH\x00\x12\x34\n\x06memory\x18\x02 \x01(\x0b\x32".coresdk.streams.MemoryStoreConfigH\x00\x12\x34\n\x11owner_start_grace\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\x07\n\x05store"\xd8\x01\n\x10RedisStoreConfig\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x0f\n\x07\x63luster\x18\x02 \x01(\x08\x12\x12\n\nkey_prefix\x18\x03 \x01(\t\x12,\n\tretention\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1f\n\x17\x62locking_reads_per_node\x18\x05 \x01(\r\x12\x33\n\x10response_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05plain\x18\n \x01(\x08"M\n\x11MemoryStoreConfig\x12\x38\n\x0c\x63\x61pabilities\x18\x01 \x01(\x0b\x32".coresdk.streams.StoreCapabilities"\x8c\x01\n\rStreamAddress\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x34\n\nowner_kind\x18\x02 \x01(\x0e\x32 .coresdk.streams.StreamOwnerKind\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x0e\n\x06run_id\x18\x04 \x01(\t\x12\r\n\x05topic\x18\x05 \x01(\t"G\n\x07\x43hainId\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x14\n\x0c\x66irst_run_id\x18\x03 \x01(\t"y\n\rNamedProducer\x12\x13\n\x0bproducer_id\x18\x01 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x02 \x01(\x03\x12\x1d\n\x15task_started_event_id\x18\x03 \x01(\x03\x12#\n\x1b\x63ompleted_started_event_ids\x18\x04 \x03(\x03"]\n\x10\x41\x63tivityProducer\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x05"\xbf\x01\n\x0c\x41ppendRecord\x12\x37\n\x04kind\x18\x01 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamRecordKind\x12-\n\x04\x62ody\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x14\n\x0c\x63ontent_hash\x18\x03 \x01(\x0c\x12\x31\n\x04link\x18\x04 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink"\x85\x02\n\rAppendRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12/\n\x05named\x18\x02 \x01(\x0b\x32\x1e.coresdk.streams.NamedProducerH\x00\x12\x35\n\x08\x61\x63tivity\x18\x03 \x01(\x0b\x32!.coresdk.streams.ActivityProducerH\x00\x12\x10\n\x08sequence\x18\x04 \x01(\x03\x12.\n\x07records\x18\x05 \x03(\x0b\x32\x1d.coresdk.streams.AppendRecord\x12\x0e\n\x06\x64igest\x18\x06 \x01(\x0c\x42\n\n\x08producer";\n\x0e\x41ppendResponse\x12\x14\n\x0c\x66irst_cursor\x18\x01 \x01(\t\x12\x13\n\x0blast_cursor\x18\x02 \x01(\t"\x99\x01\n\x0bReadRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\r\n\x05\x61\x66ter\x18\x02 \x01(\t\x12\'\n\x04wait\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bmax_records\x18\x04 \x01(\r\x12\r\n\x05state\x18\x05 \x01(\x0c"]\n\x0cSupersession\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x13\n\x0bproducer_id\x18\x02 \x01(\t\x12\x18\n\x10previous_attempt\x18\x03 \x01(\x03\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x03"\xa3\x01\n\nReadRecord\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t\x12\x37\n\x06stored\x18\x02 \x01(\x0b\x32%.temporal.sdk.streams.v1.StreamRecordH\x00\x12\x33\n\nsuperseded\x18\x03 \x01(\x0b\x32\x1d.coresdk.streams.SupersessionH\x00\x12\r\n\x05stale\x18\x04 \x01(\x08\x42\x08\n\x06record"\x7f\n\x0cReadResponse\x12,\n\x07records\x18\x01 \x03(\x0b\x32\x1b.coresdk.streams.ReadRecord\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64one\x18\x04 \x01(\x08\x12\x14\n\x0cstart_cursor\x18\x0c \x01(\t"\xc0\x01\n\rFollowRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\r\n\x05\x61\x66ter\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x0c\x12\'\n\x04wait\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bmax_records\x18\x05 \x01(\r\x12\x11\n\tmax_depth\x18\x06 \x01(\r\x12\x10\n\x08max_open\x18\x07 \x01(\r"\x89\x01\n\x0e\x46ollowedRecord\x12\x0e\n\x06source\x18\x01 \x01(\r\x12-\n\x06record\x18\x02 \x01(\x0b\x32\x1b.coresdk.streams.ReadRecordH\x00\x12\x30\n\nlink_state\x18\x03 \x01(\x0b\x32\x1a.coresdk.streams.LinkStateH\x00\x42\x06\n\x04item"\x92\x02\n\tLinkState\x12-\n\x04kind\x18\x01 \x01(\x0e\x32\x1f.coresdk.streams.LinkState.Kind\x12\x31\n\x04link\x18\x02 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink\x12-\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x1e.coresdk.streams.StreamFailure\x12\x0e\n\x06reason\x18\x06 \x01(\t"d\n\x04Kind\x12\x14\n\x10KIND_UNSPECIFIED\x10\x00\x12\x0f\n\x0bKIND_OPENED\x10\x01\x12\r\n\tKIND_DONE\x10\x02\x12\x14\n\x10KIND_UNAVAILABLE\x10\x03\x12\x10\n\x0cKIND_SKIPPED\x10\x04"{\n\x0c\x46ollowSource\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06parent\x18\x02 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\r\x12.\n\x06stream\x18\x04 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x0c\n\x04name\x18\x05 \x01(\t"\x8f\x01\n\x0e\x46ollowResponse\x12\x30\n\x07records\x18\x01 \x03(\x0b\x32\x1f.coresdk.streams.FollowedRecord\x12\r\n\x05state\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\x12.\n\x07sources\x18\x04 \x03(\x0b\x32\x1d.coresdk.streams.FollowSource"?\n\rLatestRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress" \n\x0eLatestResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t">\n\x0c\x43loseRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress"\x0f\n\rCloseResponse"r\n\x12\x44\x65leteOwnerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x34\n\nowner_kind\x18\x02 \x01(\x0e\x32 .coresdk.streams.StreamOwnerKind\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t"&\n\x13\x44\x65leteOwnerResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x04"\xbb\x01\n\x15RetireProducerRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12/\n\x05named\x18\x02 \x01(\x0b\x32\x1e.coresdk.streams.NamedProducerH\x00\x12\x35\n\x08\x61\x63tivity\x18\x03 \x01(\x0b\x32!.coresdk.streams.ActivityProducerH\x00\x42\n\n\x08producer"\x18\n\x16RetireProducerResponse"\x16\n\x14\x44\x65scribeStoreRequest"_\n\x15\x44\x65scribeStoreResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x0c\x63\x61pabilities\x18\x02 \x01(\x0b\x32".coresdk.streams.StoreCapabilities"\xc1\x02\n\x11StoreCapabilities\x12\x16\n\x0eproducer_state\x18\x01 \x01(\x08\x12\x11\n\tkept_last\x18\x04 \x01(\x08\x12\r\n\x05holds\x18\x05 \x01(\x08\x12\x13\n\x0b\x63hange_feed\x18\x06 \x01(\x08\x12\x12\n\ncheap_logs\x18\x07 \x01(\x08\x12\x14\n\x0c\x64\x65lete_owner\x18\x08 \x01(\x08\x12\x15\n\rtopic_listing\x18\t \x01(\x08\x12\x11\n\tlong_poll\x18\n \x01(\x08\x12\x17\n\x0f\x64\x65nse_positions\x18\x0b \x01(\x08\x12\x31\n\x0ereplay_horizon\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10max_record_bytes\x18\r \x01(\x04\x12\x17\n\x0fmax_batch_bytes\x18\x0e \x01(\x04J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04"b\n\rStreamFailure\x12\x30\n\x04kind\x18\x01 \x01(\x0e\x32".coresdk.streams.StreamFailureKind\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x03 \x01(\t"\xa5\x01\n\x12StoreAppendRequest\x12\'\n\x05\x63hain\x18\x01 \x01(\x0b\x32\x18.coresdk.streams.ChainId\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x13\n\x0bproducer_id\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x03\x12\x10\n\x08sequence\x18\x05 \x01(\x03\x12\x0e\n\x06\x64igest\x18\x06 \x01(\x0c\x12\x0f\n\x07records\x18\x07 \x03(\x0c"D\n\x13StoreAppendResponse\x12\x16\n\x0e\x66irst_position\x18\x01 \x01(\t\x12\x15\n\rlast_position\x18\x02 \x01(\t"\xa0\x01\n\x10StoreReadRequest\x12\'\n\x05\x63hain\x18\x01 \x01(\x0b\x32\x18.coresdk.streams.ChainId\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x16\n\x0e\x61\x66ter_position\x18\x03 \x01(\t\x12\'\n\x04wait\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bmax_records\x18\x05 \x01(\r"0\n\x0cStoredRecord\x12\x10\n\x08position\x18\x01 \x01(\t\x12\x0e\n\x06record\x18\x02 \x01(\x0c"S\n\x11StoreReadResponse\x12.\n\x07records\x18\x01 \x03(\x0b\x32\x1d.coresdk.streams.StoredRecord\x12\x0e\n\x06\x63losed\x18\x02 \x01(\x08"L\n\x12StoreLatestRequest\x12\'\n\x05\x63hain\x18\x01 \x01(\x0b\x32\x18.coresdk.streams.ChainId\x12\r\n\x05topic\x18\x02 \x01(\t"\'\n\x13StoreLatestResponse\x12\x10\n\x08position\x18\x01 \x01(\t"\xab\x03\n\x1aPublishWorkflowTaskRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\x12\n\ntask_queue\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x05 \x01(\t\x12\x0e\n\x06run_id\x18\x06 \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x07 \x01(\t\x12\x0c\n\x04\x63ron\x18\x08 \x01(\x08\x12\x18\n\x10has_retry_policy\x18\t \x01(\x08\x12\x1d\n\x15task_started_event_id\x18\n \x01(\x03\x12\x17\n\x0f\x66\x61iled_attempts\x18\x0b \x01(\r\x12#\n\x1b\x63ompleted_started_event_ids\x18\x0c \x03(\x03\x12.\n\x07records\x18\r \x03(\x0b\x32\x1d.coresdk.streams.OutputRecord\x12\x42\n\x10terminal_command\x18\x0e \x01(\x0e\x32(.coresdk.streams.WorkflowTerminalCommand"\xce\x01\n\x0cOutputRecord\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x37\n\x04kind\x18\x02 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamRecordKind\x12-\n\x04\x62ody\x18\x03 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x14\n\x0c\x63ontent_hash\x18\x04 \x01(\x0c\x12\x31\n\x04link\x18\x05 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink"5\n\x1bPublishWorkflowTaskResponse\x12\x16\n\x0e\x64ropped_topics\x18\x01 \x03(\t"Y\n\x11RunEvictedRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12!\n\x19workflow_execution_ending\x18\x03 \x01(\x08"\x14\n\x12RunEvictedResponse"*\n\x15ShutdownWorkerRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t"\x18\n\x16ShutdownWorkerResponse*T\n\x0fStreamOwnerKind\x12!\n\x1dSTREAM_OWNER_KIND_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSTREAM_OWNER_KIND_WORKFLOW\x10\x01*\xea\x03\n\x11StreamFailureKind\x12#\n\x1fSTREAM_FAILURE_KIND_UNSPECIFIED\x10\x00\x12*\n&STREAM_FAILURE_KIND_PRODUCER_DIVERGENT\x10\x01\x12&\n"STREAM_FAILURE_KIND_PRODUCER_STALE\x10\x02\x12\'\n#STREAM_FAILURE_KIND_OUTCOME_UNKNOWN\x10\x03\x12\x1f\n\x1bSTREAM_FAILURE_KIND_REFUSED\x10\x04\x12\x1e\n\x1aSTREAM_FAILURE_KIND_CLOSED\x10\x05\x12\x1e\n\x1aSTREAM_FAILURE_KIND_CURSOR\x10\x06\x12\x1f\n\x1bSTREAM_FAILURE_KIND_EXPIRED\x10\x07\x12!\n\x1dSTREAM_FAILURE_KIND_NOT_FOUND\x10\x08\x12\x1e\n\x1aSTREAM_FAILURE_KIND_RECORD\x10\t\x12\x1f\n\x1bSTREAM_FAILURE_KIND_STORAGE\x10\n\x12#\n\x1fSTREAM_FAILURE_KIND_UNSUPPORTED\x10\x0b\x12(\n$STREAM_FAILURE_KIND_INVALID_ARGUMENT\x10\x0c*\xe5\x01\n\x17WorkflowTerminalCommand\x12)\n%WORKFLOW_TERMINAL_COMMAND_UNSPECIFIED\x10\x00\x12&\n"WORKFLOW_TERMINAL_COMMAND_COMPLETE\x10\x01\x12"\n\x1eWORKFLOW_TERMINAL_COMMAND_FAIL\x10\x02\x12$\n WORKFLOW_TERMINAL_COMMAND_CANCEL\x10\x03\x12-\n)WORKFLOW_TERMINAL_COMMAND_CONTINUE_AS_NEW\x10\x04\x32\xc6\x07\n\rStreamService\x12I\n\x06\x41ppend\x12\x1e.coresdk.streams.AppendRequest\x1a\x1f.coresdk.streams.AppendResponse\x12\x43\n\x04Read\x12\x1c.coresdk.streams.ReadRequest\x1a\x1d.coresdk.streams.ReadResponse\x12I\n\x06Latest\x12\x1e.coresdk.streams.LatestRequest\x1a\x1f.coresdk.streams.LatestResponse\x12\x46\n\x05\x43lose\x12\x1d.coresdk.streams.CloseRequest\x1a\x1e.coresdk.streams.CloseResponse\x12X\n\x0b\x44\x65leteOwner\x12#.coresdk.streams.DeleteOwnerRequest\x1a$.coresdk.streams.DeleteOwnerResponse\x12\x61\n\x0eRetireProducer\x12&.coresdk.streams.RetireProducerRequest\x1a\'.coresdk.streams.RetireProducerResponse\x12I\n\x06\x46ollow\x12\x1e.coresdk.streams.FollowRequest\x1a\x1f.coresdk.streams.FollowResponse\x12^\n\rDescribeStore\x12%.coresdk.streams.DescribeStoreRequest\x1a&.coresdk.streams.DescribeStoreResponse\x12p\n\x13PublishWorkflowTask\x12+.coresdk.streams.PublishWorkflowTaskRequest\x1a,.coresdk.streams.PublishWorkflowTaskResponse\x12U\n\nRunEvicted\x12".coresdk.streams.RunEvictedRequest\x1a#.coresdk.streams.RunEvictedResponse\x12\x61\n\x0eShutdownWorker\x12&.coresdk.streams.ShutdownWorkerRequest\x1a\'.coresdk.streams.ShutdownWorkerResponseB-\xea\x02*Temporalio::Internal::Bridge::Api::Streamsb\x06proto3' + b'\n\'temporal/sdk/core/streams/streams.proto\x12\x0f\x63oresdk.streams\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a%temporal/sdk/streams/v1/message.proto\x1a=temporal/api/workflowservice/v1/stream_request_response.proto"\x88\x02\n\x11StreamStoreConfig\x12\x32\n\x05redis\x18\x01 \x01(\x0b\x32!.coresdk.streams.RedisStoreConfigH\x00\x12\x34\n\x06memory\x18\x02 \x01(\x0b\x32".coresdk.streams.MemoryStoreConfigH\x00\x12\x18\n\x10notify_on_append\x18\x03 \x01(\x08\x12\x15\n\rmax_notifiers\x18\x04 \x01(\r\x12\x34\n\x11owner_start_grace\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\x07\n\x05storeJ\x04\x08\x05\x10\x06R\x13notify_every_append"\xc0\x02\n\x10RedisStoreConfig\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x0f\n\x07\x63luster\x18\x02 \x01(\x08\x12\x12\n\nkey_prefix\x18\x03 \x01(\t\x12,\n\tretention\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1f\n\x17\x62locking_reads_per_node\x18\x05 \x01(\r\x12\x33\n\x10response_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12.\n\x0b\x66loor_lease\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x36\n\x13\x66loor_release_grace\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\r\n\x05plain\x18\n \x01(\x08"M\n\x11MemoryStoreConfig\x12\x38\n\x0c\x63\x61pabilities\x18\x01 \x01(\x0b\x32".coresdk.streams.StoreCapabilities"\xa1\x01\n\rStreamAddress\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x34\n\nowner_kind\x18\x02 \x01(\x0e\x32 .coresdk.streams.StreamOwnerKind\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x0e\n\x06run_id\x18\x04 \x01(\t\x12\r\n\x05topic\x18\x05 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x06 \x01(\t"\x92\x01\n\x07\x43hainId\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x14\n\x0c\x66irst_run_id\x18\x03 \x01(\t\x12\x34\n\nowner_kind\x18\x04 \x01(\x0e\x32 .coresdk.streams.StreamOwnerKind\x12\x13\n\x0b\x61\x63tivity_id\x18\x05 \x01(\t"y\n\rNamedProducer\x12\x13\n\x0bproducer_id\x18\x01 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x02 \x01(\x03\x12\x1d\n\x15task_started_event_id\x18\x03 \x01(\x03\x12#\n\x1b\x63ompleted_started_event_ids\x18\x04 \x03(\x03"\x97\x01\n\x10\x41\x63tivityProducer\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x05\x12\x38\n\x14\x61ttempt_started_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp"\xbf\x01\n\x0c\x41ppendRecord\x12\x37\n\x04kind\x18\x01 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamRecordKind\x12-\n\x04\x62ody\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x14\n\x0c\x63ontent_hash\x18\x03 \x01(\x0c\x12\x31\n\x04link\x18\x04 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink"\x85\x02\n\rAppendRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12/\n\x05named\x18\x02 \x01(\x0b\x32\x1e.coresdk.streams.NamedProducerH\x00\x12\x35\n\x08\x61\x63tivity\x18\x03 \x01(\x0b\x32!.coresdk.streams.ActivityProducerH\x00\x12\x10\n\x08sequence\x18\x04 \x01(\x03\x12.\n\x07records\x18\x05 \x03(\x0b\x32\x1d.coresdk.streams.AppendRecord\x12\x0e\n\x06\x64igest\x18\x06 \x01(\x0c\x42\n\n\x08producer";\n\x0e\x41ppendResponse\x12\x14\n\x0c\x66irst_cursor\x18\x01 \x01(\t\x12\x13\n\x0blast_cursor\x18\x02 \x01(\t"\x82\x02\n\x0bReadRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\r\n\x05\x61\x66ter\x18\x02 \x01(\t\x12\'\n\x04wait\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bmax_records\x18\x04 \x01(\r\x12\r\n\x05state\x18\x05 \x01(\x0c\x12\x14\n\x0c\x66loor_holder\x18\x07 \x01(\t\x12\x33\n\nsubscriber\x18\x08 \x01(\x0b\x32\x1f.coresdk.streams.ReadSubscriber\x12\x11\n\tmax_bytes\x18\t \x01(\x04J\x04\x08\x06\x10\x07R\x03\x61rm"b\n\x0eReadSubscriber\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x17\n\x0fsubscription_id\x18\x03 \x01(\t\x12\x12\n\ngeneration\x18\x04 \x01(\r"]\n\x0cSupersession\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x13\n\x0bproducer_id\x18\x02 \x01(\t\x12\x18\n\x10previous_attempt\x18\x03 \x01(\x03\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x03"\xa3\x01\n\nReadRecord\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t\x12\x37\n\x06stored\x18\x02 \x01(\x0b\x32%.temporal.sdk.streams.v1.StreamRecordH\x00\x12\x33\n\nsuperseded\x18\x03 \x01(\x0b\x32\x1d.coresdk.streams.SupersessionH\x00\x12\r\n\x05stale\x18\x04 \x01(\x08\x42\x08\n\x06record"\xd7\x02\n\x0cReadResponse\x12,\n\x07records\x18\x01 \x03(\x0b\x32\x1b.coresdk.streams.ReadRecord\x12\x0e\n\x06\x63ursor\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64one\x18\x04 \x01(\x08\x12\x12\n\nwake_after\x18\x06 \x01(\x03\x12\x35\n\x0c\x63lose_result\x18\x07 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x08 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x11\n\tclosed_by\x18\t \x01(\t\x12\x16\n\x0erecords_digest\x18\n \x01(\x0c\x12\x1a\n\x12\x63hain_first_run_id\x18\x0b \x01(\t\x12\x14\n\x0cstart_cursor\x18\x0c \x01(\tJ\x04\x08\x05\x10\x06R\x05\x61rmed"\xe6\x01\n\x10ReadRangeRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x1a\n\x12\x63hain_first_run_id\x18\x02 \x01(\t\x12\r\n\x05\x61\x66ter\x18\x03 \x01(\t\x12\n\n\x02to\x18\x04 \x01(\t\x12\x16\n\x0estored_records\x18\x05 \x01(\r\x12\r\n\x05state\x18\x06 \x01(\x0c\x12\x16\n\x0erecords_digest\x18\x07 \x01(\x0c\x12\x14\n\x0c\x66loor_holder\x18\x08 \x01(\t\x12\x16\n\x0estart_from_end\x18\t \x01(\x08"w\n\x13ReleaseFloorRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x1a\n\x12\x63hain_first_run_id\x18\x02 \x01(\t\x12\x14\n\x0c\x66loor_holder\x18\x03 \x01(\t"\x16\n\x14ReleaseFloorResponse"\x8d\x02\n\rFollowRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\r\n\x05\x61\x66ter\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x0c\x12\'\n\x04wait\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bmax_records\x18\x05 \x01(\r\x12\x11\n\tmax_depth\x18\x06 \x01(\r\x12\x10\n\x08max_open\x18\x07 \x01(\r\x12\x14\n\x0c\x66loor_holder\x18\x08 \x01(\t\x12\x35\n\nsubscriber\x18\t \x01(\x0b\x32!.coresdk.streams.FollowSubscriber"h\n\x10\x46ollowSubscriber\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x1b\n\x13subscription_prefix\x18\x03 \x01(\t\x12\x12\n\ngeneration\x18\x04 \x01(\r"\x89\x01\n\x0e\x46ollowedRecord\x12\x0e\n\x06source\x18\x01 \x01(\r\x12-\n\x06record\x18\x02 \x01(\x0b\x32\x1b.coresdk.streams.ReadRecordH\x00\x12\x30\n\nlink_state\x18\x03 \x01(\x0b\x32\x1a.coresdk.streams.LinkStateH\x00\x42\x06\n\x04item"\x82\x03\n\tLinkState\x12-\n\x04kind\x18\x01 \x01(\x0e\x32\x1f.coresdk.streams.LinkState.Kind\x12\x31\n\x04link\x18\x02 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink\x12\x35\n\x0c\x63lose_result\x18\x03 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12-\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x1e.coresdk.streams.StreamFailure\x12\x0e\n\x06reason\x18\x06 \x01(\t"d\n\x04Kind\x12\x14\n\x10KIND_UNSPECIFIED\x10\x00\x12\x0f\n\x0bKIND_OPENED\x10\x01\x12\r\n\tKIND_DONE\x10\x02\x12\x14\n\x10KIND_UNAVAILABLE\x10\x03\x12\x10\n\x0cKIND_SKIPPED\x10\x04"{\n\x0c\x46ollowSource\x12\x0e\n\x06number\x18\x01 \x01(\r\x12\x0e\n\x06parent\x18\x02 \x01(\r\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\r\x12.\n\x06stream\x18\x04 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x0c\n\x04name\x18\x05 \x01(\t"\xe6\x02\n\x0bSourceRange\x12\x0e\n\x06source\x18\x01 \x01(\r\x12\x1a\n\x12\x63hain_first_run_id\x18\x02 \x01(\t\x12\x14\n\x0cstart_cursor\x18\x03 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x04 \x01(\t\x12\x16\n\x0estored_records\x18\x05 \x01(\r\x12\x10\n\x08state_in\x18\x06 \x01(\x0c\x12\x16\n\x0erecords_digest\x18\x07 \x01(\x0c\x12\x16\n\x0estart_from_end\x18\x08 \x01(\x08\x12\x0c\n\x04\x64one\x18\t \x01(\x08\x12\x35\n\x0c\x63lose_result\x18\n \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x0b \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12-\n\x05\x65rror\x18\x0c \x01(\x0b\x32\x1e.coresdk.streams.StreamFailure"I\n\nSourceWake\x12\x0e\n\x06source\x18\x01 \x01(\r\x12\x17\n\x0fsubscription_id\x18\x02 \x01(\t\x12\x12\n\nwake_after\x18\x03 \x01(\x03"\xf0\x02\n\x0e\x46ollowResponse\x12\x30\n\x07records\x18\x01 \x03(\x0b\x32\x1f.coresdk.streams.FollowedRecord\x12\r\n\x05state\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\x12.\n\x07sources\x18\x04 \x03(\x0b\x32\x1d.coresdk.streams.FollowSource\x12,\n\x06ranges\x18\x05 \x03(\x0b\x32\x1c.coresdk.streams.SourceRange\x12*\n\x05wakes\x18\x06 \x03(\x0b\x32\x1b.coresdk.streams.SourceWake\x12\x35\n\x0c\x63lose_result\x18\x07 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x08 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x15\n\rfollow_digest\x18\t \x01(\x0c"\xd6\x01\n\x12\x46ollowRangeRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x10\n\x08state_in\x18\x02 \x01(\x0c\x12,\n\x06ranges\x18\x03 \x03(\x0b\x32\x1c.coresdk.streams.SourceRange\x12\x15\n\rfollow_digest\x18\x04 \x01(\x0c\x12\x14\n\x0c\x66loor_holder\x18\x05 \x01(\t\x12\x11\n\tmax_depth\x18\x06 \x01(\r\x12\x10\n\x08max_open\x18\x07 \x01(\r"?\n\rLatestRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress" \n\x0eLatestResponse\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t"\xb5\x01\n\x0c\x43loseRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12/\n\x06result\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x31\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x11\n\tclosed_by\x18\x04 \x01(\t"\x84\x01\n\x0bStoredClose\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x11\n\tclosed_by\x18\x03 \x01(\t"\x0f\n\rCloseResponse"\x1b\n\x19\x46lushNotificationsRequest"\x1c\n\x1a\x46lushNotificationsResponse"\x94\x01\n\x10SubscribeRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x0e\n\x06run_id\x18\x03 \x01(\t\x12\x17\n\x0fsubscription_id\x18\x04 \x01(\t\x12\x12\n\ngeneration\x18\x05 \x01(\r"Y\n\x11SubscribeResponse\x12\x1a\n\x12\x63hain_first_run_id\x18\x01 \x01(\t\x12\x10\n\x08\x61ttached\x18\x02 \x01(\x08\x12\x16\n\x0enewest_counter\x18\x03 \x01(\x03"\x81\x01\n\x12UnsubscribeRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12\x17\n\x0fsubscription_id\x18\x03 \x01(\t\x12\x12\n\ngeneration\x18\x04 \x01(\r"\x15\n\x13UnsubscribeResponse"c\n\x1aWaitForNotificationRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12\x15\n\rafter_counter\x18\x02 \x01(\x03"\xd3\x01\n\x1bWaitForNotificationResponse\x12\x0f\n\x07\x63ounter\x18\x01 \x01(\x03\x12\x10\n\x08position\x18\x02 \x01(\t\x12\x11\n\ttimed_out\x18\x03 \x01(\x08\x12\x0e\n\x06\x63losed\x18\x04 \x01(\x08\x12\x35\n\x0c\x63lose_result\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x06 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\x87\x01\n\x12\x44\x65leteOwnerRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x34\n\nowner_kind\x18\x02 \x01(\x0e\x32 .coresdk.streams.StreamOwnerKind\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t"&\n\x13\x44\x65leteOwnerResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x04"\xbb\x01\n\x15RetireProducerRequest\x12.\n\x06stream\x18\x01 \x01(\x0b\x32\x1e.coresdk.streams.StreamAddress\x12/\n\x05named\x18\x02 \x01(\x0b\x32\x1e.coresdk.streams.NamedProducerH\x00\x12\x35\n\x08\x61\x63tivity\x18\x03 \x01(\x0b\x32!.coresdk.streams.ActivityProducerH\x00\x42\n\n\x08producer"\x18\n\x16RetireProducerResponse"\x16\n\x14\x44\x65scribeStoreRequest"_\n\x15\x44\x65scribeStoreResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x0c\x63\x61pabilities\x18\x02 \x01(\x0b\x32".coresdk.streams.StoreCapabilities"\xc1\x02\n\x11StoreCapabilities\x12\x16\n\x0eproducer_state\x18\x01 \x01(\x08\x12\x11\n\tkept_last\x18\x04 \x01(\x08\x12\r\n\x05holds\x18\x05 \x01(\x08\x12\x13\n\x0b\x63hange_feed\x18\x06 \x01(\x08\x12\x12\n\ncheap_logs\x18\x07 \x01(\x08\x12\x14\n\x0c\x64\x65lete_owner\x18\x08 \x01(\x08\x12\x15\n\rtopic_listing\x18\t \x01(\x08\x12\x11\n\tlong_poll\x18\n \x01(\x08\x12\x17\n\x0f\x64\x65nse_positions\x18\x0b \x01(\x08\x12\x31\n\x0ereplay_horizon\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10max_record_bytes\x18\r \x01(\x04\x12\x17\n\x0fmax_batch_bytes\x18\x0e \x01(\x04J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04"u\n\rStreamFailure\x12\x30\n\x04kind\x18\x01 \x01(\x0e\x32".coresdk.streams.StreamFailureKind\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x0e\n\x06\x63ursor\x18\x03 \x01(\t\x12\x11\n\tclosed_by\x18\x04 \x01(\t"\xa5\x01\n\x12StoreAppendRequest\x12\'\n\x05\x63hain\x18\x01 \x01(\x0b\x32\x18.coresdk.streams.ChainId\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x13\n\x0bproducer_id\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\x03\x12\x10\n\x08sequence\x18\x05 \x01(\x03\x12\x0e\n\x06\x64igest\x18\x06 \x01(\x0c\x12\x0f\n\x07records\x18\x07 \x03(\x0c"O\n\x13StoreAppendResponse\x12\x16\n\x0e\x66irst_position\x18\x01 \x01(\t\x12\x15\n\rlast_position\x18\x02 \x01(\tJ\x04\x08\x03\x10\x04R\x03\x61rm"\xab\x01\n\x10StoreReadRequest\x12\'\n\x05\x63hain\x18\x01 \x01(\x0b\x32\x18.coresdk.streams.ChainId\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x16\n\x0e\x61\x66ter_position\x18\x03 \x01(\t\x12\'\n\x04wait\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x13\n\x0bmax_records\x18\x05 \x01(\rJ\x04\x08\x06\x10\x07R\x03\x61rm"0\n\x0cStoredRecord\x12\x10\n\x08position\x18\x01 \x01(\t\x12\x0e\n\x06record\x18\x02 \x01(\x0c"\x8d\x01\n\x11StoreReadResponse\x12.\n\x07records\x18\x01 \x03(\x0b\x32\x1d.coresdk.streams.StoredRecord\x12\x0e\n\x06\x63losed\x18\x02 \x01(\x08\x12+\n\x05\x63lose\x18\x04 \x01(\x0b\x32\x1c.coresdk.streams.StoredCloseJ\x04\x08\x03\x10\x04R\x05\x61rmed"L\n\x12StoreLatestRequest\x12\'\n\x05\x63hain\x18\x01 \x01(\x0b\x32\x18.coresdk.streams.ChainId\x12\r\n\x05topic\x18\x02 \x01(\t"\'\n\x13StoreLatestResponse\x12\x10\n\x08position\x18\x01 \x01(\t"\xf6\x03\n\x1aPublishWorkflowTaskRequest\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x11\n\tworker_id\x18\x02 \x01(\t\x12\x12\n\ntask_queue\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x05 \x01(\t\x12\x0e\n\x06run_id\x18\x06 \x01(\t\x12\x1e\n\x16\x66irst_execution_run_id\x18\x07 \x01(\t\x12\x0c\n\x04\x63ron\x18\x08 \x01(\x08\x12\x18\n\x10has_retry_policy\x18\t \x01(\x08\x12\x1d\n\x15task_started_event_id\x18\n \x01(\x03\x12\x17\n\x0f\x66\x61iled_attempts\x18\x0b \x01(\r\x12#\n\x1b\x63ompleted_started_event_ids\x18\x0c \x03(\x03\x12.\n\x07records\x18\r \x03(\x0b\x32\x1d.coresdk.streams.OutputRecord\x12\x42\n\x10terminal_command\x18\x0e \x01(\x0e\x32(.coresdk.streams.WorkflowTerminalCommand\x12I\n\x19resolved_owner_activities\x18\x0f \x03(\x0b\x32&.coresdk.streams.ResolvedOwnerActivity"\x9a\x01\n\x15ResolvedOwnerActivity\x12\x13\n\x0b\x61\x63tivity_id\x18\x01 \x01(\t\x12\x39\n\x07outcome\x18\x02 \x01(\x0e\x32(.coresdk.streams.ResolvedActivityOutcome\x12\x31\n\x07\x66\x61ilure\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"\xce\x01\n\x0cOutputRecord\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x37\n\x04kind\x18\x02 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamRecordKind\x12-\n\x04\x62ody\x18\x03 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x14\n\x0c\x63ontent_hash\x18\x04 \x01(\x0c\x12\x31\n\x04link\x18\x05 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink"5\n\x1bPublishWorkflowTaskResponse\x12\x16\n\x0e\x64ropped_topics\x18\x01 \x03(\t"Y\n\x11RunEvictedRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12\x0e\n\x06run_id\x18\x02 \x01(\t\x12!\n\x19workflow_execution_ending\x18\x03 \x01(\x08"\x14\n\x12RunEvictedResponse"*\n\x15ShutdownWorkerRequest\x12\x11\n\tworker_id\x18\x01 \x01(\t"\x18\n\x16ShutdownWorkerResponse*\x9d\x01\n\x0fStreamOwnerKind\x12!\n\x1dSTREAM_OWNER_KIND_UNSPECIFIED\x10\x00\x12\x1e\n\x1aSTREAM_OWNER_KIND_WORKFLOW\x10\x01\x12\x1e\n\x1aSTREAM_OWNER_KIND_ACTIVITY\x10\x02\x12\'\n#STREAM_OWNER_KIND_WORKFLOW_ACTIVITY\x10\x03*\xbe\x04\n\x11StreamFailureKind\x12#\n\x1fSTREAM_FAILURE_KIND_UNSPECIFIED\x10\x00\x12*\n&STREAM_FAILURE_KIND_PRODUCER_DIVERGENT\x10\x01\x12&\n"STREAM_FAILURE_KIND_PRODUCER_STALE\x10\x02\x12\'\n#STREAM_FAILURE_KIND_OUTCOME_UNKNOWN\x10\x03\x12\x1f\n\x1bSTREAM_FAILURE_KIND_REFUSED\x10\x04\x12\x1e\n\x1aSTREAM_FAILURE_KIND_CLOSED\x10\x05\x12\x1e\n\x1aSTREAM_FAILURE_KIND_CURSOR\x10\x06\x12\x1f\n\x1bSTREAM_FAILURE_KIND_EXPIRED\x10\x07\x12!\n\x1dSTREAM_FAILURE_KIND_NOT_FOUND\x10\x08\x12\x1e\n\x1aSTREAM_FAILURE_KIND_RECORD\x10\t\x12\x1f\n\x1bSTREAM_FAILURE_KIND_STORAGE\x10\n\x12#\n\x1fSTREAM_FAILURE_KIND_UNSUPPORTED\x10\x0b\x12(\n$STREAM_FAILURE_KIND_INVALID_ARGUMENT\x10\x0c\x12\'\n#STREAM_FAILURE_KIND_REPLAY_MISMATCH\x10\r\x12)\n%STREAM_FAILURE_KIND_REPLAY_RANGE_LOST\x10\x0e*\xbc\x01\n\x17ResolvedActivityOutcome\x12)\n%RESOLVED_ACTIVITY_OUTCOME_UNSPECIFIED\x10\x00\x12\'\n#RESOLVED_ACTIVITY_OUTCOME_COMPLETED\x10\x01\x12$\n RESOLVED_ACTIVITY_OUTCOME_FAILED\x10\x02\x12\'\n#RESOLVED_ACTIVITY_OUTCOME_CANCELLED\x10\x03*\xe5\x01\n\x17WorkflowTerminalCommand\x12)\n%WORKFLOW_TERMINAL_COMMAND_UNSPECIFIED\x10\x00\x12&\n"WORKFLOW_TERMINAL_COMMAND_COMPLETE\x10\x01\x12"\n\x1eWORKFLOW_TERMINAL_COMMAND_FAIL\x10\x02\x12$\n WORKFLOW_TERMINAL_COMMAND_CANCEL\x10\x03\x12-\n)WORKFLOW_TERMINAL_COMMAND_CONTINUE_AS_NEW\x10\x04\x32\xf2\r\n\rStreamService\x12I\n\x06\x41ppend\x12\x1e.coresdk.streams.AppendRequest\x1a\x1f.coresdk.streams.AppendResponse\x12\x43\n\x04Read\x12\x1c.coresdk.streams.ReadRequest\x1a\x1d.coresdk.streams.ReadResponse\x12I\n\x06Latest\x12\x1e.coresdk.streams.LatestRequest\x1a\x1f.coresdk.streams.LatestResponse\x12\x46\n\x05\x43lose\x12\x1d.coresdk.streams.CloseRequest\x1a\x1e.coresdk.streams.CloseResponse\x12X\n\x0b\x44\x65leteOwner\x12#.coresdk.streams.DeleteOwnerRequest\x1a$.coresdk.streams.DeleteOwnerResponse\x12\x61\n\x0eRetireProducer\x12&.coresdk.streams.RetireProducerRequest\x1a\'.coresdk.streams.RetireProducerResponse\x12m\n\x12\x46lushNotifications\x12*.coresdk.streams.FlushNotificationsRequest\x1a+.coresdk.streams.FlushNotificationsResponse\x12R\n\tSubscribe\x12!.coresdk.streams.SubscribeRequest\x1a".coresdk.streams.SubscribeResponse\x12X\n\x0bUnsubscribe\x12#.coresdk.streams.UnsubscribeRequest\x1a$.coresdk.streams.UnsubscribeResponse\x12p\n\x13WaitForNotification\x12+.coresdk.streams.WaitForNotificationRequest\x1a,.coresdk.streams.WaitForNotificationResponse\x12\x99\x01\n\x16\x44\x65scribeStreamNotifier\x12>.temporal.api.workflowservice.v1.DescribeStreamNotifierRequest\x1a?.temporal.api.workflowservice.v1.DescribeStreamNotifierResponse\x12M\n\tReadRange\x12!.coresdk.streams.ReadRangeRequest\x1a\x1d.coresdk.streams.ReadResponse\x12[\n\x0cReleaseFloor\x12$.coresdk.streams.ReleaseFloorRequest\x1a%.coresdk.streams.ReleaseFloorResponse\x12I\n\x06\x46ollow\x12\x1e.coresdk.streams.FollowRequest\x1a\x1f.coresdk.streams.FollowResponse\x12S\n\x0b\x46ollowRange\x12#.coresdk.streams.FollowRangeRequest\x1a\x1f.coresdk.streams.FollowResponse\x12^\n\rDescribeStore\x12%.coresdk.streams.DescribeStoreRequest\x1a&.coresdk.streams.DescribeStoreResponse\x12p\n\x13PublishWorkflowTask\x12+.coresdk.streams.PublishWorkflowTaskRequest\x1a,.coresdk.streams.PublishWorkflowTaskResponse\x12U\n\nRunEvicted\x12".coresdk.streams.RunEvictedRequest\x1a#.coresdk.streams.RunEvictedResponse\x12\x61\n\x0eShutdownWorker\x12&.coresdk.streams.ShutdownWorkerRequest\x1a\'.coresdk.streams.ShutdownWorkerResponseB-\xea\x02*Temporalio::Internal::Bridge::Api::Streamsb\x06proto3' ) _STREAMOWNERKIND = DESCRIPTOR.enum_types_by_name["StreamOwnerKind"] StreamOwnerKind = enum_type_wrapper.EnumTypeWrapper(_STREAMOWNERKIND) _STREAMFAILUREKIND = DESCRIPTOR.enum_types_by_name["StreamFailureKind"] StreamFailureKind = enum_type_wrapper.EnumTypeWrapper(_STREAMFAILUREKIND) +_RESOLVEDACTIVITYOUTCOME = DESCRIPTOR.enum_types_by_name["ResolvedActivityOutcome"] +ResolvedActivityOutcome = enum_type_wrapper.EnumTypeWrapper(_RESOLVEDACTIVITYOUTCOME) _WORKFLOWTERMINALCOMMAND = DESCRIPTOR.enum_types_by_name["WorkflowTerminalCommand"] WorkflowTerminalCommand = enum_type_wrapper.EnumTypeWrapper(_WORKFLOWTERMINALCOMMAND) STREAM_OWNER_KIND_UNSPECIFIED = 0 STREAM_OWNER_KIND_WORKFLOW = 1 +STREAM_OWNER_KIND_ACTIVITY = 2 +STREAM_OWNER_KIND_WORKFLOW_ACTIVITY = 3 STREAM_FAILURE_KIND_UNSPECIFIED = 0 STREAM_FAILURE_KIND_PRODUCER_DIVERGENT = 1 STREAM_FAILURE_KIND_PRODUCER_STALE = 2 @@ -49,6 +60,12 @@ STREAM_FAILURE_KIND_STORAGE = 10 STREAM_FAILURE_KIND_UNSUPPORTED = 11 STREAM_FAILURE_KIND_INVALID_ARGUMENT = 12 +STREAM_FAILURE_KIND_REPLAY_MISMATCH = 13 +STREAM_FAILURE_KIND_REPLAY_RANGE_LOST = 14 +RESOLVED_ACTIVITY_OUTCOME_UNSPECIFIED = 0 +RESOLVED_ACTIVITY_OUTCOME_COMPLETED = 1 +RESOLVED_ACTIVITY_OUTCOME_FAILED = 2 +RESOLVED_ACTIVITY_OUTCOME_CANCELLED = 3 WORKFLOW_TERMINAL_COMMAND_UNSPECIFIED = 0 WORKFLOW_TERMINAL_COMMAND_COMPLETE = 1 WORKFLOW_TERMINAL_COMMAND_FAIL = 2 @@ -67,18 +84,43 @@ _APPENDREQUEST = DESCRIPTOR.message_types_by_name["AppendRequest"] _APPENDRESPONSE = DESCRIPTOR.message_types_by_name["AppendResponse"] _READREQUEST = DESCRIPTOR.message_types_by_name["ReadRequest"] +_READSUBSCRIBER = DESCRIPTOR.message_types_by_name["ReadSubscriber"] _SUPERSESSION = DESCRIPTOR.message_types_by_name["Supersession"] _READRECORD = DESCRIPTOR.message_types_by_name["ReadRecord"] _READRESPONSE = DESCRIPTOR.message_types_by_name["ReadResponse"] +_READRANGEREQUEST = DESCRIPTOR.message_types_by_name["ReadRangeRequest"] +_RELEASEFLOORREQUEST = DESCRIPTOR.message_types_by_name["ReleaseFloorRequest"] +_RELEASEFLOORRESPONSE = DESCRIPTOR.message_types_by_name["ReleaseFloorResponse"] _FOLLOWREQUEST = DESCRIPTOR.message_types_by_name["FollowRequest"] +_FOLLOWSUBSCRIBER = DESCRIPTOR.message_types_by_name["FollowSubscriber"] _FOLLOWEDRECORD = DESCRIPTOR.message_types_by_name["FollowedRecord"] _LINKSTATE = DESCRIPTOR.message_types_by_name["LinkState"] _FOLLOWSOURCE = DESCRIPTOR.message_types_by_name["FollowSource"] +_SOURCERANGE = DESCRIPTOR.message_types_by_name["SourceRange"] +_SOURCEWAKE = DESCRIPTOR.message_types_by_name["SourceWake"] _FOLLOWRESPONSE = DESCRIPTOR.message_types_by_name["FollowResponse"] +_FOLLOWRANGEREQUEST = DESCRIPTOR.message_types_by_name["FollowRangeRequest"] _LATESTREQUEST = DESCRIPTOR.message_types_by_name["LatestRequest"] _LATESTRESPONSE = DESCRIPTOR.message_types_by_name["LatestResponse"] _CLOSEREQUEST = DESCRIPTOR.message_types_by_name["CloseRequest"] +_STOREDCLOSE = DESCRIPTOR.message_types_by_name["StoredClose"] _CLOSERESPONSE = DESCRIPTOR.message_types_by_name["CloseResponse"] +_FLUSHNOTIFICATIONSREQUEST = DESCRIPTOR.message_types_by_name[ + "FlushNotificationsRequest" +] +_FLUSHNOTIFICATIONSRESPONSE = DESCRIPTOR.message_types_by_name[ + "FlushNotificationsResponse" +] +_SUBSCRIBEREQUEST = DESCRIPTOR.message_types_by_name["SubscribeRequest"] +_SUBSCRIBERESPONSE = DESCRIPTOR.message_types_by_name["SubscribeResponse"] +_UNSUBSCRIBEREQUEST = DESCRIPTOR.message_types_by_name["UnsubscribeRequest"] +_UNSUBSCRIBERESPONSE = DESCRIPTOR.message_types_by_name["UnsubscribeResponse"] +_WAITFORNOTIFICATIONREQUEST = DESCRIPTOR.message_types_by_name[ + "WaitForNotificationRequest" +] +_WAITFORNOTIFICATIONRESPONSE = DESCRIPTOR.message_types_by_name[ + "WaitForNotificationResponse" +] _DELETEOWNERREQUEST = DESCRIPTOR.message_types_by_name["DeleteOwnerRequest"] _DELETEOWNERRESPONSE = DESCRIPTOR.message_types_by_name["DeleteOwnerResponse"] _RETIREPRODUCERREQUEST = DESCRIPTOR.message_types_by_name["RetireProducerRequest"] @@ -97,6 +139,7 @@ _PUBLISHWORKFLOWTASKREQUEST = DESCRIPTOR.message_types_by_name[ "PublishWorkflowTaskRequest" ] +_RESOLVEDOWNERACTIVITY = DESCRIPTOR.message_types_by_name["ResolvedOwnerActivity"] _OUTPUTRECORD = DESCRIPTOR.message_types_by_name["OutputRecord"] _PUBLISHWORKFLOWTASKRESPONSE = DESCRIPTOR.message_types_by_name[ "PublishWorkflowTaskResponse" @@ -227,6 +270,17 @@ ) _sym_db.RegisterMessage(ReadRequest) +ReadSubscriber = _reflection.GeneratedProtocolMessageType( + "ReadSubscriber", + (_message.Message,), + { + "DESCRIPTOR": _READSUBSCRIBER, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.ReadSubscriber) + }, +) +_sym_db.RegisterMessage(ReadSubscriber) + Supersession = _reflection.GeneratedProtocolMessageType( "Supersession", (_message.Message,), @@ -260,6 +314,39 @@ ) _sym_db.RegisterMessage(ReadResponse) +ReadRangeRequest = _reflection.GeneratedProtocolMessageType( + "ReadRangeRequest", + (_message.Message,), + { + "DESCRIPTOR": _READRANGEREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.ReadRangeRequest) + }, +) +_sym_db.RegisterMessage(ReadRangeRequest) + +ReleaseFloorRequest = _reflection.GeneratedProtocolMessageType( + "ReleaseFloorRequest", + (_message.Message,), + { + "DESCRIPTOR": _RELEASEFLOORREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.ReleaseFloorRequest) + }, +) +_sym_db.RegisterMessage(ReleaseFloorRequest) + +ReleaseFloorResponse = _reflection.GeneratedProtocolMessageType( + "ReleaseFloorResponse", + (_message.Message,), + { + "DESCRIPTOR": _RELEASEFLOORRESPONSE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.ReleaseFloorResponse) + }, +) +_sym_db.RegisterMessage(ReleaseFloorResponse) + FollowRequest = _reflection.GeneratedProtocolMessageType( "FollowRequest", (_message.Message,), @@ -271,6 +358,17 @@ ) _sym_db.RegisterMessage(FollowRequest) +FollowSubscriber = _reflection.GeneratedProtocolMessageType( + "FollowSubscriber", + (_message.Message,), + { + "DESCRIPTOR": _FOLLOWSUBSCRIBER, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.FollowSubscriber) + }, +) +_sym_db.RegisterMessage(FollowSubscriber) + FollowedRecord = _reflection.GeneratedProtocolMessageType( "FollowedRecord", (_message.Message,), @@ -304,6 +402,28 @@ ) _sym_db.RegisterMessage(FollowSource) +SourceRange = _reflection.GeneratedProtocolMessageType( + "SourceRange", + (_message.Message,), + { + "DESCRIPTOR": _SOURCERANGE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.SourceRange) + }, +) +_sym_db.RegisterMessage(SourceRange) + +SourceWake = _reflection.GeneratedProtocolMessageType( + "SourceWake", + (_message.Message,), + { + "DESCRIPTOR": _SOURCEWAKE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.SourceWake) + }, +) +_sym_db.RegisterMessage(SourceWake) + FollowResponse = _reflection.GeneratedProtocolMessageType( "FollowResponse", (_message.Message,), @@ -315,6 +435,17 @@ ) _sym_db.RegisterMessage(FollowResponse) +FollowRangeRequest = _reflection.GeneratedProtocolMessageType( + "FollowRangeRequest", + (_message.Message,), + { + "DESCRIPTOR": _FOLLOWRANGEREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.FollowRangeRequest) + }, +) +_sym_db.RegisterMessage(FollowRangeRequest) + LatestRequest = _reflection.GeneratedProtocolMessageType( "LatestRequest", (_message.Message,), @@ -348,6 +479,17 @@ ) _sym_db.RegisterMessage(CloseRequest) +StoredClose = _reflection.GeneratedProtocolMessageType( + "StoredClose", + (_message.Message,), + { + "DESCRIPTOR": _STOREDCLOSE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.StoredClose) + }, +) +_sym_db.RegisterMessage(StoredClose) + CloseResponse = _reflection.GeneratedProtocolMessageType( "CloseResponse", (_message.Message,), @@ -359,6 +501,94 @@ ) _sym_db.RegisterMessage(CloseResponse) +FlushNotificationsRequest = _reflection.GeneratedProtocolMessageType( + "FlushNotificationsRequest", + (_message.Message,), + { + "DESCRIPTOR": _FLUSHNOTIFICATIONSREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.FlushNotificationsRequest) + }, +) +_sym_db.RegisterMessage(FlushNotificationsRequest) + +FlushNotificationsResponse = _reflection.GeneratedProtocolMessageType( + "FlushNotificationsResponse", + (_message.Message,), + { + "DESCRIPTOR": _FLUSHNOTIFICATIONSRESPONSE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.FlushNotificationsResponse) + }, +) +_sym_db.RegisterMessage(FlushNotificationsResponse) + +SubscribeRequest = _reflection.GeneratedProtocolMessageType( + "SubscribeRequest", + (_message.Message,), + { + "DESCRIPTOR": _SUBSCRIBEREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.SubscribeRequest) + }, +) +_sym_db.RegisterMessage(SubscribeRequest) + +SubscribeResponse = _reflection.GeneratedProtocolMessageType( + "SubscribeResponse", + (_message.Message,), + { + "DESCRIPTOR": _SUBSCRIBERESPONSE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.SubscribeResponse) + }, +) +_sym_db.RegisterMessage(SubscribeResponse) + +UnsubscribeRequest = _reflection.GeneratedProtocolMessageType( + "UnsubscribeRequest", + (_message.Message,), + { + "DESCRIPTOR": _UNSUBSCRIBEREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.UnsubscribeRequest) + }, +) +_sym_db.RegisterMessage(UnsubscribeRequest) + +UnsubscribeResponse = _reflection.GeneratedProtocolMessageType( + "UnsubscribeResponse", + (_message.Message,), + { + "DESCRIPTOR": _UNSUBSCRIBERESPONSE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.UnsubscribeResponse) + }, +) +_sym_db.RegisterMessage(UnsubscribeResponse) + +WaitForNotificationRequest = _reflection.GeneratedProtocolMessageType( + "WaitForNotificationRequest", + (_message.Message,), + { + "DESCRIPTOR": _WAITFORNOTIFICATIONREQUEST, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.WaitForNotificationRequest) + }, +) +_sym_db.RegisterMessage(WaitForNotificationRequest) + +WaitForNotificationResponse = _reflection.GeneratedProtocolMessageType( + "WaitForNotificationResponse", + (_message.Message,), + { + "DESCRIPTOR": _WAITFORNOTIFICATIONRESPONSE, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.WaitForNotificationResponse) + }, +) +_sym_db.RegisterMessage(WaitForNotificationResponse) + DeleteOwnerRequest = _reflection.GeneratedProtocolMessageType( "DeleteOwnerRequest", (_message.Message,), @@ -535,6 +765,17 @@ ) _sym_db.RegisterMessage(PublishWorkflowTaskRequest) +ResolvedOwnerActivity = _reflection.GeneratedProtocolMessageType( + "ResolvedOwnerActivity", + (_message.Message,), + { + "DESCRIPTOR": _RESOLVEDOWNERACTIVITY, + "__module__": "temporal.sdk.core.streams.streams_pb2", + # @@protoc_insertion_point(class_scope:coresdk.streams.ResolvedOwnerActivity) + }, +) +_sym_db.RegisterMessage(ResolvedOwnerActivity) + OutputRecord = _reflection.GeneratedProtocolMessageType( "OutputRecord", (_message.Message,), @@ -607,104 +848,142 @@ DESCRIPTOR._serialized_options = ( b"\352\002*Temporalio::Internal::Bridge::Api::Streams" ) - _STREAMOWNERKIND._serialized_start = 5669 - _STREAMOWNERKIND._serialized_end = 5753 - _STREAMFAILUREKIND._serialized_start = 5756 - _STREAMFAILUREKIND._serialized_end = 6246 - _WORKFLOWTERMINALCOMMAND._serialized_start = 6249 - _WORKFLOWTERMINALCOMMAND._serialized_end = 6478 - _STREAMSTORECONFIG._serialized_start = 170 - _STREAMSTORECONFIG._serialized_end = 358 - _REDISSTORECONFIG._serialized_start = 361 - _REDISSTORECONFIG._serialized_end = 577 - _MEMORYSTORECONFIG._serialized_start = 579 - _MEMORYSTORECONFIG._serialized_end = 656 - _STREAMADDRESS._serialized_start = 659 - _STREAMADDRESS._serialized_end = 799 - _CHAINID._serialized_start = 801 - _CHAINID._serialized_end = 872 - _NAMEDPRODUCER._serialized_start = 874 - _NAMEDPRODUCER._serialized_end = 995 - _ACTIVITYPRODUCER._serialized_start = 997 - _ACTIVITYPRODUCER._serialized_end = 1090 - _APPENDRECORD._serialized_start = 1093 - _APPENDRECORD._serialized_end = 1284 - _APPENDREQUEST._serialized_start = 1287 - _APPENDREQUEST._serialized_end = 1548 - _APPENDRESPONSE._serialized_start = 1550 - _APPENDRESPONSE._serialized_end = 1609 - _READREQUEST._serialized_start = 1612 - _READREQUEST._serialized_end = 1765 - _SUPERSESSION._serialized_start = 1767 - _SUPERSESSION._serialized_end = 1860 - _READRECORD._serialized_start = 1863 - _READRECORD._serialized_end = 2026 - _READRESPONSE._serialized_start = 2028 - _READRESPONSE._serialized_end = 2155 - _FOLLOWREQUEST._serialized_start = 2158 - _FOLLOWREQUEST._serialized_end = 2350 - _FOLLOWEDRECORD._serialized_start = 2353 - _FOLLOWEDRECORD._serialized_end = 2490 - _LINKSTATE._serialized_start = 2493 - _LINKSTATE._serialized_end = 2767 - _LINKSTATE_KIND._serialized_start = 2667 - _LINKSTATE_KIND._serialized_end = 2767 - _FOLLOWSOURCE._serialized_start = 2769 - _FOLLOWSOURCE._serialized_end = 2892 - _FOLLOWRESPONSE._serialized_start = 2895 - _FOLLOWRESPONSE._serialized_end = 3038 - _LATESTREQUEST._serialized_start = 3040 - _LATESTREQUEST._serialized_end = 3103 - _LATESTRESPONSE._serialized_start = 3105 - _LATESTRESPONSE._serialized_end = 3137 - _CLOSEREQUEST._serialized_start = 3139 - _CLOSEREQUEST._serialized_end = 3201 - _CLOSERESPONSE._serialized_start = 3203 - _CLOSERESPONSE._serialized_end = 3218 - _DELETEOWNERREQUEST._serialized_start = 3220 - _DELETEOWNERREQUEST._serialized_end = 3334 - _DELETEOWNERRESPONSE._serialized_start = 3336 - _DELETEOWNERRESPONSE._serialized_end = 3374 - _RETIREPRODUCERREQUEST._serialized_start = 3377 - _RETIREPRODUCERREQUEST._serialized_end = 3564 - _RETIREPRODUCERRESPONSE._serialized_start = 3566 - _RETIREPRODUCERRESPONSE._serialized_end = 3590 - _DESCRIBESTOREREQUEST._serialized_start = 3592 - _DESCRIBESTOREREQUEST._serialized_end = 3614 - _DESCRIBESTORERESPONSE._serialized_start = 3616 - _DESCRIBESTORERESPONSE._serialized_end = 3711 - _STORECAPABILITIES._serialized_start = 3714 - _STORECAPABILITIES._serialized_end = 4035 - _STREAMFAILURE._serialized_start = 4037 - _STREAMFAILURE._serialized_end = 4135 - _STOREAPPENDREQUEST._serialized_start = 4138 - _STOREAPPENDREQUEST._serialized_end = 4303 - _STOREAPPENDRESPONSE._serialized_start = 4305 - _STOREAPPENDRESPONSE._serialized_end = 4373 - _STOREREADREQUEST._serialized_start = 4376 - _STOREREADREQUEST._serialized_end = 4536 - _STOREDRECORD._serialized_start = 4538 - _STOREDRECORD._serialized_end = 4586 - _STOREREADRESPONSE._serialized_start = 4588 - _STOREREADRESPONSE._serialized_end = 4671 - _STORELATESTREQUEST._serialized_start = 4673 - _STORELATESTREQUEST._serialized_end = 4749 - _STORELATESTRESPONSE._serialized_start = 4751 - _STORELATESTRESPONSE._serialized_end = 4790 - _PUBLISHWORKFLOWTASKREQUEST._serialized_start = 4793 - _PUBLISHWORKFLOWTASKREQUEST._serialized_end = 5220 - _OUTPUTRECORD._serialized_start = 5223 - _OUTPUTRECORD._serialized_end = 5429 - _PUBLISHWORKFLOWTASKRESPONSE._serialized_start = 5431 - _PUBLISHWORKFLOWTASKRESPONSE._serialized_end = 5484 - _RUNEVICTEDREQUEST._serialized_start = 5486 - _RUNEVICTEDREQUEST._serialized_end = 5575 - _RUNEVICTEDRESPONSE._serialized_start = 5577 - _RUNEVICTEDRESPONSE._serialized_end = 5597 - _SHUTDOWNWORKERREQUEST._serialized_start = 5599 - _SHUTDOWNWORKERREQUEST._serialized_end = 5641 - _SHUTDOWNWORKERRESPONSE._serialized_start = 5643 - _SHUTDOWNWORKERRESPONSE._serialized_end = 5667 - _STREAMSERVICE._serialized_start = 6481 - _STREAMSERVICE._serialized_end = 7447 + _STREAMOWNERKIND._serialized_start = 9494 + _STREAMOWNERKIND._serialized_end = 9651 + _STREAMFAILUREKIND._serialized_start = 9654 + _STREAMFAILUREKIND._serialized_end = 10228 + _RESOLVEDACTIVITYOUTCOME._serialized_start = 10231 + _RESOLVEDACTIVITYOUTCOME._serialized_end = 10419 + _WORKFLOWTERMINALCOMMAND._serialized_start = 10422 + _WORKFLOWTERMINALCOMMAND._serialized_end = 10651 + _STREAMSTORECONFIG._serialized_start = 305 + _STREAMSTORECONFIG._serialized_end = 569 + _REDISSTORECONFIG._serialized_start = 572 + _REDISSTORECONFIG._serialized_end = 892 + _MEMORYSTORECONFIG._serialized_start = 894 + _MEMORYSTORECONFIG._serialized_end = 971 + _STREAMADDRESS._serialized_start = 974 + _STREAMADDRESS._serialized_end = 1135 + _CHAINID._serialized_start = 1138 + _CHAINID._serialized_end = 1284 + _NAMEDPRODUCER._serialized_start = 1286 + _NAMEDPRODUCER._serialized_end = 1407 + _ACTIVITYPRODUCER._serialized_start = 1410 + _ACTIVITYPRODUCER._serialized_end = 1561 + _APPENDRECORD._serialized_start = 1564 + _APPENDRECORD._serialized_end = 1755 + _APPENDREQUEST._serialized_start = 1758 + _APPENDREQUEST._serialized_end = 2019 + _APPENDRESPONSE._serialized_start = 2021 + _APPENDRESPONSE._serialized_end = 2080 + _READREQUEST._serialized_start = 2083 + _READREQUEST._serialized_end = 2341 + _READSUBSCRIBER._serialized_start = 2343 + _READSUBSCRIBER._serialized_end = 2441 + _SUPERSESSION._serialized_start = 2443 + _SUPERSESSION._serialized_end = 2536 + _READRECORD._serialized_start = 2539 + _READRECORD._serialized_end = 2702 + _READRESPONSE._serialized_start = 2705 + _READRESPONSE._serialized_end = 3048 + _READRANGEREQUEST._serialized_start = 3051 + _READRANGEREQUEST._serialized_end = 3281 + _RELEASEFLOORREQUEST._serialized_start = 3283 + _RELEASEFLOORREQUEST._serialized_end = 3402 + _RELEASEFLOORRESPONSE._serialized_start = 3404 + _RELEASEFLOORRESPONSE._serialized_end = 3426 + _FOLLOWREQUEST._serialized_start = 3429 + _FOLLOWREQUEST._serialized_end = 3698 + _FOLLOWSUBSCRIBER._serialized_start = 3700 + _FOLLOWSUBSCRIBER._serialized_end = 3804 + _FOLLOWEDRECORD._serialized_start = 3807 + _FOLLOWEDRECORD._serialized_end = 3944 + _LINKSTATE._serialized_start = 3947 + _LINKSTATE._serialized_end = 4333 + _LINKSTATE_KIND._serialized_start = 4233 + _LINKSTATE_KIND._serialized_end = 4333 + _FOLLOWSOURCE._serialized_start = 4335 + _FOLLOWSOURCE._serialized_end = 4458 + _SOURCERANGE._serialized_start = 4461 + _SOURCERANGE._serialized_end = 4819 + _SOURCEWAKE._serialized_start = 4821 + _SOURCEWAKE._serialized_end = 4894 + _FOLLOWRESPONSE._serialized_start = 4897 + _FOLLOWRESPONSE._serialized_end = 5265 + _FOLLOWRANGEREQUEST._serialized_start = 5268 + _FOLLOWRANGEREQUEST._serialized_end = 5482 + _LATESTREQUEST._serialized_start = 5484 + _LATESTREQUEST._serialized_end = 5547 + _LATESTRESPONSE._serialized_start = 5549 + _LATESTRESPONSE._serialized_end = 5581 + _CLOSEREQUEST._serialized_start = 5584 + _CLOSEREQUEST._serialized_end = 5765 + _STOREDCLOSE._serialized_start = 5768 + _STOREDCLOSE._serialized_end = 5900 + _CLOSERESPONSE._serialized_start = 5902 + _CLOSERESPONSE._serialized_end = 5917 + _FLUSHNOTIFICATIONSREQUEST._serialized_start = 5919 + _FLUSHNOTIFICATIONSREQUEST._serialized_end = 5946 + _FLUSHNOTIFICATIONSRESPONSE._serialized_start = 5948 + _FLUSHNOTIFICATIONSRESPONSE._serialized_end = 5976 + _SUBSCRIBEREQUEST._serialized_start = 5979 + _SUBSCRIBEREQUEST._serialized_end = 6127 + _SUBSCRIBERESPONSE._serialized_start = 6129 + _SUBSCRIBERESPONSE._serialized_end = 6218 + _UNSUBSCRIBEREQUEST._serialized_start = 6221 + _UNSUBSCRIBEREQUEST._serialized_end = 6350 + _UNSUBSCRIBERESPONSE._serialized_start = 6352 + _UNSUBSCRIBERESPONSE._serialized_end = 6373 + _WAITFORNOTIFICATIONREQUEST._serialized_start = 6375 + _WAITFORNOTIFICATIONREQUEST._serialized_end = 6474 + _WAITFORNOTIFICATIONRESPONSE._serialized_start = 6477 + _WAITFORNOTIFICATIONRESPONSE._serialized_end = 6688 + _DELETEOWNERREQUEST._serialized_start = 6691 + _DELETEOWNERREQUEST._serialized_end = 6826 + _DELETEOWNERRESPONSE._serialized_start = 6828 + _DELETEOWNERRESPONSE._serialized_end = 6866 + _RETIREPRODUCERREQUEST._serialized_start = 6869 + _RETIREPRODUCERREQUEST._serialized_end = 7056 + _RETIREPRODUCERRESPONSE._serialized_start = 7058 + _RETIREPRODUCERRESPONSE._serialized_end = 7082 + _DESCRIBESTOREREQUEST._serialized_start = 7084 + _DESCRIBESTOREREQUEST._serialized_end = 7106 + _DESCRIBESTORERESPONSE._serialized_start = 7108 + _DESCRIBESTORERESPONSE._serialized_end = 7203 + _STORECAPABILITIES._serialized_start = 7206 + _STORECAPABILITIES._serialized_end = 7527 + _STREAMFAILURE._serialized_start = 7529 + _STREAMFAILURE._serialized_end = 7646 + _STOREAPPENDREQUEST._serialized_start = 7649 + _STOREAPPENDREQUEST._serialized_end = 7814 + _STOREAPPENDRESPONSE._serialized_start = 7816 + _STOREAPPENDRESPONSE._serialized_end = 7895 + _STOREREADREQUEST._serialized_start = 7898 + _STOREREADREQUEST._serialized_end = 8069 + _STOREDRECORD._serialized_start = 8071 + _STOREDRECORD._serialized_end = 8119 + _STOREREADRESPONSE._serialized_start = 8122 + _STOREREADRESPONSE._serialized_end = 8263 + _STORELATESTREQUEST._serialized_start = 8265 + _STORELATESTREQUEST._serialized_end = 8341 + _STORELATESTRESPONSE._serialized_start = 8343 + _STORELATESTRESPONSE._serialized_end = 8382 + _PUBLISHWORKFLOWTASKREQUEST._serialized_start = 8385 + _PUBLISHWORKFLOWTASKREQUEST._serialized_end = 8887 + _RESOLVEDOWNERACTIVITY._serialized_start = 8890 + _RESOLVEDOWNERACTIVITY._serialized_end = 9044 + _OUTPUTRECORD._serialized_start = 9047 + _OUTPUTRECORD._serialized_end = 9253 + _PUBLISHWORKFLOWTASKRESPONSE._serialized_start = 9255 + _PUBLISHWORKFLOWTASKRESPONSE._serialized_end = 9308 + _RUNEVICTEDREQUEST._serialized_start = 9310 + _RUNEVICTEDREQUEST._serialized_end = 9399 + _RUNEVICTEDRESPONSE._serialized_start = 9401 + _RUNEVICTEDRESPONSE._serialized_end = 9421 + _SHUTDOWNWORKERREQUEST._serialized_start = 9423 + _SHUTDOWNWORKERREQUEST._serialized_end = 9465 + _SHUTDOWNWORKERRESPONSE._serialized_start = 9467 + _SHUTDOWNWORKERRESPONSE._serialized_end = 9491 + _STREAMSERVICE._serialized_start = 10654 + _STREAMSERVICE._serialized_end = 12432 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/bridge/proto/streams/streams_pb2.pyi b/temporalio/bridge/proto/streams/streams_pb2.pyi index e14c1a908e..8233d88b5d 100644 --- a/temporalio/bridge/proto/streams/streams_pb2.pyi +++ b/temporalio/bridge/proto/streams/streams_pb2.pyi @@ -13,8 +13,10 @@ import google.protobuf.duration_pb2 import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message +import google.protobuf.timestamp_pb2 import temporalio.api.common.v1.message_pb2 +import temporalio.api.failure.v1.message_pb2 import temporalio.bridge.proto.streams.v1.message_pb2 if sys.version_info >= (3, 10): @@ -37,12 +39,24 @@ class _StreamOwnerKindEnumTypeWrapper( DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor STREAM_OWNER_KIND_UNSPECIFIED: _StreamOwnerKind.ValueType # 0 STREAM_OWNER_KIND_WORKFLOW: _StreamOwnerKind.ValueType # 1 + STREAM_OWNER_KIND_ACTIVITY: _StreamOwnerKind.ValueType # 2 + """A standalone Activity run. It is a chain of one run, so its streams end with the run.""" + STREAM_OWNER_KIND_WORKFLOW_ACTIVITY: _StreamOwnerKind.ValueType # 3 + """An Activity that a Workflow run scheduled. It is a chain of one, keyed by the scheduling run + and the Activity id, so its streams end with the Activity. + """ class StreamOwnerKind(_StreamOwnerKind, metaclass=_StreamOwnerKindEnumTypeWrapper): """What owns a stream. The owner decides when the stream closes.""" STREAM_OWNER_KIND_UNSPECIFIED: StreamOwnerKind.ValueType # 0 STREAM_OWNER_KIND_WORKFLOW: StreamOwnerKind.ValueType # 1 +STREAM_OWNER_KIND_ACTIVITY: StreamOwnerKind.ValueType # 2 +"""A standalone Activity run. It is a chain of one run, so its streams end with the run.""" +STREAM_OWNER_KIND_WORKFLOW_ACTIVITY: StreamOwnerKind.ValueType # 3 +"""An Activity that a Workflow run scheduled. It is a chain of one, keyed by the scheduling run +and the Activity id, so its streams end with the Activity. +""" global___StreamOwnerKind = StreamOwnerKind class _StreamFailureKind: @@ -84,6 +98,14 @@ class _StreamFailureKindEnumTypeWrapper( the same call fails the same way. A lang built before this kind maps it, as any kind it doesn't know, to a storage failure. """ + STREAM_FAILURE_KIND_REPLAY_MISMATCH: _StreamFailureKind.ValueType # 13 + """A replay read found other records than the read it repeats: other content, another count + or another end. Lang reports it as nondeterminism. + """ + STREAM_FAILURE_KIND_REPLAY_RANGE_LOST: _StreamFailureKind.ValueType # 14 + """A replay read found that the store no longer holds the range the read it repeats got + (REC-01), such as records that retention trimmed or a deleted log. + """ class StreamFailureKind( _StreamFailureKind, metaclass=_StreamFailureKindEnumTypeWrapper @@ -120,8 +142,45 @@ STREAM_FAILURE_KIND_INVALID_ARGUMENT: StreamFailureKind.ValueType # 12 the same call fails the same way. A lang built before this kind maps it, as any kind it doesn't know, to a storage failure. """ +STREAM_FAILURE_KIND_REPLAY_MISMATCH: StreamFailureKind.ValueType # 13 +"""A replay read found other records than the read it repeats: other content, another count +or another end. Lang reports it as nondeterminism. +""" +STREAM_FAILURE_KIND_REPLAY_RANGE_LOST: StreamFailureKind.ValueType # 14 +"""A replay read found that the store no longer holds the range the read it repeats got +(REC-01), such as records that retention trimmed or a deleted log. +""" global___StreamFailureKind = StreamFailureKind +class _ResolvedActivityOutcome: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _ResolvedActivityOutcomeEnumTypeWrapper( + google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ + _ResolvedActivityOutcome.ValueType + ], + builtins.type, +): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + RESOLVED_ACTIVITY_OUTCOME_UNSPECIFIED: _ResolvedActivityOutcome.ValueType # 0 + RESOLVED_ACTIVITY_OUTCOME_COMPLETED: _ResolvedActivityOutcome.ValueType # 1 + """The streams close with an empty result.""" + RESOLVED_ACTIVITY_OUTCOME_FAILED: _ResolvedActivityOutcome.ValueType # 2 + RESOLVED_ACTIVITY_OUTCOME_CANCELLED: _ResolvedActivityOutcome.ValueType # 3 + +class ResolvedActivityOutcome( + _ResolvedActivityOutcome, metaclass=_ResolvedActivityOutcomeEnumTypeWrapper +): + """How an owner Activity ended. A Local Activity owns no streams, so a backoff never comes here.""" + +RESOLVED_ACTIVITY_OUTCOME_UNSPECIFIED: ResolvedActivityOutcome.ValueType # 0 +RESOLVED_ACTIVITY_OUTCOME_COMPLETED: ResolvedActivityOutcome.ValueType # 1 +"""The streams close with an empty result.""" +RESOLVED_ACTIVITY_OUTCOME_FAILED: ResolvedActivityOutcome.ValueType # 2 +RESOLVED_ACTIVITY_OUTCOME_CANCELLED: ResolvedActivityOutcome.ValueType # 3 +global___ResolvedActivityOutcome = ResolvedActivityOutcome + class _WorkflowTerminalCommand: ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType @@ -159,11 +218,23 @@ class StreamStoreConfig(google.protobuf.message.Message): REDIS_FIELD_NUMBER: builtins.int MEMORY_FIELD_NUMBER: builtins.int + NOTIFY_ON_APPEND_FIELD_NUMBER: builtins.int + MAX_NOTIFIERS_FIELD_NUMBER: builtins.int OWNER_START_GRACE_FIELD_NUMBER: builtins.int @property def redis(self) -> global___RedisStoreConfig: ... @property def memory(self) -> global___MemoryStoreConfig: ... + notify_on_append: builtins.bool + """Tells each stream's notifier on the server when the stream moves, after every append. That's + what wakes a reader that waits on the notifier. Off by default, since most streams have no + such reader and each notification costs a call. It turns on progress only. Closes reach the + notifier either way. A server without the stream notifier costs one call, and then the + process stops notifying. An append answers only after its notification went, or after a few + failed tries, so a producer that stops before then gets no answer and its retry notifies. + """ + max_notifiers: builtins.int + """How many streams to keep a notifier for, dropping the least recently used. Zero uses 1000.""" @property def owner_start_grace(self) -> google.protobuf.duration_pb2.Duration: """How long a read waits for a Workflow that Temporal doesn't know yet, counted from the read's @@ -176,6 +247,8 @@ class StreamStoreConfig(google.protobuf.message.Message): *, redis: global___RedisStoreConfig | None = ..., memory: global___MemoryStoreConfig | None = ..., + notify_on_append: builtins.bool = ..., + max_notifiers: builtins.int = ..., owner_start_grace: google.protobuf.duration_pb2.Duration | None = ..., ) -> None: ... def HasField( @@ -194,8 +267,12 @@ class StreamStoreConfig(google.protobuf.message.Message): def ClearField( self, field_name: typing_extensions.Literal[ + "max_notifiers", + b"max_notifiers", "memory", b"memory", + "notify_on_append", + b"notify_on_append", "owner_start_grace", b"owner_start_grace", "redis", @@ -221,6 +298,8 @@ class RedisStoreConfig(google.protobuf.message.Message): RETENTION_FIELD_NUMBER: builtins.int BLOCKING_READS_PER_NODE_FIELD_NUMBER: builtins.int RESPONSE_TIMEOUT_FIELD_NUMBER: builtins.int + FLOOR_LEASE_FIELD_NUMBER: builtins.int + FLOOR_RELEASE_GRACE_FIELD_NUMBER: builtins.int PLAIN_FIELD_NUMBER: builtins.int @property def urls( @@ -244,6 +323,14 @@ class RedisStoreConfig(google.protobuf.message.Message): @property def response_timeout(self) -> google.protobuf.duration_pb2.Duration: """How long a short call waits for its reply. Unset uses the default.""" + @property + def floor_lease(self) -> google.protobuf.duration_pb2.Duration: + """How long a positions-only reader holds a stream's records after its last read. Unset uses + `retention`. + """ + @property + def floor_release_grace(self) -> google.protobuf.duration_pb2.Duration: + """How long a hold lasts after its reader released it. Unset keeps one day.""" plain: builtins.bool """Runs with no Lua, so the store keeps no producer state and no last position, and the service takes their fallbacks. For tests of the fallbacks on a real store. @@ -257,12 +344,21 @@ class RedisStoreConfig(google.protobuf.message.Message): retention: google.protobuf.duration_pb2.Duration | None = ..., blocking_reads_per_node: builtins.int = ..., response_timeout: google.protobuf.duration_pb2.Duration | None = ..., + floor_lease: google.protobuf.duration_pb2.Duration | None = ..., + floor_release_grace: google.protobuf.duration_pb2.Duration | None = ..., plain: builtins.bool = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal[ - "response_timeout", b"response_timeout", "retention", b"retention" + "floor_lease", + b"floor_lease", + "floor_release_grace", + b"floor_release_grace", + "response_timeout", + b"response_timeout", + "retention", + b"retention", ], ) -> builtins.bool: ... def ClearField( @@ -272,6 +368,10 @@ class RedisStoreConfig(google.protobuf.message.Message): b"blocking_reads_per_node", "cluster", b"cluster", + "floor_lease", + b"floor_lease", + "floor_release_grace", + b"floor_release_grace", "key_prefix", b"key_prefix", "plain", @@ -324,14 +424,23 @@ class StreamAddress(google.protobuf.message.Message): WORKFLOW_ID_FIELD_NUMBER: builtins.int RUN_ID_FIELD_NUMBER: builtins.int TOPIC_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int namespace: builtins.str owner_kind: global___StreamOwnerKind.ValueType workflow_id: builtins.str + """The owning Workflow, or the Workflow that scheduled a Workflow Activity. Empty for a + standalone Activity owner. + """ run_id: builtins.str """Pins the stream to the run chain that holds this run. Empty follows the chain that holds the - Workflow id when the call starts. + Workflow id when the call starts. For an Activity owner, the Activity run, and empty names + the newest run of the Activity id when the call starts. For a Workflow Activity owner, the + run that scheduled the Activity. It is required, since an Activity id names nothing across + runs. """ topic: builtins.str + activity_id: builtins.str + """The owning Activity. Empty for a Workflow owner.""" def __init__( self, *, @@ -340,10 +449,13 @@ class StreamAddress(google.protobuf.message.Message): workflow_id: builtins.str = ..., run_id: builtins.str = ..., topic: builtins.str = ..., + activity_id: builtins.str = ..., ) -> None: ... def ClearField( self, field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", "namespace", b"namespace", "owner_kind", @@ -361,7 +473,9 @@ global___StreamAddress = StreamAddress class ChainId(google.protobuf.message.Message): """A Workflow's run chain. Its streams are keyed by its first run, so they follow - Continue-as-New, and a new chain on the same Workflow id gets streams of its own. + Continue-as-New, and a new chain on the same Workflow id gets streams of its own. A standalone + Activity run is a chain of one run, with the run as `first_run_id`. A Workflow Activity is a + chain of one, with the scheduling run as `first_run_id`. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -369,23 +483,36 @@ class ChainId(google.protobuf.message.Message): NAMESPACE_FIELD_NUMBER: builtins.int WORKFLOW_ID_FIELD_NUMBER: builtins.int FIRST_RUN_ID_FIELD_NUMBER: builtins.int + OWNER_KIND_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int namespace: builtins.str workflow_id: builtins.str + """Empty for a standalone Activity owner.""" first_run_id: builtins.str + owner_kind: global___StreamOwnerKind.ValueType + """`UNSPECIFIED` is a Workflow owner, so a chain from before the Activity kind stays valid.""" + activity_id: builtins.str + """Empty for a Workflow owner.""" def __init__( self, *, namespace: builtins.str = ..., workflow_id: builtins.str = ..., first_run_id: builtins.str = ..., + owner_kind: global___StreamOwnerKind.ValueType = ..., + activity_id: builtins.str = ..., ) -> None: ... def ClearField( self, field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", "first_run_id", b"first_run_id", "namespace", b"namespace", + "owner_kind", + b"owner_kind", "workflow_id", b"workflow_id", ], @@ -455,10 +582,17 @@ class ActivityProducer(google.protobuf.message.Message): RUN_ID_FIELD_NUMBER: builtins.int ACTIVITY_ID_FIELD_NUMBER: builtins.int ATTEMPT_FIELD_NUMBER: builtins.int + ATTEMPT_STARTED_TIME_FIELD_NUMBER: builtins.int workflow_id: builtins.str run_id: builtins.str activity_id: builtins.str attempt: builtins.int + @property + def attempt_started_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + """When the attempt started, as the Activity task gives it. With it, the service writes the + attempt as `started_unix_ms << 11 | min(attempt, 2047)`, so a later attempt and a reset + attempt both supersede an earlier one. Unset writes `attempt` as it is. + """ def __init__( self, *, @@ -466,7 +600,14 @@ class ActivityProducer(google.protobuf.message.Message): run_id: builtins.str = ..., activity_id: builtins.str = ..., attempt: builtins.int = ..., + attempt_started_time: google.protobuf.timestamp_pb2.Timestamp | None = ..., ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "attempt_started_time", b"attempt_started_time" + ], + ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ @@ -474,6 +615,8 @@ class ActivityProducer(google.protobuf.message.Message): b"activity_id", "attempt", b"attempt", + "attempt_started_time", + b"attempt_started_time", "run_id", b"run_id", "workflow_id", @@ -495,7 +638,7 @@ class AppendRecord(google.protobuf.message.Message): kind: temporalio.bridge.proto.streams.v1.message_pb2.StreamRecordKind.ValueType @property def body(self) -> temporalio.api.common.v1.message_pb2.Payload: - """Set on DATA, and optional on LINK, after lang's payload codec and external storage.""" + """Set on DATA only, after lang's payload codec and external storage.""" content_hash: builtins.bytes """The SHA-256 of the body as the payload converter made it, before the codec. A codec that encrypts with a fresh nonce makes a retry's bytes differ, so a retry is recognized by this. @@ -642,6 +785,9 @@ class ReadRequest(google.protobuf.message.Message): WAIT_FIELD_NUMBER: builtins.int MAX_RECORDS_FIELD_NUMBER: builtins.int STATE_FIELD_NUMBER: builtins.int + FLOOR_HOLDER_FIELD_NUMBER: builtins.int + SUBSCRIBER_FIELD_NUMBER: builtins.int + MAX_BYTES_FIELD_NUMBER: builtins.int @property def stream(self) -> global___StreamAddress: ... after: builtins.str @@ -659,6 +805,23 @@ class ReadRequest(google.protobuf.message.Message): """ state: builtins.bytes """The `state` of the previous answer of the same read. Empty on its first call.""" + floor_holder: builtins.str + """For a positions-only Workflow reader: names the reader, as its run id and its subscription + id. The store holds the records after this read's start against retention for that holder, + until `ReleaseFloor` and its grace, or until the holder's lease passes with no read. + """ + @property + def subscriber(self) -> global___ReadSubscriber: + """Set by a Workflow reader. An answer with no records that is not `done` attaches the reader + idle when this process has not, asks the notifier for one wake after the answer's + `wake_after`, and reads once more when a record landed before the attach. An answer with + records sends nothing, so a reader that keeps up costs the notifier nothing. + """ + max_bytes: builtins.int + """The most stored record bytes one answer holds past its first record. Zero puts no bound. A + Workflow reader that records its answers in History sets it, so an answer stays below the + server's blob size limit. + """ def __init__( self, *, @@ -667,22 +830,33 @@ class ReadRequest(google.protobuf.message.Message): wait: google.protobuf.duration_pb2.Duration | None = ..., max_records: builtins.int = ..., state: builtins.bytes = ..., + floor_holder: builtins.str = ..., + subscriber: global___ReadSubscriber | None = ..., + max_bytes: builtins.int = ..., ) -> None: ... def HasField( self, - field_name: typing_extensions.Literal["stream", b"stream", "wait", b"wait"], + field_name: typing_extensions.Literal[ + "stream", b"stream", "subscriber", b"subscriber", "wait", b"wait" + ], ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ "after", b"after", + "floor_holder", + b"floor_holder", + "max_bytes", + b"max_bytes", "max_records", b"max_records", "state", b"state", "stream", b"stream", + "subscriber", + b"subscriber", "wait", b"wait", ], @@ -690,6 +864,43 @@ class ReadRequest(google.protobuf.message.Message): global___ReadRequest = ReadRequest +class ReadSubscriber(google.protobuf.message.Message): + """The Workflow reader that an idle read wakes, as `SubscribeRequest` names it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + GENERATION_FIELD_NUMBER: builtins.int + workflow_id: builtins.str + run_id: builtins.str + subscription_id: builtins.str + generation: builtins.int + def __init__( + self, + *, + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + subscription_id: builtins.str = ..., + generation: builtins.int = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "generation", + b"generation", + "run_id", + b"run_id", + "subscription_id", + b"subscription_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___ReadSubscriber = ReadSubscriber + class Supersession(google.protobuf.message.Message): """A later attempt of a producer started writing. Readers synthesize it, and no store holds it.""" @@ -788,6 +999,12 @@ class ReadResponse(google.protobuf.message.Message): CURSOR_FIELD_NUMBER: builtins.int STATE_FIELD_NUMBER: builtins.int DONE_FIELD_NUMBER: builtins.int + WAKE_AFTER_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + CLOSED_BY_FIELD_NUMBER: builtins.int + RECORDS_DIGEST_FIELD_NUMBER: builtins.int + CHAIN_FIRST_RUN_ID_FIELD_NUMBER: builtins.int START_CURSOR_FIELD_NUMBER: builtins.int @property def records( @@ -807,9 +1024,32 @@ class ReadResponse(google.protobuf.message.Message): """The owner's chain ended and the read delivered every record the stream retains. No later call returns a record. """ + wake_after: builtins.int + """Set on an answer with no records and not `done`: the notification counter of the read's + position, zero for an empty stream. A notification with a higher counter names a record + after the position, so the reader waits for a counter above this one. One that landed before + the wait started counts. + """ + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """Set with `done` when the stream's topic was closed with a result. A chain close, when the + owner ended with no close, sets none of these three. + """ + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """Set with `done` when the stream's topic was closed with a failure.""" + closed_by: builtins.str + """Set with `done` to the `closed_by` of the topic's first close.""" + records_digest: builtins.bytes + """SHA-256 over the answer's records, as `ReadRange` checks it: per record its cursor, its stale + flag, and for a stored record its kind, producer, attempt, sequence and plaintext content + hash, or for a supersession its producer and both attempts. It leaves out the encoded body. + """ + chain_first_run_id: builtins.str + """The first run of the chain the read read. `ReadRange` takes it, so replay needs no describe.""" start_cursor: builtins.str - """The cursor this answer reads strictly after, with `$end` resolved. A Follow that cuts a page - at a gate reads it again from here. + """The cursor this answer reads strictly after, with `$end` resolved. With `cursor`, it is the + range `ReadRange` reads again. """ def __init__( self, @@ -818,26 +1058,167 @@ class ReadResponse(google.protobuf.message.Message): cursor: builtins.str = ..., state: builtins.bytes = ..., done: builtins.bool = ..., + wake_after: builtins.int = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + closed_by: builtins.str = ..., + records_digest: builtins.bytes = ..., + chain_first_run_id: builtins.str = ..., start_cursor: builtins.str = ..., ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", b"close_failure", "close_result", b"close_result" + ], + ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ + "chain_first_run_id", + b"chain_first_run_id", + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "closed_by", + b"closed_by", "cursor", b"cursor", "done", b"done", "records", b"records", + "records_digest", + b"records_digest", "start_cursor", b"start_cursor", "state", b"state", + "wake_after", + b"wake_after", ], ) -> None: ... global___ReadResponse = ReadResponse +class ReadRangeRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + CHAIN_FIRST_RUN_ID_FIELD_NUMBER: builtins.int + AFTER_FIELD_NUMBER: builtins.int + TO_FIELD_NUMBER: builtins.int + STORED_RECORDS_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + RECORDS_DIGEST_FIELD_NUMBER: builtins.int + FLOOR_HOLDER_FIELD_NUMBER: builtins.int + START_FROM_END_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: + """The stream, as the read named it.""" + chain_first_run_id: builtins.str + """The read's `chain_first_run_id`.""" + after: builtins.str + """The read's `start_cursor` and its answer's `cursor`.""" + to: builtins.str + stored_records: builtins.int + """How many stored records the answer held, not counting supersessions.""" + state: builtins.bytes + """The read's input `state`.""" + records_digest: builtins.bytes + """The answer's `records_digest`.""" + floor_holder: builtins.str + """As in `ReadRequest`, so a replay holds the records for its own run.""" + start_from_end: builtins.bool + """Set when the read's `after` was `$end`. That read looked up no record at the start it found, + and the replay must not either, or a newer attempt there reads as superseded. + """ + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., + chain_first_run_id: builtins.str = ..., + after: builtins.str = ..., + to: builtins.str = ..., + stored_records: builtins.int = ..., + state: builtins.bytes = ..., + records_digest: builtins.bytes = ..., + floor_holder: builtins.str = ..., + start_from_end: builtins.bool = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream", b"stream"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "after", + b"after", + "chain_first_run_id", + b"chain_first_run_id", + "floor_holder", + b"floor_holder", + "records_digest", + b"records_digest", + "start_from_end", + b"start_from_end", + "state", + b"state", + "stored_records", + b"stored_records", + "stream", + b"stream", + "to", + b"to", + ], + ) -> None: ... + +global___ReadRangeRequest = ReadRangeRequest + +class ReleaseFloorRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + CHAIN_FIRST_RUN_ID_FIELD_NUMBER: builtins.int + FLOOR_HOLDER_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: ... + chain_first_run_id: builtins.str + floor_holder: builtins.str + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., + chain_first_run_id: builtins.str = ..., + floor_holder: builtins.str = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream", b"stream"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "chain_first_run_id", + b"chain_first_run_id", + "floor_holder", + b"floor_holder", + "stream", + b"stream", + ], + ) -> None: ... + +global___ReleaseFloorRequest = ReleaseFloorRequest + +class ReleaseFloorResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___ReleaseFloorResponse = ReleaseFloorResponse + class FollowRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -848,6 +1229,8 @@ class FollowRequest(google.protobuf.message.Message): MAX_RECORDS_FIELD_NUMBER: builtins.int MAX_DEPTH_FIELD_NUMBER: builtins.int MAX_OPEN_FIELD_NUMBER: builtins.int + FLOOR_HOLDER_FIELD_NUMBER: builtins.int + SUBSCRIBER_FIELD_NUMBER: builtins.int @property def stream(self) -> global___StreamAddress: """The root stream.""" @@ -867,9 +1250,14 @@ class FollowRequest(google.protobuf.message.Message): hold for the whole follow, and `state` keeps them. """ max_open: builtins.int - """How many linked streams are open at once. Zero uses 16. - Jetty adds fields 8 and 9 for Workflow followers. - """ + """How many linked streams are open at once. Zero uses 16.""" + floor_holder: builtins.str + """For a positions-only follower: each source holds its records as `/`.""" + @property + def subscriber(self) -> global___FollowSubscriber: + """Set by a Workflow follower. An empty answer attaches each idle source idle and asks its + notifier for one wake after the source's `wake_after`. + """ def __init__( self, *, @@ -880,16 +1268,22 @@ class FollowRequest(google.protobuf.message.Message): max_records: builtins.int = ..., max_depth: builtins.int = ..., max_open: builtins.int = ..., + floor_holder: builtins.str = ..., + subscriber: global___FollowSubscriber | None = ..., ) -> None: ... def HasField( self, - field_name: typing_extensions.Literal["stream", b"stream", "wait", b"wait"], + field_name: typing_extensions.Literal[ + "stream", b"stream", "subscriber", b"subscriber", "wait", b"wait" + ], ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ "after", b"after", + "floor_holder", + b"floor_holder", "max_depth", b"max_depth", "max_open", @@ -900,6 +1294,8 @@ class FollowRequest(google.protobuf.message.Message): b"state", "stream", b"stream", + "subscriber", + b"subscriber", "wait", b"wait", ], @@ -907,6 +1303,44 @@ class FollowRequest(google.protobuf.message.Message): global___FollowRequest = FollowRequest +class FollowSubscriber(google.protobuf.message.Message): + """The Workflow that follows, so each idle source wakes it.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + SUBSCRIPTION_PREFIX_FIELD_NUMBER: builtins.int + GENERATION_FIELD_NUMBER: builtins.int + workflow_id: builtins.str + run_id: builtins.str + subscription_prefix: builtins.str + """Each source subscribes as `.`.""" + generation: builtins.int + def __init__( + self, + *, + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + subscription_prefix: builtins.str = ..., + generation: builtins.int = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "generation", + b"generation", + "run_id", + b"run_id", + "subscription_prefix", + b"subscription_prefix", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___FollowSubscriber = FollowSubscriber + class FollowedRecord(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -973,7 +1407,9 @@ class LinkState(google.protobuf.message.Message): KIND_OPENED: LinkState._Kind.ValueType # 1 """The linked stream is open, and its records follow.""" KIND_DONE: LinkState._Kind.ValueType # 2 - """The linked stream's segment ended: the stream closed, or it reached the JOIN's `until`.""" + """The linked stream's segment ended: the stream closed, or it reached the JOIN's `until`. A + closed stream gives its close outcome. + """ KIND_UNAVAILABLE: LinkState._Kind.ValueType # 3 """The linked stream can't be read. `error` says why. The follow goes on without it.""" KIND_SKIPPED: LinkState._Kind.ValueType # 4 @@ -984,7 +1420,9 @@ class LinkState(google.protobuf.message.Message): KIND_OPENED: LinkState.Kind.ValueType # 1 """The linked stream is open, and its records follow.""" KIND_DONE: LinkState.Kind.ValueType # 2 - """The linked stream's segment ended: the stream closed, or it reached the JOIN's `until`.""" + """The linked stream's segment ended: the stream closed, or it reached the JOIN's `until`. A + closed stream gives its close outcome. + """ KIND_UNAVAILABLE: LinkState.Kind.ValueType # 3 """The linked stream can't be read. `error` says why. The follow goes on without it.""" KIND_SKIPPED: LinkState.Kind.ValueType # 4 @@ -992,16 +1430,20 @@ class LinkState(google.protobuf.message.Message): KIND_FIELD_NUMBER: builtins.int LINK_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int ERROR_FIELD_NUMBER: builtins.int REASON_FIELD_NUMBER: builtins.int kind: global___LinkState.Kind.ValueType @property def link(self) -> temporalio.bridge.proto.streams.v1.message_pb2.StreamLink: ... @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: ... + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: ... + @property def error(self) -> global___StreamFailure: - """Jetty adds fields 3 and 4 for the close outcome on DONE. - Set on UNAVAILABLE. - """ + """Set on UNAVAILABLE.""" reason: builtins.str """Set on SKIPPED: `depth`, `limit`, `cycle`, `open` or `endpoint`. Set to `withdrawn` on a DONE that a SUPERSEDED caused, since the attempt that wrote the OPEN was withdrawn. Set to @@ -1013,16 +1455,39 @@ class LinkState(google.protobuf.message.Message): *, kind: global___LinkState.Kind.ValueType = ..., link: temporalio.bridge.proto.streams.v1.message_pb2.StreamLink | None = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., error: global___StreamFailure | None = ..., reason: builtins.str = ..., ) -> None: ... def HasField( - self, field_name: typing_extensions.Literal["error", b"error", "link", b"link"] + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "error", + b"error", + "link", + b"link", + ], ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ - "error", b"error", "kind", b"kind", "link", b"link", "reason", b"reason" + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "error", + b"error", + "kind", + b"kind", + "link", + b"link", + "reason", + b"reason", ], ) -> None: ... @@ -1076,66 +1541,302 @@ class FollowSource(google.protobuf.message.Message): global___FollowSource = FollowSource -class FollowResponse(google.protobuf.message.Message): +class SourceRange(google.protobuf.message.Message): + """One read of one source, as `ReadRange` reads it again.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - RECORDS_FIELD_NUMBER: builtins.int - STATE_FIELD_NUMBER: builtins.int + SOURCE_FIELD_NUMBER: builtins.int + CHAIN_FIRST_RUN_ID_FIELD_NUMBER: builtins.int + START_CURSOR_FIELD_NUMBER: builtins.int + CURSOR_FIELD_NUMBER: builtins.int + STORED_RECORDS_FIELD_NUMBER: builtins.int + STATE_IN_FIELD_NUMBER: builtins.int + RECORDS_DIGEST_FIELD_NUMBER: builtins.int + START_FROM_END_FIELD_NUMBER: builtins.int DONE_FIELD_NUMBER: builtins.int - SOURCES_FIELD_NUMBER: builtins.int - @property - def records( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ - global___FollowedRecord - ]: ... - state: builtins.bytes - """The composite position: every source's cursor and read state, and the gates. Opaque to lang.""" + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + source: builtins.int + chain_first_run_id: builtins.str + start_cursor: builtins.str + cursor: builtins.str + stored_records: builtins.int + state_in: builtins.bytes + records_digest: builtins.bytes + start_from_end: builtins.bool done: builtins.bool - """The root ended and every linked segment ended. No later call returns a record.""" + """The read ended the source's stream, with this outcome.""" @property - def sources( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ - global___FollowSource - ]: - """Each source that `records` names. - Jetty adds fields 5 to 9 for Workflow followers and their replay. - """ + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: ... + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: ... + @property + def error(self) -> global___StreamFailure: + """The read failed, so the source is unavailable. No other field but `source` is set.""" def __init__( self, *, - records: collections.abc.Iterable[global___FollowedRecord] | None = ..., - state: builtins.bytes = ..., + source: builtins.int = ..., + chain_first_run_id: builtins.str = ..., + start_cursor: builtins.str = ..., + cursor: builtins.str = ..., + stored_records: builtins.int = ..., + state_in: builtins.bytes = ..., + records_digest: builtins.bytes = ..., + start_from_end: builtins.bool = ..., done: builtins.bool = ..., - sources: collections.abc.Iterable[global___FollowSource] | None = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + error: global___StreamFailure | None = ..., ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "error", + b"error", + ], + ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ + "chain_first_run_id", + b"chain_first_run_id", + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "cursor", + b"cursor", "done", b"done", - "records", - b"records", - "sources", - b"sources", - "state", - b"state", + "error", + b"error", + "records_digest", + b"records_digest", + "source", + b"source", + "start_cursor", + b"start_cursor", + "start_from_end", + b"start_from_end", + "state_in", + b"state_in", + "stored_records", + b"stored_records", ], ) -> None: ... -global___FollowResponse = FollowResponse +global___SourceRange = SourceRange + +class SourceWake(google.protobuf.message.Message): + """An idle source that a Workflow follower waits on.""" -class LatestRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - STREAM_FIELD_NUMBER: builtins.int - @property - def stream(self) -> global___StreamAddress: ... + SOURCE_FIELD_NUMBER: builtins.int + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + WAKE_AFTER_FIELD_NUMBER: builtins.int + source: builtins.int + subscription_id: builtins.str + wake_after: builtins.int + """The source's notification counter. A wake above it names a new record.""" def __init__( self, *, - stream: global___StreamAddress | None = ..., + source: builtins.int = ..., + subscription_id: builtins.str = ..., + wake_after: builtins.int = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "source", + b"source", + "subscription_id", + b"subscription_id", + "wake_after", + b"wake_after", + ], + ) -> None: ... + +global___SourceWake = SourceWake + +class FollowResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RECORDS_FIELD_NUMBER: builtins.int + STATE_FIELD_NUMBER: builtins.int + DONE_FIELD_NUMBER: builtins.int + SOURCES_FIELD_NUMBER: builtins.int + RANGES_FIELD_NUMBER: builtins.int + WAKES_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + FOLLOW_DIGEST_FIELD_NUMBER: builtins.int + @property + def records( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___FollowedRecord + ]: ... + state: builtins.bytes + """The composite position: every source's cursor and read state, and the gates. Opaque to lang.""" + done: builtins.bool + """The root ended and every linked segment ended. No later call returns a record.""" + @property + def sources( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___FollowSource + ]: + """Each source that `records` names.""" + @property + def ranges( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___SourceRange + ]: + """Each read of this answer, in read order.""" + @property + def wakes( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___SourceWake + ]: + """On an empty answer of a Workflow follower, each idle source.""" + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """The root's close outcome, with `done`.""" + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: ... + follow_digest: builtins.bytes + """SHA-256 over the order of `records`, as `FollowRange` checks it.""" + def __init__( + self, + *, + records: collections.abc.Iterable[global___FollowedRecord] | None = ..., + state: builtins.bytes = ..., + done: builtins.bool = ..., + sources: collections.abc.Iterable[global___FollowSource] | None = ..., + ranges: collections.abc.Iterable[global___SourceRange] | None = ..., + wakes: collections.abc.Iterable[global___SourceWake] | None = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + follow_digest: builtins.bytes = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", b"close_failure", "close_result", b"close_result" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "done", + b"done", + "follow_digest", + b"follow_digest", + "ranges", + b"ranges", + "records", + b"records", + "sources", + b"sources", + "state", + b"state", + "wakes", + b"wakes", + ], + ) -> None: ... + +global___FollowResponse = FollowResponse + +class FollowRangeRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + STATE_IN_FIELD_NUMBER: builtins.int + RANGES_FIELD_NUMBER: builtins.int + FOLLOW_DIGEST_FIELD_NUMBER: builtins.int + FLOOR_HOLDER_FIELD_NUMBER: builtins.int + MAX_DEPTH_FIELD_NUMBER: builtins.int + MAX_OPEN_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: + """The root stream, as the Follow named it.""" + state_in: builtins.bytes + """The `state` the Follow started from.""" + @property + def ranges( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___SourceRange + ]: + """The Follow's `ranges`.""" + follow_digest: builtins.bytes + """The Follow's `follow_digest`.""" + floor_holder: builtins.str + """As in `FollowRequest`.""" + max_depth: builtins.int + """The first Follow's limits, for a `state_in` that is empty. A non-empty `state_in` keeps them.""" + max_open: builtins.int + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., + state_in: builtins.bytes = ..., + ranges: collections.abc.Iterable[global___SourceRange] | None = ..., + follow_digest: builtins.bytes = ..., + floor_holder: builtins.str = ..., + max_depth: builtins.int = ..., + max_open: builtins.int = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream", b"stream"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "floor_holder", + b"floor_holder", + "follow_digest", + b"follow_digest", + "max_depth", + b"max_depth", + "max_open", + b"max_open", + "ranges", + b"ranges", + "state_in", + b"state_in", + "stream", + b"stream", + ], + ) -> None: ... + +global___FollowRangeRequest = FollowRangeRequest + +class LatestRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: ... + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal["stream", b"stream"] @@ -1167,22 +1868,97 @@ class CloseRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor STREAM_FIELD_NUMBER: builtins.int + RESULT_FIELD_NUMBER: builtins.int + FAILURE_FIELD_NUMBER: builtins.int + CLOSED_BY_FIELD_NUMBER: builtins.int @property def stream(self) -> global___StreamAddress: ... + @property + def result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """What every callback attached to the stream's notifier completes with, after lang's payload + codec. The stream's notifier on the server closes once the store has. When set, a notifier + that doesn't take the close fails the call, and the service keeps trying in the background too. + Unset, the callbacks complete with a `binary/null` result, and the notifier close is retried + in the background. + """ + @property + def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """Closes the stream with a failure instead of `result`, after lang's failure converter and + codec. The callbacks complete as failed, or as canceled for a failure with canceled info. + A close carries a result or a failure, never both. + """ + closed_by: builtins.str + """Who closed the stream, opaque to the service. At most 256 bytes. The store keeps it with the + first close's outcome, and readers and refused appends see it, so a writer can tell a close by + its own run. + """ def __init__( self, *, stream: global___StreamAddress | None = ..., + result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + closed_by: builtins.str = ..., ) -> None: ... def HasField( - self, field_name: typing_extensions.Literal["stream", b"stream"] + self, + field_name: typing_extensions.Literal[ + "failure", b"failure", "result", b"result", "stream", b"stream" + ], ) -> builtins.bool: ... def ClearField( - self, field_name: typing_extensions.Literal["stream", b"stream"] + self, + field_name: typing_extensions.Literal[ + "closed_by", + b"closed_by", + "failure", + b"failure", + "result", + b"result", + "stream", + b"stream", + ], ) -> None: ... global___CloseRequest = CloseRequest +class StoredClose(google.protobuf.message.Message): + """The first close of a topic, as a store keeps it. A later close of the topic keeps this one. A + chain close, when the owner ended, keeps none. With `result` and `failure`, at most 1.5 MiB. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RESULT_FIELD_NUMBER: builtins.int + FAILURE_FIELD_NUMBER: builtins.int + CLOSED_BY_FIELD_NUMBER: builtins.int + @property + def result(self) -> temporalio.api.common.v1.message_pb2.Payload: ... + @property + def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: ... + closed_by: builtins.str + def __init__( + self, + *, + result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + closed_by: builtins.str = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "failure", b"failure", "result", b"result" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "closed_by", b"closed_by", "failure", b"failure", "result", b"result" + ], + ) -> None: ... + +global___StoredClose = StoredClose + class CloseResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -1192,25 +1968,279 @@ class CloseResponse(google.protobuf.message.Message): global___CloseResponse = CloseResponse +class FlushNotificationsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___FlushNotificationsRequest = FlushNotificationsRequest + +class FlushNotificationsResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___FlushNotificationsResponse = FlushNotificationsResponse + +class SubscribeRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + WORKFLOW_ID_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + GENERATION_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: + """The stream to read. The reader's Workflow is in the stream's namespace.""" + workflow_id: builtins.str + """The reader's Workflow and run.""" + run_id: builtins.str + subscription_id: builtins.str + """Names the reader in its run. Lang derives it from the reader's call number, so replay gives + the same one. At most 256 bytes. + """ + generation: builtins.int + """Counts the times the reader subscribed again after a wake with `resubscribe`. Each value is a + new attach, since the server answers a repeat of a dropped attach as done. Lang counts it from + the wakes, so replay gives the same one. + """ + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., + workflow_id: builtins.str = ..., + run_id: builtins.str = ..., + subscription_id: builtins.str = ..., + generation: builtins.int = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream", b"stream"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "generation", + b"generation", + "run_id", + b"run_id", + "stream", + b"stream", + "subscription_id", + b"subscription_id", + "workflow_id", + b"workflow_id", + ], + ) -> None: ... + +global___SubscribeRequest = SubscribeRequest + +class SubscribeResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CHAIN_FIRST_RUN_ID_FIELD_NUMBER: builtins.int + ATTACHED_FIELD_NUMBER: builtins.int + NEWEST_COUNTER_FIELD_NUMBER: builtins.int + chain_first_run_id: builtins.str + """The first run of the stream's run chain, which keys the notifier the reader attached to.""" + attached: builtins.bool + """Whether this call sent the attach. False when this process attached the reader before.""" + newest_counter: builtins.int + """The notification counter of the stream's newest record, read after the attach landed, zero + for an empty stream. A record that landed before the notifier existed woke no one, so a + reader whose last read stopped below this counter reads once more before it sleeps. + """ + def __init__( + self, + *, + chain_first_run_id: builtins.str = ..., + attached: builtins.bool = ..., + newest_counter: builtins.int = ..., + ) -> None: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "attached", + b"attached", + "chain_first_run_id", + b"chain_first_run_id", + "newest_counter", + b"newest_counter", + ], + ) -> None: ... + +global___SubscribeResponse = SubscribeResponse + +class UnsubscribeRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + RUN_ID_FIELD_NUMBER: builtins.int + SUBSCRIPTION_ID_FIELD_NUMBER: builtins.int + GENERATION_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: + """The stream, the reader's run, the subscription and its generation, as the last Subscribe + named them. + """ + run_id: builtins.str + subscription_id: builtins.str + generation: builtins.int + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., + run_id: builtins.str = ..., + subscription_id: builtins.str = ..., + generation: builtins.int = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream", b"stream"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "generation", + b"generation", + "run_id", + b"run_id", + "stream", + b"stream", + "subscription_id", + b"subscription_id", + ], + ) -> None: ... + +global___UnsubscribeRequest = UnsubscribeRequest + +class UnsubscribeResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UnsubscribeResponse = UnsubscribeResponse + +class WaitForNotificationRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_FIELD_NUMBER: builtins.int + AFTER_COUNTER_FIELD_NUMBER: builtins.int + @property + def stream(self) -> global___StreamAddress: + """The stream the reader reads.""" + after_counter: builtins.int + """The `wake_after` of the read that came back empty.""" + def __init__( + self, + *, + stream: global___StreamAddress | None = ..., + after_counter: builtins.int = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["stream", b"stream"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "after_counter", b"after_counter", "stream", b"stream" + ], + ) -> None: ... + +global___WaitForNotificationRequest = WaitForNotificationRequest + +class WaitForNotificationResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + COUNTER_FIELD_NUMBER: builtins.int + POSITION_FIELD_NUMBER: builtins.int + TIMED_OUT_FIELD_NUMBER: builtins.int + CLOSED_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int + counter: builtins.int + """The highest counter the notifier has seen.""" + position: builtins.str + """The position that came with `counter`.""" + timed_out: builtins.bool + """The wait reached its limit with no counter above `after_counter` and no close.""" + closed: builtins.bool + """The stream closed. The reader reads to its end.""" + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """The result the stream closed with, when it gave one.""" + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """The failure the stream closed with, when it closed with one.""" + def __init__( + self, + *, + counter: builtins.int = ..., + position: builtins.str = ..., + timed_out: builtins.bool = ..., + closed: builtins.bool = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + ) -> None: ... + def HasField( + self, + field_name: typing_extensions.Literal[ + "close_failure", b"close_failure", "close_result", b"close_result" + ], + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "closed", + b"closed", + "counter", + b"counter", + "position", + b"position", + "timed_out", + b"timed_out", + ], + ) -> None: ... + +global___WaitForNotificationResponse = WaitForNotificationResponse + class DeleteOwnerRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor NAMESPACE_FIELD_NUMBER: builtins.int OWNER_KIND_FIELD_NUMBER: builtins.int WORKFLOW_ID_FIELD_NUMBER: builtins.int + ACTIVITY_ID_FIELD_NUMBER: builtins.int namespace: builtins.str owner_kind: global___StreamOwnerKind.ValueType workflow_id: builtins.str + """The Workflow whose streams go, for a Workflow owner. The streams of every Activity that the + Workflow scheduled go too. + """ + activity_id: builtins.str + """The standalone Activity whose streams go, across all its runs, for an Activity owner.""" def __init__( self, *, namespace: builtins.str = ..., owner_kind: global___StreamOwnerKind.ValueType = ..., workflow_id: builtins.str = ..., + activity_id: builtins.str = ..., ) -> None: ... def ClearField( self, field_name: typing_extensions.Literal[ + "activity_id", + b"activity_id", "namespace", b"namespace", "owner_kind", @@ -1440,21 +2470,34 @@ class StreamFailure(google.protobuf.message.Message): KIND_FIELD_NUMBER: builtins.int MESSAGE_FIELD_NUMBER: builtins.int CURSOR_FIELD_NUMBER: builtins.int + CLOSED_BY_FIELD_NUMBER: builtins.int kind: global___StreamFailureKind.ValueType message: builtins.str cursor: builtins.str """The cursor of the record that failed, for RECORD.""" + closed_by: builtins.str + """For CLOSED, the `closed_by` of the topic's first close. Empty when the owner's chain closed + or the close named no one. + """ def __init__( self, *, kind: global___StreamFailureKind.ValueType = ..., message: builtins.str = ..., cursor: builtins.str = ..., + closed_by: builtins.str = ..., ) -> None: ... def ClearField( self, field_name: typing_extensions.Literal[ - "cursor", b"cursor", "kind", b"kind", "message", b"message" + "closed_by", + b"closed_by", + "cursor", + b"cursor", + "kind", + b"kind", + "message", + b"message", ], ) -> None: ... @@ -1621,6 +2664,7 @@ class StoreReadResponse(google.protobuf.message.Message): RECORDS_FIELD_NUMBER: builtins.int CLOSED_FIELD_NUMBER: builtins.int + CLOSE_FIELD_NUMBER: builtins.int @property def records( self, @@ -1629,16 +2673,23 @@ class StoreReadResponse(google.protobuf.message.Message): ]: ... closed: builtins.bool """The chain or this topic is marked closed.""" + @property + def close(self) -> global___StoredClose: + """The topic's first close, when it was closed as a topic. Unset for a chain close.""" def __init__( self, *, records: collections.abc.Iterable[global___StoredRecord] | None = ..., closed: builtins.bool = ..., + close: global___StoredClose | None = ..., ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["close", b"close"] + ) -> builtins.bool: ... def ClearField( self, field_name: typing_extensions.Literal[ - "closed", b"closed", "records", b"records" + "close", b"close", "closed", b"closed", "records", b"records" ], ) -> None: ... @@ -1688,7 +2739,7 @@ global___StoreLatestResponse = StoreLatestResponse class PublishWorkflowTaskRequest(google.protobuf.message.Message): """One live activation's stream output and the facts of its run, sent before lang completes the activation. Lang sends none while it replays, since the records are in the store already. It - sends one for an activation with records or with a terminal command. + sends one for an activation with records, a terminal command or a resolved owner Activity. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -1707,6 +2758,7 @@ class PublishWorkflowTaskRequest(google.protobuf.message.Message): COMPLETED_STARTED_EVENT_IDS_FIELD_NUMBER: builtins.int RECORDS_FIELD_NUMBER: builtins.int TERMINAL_COMMAND_FIELD_NUMBER: builtins.int + RESOLVED_OWNER_ACTIVITIES_FIELD_NUMBER: builtins.int namespace: builtins.str worker_id: builtins.str """Names the lang Worker. The service keys each run's state by the Worker and the run, so two @@ -1740,6 +2792,17 @@ class PublishWorkflowTaskRequest(google.protobuf.message.Message): """In publish order across topics.""" terminal_command: global___WorkflowTerminalCommand.ValueType """The first terminal command of the completion, which is the one Core keeps.""" + @property + def resolved_owner_activities( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + global___ResolvedOwnerActivity + ]: + """The Activities of this activation's `ResolveActivity` jobs that own their streams, in job + order. Lang marks an owner Activity with the `__temporal_stream_owner` header when it + schedules it. The service closes each one's streams after the records land, before it + answers. A close that fails is logged and dropped. + """ def __init__( self, *, @@ -1758,6 +2821,10 @@ class PublishWorkflowTaskRequest(google.protobuf.message.Message): | None = ..., records: collections.abc.Iterable[global___OutputRecord] | None = ..., terminal_command: global___WorkflowTerminalCommand.ValueType = ..., + resolved_owner_activities: collections.abc.Iterable[ + global___ResolvedOwnerActivity + ] + | None = ..., ) -> None: ... def ClearField( self, @@ -1776,6 +2843,8 @@ class PublishWorkflowTaskRequest(google.protobuf.message.Message): b"namespace", "records", b"records", + "resolved_owner_activities", + b"resolved_owner_activities", "run_id", b"run_id", "task_queue", @@ -1795,6 +2864,42 @@ class PublishWorkflowTaskRequest(google.protobuf.message.Message): global___PublishWorkflowTaskRequest = PublishWorkflowTaskRequest +class ResolvedOwnerActivity(google.protobuf.message.Message): + """An Activity that owns its streams, as its scheduling Workflow saw it end.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ACTIVITY_ID_FIELD_NUMBER: builtins.int + OUTCOME_FIELD_NUMBER: builtins.int + FAILURE_FIELD_NUMBER: builtins.int + activity_id: builtins.str + """The Activity's id in the run that scheduled it.""" + outcome: global___ResolvedActivityOutcome.ValueType + @property + def failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """On FAILED and CANCELLED, the failure as the server gave it, before lang decodes it. The + store keeps it as the close's outcome, and readers decode it with their own codec. Unset + closes with a failure that says the Activity gave none. + """ + def __init__( + self, + *, + activity_id: builtins.str = ..., + outcome: global___ResolvedActivityOutcome.ValueType = ..., + failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., + ) -> None: ... + def HasField( + self, field_name: typing_extensions.Literal["failure", b"failure"] + ) -> builtins.bool: ... + def ClearField( + self, + field_name: typing_extensions.Literal[ + "activity_id", b"activity_id", "failure", b"failure", "outcome", b"outcome" + ], + ) -> None: ... + +global___ResolvedOwnerActivity = ResolvedOwnerActivity + class OutputRecord(google.protobuf.message.Message): """One record a Workflow published.""" diff --git a/temporalio/bridge/proto/streams/v1/message_pb2.py b/temporalio/bridge/proto/streams/v1/message_pb2.py index ff07ff7ca6..c8f8ff2939 100644 --- a/temporalio/bridge/proto/streams/v1/message_pb2.py +++ b/temporalio/bridge/proto/streams/v1/message_pb2.py @@ -18,12 +18,15 @@ from temporalio.api.common.v1 import ( message_pb2 as temporal_dot_api_dot_common_dot_v1_dot_message__pb2, ) +from temporalio.api.failure.v1 import ( + message_pb2 as temporal_dot_api_dot_failure_dot_v1_dot_message__pb2, +) from temporalio.api.stream.v1 import ( message_pb2 as temporal_dot_api_dot_stream_dot_v1_dot_message__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n%temporal/sdk/streams/v1/message.proto\x12\x17temporal.sdk.streams.v1\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/stream/v1/message.proto"\xc1\x03\n\x0cStreamRecord\x12-\n\x04\x62ody\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x45\n\x08metadata\x18\x02 \x03(\x0b\x32\x33.temporal.sdk.streams.v1.StreamRecord.MetadataEntry\x12\r\n\x05topic\x18\x03 \x01(\t\x12\x37\n\x04kind\x18\x04 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamRecordKind\x12\x13\n\x0bproducer_id\x18\x05 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x06 \x01(\x03\x12\x10\n\x08sequence\x18\x07 \x01(\x03\x12\x31\n\x04link\x18\x08 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink\x12\x1d\n\x15task_started_event_id\x18\t \x01(\x03\x12\x17\n\x0f\x63ompleted_tasks\x18\n \x03(\x03\x1aP\n\rMetadataEntry\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\x02\n\nStreamLink\x12\x38\n\x05\x65vent\x18\x01 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamLink.Event\x12\x37\n\x06stream\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05\x61\x66ter\x18\x04 \x01(\t\x12\r\n\x05until\x18\x05 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x07 \x01(\t">\n\x05\x45vent\x12\x15\n\x11\x45VENT_UNSPECIFIED\x10\x00\x12\x0e\n\nEVENT_OPEN\x10\x01\x12\x0e\n\nEVENT_JOIN\x10\x02*\xd1\x01\n\x10StreamRecordKind\x12"\n\x1eSTREAM_RECORD_KIND_UNSPECIFIED\x10\x00\x12\x1b\n\x17STREAM_RECORD_KIND_DATA\x10\x01\x12\x1d\n\x19STREAM_RECORD_KIND_FINISH\x10\x02\x12\x1b\n\x17STREAM_RECORD_KIND_LINK\x10\x04\x12\x1c\n\x18STREAM_RECORD_KIND_CLOSE\x10\x05\x12\x1c\n\x18STREAM_RECORD_KIND_TOPIC\x10\x06"\x04\x08\x03\x10\x03\x42\x32\xea\x02/Temporalio::Internal::Bridge::Api::StreamRecordb\x06proto3' + b'\n%temporal/sdk/streams/v1/message.proto\x12\x17temporal.sdk.streams.v1\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/stream/v1/message.proto"\xb1\x04\n\x0cStreamRecord\x12-\n\x04\x62ody\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x45\n\x08metadata\x18\x02 \x03(\x0b\x32\x33.temporal.sdk.streams.v1.StreamRecord.MetadataEntry\x12\r\n\x05topic\x18\x03 \x01(\t\x12\x37\n\x04kind\x18\x04 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamRecordKind\x12\x13\n\x0bproducer_id\x18\x05 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x06 \x01(\x03\x12\x10\n\x08sequence\x18\x07 \x01(\x03\x12\x31\n\x04link\x18\x08 \x01(\x0b\x32#.temporal.sdk.streams.v1.StreamLink\x12\x1d\n\x15task_started_event_id\x18\t \x01(\x03\x12\x17\n\x0f\x63ompleted_tasks\x18\n \x03(\x03\x12\x35\n\x0c\x63lose_result\x18\x0b \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\rclose_failure\x18\x0c \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x1aP\n\rMetadataEntry\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\x02\n\nStreamLink\x12\x38\n\x05\x65vent\x18\x01 \x01(\x0e\x32).temporal.sdk.streams.v1.StreamLink.Event\x12\x37\n\x06stream\x18\x02 \x01(\x0b\x32\'.temporal.api.stream.v1.StreamReference\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\r\n\x05\x61\x66ter\x18\x04 \x01(\t\x12\r\n\x05until\x18\x05 \x01(\t\x12\x11\n\tnamespace\x18\x06 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x07 \x01(\t">\n\x05\x45vent\x12\x15\n\x11\x45VENT_UNSPECIFIED\x10\x00\x12\x0e\n\nEVENT_OPEN\x10\x01\x12\x0e\n\nEVENT_JOIN\x10\x02*\xd1\x01\n\x10StreamRecordKind\x12"\n\x1eSTREAM_RECORD_KIND_UNSPECIFIED\x10\x00\x12\x1b\n\x17STREAM_RECORD_KIND_DATA\x10\x01\x12\x1d\n\x19STREAM_RECORD_KIND_FINISH\x10\x02\x12\x1b\n\x17STREAM_RECORD_KIND_LINK\x10\x04\x12\x1c\n\x18STREAM_RECORD_KIND_CLOSE\x10\x05\x12\x1c\n\x18STREAM_RECORD_KIND_TOPIC\x10\x06"\x04\x08\x03\x10\x03\x42\x32\xea\x02/Temporalio::Internal::Bridge::Api::StreamRecordb\x06proto3' ) _STREAMRECORDKIND = DESCRIPTOR.enum_types_by_name["StreamRecordKind"] @@ -79,14 +82,14 @@ ) _STREAMRECORD_METADATAENTRY._options = None _STREAMRECORD_METADATAENTRY._serialized_options = b"8\001" - _STREAMRECORDKIND._serialized_start = 870 - _STREAMRECORDKIND._serialized_end = 1079 - _STREAMRECORD._serialized_start = 143 - _STREAMRECORD._serialized_end = 592 - _STREAMRECORD_METADATAENTRY._serialized_start = 512 - _STREAMRECORD_METADATAENTRY._serialized_end = 592 - _STREAMLINK._serialized_start = 595 - _STREAMLINK._serialized_end = 867 - _STREAMLINK_EVENT._serialized_start = 805 - _STREAMLINK_EVENT._serialized_end = 867 + _STREAMRECORDKIND._serialized_start = 1021 + _STREAMRECORDKIND._serialized_end = 1230 + _STREAMRECORD._serialized_start = 182 + _STREAMRECORD._serialized_end = 743 + _STREAMRECORD_METADATAENTRY._serialized_start = 663 + _STREAMRECORD_METADATAENTRY._serialized_end = 743 + _STREAMLINK._serialized_start = 746 + _STREAMLINK._serialized_end = 1018 + _STREAMLINK_EVENT._serialized_start = 956 + _STREAMLINK_EVENT._serialized_end = 1018 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/bridge/proto/streams/v1/message_pb2.pyi b/temporalio/bridge/proto/streams/v1/message_pb2.pyi index cd551fafe2..280f676a11 100644 --- a/temporalio/bridge/proto/streams/v1/message_pb2.pyi +++ b/temporalio/bridge/proto/streams/v1/message_pb2.pyi @@ -14,6 +14,7 @@ import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import temporalio.api.common.v1.message_pb2 +import temporalio.api.failure.v1.message_pb2 import temporalio.api.stream.v1.message_pb2 if sys.version_info >= (3, 10): @@ -125,6 +126,8 @@ class StreamRecord(google.protobuf.message.Message): LINK_FIELD_NUMBER: builtins.int TASK_STARTED_EVENT_ID_FIELD_NUMBER: builtins.int COMPLETED_TASKS_FIELD_NUMBER: builtins.int + CLOSE_RESULT_FIELD_NUMBER: builtins.int + CLOSE_FAILURE_FIELD_NUMBER: builtins.int @property def body(self) -> temporalio.api.common.v1.message_pb2.Payload: """The value the producer published. Lang runs it through the payload @@ -172,6 +175,15 @@ class StreamRecord(google.protobuf.message.Message): trailing zero means the list goes back to the run's start. A reader learns from it whether an earlier attempt it delivered completed. """ + @property + def close_result(self) -> temporalio.api.common.v1.message_pb2.Payload: + """On a CLOSE, the result the stream closed with, after the payload codec. + `producer_id` names who closed it. A CLOSE with no result and no + failure closed with no outcome. + """ + @property + def close_failure(self) -> temporalio.api.failure.v1.message_pb2.Failure: + """On a CLOSE, the failure the stream closed with.""" def __init__( self, *, @@ -188,9 +200,21 @@ class StreamRecord(google.protobuf.message.Message): link: global___StreamLink | None = ..., task_started_event_id: builtins.int = ..., completed_tasks: collections.abc.Iterable[builtins.int] | None = ..., + close_result: temporalio.api.common.v1.message_pb2.Payload | None = ..., + close_failure: temporalio.api.failure.v1.message_pb2.Failure | None = ..., ) -> None: ... def HasField( - self, field_name: typing_extensions.Literal["body", b"body", "link", b"link"] + self, + field_name: typing_extensions.Literal[ + "body", + b"body", + "close_failure", + b"close_failure", + "close_result", + b"close_result", + "link", + b"link", + ], ) -> builtins.bool: ... def ClearField( self, @@ -199,6 +223,10 @@ class StreamRecord(google.protobuf.message.Message): b"attempt", "body", b"body", + "close_failure", + b"close_failure", + "close_result", + b"close_result", "completed_tasks", b"completed_tasks", "kind", diff --git a/temporalio/bridge/proto/workflow_activation/__init__.py b/temporalio/bridge/proto/workflow_activation/__init__.py index 59a52ac7bc..b2e270990f 100644 --- a/temporalio/bridge/proto/workflow_activation/__init__.py +++ b/temporalio/bridge/proto/workflow_activation/__init__.py @@ -20,6 +20,7 @@ UpdateRandomSeed, WorkflowActivation, WorkflowActivationJob, + WorkflowTaskAttachments, WorkflowTaskHistoryInfo, ) @@ -45,5 +46,6 @@ "UpdateRandomSeed", "WorkflowActivation", "WorkflowActivationJob", + "WorkflowTaskAttachments", "WorkflowTaskHistoryInfo", ] diff --git a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py index c244b28b35..4ebbc5cd6a 100644 --- a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py +++ b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.py @@ -14,6 +14,7 @@ _sym_db = _symbol_database.Default() +from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 @@ -47,7 +48,7 @@ ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n?temporal/sdk/core/workflow_activation/workflow_activation.proto\x12\x1b\x63oresdk.workflow_activation\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a\x37temporal/sdk/core/activity_result/activity_result.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a#temporal/sdk/core/nexus/nexus.proto"\xef\x04\n\x12WorkflowActivation\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cis_replaying\x18\x03 \x01(\x08\x12\x16\n\x0ehistory_length\x18\x04 \x01(\r\x12@\n\x04jobs\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.WorkflowActivationJob\x12 \n\x18\x61vailable_internal_flags\x18\x06 \x03(\r\x12\x1a\n\x12history_size_bytes\x18\x07 \x01(\x04\x12!\n\x19\x63ontinue_as_new_suggested\x18\x08 \x01(\x08\x12T\n#deployment_version_for_current_task\x18\t \x01(\x0b\x32\'.coresdk.common.WorkerDeploymentVersion\x12\x18\n\x10last_sdk_version\x18\n \x01(\t\x12Z\n\x1fsuggest_continue_as_new_reasons\x18\x0b \x03(\x0e\x32\x31.temporal.api.enums.v1.SuggestContinueAsNewReason\x12\x30\n(target_worker_deployment_version_changed\x18\x0c \x01(\x08\x12K\n\rworkflow_task\x18\r \x01(\x0b\x32\x34.coresdk.workflow_activation.WorkflowTaskHistoryInfo"q\n\x17WorkflowTaskHistoryInfo\x12\x18\n\x10started_event_id\x18\x01 \x01(\x03\x12\x17\n\x0f\x66\x61iled_attempts\x18\x02 \x01(\r\x12#\n\x1b\x63ompleted_started_event_ids\x18\x03 \x03(\x03"\xe0\n\n\x15WorkflowActivationJob\x12N\n\x13initialize_workflow\x18\x01 \x01(\x0b\x32/.coresdk.workflow_activation.InitializeWorkflowH\x00\x12<\n\nfire_timer\x18\x02 \x01(\x0b\x32&.coresdk.workflow_activation.FireTimerH\x00\x12K\n\x12update_random_seed\x18\x04 \x01(\x0b\x32-.coresdk.workflow_activation.UpdateRandomSeedH\x00\x12\x44\n\x0equery_workflow\x18\x05 \x01(\x0b\x32*.coresdk.workflow_activation.QueryWorkflowH\x00\x12\x46\n\x0f\x63\x61ncel_workflow\x18\x06 \x01(\x0b\x32+.coresdk.workflow_activation.CancelWorkflowH\x00\x12\x46\n\x0fsignal_workflow\x18\x07 \x01(\x0b\x32+.coresdk.workflow_activation.SignalWorkflowH\x00\x12H\n\x10resolve_activity\x18\x08 \x01(\x0b\x32,.coresdk.workflow_activation.ResolveActivityH\x00\x12G\n\x10notify_has_patch\x18\t \x01(\x0b\x32+.coresdk.workflow_activation.NotifyHasPatchH\x00\x12q\n&resolve_child_workflow_execution_start\x18\n \x01(\x0b\x32?.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartH\x00\x12\x66\n resolve_child_workflow_execution\x18\x0b \x01(\x0b\x32:.coresdk.workflow_activation.ResolveChildWorkflowExecutionH\x00\x12\x66\n resolve_signal_external_workflow\x18\x0c \x01(\x0b\x32:.coresdk.workflow_activation.ResolveSignalExternalWorkflowH\x00\x12u\n(resolve_request_cancel_external_workflow\x18\r \x01(\x0b\x32\x41.coresdk.workflow_activation.ResolveRequestCancelExternalWorkflowH\x00\x12:\n\tdo_update\x18\x0e \x01(\x0b\x32%.coresdk.workflow_activation.DoUpdateH\x00\x12`\n\x1dresolve_nexus_operation_start\x18\x0f \x01(\x0b\x32\x37.coresdk.workflow_activation.ResolveNexusOperationStartH\x00\x12U\n\x17resolve_nexus_operation\x18\x10 \x01(\x0b\x32\x32.coresdk.workflow_activation.ResolveNexusOperationH\x00\x12I\n\x11remove_from_cache\x18\x32 \x01(\x0b\x32,.coresdk.workflow_activation.RemoveFromCacheH\x00\x42\t\n\x07variant"\xfc\n\n\x12InitializeWorkflow\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x17\n\x0frandomness_seed\x18\x04 \x01(\x04\x12M\n\x07headers\x18\x05 \x03(\x0b\x32<.coresdk.workflow_activation.InitializeWorkflow.HeadersEntry\x12\x10\n\x08identity\x18\x06 \x01(\t\x12I\n\x14parent_workflow_info\x18\x07 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12=\n\x1aworkflow_execution_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x1f\x63ontinued_from_execution_run_id\x18\x0b \x01(\t\x12J\n\x13\x63ontinued_initiator\x18\x0c \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12;\n\x11\x63ontinued_failure\x18\r \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1e\n\x16\x66irst_execution_run_id\x18\x0f \x01(\t\x12\x39\n\x0cretry_policy\x18\x10 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x0f\n\x07\x61ttempt\x18\x11 \x01(\x05\x12\x15\n\rcron_schedule\x18\x12 \x01(\t\x12\x46\n"workflow_execution_expiration_time\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n"cron_schedule_to_schedule_interval\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x15 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x16 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\nstart_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\rroot_workflow\x18\x18 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x08priority\x18\x19 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12!\n\x19original_execution_run_id\x18\x1a \x01(\t\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x18\n\tFireTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r"m\n\x0fResolveActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.activity_result.ActivityResolution\x12\x10\n\x08is_local\x18\x03 \x01(\x08"\xd1\x02\n"ResolveChildWorkflowExecutionStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12[\n\tsucceeded\x18\x02 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccessH\x00\x12X\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailureH\x00\x12]\n\tcancelled\x18\x04 \x01(\x0b\x32H.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelledH\x00\x42\x08\n\x06status";\n)ResolveChildWorkflowExecutionStartSuccess\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\xa6\x01\n)ResolveChildWorkflowExecutionStartFailure\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x15\n\rworkflow_type\x18\x02 \x01(\t\x12M\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32>.coresdk.child_workflow.StartChildWorkflowExecutionFailedCause"`\n+ResolveChildWorkflowExecutionStartCancelled\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"i\n\x1dResolveChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.child_workflow.ChildWorkflowResult"+\n\x10UpdateRandomSeed\x12\x17\n\x0frandomness_seed\x18\x01 \x01(\x04"\x84\x02\n\rQueryWorkflow\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_type\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.coresdk.workflow_activation.QueryWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01" \n\x0e\x43\x61ncelWorkflow\x12\x0e\n\x06reason\x18\x01 \x01(\t"\xa1\x02\n\x0eSignalWorkflow\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12.\n\x05input\x18\x02 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x10\n\x08identity\x18\x03 \x01(\t\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.coresdk.workflow_activation.SignalWorkflow.HeadersEntry\x12\x1c\n\x14originating_event_id\x18\x06 \x01(\x03\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01""\n\x0eNotifyHasPatch\x12\x10\n\x08patch_id\x18\x01 \x01(\t"\xb1\x01\n\x1dResolveSignalExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12P\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32\x41.temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause"\xb8\x01\n$ResolveRequestCancelExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12P\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32\x41.temporal.api.enums.v1.CancelExternalWorkflowExecutionFailedCause"\xcb\x02\n\x08\x44oUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x14protocol_instance_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x43\n\x07headers\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.DoUpdate.HeadersEntry\x12*\n\x04meta\x18\x06 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x15\n\rrun_validator\x18\x07 \x01(\x08\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x9a\x01\n\x1aResolveNexusOperationStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x19\n\x0foperation_token\x18\x02 \x01(\tH\x00\x12\x16\n\x0cstarted_sync\x18\x03 \x01(\x08H\x00\x12\x32\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"Y\n\x15ResolveNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x33\n\x06result\x18\x02 \x01(\x0b\x32#.coresdk.nexus.NexusOperationResult"\xe0\x02\n\x0fRemoveFromCache\x12\x0f\n\x07message\x18\x01 \x01(\t\x12K\n\x06reason\x18\x02 \x01(\x0e\x32;.coresdk.workflow_activation.RemoveFromCache.EvictionReason"\xee\x01\n\x0e\x45victionReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nCACHE_FULL\x10\x01\x12\x0e\n\nCACHE_MISS\x10\x02\x12\x12\n\x0eNONDETERMINISM\x10\x03\x12\r\n\tLANG_FAIL\x10\x04\x12\x12\n\x0eLANG_REQUESTED\x10\x05\x12\x12\n\x0eTASK_NOT_FOUND\x10\x06\x12\x15\n\x11UNHANDLED_COMMAND\x10\x07\x12\t\n\x05\x46\x41TAL\x10\x08\x12\x1f\n\x1bPAGINATION_OR_HISTORY_FETCH\x10\t\x12\x1d\n\x19WORKFLOW_EXECUTION_ENDING\x10\nB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowActivationb\x06proto3' + b'\n?temporal/sdk/core/workflow_activation/workflow_activation.proto\x12\x1b\x63oresdk.workflow_activation\x1a\x19google/protobuf/any.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a\x37temporal/sdk/core/activity_result/activity_result.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a#temporal/sdk/core/nexus/nexus.proto"\xef\x04\n\x12WorkflowActivation\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cis_replaying\x18\x03 \x01(\x08\x12\x16\n\x0ehistory_length\x18\x04 \x01(\r\x12@\n\x04jobs\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.WorkflowActivationJob\x12 \n\x18\x61vailable_internal_flags\x18\x06 \x03(\r\x12\x1a\n\x12history_size_bytes\x18\x07 \x01(\x04\x12!\n\x19\x63ontinue_as_new_suggested\x18\x08 \x01(\x08\x12T\n#deployment_version_for_current_task\x18\t \x01(\x0b\x32\'.coresdk.common.WorkerDeploymentVersion\x12\x18\n\x10last_sdk_version\x18\n \x01(\t\x12Z\n\x1fsuggest_continue_as_new_reasons\x18\x0b \x03(\x0e\x32\x31.temporal.api.enums.v1.SuggestContinueAsNewReason\x12\x30\n(target_worker_deployment_version_changed\x18\x0c \x01(\x08\x12K\n\rworkflow_task\x18\r \x01(\x0b\x32\x34.coresdk.workflow_activation.WorkflowTaskHistoryInfo"q\n\x17WorkflowTaskHistoryInfo\x12\x18\n\x10started_event_id\x18\x01 \x01(\x03\x12\x17\n\x0f\x66\x61iled_attempts\x18\x02 \x01(\r\x12#\n\x1b\x63ompleted_started_event_ids\x18\x03 \x03(\x03"\xbb\x0b\n\x15WorkflowActivationJob\x12N\n\x13initialize_workflow\x18\x01 \x01(\x0b\x32/.coresdk.workflow_activation.InitializeWorkflowH\x00\x12<\n\nfire_timer\x18\x02 \x01(\x0b\x32&.coresdk.workflow_activation.FireTimerH\x00\x12K\n\x12update_random_seed\x18\x04 \x01(\x0b\x32-.coresdk.workflow_activation.UpdateRandomSeedH\x00\x12\x44\n\x0equery_workflow\x18\x05 \x01(\x0b\x32*.coresdk.workflow_activation.QueryWorkflowH\x00\x12\x46\n\x0f\x63\x61ncel_workflow\x18\x06 \x01(\x0b\x32+.coresdk.workflow_activation.CancelWorkflowH\x00\x12\x46\n\x0fsignal_workflow\x18\x07 \x01(\x0b\x32+.coresdk.workflow_activation.SignalWorkflowH\x00\x12H\n\x10resolve_activity\x18\x08 \x01(\x0b\x32,.coresdk.workflow_activation.ResolveActivityH\x00\x12G\n\x10notify_has_patch\x18\t \x01(\x0b\x32+.coresdk.workflow_activation.NotifyHasPatchH\x00\x12q\n&resolve_child_workflow_execution_start\x18\n \x01(\x0b\x32?.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartH\x00\x12\x66\n resolve_child_workflow_execution\x18\x0b \x01(\x0b\x32:.coresdk.workflow_activation.ResolveChildWorkflowExecutionH\x00\x12\x66\n resolve_signal_external_workflow\x18\x0c \x01(\x0b\x32:.coresdk.workflow_activation.ResolveSignalExternalWorkflowH\x00\x12u\n(resolve_request_cancel_external_workflow\x18\r \x01(\x0b\x32\x41.coresdk.workflow_activation.ResolveRequestCancelExternalWorkflowH\x00\x12:\n\tdo_update\x18\x0e \x01(\x0b\x32%.coresdk.workflow_activation.DoUpdateH\x00\x12`\n\x1dresolve_nexus_operation_start\x18\x0f \x01(\x0b\x32\x37.coresdk.workflow_activation.ResolveNexusOperationStartH\x00\x12U\n\x17resolve_nexus_operation\x18\x10 \x01(\x0b\x32\x32.coresdk.workflow_activation.ResolveNexusOperationH\x00\x12Y\n\x19workflow_task_attachments\x18\x11 \x01(\x0b\x32\x34.coresdk.workflow_activation.WorkflowTaskAttachmentsH\x00\x12I\n\x11remove_from_cache\x18\x32 \x01(\x0b\x32,.coresdk.workflow_activation.RemoveFromCacheH\x00\x42\t\n\x07variant"\xfc\n\n\x12InitializeWorkflow\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x17\n\x0frandomness_seed\x18\x04 \x01(\x04\x12M\n\x07headers\x18\x05 \x03(\x0b\x32<.coresdk.workflow_activation.InitializeWorkflow.HeadersEntry\x12\x10\n\x08identity\x18\x06 \x01(\t\x12I\n\x14parent_workflow_info\x18\x07 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12=\n\x1aworkflow_execution_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x1f\x63ontinued_from_execution_run_id\x18\x0b \x01(\t\x12J\n\x13\x63ontinued_initiator\x18\x0c \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12;\n\x11\x63ontinued_failure\x18\r \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1e\n\x16\x66irst_execution_run_id\x18\x0f \x01(\t\x12\x39\n\x0cretry_policy\x18\x10 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x0f\n\x07\x61ttempt\x18\x11 \x01(\x05\x12\x15\n\rcron_schedule\x18\x12 \x01(\t\x12\x46\n"workflow_execution_expiration_time\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n"cron_schedule_to_schedule_interval\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x15 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x16 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\nstart_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\rroot_workflow\x18\x18 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x08priority\x18\x19 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12!\n\x19original_execution_run_id\x18\x1a \x01(\t\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x18\n\tFireTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r"m\n\x0fResolveActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.activity_result.ActivityResolution\x12\x10\n\x08is_local\x18\x03 \x01(\x08"\xd1\x02\n"ResolveChildWorkflowExecutionStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12[\n\tsucceeded\x18\x02 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccessH\x00\x12X\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailureH\x00\x12]\n\tcancelled\x18\x04 \x01(\x0b\x32H.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelledH\x00\x42\x08\n\x06status";\n)ResolveChildWorkflowExecutionStartSuccess\x12\x0e\n\x06run_id\x18\x01 \x01(\t"\xa6\x01\n)ResolveChildWorkflowExecutionStartFailure\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x15\n\rworkflow_type\x18\x02 \x01(\t\x12M\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32>.coresdk.child_workflow.StartChildWorkflowExecutionFailedCause"`\n+ResolveChildWorkflowExecutionStartCancelled\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure"i\n\x1dResolveChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.child_workflow.ChildWorkflowResult"+\n\x10UpdateRandomSeed\x12\x17\n\x0frandomness_seed\x18\x01 \x01(\x04"\x84\x02\n\rQueryWorkflow\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_type\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.coresdk.workflow_activation.QueryWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01" \n\x0e\x43\x61ncelWorkflow\x12\x0e\n\x06reason\x18\x01 \x01(\t"\xa1\x02\n\x0eSignalWorkflow\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12.\n\x05input\x18\x02 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x10\n\x08identity\x18\x03 \x01(\t\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.coresdk.workflow_activation.SignalWorkflow.HeadersEntry\x12\x1c\n\x14originating_event_id\x18\x06 \x01(\x03\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01""\n\x0eNotifyHasPatch\x12\x10\n\x08patch_id\x18\x01 \x01(\t"\xb1\x01\n\x1dResolveSignalExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12P\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32\x41.temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause"\xb8\x01\n$ResolveRequestCancelExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12P\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32\x41.temporal.api.enums.v1.CancelExternalWorkflowExecutionFailedCause"\xcb\x02\n\x08\x44oUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x14protocol_instance_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x43\n\x07headers\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.DoUpdate.HeadersEntry\x12*\n\x04meta\x18\x06 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x15\n\rrun_validator\x18\x07 \x01(\x08\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01"\x9a\x01\n\x1aResolveNexusOperationStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x19\n\x0foperation_token\x18\x02 \x01(\tH\x00\x12\x16\n\x0cstarted_sync\x18\x03 \x01(\x08H\x00\x12\x32\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status"Y\n\x15ResolveNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x33\n\x06result\x18\x02 \x01(\x0b\x32#.coresdk.nexus.NexusOperationResult"D\n\x17WorkflowTaskAttachments\x12)\n\x0b\x61ttachments\x18\x01 \x03(\x0b\x32\x14.google.protobuf.Any"\xe0\x02\n\x0fRemoveFromCache\x12\x0f\n\x07message\x18\x01 \x01(\t\x12K\n\x06reason\x18\x02 \x01(\x0e\x32;.coresdk.workflow_activation.RemoveFromCache.EvictionReason"\xee\x01\n\x0e\x45victionReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nCACHE_FULL\x10\x01\x12\x0e\n\nCACHE_MISS\x10\x02\x12\x12\n\x0eNONDETERMINISM\x10\x03\x12\r\n\tLANG_FAIL\x10\x04\x12\x12\n\x0eLANG_REQUESTED\x10\x05\x12\x12\n\x0eTASK_NOT_FOUND\x10\x06\x12\x15\n\x11UNHANDLED_COMMAND\x10\x07\x12\t\n\x05\x46\x41TAL\x10\x08\x12\x1f\n\x1bPAGINATION_OR_HISTORY_FETCH\x10\t\x12\x1d\n\x19WORKFLOW_EXECUTION_ENDING\x10\nB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowActivationb\x06proto3' ) @@ -94,6 +95,7 @@ "ResolveNexusOperationStart" ] _RESOLVENEXUSOPERATION = DESCRIPTOR.message_types_by_name["ResolveNexusOperation"] +_WORKFLOWTASKATTACHMENTS = DESCRIPTOR.message_types_by_name["WorkflowTaskAttachments"] _REMOVEFROMCACHE = DESCRIPTOR.message_types_by_name["RemoveFromCache"] _REMOVEFROMCACHE_EVICTIONREASON = _REMOVEFROMCACHE.enum_types_by_name["EvictionReason"] WorkflowActivation = _reflection.GeneratedProtocolMessageType( @@ -367,6 +369,17 @@ ) _sym_db.RegisterMessage(ResolveNexusOperation) +WorkflowTaskAttachments = _reflection.GeneratedProtocolMessageType( + "WorkflowTaskAttachments", + (_message.Message,), + { + "DESCRIPTOR": _WORKFLOWTASKATTACHMENTS, + "__module__": "temporal.sdk.core.workflow_activation.workflow_activation_pb2", + # @@protoc_insertion_point(class_scope:coresdk.workflow_activation.WorkflowTaskAttachments) + }, +) +_sym_db.RegisterMessage(WorkflowTaskAttachments) + RemoveFromCache = _reflection.GeneratedProtocolMessageType( "RemoveFromCache", (_message.Message,), @@ -391,58 +404,60 @@ _SIGNALWORKFLOW_HEADERSENTRY._serialized_options = b"8\001" _DOUPDATE_HEADERSENTRY._options = None _DOUPDATE_HEADERSENTRY._serialized_options = b"8\001" - _WORKFLOWACTIVATION._serialized_start = 574 - _WORKFLOWACTIVATION._serialized_end = 1197 - _WORKFLOWTASKHISTORYINFO._serialized_start = 1199 - _WORKFLOWTASKHISTORYINFO._serialized_end = 1312 - _WORKFLOWACTIVATIONJOB._serialized_start = 1315 - _WORKFLOWACTIVATIONJOB._serialized_end = 2691 - _INITIALIZEWORKFLOW._serialized_start = 2694 - _INITIALIZEWORKFLOW._serialized_end = 4098 - _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_start = 4019 - _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_end = 4098 - _FIRETIMER._serialized_start = 4100 - _FIRETIMER._serialized_end = 4124 - _RESOLVEACTIVITY._serialized_start = 4126 - _RESOLVEACTIVITY._serialized_end = 4235 - _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_start = 4238 - _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_end = 4575 - _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_start = 4577 - _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_end = 4636 - _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_start = 4639 - _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_end = 4805 - _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_start = 4807 - _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_end = 4903 - _RESOLVECHILDWORKFLOWEXECUTION._serialized_start = 4905 - _RESOLVECHILDWORKFLOWEXECUTION._serialized_end = 5010 - _UPDATERANDOMSEED._serialized_start = 5012 - _UPDATERANDOMSEED._serialized_end = 5055 - _QUERYWORKFLOW._serialized_start = 5058 - _QUERYWORKFLOW._serialized_end = 5318 - _QUERYWORKFLOW_HEADERSENTRY._serialized_start = 4019 - _QUERYWORKFLOW_HEADERSENTRY._serialized_end = 4098 - _CANCELWORKFLOW._serialized_start = 5320 - _CANCELWORKFLOW._serialized_end = 5352 - _SIGNALWORKFLOW._serialized_start = 5355 - _SIGNALWORKFLOW._serialized_end = 5644 - _SIGNALWORKFLOW_HEADERSENTRY._serialized_start = 4019 - _SIGNALWORKFLOW_HEADERSENTRY._serialized_end = 4098 - _NOTIFYHASPATCH._serialized_start = 5646 - _NOTIFYHASPATCH._serialized_end = 5680 - _RESOLVESIGNALEXTERNALWORKFLOW._serialized_start = 5683 - _RESOLVESIGNALEXTERNALWORKFLOW._serialized_end = 5860 - _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_start = 5863 - _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_end = 6047 - _DOUPDATE._serialized_start = 6050 - _DOUPDATE._serialized_end = 6381 - _DOUPDATE_HEADERSENTRY._serialized_start = 4019 - _DOUPDATE_HEADERSENTRY._serialized_end = 4098 - _RESOLVENEXUSOPERATIONSTART._serialized_start = 6384 - _RESOLVENEXUSOPERATIONSTART._serialized_end = 6538 - _RESOLVENEXUSOPERATION._serialized_start = 6540 - _RESOLVENEXUSOPERATION._serialized_end = 6629 - _REMOVEFROMCACHE._serialized_start = 6632 - _REMOVEFROMCACHE._serialized_end = 6984 - _REMOVEFROMCACHE_EVICTIONREASON._serialized_start = 6746 - _REMOVEFROMCACHE_EVICTIONREASON._serialized_end = 6984 + _WORKFLOWACTIVATION._serialized_start = 601 + _WORKFLOWACTIVATION._serialized_end = 1224 + _WORKFLOWTASKHISTORYINFO._serialized_start = 1226 + _WORKFLOWTASKHISTORYINFO._serialized_end = 1339 + _WORKFLOWACTIVATIONJOB._serialized_start = 1342 + _WORKFLOWACTIVATIONJOB._serialized_end = 2809 + _INITIALIZEWORKFLOW._serialized_start = 2812 + _INITIALIZEWORKFLOW._serialized_end = 4216 + _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_start = 4137 + _INITIALIZEWORKFLOW_HEADERSENTRY._serialized_end = 4216 + _FIRETIMER._serialized_start = 4218 + _FIRETIMER._serialized_end = 4242 + _RESOLVEACTIVITY._serialized_start = 4244 + _RESOLVEACTIVITY._serialized_end = 4353 + _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_start = 4356 + _RESOLVECHILDWORKFLOWEXECUTIONSTART._serialized_end = 4693 + _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_start = 4695 + _RESOLVECHILDWORKFLOWEXECUTIONSTARTSUCCESS._serialized_end = 4754 + _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_start = 4757 + _RESOLVECHILDWORKFLOWEXECUTIONSTARTFAILURE._serialized_end = 4923 + _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_start = 4925 + _RESOLVECHILDWORKFLOWEXECUTIONSTARTCANCELLED._serialized_end = 5021 + _RESOLVECHILDWORKFLOWEXECUTION._serialized_start = 5023 + _RESOLVECHILDWORKFLOWEXECUTION._serialized_end = 5128 + _UPDATERANDOMSEED._serialized_start = 5130 + _UPDATERANDOMSEED._serialized_end = 5173 + _QUERYWORKFLOW._serialized_start = 5176 + _QUERYWORKFLOW._serialized_end = 5436 + _QUERYWORKFLOW_HEADERSENTRY._serialized_start = 4137 + _QUERYWORKFLOW_HEADERSENTRY._serialized_end = 4216 + _CANCELWORKFLOW._serialized_start = 5438 + _CANCELWORKFLOW._serialized_end = 5470 + _SIGNALWORKFLOW._serialized_start = 5473 + _SIGNALWORKFLOW._serialized_end = 5762 + _SIGNALWORKFLOW_HEADERSENTRY._serialized_start = 4137 + _SIGNALWORKFLOW_HEADERSENTRY._serialized_end = 4216 + _NOTIFYHASPATCH._serialized_start = 5764 + _NOTIFYHASPATCH._serialized_end = 5798 + _RESOLVESIGNALEXTERNALWORKFLOW._serialized_start = 5801 + _RESOLVESIGNALEXTERNALWORKFLOW._serialized_end = 5978 + _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_start = 5981 + _RESOLVEREQUESTCANCELEXTERNALWORKFLOW._serialized_end = 6165 + _DOUPDATE._serialized_start = 6168 + _DOUPDATE._serialized_end = 6499 + _DOUPDATE_HEADERSENTRY._serialized_start = 4137 + _DOUPDATE_HEADERSENTRY._serialized_end = 4216 + _RESOLVENEXUSOPERATIONSTART._serialized_start = 6502 + _RESOLVENEXUSOPERATIONSTART._serialized_end = 6656 + _RESOLVENEXUSOPERATION._serialized_start = 6658 + _RESOLVENEXUSOPERATION._serialized_end = 6747 + _WORKFLOWTASKATTACHMENTS._serialized_start = 6749 + _WORKFLOWTASKATTACHMENTS._serialized_end = 6817 + _REMOVEFROMCACHE._serialized_start = 6820 + _REMOVEFROMCACHE._serialized_end = 7172 + _REMOVEFROMCACHE_EVICTIONREASON._serialized_start = 6934 + _REMOVEFROMCACHE_EVICTIONREASON._serialized_end = 7172 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi index 689ef37baf..c56aeab5b9 100644 --- a/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi +++ b/temporalio/bridge/proto/workflow_activation/workflow_activation_pb2.pyi @@ -11,6 +11,7 @@ import collections.abc import sys import typing +import google.protobuf.any_pb2 import google.protobuf.descriptor import google.protobuf.duration_pb2 import google.protobuf.internal.containers @@ -297,6 +298,7 @@ class WorkflowActivationJob(google.protobuf.message.Message): DO_UPDATE_FIELD_NUMBER: builtins.int RESOLVE_NEXUS_OPERATION_START_FIELD_NUMBER: builtins.int RESOLVE_NEXUS_OPERATION_FIELD_NUMBER: builtins.int + WORKFLOW_TASK_ATTACHMENTS_FIELD_NUMBER: builtins.int REMOVE_FROM_CACHE_FIELD_NUMBER: builtins.int @property def initialize_workflow(self) -> global___InitializeWorkflow: @@ -357,6 +359,9 @@ class WorkflowActivationJob(google.protobuf.message.Message): def resolve_nexus_operation(self) -> global___ResolveNexusOperation: """A nexus operation resolved.""" @property + def workflow_task_attachments(self) -> global___WorkflowTaskAttachments: + """Attachments from the scheduled events of this Workflow Task.""" + @property def remove_from_cache(self) -> global___RemoveFromCache: """Remove the workflow identified by the [WorkflowActivation] containing this job from the cache after performing the activation. It is guaranteed that this will be the only job @@ -384,6 +389,7 @@ class WorkflowActivationJob(google.protobuf.message.Message): do_update: global___DoUpdate | None = ..., resolve_nexus_operation_start: global___ResolveNexusOperationStart | None = ..., resolve_nexus_operation: global___ResolveNexusOperation | None = ..., + workflow_task_attachments: global___WorkflowTaskAttachments | None = ..., remove_from_cache: global___RemoveFromCache | None = ..., ) -> None: ... def HasField( @@ -423,6 +429,8 @@ class WorkflowActivationJob(google.protobuf.message.Message): b"update_random_seed", "variant", b"variant", + "workflow_task_attachments", + b"workflow_task_attachments", ], ) -> builtins.bool: ... def ClearField( @@ -462,6 +470,8 @@ class WorkflowActivationJob(google.protobuf.message.Message): b"update_random_seed", "variant", b"variant", + "workflow_task_attachments", + b"workflow_task_attachments", ], ) -> None: ... def WhichOneof( @@ -483,6 +493,7 @@ class WorkflowActivationJob(google.protobuf.message.Message): "do_update", "resolve_nexus_operation_start", "resolve_nexus_operation", + "workflow_task_attachments", "remove_from_cache", ] | None @@ -1514,6 +1525,34 @@ class ResolveNexusOperation(google.protobuf.message.Message): global___ResolveNexusOperation = ResolveNexusOperation +class WorkflowTaskAttachments(google.protobuf.message.Message): + """The attachments the server put on the scheduled events of a Workflow Task. + + Core issues at most one per Workflow Task, in the task's first activation, after the task's + other events. It comes from History, so replay issues the same job at the same point. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ATTACHMENTS_FIELD_NUMBER: builtins.int + @property + def attachments( + self, + ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[ + google.protobuf.any_pb2.Any + ]: + """In event order. A failed task's scheduled event and its retry's both count.""" + def __init__( + self, + *, + attachments: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ..., + ) -> None: ... + def ClearField( + self, field_name: typing_extensions.Literal["attachments", b"attachments"] + ) -> None: ... + +global___WorkflowTaskAttachments = WorkflowTaskAttachments + class RemoveFromCache(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.py b/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.py index 057b301e41..895e2feed6 100644 --- a/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.py +++ b/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.py @@ -31,7 +31,7 @@ ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n?temporal/sdk/core/workflow_completion/workflow_completion.proto\x12\x1b\x63oresdk.workflow_completion\x1a%temporal/api/failure/v1/message.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a;temporal/sdk/core/workflow_commands/workflow_commands.proto"\xbe\x02\n\x1cWorkflowActivationCompletion\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12:\n\nsuccessful\x18\x02 \x01(\x0b\x32$.coresdk.workflow_completion.SuccessH\x00\x12\x36\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32$.coresdk.workflow_completion.FailureH\x00\x12H\n\x18payload_download_metrics\x18\x04 \x01(\x0b\x32&.coresdk.common.ExternalStorageMetrics\x12\x46\n\x16payload_upload_metrics\x18\x05 \x01(\x0b\x32&.coresdk.common.ExternalStorageMetricsB\x08\n\x06status"\xac\x01\n\x07Success\x12<\n\x08\x63ommands\x18\x01 \x03(\x0b\x32*.coresdk.workflow_commands.WorkflowCommand\x12\x1b\n\x13used_internal_flags\x18\x06 \x03(\r\x12\x46\n\x13versioning_behavior\x18\x07 \x01(\x0e\x32).temporal.api.enums.v1.VersioningBehavior"\x81\x01\n\x07\x46\x61ilure\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x43\n\x0b\x66orce_cause\x18\x02 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCauseB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowCompletionb\x06proto3' + b'\n?temporal/sdk/core/workflow_completion/workflow_completion.proto\x12\x1b\x63oresdk.workflow_completion\x1a%temporal/api/failure/v1/message.proto\x1a(temporal/api/enums/v1/failed_cause.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a;temporal/sdk/core/workflow_commands/workflow_commands.proto"\xbe\x02\n\x1cWorkflowActivationCompletion\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12:\n\nsuccessful\x18\x02 \x01(\x0b\x32$.coresdk.workflow_completion.SuccessH\x00\x12\x36\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32$.coresdk.workflow_completion.FailureH\x00\x12H\n\x18payload_download_metrics\x18\x04 \x01(\x0b\x32&.coresdk.common.ExternalStorageMetrics\x12\x46\n\x16payload_upload_metrics\x18\x05 \x01(\x0b\x32&.coresdk.common.ExternalStorageMetricsB\x08\n\x06status"\xc4\x01\n\x07Success\x12<\n\x08\x63ommands\x18\x01 \x03(\x0b\x32*.coresdk.workflow_commands.WorkflowCommand\x12\x1b\n\x13used_internal_flags\x18\x06 \x03(\r\x12\x46\n\x13versioning_behavior\x18\x07 \x01(\x0e\x32).temporal.api.enums.v1.VersioningBehavior\x12\x16\n\x0eheartbeat_task\x18\x08 \x01(\x08"\x81\x01\n\x07\x46\x61ilure\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12\x43\n\x0b\x66orce_cause\x18\x02 \x01(\x0e\x32..temporal.api.enums.v1.WorkflowTaskFailedCauseB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowCompletionb\x06proto3' ) @@ -81,7 +81,7 @@ _WORKFLOWACTIVATIONCOMPLETION._serialized_start = 316 _WORKFLOWACTIVATIONCOMPLETION._serialized_end = 634 _SUCCESS._serialized_start = 637 - _SUCCESS._serialized_end = 809 - _FAILURE._serialized_start = 812 - _FAILURE._serialized_end = 941 + _SUCCESS._serialized_end = 833 + _FAILURE._serialized_start = 836 + _FAILURE._serialized_end = 965 # @@protoc_insertion_point(module_scope) diff --git a/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.pyi b/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.pyi index 8e12736aae..4754754f05 100644 --- a/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.pyi +++ b/temporalio/bridge/proto/workflow_completion/workflow_completion_pb2.pyi @@ -111,6 +111,7 @@ class Success(google.protobuf.message.Message): COMMANDS_FIELD_NUMBER: builtins.int USED_INTERNAL_FLAGS_FIELD_NUMBER: builtins.int VERSIONING_BEHAVIOR_FIELD_NUMBER: builtins.int + HEARTBEAT_TASK_FIELD_NUMBER: builtins.int @property def commands( self, @@ -127,6 +128,13 @@ class Success(google.protobuf.message.Message): temporalio.api.enums.v1.workflow_pb2.VersioningBehavior.ValueType ) """The versioning behavior this workflow is currently using""" + heartbeat_task: builtins.bool + """Asks Core to complete the workflow task now if local activities are still running, as it + does at a local activity heartbeat. The completion carries the commands and markers so far + and asks the server for a new task, and the local activities run on. Lang sets it from a + count or a clock, so Core ignores it while replaying. Without running local activities, + the task completes as it would anyway. + """ def __init__( self, *, @@ -136,12 +144,15 @@ class Success(google.protobuf.message.Message): | None = ..., used_internal_flags: collections.abc.Iterable[builtins.int] | None = ..., versioning_behavior: temporalio.api.enums.v1.workflow_pb2.VersioningBehavior.ValueType = ..., + heartbeat_task: builtins.bool = ..., ) -> None: ... def ClearField( self, field_name: typing_extensions.Literal[ "commands", b"commands", + "heartbeat_task", + b"heartbeat_task", "used_internal_flags", b"used_internal_flags", "versioning_behavior", diff --git a/temporalio/bridge/sdk-core b/temporalio/bridge/sdk-core index c7080de903..bfe826f78c 160000 --- a/temporalio/bridge/sdk-core +++ b/temporalio/bridge/sdk-core @@ -1 +1 @@ -Subproject commit c7080de90343c07d665f8b9abac956498a46d210 +Subproject commit bfe826f78c372e2ce5c42f312464981c09a6d034 diff --git a/temporalio/bridge/streams_generated.py b/temporalio/bridge/streams_generated.py index 130a82eb1a..2a20ca6f2a 100644 --- a/temporalio/bridge/streams_generated.py +++ b/temporalio/bridge/streams_generated.py @@ -5,6 +5,7 @@ from typing import TYPE_CHECKING +import temporalio.api.workflowservice.v1 import temporalio.bridge.proto.streams if TYPE_CHECKING: @@ -50,6 +51,26 @@ async def describe_store( "DescribeStore", req, temporalio.bridge.proto.streams.DescribeStoreResponse ) + async def describe_stream_notifier( + self, req: temporalio.api.workflowservice.v1.DescribeStreamNotifierRequest + ) -> temporalio.api.workflowservice.v1.DescribeStreamNotifierResponse: + """Invokes the StreamService.describe_stream_notifier call.""" + return await self._store.call( + "DescribeStreamNotifier", + req, + temporalio.api.workflowservice.v1.DescribeStreamNotifierResponse, + ) + + async def flush_notifications( + self, req: temporalio.bridge.proto.streams.FlushNotificationsRequest + ) -> temporalio.bridge.proto.streams.FlushNotificationsResponse: + """Invokes the StreamService.flush_notifications call.""" + return await self._store.call( + "FlushNotifications", + req, + temporalio.bridge.proto.streams.FlushNotificationsResponse, + ) + async def follow( self, req: temporalio.bridge.proto.streams.FollowRequest ) -> temporalio.bridge.proto.streams.FollowResponse: @@ -58,6 +79,14 @@ async def follow( "Follow", req, temporalio.bridge.proto.streams.FollowResponse ) + async def follow_range( + self, req: temporalio.bridge.proto.streams.FollowRangeRequest + ) -> temporalio.bridge.proto.streams.FollowResponse: + """Invokes the StreamService.follow_range call.""" + return await self._store.call( + "FollowRange", req, temporalio.bridge.proto.streams.FollowResponse + ) + async def latest( self, req: temporalio.bridge.proto.streams.LatestRequest ) -> temporalio.bridge.proto.streams.LatestResponse: @@ -84,6 +113,22 @@ async def read( "Read", req, temporalio.bridge.proto.streams.ReadResponse ) + async def read_range( + self, req: temporalio.bridge.proto.streams.ReadRangeRequest + ) -> temporalio.bridge.proto.streams.ReadResponse: + """Invokes the StreamService.read_range call.""" + return await self._store.call( + "ReadRange", req, temporalio.bridge.proto.streams.ReadResponse + ) + + async def release_floor( + self, req: temporalio.bridge.proto.streams.ReleaseFloorRequest + ) -> temporalio.bridge.proto.streams.ReleaseFloorResponse: + """Invokes the StreamService.release_floor call.""" + return await self._store.call( + "ReleaseFloor", req, temporalio.bridge.proto.streams.ReleaseFloorResponse + ) + async def retire_producer( self, req: temporalio.bridge.proto.streams.RetireProducerRequest ) -> temporalio.bridge.proto.streams.RetireProducerResponse: @@ -111,3 +156,29 @@ async def shutdown_worker( req, temporalio.bridge.proto.streams.ShutdownWorkerResponse, ) + + async def subscribe( + self, req: temporalio.bridge.proto.streams.SubscribeRequest + ) -> temporalio.bridge.proto.streams.SubscribeResponse: + """Invokes the StreamService.subscribe call.""" + return await self._store.call( + "Subscribe", req, temporalio.bridge.proto.streams.SubscribeResponse + ) + + async def unsubscribe( + self, req: temporalio.bridge.proto.streams.UnsubscribeRequest + ) -> temporalio.bridge.proto.streams.UnsubscribeResponse: + """Invokes the StreamService.unsubscribe call.""" + return await self._store.call( + "Unsubscribe", req, temporalio.bridge.proto.streams.UnsubscribeResponse + ) + + async def wait_for_notification( + self, req: temporalio.bridge.proto.streams.WaitForNotificationRequest + ) -> temporalio.bridge.proto.streams.WaitForNotificationResponse: + """Invokes the StreamService.wait_for_notification call.""" + return await self._store.call( + "WaitForNotification", + req, + temporalio.bridge.proto.streams.WaitForNotificationResponse, + ) diff --git a/temporalio/contrib/streams/__init__.py b/temporalio/contrib/streams/__init__.py index 7fce16b106..9cebf91961 100644 --- a/temporalio/contrib/streams/__init__.py +++ b/temporalio/contrib/streams/__init__.py @@ -77,6 +77,8 @@ StreamProducerError, StreamRecordError, StreamRefusedError, + StreamReplayMismatchError, + StreamReplayRangeLostError, StreamStorageError, StreamUnsupportedError, ) @@ -141,6 +143,8 @@ "StreamRecordError", "StreamRef", "StreamRefusedError", + "StreamReplayMismatchError", + "StreamReplayRangeLostError", "StreamStorageError", "StreamStorePlugin", "StreamTopic", diff --git a/temporalio/contrib/streams/_errors.py b/temporalio/contrib/streams/_errors.py index 8e38141b1b..6f4b1f85ef 100644 --- a/temporalio/contrib/streams/_errors.py +++ b/temporalio/contrib/streams/_errors.py @@ -35,6 +35,8 @@ "StreamProducerError", "StreamRecordError", "StreamRefusedError", + "StreamReplayMismatchError", + "StreamReplayRangeLostError", "StreamStorageError", "StreamUnsupportedError", ] @@ -143,6 +145,23 @@ class StreamUnsupportedError(StreamError): """The capability is not offered by this release or by this store.""" +class StreamReplayMismatchError(StreamError): + """A replay read found other records than the read it repeats. + + Other content, another count or another end. A positions-only Workflow + reader reports it as nondeterminism, so the Workflow Task fails. + """ + + +class StreamReplayRangeLostError(StreamError): + """A replay read found that the store no longer holds the range it repeats. + + Retention trimmed the records, or the stream was deleted. The Workflow + Task fails and is retried, so an operator can restore the store, reset + the Workflow past the read, or replay with recorded batches. + """ + + _BY_KIND: dict[int, type[StreamError]] = { StreamFailureKind.STREAM_FAILURE_KIND_PRODUCER_DIVERGENT: StreamProducerError, StreamFailureKind.STREAM_FAILURE_KIND_PRODUCER_STALE: StreamProducerError, @@ -154,6 +173,8 @@ class StreamUnsupportedError(StreamError): StreamFailureKind.STREAM_FAILURE_KIND_NOT_FOUND: StreamNotFoundError, StreamFailureKind.STREAM_FAILURE_KIND_STORAGE: StreamStorageError, StreamFailureKind.STREAM_FAILURE_KIND_UNSUPPORTED: StreamUnsupportedError, + StreamFailureKind.STREAM_FAILURE_KIND_REPLAY_MISMATCH: StreamReplayMismatchError, + StreamFailureKind.STREAM_FAILURE_KIND_REPLAY_RANGE_LOST: StreamReplayRangeLostError, } diff --git a/temporalio/contrib/streams/docs/redis-guarantees.md b/temporalio/contrib/streams/docs/redis-guarantees.md index f153854b6f..68df0f259d 100644 --- a/temporalio/contrib/streams/docs/redis-guarantees.md +++ b/temporalio/contrib/streams/docs/redis-guarantees.md @@ -121,7 +121,7 @@ Every key of a namespace's streams starts with one namespace's applications: ``` -ACL SETUSER streams-app on >secret resetkeys ~temporal-streams:{my-ns:* resetchannels -@all +evalsha +eval +script|load +multi +exec +xadd +xread +xrevrange +xrange +xtrim +xlen +hget +hset +hgetall +hincrby +hdel +hscan +rpush +lrange +exists +del +unlink +pexpire +pttl +time +info +config|get +ping +hello +client|setinfo +cluster|slots +ACL SETUSER streams-app on >secret resetkeys ~temporal-streams:{my-ns:* resetchannels -@all +evalsha +eval +script|load +multi +exec +xadd +xread +xrevrange +xrange +xtrim +xlen +hget +hset +hgetall +hlen +hincrby +hdel +hscan +sadd +smembers +rpush +lrange +exists +del +unlink +pexpire +pttl +time +info +config|get +ping +hello +client|setinfo +cluster|slots ``` The stream runtime's conformance suite runs as a user with exactly these diff --git a/temporalio/contrib/streams/docs/store-capabilities.md b/temporalio/contrib/streams/docs/store-capabilities.md index d8d7dc940f..f170780afa 100644 --- a/temporalio/contrib/streams/docs/store-capabilities.md +++ b/temporalio/contrib/streams/docs/store-capabilities.md @@ -79,8 +79,8 @@ Y means the store has it, and N means the stream runtime takes the fallback. | Store | Producer state | Kept last | Holds | Change feed | Cheap logs | Delete | Listing | Long poll | |---|---|---|---|---|---|---|---|---| -| `MemoryStreams()` | Y | Y | N | N | Y | Y | Y | Y | -| `RedisStreams(...)` | Y | Y | N | N | Y | Y | Y | Y | +| `MemoryStreams()` | Y | Y | Y | N | Y | Y | Y | Y | +| `RedisStreams(...)` | Y | Y | Y | N | Y | Y | Y | Y | | `RedisStreams(..., plain=True)` | N | N | N | N | Y | Y | Y | Y | `RedisStreams(plain=True)` runs no Lua scripts. Use it on a Redis that diff --git a/tests/contrib/streams/test_errors_cursors.py b/tests/contrib/streams/test_errors_cursors.py index f955d1e29e..31c5e30453 100644 --- a/tests/contrib/streams/test_errors_cursors.py +++ b/tests/contrib/streams/test_errors_cursors.py @@ -16,6 +16,8 @@ StreamProducerError, StreamRecordError, StreamRefusedError, + StreamReplayMismatchError, + StreamReplayRangeLostError, StreamStorageError, StreamUnsupportedError, ) @@ -65,6 +67,8 @@ def test_each_core_failure_kind_raises_its_error(): StreamFailureKind.STREAM_FAILURE_KIND_STORAGE: StreamStorageError, StreamFailureKind.STREAM_FAILURE_KIND_UNSUPPORTED: StreamUnsupportedError, StreamFailureKind.STREAM_FAILURE_KIND_INVALID_ARGUMENT: ValueError, + StreamFailureKind.STREAM_FAILURE_KIND_REPLAY_MISMATCH: StreamReplayMismatchError, + StreamFailureKind.STREAM_FAILURE_KIND_REPLAY_RANGE_LOST: StreamReplayRangeLostError, } # Every kind the stream runtime defines has its error, so a new kind fails # here first. diff --git a/tests/contrib/streams/test_follow.py b/tests/contrib/streams/test_follow.py index b69725582d..777c5284b3 100644 --- a/tests/contrib/streams/test_follow.py +++ b/tests/contrib/streams/test_follow.py @@ -238,48 +238,6 @@ async def test_a_link_back_to_an_open_stream_is_a_cycle(client: Client): ] -async def test_a_retry_that_writes_the_same_open_resumes_the_child(client: Client): - streams = await connect_with(client, MemoryStreams()) - async with new_worker(streams, Waits) as worker: - agent_id = await running_owner(streams, worker.task_queue) - child_id = await running_owner(streams, worker.task_queue) - agent = stream_handle(streams, agent_id, topic=EVENTS) - child = stream_handle(streams, child_id, topic=EVENTS) - await child.producer(producer_id="c", attempt=1).append("c1", "c2") - for attempt in (1, 2): - writes = agent.producer(producer_id="tool", attempt=attempt) - await writes.append(f"m{attempt}") - await writes.link(child.ref, name="child") - for workflow_id in (child_id, agent_id): - owner = streams.get_workflow_handle(workflow_id) - await owner.signal(Waits.finish) - await owner.result() - items = await collect(agent.follow()) - assert shape(items) == [ - "m1", - "OPEN:child", - "OPENED:child", - "DONE:child:withdrawn", - "m2", - "OPEN:child", - "OPENED:child:resumed", - "c1", - "c2", - "DONE:child", - ] - states = [item for item in items if item.link_state is not None] - assert [item.link_state.reason for item in states if item.link_state] == [ - "", - "withdrawn", - "resumed", - "", - ] - assert len({item.source for item in states}) == 1, "the child keeps its source" - assert any( - item.record and item.record.kind is RecordKind.SUPERSEDED for item in items - ) - - async def test_a_missing_child_is_unavailable_after_the_grace(client: Client): streams = await connect_with(client, MemoryStreams(owner_start_grace=timedelta(0))) async with new_worker(streams, Waits) as worker: