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