temporalio 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/Cargo.lock +4324 -0
  4. data/Cargo.toml +25 -0
  5. data/Gemfile +20 -0
  6. data/LICENSE +16 -15
  7. data/README.md +985 -183
  8. data/Rakefile +101 -0
  9. data/ext/Cargo.toml +26 -0
  10. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  11. data/lib/temporalio/activity/context.rb +86 -78
  12. data/lib/temporalio/activity/definition.rb +175 -0
  13. data/lib/temporalio/activity/info.rb +44 -47
  14. data/lib/temporalio/activity.rb +8 -81
  15. data/lib/temporalio/api/activity/v1/message.rb +25 -0
  16. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  17. data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
  18. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +126 -0
  19. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  20. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  21. data/lib/temporalio/api/cloud/identity/v1/message.rb +41 -0
  22. data/lib/temporalio/api/cloud/namespace/v1/message.rb +42 -0
  23. data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
  24. data/lib/temporalio/api/cloud/operation/v1/message.rb +28 -0
  25. data/lib/temporalio/api/cloud/region/v1/message.rb +24 -0
  26. data/lib/temporalio/api/cloud/resource/v1/message.rb +23 -0
  27. data/lib/temporalio/api/cloud/sink/v1/message.rb +24 -0
  28. data/lib/temporalio/api/cloud/usage/v1/message.rb +31 -0
  29. data/lib/temporalio/api/command/v1/message.rb +46 -0
  30. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  31. data/lib/temporalio/api/common/v1/message.rb +47 -0
  32. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  33. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  35. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  36. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  37. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  38. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  39. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  40. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  41. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  42. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  43. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  44. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  45. data/lib/temporalio/api/export/v1/message.rb +24 -0
  46. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  47. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  48. data/lib/temporalio/api/history/v1/message.rb +90 -0
  49. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  50. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  51. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  52. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  53. data/lib/temporalio/api/operatorservice.rb +3 -0
  54. data/lib/temporalio/api/payload_visitor.rb +1513 -0
  55. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  56. data/lib/temporalio/api/query/v1/message.rb +27 -0
  57. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  58. data/lib/temporalio/api/schedule/v1/message.rb +43 -0
  59. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  60. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  61. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  62. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  63. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  64. data/lib/{gen/temporal/api/testservice/v1/request_response_pb.rb → temporalio/api/testservice/v1/request_response.rb} +6 -24
  65. data/lib/temporalio/api/testservice/v1/service.rb +23 -0
  66. data/lib/temporalio/api/update/v1/message.rb +33 -0
  67. data/lib/temporalio/api/version/v1/message.rb +26 -0
  68. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  69. data/lib/temporalio/api/workflowservice/v1/request_response.rb +204 -0
  70. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  71. data/lib/temporalio/api/workflowservice.rb +3 -0
  72. data/lib/temporalio/api.rb +14 -0
  73. data/lib/temporalio/cancellation.rb +170 -0
  74. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  75. data/lib/temporalio/client/async_activity_handle.rb +85 -0
  76. data/lib/temporalio/client/connection/cloud_service.rb +726 -0
  77. data/lib/temporalio/client/connection/operator_service.rb +201 -0
  78. data/lib/temporalio/client/connection/service.rb +42 -0
  79. data/lib/temporalio/client/connection/test_service.rb +111 -0
  80. data/lib/temporalio/client/connection/workflow_service.rb +1041 -0
  81. data/lib/temporalio/client/connection.rb +316 -0
  82. data/lib/temporalio/client/interceptor.rb +416 -0
  83. data/lib/temporalio/client/schedule.rb +967 -0
  84. data/lib/temporalio/client/schedule_handle.rb +126 -0
  85. data/lib/temporalio/client/workflow_execution.rb +100 -0
  86. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  87. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  88. data/lib/temporalio/client/workflow_handle.rb +326 -180
  89. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  90. data/lib/temporalio/client/workflow_update_handle.rb +65 -0
  91. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  92. data/lib/temporalio/client.rb +447 -94
  93. data/lib/temporalio/common_enums.rb +41 -0
  94. data/lib/temporalio/converters/data_converter.rb +99 -0
  95. data/lib/temporalio/converters/failure_converter.rb +202 -0
  96. data/lib/temporalio/converters/payload_codec.rb +26 -0
  97. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  98. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  99. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  100. data/lib/temporalio/converters/payload_converter/composite.rb +66 -0
  101. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  102. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  103. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  104. data/lib/temporalio/converters/payload_converter.rb +71 -0
  105. data/lib/temporalio/converters/raw_value.rb +20 -0
  106. data/lib/temporalio/converters.rb +9 -0
  107. data/lib/temporalio/error/failure.rb +119 -94
  108. data/lib/temporalio/error.rb +155 -0
  109. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  110. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  111. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  112. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  113. data/lib/temporalio/internal/bridge/api/core_interface.rb +40 -0
  114. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  115. data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
  116. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +56 -0
  117. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +57 -0
  118. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  119. data/lib/temporalio/internal/bridge/api.rb +3 -0
  120. data/lib/temporalio/internal/bridge/client.rb +95 -0
  121. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  122. data/lib/temporalio/internal/bridge/testing.rb +66 -0
  123. data/lib/temporalio/internal/bridge/worker.rb +85 -0
  124. data/lib/temporalio/internal/bridge.rb +36 -0
  125. data/lib/temporalio/internal/client/implementation.rb +700 -0
  126. data/lib/temporalio/internal/metric.rb +122 -0
  127. data/lib/temporalio/internal/proto_utils.rb +133 -0
  128. data/lib/temporalio/internal/worker/activity_worker.rb +373 -0
  129. data/lib/temporalio/internal/worker/multi_runner.rb +213 -0
  130. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +54 -0
  131. data/lib/temporalio/internal/worker/workflow_instance/context.rb +329 -0
  132. data/lib/temporalio/internal/worker/workflow_instance/details.rb +44 -0
  133. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +32 -0
  134. data/lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb +22 -0
  135. data/lib/temporalio/internal/worker/workflow_instance/handler_execution.rb +25 -0
  136. data/lib/temporalio/internal/worker/workflow_instance/handler_hash.rb +41 -0
  137. data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +97 -0
  138. data/lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb +62 -0
  139. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +415 -0
  140. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb +37 -0
  141. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb +40 -0
  142. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +163 -0
  143. data/lib/temporalio/internal/worker/workflow_instance.rb +730 -0
  144. data/lib/temporalio/internal/worker/workflow_worker.rb +196 -0
  145. data/lib/temporalio/internal.rb +7 -0
  146. data/lib/temporalio/metric.rb +109 -0
  147. data/lib/temporalio/retry_policy.rb +55 -73
  148. data/lib/temporalio/runtime.rb +302 -13
  149. data/lib/temporalio/scoped_logger.rb +96 -0
  150. data/lib/temporalio/search_attributes.rb +343 -0
  151. data/lib/temporalio/testing/activity_environment.rb +132 -0
  152. data/lib/temporalio/testing/workflow_environment.rb +345 -74
  153. data/lib/temporalio/testing.rb +4 -169
  154. data/lib/temporalio/version.rb +3 -1
  155. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  156. data/lib/temporalio/worker/activity_executor/thread_pool.rb +46 -0
  157. data/lib/temporalio/worker/activity_executor.rb +55 -0
  158. data/lib/temporalio/worker/interceptor.rb +362 -0
  159. data/lib/temporalio/worker/thread_pool.rb +237 -0
  160. data/lib/temporalio/worker/tuner.rb +151 -0
  161. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +230 -0
  162. data/lib/temporalio/worker/workflow_executor.rb +26 -0
  163. data/lib/temporalio/worker.rb +554 -161
  164. data/lib/temporalio/workflow/activity_cancellation_type.rb +20 -0
  165. data/lib/temporalio/workflow/child_workflow_cancellation_type.rb +21 -0
  166. data/lib/temporalio/workflow/child_workflow_handle.rb +43 -0
  167. data/lib/temporalio/workflow/definition.rb +566 -0
  168. data/lib/temporalio/workflow/external_workflow_handle.rb +41 -0
  169. data/lib/temporalio/workflow/future.rb +117 -104
  170. data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
  171. data/lib/temporalio/workflow/info.rb +63 -57
  172. data/lib/temporalio/workflow/parent_close_policy.rb +19 -0
  173. data/lib/temporalio/workflow/update_info.rb +20 -0
  174. data/lib/temporalio/workflow.rb +523 -0
  175. data/lib/temporalio/workflow_history.rb +22 -0
  176. data/lib/temporalio.rb +6 -7
  177. data/temporalio.gemspec +20 -39
  178. metadata +171 -710
  179. data/bridge/Cargo.lock +0 -2997
  180. data/bridge/Cargo.toml +0 -29
  181. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  182. data/bridge/sdk-core/Cargo.toml +0 -2
  183. data/bridge/sdk-core/LICENSE.txt +0 -23
  184. data/bridge/sdk-core/README.md +0 -117
  185. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  186. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  187. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  188. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  189. data/bridge/sdk-core/client/Cargo.toml +0 -40
  190. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  191. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  192. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  193. data/bridge/sdk-core/client/src/raw.rs +0 -932
  194. data/bridge/sdk-core/client/src/retry.rs +0 -763
  195. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  196. data/bridge/sdk-core/core/Cargo.toml +0 -129
  197. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  198. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  199. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  200. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  201. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  202. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  203. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  204. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  205. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  206. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  207. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  208. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  209. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  210. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  211. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  212. data/bridge/sdk-core/core/src/lib.rs +0 -289
  213. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  214. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  215. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  216. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  217. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  218. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  219. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  220. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  221. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  222. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  223. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  224. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  225. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  226. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  227. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  228. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  229. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  230. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  231. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  232. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  233. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  234. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  235. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  236. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  237. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  238. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  239. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  240. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  241. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  242. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  243. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  244. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  245. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  246. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  247. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  248. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  249. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  250. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  251. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  252. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  253. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  254. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  255. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  256. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  257. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  258. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  259. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  260. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  261. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  262. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  263. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  264. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  265. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  266. data/bridge/sdk-core/etc/deps.svg +0 -162
  267. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  268. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  269. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  270. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  271. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  272. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  273. data/bridge/sdk-core/fsm/README.md +0 -3
  274. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  275. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  276. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  277. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  278. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  279. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  280. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  281. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  282. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  283. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  284. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  285. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  286. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  287. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  288. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  289. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  290. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  291. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  292. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  293. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  294. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  295. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  296. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  297. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  298. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  299. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  300. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  301. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  302. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  303. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  304. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  305. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  306. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  307. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  308. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  309. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  310. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  311. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  312. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  313. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  314. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  315. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  316. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  317. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  318. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  319. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  320. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  321. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  322. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  323. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  324. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  325. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  326. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  327. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  328. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  329. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  330. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  331. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  332. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  333. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  334. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  335. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  336. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  337. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  338. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  339. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  340. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  341. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  342. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  343. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  344. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  345. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  346. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  347. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  348. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  349. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  350. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  351. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  352. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  353. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  354. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  355. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  356. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  357. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  358. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  359. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  360. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  361. data/bridge/sdk-core/rustfmt.toml +0 -1
  362. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  363. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  364. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  365. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  366. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  367. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  368. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  369. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  370. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  371. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  372. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  373. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  374. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  375. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  376. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  377. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  378. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  379. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  380. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  381. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  382. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  383. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  384. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  385. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  386. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  387. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  388. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  389. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  390. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  391. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  392. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  393. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  394. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  395. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  396. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  397. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  398. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  399. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  400. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  401. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  402. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  403. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  404. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  405. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  406. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  407. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  408. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  409. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  410. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  411. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  412. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  413. data/bridge/sdk-core/tests/main.rs +0 -103
  414. data/bridge/sdk-core/tests/runner.rs +0 -132
  415. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  416. data/bridge/src/connection.rs +0 -202
  417. data/bridge/src/lib.rs +0 -494
  418. data/bridge/src/runtime.rs +0 -54
  419. data/bridge/src/test_server.rs +0 -153
  420. data/bridge/src/worker.rs +0 -197
  421. data/ext/Rakefile +0 -9
  422. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  423. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  424. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  425. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  426. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  427. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  428. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  429. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  430. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  431. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  432. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  433. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  434. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  435. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  436. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  437. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  438. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  439. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  440. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  441. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  442. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  443. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  444. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  445. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  446. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  447. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  448. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  449. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  450. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  451. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  452. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  453. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  454. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  455. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  456. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  457. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  458. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  459. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  460. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  461. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  462. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  463. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  464. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  465. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  466. data/lib/temporalio/bridge/connect_options.rb +0 -15
  467. data/lib/temporalio/bridge/error.rb +0 -8
  468. data/lib/temporalio/bridge/retry_config.rb +0 -24
  469. data/lib/temporalio/bridge/tls_options.rb +0 -19
  470. data/lib/temporalio/bridge.rb +0 -14
  471. data/lib/temporalio/client/implementation.rb +0 -340
  472. data/lib/temporalio/connection/retry_config.rb +0 -44
  473. data/lib/temporalio/connection/service.rb +0 -20
  474. data/lib/temporalio/connection/test_service.rb +0 -92
  475. data/lib/temporalio/connection/tls_options.rb +0 -51
  476. data/lib/temporalio/connection/workflow_service.rb +0 -731
  477. data/lib/temporalio/connection.rb +0 -86
  478. data/lib/temporalio/data_converter.rb +0 -191
  479. data/lib/temporalio/error/workflow_failure.rb +0 -19
  480. data/lib/temporalio/errors.rb +0 -40
  481. data/lib/temporalio/failure_converter/base.rb +0 -26
  482. data/lib/temporalio/failure_converter/basic.rb +0 -319
  483. data/lib/temporalio/failure_converter.rb +0 -7
  484. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  485. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  486. data/lib/temporalio/interceptor/chain.rb +0 -28
  487. data/lib/temporalio/interceptor/client.rb +0 -127
  488. data/lib/temporalio/interceptor.rb +0 -22
  489. data/lib/temporalio/payload_codec/base.rb +0 -32
  490. data/lib/temporalio/payload_converter/base.rb +0 -24
  491. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  492. data/lib/temporalio/payload_converter/composite.rb +0 -49
  493. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  494. data/lib/temporalio/payload_converter/json.rb +0 -26
  495. data/lib/temporalio/payload_converter/nil.rb +0 -26
  496. data/lib/temporalio/payload_converter.rb +0 -14
  497. data/lib/temporalio/retry_state.rb +0 -35
  498. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  499. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  500. data/lib/temporalio/timeout_type.rb +0 -29
  501. data/lib/temporalio/worker/activity_runner.rb +0 -114
  502. data/lib/temporalio/worker/activity_worker.rb +0 -164
  503. data/lib/temporalio/worker/reactor.rb +0 -46
  504. data/lib/temporalio/worker/runner.rb +0 -63
  505. data/lib/temporalio/worker/sync_worker.rb +0 -124
  506. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  507. data/lib/temporalio/workflow/async.rb +0 -46
  508. data/lib/temporalio/workflow/execution_info.rb +0 -54
  509. data/lib/temporalio/workflow/execution_status.rb +0 -36
  510. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  511. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  512. data/lib/thermite_patch.rb +0 -33
  513. data/sig/async.rbs +0 -17
  514. data/sig/protobuf.rbs +0 -16
  515. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  516. data/sig/protos/google/protobuf/any.rbs +0 -157
  517. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  518. data/sig/protos/google/protobuf/duration.rbs +0 -114
  519. data/sig/protos/google/protobuf/empty.rbs +0 -36
  520. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  521. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  522. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  523. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  524. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  525. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  526. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  527. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  528. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  529. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  530. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  531. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  532. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  533. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  534. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  535. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  536. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  537. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  538. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  539. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  540. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  541. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  542. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  543. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  544. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  545. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  546. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  547. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  548. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  549. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  550. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  551. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  552. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  553. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  554. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  555. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  556. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  557. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  558. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  559. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  560. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  561. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  562. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  563. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  564. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  565. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  566. data/sig/ruby.rbs +0 -12
  567. data/sig/temporalio/activity/context.rbs +0 -29
  568. data/sig/temporalio/activity/info.rbs +0 -43
  569. data/sig/temporalio/activity.rbs +0 -19
  570. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  571. data/sig/temporalio/bridge/error.rbs +0 -8
  572. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  573. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  574. data/sig/temporalio/bridge.rbs +0 -71
  575. data/sig/temporalio/client/implementation.rbs +0 -38
  576. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  577. data/sig/temporalio/client.rbs +0 -35
  578. data/sig/temporalio/connection/retry_config.rbs +0 -37
  579. data/sig/temporalio/connection/service.rbs +0 -14
  580. data/sig/temporalio/connection/test_service.rbs +0 -13
  581. data/sig/temporalio/connection/tls_options.rbs +0 -43
  582. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  583. data/sig/temporalio/connection.rbs +0 -30
  584. data/sig/temporalio/data_converter.rbs +0 -35
  585. data/sig/temporalio/error/failure.rbs +0 -121
  586. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  587. data/sig/temporalio/errors.rbs +0 -36
  588. data/sig/temporalio/failure_converter/base.rbs +0 -12
  589. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  590. data/sig/temporalio/failure_converter.rbs +0 -5
  591. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  592. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  593. data/sig/temporalio/interceptor/chain.rbs +0 -24
  594. data/sig/temporalio/interceptor/client.rbs +0 -148
  595. data/sig/temporalio/interceptor.rbs +0 -6
  596. data/sig/temporalio/payload_codec/base.rbs +0 -12
  597. data/sig/temporalio/payload_converter/base.rbs +0 -12
  598. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  599. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  600. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  601. data/sig/temporalio/payload_converter/json.rbs +0 -9
  602. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  603. data/sig/temporalio/payload_converter.rbs +0 -5
  604. data/sig/temporalio/retry_policy.rbs +0 -25
  605. data/sig/temporalio/retry_state.rbs +0 -20
  606. data/sig/temporalio/runtime.rbs +0 -12
  607. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  608. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  609. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  610. data/sig/temporalio/testing.rbs +0 -35
  611. data/sig/temporalio/timeout_type.rbs +0 -15
  612. data/sig/temporalio/version.rbs +0 -3
  613. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  614. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  615. data/sig/temporalio/worker/reactor.rbs +0 -22
  616. data/sig/temporalio/worker/runner.rbs +0 -21
  617. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  618. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  619. data/sig/temporalio/worker.rbs +0 -46
  620. data/sig/temporalio/workflow/async.rbs +0 -9
  621. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  622. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  623. data/sig/temporalio/workflow/future.rbs +0 -40
  624. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  625. data/sig/temporalio/workflow/info.rbs +0 -55
  626. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  627. data/sig/temporalio.rbs +0 -2
  628. data/sig/thermite_patch.rbs +0 -15
@@ -1,243 +1,389 @@
1
- require 'temporalio/interceptor/client'
2
- require 'temporalio/workflow/query_reject_condition'
1
+ # frozen_string_literal: true
2
+
3
+ require 'securerandom'
4
+ require 'temporalio/api'
5
+ require 'temporalio/client/interceptor'
6
+ require 'temporalio/client/workflow_update_handle'
7
+ require 'temporalio/client/workflow_update_wait_stage'
8
+ require 'temporalio/error'
9
+ require 'temporalio/workflow_history'
3
10
 
4
11
  module Temporalio
5
12
  class Client
6
- # Handle for interacting with a workflow.
7
- #
8
- # This is usually created via {Temporalio::Client#workflow_handle} or returned
9
- # from {Temporalio::Client#start_workflow}.
13
+ # Handle for interacting with a workflow. This is usually created via {Client.start_workflow} or
14
+ # {Client.workflow_handle}.
10
15
  class WorkflowHandle
11
16
  # @return [String] ID for the workflow.
12
17
  attr_reader :id
13
18
 
14
- # Run ID used for {#signal} and {#query} calls if present to ensure the query or signal happen
15
- # on this exact run.
19
+ # Run ID used for {signal}, {query}, and {start_update}/{execute_update} calls if present to ensure the
20
+ # signal/query/update happen on this exact run.
16
21
  #
17
- # This is only set on handles created via {Temporalio::Client#workflow_handle} with a `run_id`
18
- # parameter. {Temporalio::Client#start_workflow} does not set this value.
22
+ # This is only created via {Client.workflow_handle}. {Client.start_workflow} will not set this value.
19
23
  #
20
- # This cannot be mutated. If a different run ID is needed, {Temporalio::Client#workflow_handle}
21
- # must be used instead.
24
+ # This cannot be mutated. If a different run ID is needed, {Client.workflow_handle} must be used instead.
22
25
  #
23
- # @return [String]
26
+ # @return [String, nil] Run ID.
24
27
  attr_reader :run_id
25
28
 
26
- # Run ID used for {#result} calls if present to ensure result is for a workflow starting from
27
- # this run.
29
+ # Run ID used for {result} calls if present to ensure result is for a workflow starting from this run.
28
30
  #
29
- # When this handle is created via {Temporalio::Client#workflow_handle}, this is the same as
30
- # `:run_id`. When this handle is created via {Temporalio::Client#start_workflow}, this value
31
- # will be the resulting run ID.
31
+ # When this handle is created via {Client.workflow_handle}, this is the same as {run_id}. When this handle is
32
+ # created via {Client.start_workflow}, this value will be the resulting run ID.
32
33
  #
33
- # This cannot be mutated. If a different run ID is needed, {Temporalio::Client#workflow_handle}
34
- # must be used instead.
34
+ # This cannot be mutated. If a different run ID is needed, {Client.workflow_handle} must be used instead.
35
35
  #
36
- # @return [String]
36
+ # @return [String, nil] Result run ID.
37
37
  attr_reader :result_run_id
38
38
 
39
- # Run ID used for {#cancel} and {#terminate} calls if present to ensure the cancel and
40
- # terminate happen for a workflow ID started with this run ID.
39
+ # Run ID used for some calls like {cancel} and {terminate} to ensure the cancel and terminate happen for a
40
+ # workflow ID on a chain started with this run ID.
41
41
  #
42
- # This can be set when using {Temporalio::Client#workflow_handle}. When
43
- # {Temporalio::Client#start_workflow} is called without a start signal, this is set to the
44
- # resulting run.
42
+ # This can be set when using {Client.workflow_handle}. When {Client.start_workflow} is called without a start
43
+ # signal, this is set to the resulting run.
45
44
  #
46
- # This cannot be mutated. If a different first execution run ID is needed,
47
- # {Temporalio::Client#workflow_handle} must be used instead.
45
+ # This cannot be mutated. If a different first execution run ID is needed, {Client.workflow_handle} must be used
46
+ # instead.
48
47
  #
49
- # @return [String]
48
+ # @return [String, nil] First execution run ID.
50
49
  attr_reader :first_execution_run_id
51
50
 
52
- def initialize(client_impl, id, run_id: nil, result_run_id: nil, first_execution_run_id: nil)
53
- @client_impl = client_impl
51
+ # @!visibility private
52
+ def initialize(client:, id:, run_id:, result_run_id:, first_execution_run_id:)
53
+ @client = client
54
54
  @id = id
55
55
  @run_id = run_id
56
56
  @result_run_id = result_run_id
57
57
  @first_execution_run_id = first_execution_run_id
58
58
  end
59
59
 
60
- # Wait for result of the workflow.
60
+ # Wait for the result of the workflow.
61
+ #
62
+ # This will use {result_run_id} if present to base the result on. To use another run ID, a new handle must be
63
+ # created via {Client.workflow_handle}.
64
+ #
65
+ # @param follow_runs [Boolean] If +true+, workflow runs will be continually fetched across retries and continue as
66
+ # new until the latest one is found. If +false+, the first result is used.
67
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
68
+ #
69
+ # @return [Object] Result of the workflow after being converted by the data converter.
70
+ #
71
+ # @raise [Error::WorkflowFailedError] Workflow failed with +cause+ as the cause.
72
+ # @raise [Error::WorkflowContinuedAsNewError] Workflow continued as new and +follow_runs+ is +false+.
73
+ # @raise [Error::RPCError] RPC error from call.
74
+ def result(follow_runs: true, rpc_options: nil)
75
+ # Wait on the close event, following as needed
76
+ hist_run_id = result_run_id
77
+ loop do
78
+ # Get close event
79
+ event = fetch_history_events(
80
+ wait_new_event: true,
81
+ event_filter_type: Api::Enums::V1::HistoryEventFilterType::HISTORY_EVENT_FILTER_TYPE_CLOSE_EVENT,
82
+ skip_archival: true,
83
+ specific_run_id: hist_run_id,
84
+ rpc_options:
85
+ ).next
86
+
87
+ # Check each close type'
88
+ case event.event_type
89
+ when :EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED
90
+ attrs = event.workflow_execution_completed_event_attributes
91
+ hist_run_id = attrs.new_execution_run_id
92
+ next if follow_runs && hist_run_id && !hist_run_id.empty?
93
+
94
+ return @client.data_converter.from_payloads(attrs.result).first
95
+ when :EVENT_TYPE_WORKFLOW_EXECUTION_FAILED
96
+ attrs = event.workflow_execution_failed_event_attributes
97
+ hist_run_id = attrs.new_execution_run_id
98
+ next if follow_runs && hist_run_id && !hist_run_id.empty?
99
+
100
+ raise Error::WorkflowFailedError.new, cause: @client.data_converter.from_failure(attrs.failure)
101
+ when :EVENT_TYPE_WORKFLOW_EXECUTION_CANCELED
102
+ attrs = event.workflow_execution_canceled_event_attributes
103
+ raise Error::WorkflowFailedError.new, 'Workflow execution canceled', cause: Error::CanceledError.new(
104
+ 'Workflow execution canceled',
105
+ details: @client.data_converter.from_payloads(attrs&.details)
106
+ )
107
+ when :EVENT_TYPE_WORKFLOW_EXECUTION_TERMINATED
108
+ attrs = event.workflow_execution_terminated_event_attributes
109
+ raise Error::WorkflowFailedError.new, 'Workflow execution terminated', cause: Error::TerminatedError.new(
110
+ Internal::ProtoUtils.string_or(attrs.reason, 'Workflow execution terminated'),
111
+ details: @client.data_converter.from_payloads(attrs&.details)
112
+ )
113
+ when :EVENT_TYPE_WORKFLOW_EXECUTION_TIMED_OUT
114
+ attrs = event.workflow_execution_timed_out_event_attributes
115
+ hist_run_id = attrs.new_execution_run_id
116
+ next if follow_runs && hist_run_id && !hist_run_id.empty?
117
+
118
+ raise Error::WorkflowFailedError.new, 'Workflow execution timed out', cause: Error::TimeoutError.new(
119
+ 'Workflow execution timed out',
120
+ type: Api::Enums::V1::TimeoutType::TIMEOUT_TYPE_START_TO_CLOSE,
121
+ last_heartbeat_details: []
122
+ )
123
+ when :EVENT_TYPE_WORKFLOW_EXECUTION_CONTINUED_AS_NEW
124
+ attrs = event.workflow_execution_continued_as_new_event_attributes
125
+ hist_run_id = attrs.new_execution_run_id
126
+ next if follow_runs && hist_run_id && !hist_run_id.empty?
127
+
128
+ # TODO: Use more specific error and decode failure
129
+ raise Error::WorkflowContinuedAsNewError.new(new_run_id: attrs.new_execution_run_id)
130
+ else
131
+ raise Error, "Unknown close event type: #{event.event_type}"
132
+ end
133
+ end
134
+ end
135
+
136
+ # Get workflow details. This will get details for the {run_id} if present. To use a different run ID, create a new
137
+ # handle via {Client.workflow_handle}.
61
138
  #
62
- # This will use {#result_run_id} if present to base the result on. To use another run ID,
63
- # a new handle must be created via {Temporalio::Client#workflow_handle}.
139
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
64
140
  #
65
- # @param follow_runs [Bool] If true (default), workflow runs will be continually fetched,
66
- # until the most recent one is found. If false, the first result is used.
67
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call.
68
- # Keys here override client-level RPC metadata keys.
69
- # @param rpc_timeout [Integer] Optional RPC deadline to set for each RPC call. Note, this is
70
- # the timeout for each history RPC call not this overall function.
141
+ # @return [WorkflowExecution::Description] Workflow description.
71
142
  #
72
- # @return [any] Result of the workflow after being converted by the data converter.
143
+ # @raise [Error::RPCError] RPC error from call.
73
144
  #
74
- # @raise [Temporalio::Error::WorkflowFailure] Workflow failed, was cancelled, was terminated, or
75
- # timed out. Use the {Temporalio::Error::WorkflowFailure#cause} to see the underlying reason.
76
- # @raise [StandardError] Other possible failures during result fetching.
77
- def result(follow_runs: true, rpc_metadata: {}, rpc_timeout: nil)
78
- client_impl.await_workflow_result(id, result_run_id, follow_runs, rpc_metadata, rpc_timeout)
145
+ # @note Handles created as a result of {Client.start_workflow} will describe the latest workflow with the same
146
+ # workflow ID even if it is unrelated to the started workflow.
147
+ def describe(rpc_options: nil)
148
+ @client._impl.describe_workflow(Interceptor::DescribeWorkflowInput.new(
149
+ workflow_id: id,
150
+ run_id:,
151
+ rpc_options:
152
+ ))
79
153
  end
80
154
 
81
- # Get workflow details.
82
- #
83
- # This will get details for {#run_id} if present. To use a different run ID, create a new
84
- # handle with via {Temporalio::Client#workflow_handle}.
85
- #
86
- # @note Handles created as a result of {Temporalio::Client#start_workflow} will describe the
87
- # latest workflow with the same workflow ID even if it is unrelated to the started workflow.
155
+ # Get workflow history. This is a helper on top of {fetch_history_events}.
88
156
  #
89
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call.
90
- # Keys here override client-level RPC metadata keys.
91
- # @param rpc_timeout [Integer] Optional RPC deadline to set for each RPC call. Note, this is
92
- # the timeout for each history RPC call not this overall function.
157
+ # @param event_filter_type [Api::Enums::V1::HistoryEventFilterType] Types of events to fetch.
158
+ # @param skip_archival [Boolean] Whether to skip archival.
159
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
93
160
  #
94
- # @return [Temporalio::Workflow::ExecutionInfo] Workflow details.
161
+ # @return [WorkflowHistory] Workflow history.
95
162
  #
96
- # @raise [Temporalio::Error::RPCError] Workflow details could not be fetched.
97
- def describe(rpc_metadata: {}, rpc_timeout: nil)
98
- input = Interceptor::Client::DescribeWorkflowInput.new(
99
- id: id,
100
- run_id: run_id,
101
- rpc_metadata: rpc_metadata,
102
- rpc_timeout: rpc_timeout,
163
+ # @raise [Error::RPCError] RPC error from call.
164
+ def fetch_history(
165
+ event_filter_type: Api::Enums::V1::HistoryEventFilterType::HISTORY_EVENT_FILTER_TYPE_ALL_EVENT,
166
+ skip_archival: false,
167
+ rpc_options: nil
168
+ )
169
+ WorkflowHistory.new(
170
+ fetch_history_events(
171
+ event_filter_type:,
172
+ skip_archival:,
173
+ rpc_options:
174
+ ).to_a
103
175
  )
104
-
105
- client_impl.describe_workflow(input)
106
176
  end
107
177
 
108
- # Cancel the workflow.
109
- #
110
- # This will issue a cancellation for {#run_id} if present. This call will make sure to use the
111
- # run chain starting from {#first_execution_run_id} if present. To create handles with these
112
- # values, use {Temporalio::Client#workflow_handle}.
113
- #
114
- # @note Handles created as a result of {Temporalio::Client#start_workflow} with a start signal
115
- # will cancel the latest workflow with the same workflow ID even if it is unrelated to the
116
- # started workflow.
117
- #
118
- # @param reason [String] A reason for workflow cancellation.
119
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call.
120
- # Keys here override client-level RPC metadata keys.
121
- # @param rpc_timeout [Integer] Optional RPC deadline to set for each RPC call.
122
- #
123
- # @raise [Temporalio::Error::RPCError] Workflow could not be cancelled.
124
- def cancel(reason = nil, rpc_metadata: {}, rpc_timeout: nil)
125
- input = Interceptor::Client::CancelWorkflowInput.new(
126
- id: id,
127
- run_id: run_id,
128
- first_execution_run_id: first_execution_run_id,
129
- reason: reason,
130
- rpc_metadata: rpc_metadata,
131
- rpc_timeout: rpc_timeout,
132
- )
178
+ # Fetch an enumerator of history events for this workflow. Internally this is done in paginated form, but it is
179
+ # presented as an enumerator.
180
+ #
181
+ # @param wait_new_event [Boolean] If +true+, when the end of the current set of events is reached but the workflow
182
+ # is not complete, this will wait for the next event. If +false+, the enumerable completes at the end of current
183
+ # history.
184
+ # @param event_filter_type [Api::Enums::V1::HistoryEventFilterType] Types of events to fetch.
185
+ # @param skip_archival [Boolean] Whether to skip archival.
186
+ # @param specific_run_id [String, nil] Run ID to fetch events for. Default is the {run_id}. Most users will not
187
+ # need to set this and instead use the one on the class.
188
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
189
+ #
190
+ # @return [Enumerator<Api::History::V1::HistoryEvent>] Enumerable events.
191
+ #
192
+ # @raise [Error::RPCError] RPC error from call.
193
+ def fetch_history_events(
194
+ wait_new_event: false,
195
+ event_filter_type: Api::Enums::V1::HistoryEventFilterType::HISTORY_EVENT_FILTER_TYPE_ALL_EVENT,
196
+ skip_archival: false,
197
+ specific_run_id: run_id,
198
+ rpc_options: nil
199
+ )
200
+ @client._impl.fetch_workflow_history_events(Interceptor::FetchWorkflowHistoryEventsInput.new(
201
+ workflow_id: id,
202
+ run_id: specific_run_id,
203
+ wait_new_event:,
204
+ event_filter_type:,
205
+ skip_archival:,
206
+ rpc_options:
207
+ ))
208
+ end
133
209
 
134
- client_impl.cancel_workflow(input)
210
+ # Send a signal to the workflow. This will signal for {run_id} if present. To use a different run ID, create a new
211
+ # handle via {Client.workflow_handle}.
212
+ #
213
+ # @param signal [Workflow::Definition::Signal, Symbol, String] Signal definition or name.
214
+ # @param args [Array<Object>] Signal arguments.
215
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
216
+ #
217
+ # @raise [Error::RPCError] RPC error from call.
218
+ #
219
+ # @note Handles created as a result of {Client.start_workflow} will signal the latest workflow with the same
220
+ # workflow ID even if it is unrelated to the started workflow.
221
+ def signal(signal, *args, rpc_options: nil)
222
+ @client._impl.signal_workflow(Interceptor::SignalWorkflowInput.new(
223
+ workflow_id: id,
224
+ run_id:,
225
+ signal:,
226
+ args:,
227
+ headers: {},
228
+ rpc_options:
229
+ ))
135
230
  end
136
231
 
137
- # Query the workflow.
138
- #
139
- # This will query for {#run_id} if present. To use a different run ID, create a new handle
140
- # with via {Temporalio::Client#workflow_handle}.
232
+ # Query the workflow. This will query for {run_id} if present. To use a different run ID, create a new handle via
233
+ # {Client.workflow_handle}.
141
234
  #
142
- # @note Handles created as a result of {Temporalio::Client#start_workflow} will query the latest
143
- # workflow with the same workflow ID even if it is unrelated to the started workflow.
235
+ # @param query [Workflow::Definition::Query, Symbol, String] Query definition or name.
236
+ # @param args [Array<Object>] Query arguments.
237
+ # @param reject_condition [WorkflowQueryRejectCondition, nil] Condition for rejecting the query.
238
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
144
239
  #
145
- # @param query [String, Symbol] Query function or name on the workflow.
146
- # @param args [any] Arguments to the query.
147
- # @param reject_condition [Symbol] Condition for rejecting the query. Refer to
148
- # {Temporalio::Workflow::QueryRejectCondition} for the list of allowed values.
149
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call.
150
- # Keys here override client-level RPC metadata keys.
151
- # @param rpc_timeout [Integer] Optional RPC deadline to set for each RPC call.
240
+ # @return [Object, nil] Query result.
152
241
  #
153
- # @return [any] Result of the query.
242
+ # @raise [Error::WorkflowQueryFailedError] The query on the workflow returned a failure.
243
+ # @raise [Error::WorkflowQueryRejectedError] A query reject condition was satisfied.
244
+ # @raise [Error::RPCError] RPC error from call.
154
245
  #
155
- # @raise [Temporalio::Error] A query reject condition was satisfied.
156
- # @raise [Temporalio::Error::RPCError] Workflow details could not be fetched.
246
+ # @note Handles created as a result of {Client.start_workflow} will query the latest workflow with the same
247
+ # workflow ID even if it is unrelated to the started workflow.
157
248
  def query(
158
249
  query,
159
250
  *args,
160
- reject_condition: Workflow::QueryRejectCondition::NONE,
161
- rpc_metadata: {},
162
- rpc_timeout: nil
251
+ reject_condition: @client.options.default_workflow_query_reject_condition,
252
+ rpc_options: nil
163
253
  )
164
- input = Interceptor::Client::QueryWorkflowInput.new(
165
- id: id,
166
- run_id: run_id,
167
- query: query,
168
- args: args,
169
- reject_condition: reject_condition,
170
- headers: {},
171
- rpc_metadata: rpc_metadata,
172
- rpc_timeout: rpc_timeout,
173
- )
174
-
175
- client_impl.query_workflow(input)
254
+ @client._impl.query_workflow(Interceptor::QueryWorkflowInput.new(
255
+ workflow_id: id,
256
+ run_id:,
257
+ query:,
258
+ args:,
259
+ reject_condition:,
260
+ headers: {},
261
+ rpc_options:
262
+ ))
176
263
  end
177
264
 
178
- # Send a signal to the workflow.
179
- #
180
- # This will signal for {#run_id} if present. To use a different run ID, create a new handle
181
- # with via {Temporalio::Client#workflow_handle}.
182
- #
183
- # @note Handles created as a result of {Temporalio::Client#start_workflow} will signal the
184
- # latest workflow with the same workflow ID even if it is unrelated to the started workflow.
185
- #
186
- # @param signal [String, Symbol] Signal function or name on the workflow.
187
- # @param args [any] Arguments to the signal.
188
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call.
189
- # Keys here override client-level RPC metadata keys.
190
- # @param rpc_timeout [Integer] Optional RPC deadline to set for each RPC call.
191
- #
192
- # @return [Temporalio::Error::RPCError] Workflow could not be signalled.
193
- def signal(signal, *args, rpc_metadata: {}, rpc_timeout: nil)
194
- input = Interceptor::Client::SignalWorkflowInput.new(
195
- id: id,
196
- run_id: run_id,
197
- signal: signal,
198
- args: args,
199
- headers: {},
200
- rpc_metadata: rpc_metadata,
201
- rpc_timeout: rpc_timeout,
202
- )
265
+ # Send an update request to the workflow and return a handle to it. This will target the workflow with {run_id} if
266
+ # present. To use a different run ID, create a new handle via {Client.workflow_handle}.
267
+ #
268
+ # @param update [Workflow::Definition::Update, Symbol, String] Update definition or name.
269
+ # @param args [Array<Object>] Update arguments.
270
+ # @param wait_for_stage [WorkflowUpdateWaitStage] Required stage to wait until returning. ADMITTED is not
271
+ # currently supported. See https://docs.temporal.io/workflows#update for more details.
272
+ # @param id [String] ID of the update.
273
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
274
+ #
275
+ # @return [WorkflowUpdateHandle] The update handle.
276
+ #
277
+ # @raise [Error::WorkflowUpdateRPCTimeoutOrCanceledError] This update call timed out or was canceled. This doesn't
278
+ # mean the update itself was timed out or canceled.
279
+ # @raise [Error::RPCError] RPC error from call.
280
+ #
281
+ # @note Handles created as a result of {Client.start_workflow} will send updates the latest workflow with the same
282
+ # workflow ID even if it is unrelated to the started workflow.
283
+ def start_update(
284
+ update,
285
+ *args,
286
+ wait_for_stage:,
287
+ id: SecureRandom.uuid,
288
+ rpc_options: nil
289
+ )
290
+ @client._impl.start_workflow_update(Interceptor::StartWorkflowUpdateInput.new(
291
+ workflow_id: self.id,
292
+ run_id:,
293
+ update_id: id,
294
+ update:,
295
+ args:,
296
+ wait_for_stage:,
297
+ headers: {},
298
+ rpc_options:
299
+ ))
300
+ end
203
301
 
204
- client_impl.signal_workflow(input)
302
+ # Send an update request to the workflow and wait for it to complete. This will target the workflow with {run_id}
303
+ # if present. To use a different run ID, create a new handle via {Client.workflow_handle}.
304
+ #
305
+ # @param update [Workflow::Definition::Update, Symbol, String] Update definition or name.
306
+ # @param args [Array<Object>] Update arguments.
307
+ # @param id [String] ID of the update.
308
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
309
+ #
310
+ # @return [Object, nil] Update result.
311
+ #
312
+ # @raise [Error::WorkflowUpdateFailedError] If the update failed.
313
+ # @raise [Error::WorkflowUpdateRPCTimeoutOrCanceledError] This update call timed out or was canceled. This doesn't
314
+ # mean the update itself was timed out or canceled.
315
+ # @raise [Error::RPCError] RPC error from call.
316
+ #
317
+ # @note Handles created as a result of {Client.start_workflow} will send updates the latest workflow with the same
318
+ # workflow ID even if it is unrelated to the started workflow.
319
+ def execute_update(update, *args, id: SecureRandom.uuid, rpc_options: nil)
320
+ start_update(
321
+ update,
322
+ *args,
323
+ wait_for_stage: WorkflowUpdateWaitStage::COMPLETED,
324
+ id:,
325
+ rpc_options:
326
+ ).result
205
327
  end
206
328
 
207
- # Terminate the workflow.
208
- #
209
- # This will issue a termination for {#run_id} if present. This call will make sure to use the
210
- # run chain starting from {#first_execution_run_id} if present. To create handles with these
211
- # values, use {Temporalio::Client#workflow_handle}.
212
-
213
- # @note Handles created as a result of {Temporalio::Client#start_workflow} with a start signal
214
- # will terminate the latest workflow with the same workflow ID even if it is unrelated to
215
- # the started workflow.
216
- #
217
- # @param reason [String] A reason for workflow termination.
218
- # @param args [any] Details to store on the termination.
219
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call.
220
- # Keys here override client-level RPC metadata keys.
221
- # @param rpc_timeout [Integer] Optional RPC deadline to set for each RPC call.
222
- #
223
- # @raise [Temporalio::Error::RPCError] Workflow could not be terminated.
224
- def terminate(reason = nil, args = nil, rpc_metadata: {}, rpc_timeout: nil)
225
- input = Interceptor::Client::TerminateWorkflowInput.new(
226
- id: id,
227
- run_id: run_id,
228
- first_execution_run_id: first_execution_run_id,
229
- reason: reason,
230
- args: args,
231
- rpc_metadata: rpc_metadata,
232
- rpc_timeout: rpc_timeout,
329
+ # Get a handle for an update. The handle can be used to wait on the update result.
330
+ #
331
+ # @param id [String] ID of the update.
332
+ # @param specific_run_id [String, nil] Workflow run ID to get update handle for. Default is the {run_id}. Most
333
+ # users will not need to set this and instead use the one on the class.
334
+ #
335
+ # @return [WorkflowUpdateHandle] The update handle.
336
+ def update_handle(id, specific_run_id: run_id)
337
+ WorkflowUpdateHandle.new(
338
+ client: @client,
339
+ id:,
340
+ workflow_id: self.id,
341
+ workflow_run_id: specific_run_id,
342
+ known_outcome: nil
233
343
  )
234
-
235
- client_impl.terminate_workflow(input)
236
344
  end
237
345
 
238
- private
346
+ # Cancel the workflow. This will issue a cancellation for {run_id} if present. This call will make sure to use the
347
+ # run chain starting from {first_execution_run_id} if present. To create handles with these values, use
348
+ # {Client.workflow_handle}.
349
+ #
350
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
351
+ #
352
+ # @raise [Error::RPCError] RPC error from call.
353
+ #
354
+ # @note Handles created as a result of signal with start will cancel the latest workflow with the same workflow ID
355
+ # even if it is unrelated to the started workflow.
356
+ def cancel(rpc_options: nil)
357
+ @client._impl.cancel_workflow(Interceptor::CancelWorkflowInput.new(
358
+ workflow_id: id,
359
+ run_id:,
360
+ first_execution_run_id:,
361
+ rpc_options:
362
+ ))
363
+ end
239
364
 
240
- attr_reader :client_impl
365
+ # Terminate the workflow. This will issue a termination for {run_id} if present. This call will make sure to use
366
+ # the run chain starting from {first_execution_run_id} if present. To create handles with these values, use
367
+ # {Client.workflow_handle}.
368
+ #
369
+ # @param reason [String, nil] Reason for the termination.
370
+ # @param details [Array<Object>] Details to store on the termination.
371
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
372
+ #
373
+ # @raise [Error::RPCError] RPC error from call.
374
+ #
375
+ # @note Handles created as a result of signal with start will terminate the latest workflow with the same workflow
376
+ # ID even if it is unrelated to the started workflow.
377
+ def terminate(reason = nil, details: [], rpc_options: nil)
378
+ @client._impl.terminate_workflow(Interceptor::TerminateWorkflowInput.new(
379
+ workflow_id: id,
380
+ run_id:,
381
+ first_execution_run_id:,
382
+ reason:,
383
+ details:,
384
+ rpc_options:
385
+ ))
386
+ end
241
387
  end
242
388
  end
243
389
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+
5
+ module Temporalio
6
+ class Client
7
+ # Whether a query should be rejected in certain conditions.
8
+ module WorkflowQueryRejectCondition
9
+ NONE = Api::Enums::V1::QueryRejectCondition::QUERY_REJECT_CONDITION_NONE
10
+ NOT_OPEN = Api::Enums::V1::QueryRejectCondition::QUERY_REJECT_CONDITION_NOT_OPEN
11
+ NOT_COMPLETED_CLEANLY = Api::Enums::V1::QueryRejectCondition::QUERY_REJECT_CONDITION_NOT_COMPLETED_CLEANLY
12
+ end
13
+ end
14
+ end