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
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+ require 'temporalio/client/interceptor'
5
+ require 'temporalio/error'
6
+
7
+ module Temporalio
8
+ class Client
9
+ # Handle for a workflow update execution request. This is usually created via {WorkflowHandle.start_update} or
10
+ # {WorkflowHandle.update_handle}.
11
+ class WorkflowUpdateHandle
12
+ # @return [String] ID for the workflow update.
13
+ attr_reader :id
14
+
15
+ # @return [String] ID for the workflow.
16
+ attr_reader :workflow_id
17
+
18
+ # @return [String, nil] Run ID for the workflow.
19
+ attr_reader :workflow_run_id
20
+
21
+ # @!visibility private
22
+ def initialize(client:, id:, workflow_id:, workflow_run_id:, known_outcome:)
23
+ @client = client
24
+ @id = id
25
+ @workflow_id = workflow_id
26
+ @workflow_run_id = workflow_run_id
27
+ @known_outcome = known_outcome
28
+ end
29
+
30
+ # @return [Boolean] True if the result is already known and {result} will not make a blocking call, false if
31
+ # {result} will make a blocking call because the result is not yet known.
32
+ def result_obtained?
33
+ !@known_outcome.nil?
34
+ end
35
+
36
+ # Wait for and return the result of the update. The result may already be known in which case no network call is
37
+ # made. Otherwise the result will be polled for until it is returned.
38
+ #
39
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
40
+ #
41
+ # @return [Object, nil] Update result.
42
+ #
43
+ # @raise [Error::WorkflowUpdateFailedError] If the update failed.
44
+ # @raise [Error::WorkflowUpdateRPCTimeoutOrCanceledError] This update call timed out or was canceled. This doesn't
45
+ # mean the update itself was timed out or canceled.
46
+ # @raise [Error::RPCError] RPC error from call.
47
+ def result(rpc_options: nil)
48
+ @known_outcome ||= @client._impl.poll_workflow_update(Interceptor::PollWorkflowUpdateInput.new(
49
+ workflow_id:,
50
+ run_id: workflow_run_id,
51
+ update_id: id,
52
+ rpc_options:
53
+ ))
54
+
55
+ if @known_outcome.failure
56
+ raise Error::WorkflowUpdateFailedError.new, cause: @client.data_converter.from_failure(@known_outcome.failure)
57
+ end
58
+
59
+ results = @client.data_converter.from_payloads(@known_outcome.success)
60
+ warn("Expected 0 or 1 update result, got #{results.size}") if results.size > 1
61
+ results.first
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+
5
+ module Temporalio
6
+ class Client
7
+ # Stage to wait for workflow update to reach before returning from {WorkflowHandle.start_update}.
8
+ module WorkflowUpdateWaitStage
9
+ ADMITTED =
10
+ Api::Enums::V1::UpdateWorkflowExecutionLifecycleStage::UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_ADMITTED
11
+ ACCEPTED =
12
+ Api::Enums::V1::UpdateWorkflowExecutionLifecycleStage::UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_ACCEPTED
13
+ COMPLETED =
14
+ Api::Enums::V1::UpdateWorkflowExecutionLifecycleStage::UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_COMPLETED
15
+ end
16
+ end
17
+ end
@@ -1,69 +1,218 @@
1
- require 'json'
2
- require 'securerandom'
3
- require 'socket'
4
- require 'temporalio/client/implementation'
1
+ # frozen_string_literal: true
2
+
3
+ require 'google/protobuf/well_known_types'
4
+ require 'logger'
5
+ require 'temporalio/api'
6
+ require 'temporalio/client/async_activity_handle'
7
+ require 'temporalio/client/connection'
8
+ require 'temporalio/client/interceptor'
9
+ require 'temporalio/client/schedule'
10
+ require 'temporalio/client/schedule_handle'
11
+ require 'temporalio/client/workflow_execution'
12
+ require 'temporalio/client/workflow_execution_count'
5
13
  require 'temporalio/client/workflow_handle'
6
- require 'temporalio/data_converter'
7
- require 'temporalio/errors'
8
- require 'temporalio/failure_converter'
9
- require 'temporalio/payload_converter'
10
- require 'temporalio/workflow/id_reuse_policy'
14
+ require 'temporalio/client/workflow_query_reject_condition'
15
+ require 'temporalio/common_enums'
16
+ require 'temporalio/converters'
17
+ require 'temporalio/error'
18
+ require 'temporalio/internal/client/implementation'
19
+ require 'temporalio/retry_policy'
20
+ require 'temporalio/runtime'
21
+ require 'temporalio/search_attributes'
22
+ require 'temporalio/workflow/definition'
11
23
 
12
24
  module Temporalio
25
+ # Client for accessing Temporal.
26
+ #
27
+ # Most users will use {connect} to connect a client. The {workflow_service} method provides access to a raw gRPC
28
+ # client. To create another client on the same connection, like for a different namespace, {options} may be used to
29
+ # get the options as a struct which can then be dup'd, altered, and splatted as kwargs to the constructor (e.g.
30
+ # +Client.new(**my_options.to_h)+).
31
+ #
32
+ # Clients are thread-safe and are meant to be reused for the life of the application. They are built to work in both
33
+ # synchronous and asynchronous contexts. Internally they use callbacks based on {::Queue} which means they are
34
+ # Fiber-compatible.
13
35
  class Client
14
- # @return [String] Namespace used for client calls.
15
- attr_reader :namespace
36
+ Options = Data.define(
37
+ :connection,
38
+ :namespace,
39
+ :data_converter,
40
+ :interceptors,
41
+ :logger,
42
+ :default_workflow_query_reject_condition
43
+ )
44
+
45
+ # Options as returned from {options} for +**to_h+ splat use in {initialize}. See {initialize} for details.
46
+ class Options; end # rubocop:disable Lint/EmptyClass
16
47
 
17
- # Create a Temporal client from a connection.
48
+ # Connect to Temporal server. This is a shortcut for +Connection.new+ followed by +Client.new+.
18
49
  #
19
- # @param connection [Temporalio::Connection] A connection to the Temporal server.
50
+ # @param target_host [String] +host:port+ for the Temporal server. For local development, this is often
51
+ # +localhost:7233+.
20
52
  # @param namespace [String] Namespace to use for client calls.
21
- # @param interceptors [Array<Temporalio::Interceptor::Client>] List of interceptors for
22
- # intercepting client calls. Executed in their original order.
23
- # @param data_converter [Temporalio::DataConverter] Data converter to use for all data conversions
24
- # to/from payloads.
53
+ # @param api_key [String, nil] API key for Temporal. This becomes the +Authorization+ HTTP header with +"Bearer "+
54
+ # prepended. This is only set if RPC metadata doesn't already have an +authorization+ key.
55
+ # @param tls [Boolean, Connection::TLSOptions] If false, do not use TLS. If true, use system default TLS options. If
56
+ # TLS options are present, those TLS options will be used.
57
+ # @param data_converter [Converters::DataConverter] Data converter to use for all data conversions to/from payloads.
58
+ # @param interceptors [Array<Interceptor>] Set of interceptors that are chained together to allow intercepting of
59
+ # client calls. The earlier interceptors wrap the later ones. Any interceptors that also implement worker
60
+ # interceptor will be used as worker interceptors too so they should not be given separately when creating a
61
+ # worker.
62
+ # @param logger [Logger] Logger to use for this client and any workers made from this client. Defaults to stdout
63
+ # with warn level. Callers setting this logger are responsible for closing it.
64
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection
65
+ # condition for workflow queries if not set during query. See {WorkflowHandle.query} for details on the
66
+ # rejection condition.
67
+ # @param rpc_metadata [Hash<String, String>] Headers to use for all calls to the server. Keys here can be overriden
68
+ # by per-call RPC metadata keys.
69
+ # @param rpc_retry [Connection::RPCRetryOptions] Retry options for direct service calls (when opted in) or all
70
+ # high-level calls made by this client (which all opt-in to retries by default).
71
+ # @param identity [String] Identity for this client.
72
+ # @param keep_alive [Connection::KeepAliveOptions] Keep-alive options for the client connection. Can be set to +nil+
73
+ # to disable.
74
+ # @param http_connect_proxy [Connection::HTTPConnectProxyOptions, nil] Options for HTTP CONNECT proxy.
75
+ # @param runtime [Runtime] Runtime for this client.
76
+ # @param lazy_connect [Boolean] If true, the client will not connect until the first call is attempted or a worker
77
+ # is created with it. Lazy clients cannot be used for workers if they have not performed a connection.
25
78
  #
26
- # @see https://docs.temporal.io/concepts/what-is-a-data-converter for more information on
27
- # payload converters and codecs.
28
- def initialize(
29
- connection,
79
+ # @return [Client] Connected client.
80
+ #
81
+ # @see Connection.initialize
82
+ # @see initialize
83
+ def self.connect(
84
+ target_host,
30
85
  namespace,
86
+ api_key: nil,
87
+ tls: false,
88
+ data_converter: Converters::DataConverter.default,
89
+ interceptors: [],
90
+ logger: Logger.new($stdout, level: Logger::WARN),
91
+ default_workflow_query_reject_condition: nil,
92
+ rpc_metadata: {},
93
+ rpc_retry: Connection::RPCRetryOptions.new,
94
+ identity: "#{Process.pid}@#{Socket.gethostname}",
95
+ keep_alive: Connection::KeepAliveOptions.new, # Set to nil to disable
96
+ http_connect_proxy: nil,
97
+ runtime: Runtime.default,
98
+ lazy_connect: false
99
+ )
100
+ Client.new(
101
+ connection: Connection.new(
102
+ target_host:,
103
+ api_key:,
104
+ tls:,
105
+ rpc_metadata:,
106
+ rpc_retry:,
107
+ identity:,
108
+ keep_alive:,
109
+ http_connect_proxy:,
110
+ runtime:,
111
+ lazy_connect:
112
+ ),
113
+ namespace:,
114
+ data_converter:,
115
+ interceptors:,
116
+ logger:,
117
+ default_workflow_query_reject_condition:
118
+ )
119
+ end
120
+
121
+ # @return [Options] Frozen options for this client which has the same attributes as {initialize}.
122
+ attr_reader :options
123
+
124
+ # Create a client from an existing connection. Most users will prefer {connect} instead. Parameters here match
125
+ # {Options} returned from {options} by intention so options can be dup'd, altered, and splatted to create a new
126
+ # client.
127
+ #
128
+ # @param connection [Connection] Existing connection to create a client from.
129
+ # @param namespace [String] Namespace to use for client calls.
130
+ # @param data_converter [Converters::DataConverter] Data converter to use for all data conversions to/from payloads.
131
+ # @param interceptors [Array<Interceptor>] Set of interceptors that are chained together to allow intercepting of
132
+ # client calls. The earlier interceptors wrap the later ones. Any interceptors that also implement worker
133
+ # interceptor will be used as worker interceptors too so they should not be given separately when creating a
134
+ # worker.
135
+ # @param logger [Logger] Logger to use for this client and any workers made from this client. Defaults to stdout
136
+ # with warn level. Callers setting this logger are responsible for closing it.
137
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection condition for
138
+ # workflow queries if not set during query. See {WorkflowHandle.query} for details on the rejection condition.
139
+ #
140
+ # @see connect
141
+ def initialize(
142
+ connection:,
143
+ namespace:,
144
+ data_converter: DataConverter.default,
31
145
  interceptors: [],
32
- data_converter: Temporalio::DataConverter.new
146
+ logger: Logger.new($stdout, level: Logger::WARN),
147
+ default_workflow_query_reject_condition: nil
33
148
  )
34
- @namespace = namespace
35
- @implementation = Client::Implementation.new(connection, namespace, data_converter, interceptors)
149
+ @options = Options.new(
150
+ connection:,
151
+ namespace:,
152
+ data_converter:,
153
+ interceptors:,
154
+ logger:,
155
+ default_workflow_query_reject_condition:
156
+ ).freeze
157
+ # Initialize interceptors
158
+ @impl = interceptors.reverse_each.reduce(Internal::Client::Implementation.new(self)) do |acc, int|
159
+ int.intercept_client(acc)
160
+ end
161
+ end
162
+
163
+ # @return [Connection] Underlying connection for this client.
164
+ def connection
165
+ @options.connection
166
+ end
167
+
168
+ # @return [String] Namespace used in calls by this client.
169
+ def namespace
170
+ @options.namespace
171
+ end
172
+
173
+ # @return [DataConverter] Data converter used by this client.
174
+ def data_converter
175
+ @options.data_converter
176
+ end
177
+
178
+ # @return [Connection::WorkflowService] Raw gRPC workflow service.
179
+ def workflow_service
180
+ connection.workflow_service
181
+ end
182
+
183
+ # @return [Connection::OperatorService] Raw gRPC operator service.
184
+ def operator_service
185
+ connection.operator_service
36
186
  end
37
187
 
38
188
  # Start a workflow and return its handle.
39
189
  #
40
- # @param workflow [String] Name of the workflow.
41
- # @param args [any] Arguments to the workflow.
190
+ # @param workflow [Class<Workflow::Definition>, String, Symbol] Workflow definition class or workflow name.
191
+ # @param args [Array<Object>] Arguments to the workflow.
42
192
  # @param id [String] Unique identifier for the workflow execution.
43
- # @param task_queue [String, Symbol] Task queue to run the workflow on.
44
- # @param execution_timeout [Integer] Total workflow execution timeout including
45
- # retries and continue as new.
46
- # @param run_timeout [Integer] Timeout of a single workflow run.
47
- # @param task_timeout [Integer] Timeout of a single workflow task.
48
- # @param id_reuse_policy [Symbol] How already-existing IDs are treated. Refer to
49
- # {Temporalio::Workflow::IDReusePolicy} for the list of allowed values.
50
- # @param retry_policy [Temporalio::RetryPolicy] Retry policy for the workflow.
51
- # See {Temporalio::RetryPolicy}.
52
- # @param cron_schedule [String] See https://docs.temporal.io/docs/content/what-is-a-temporal-cron-job.
53
- # @param memo [Hash<String, any>] Memo for the workflow.
54
- # @param search_attributes [Hash<String, any>] Search attributes for the workflow.
55
- # @param start_signal [String, Symbol] If present, this signal is sent as signal-with-start
56
- # instead of traditional workflow start.
57
- # @param start_signal_args [Array<any>] Arguments for start_signal if `:start_signal`
58
- # present.
59
- # @param rpc_metadata [Hash<String, String>] Headers used on the RPC call. Keys here override
60
- # client-level RPC metadata keys.
61
- # @param rpc_timeout [Integer] Optional RPC deadline to set for the RPC call.
62
- #
63
- # @return [Temporalio::Client::WorkflowHandle] A workflow handle to the started/existing workflow.
64
- #
65
- # @raise [Temporalio::Error::RPCError] Workflow could not be started.
66
- def start_workflow( # rubocop:disable Metrics/ParameterLists
193
+ # @param task_queue [String] Task queue to run the workflow on.
194
+ # @param execution_timeout [Float, nil] Total workflow execution timeout in seconds including retries and continue
195
+ # as new.
196
+ # @param run_timeout [Float, nil] Timeout of a single workflow run in seconds.
197
+ # @param task_timeout [Float, nil] Timeout of a single workflow task in seconds.
198
+ # @param id_reuse_policy [WorkflowIDReusePolicy] How already-existing IDs are treated.
199
+ # @param id_conflict_policy [WorkflowIDConflictPolicy] How already-running workflows of the same ID are treated.
200
+ # Default is unspecified which effectively means fail the start attempt. This cannot be set if `id_reuse_policy`
201
+ # is set to terminate if running.
202
+ # @param retry_policy [RetryPolicy, nil] Retry policy for the workflow.
203
+ # @param cron_schedule [String, nil] Cron schedule. Users should use schedules instead of this.
204
+ # @param memo [Hash{String, Symbol => Object}, nil] Memo for the workflow.
205
+ # @param search_attributes [SearchAttributes, nil] Search attributes for the workflow.
206
+ # @param start_delay [Float, nil] Amount of time in seconds to wait before starting the workflow. This does not work
207
+ # with `cron_schedule`.
208
+ # @param request_eager_start [Boolean] Potentially reduce the latency to start this workflow by encouraging the
209
+ # server to start it on a local worker running with this same client. This is currently experimental.
210
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
211
+ #
212
+ # @return [WorkflowHandle] A workflow handle to the started workflow.
213
+ # @raise [Error::WorkflowAlreadyStartedError] Workflow already exists.
214
+ # @raise [Error::RPCError] RPC error from call.
215
+ def start_workflow(
67
216
  workflow,
68
217
  *args,
69
218
  id:,
@@ -71,61 +220,265 @@ module Temporalio
71
220
  execution_timeout: nil,
72
221
  run_timeout: nil,
73
222
  task_timeout: nil,
74
- id_reuse_policy: Workflow::IDReusePolicy::ALLOW_DUPLICATE,
223
+ id_reuse_policy: WorkflowIDReusePolicy::ALLOW_DUPLICATE,
224
+ id_conflict_policy: WorkflowIDConflictPolicy::UNSPECIFIED,
75
225
  retry_policy: nil,
76
- cron_schedule: '',
226
+ cron_schedule: nil,
77
227
  memo: nil,
78
228
  search_attributes: nil,
79
- start_signal: nil,
80
- start_signal_args: [],
81
- rpc_metadata: {},
82
- rpc_timeout: nil
229
+ start_delay: nil,
230
+ request_eager_start: false,
231
+ rpc_options: nil
83
232
  )
84
- input = Interceptor::Client::StartWorkflowInput.new(
85
- workflow: workflow,
86
- args: args,
87
- id: id,
88
- task_queue: task_queue,
89
- execution_timeout: execution_timeout,
90
- run_timeout: run_timeout,
91
- task_timeout: task_timeout,
92
- id_reuse_policy: id_reuse_policy,
93
- retry_policy: retry_policy,
94
- cron_schedule: cron_schedule,
95
- memo: memo,
96
- search_attributes: search_attributes,
97
- headers: {},
98
- start_signal: start_signal,
99
- start_signal_args: start_signal_args,
100
- rpc_metadata: rpc_metadata,
101
- rpc_timeout: rpc_timeout,
102
- )
233
+ @impl.start_workflow(Interceptor::StartWorkflowInput.new(
234
+ workflow:,
235
+ args:,
236
+ workflow_id: id,
237
+ task_queue:,
238
+ execution_timeout:,
239
+ run_timeout:,
240
+ task_timeout:,
241
+ id_reuse_policy:,
242
+ id_conflict_policy:,
243
+ retry_policy:,
244
+ cron_schedule:,
245
+ memo:,
246
+ search_attributes:,
247
+ start_delay:,
248
+ request_eager_start:,
249
+ headers: {},
250
+ rpc_options:
251
+ ))
252
+ end
103
253
 
104
- implementation.start_workflow(input)
254
+ # Start a workflow and wait for its result. This is a shortcut for {start_workflow} + {WorkflowHandle.result}.
255
+ #
256
+ # @param workflow [Class<Workflow::Definition>, Symbol, String] Workflow definition class or workflow name.
257
+ # @param args [Array<Object>] Arguments to the workflow.
258
+ # @param id [String] Unique identifier for the workflow execution.
259
+ # @param task_queue [String] Task queue to run the workflow on.
260
+ # @param execution_timeout [Float, nil] Total workflow execution timeout in seconds including retries and continue
261
+ # as new.
262
+ # @param run_timeout [Float, nil] Timeout of a single workflow run in seconds.
263
+ # @param task_timeout [Float, nil] Timeout of a single workflow task in seconds.
264
+ # @param id_reuse_policy [WorkflowIDReusePolicy] How already-existing IDs are treated.
265
+ # @param id_conflict_policy [WorkflowIDConflictPolicy] How already-running workflows of the same ID are treated.
266
+ # Default is unspecified which effectively means fail the start attempt. This cannot be set if `id_reuse_policy`
267
+ # is set to terminate if running.
268
+ # @param retry_policy [RetryPolicy, nil] Retry policy for the workflow.
269
+ # @param cron_schedule [String, nil] Cron schedule. Users should use schedules instead of this.
270
+ # @param memo [Hash{String, Symbol => Object}, nil] Memo for the workflow.
271
+ # @param search_attributes [SearchAttributes, nil] Search attributes for the workflow.
272
+ # @param start_delay [Float, nil] Amount of time in seconds to wait before starting the workflow. This does not work
273
+ # with `cron_schedule`.
274
+ # @param request_eager_start [Boolean] Potentially reduce the latency to start this workflow by encouraging the
275
+ # server to start it on a local worker running with this same client. This is currently experimental.
276
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
277
+ #
278
+ # @return [Object] Successful result of the workflow.
279
+ # @raise [Error::WorkflowAlreadyStartedError] Workflow already exists.
280
+ # @raise [Error::WorkflowFailedError] Workflow failed with +cause+ as the cause.
281
+ # @raise [Error::RPCError] RPC error from call.
282
+ def execute_workflow(
283
+ workflow,
284
+ *args,
285
+ id:,
286
+ task_queue:,
287
+ execution_timeout: nil,
288
+ run_timeout: nil,
289
+ task_timeout: nil,
290
+ id_reuse_policy: WorkflowIDReusePolicy::ALLOW_DUPLICATE,
291
+ id_conflict_policy: WorkflowIDConflictPolicy::UNSPECIFIED,
292
+ retry_policy: nil,
293
+ cron_schedule: nil,
294
+ memo: nil,
295
+ search_attributes: nil,
296
+ start_delay: nil,
297
+ request_eager_start: false,
298
+ rpc_options: nil
299
+ )
300
+ start_workflow(
301
+ workflow,
302
+ *args,
303
+ id:,
304
+ task_queue:,
305
+ execution_timeout:,
306
+ run_timeout:,
307
+ task_timeout:,
308
+ id_reuse_policy:,
309
+ id_conflict_policy:,
310
+ retry_policy:,
311
+ cron_schedule:,
312
+ memo:,
313
+ search_attributes:,
314
+ start_delay:,
315
+ request_eager_start:,
316
+ rpc_options:
317
+ ).result
105
318
  end
106
319
 
107
320
  # Get a workflow handle to an existing workflow by its ID.
108
321
  #
109
- # @param id [String] Workflow ID to get a handle to.
110
- # @param run_id [String, nil] Run ID that will be used for all calls. If omitted, the latest run
111
- # for a given workflow ID will be referenced.
112
- # @param first_execution_run_id [String, nil] A run ID referencing the first workflow execution
113
- # in a chain. Workflows are chained when using continue-as-new, retries (as permitted by the
114
- # retry policy) or cron executions.
115
- #
116
- # @return [Temporalio::Client::WorkflowHandle] The workflow handle.
117
- def workflow_handle(id, run_id: nil, first_execution_run_id: nil)
118
- WorkflowHandle.new(
119
- implementation,
120
- id,
121
- run_id: run_id,
122
- result_run_id: run_id,
123
- first_execution_run_id: first_execution_run_id,
124
- )
322
+ # @param workflow_id [String] Workflow ID to get a handle to.
323
+ # @param run_id [String, nil] Run ID that will be used for all calls. Many choose to leave this unset which ensures
324
+ # interactions occur on the latest of the workflow ID.
325
+ # @param first_execution_run_id [String, nil] First execution run ID used for some calls like cancellation and
326
+ # termination to ensure the affected workflow is only within the same chain as this given run ID.
327
+ #
328
+ # @return [WorkflowHandle] The workflow handle.
329
+ def workflow_handle(
330
+ workflow_id,
331
+ run_id: nil,
332
+ first_execution_run_id: nil
333
+ )
334
+ WorkflowHandle.new(client: self, id: workflow_id, run_id:, result_run_id: run_id, first_execution_run_id:)
335
+ end
336
+
337
+ # List workflows.
338
+ #
339
+ # @param query [String, nil] A Temporal visibility list filter.
340
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
341
+ #
342
+ # @return [Enumerator<WorkflowExecution>] Enumerable workflow executions.
343
+ #
344
+ # @raise [Error::RPCError] RPC error from call.
345
+ #
346
+ # @see https://docs.temporal.io/visibility
347
+ def list_workflows(query = nil, rpc_options: nil)
348
+ @impl.list_workflows(Interceptor::ListWorkflowsInput.new(query:, rpc_options:))
349
+ end
350
+
351
+ # Count workflows.
352
+ #
353
+ # @param query [String, nil] A Temporal visibility list filter.
354
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
355
+ #
356
+ # @return [WorkflowExecutionCount] Count of workflows.
357
+ #
358
+ # @raise [Error::RPCError] RPC error from call.
359
+ #
360
+ # @see https://docs.temporal.io/visibility
361
+ def count_workflows(query = nil, rpc_options: nil)
362
+ @impl.count_workflows(Interceptor::CountWorkflowsInput.new(query:, rpc_options:))
125
363
  end
126
364
 
127
- private
365
+ # Create a schedule and return its handle.
366
+ #
367
+ # @param id [String] Unique identifier of the schedule.
368
+ # @param schedule [Schedule] Schedule to create.
369
+ # @param trigger_immediately [Boolean] If true, trigger one action immediately when creating the schedule.
370
+ # @param backfills [Array<Schedule::Backfill>] Set of time periods to take actions on as if that time passed right
371
+ # now.
372
+ # @param memo [Hash<String, Object>, nil] Memo for the schedule. Memo for a scheduled workflow is part of the
373
+ # schedule action.
374
+ # @param search_attributes [SearchAttributes, nil] Search attributes for the schedule. Search attributes for a
375
+ # scheduled workflow are part of the scheduled action.
376
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
377
+ #
378
+ # @return [ScheduleHandle] A handle to the created schedule.
379
+ # @raise [Error::ScheduleAlreadyRunningError] If a schedule with this ID is already running.
380
+ # @raise [Error::RPCError] RPC error from call.
381
+ def create_schedule(
382
+ id,
383
+ schedule,
384
+ trigger_immediately: false,
385
+ backfills: [],
386
+ memo: nil,
387
+ search_attributes: nil,
388
+ rpc_options: nil
389
+ )
390
+ @impl.create_schedule(Interceptor::CreateScheduleInput.new(
391
+ id:,
392
+ schedule:,
393
+ trigger_immediately:,
394
+ backfills:,
395
+ memo:,
396
+ search_attributes:,
397
+ rpc_options:
398
+ ))
399
+ end
128
400
 
129
- attr_reader :implementation
401
+ # Get a schedule handle to an existing schedule for the given ID.
402
+ #
403
+ # @param id [String] Schedule ID to get a handle to.
404
+ # @return [ScheduleHandle] The schedule handle.
405
+ def schedule_handle(id)
406
+ ScheduleHandle.new(client: self, id:)
407
+ end
408
+
409
+ # List schedules.
410
+ #
411
+ # Note, this list is eventually consistent. Therefore if a schedule is added or deleted, it may not be available in
412
+ # the list immediately.
413
+ #
414
+ # @param query [String] A Temporal visibility list filter.
415
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
416
+ #
417
+ # @return [Enumerator<Schedule::List::Description>] Enumerable schedules.
418
+ #
419
+ # @raise [Error::RPCError] RPC error from call.
420
+ #
421
+ # @see https://docs.temporal.io/visibility
422
+ def list_schedules(query = nil, rpc_options: nil)
423
+ @impl.list_schedules(Interceptor::ListSchedulesInput.new(query:, rpc_options:))
424
+ end
425
+
426
+ # Get an async activity handle.
427
+ #
428
+ # @param task_token_or_id_reference [String, ActivityIDReference] Task token string or activity ID reference.
429
+ # @return [AsyncActivityHandle]
430
+ def async_activity_handle(task_token_or_id_reference)
431
+ if task_token_or_id_reference.is_a?(ActivityIDReference)
432
+ AsyncActivityHandle.new(client: self, task_token: nil, id_reference: task_token_or_id_reference)
433
+ elsif task_token_or_id_reference.is_a?(String)
434
+ AsyncActivityHandle.new(client: self, task_token: task_token_or_id_reference, id_reference: nil)
435
+ else
436
+ raise ArgumentError, 'Must be a string task token or an ActivityIDReference'
437
+ end
438
+ end
439
+
440
+ # @!visibility private
441
+ def _impl
442
+ @impl
443
+ end
444
+
445
+ # Set of RPC options for RPC calls.
446
+ class RPCOptions
447
+ # @return [Hash<String, String>, nil] Headers to include on the RPC call.
448
+ attr_accessor :metadata
449
+
450
+ # @return [Float, nil] Number of seconds before timeout of the RPC call.
451
+ attr_accessor :timeout
452
+
453
+ # @return [Cancellation, nil] Cancellation to use to potentially cancel the call. If canceled, the RPC will return
454
+ # {Error::CanceledError}.
455
+ attr_accessor :cancellation
456
+
457
+ # @return [Boolean, nil] Whether to override the default retry option which decides whether to retry calls
458
+ # implicitly when known transient error codes are reached. By default when this is nil, high-level calls retry
459
+ # known transient error codes and low-level/direct calls do not.
460
+ attr_accessor :override_retry
461
+
462
+ # Create RPC options.
463
+ #
464
+ # @param metadata [Hash<String, String>, nil] Headers to include on the RPC call.
465
+ # @param timeout [Float, nil] Number of seconds before timeout of the RPC call.
466
+ # @param cancellation [Cancellation, nil] Cancellation to use to potentially cancel the call. If canceled, the RPC
467
+ # will return {Error::CanceledError}.
468
+ # @param override_retry [Boolean, nil] Whether to override the default retry option which decides whether to retry
469
+ # calls implicitly when known transient error codes are reached. By default when this is nil, high-level calls
470
+ # retry known transient error codes and low-level/direct calls do not.
471
+ def initialize(
472
+ metadata: nil,
473
+ timeout: nil,
474
+ cancellation: nil,
475
+ override_retry: nil
476
+ )
477
+ @metadata = metadata
478
+ @timeout = timeout
479
+ @cancellation = cancellation
480
+ @override_retry = override_retry
481
+ end
482
+ end
130
483
  end
131
484
  end