temporalio 1.4.1 → 1.6.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 (509) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +1456 -616
  3. data/Cargo.toml +1 -1
  4. data/Gemfile +6 -5
  5. data/README.md +99 -1
  6. data/ext/Cargo.toml +9 -3
  7. data/lib/temporalio/activity/definition.rb +22 -0
  8. data/lib/temporalio/activity/info.rb +21 -5
  9. data/lib/temporalio/api/activity/v1/message.rb +1 -1
  10. data/lib/temporalio/api/cloud/billing/v1/message.rb +2 -1
  11. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +17 -1
  12. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +1 -1
  13. data/lib/temporalio/api/cloud/connectivityrule/v1/message.rb +1 -1
  14. data/lib/temporalio/api/cloud/identity/v1/message.rb +8 -1
  15. data/lib/temporalio/api/cloud/namespace/v1/message.rb +5 -1
  16. data/lib/temporalio/api/command/v1/message.rb +2 -1
  17. data/lib/temporalio/api/common/v1/message.rb +5 -1
  18. data/lib/temporalio/api/deployment/v1/message.rb +3 -1
  19. data/lib/temporalio/api/history/v1/message.rb +3 -1
  20. data/lib/temporalio/api/namespace/v1/message.rb +1 -1
  21. data/lib/temporalio/api/nexus/v1/message.rb +1 -1
  22. data/lib/temporalio/api/nexusannotations/v1/options.rb +20 -0
  23. data/lib/temporalio/api/payload_visitor.rb +32 -0
  24. data/lib/temporalio/api/schedule/v1/message.rb +1 -1
  25. data/lib/temporalio/api/sdk/v1/event_group_marker.rb +26 -0
  26. data/lib/temporalio/api/update/v1/message.rb +1 -1
  27. data/lib/temporalio/api/workflow/v1/message.rb +3 -2
  28. data/lib/temporalio/api/workflowservice/v1/request_response.rb +11 -1
  29. data/lib/temporalio/api/workflowservice/v1/service.rb +3 -2
  30. data/lib/temporalio/client/activity_execution.rb +221 -0
  31. data/lib/temporalio/client/activity_execution_count.rb +40 -0
  32. data/lib/temporalio/client/activity_execution_status.rb +20 -0
  33. data/lib/temporalio/client/activity_handle.rb +123 -0
  34. data/lib/temporalio/client/activity_id_reference.rb +42 -7
  35. data/lib/temporalio/client/connection/cloud_service.rb +120 -0
  36. data/lib/temporalio/client/connection/workflow_service.rb +75 -0
  37. data/lib/temporalio/client/connection.rb +37 -2
  38. data/lib/temporalio/client/interceptor.rb +149 -0
  39. data/lib/temporalio/client/pending_activity_state.rb +18 -0
  40. data/lib/temporalio/client/with_start_workflow_operation.rb +6 -0
  41. data/lib/temporalio/client.rb +214 -5
  42. data/lib/temporalio/common_enums.rb +28 -0
  43. data/lib/temporalio/error/failure.rb +22 -0
  44. data/lib/temporalio/error.rb +11 -0
  45. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +1 -1
  46. data/lib/temporalio/internal/bridge/client.rb +6 -1
  47. data/lib/temporalio/internal/bridge.rb +20 -0
  48. data/lib/temporalio/internal/client/implementation.rb +213 -22
  49. data/lib/temporalio/internal/google_protobuf.rb +11 -0
  50. data/lib/temporalio/internal/worker/activity_worker.rb +15 -5
  51. data/lib/temporalio/internal/worker/workflow_instance/context.rb +2 -0
  52. data/lib/temporalio/internal/worker/workflow_instance/details.rb +3 -1
  53. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +14 -4
  54. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +73 -2
  55. data/lib/temporalio/internal/worker/workflow_instance.rb +36 -6
  56. data/lib/temporalio/internal/worker/workflow_worker.rb +10 -2
  57. data/lib/temporalio/internal/workflow_task_failure_error.rb +9 -0
  58. data/lib/temporalio/testing/activity_environment.rb +2 -0
  59. data/lib/temporalio/version.rb +1 -1
  60. data/lib/temporalio/worker/activity_executor/fiber.rb +1 -1
  61. data/lib/temporalio/worker/activity_executor/thread_pool.rb +1 -1
  62. data/lib/temporalio/worker/illegal_workflow_call_validator.rb +3 -1
  63. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +5 -1
  64. data/lib/temporalio/worker/workflow_replayer.rb +17 -4
  65. data/lib/temporalio/worker.rb +30 -5
  66. data/lib/temporalio/workflow/future.rb +5 -0
  67. data/lib/temporalio/workflow/nexus_operation_cancellation_type.rb +4 -2
  68. data/lib/temporalio/workflow.rb +8 -0
  69. data/rbi/google/protobuf.rbi +25 -0
  70. data/rbi/temporalio/activity/cancellation_details.rbi +33 -0
  71. data/rbi/temporalio/activity/complete_async_error.rbi +3 -0
  72. data/rbi/temporalio/activity/context.rbi +42 -0
  73. data/rbi/temporalio/activity/definition.rbi +74 -0
  74. data/rbi/temporalio/activity/info.rbi +112 -0
  75. data/rbi/temporalio/activity.rbi +3 -0
  76. data/rbi/temporalio/api/activity/v1/message.rbi +1453 -0
  77. data/rbi/temporalio/api/batch/v1/message.rbi +1283 -0
  78. data/rbi/temporalio/api/callback/v1/message.rbi +188 -0
  79. data/rbi/temporalio/api/cloud/account/v1/message.rbi +650 -0
  80. data/rbi/temporalio/api/cloud/auditlog/v1/message.rbi +318 -0
  81. data/rbi/temporalio/api/cloud/billing/v1/message.rbi +480 -0
  82. data/rbi/temporalio/api/cloud/cloudservice/v1/request_response.rbi +12454 -0
  83. data/rbi/temporalio/api/cloud/cloudservice/v1/service.rbi +3 -0
  84. data/rbi/temporalio/api/cloud/cloudservice/v1/service_services.rbi +709 -0
  85. data/rbi/temporalio/api/cloud/cloudservice.rbi +5 -0
  86. data/rbi/temporalio/api/cloud/connectivityrule/v1/message.rbi +403 -0
  87. data/rbi/temporalio/api/cloud/identity/v1/message.rbi +3072 -0
  88. data/rbi/temporalio/api/cloud/namespace/v1/message.rbi +3659 -0
  89. data/rbi/temporalio/api/cloud/nexus/v1/message.rbi +595 -0
  90. data/rbi/temporalio/api/cloud/operation/v1/message.rbi +244 -0
  91. data/rbi/temporalio/api/cloud/region/v1/message.rbi +166 -0
  92. data/rbi/temporalio/api/cloud/resource/v1/message.rbi +29 -0
  93. data/rbi/temporalio/api/cloud/sink/v1/message.rbi +438 -0
  94. data/rbi/temporalio/api/cloud/usage/v1/message.rbi +409 -0
  95. data/rbi/temporalio/api/command/v1/message.rbi +2655 -0
  96. data/rbi/temporalio/api/common/v1/grpc_status.rbi +92 -0
  97. data/rbi/temporalio/api/common/v1/message.rbi +2983 -0
  98. data/rbi/temporalio/api/compute/v1/config.rbi +421 -0
  99. data/rbi/temporalio/api/compute/v1/provider.rbi +125 -0
  100. data/rbi/temporalio/api/compute/v1/scaler.rbi +102 -0
  101. data/rbi/temporalio/api/deployment/v1/message.rbi +2340 -0
  102. data/rbi/temporalio/api/enums/v1/activity.rbi +62 -0
  103. data/rbi/temporalio/api/enums/v1/batch_operation.rbi +47 -0
  104. data/rbi/temporalio/api/enums/v1/command_type.rbi +36 -0
  105. data/rbi/temporalio/api/enums/v1/common.rbi +181 -0
  106. data/rbi/temporalio/api/enums/v1/deployment.rbi +80 -0
  107. data/rbi/temporalio/api/enums/v1/event_type.rbi +79 -0
  108. data/rbi/temporalio/api/enums/v1/failed_cause.rbi +155 -0
  109. data/rbi/temporalio/api/enums/v1/namespace.rbi +58 -0
  110. data/rbi/temporalio/api/enums/v1/nexus.rbi +98 -0
  111. data/rbi/temporalio/api/enums/v1/query.rbi +40 -0
  112. data/rbi/temporalio/api/enums/v1/reset.rbi +60 -0
  113. data/rbi/temporalio/api/enums/v1/schedule.rbi +25 -0
  114. data/rbi/temporalio/api/enums/v1/task_queue.rbi +134 -0
  115. data/rbi/temporalio/api/enums/v1/update.rbi +39 -0
  116. data/rbi/temporalio/api/enums/v1/workflow.rbi +259 -0
  117. data/rbi/temporalio/api/errordetails/v1/message.rbi +1389 -0
  118. data/rbi/temporalio/api/export/v1/message.rbi +123 -0
  119. data/rbi/temporalio/api/failure/v1/message.rbi +1303 -0
  120. data/rbi/temporalio/api/filter/v1/message.rbi +267 -0
  121. data/rbi/temporalio/api/history/v1/message.rbi +10737 -0
  122. data/rbi/temporalio/api/namespace/v1/message.rbi +1044 -0
  123. data/rbi/temporalio/api/nexus/v1/message.rbi +2780 -0
  124. data/rbi/temporalio/api/nexusannotations/v1/options.rbi +161 -0
  125. data/rbi/temporalio/api/nexusservices/workerservice/v1/request_response.rbi +124 -0
  126. data/rbi/temporalio/api/operatorservice/v1/request_response.rbi +1836 -0
  127. data/rbi/temporalio/api/operatorservice/v1/service.rbi +3 -0
  128. data/rbi/temporalio/api/operatorservice/v1/service_services.rbi +143 -0
  129. data/rbi/temporalio/api/operatorservice.rbi +5 -0
  130. data/rbi/temporalio/api/payload_visitor.rbi +876 -0
  131. data/rbi/temporalio/api/protoc_gen_openapiv2/options/annotations.rbi +3 -0
  132. data/rbi/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rbi +3482 -0
  133. data/rbi/temporalio/api/protocol/v1/message.rbi +139 -0
  134. data/rbi/temporalio/api/protometa/v1/annotations.rbi +97 -0
  135. data/rbi/temporalio/api/query/v1/message.rbi +288 -0
  136. data/rbi/temporalio/api/replication/v1/message.rbi +226 -0
  137. data/rbi/temporalio/api/rules/v1/message.rbi +492 -0
  138. data/rbi/temporalio/api/schedule/v1/message.rbi +2377 -0
  139. data/rbi/temporalio/api/sdk/v1/enhanced_stack_trace.rbi +478 -0
  140. data/rbi/temporalio/api/sdk/v1/event_group_marker.rbi +337 -0
  141. data/rbi/temporalio/api/sdk/v1/external_storage.rbi +85 -0
  142. data/rbi/temporalio/api/sdk/v1/task_complete_metadata.rbi +206 -0
  143. data/rbi/temporalio/api/sdk/v1/user_metadata.rbi +98 -0
  144. data/rbi/temporalio/api/sdk/v1/worker_config.rbi +255 -0
  145. data/rbi/temporalio/api/sdk/v1/workflow_metadata.rbi +297 -0
  146. data/rbi/temporalio/api/taskqueue/v1/message.rbi +2460 -0
  147. data/rbi/temporalio/api/testservice/v1/request_response.rbi +380 -0
  148. data/rbi/temporalio/api/testservice/v1/service.rbi +3 -0
  149. data/rbi/temporalio/api/testservice/v1/service_services.rbi +100 -0
  150. data/rbi/temporalio/api/update/v1/message.rbi +800 -0
  151. data/rbi/temporalio/api/version/v1/message.rbi +281 -0
  152. data/rbi/temporalio/api/worker/v1/message.rbi +1565 -0
  153. data/rbi/temporalio/api/workflow/v1/message.rbi +5011 -0
  154. data/rbi/temporalio/api/workflowservice/v1/request_response.rbi +30477 -0
  155. data/rbi/temporalio/api/workflowservice/v1/service.rbi +3 -0
  156. data/rbi/temporalio/api/workflowservice/v1/service_services.rbi +1571 -0
  157. data/rbi/temporalio/api/workflowservice.rbi +5 -0
  158. data/rbi/temporalio/api.rbi +7 -0
  159. data/rbi/temporalio/cancellation.rbi +40 -0
  160. data/rbi/temporalio/client/activity_execution.rbi +134 -0
  161. data/rbi/temporalio/client/activity_execution_count.rbi +23 -0
  162. data/rbi/temporalio/client/activity_execution_status.rbi +11 -0
  163. data/rbi/temporalio/client/activity_handle.rbi +49 -0
  164. data/rbi/temporalio/client/activity_id_reference.rbi +24 -0
  165. data/rbi/temporalio/client/async_activity_handle.rbi +49 -0
  166. data/rbi/temporalio/client/connection/cloud_service.rbi +239 -0
  167. data/rbi/temporalio/client/connection/operator_service.rbi +47 -0
  168. data/rbi/temporalio/client/connection/service.rbi +19 -0
  169. data/rbi/temporalio/client/connection/test_service.rbi +29 -0
  170. data/rbi/temporalio/client/connection/workflow_service.rbi +377 -0
  171. data/rbi/temporalio/client/connection.rbi +284 -0
  172. data/rbi/temporalio/client/interceptor.rbi +1067 -0
  173. data/rbi/temporalio/client/pending_activity_state.rbi +9 -0
  174. data/rbi/temporalio/client/plugin.rbi +17 -0
  175. data/rbi/temporalio/client/schedule.rbi +677 -0
  176. data/rbi/temporalio/client/schedule_handle.rbi +40 -0
  177. data/rbi/temporalio/client/with_start_workflow_operation.rbi +126 -0
  178. data/rbi/temporalio/client/workflow_execution.rbi +62 -0
  179. data/rbi/temporalio/client/workflow_execution_count.rbi +23 -0
  180. data/rbi/temporalio/client/workflow_execution_status.rbi +11 -0
  181. data/rbi/temporalio/client/workflow_handle.rbi +148 -0
  182. data/rbi/temporalio/client/workflow_query_reject_condition.rbi +7 -0
  183. data/rbi/temporalio/client/workflow_update_handle.rbi +38 -0
  184. data/rbi/temporalio/client/workflow_update_wait_stage.rbi +7 -0
  185. data/rbi/temporalio/client.rbi +534 -0
  186. data/rbi/temporalio/common_enums.rbi +45 -0
  187. data/rbi/temporalio/contrib/open_telemetry.rbi +73 -0
  188. data/rbi/temporalio/converters/data_converter.rbi +44 -0
  189. data/rbi/temporalio/converters/failure_converter.rbi +20 -0
  190. data/rbi/temporalio/converters/payload_codec.rbi +11 -0
  191. data/rbi/temporalio/converters/payload_converter/binary_null.rbi +5 -0
  192. data/rbi/temporalio/converters/payload_converter/binary_plain.rbi +5 -0
  193. data/rbi/temporalio/converters/payload_converter/binary_protobuf.rbi +5 -0
  194. data/rbi/temporalio/converters/payload_converter/composite.rbi +20 -0
  195. data/rbi/temporalio/converters/payload_converter/encoding.rbi +14 -0
  196. data/rbi/temporalio/converters/payload_converter/json_plain.rbi +10 -0
  197. data/rbi/temporalio/converters/payload_converter/json_protobuf.rbi +5 -0
  198. data/rbi/temporalio/converters/payload_converter.rbi +28 -0
  199. data/rbi/temporalio/converters/raw_value.rbi +11 -0
  200. data/rbi/temporalio/converters.rbi +3 -0
  201. data/rbi/temporalio/env_config.rbi +156 -0
  202. data/rbi/temporalio/error/failure.rbi +3 -0
  203. data/rbi/temporalio/error.rbi +313 -0
  204. data/rbi/temporalio/internal/bridge/api/activity_result/activity_result.rbi +547 -0
  205. data/rbi/temporalio/internal/bridge/api/activity_task/activity_task.rbi +705 -0
  206. data/rbi/temporalio/internal/bridge/api/child_workflow/child_workflow.rbi +332 -0
  207. data/rbi/temporalio/internal/bridge/api/common/common.rbi +191 -0
  208. data/rbi/temporalio/internal/bridge/api/core_interface.rbi +567 -0
  209. data/rbi/temporalio/internal/bridge/api/external_data/external_data.rbi +255 -0
  210. data/rbi/temporalio/internal/bridge/api/nexus/nexus.rbi +527 -0
  211. data/rbi/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbi +2808 -0
  212. data/rbi/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rbi +3309 -0
  213. data/rbi/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rbi +272 -0
  214. data/rbi/temporalio/internal/bridge/api.rbi +3 -0
  215. data/rbi/temporalio/internal/bridge/client.rbi +346 -0
  216. data/rbi/temporalio/internal/bridge/runtime.rbi +231 -0
  217. data/rbi/temporalio/internal/bridge/testing.rbi +109 -0
  218. data/rbi/temporalio/internal/bridge/worker.rbi +250 -0
  219. data/rbi/temporalio/internal/bridge.rbi +47 -0
  220. data/rbi/temporalio/internal/client/implementation.rbi +53 -0
  221. data/rbi/temporalio/internal/google_protobuf.rbi +8 -0
  222. data/rbi/temporalio/internal/metric.rbi +55 -0
  223. data/rbi/temporalio/internal/proto_utils.rbi +148 -0
  224. data/rbi/temporalio/internal/worker/activity_worker.rbi +108 -0
  225. data/rbi/temporalio/internal/worker/multi_runner.rbi +175 -0
  226. data/rbi/temporalio/internal/worker/workflow_instance/child_workflow_handle.rbi +20 -0
  227. data/rbi/temporalio/internal/worker/workflow_instance/context.rbi +290 -0
  228. data/rbi/temporalio/internal/worker/workflow_instance/details.rbi +87 -0
  229. data/rbi/temporalio/internal/worker/workflow_instance/external_workflow_handle.rbi +14 -0
  230. data/rbi/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rbi +17 -0
  231. data/rbi/temporalio/internal/worker/workflow_instance/handler_execution.rbi +17 -0
  232. data/rbi/temporalio/internal/worker/workflow_instance/handler_hash.rbi +24 -0
  233. data/rbi/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rbi +17 -0
  234. data/rbi/temporalio/internal/worker/workflow_instance/inbound_implementation.rbi +21 -0
  235. data/rbi/temporalio/internal/worker/workflow_instance/nexus_client.rbi +47 -0
  236. data/rbi/temporalio/internal/worker/workflow_instance/nexus_operation_handle.rbi +19 -0
  237. data/rbi/temporalio/internal/worker/workflow_instance/outbound_implementation.rbi +43 -0
  238. data/rbi/temporalio/internal/worker/workflow_instance/replay_safe_logger.rbi +11 -0
  239. data/rbi/temporalio/internal/worker/workflow_instance/replay_safe_metric.rbi +15 -0
  240. data/rbi/temporalio/internal/worker/workflow_instance/scheduler.rbi +36 -0
  241. data/rbi/temporalio/internal/worker/workflow_instance.rbi +231 -0
  242. data/rbi/temporalio/internal/worker/workflow_worker.rbi +199 -0
  243. data/rbi/temporalio/internal/workflow_task_failure_error.rbi +3 -0
  244. data/rbi/temporalio/internal.rbi +3 -0
  245. data/rbi/temporalio/metric.rbi +56 -0
  246. data/rbi/temporalio/priority.rbi +38 -0
  247. data/rbi/temporalio/retry_policy.rbi +40 -0
  248. data/rbi/temporalio/runtime/metric_buffer.rbi +45 -0
  249. data/rbi/temporalio/runtime.rbi +185 -0
  250. data/rbi/temporalio/scoped_logger.rbi +50 -0
  251. data/rbi/temporalio/search_attributes.rbi +94 -0
  252. data/rbi/temporalio/simple_plugin.rbi +41 -0
  253. data/rbi/temporalio/testing/activity_environment.rbi +43 -0
  254. data/rbi/temporalio/testing/workflow_environment.rbi +116 -0
  255. data/rbi/temporalio/testing.rbi +3 -0
  256. data/rbi/temporalio/version.rbi +5 -0
  257. data/rbi/temporalio/versioning_override.rbi +13 -0
  258. data/rbi/temporalio/worker/activity_executor/fiber.rbi +20 -0
  259. data/rbi/temporalio/worker/activity_executor/thread_pool.rbi +20 -0
  260. data/rbi/temporalio/worker/activity_executor.rbi +20 -0
  261. data/rbi/temporalio/worker/deployment_options.rbi +23 -0
  262. data/rbi/temporalio/worker/illegal_workflow_call_validator.rbi +33 -0
  263. data/rbi/temporalio/worker/interceptor.rbi +489 -0
  264. data/rbi/temporalio/worker/plugin.rbi +49 -0
  265. data/rbi/temporalio/worker/poller_behavior.rbi +29 -0
  266. data/rbi/temporalio/worker/thread_pool.rbi +38 -0
  267. data/rbi/temporalio/worker/tuner.rbi +221 -0
  268. data/rbi/temporalio/worker/workflow_executor/thread_pool.rbi +15 -0
  269. data/rbi/temporalio/worker/workflow_executor.rbi +8 -0
  270. data/rbi/temporalio/worker/workflow_replayer.rbi +152 -0
  271. data/rbi/temporalio/worker.rbi +258 -0
  272. data/rbi/temporalio/worker_deployment_version.rbi +29 -0
  273. data/rbi/temporalio/workflow/activity_cancellation_type.rbi +7 -0
  274. data/rbi/temporalio/workflow/child_workflow_cancellation_type.rbi +8 -0
  275. data/rbi/temporalio/workflow/child_workflow_handle.rbi +27 -0
  276. data/rbi/temporalio/workflow/definition.rbi +305 -0
  277. data/rbi/temporalio/workflow/external_workflow_handle.rbi +24 -0
  278. data/rbi/temporalio/workflow/future.rbi +62 -0
  279. data/rbi/temporalio/workflow/handler_unfinished_policy.rbi +6 -0
  280. data/rbi/temporalio/workflow/info.rbi +100 -0
  281. data/rbi/temporalio/workflow/nexus_client.rbi +65 -0
  282. data/rbi/temporalio/workflow/nexus_operation_cancellation_type.rbi +8 -0
  283. data/rbi/temporalio/workflow/nexus_operation_handle.rbi +14 -0
  284. data/rbi/temporalio/workflow/parent_close_policy.rbi +8 -0
  285. data/rbi/temporalio/workflow/update_info.rbi +14 -0
  286. data/rbi/temporalio/workflow.rbi +393 -0
  287. data/rbi/temporalio/workflow_history.rbi +21 -0
  288. data/rbi/temporalio.rbi +5 -0
  289. data/sig/common.rbs +1 -0
  290. data/sig/google/protobuf_compat.rbs +17 -0
  291. data/sig/open_telemetry.rbs +47 -0
  292. data/sig/temporalio/activity/cancellation_details.rbs +21 -0
  293. data/sig/temporalio/activity/complete_async_error.rbs +6 -0
  294. data/sig/temporalio/activity/context.rbs +26 -0
  295. data/sig/temporalio/activity/definition.rbs +60 -0
  296. data/sig/temporalio/activity/info.rbs +57 -0
  297. data/sig/temporalio/activity.rbs +4 -0
  298. data/sig/temporalio/api/activity/v1/message.rbs +708 -0
  299. data/sig/temporalio/api/batch/v1/message.rbs +594 -0
  300. data/sig/temporalio/api/callback/v1/message.rbs +112 -0
  301. data/sig/temporalio/api/cloud/account/v1/message.rbs +314 -0
  302. data/sig/temporalio/api/cloud/auditlog/v1/message.rbs +168 -0
  303. data/sig/temporalio/api/cloud/billing/v1/message.rbs +279 -0
  304. data/sig/temporalio/api/cloud/cloudservice/v1/request_response.rbs +4726 -0
  305. data/sig/temporalio/api/cloud/cloudservice/v1/service.rbs +25 -0
  306. data/sig/temporalio/api/cloud/cloudservice.rbs +8 -0
  307. data/sig/temporalio/api/cloud/connectivityrule/v1/message.rbs +191 -0
  308. data/sig/temporalio/api/cloud/identity/v1/message.rbs +1372 -0
  309. data/sig/temporalio/api/cloud/namespace/v1/message.rbs +1571 -0
  310. data/sig/temporalio/api/cloud/nexus/v1/message.rbs +269 -0
  311. data/sig/temporalio/api/cloud/operation/v1/message.rbs +156 -0
  312. data/sig/temporalio/api/cloud/region/v1/message.rbs +109 -0
  313. data/sig/temporalio/api/cloud/resource/v1/message.rbs +61 -0
  314. data/sig/temporalio/api/cloud/sink/v1/message.rbs +207 -0
  315. data/sig/temporalio/api/cloud/usage/v1/message.rbs +230 -0
  316. data/sig/temporalio/api/command/v1/message.rbs +1211 -0
  317. data/sig/temporalio/api/common/v1/grpc_status.rbs +59 -0
  318. data/sig/temporalio/api/common/v1/message.rbs +1238 -0
  319. data/sig/temporalio/api/compute/v1/config.rbs +176 -0
  320. data/sig/temporalio/api/compute/v1/provider.rbs +73 -0
  321. data/sig/temporalio/api/compute/v1/scaler.rbs +60 -0
  322. data/sig/temporalio/api/deployment/v1/message.rbs +1063 -0
  323. data/sig/temporalio/api/enums/v1/activity.rbs +134 -0
  324. data/sig/temporalio/api/enums/v1/batch_operation.rbs +80 -0
  325. data/sig/temporalio/api/enums/v1/command_type.rbs +74 -0
  326. data/sig/temporalio/api/enums/v1/common.rbs +271 -0
  327. data/sig/temporalio/api/enums/v1/deployment.rbs +177 -0
  328. data/sig/temporalio/api/enums/v1/event_type.rbs +263 -0
  329. data/sig/temporalio/api/enums/v1/failed_cause.rbs +281 -0
  330. data/sig/temporalio/api/enums/v1/namespace.rbs +87 -0
  331. data/sig/temporalio/api/enums/v1/nexus.rbs +172 -0
  332. data/sig/temporalio/api/enums/v1/query.rbs +69 -0
  333. data/sig/temporalio/api/enums/v1/reset.rbs +106 -0
  334. data/sig/temporalio/api/enums/v1/schedule.rbs +68 -0
  335. data/sig/temporalio/api/enums/v1/task_queue.rbs +238 -0
  336. data/sig/temporalio/api/enums/v1/update.rbs +87 -0
  337. data/sig/temporalio/api/enums/v1/workflow.rbs +435 -0
  338. data/sig/temporalio/api/errordetails/v1/message.rbs +532 -0
  339. data/sig/temporalio/api/export/v1/message.rbs +63 -0
  340. data/sig/temporalio/api/failure/v1/message.rbs +579 -0
  341. data/sig/temporalio/api/filter/v1/message.rbs +121 -0
  342. data/sig/temporalio/api/history/v1/message.rbs +4928 -0
  343. data/sig/temporalio/api/namespace/v1/message.rbs +465 -0
  344. data/sig/temporalio/api/nexus/v1/message.rbs +1268 -0
  345. data/sig/temporalio/api/nexusannotations/v1/options.rbs +76 -0
  346. data/sig/temporalio/api/nexusservices/workerservice/v1/request_response.rbs +65 -0
  347. data/sig/temporalio/api/operatorservice/v1/request_response.rbs +679 -0
  348. data/sig/temporalio/api/operatorservice/v1/service.rbs +23 -0
  349. data/sig/temporalio/api/operatorservice.rbs +6 -0
  350. data/sig/temporalio/api/payload_visitor.rbs +298 -0
  351. data/sig/temporalio/api/protoc_gen_openapiv2/options/annotations.rbs +23 -0
  352. data/sig/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rbs +1691 -0
  353. data/sig/temporalio/api/protocol/v1/message.rbs +90 -0
  354. data/sig/temporalio/api/protometa/v1/annotations.rbs +62 -0
  355. data/sig/temporalio/api/query/v1/message.rbs +138 -0
  356. data/sig/temporalio/api/replication/v1/message.rbs +109 -0
  357. data/sig/temporalio/api/rules/v1/message.rbs +213 -0
  358. data/sig/temporalio/api/schedule/v1/message.rbs +1066 -0
  359. data/sig/temporalio/api/sdk/v1/enhanced_stack_trace.rbs +210 -0
  360. data/sig/temporalio/api/sdk/v1/event_group_marker.rbs +154 -0
  361. data/sig/temporalio/api/sdk/v1/external_storage.rbs +54 -0
  362. data/sig/temporalio/api/sdk/v1/task_complete_metadata.rbs +92 -0
  363. data/sig/temporalio/api/sdk/v1/user_metadata.rbs +58 -0
  364. data/sig/temporalio/api/sdk/v1/worker_config.rbs +122 -0
  365. data/sig/temporalio/api/sdk/v1/workflow_metadata.rbs +138 -0
  366. data/sig/temporalio/api/taskqueue/v1/message.rbs +1013 -0
  367. data/sig/temporalio/api/testservice/v1/request_response.rbs +125 -0
  368. data/sig/temporalio/api/testservice/v1/service.rbs +23 -0
  369. data/sig/temporalio/api/update/v1/message.rbs +349 -0
  370. data/sig/temporalio/api/version/v1/message.rbs +143 -0
  371. data/sig/temporalio/api/worker/v1/message.rbs +716 -0
  372. data/sig/temporalio/api/workflow/v1/message.rbs +2322 -0
  373. data/sig/temporalio/api/workflowservice/v1/request_response.rbs +12735 -0
  374. data/sig/temporalio/api/workflowservice/v1/service.rbs +23 -0
  375. data/sig/temporalio/api/workflowservice.rbs +6 -0
  376. data/sig/temporalio/api.rbs +4 -0
  377. data/sig/temporalio/cancellation.rbs +20 -0
  378. data/sig/temporalio/client/activity_execution.rbs +50 -0
  379. data/sig/temporalio/client/activity_execution_count.rbs +17 -0
  380. data/sig/temporalio/client/activity_execution_status.rbs +15 -0
  381. data/sig/temporalio/client/activity_handle.rbs +26 -0
  382. data/sig/temporalio/client/activity_id_reference.rbs +16 -0
  383. data/sig/temporalio/client/async_activity_handle.rbs +41 -0
  384. data/sig/temporalio/client/connection/cloud_service.rbs +315 -0
  385. data/sig/temporalio/client/connection/operator_service.rbs +59 -0
  386. data/sig/temporalio/client/connection/service.rbs +17 -0
  387. data/sig/temporalio/client/connection/test_service.rbs +35 -0
  388. data/sig/temporalio/client/connection/workflow_service.rbs +499 -0
  389. data/sig/temporalio/client/connection.rbs +143 -0
  390. data/sig/temporalio/client/interceptor.rbs +622 -0
  391. data/sig/temporalio/client/pending_activity_state.rbs +14 -0
  392. data/sig/temporalio/client/plugin.rbs +14 -0
  393. data/sig/temporalio/client/schedule.rbs +337 -0
  394. data/sig/temporalio/client/schedule_handle.rbs +44 -0
  395. data/sig/temporalio/client/with_start_workflow_operation.rbs +82 -0
  396. data/sig/temporalio/client/workflow_execution.rbs +37 -0
  397. data/sig/temporalio/client/workflow_execution_count.rbs +17 -0
  398. data/sig/temporalio/client/workflow_execution_status.rbs +16 -0
  399. data/sig/temporalio/client/workflow_handle.rbs +95 -0
  400. data/sig/temporalio/client/workflow_query_reject_condition.rbs +12 -0
  401. data/sig/temporalio/client/workflow_update_handle.rbs +26 -0
  402. data/sig/temporalio/client/workflow_update_wait_stage.rbs +12 -0
  403. data/sig/temporalio/client.rbs +271 -0
  404. data/sig/temporalio/common_enums.rbs +60 -0
  405. data/sig/temporalio/contrib/open_telemetry.rbs +74 -0
  406. data/sig/temporalio/converters/data_converter.rbs +32 -0
  407. data/sig/temporalio/converters/failure_converter.rbs +12 -0
  408. data/sig/temporalio/converters/payload_codec.rbs +8 -0
  409. data/sig/temporalio/converters/payload_converter/binary_null.rbs +9 -0
  410. data/sig/temporalio/converters/payload_converter/binary_plain.rbs +9 -0
  411. data/sig/temporalio/converters/payload_converter/binary_protobuf.rbs +9 -0
  412. data/sig/temporalio/converters/payload_converter/composite.rbs +16 -0
  413. data/sig/temporalio/converters/payload_converter/encoding.rbs +13 -0
  414. data/sig/temporalio/converters/payload_converter/json_plain.rbs +14 -0
  415. data/sig/temporalio/converters/payload_converter/json_protobuf.rbs +9 -0
  416. data/sig/temporalio/converters/payload_converter.rbs +24 -0
  417. data/sig/temporalio/converters/raw_value.rbs +9 -0
  418. data/sig/temporalio/converters.rbs +4 -0
  419. data/sig/temporalio/env_config.rbs +86 -0
  420. data/sig/temporalio/error/failure.rbs +170 -0
  421. data/sig/temporalio/error.rbs +88 -0
  422. data/sig/temporalio/internal/bridge/api/activity_result/activity_result.rbs +247 -0
  423. data/sig/temporalio/internal/bridge/api/activity_task/activity_task.rbs +372 -0
  424. data/sig/temporalio/internal/bridge/api/child_workflow/child_workflow.rbs +207 -0
  425. data/sig/temporalio/internal/bridge/api/common/common.rbs +123 -0
  426. data/sig/temporalio/internal/bridge/api/core_interface.rbs +231 -0
  427. data/sig/temporalio/internal/bridge/api/external_data/external_data.rbs +134 -0
  428. data/sig/temporalio/internal/bridge/api/nexus/nexus.rbs +285 -0
  429. data/sig/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbs +1304 -0
  430. data/sig/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rbs +1526 -0
  431. data/sig/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rbs +136 -0
  432. data/sig/temporalio/internal/bridge/api.rbs +8 -0
  433. data/sig/temporalio/internal/bridge/client.rbs +144 -0
  434. data/sig/temporalio/internal/bridge/metric.rbs +28 -0
  435. data/sig/temporalio/internal/bridge/runtime.rbs +97 -0
  436. data/sig/temporalio/internal/bridge/testing.rbs +91 -0
  437. data/sig/temporalio/internal/bridge/worker.rbs +199 -0
  438. data/sig/temporalio/internal/bridge.rbs +36 -0
  439. data/sig/temporalio/internal/client/implementation.rbs +33 -0
  440. data/sig/temporalio/internal/google_protobuf.rbs +7 -0
  441. data/sig/temporalio/internal/metric.rbs +35 -0
  442. data/sig/temporalio/internal/proto_utils.rbs +94 -0
  443. data/sig/temporalio/internal/worker/activity_worker.rbs +64 -0
  444. data/sig/temporalio/internal/worker/multi_runner.rbs +132 -0
  445. data/sig/temporalio/internal/worker/workflow_instance/child_workflow_handle.rbs +22 -0
  446. data/sig/temporalio/internal/worker/workflow_instance/context.rbs +172 -0
  447. data/sig/temporalio/internal/worker/workflow_instance/details.rbs +43 -0
  448. data/sig/temporalio/internal/worker/workflow_instance/external_workflow_handle.rbs +15 -0
  449. data/sig/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rbs +16 -0
  450. data/sig/temporalio/internal/worker/workflow_instance/handler_execution.rbs +19 -0
  451. data/sig/temporalio/internal/worker/workflow_instance/handler_hash.rbs +14 -0
  452. data/sig/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rbs +20 -0
  453. data/sig/temporalio/internal/worker/workflow_instance/inbound_implementation.rbs +19 -0
  454. data/sig/temporalio/internal/worker/workflow_instance/nexus_client.rbs +25 -0
  455. data/sig/temporalio/internal/worker/workflow_instance/nexus_operation_handle.rbs +19 -0
  456. data/sig/temporalio/internal/worker/workflow_instance/outbound_implementation.rbs +35 -0
  457. data/sig/temporalio/internal/worker/workflow_instance/replay_safe_logger.rbs +16 -0
  458. data/sig/temporalio/internal/worker/workflow_instance/replay_safe_metric.rbs +15 -0
  459. data/sig/temporalio/internal/worker/workflow_instance/scheduler.rbs +52 -0
  460. data/sig/temporalio/internal/worker/workflow_instance.rbs +111 -0
  461. data/sig/temporalio/internal/worker/workflow_worker.rbs +99 -0
  462. data/sig/temporalio/internal/workflow_task_failure_error.rbs +6 -0
  463. data/sig/temporalio/internal.rbs +4 -0
  464. data/sig/temporalio/metric.rbs +55 -0
  465. data/sig/temporalio/priority.rbs +17 -0
  466. data/sig/temporalio/retry_policy.rbs +21 -0
  467. data/sig/temporalio/runtime/metric_buffer.rbs +49 -0
  468. data/sig/temporalio/runtime.rbs +118 -0
  469. data/sig/temporalio/scoped_logger.rbs +15 -0
  470. data/sig/temporalio/search_attributes.rbs +82 -0
  471. data/sig/temporalio/simple_plugin.rbs +65 -0
  472. data/sig/temporalio/testing/activity_environment.rbs +52 -0
  473. data/sig/temporalio/testing/workflow_environment.rbs +141 -0
  474. data/sig/temporalio/testing.rbs +4 -0
  475. data/sig/temporalio/version.rbs +3 -0
  476. data/sig/temporalio/versioning_override.rbs +17 -0
  477. data/sig/temporalio/worker/activity_executor/fiber.rbs +9 -0
  478. data/sig/temporalio/worker/activity_executor/thread_pool.rbs +11 -0
  479. data/sig/temporalio/worker/activity_executor.rbs +12 -0
  480. data/sig/temporalio/worker/deployment_options.rbs +17 -0
  481. data/sig/temporalio/worker/illegal_workflow_call_validator.rbs +25 -0
  482. data/sig/temporalio/worker/interceptor.rbs +373 -0
  483. data/sig/temporalio/worker/plugin.rbs +47 -0
  484. data/sig/temporalio/worker/poller_behavior.rbs +23 -0
  485. data/sig/temporalio/worker/thread_pool.rbs +44 -0
  486. data/sig/temporalio/worker/tuner.rbs +121 -0
  487. data/sig/temporalio/worker/workflow_executor/thread_pool.rbs +58 -0
  488. data/sig/temporalio/worker/workflow_executor.rbs +15 -0
  489. data/sig/temporalio/worker/workflow_replayer.rbs +105 -0
  490. data/sig/temporalio/worker.rbs +168 -0
  491. data/sig/temporalio/worker_deployment_version.rbs +17 -0
  492. data/sig/temporalio/workflow/activity_cancellation_type.rbs +11 -0
  493. data/sig/temporalio/workflow/child_workflow_cancellation_type.rbs +12 -0
  494. data/sig/temporalio/workflow/child_workflow_handle.rbs +18 -0
  495. data/sig/temporalio/workflow/definition.rbs +181 -0
  496. data/sig/temporalio/workflow/external_workflow_handle.rbs +17 -0
  497. data/sig/temporalio/workflow/future.rbs +24 -0
  498. data/sig/temporalio/workflow/handler_unfinished_policy.rbs +10 -0
  499. data/sig/temporalio/workflow/info.rbs +79 -0
  500. data/sig/temporalio/workflow/nexus_client.rbs +34 -0
  501. data/sig/temporalio/workflow/nexus_operation_cancellation_type.rbs +12 -0
  502. data/sig/temporalio/workflow/nexus_operation_handle.rbs +10 -0
  503. data/sig/temporalio/workflow/parent_close_policy.rbs +12 -0
  504. data/sig/temporalio/workflow/update_info.rbs +15 -0
  505. data/sig/temporalio/workflow.rbs +215 -0
  506. data/sig/temporalio/workflow_history.rbs +13 -0
  507. data/sig/temporalio.rbs +3 -0
  508. data/temporalio.gemspec +1 -1
  509. metadata +450 -2
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+ require 'temporalio/client/activity_execution'
5
+ require 'temporalio/client/interceptor'
6
+ require 'temporalio/error'
7
+
8
+ module Temporalio
9
+ class Client
10
+ # Handle for interacting with a standalone activity. Usually created via {Client.activity_handle}
11
+ # or {Client#start_activity}.
12
+ #
13
+ # WARNING: Standalone Activities are experimental.
14
+ class ActivityHandle
15
+ # @return [String] ID for the activity.
16
+ attr_reader :id
17
+
18
+ # @return [String, nil] Run ID for this activity execution. When nil, this handle targets the latest run.
19
+ attr_reader :run_id
20
+
21
+ # @return [Object, nil] Result hint used when deserializing the activity's result. May be overridden per
22
+ # {#result} call.
23
+ attr_reader :result_hint
24
+
25
+ # @!visibility private
26
+ def initialize(client:, id:, run_id:, result_hint:)
27
+ @client = client
28
+ @id = id
29
+ @run_id = run_id
30
+ @result_hint = result_hint
31
+ end
32
+
33
+ # Wait for the activity's outcome (result or failure). Internally long-polls
34
+ # PollActivityExecution and reissues until the activity reaches a terminal state, so this can
35
+ # block indefinitely for long-running activities.
36
+ #
37
+ # @param result_hint [Object, nil] Override the result hint. If nil, uses {#result_hint}.
38
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
39
+ #
40
+ # @return [Object, nil] Deserialized activity result.
41
+ #
42
+ # @raise [Error::ActivityFailedError] With `cause` populated from the activity failure.
43
+ # @raise [Error::RPCError] RPC error from call.
44
+ def result(result_hint: nil, rpc_options: nil)
45
+ hint = result_hint || @result_hint
46
+ outcome = @client._impl.fetch_activity_outcome(
47
+ Interceptor::FetchActivityOutcomeInput.new(
48
+ activity_id: id,
49
+ activity_run_id: run_id,
50
+ rpc_options:
51
+ )
52
+ )
53
+ _process_outcome(outcome, hint)
54
+ end
55
+
56
+ # Describe the activity.
57
+ #
58
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
59
+ #
60
+ # @return [ActivityExecution::Description] Activity description.
61
+ # @raise [Error::RPCError] RPC error from call.
62
+ def describe(rpc_options: nil)
63
+ @client._impl.describe_activity(
64
+ Interceptor::DescribeActivityInput.new(
65
+ activity_id: id,
66
+ activity_run_id: run_id,
67
+ rpc_options:
68
+ )
69
+ )
70
+ end
71
+
72
+ # Request cancellation of the activity.
73
+ #
74
+ # @param reason [String, nil] Optional cancellation reason recorded on the server.
75
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
76
+ # @raise [Error::RPCError] RPC error from call.
77
+ def cancel(reason = nil, rpc_options: nil)
78
+ @client._impl.cancel_activity(
79
+ Interceptor::CancelActivityInput.new(
80
+ activity_id: id,
81
+ activity_run_id: run_id,
82
+ reason:,
83
+ rpc_options:
84
+ )
85
+ )
86
+ nil
87
+ end
88
+
89
+ # Terminate the activity (force-close).
90
+ #
91
+ # @param reason [String, nil] Optional termination reason recorded on the activity's failure outcome.
92
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
93
+ # @raise [Error::RPCError] RPC error from call.
94
+ def terminate(reason = nil, rpc_options: nil)
95
+ @client._impl.terminate_activity(
96
+ Interceptor::TerminateActivityInput.new(
97
+ activity_id: id,
98
+ activity_run_id: run_id,
99
+ reason:,
100
+ rpc_options:
101
+ )
102
+ )
103
+ nil
104
+ end
105
+
106
+ private
107
+
108
+ def _process_outcome(outcome, hint)
109
+ raise Error, 'Activity completed but outcome is missing from server response' if outcome.nil?
110
+
111
+ case outcome.value
112
+ when :failure
113
+ cause = @client.data_converter.from_failure(outcome.failure)
114
+ raise Error::ActivityFailedError.new, cause: cause
115
+ when :result
116
+ @client.data_converter.from_payloads(outcome.result, hints: Array(hint)).first
117
+ else
118
+ raise Error, "Unknown activity outcome: #{outcome.value.inspect}"
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
@@ -6,26 +6,61 @@ require 'temporalio/error'
6
6
 
7
7
  module Temporalio
8
8
  class Client
9
- # Reference to an existing activity by its workflow ID, run ID, and activity ID.
9
+ # Reference to an activity for use with {Client#async_activity_handle}. There are two shapes,
10
+ # depending on whether the activity is run in a workflow, or as a standalone activity.
11
+ #
12
+ # 1. Activity run in a workflow -- use {ActivityIDReference#initialize}:
13
+ # `ActivityIDReference.new(workflow_id:, run_id:, activity_id:)`.
14
+ #
15
+ # 2. Standalone Activity (started via {Client#start_activity}): use the class factory
16
+ # {ActivityIDReference.for_standalone}: `ActivityIDReference.for_standalone(activity_id:, activity_run_id:)`.
10
17
  class ActivityIDReference
11
- # @return [String] ID for the workflow.
18
+ # @return [String] ID for the activity.
19
+ attr_reader :activity_id
20
+
21
+ # @return [String, nil] Activity run ID. Set only for standalone activity references.
22
+ attr_reader :activity_run_id
23
+
24
+ # @return [String, nil] ID for the workflow. Set only for workflow-run activity references.
12
25
  attr_reader :workflow_id
13
26
 
14
- # @return [String, nil] Run ID for the workflow.
27
+ # @return [String, nil] Run ID for the workflow. Set only for workflow-run activity references.
15
28
  attr_reader :run_id
16
29
 
17
- # @return [String] ID for the activity.
18
- attr_reader :activity_id
30
+ # Construct a standalone activity reference.
31
+ #
32
+ # WARNING: Standalone Activities are experimental.
33
+ #
34
+ # @param activity_id [String] ID for the activity.
35
+ # @param activity_run_id [String, nil] Run ID for the activity execution. nil targets the latest run.
36
+ # @return [ActivityIDReference] A reference suitable for {Client#async_activity_handle}.
37
+ def self.for_standalone(activity_id:, activity_run_id: nil)
38
+ allocate.tap do |ref|
39
+ ref.instance_variable_set(:@activity_id, activity_id)
40
+ ref.instance_variable_set(:@activity_run_id, activity_run_id)
41
+ ref.instance_variable_set(:@workflow_id, nil)
42
+ ref.instance_variable_set(:@run_id, nil)
43
+ end
44
+ end
19
45
 
20
- # Create an activity ID reference.
46
+ # Construct a workflow-run activity reference.
21
47
  #
22
48
  # @param workflow_id [String] ID for the workflow.
23
49
  # @param run_id [String, nil] Run ID for the workflow.
24
- # @param activity_id [String] ID for the workflow.
50
+ # @param activity_id [String] ID for the activity.
51
+ # @return [ActivityIDReference] A reference suitable for {Client#async_activity_handle}.
25
52
  def initialize(workflow_id:, run_id:, activity_id:)
26
53
  @workflow_id = workflow_id
27
54
  @run_id = run_id
28
55
  @activity_id = activity_id
56
+ @activity_run_id = nil
57
+ end
58
+
59
+ # @return [Boolean] True if this reference is the standalone-form (activity_run_id without workflow_id).
60
+ #
61
+ # WARNING: Standalone Activities are experimental.
62
+ def standalone?
63
+ @workflow_id.nil?
29
64
  end
30
65
  end
31
66
  end
@@ -1035,6 +1035,126 @@ module Temporalio
1035
1035
  rpc_options:
1036
1036
  )
1037
1037
  end
1038
+
1039
+ # Calls CloudService.GetCustomRoles API call.
1040
+ #
1041
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::GetCustomRolesRequest] API request.
1042
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1043
+ # @return [Temporalio::Api::Cloud::CloudService::V1::GetCustomRolesResponse] API response.
1044
+ def get_custom_roles(request, rpc_options: nil)
1045
+ invoke_rpc(
1046
+ rpc: 'get_custom_roles',
1047
+ request_class: Temporalio::Api::Cloud::CloudService::V1::GetCustomRolesRequest,
1048
+ response_class: Temporalio::Api::Cloud::CloudService::V1::GetCustomRolesResponse,
1049
+ request:,
1050
+ rpc_options:
1051
+ )
1052
+ end
1053
+
1054
+ # Calls CloudService.GetCustomRole API call.
1055
+ #
1056
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::GetCustomRoleRequest] API request.
1057
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1058
+ # @return [Temporalio::Api::Cloud::CloudService::V1::GetCustomRoleResponse] API response.
1059
+ def get_custom_role(request, rpc_options: nil)
1060
+ invoke_rpc(
1061
+ rpc: 'get_custom_role',
1062
+ request_class: Temporalio::Api::Cloud::CloudService::V1::GetCustomRoleRequest,
1063
+ response_class: Temporalio::Api::Cloud::CloudService::V1::GetCustomRoleResponse,
1064
+ request:,
1065
+ rpc_options:
1066
+ )
1067
+ end
1068
+
1069
+ # Calls CloudService.CreateCustomRole API call.
1070
+ #
1071
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::CreateCustomRoleRequest] API request.
1072
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1073
+ # @return [Temporalio::Api::Cloud::CloudService::V1::CreateCustomRoleResponse] API response.
1074
+ def create_custom_role(request, rpc_options: nil)
1075
+ invoke_rpc(
1076
+ rpc: 'create_custom_role',
1077
+ request_class: Temporalio::Api::Cloud::CloudService::V1::CreateCustomRoleRequest,
1078
+ response_class: Temporalio::Api::Cloud::CloudService::V1::CreateCustomRoleResponse,
1079
+ request:,
1080
+ rpc_options:
1081
+ )
1082
+ end
1083
+
1084
+ # Calls CloudService.UpdateCustomRole API call.
1085
+ #
1086
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::UpdateCustomRoleRequest] API request.
1087
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1088
+ # @return [Temporalio::Api::Cloud::CloudService::V1::UpdateCustomRoleResponse] API response.
1089
+ def update_custom_role(request, rpc_options: nil)
1090
+ invoke_rpc(
1091
+ rpc: 'update_custom_role',
1092
+ request_class: Temporalio::Api::Cloud::CloudService::V1::UpdateCustomRoleRequest,
1093
+ response_class: Temporalio::Api::Cloud::CloudService::V1::UpdateCustomRoleResponse,
1094
+ request:,
1095
+ rpc_options:
1096
+ )
1097
+ end
1098
+
1099
+ # Calls CloudService.DeleteCustomRole API call.
1100
+ #
1101
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::DeleteCustomRoleRequest] API request.
1102
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1103
+ # @return [Temporalio::Api::Cloud::CloudService::V1::DeleteCustomRoleResponse] API response.
1104
+ def delete_custom_role(request, rpc_options: nil)
1105
+ invoke_rpc(
1106
+ rpc: 'delete_custom_role',
1107
+ request_class: Temporalio::Api::Cloud::CloudService::V1::DeleteCustomRoleRequest,
1108
+ response_class: Temporalio::Api::Cloud::CloudService::V1::DeleteCustomRoleResponse,
1109
+ request:,
1110
+ rpc_options:
1111
+ )
1112
+ end
1113
+
1114
+ # Calls CloudService.GetUserNamespaceAssignments API call.
1115
+ #
1116
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::GetUserNamespaceAssignmentsRequest] API request.
1117
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1118
+ # @return [Temporalio::Api::Cloud::CloudService::V1::GetUserNamespaceAssignmentsResponse] API response.
1119
+ def get_user_namespace_assignments(request, rpc_options: nil)
1120
+ invoke_rpc(
1121
+ rpc: 'get_user_namespace_assignments',
1122
+ request_class: Temporalio::Api::Cloud::CloudService::V1::GetUserNamespaceAssignmentsRequest,
1123
+ response_class: Temporalio::Api::Cloud::CloudService::V1::GetUserNamespaceAssignmentsResponse,
1124
+ request:,
1125
+ rpc_options:
1126
+ )
1127
+ end
1128
+
1129
+ # Calls CloudService.GetServiceAccountNamespaceAssignments API call.
1130
+ #
1131
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::GetServiceAccountNamespaceAssignmentsRequest] API request.
1132
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1133
+ # @return [Temporalio::Api::Cloud::CloudService::V1::GetServiceAccountNamespaceAssignmentsResponse] API response.
1134
+ def get_service_account_namespace_assignments(request, rpc_options: nil)
1135
+ invoke_rpc(
1136
+ rpc: 'get_service_account_namespace_assignments',
1137
+ request_class: Temporalio::Api::Cloud::CloudService::V1::GetServiceAccountNamespaceAssignmentsRequest,
1138
+ response_class: Temporalio::Api::Cloud::CloudService::V1::GetServiceAccountNamespaceAssignmentsResponse,
1139
+ request:,
1140
+ rpc_options:
1141
+ )
1142
+ end
1143
+
1144
+ # Calls CloudService.GetUserGroupNamespaceAssignments API call.
1145
+ #
1146
+ # @param request [Temporalio::Api::Cloud::CloudService::V1::GetUserGroupNamespaceAssignmentsRequest] API request.
1147
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1148
+ # @return [Temporalio::Api::Cloud::CloudService::V1::GetUserGroupNamespaceAssignmentsResponse] API response.
1149
+ def get_user_group_namespace_assignments(request, rpc_options: nil)
1150
+ invoke_rpc(
1151
+ rpc: 'get_user_group_namespace_assignments',
1152
+ request_class: Temporalio::Api::Cloud::CloudService::V1::GetUserGroupNamespaceAssignmentsRequest,
1153
+ response_class: Temporalio::Api::Cloud::CloudService::V1::GetUserGroupNamespaceAssignmentsResponse,
1154
+ request:,
1155
+ rpc_options:
1156
+ )
1157
+ end
1038
1158
  end
1039
1159
  end
1040
1160
  end
@@ -1441,6 +1441,21 @@ module Temporalio
1441
1441
  )
1442
1442
  end
1443
1443
 
1444
+ # Calls WorkflowService.CountWorkers API call.
1445
+ #
1446
+ # @param request [Temporalio::Api::WorkflowService::V1::CountWorkersRequest] API request.
1447
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1448
+ # @return [Temporalio::Api::WorkflowService::V1::CountWorkersResponse] API response.
1449
+ def count_workers(request, rpc_options: nil)
1450
+ invoke_rpc(
1451
+ rpc: 'count_workers',
1452
+ request_class: Temporalio::Api::WorkflowService::V1::CountWorkersRequest,
1453
+ response_class: Temporalio::Api::WorkflowService::V1::CountWorkersResponse,
1454
+ request:,
1455
+ rpc_options:
1456
+ )
1457
+ end
1458
+
1444
1459
  # Calls WorkflowService.UpdateTaskQueueConfig API call.
1445
1460
  #
1446
1461
  # @param request [Temporalio::Api::WorkflowService::V1::UpdateTaskQueueConfigRequest] API request.
@@ -1741,6 +1756,66 @@ module Temporalio
1741
1756
  )
1742
1757
  end
1743
1758
 
1759
+ # Calls WorkflowService.PauseActivityExecution API call.
1760
+ #
1761
+ # @param request [Temporalio::Api::WorkflowService::V1::PauseActivityExecutionRequest] API request.
1762
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1763
+ # @return [Temporalio::Api::WorkflowService::V1::PauseActivityExecutionResponse] API response.
1764
+ def pause_activity_execution(request, rpc_options: nil)
1765
+ invoke_rpc(
1766
+ rpc: 'pause_activity_execution',
1767
+ request_class: Temporalio::Api::WorkflowService::V1::PauseActivityExecutionRequest,
1768
+ response_class: Temporalio::Api::WorkflowService::V1::PauseActivityExecutionResponse,
1769
+ request:,
1770
+ rpc_options:
1771
+ )
1772
+ end
1773
+
1774
+ # Calls WorkflowService.ResetActivityExecution API call.
1775
+ #
1776
+ # @param request [Temporalio::Api::WorkflowService::V1::ResetActivityExecutionRequest] API request.
1777
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1778
+ # @return [Temporalio::Api::WorkflowService::V1::ResetActivityExecutionResponse] API response.
1779
+ def reset_activity_execution(request, rpc_options: nil)
1780
+ invoke_rpc(
1781
+ rpc: 'reset_activity_execution',
1782
+ request_class: Temporalio::Api::WorkflowService::V1::ResetActivityExecutionRequest,
1783
+ response_class: Temporalio::Api::WorkflowService::V1::ResetActivityExecutionResponse,
1784
+ request:,
1785
+ rpc_options:
1786
+ )
1787
+ end
1788
+
1789
+ # Calls WorkflowService.UnpauseActivityExecution API call.
1790
+ #
1791
+ # @param request [Temporalio::Api::WorkflowService::V1::UnpauseActivityExecutionRequest] API request.
1792
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1793
+ # @return [Temporalio::Api::WorkflowService::V1::UnpauseActivityExecutionResponse] API response.
1794
+ def unpause_activity_execution(request, rpc_options: nil)
1795
+ invoke_rpc(
1796
+ rpc: 'unpause_activity_execution',
1797
+ request_class: Temporalio::Api::WorkflowService::V1::UnpauseActivityExecutionRequest,
1798
+ response_class: Temporalio::Api::WorkflowService::V1::UnpauseActivityExecutionResponse,
1799
+ request:,
1800
+ rpc_options:
1801
+ )
1802
+ end
1803
+
1804
+ # Calls WorkflowService.UpdateActivityExecutionOptions API call.
1805
+ #
1806
+ # @param request [Temporalio::Api::WorkflowService::V1::UpdateActivityExecutionOptionsRequest] API request.
1807
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
1808
+ # @return [Temporalio::Api::WorkflowService::V1::UpdateActivityExecutionOptionsResponse] API response.
1809
+ def update_activity_execution_options(request, rpc_options: nil)
1810
+ invoke_rpc(
1811
+ rpc: 'update_activity_execution_options',
1812
+ request_class: Temporalio::Api::WorkflowService::V1::UpdateActivityExecutionOptionsRequest,
1813
+ response_class: Temporalio::Api::WorkflowService::V1::UpdateActivityExecutionOptionsResponse,
1814
+ request:,
1815
+ rpc_options:
1816
+ )
1817
+ end
1818
+
1744
1819
  # Calls WorkflowService.TerminateNexusOperationExecution API call.
1745
1820
  #
1746
1821
  # @param request [Temporalio::Api::WorkflowService::V1::TerminateNexusOperationExecutionRequest] API request.
@@ -25,7 +25,8 @@ module Temporalio
25
25
  :http_connect_proxy,
26
26
  :runtime,
27
27
  :lazy_connect,
28
- :dns_load_balancing
28
+ :dns_load_balancing,
29
+ :grpc_compression
29
30
  )
30
31
 
31
32
  # Options as returned from {options} for +**to_h+ splat use in {initialize}. See {initialize} for details.
@@ -149,6 +150,25 @@ module Temporalio
149
150
  end
150
151
  end
151
152
 
153
+ # Transport-level gRPC compression options for client connections.
154
+ module GrpcCompressionOptions
155
+ # Use gzip for transport-level gRPC compression.
156
+ class Gzip
157
+ # @return [Symbol] Compression codec name.
158
+ def codec
159
+ :gzip
160
+ end
161
+ end
162
+
163
+ # Disable transport-level gRPC compression.
164
+ class None
165
+ # @return [Symbol] Compression codec name.
166
+ def codec
167
+ :none
168
+ end
169
+ end
170
+ end
171
+
152
172
  # @return [Options] Frozen options for this client which has the same attributes as {initialize}. Note that if
153
173
  # {api_key=} or {rpc_metadata=} are updated, the options object is replaced with those changes (it is not
154
174
  # mutated in place).
@@ -188,6 +208,8 @@ module Temporalio
188
208
  # connection.
189
209
  # @param dns_load_balancing [DnsLoadBalancingOptions, nil] DNS load balancing options for this connection. Default
190
210
  # is +nil+ (disabled). Silently disabled when +http_connect_proxy+ is set, since the two are mutually exclusive.
211
+ # @param grpc_compression [GrpcCompressionOptions::Gzip, GrpcCompressionOptions::None] Transport-level gRPC
212
+ # compression. Defaults to gzip. Set to {GrpcCompressionOptions::None} to opt out.
191
213
  # @param around_connect [Proc, nil] If present, this proc accepts two values: options and a block. The block must
192
214
  # be yielded to only once with the options. The block does not return a meaningful value, nor should
193
215
  # around_connect.
@@ -205,6 +227,7 @@ module Temporalio
205
227
  runtime: Runtime.default,
206
228
  lazy_connect: false,
207
229
  dns_load_balancing: nil,
230
+ grpc_compression: GrpcCompressionOptions::Gzip.new,
208
231
  around_connect: nil
209
232
  )
210
233
  @options = Options.new(
@@ -218,7 +241,8 @@ module Temporalio
218
241
  http_connect_proxy:,
219
242
  runtime:,
220
243
  lazy_connect:,
221
- dns_load_balancing:
244
+ dns_load_balancing:,
245
+ grpc_compression:
222
246
  ).freeze
223
247
  @core_client_mutex = Mutex.new
224
248
  # Create core client now if not lazy, applying around_connect if present
@@ -304,6 +328,7 @@ module Temporalio
304
328
 
305
329
  def new_core_client
306
330
  Internal::Bridge.assert_fiber_compatibility!
331
+ Internal::Bridge.assert_fips_compatibility!
307
332
 
308
333
  options = Internal::Bridge::Client::Options.new(
309
334
  target_host: @options.target_host,
@@ -321,6 +346,16 @@ module Temporalio
321
346
  ),
322
347
  identity: @options.identity || "#{Process.pid}@#{Socket.gethostname}"
323
348
  )
349
+ grpc_compression_codec = case @options.grpc_compression
350
+ when GrpcCompressionOptions::Gzip
351
+ 'gzip'
352
+ when GrpcCompressionOptions::None
353
+ 'none'
354
+ else
355
+ raise ArgumentError,
356
+ "Invalid gRPC compression options: #{@options.grpc_compression.inspect}"
357
+ end
358
+ options.grpc_compression = Internal::Bridge::Client::GrpcCompressionOptions.new(codec: grpc_compression_codec)
324
359
  # Auto-enable TLS when API key is provided and tls not explicitly set
325
360
  tls = @options.tls
326
361
  tls = true if tls.nil? && @options.api_key
@@ -259,6 +259,87 @@ module Temporalio
259
259
  :rpc_options
260
260
  )
261
261
 
262
+ # Input for {Outbound.start_activity}.
263
+ #
264
+ # WARNING: Standalone Activities are experimental.
265
+ StartActivityInput = Data.define(
266
+ :activity,
267
+ :args,
268
+ :activity_id,
269
+ :task_queue,
270
+ :schedule_to_close_timeout,
271
+ :schedule_to_start_timeout,
272
+ :start_to_close_timeout,
273
+ :heartbeat_timeout,
274
+ :id_reuse_policy,
275
+ :id_conflict_policy,
276
+ :retry_policy,
277
+ :search_attributes,
278
+ :static_summary,
279
+ :static_details,
280
+ :headers,
281
+ :priority,
282
+ :start_delay,
283
+ :arg_hints,
284
+ :result_hint,
285
+ :rpc_options
286
+ )
287
+
288
+ # Input for {Outbound.describe_activity}.
289
+ #
290
+ # WARNING: Standalone Activities are experimental.
291
+ DescribeActivityInput = Data.define(
292
+ :activity_id,
293
+ :activity_run_id,
294
+ :rpc_options
295
+ )
296
+
297
+ # Input for {Outbound.cancel_activity}.
298
+ #
299
+ # WARNING: Standalone Activities are experimental.
300
+ CancelActivityInput = Data.define(
301
+ :activity_id,
302
+ :activity_run_id,
303
+ :reason,
304
+ :rpc_options
305
+ )
306
+
307
+ # Input for {Outbound.terminate_activity}.
308
+ #
309
+ # WARNING: Standalone Activities are experimental.
310
+ TerminateActivityInput = Data.define(
311
+ :activity_id,
312
+ :activity_run_id,
313
+ :reason,
314
+ :rpc_options
315
+ )
316
+
317
+ # Input for {Outbound.list_activities}.
318
+ #
319
+ # WARNING: Standalone Activities are experimental.
320
+ ListActivitiesInput = Data.define(
321
+ :query,
322
+ :rpc_options
323
+ )
324
+
325
+ # Input for {Outbound.count_activities}.
326
+ #
327
+ # WARNING: Standalone Activities are experimental.
328
+ CountActivitiesInput = Data.define(
329
+ :query,
330
+ :rpc_options
331
+ )
332
+
333
+ # Input for {Outbound.fetch_activity_outcome}. Used by `ActivityHandle#result` for long-polling
334
+ # the activity outcome via `PollActivityExecution`.
335
+ #
336
+ # WARNING: Standalone Activities are experimental.
337
+ FetchActivityOutcomeInput = Data.define(
338
+ :activity_id,
339
+ :activity_run_id,
340
+ :rpc_options
341
+ )
342
+
262
343
  # Outbound interceptor for intercepting client calls. This should be extended by users needing to intercept client
263
344
  # actions.
264
345
  class Outbound
@@ -467,6 +548,74 @@ module Temporalio
467
548
  def report_cancellation_async_activity(input)
468
549
  next_interceptor.report_cancellation_async_activity(input)
469
550
  end
551
+
552
+ # Called for every {Client.start_activity} and {Client.execute_activity} call.
553
+ #
554
+ # WARNING: Standalone Activities are experimental.
555
+ #
556
+ # @param input [StartActivityInput] Input.
557
+ # @return [ActivityHandle] Activity handle.
558
+ def start_activity(input)
559
+ next_interceptor.start_activity(input)
560
+ end
561
+
562
+ # Called for every {ActivityHandle.describe} call.
563
+ #
564
+ # WARNING: Standalone Activities are experimental.
565
+ #
566
+ # @param input [DescribeActivityInput] Input.
567
+ # @return [ActivityExecution::Description] Activity description.
568
+ def describe_activity(input)
569
+ next_interceptor.describe_activity(input)
570
+ end
571
+
572
+ # Called for every {ActivityHandle.cancel} call.
573
+ #
574
+ # WARNING: Standalone Activities are experimental.
575
+ #
576
+ # @param input [CancelActivityInput] Input.
577
+ def cancel_activity(input)
578
+ next_interceptor.cancel_activity(input)
579
+ end
580
+
581
+ # Called for every {ActivityHandle.terminate} call.
582
+ #
583
+ # WARNING: Standalone Activities are experimental.
584
+ #
585
+ # @param input [TerminateActivityInput] Input.
586
+ def terminate_activity(input)
587
+ next_interceptor.terminate_activity(input)
588
+ end
589
+
590
+ # Called for every {Client.list_activities} call.
591
+ #
592
+ # WARNING: Standalone Activities are experimental.
593
+ #
594
+ # @param input [ListActivitiesInput] Input.
595
+ # @return [Enumerator<ActivityExecution>] Activity executions.
596
+ def list_activities(input)
597
+ next_interceptor.list_activities(input)
598
+ end
599
+
600
+ # Called for every {Client.count_activities} call.
601
+ #
602
+ # WARNING: Standalone Activities are experimental.
603
+ #
604
+ # @param input [CountActivitiesInput] Input.
605
+ # @return [ActivityExecutionCount] Activity count.
606
+ def count_activities(input)
607
+ next_interceptor.count_activities(input)
608
+ end
609
+
610
+ # Called by {ActivityHandle.result} to long-poll the activity outcome.
611
+ #
612
+ # WARNING: Standalone Activities are experimental.
613
+ #
614
+ # @param input [FetchActivityOutcomeInput] Input.
615
+ # @return [Api::Activity::V1::ActivityExecutionOutcome] Activity outcome.
616
+ def fetch_activity_outcome(input)
617
+ next_interceptor.fetch_activity_outcome(input)
618
+ end
470
619
  end
471
620
  end
472
621
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+
5
+ module Temporalio
6
+ class Client
7
+ # More detailed breakdown of a running activity's state.
8
+ #
9
+ # WARNING: Standalone Activities are experimental.
10
+ module PendingActivityState
11
+ SCHEDULED = Api::Enums::V1::PendingActivityState::PENDING_ACTIVITY_STATE_SCHEDULED
12
+ STARTED = Api::Enums::V1::PendingActivityState::PENDING_ACTIVITY_STATE_STARTED
13
+ CANCEL_REQUESTED = Api::Enums::V1::PendingActivityState::PENDING_ACTIVITY_STATE_CANCEL_REQUESTED
14
+ PAUSED = Api::Enums::V1::PendingActivityState::PENDING_ACTIVITY_STATE_PAUSED
15
+ PAUSE_REQUESTED = Api::Enums::V1::PendingActivityState::PENDING_ACTIVITY_STATE_PAUSE_REQUESTED
16
+ end
17
+ end
18
+ end