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
@@ -0,0 +1,67 @@
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_metadata [Hash<String, String>, nil] Headers to include on the RPC call.
40
+ # @param rpc_timeout [Float, nil] Number of seconds before timeout.
41
+ #
42
+ # @return [Object, nil] Update result.
43
+ #
44
+ # @raise [Error::WorkflowUpdateFailedError] If the update failed.
45
+ # @raise [Error::WorkflowUpdateRPCTimeoutOrCanceledError] This update call timed out or was canceled. This doesn't
46
+ # mean the update itself was timed out or canceled.
47
+ # @raise [Error::RPCError] RPC error from call.
48
+ def result(rpc_metadata: nil, rpc_timeout: nil)
49
+ @known_outcome ||= @client._impl.poll_workflow_update(Interceptor::PollWorkflowUpdateInput.new(
50
+ workflow_id:,
51
+ run_id: workflow_run_id,
52
+ update_id: id,
53
+ rpc_metadata:,
54
+ rpc_timeout:
55
+ ))
56
+
57
+ if @known_outcome.failure
58
+ raise Error::WorkflowUpdateFailedError.new, cause: @client.data_converter.from_failure(@known_outcome.failure)
59
+ end
60
+
61
+ results = @client.data_converter.from_payloads(@known_outcome.success)
62
+ warn("Expected 0 or 1 update result, got #{results.size}") if results.size > 1
63
+ results.first
64
+ end
65
+ end
66
+ end
67
+ 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,215 @@
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/workflow_execution'
10
+ require 'temporalio/client/workflow_execution_count'
5
11
  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'
12
+ require 'temporalio/client/workflow_query_reject_condition'
13
+ require 'temporalio/common_enums'
14
+ require 'temporalio/converters'
15
+ require 'temporalio/error'
16
+ require 'temporalio/internal/client/implementation'
17
+ require 'temporalio/retry_policy'
18
+ require 'temporalio/runtime'
19
+ require 'temporalio/search_attributes'
11
20
 
12
21
  module Temporalio
22
+ # Client for accessing Temporal.
23
+ #
24
+ # Most users will use {connect} to connect a client. The {workflow_service} method provides access to a raw gRPC
25
+ # client. To create another client on the same connection, like for a different namespace, {options} may be used to
26
+ # get the options as a struct which can then be dup'd, altered, and splatted as kwargs to the constructor (e.g.
27
+ # +Client.new(**my_options.to_h)+).
28
+ #
29
+ # Clients are thread-safe and are meant to be reused for the life of the application. They are built to work in both
30
+ # synchronous and asynchronous contexts. Internally they use callbacks based on {::Queue} which means they are
31
+ # Fiber-compatible.
13
32
  class Client
14
- # @return [String] Namespace used for client calls.
15
- attr_reader :namespace
33
+ # Options as returned from {options} for +**to_h+ splat use in {initialize}. See {initialize} for details.
34
+ Options = Struct.new(
35
+ :connection,
36
+ :namespace,
37
+ :data_converter,
38
+ :interceptors,
39
+ :logger,
40
+ :default_workflow_query_reject_condition,
41
+ keyword_init: true
42
+ )
16
43
 
17
- # Create a Temporal client from a connection.
44
+ # Connect to Temporal server. This is a shortcut for +Connection.new+ followed by +Client.new+.
18
45
  #
19
- # @param connection [Temporalio::Connection] A connection to the Temporal server.
46
+ # @param target_host [String] +host:port+ for the Temporal server. For local development, this is often
47
+ # +localhost:7233+.
20
48
  # @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.
49
+ # @param api_key [String, nil] API key for Temporal. This becomes the +Authorization+ HTTP header with +"Bearer "+
50
+ # prepended. This is only set if RPC metadata doesn't already have an +authorization+ key.
51
+ # @param tls [Boolean, Connection::TLSOptions] If false, do not use TLS. If true, use system default TLS options. If
52
+ # TLS options are present, those TLS options will be used.
53
+ # @param data_converter [Converters::DataConverter] Data converter to use for all data conversions to/from payloads.
54
+ # @param interceptors [Array<Interceptor>] Set of interceptors that are chained together to allow intercepting of
55
+ # client calls. The earlier interceptors wrap the later ones. Any interceptors that also implement worker
56
+ # interceptor will be used as worker interceptors too so they should not be given separately when creating a
57
+ # worker.
58
+ # @param logger [Logger] Logger to use for this client and any workers made from this client. Defaults to stdout
59
+ # with warn level. Callers setting this logger are responsible for closing it.
60
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection
61
+ # condition for workflow queries if not set during query. See {WorkflowHandle.query} for details on the
62
+ # rejection condition.
63
+ # @param rpc_metadata [Hash<String, String>] Headers to use for all calls to the server. Keys here can be overriden
64
+ # by per-call RPC metadata keys.
65
+ # @param rpc_retry [Connection::RPCRetryOptions] Retry options for direct service calls (when opted in) or all
66
+ # high-level calls made by this client (which all opt-in to retries by default).
67
+ # @param identity [String] Identity for this client.
68
+ # @param keep_alive [Connection::KeepAliveOptions] Keep-alive options for the client connection. Can be set to +nil+
69
+ # to disable.
70
+ # @param http_connect_proxy [Connection::HTTPConnectProxyOptions, nil] Options for HTTP CONNECT proxy.
71
+ # @param runtime [Runtime] Runtime for this client.
72
+ # @param lazy_connect [Boolean] If true, the client will not connect until the first call is attempted or a worker
73
+ # is created with it. Lazy clients cannot be used for workers if they have not performed a connection.
25
74
  #
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,
75
+ # @return [Client] Connected client.
76
+ #
77
+ # @see Connection.initialize
78
+ # @see initialize
79
+ def self.connect(
80
+ target_host,
30
81
  namespace,
82
+ api_key: nil,
83
+ tls: false,
84
+ data_converter: Converters::DataConverter.default,
31
85
  interceptors: [],
32
- data_converter: Temporalio::DataConverter.new
86
+ logger: Logger.new($stdout, level: Logger::WARN),
87
+ default_workflow_query_reject_condition: nil,
88
+ rpc_metadata: {},
89
+ rpc_retry: Connection::RPCRetryOptions.new,
90
+ identity: "#{Process.pid}@#{Socket.gethostname}",
91
+ keep_alive: Connection::KeepAliveOptions.new, # Set to nil to disable
92
+ http_connect_proxy: nil,
93
+ runtime: Runtime.default,
94
+ lazy_connect: false
33
95
  )
34
- @namespace = namespace
35
- @implementation = Client::Implementation.new(connection, namespace, data_converter, interceptors)
96
+ Client.new(
97
+ connection: Connection.new(
98
+ target_host:,
99
+ api_key:,
100
+ tls:,
101
+ rpc_metadata:,
102
+ rpc_retry:,
103
+ identity:,
104
+ keep_alive:,
105
+ http_connect_proxy:,
106
+ runtime:,
107
+ lazy_connect:
108
+ ),
109
+ namespace:,
110
+ data_converter:,
111
+ interceptors:,
112
+ logger:,
113
+ default_workflow_query_reject_condition:
114
+ )
115
+ end
116
+
117
+ # @return [Options] Frozen options for this client which has the same attributes as {initialize}.
118
+ attr_reader :options
119
+
120
+ # Create a client from an existing connection. Most users will prefer {connect} instead. Parameters here match
121
+ # {Options} returned from {options} by intention so options can be dup'd, altered, and splatted to create a new
122
+ # client.
123
+ #
124
+ # @param connection [Connection] Existing connection to create a client from.
125
+ # @param namespace [String] Namespace to use for client calls.
126
+ # @param data_converter [Converters::DataConverter] Data converter to use for all data conversions to/from payloads.
127
+ # @param interceptors [Array<Interceptor>] Set of interceptors that are chained together to allow intercepting of
128
+ # client calls. The earlier interceptors wrap the later ones. Any interceptors that also implement worker
129
+ # interceptor will be used as worker interceptors too so they should not be given separately when creating a
130
+ # worker.
131
+ # @param logger [Logger] Logger to use for this client and any workers made from this client. Defaults to stdout
132
+ # with warn level. Callers setting this logger are responsible for closing it.
133
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection condition for
134
+ # workflow queries if not set during query. See {WorkflowHandle.query} for details on the rejection condition.
135
+ #
136
+ # @see connect
137
+ def initialize(
138
+ connection:,
139
+ namespace:,
140
+ data_converter: DataConverter.default,
141
+ interceptors: [],
142
+ logger: Logger.new($stdout, level: Logger::WARN),
143
+ default_workflow_query_reject_condition: nil
144
+ )
145
+ @options = Options.new(
146
+ connection:,
147
+ namespace:,
148
+ data_converter:,
149
+ interceptors:,
150
+ logger:,
151
+ default_workflow_query_reject_condition:
152
+ ).freeze
153
+ # Initialize interceptors
154
+ @impl = interceptors.reverse_each.reduce(Internal::Client::Implementation.new(self)) do |acc, int|
155
+ int.intercept_client(acc)
156
+ end
157
+ end
158
+
159
+ # @return [Connection] Underlying connection for this client.
160
+ def connection
161
+ @options.connection
162
+ end
163
+
164
+ # @return [String] Namespace used in calls by this client.
165
+ def namespace
166
+ @options.namespace
167
+ end
168
+
169
+ # @return [DataConverter] Data converter used by this client.
170
+ def data_converter
171
+ @options.data_converter
172
+ end
173
+
174
+ # @return [Connection::WorkflowService] Raw gRPC workflow service.
175
+ def workflow_service
176
+ connection.workflow_service
177
+ end
178
+
179
+ # @return [Connection::OperatorService] Raw gRPC operator service.
180
+ def operator_service
181
+ connection.operator_service
36
182
  end
37
183
 
38
184
  # Start a workflow and return its handle.
39
185
  #
40
- # @param workflow [String] Name of the workflow.
41
- # @param args [any] Arguments to the workflow.
186
+ # @param workflow [Workflow, String] Name of the workflow
187
+ # @param args [Array<Object>] Arguments to the workflow.
42
188
  # @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
189
+ # @param task_queue [String] Task queue to run the workflow on.
190
+ # @param execution_timeout [Float, nil] Total workflow execution timeout in seconds including retries and continue
191
+ # as new.
192
+ # @param run_timeout [Float, nil] Timeout of a single workflow run in seconds.
193
+ # @param task_timeout [Float, nil] Timeout of a single workflow task in seconds.
194
+ # @param id_reuse_policy [WorkflowIDReusePolicy] How already-existing IDs are treated.
195
+ # @param id_conflict_policy [WorkflowIDConflictPolicy] How already-running workflows of the same ID are treated.
196
+ # Default is unspecified which effectively means fail the start attempt. This cannot be set if `id_reuse_policy`
197
+ # is set to terminate if running.
198
+ # @param retry_policy [RetryPolicy, nil] Retry policy for the workflow.
199
+ # @param cron_schedule [String, nil] Cron schedule. Users should use schedules instead of this.
200
+ # @param memo [Hash<String, Object>, nil] Memo for the workflow.
201
+ # @param search_attributes [SearchAttributes, nil] Search attributes for the workflow.
202
+ # @param start_delay [Float, nil] Amount of time in seconds to wait before starting the workflow. This does not work
203
+ # with `cron_schedule`.
204
+ # @param request_eager_start [Boolean] Potentially reduce the latency to start this workflow by encouraging the
205
+ # server to start it on a local worker running with this same client. This is currently experimental.
206
+ # @param rpc_metadata [Hash<String, String>, nil] Headers to include on the RPC call.
207
+ # @param rpc_timeout [Float, nil] Number of seconds before timeout.
208
+ #
209
+ # @return [WorkflowHandle] A workflow handle to the started workflow.
210
+ # @raise [Error::WorkflowAlreadyStartedError] Workflow already exists.
211
+ # @raise [Error::RPCError] RPC error from call.
212
+ def start_workflow(
67
213
  workflow,
68
214
  *args,
69
215
  id:,
@@ -71,61 +217,188 @@ module Temporalio
71
217
  execution_timeout: nil,
72
218
  run_timeout: nil,
73
219
  task_timeout: nil,
74
- id_reuse_policy: Workflow::IDReusePolicy::ALLOW_DUPLICATE,
220
+ id_reuse_policy: WorkflowIDReusePolicy::ALLOW_DUPLICATE,
221
+ id_conflict_policy: WorkflowIDConflictPolicy::UNSPECIFIED,
75
222
  retry_policy: nil,
76
- cron_schedule: '',
223
+ cron_schedule: nil,
77
224
  memo: nil,
78
225
  search_attributes: nil,
79
- start_signal: nil,
80
- start_signal_args: [],
81
- rpc_metadata: {},
226
+ start_delay: nil,
227
+ request_eager_start: false,
228
+ rpc_metadata: nil,
82
229
  rpc_timeout: nil
83
230
  )
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
- )
231
+ @impl.start_workflow(Interceptor::StartWorkflowInput.new(
232
+ workflow:,
233
+ args:,
234
+ workflow_id: id,
235
+ task_queue:,
236
+ execution_timeout:,
237
+ run_timeout:,
238
+ task_timeout:,
239
+ id_reuse_policy:,
240
+ id_conflict_policy:,
241
+ retry_policy:,
242
+ cron_schedule:,
243
+ memo:,
244
+ search_attributes:,
245
+ start_delay:,
246
+ request_eager_start:,
247
+ headers: {},
248
+ rpc_metadata:,
249
+ rpc_timeout:
250
+ ))
251
+ end
103
252
 
104
- implementation.start_workflow(input)
253
+ # Start a workflow and wait for its result. This is a shortcut for {start_workflow} + {WorkflowHandle.result}.
254
+ #
255
+ # @param workflow [Workflow, String] Name of the workflow
256
+ # @param args [Array<Object>] Arguments to the workflow.
257
+ # @param id [String] Unique identifier for the workflow execution.
258
+ # @param task_queue [String] Task queue to run the workflow on.
259
+ # @param execution_timeout [Float, nil] Total workflow execution timeout in seconds including retries and continue
260
+ # as new.
261
+ # @param run_timeout [Float, nil] Timeout of a single workflow run in seconds.
262
+ # @param task_timeout [Float, nil] Timeout of a single workflow task in seconds.
263
+ # @param id_reuse_policy [WorkflowIDReusePolicy] How already-existing IDs are treated.
264
+ # @param id_conflict_policy [WorkflowIDConflictPolicy] How already-running workflows of the same ID are treated.
265
+ # Default is unspecified which effectively means fail the start attempt. This cannot be set if `id_reuse_policy`
266
+ # is set to terminate if running.
267
+ # @param retry_policy [RetryPolicy, nil] Retry policy for the workflow.
268
+ # @param cron_schedule [String, nil] Cron schedule. Users should use schedules instead of this.
269
+ # @param memo [Hash<String, Object>, nil] Memo for the workflow.
270
+ # @param search_attributes [SearchAttributes, nil] Search attributes for the workflow.
271
+ # @param start_delay [Float, nil] Amount of time in seconds to wait before starting the workflow. This does not work
272
+ # with `cron_schedule`.
273
+ # @param request_eager_start [Boolean] Potentially reduce the latency to start this workflow by encouraging the
274
+ # server to start it on a local worker running with this same client. This is currently experimental.
275
+ # @param rpc_metadata [Hash<String, String>, nil] Headers to include on the RPC call.
276
+ # @param rpc_timeout [Float, nil] Number of seconds before timeout.
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_metadata: nil,
299
+ rpc_timeout: nil
300
+ )
301
+ start_workflow(
302
+ workflow,
303
+ *args,
304
+ id:,
305
+ task_queue:,
306
+ execution_timeout:,
307
+ run_timeout:,
308
+ task_timeout:,
309
+ id_reuse_policy:,
310
+ id_conflict_policy:,
311
+ retry_policy:,
312
+ cron_schedule:,
313
+ memo:,
314
+ search_attributes:,
315
+ start_delay:,
316
+ request_eager_start:,
317
+ rpc_metadata:,
318
+ rpc_timeout:
319
+ ).result
105
320
  end
106
321
 
107
322
  # Get a workflow handle to an existing workflow by its ID.
108
323
  #
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
- )
324
+ # @param workflow_id [String] Workflow ID to get a handle to.
325
+ # @param run_id [String, nil] Run ID that will be used for all calls. Many choose to leave this unset which ensures
326
+ # interactions occur on the latest of the workflow ID.
327
+ # @param first_execution_run_id [String, nil] First execution run ID used for some calls like cancellation and
328
+ # termination to ensure the affected workflow is only within the same chain as this given run ID.
329
+ #
330
+ # @return [WorkflowHandle] The workflow handle.
331
+ def workflow_handle(
332
+ workflow_id,
333
+ run_id: nil,
334
+ first_execution_run_id: nil
335
+ )
336
+ WorkflowHandle.new(client: self, id: workflow_id, run_id:, result_run_id: run_id, first_execution_run_id:)
125
337
  end
126
338
 
127
- private
339
+ # List workflows.
340
+ #
341
+ # @param query [String, nil] A Temporal visibility list filter.
342
+ # @param rpc_metadata [Hash<String, String>, nil] Headers to include on the RPC call.
343
+ # @param rpc_timeout [Float, nil] Number of seconds before timeout.
344
+ #
345
+ # @return [Enumerator<WorkflowExecution>] Enumerable workflow executions.
346
+ #
347
+ # @raise [Error::RPCError] RPC error from call.
348
+ #
349
+ # @see https://docs.temporal.io/visibility
350
+ def list_workflows(
351
+ query = nil,
352
+ rpc_metadata: nil,
353
+ rpc_timeout: nil
354
+ )
355
+ @impl.list_workflows(Interceptor::ListWorkflowsInput.new(
356
+ query:,
357
+ rpc_metadata:,
358
+ rpc_timeout:
359
+ ))
360
+ end
361
+
362
+ # Count workflows.
363
+ #
364
+ # @param query [String, nil] A Temporal visibility list filter.
365
+ # @param rpc_metadata [Hash<String, String>, nil] Headers to include on the RPC call.
366
+ # @param rpc_timeout [Float, nil] Number of seconds before timeout.
367
+ #
368
+ # @return [WorkflowExecutionCount] Count of workflows.
369
+ #
370
+ # @raise [Error::RPCError] RPC error from call.
371
+ #
372
+ # @see https://docs.temporal.io/visibility
373
+ def count_workflows(
374
+ query = nil,
375
+ rpc_metadata: nil,
376
+ rpc_timeout: nil
377
+ )
378
+ @impl.count_workflows(Interceptor::CountWorkflowsInput.new(
379
+ query:,
380
+ rpc_metadata:,
381
+ rpc_timeout:
382
+ ))
383
+ end
128
384
 
129
- attr_reader :implementation
385
+ # Get an async activity handle.
386
+ #
387
+ # @param task_token_or_id_reference [String, ActivityIDReference] Task token string or activity ID reference.
388
+ # @return [AsyncActivityHandle]
389
+ def async_activity_handle(task_token_or_id_reference)
390
+ if task_token_or_id_reference.is_a?(ActivityIDReference)
391
+ AsyncActivityHandle.new(client: self, task_token: nil, id_reference: task_token_or_id_reference)
392
+ elsif task_token_or_id_reference.is_a?(String)
393
+ AsyncActivityHandle.new(client: self, task_token: task_token_or_id_reference, id_reference: nil)
394
+ else
395
+ raise ArgumentError, 'Must be a string task token or an ActivityIDReference'
396
+ end
397
+ end
398
+
399
+ # @!visibility private
400
+ def _impl
401
+ @impl
402
+ end
130
403
  end
131
404
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+
5
+ module Temporalio
6
+ # How already-in-use workflow IDs are handled on start.
7
+ #
8
+ # @see https://docs.temporal.io/workflows#workflow-id-reuse-policy
9
+ module WorkflowIDReusePolicy
10
+ ALLOW_DUPLICATE = Api::Enums::V1::WorkflowIdReusePolicy::WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE
11
+ ALLOW_DUPLICATE_FAILED_ONLY =
12
+ Api::Enums::V1::WorkflowIdReusePolicy::WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY
13
+ REJECT_DUPLICATE = Api::Enums::V1::WorkflowIdReusePolicy::WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE
14
+ TERMINATE_IF_RUNNING = Api::Enums::V1::WorkflowIdReusePolicy::WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING
15
+ end
16
+
17
+ # How already-running workflows of the same ID are handled on start.
18
+ module WorkflowIDConflictPolicy
19
+ UNSPECIFIED = Api::Enums::V1::WorkflowIdConflictPolicy::WORKFLOW_ID_CONFLICT_POLICY_UNSPECIFIED
20
+ FAIL = Api::Enums::V1::WorkflowIdConflictPolicy::WORKFLOW_ID_CONFLICT_POLICY_FAIL
21
+ USE_EXISTING = Api::Enums::V1::WorkflowIdConflictPolicy::WORKFLOW_ID_CONFLICT_POLICY_USE_EXISTING
22
+ TERMINATE_EXISTING = Api::Enums::V1::WorkflowIdConflictPolicy::WORKFLOW_ID_CONFLICT_POLICY_TERMINATE_EXISTING
23
+ end
24
+ end