temporalio 0.0.1

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 (317) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/LICENSE +20 -0
  4. data/README.md +130 -0
  5. data/bridge/Cargo.lock +2865 -0
  6. data/bridge/Cargo.toml +26 -0
  7. data/bridge/sdk-core/ARCHITECTURE.md +76 -0
  8. data/bridge/sdk-core/Cargo.lock +2606 -0
  9. data/bridge/sdk-core/Cargo.toml +2 -0
  10. data/bridge/sdk-core/LICENSE.txt +23 -0
  11. data/bridge/sdk-core/README.md +107 -0
  12. data/bridge/sdk-core/arch_docs/diagrams/README.md +10 -0
  13. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +40 -0
  14. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +1 -0
  15. data/bridge/sdk-core/arch_docs/sticky_queues.md +51 -0
  16. data/bridge/sdk-core/bridge-ffi/Cargo.toml +24 -0
  17. data/bridge/sdk-core/bridge-ffi/LICENSE.txt +23 -0
  18. data/bridge/sdk-core/bridge-ffi/build.rs +25 -0
  19. data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +249 -0
  20. data/bridge/sdk-core/bridge-ffi/src/lib.rs +825 -0
  21. data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +211 -0
  22. data/bridge/sdk-core/client/Cargo.toml +40 -0
  23. data/bridge/sdk-core/client/LICENSE.txt +23 -0
  24. data/bridge/sdk-core/client/src/lib.rs +1294 -0
  25. data/bridge/sdk-core/client/src/metrics.rs +165 -0
  26. data/bridge/sdk-core/client/src/raw.rs +931 -0
  27. data/bridge/sdk-core/client/src/retry.rs +674 -0
  28. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +185 -0
  29. data/bridge/sdk-core/core/Cargo.toml +116 -0
  30. data/bridge/sdk-core/core/LICENSE.txt +23 -0
  31. data/bridge/sdk-core/core/benches/workflow_replay.rs +73 -0
  32. data/bridge/sdk-core/core/src/abstractions.rs +166 -0
  33. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +911 -0
  34. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +221 -0
  35. data/bridge/sdk-core/core/src/core_tests/determinism.rs +107 -0
  36. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +515 -0
  37. data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
  38. data/bridge/sdk-core/core/src/core_tests/queries.rs +736 -0
  39. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +65 -0
  40. data/bridge/sdk-core/core/src/core_tests/workers.rs +259 -0
  41. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +124 -0
  42. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +2070 -0
  43. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
  44. data/bridge/sdk-core/core/src/lib.rs +175 -0
  45. data/bridge/sdk-core/core/src/log_export.rs +62 -0
  46. data/bridge/sdk-core/core/src/pollers/mod.rs +54 -0
  47. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +297 -0
  48. data/bridge/sdk-core/core/src/protosext/mod.rs +428 -0
  49. data/bridge/sdk-core/core/src/replay/mod.rs +71 -0
  50. data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
  51. data/bridge/sdk-core/core/src/telemetry/metrics.rs +383 -0
  52. data/bridge/sdk-core/core/src/telemetry/mod.rs +412 -0
  53. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +77 -0
  54. data/bridge/sdk-core/core/src/test_help/mod.rs +875 -0
  55. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +580 -0
  56. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +1042 -0
  57. data/bridge/sdk-core/core/src/worker/activities.rs +464 -0
  58. data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
  59. data/bridge/sdk-core/core/src/worker/client.rs +347 -0
  60. data/bridge/sdk-core/core/src/worker/mod.rs +566 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +110 -0
  63. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +458 -0
  64. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +911 -0
  65. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +298 -0
  66. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +171 -0
  67. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +860 -0
  68. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +140 -0
  69. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +161 -0
  70. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +133 -0
  71. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1448 -0
  72. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +342 -0
  73. data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +127 -0
  74. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +712 -0
  75. data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +71 -0
  76. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +443 -0
  77. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +439 -0
  78. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +169 -0
  79. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +246 -0
  80. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +96 -0
  81. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +1184 -0
  82. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +277 -0
  83. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +198 -0
  84. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +647 -0
  85. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1143 -0
  86. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +145 -0
  87. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +88 -0
  88. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +940 -0
  89. data/bridge/sdk-core/core-api/Cargo.toml +31 -0
  90. data/bridge/sdk-core/core-api/LICENSE.txt +23 -0
  91. data/bridge/sdk-core/core-api/src/errors.rs +95 -0
  92. data/bridge/sdk-core/core-api/src/lib.rs +151 -0
  93. data/bridge/sdk-core/core-api/src/worker.rs +135 -0
  94. data/bridge/sdk-core/etc/deps.svg +187 -0
  95. data/bridge/sdk-core/etc/dynamic-config.yaml +2 -0
  96. data/bridge/sdk-core/etc/otel-collector-config.yaml +36 -0
  97. data/bridge/sdk-core/etc/prometheus.yaml +6 -0
  98. data/bridge/sdk-core/fsm/Cargo.toml +18 -0
  99. data/bridge/sdk-core/fsm/LICENSE.txt +23 -0
  100. data/bridge/sdk-core/fsm/README.md +3 -0
  101. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +27 -0
  102. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +23 -0
  103. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +647 -0
  104. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +8 -0
  105. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +18 -0
  106. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +12 -0
  107. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +41 -0
  108. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +14 -0
  109. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +11 -0
  110. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +32 -0
  111. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +31 -0
  112. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +46 -0
  113. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +29 -0
  114. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +12 -0
  115. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +32 -0
  116. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +18 -0
  117. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +5 -0
  118. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +11 -0
  119. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
  120. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +11 -0
  121. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
  122. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +14 -0
  123. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +23 -0
  124. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +249 -0
  125. data/bridge/sdk-core/fsm/src/lib.rs +2 -0
  126. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  127. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  128. data/bridge/sdk-core/integ-with-otel.sh +7 -0
  129. data/bridge/sdk-core/protos/api_upstream/README.md +9 -0
  130. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +40 -0
  131. data/bridge/sdk-core/protos/api_upstream/buf.yaml +12 -0
  132. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
  133. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +86 -0
  134. data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +83 -0
  135. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +259 -0
  136. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +112 -0
  137. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +46 -0
  138. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/cluster.proto +40 -0
  139. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +57 -0
  140. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +55 -0
  141. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +168 -0
  142. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +97 -0
  143. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +51 -0
  144. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +50 -0
  145. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +41 -0
  146. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +60 -0
  147. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +59 -0
  148. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +51 -0
  149. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +122 -0
  150. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +108 -0
  151. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +114 -0
  152. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +56 -0
  153. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +751 -0
  154. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +97 -0
  155. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +161 -0
  156. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +99 -0
  157. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +61 -0
  158. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +55 -0
  159. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +300 -0
  160. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +108 -0
  161. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +46 -0
  162. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +59 -0
  163. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +145 -0
  164. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1124 -0
  165. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +401 -0
  166. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +63 -0
  167. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +78 -0
  168. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +79 -0
  169. data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +210 -0
  170. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +77 -0
  171. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +15 -0
  172. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +30 -0
  173. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +30 -0
  174. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +261 -0
  175. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +297 -0
  176. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +29 -0
  177. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +38 -0
  178. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +13 -0
  179. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +141 -0
  180. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +63 -0
  181. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +90 -0
  182. data/bridge/sdk-core/rustfmt.toml +1 -0
  183. data/bridge/sdk-core/sdk/Cargo.toml +47 -0
  184. data/bridge/sdk-core/sdk/LICENSE.txt +23 -0
  185. data/bridge/sdk-core/sdk/src/activity_context.rs +230 -0
  186. data/bridge/sdk-core/sdk/src/app_data.rs +37 -0
  187. data/bridge/sdk-core/sdk/src/conversions.rs +8 -0
  188. data/bridge/sdk-core/sdk/src/interceptors.rs +17 -0
  189. data/bridge/sdk-core/sdk/src/lib.rs +792 -0
  190. data/bridge/sdk-core/sdk/src/payload_converter.rs +11 -0
  191. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +295 -0
  192. data/bridge/sdk-core/sdk/src/workflow_context.rs +683 -0
  193. data/bridge/sdk-core/sdk/src/workflow_future.rs +503 -0
  194. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +30 -0
  195. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +23 -0
  196. data/bridge/sdk-core/sdk-core-protos/build.rs +108 -0
  197. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
  198. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +497 -0
  199. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
  200. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1910 -0
  201. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +38 -0
  202. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +14 -0
  203. data/bridge/sdk-core/test-utils/Cargo.toml +35 -0
  204. data/bridge/sdk-core/test-utils/src/canned_histories.rs +1579 -0
  205. data/bridge/sdk-core/test-utils/src/histfetch.rs +28 -0
  206. data/bridge/sdk-core/test-utils/src/lib.rs +598 -0
  207. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +36 -0
  208. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +128 -0
  209. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +218 -0
  210. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +146 -0
  211. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +437 -0
  212. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +93 -0
  213. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +878 -0
  214. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +61 -0
  215. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +59 -0
  216. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +58 -0
  217. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +50 -0
  218. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +60 -0
  219. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +54 -0
  220. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +634 -0
  221. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +113 -0
  222. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +137 -0
  223. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +93 -0
  224. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +167 -0
  225. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +99 -0
  226. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +131 -0
  227. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +75 -0
  228. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +587 -0
  229. data/bridge/sdk-core/tests/load_tests.rs +191 -0
  230. data/bridge/sdk-core/tests/main.rs +111 -0
  231. data/bridge/sdk-core/tests/runner.rs +93 -0
  232. data/bridge/src/connection.rs +167 -0
  233. data/bridge/src/lib.rs +180 -0
  234. data/bridge/src/runtime.rs +47 -0
  235. data/bridge/src/worker.rs +73 -0
  236. data/ext/Rakefile +9 -0
  237. data/lib/bridge.so +0 -0
  238. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +14 -0
  239. data/lib/gen/temporal/api/batch/v1/message_pb.rb +48 -0
  240. data/lib/gen/temporal/api/cluster/v1/message_pb.rb +67 -0
  241. data/lib/gen/temporal/api/command/v1/message_pb.rb +166 -0
  242. data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
  243. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +32 -0
  244. data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +26 -0
  245. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +37 -0
  246. data/lib/gen/temporal/api/enums/v1/common_pb.rb +41 -0
  247. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +67 -0
  248. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +71 -0
  249. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +37 -0
  250. data/lib/gen/temporal/api/enums/v1/query_pb.rb +31 -0
  251. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +24 -0
  252. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +28 -0
  253. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +30 -0
  254. data/lib/gen/temporal/api/enums/v1/update_pb.rb +28 -0
  255. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +89 -0
  256. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +84 -0
  257. data/lib/gen/temporal/api/failure/v1/message_pb.rb +83 -0
  258. data/lib/gen/temporal/api/filter/v1/message_pb.rb +40 -0
  259. data/lib/gen/temporal/api/history/v1/message_pb.rb +489 -0
  260. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
  261. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +125 -0
  262. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +20 -0
  263. data/lib/gen/temporal/api/query/v1/message_pb.rb +38 -0
  264. data/lib/gen/temporal/api/replication/v1/message_pb.rb +37 -0
  265. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +128 -0
  266. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
  267. data/lib/gen/temporal/api/update/v1/message_pb.rb +26 -0
  268. data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
  269. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +110 -0
  270. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +771 -0
  271. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +20 -0
  272. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +58 -0
  273. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +57 -0
  274. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +222 -0
  275. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +57 -0
  276. data/lib/gen/temporal/sdk/core/common/common_pb.rb +22 -0
  277. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +34 -0
  278. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +27 -0
  279. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +164 -0
  280. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +192 -0
  281. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
  282. data/lib/temporal/bridge.rb +14 -0
  283. data/lib/temporal/client/implementation.rb +339 -0
  284. data/lib/temporal/client/workflow_handle.rb +243 -0
  285. data/lib/temporal/client.rb +144 -0
  286. data/lib/temporal/connection.rb +736 -0
  287. data/lib/temporal/data_converter.rb +150 -0
  288. data/lib/temporal/error/failure.rb +194 -0
  289. data/lib/temporal/error/workflow_failure.rb +17 -0
  290. data/lib/temporal/errors.rb +22 -0
  291. data/lib/temporal/failure_converter/base.rb +26 -0
  292. data/lib/temporal/failure_converter/basic.rb +313 -0
  293. data/lib/temporal/failure_converter.rb +8 -0
  294. data/lib/temporal/interceptor/chain.rb +27 -0
  295. data/lib/temporal/interceptor/client.rb +102 -0
  296. data/lib/temporal/payload_codec/base.rb +32 -0
  297. data/lib/temporal/payload_converter/base.rb +24 -0
  298. data/lib/temporal/payload_converter/bytes.rb +26 -0
  299. data/lib/temporal/payload_converter/composite.rb +47 -0
  300. data/lib/temporal/payload_converter/encoding_base.rb +35 -0
  301. data/lib/temporal/payload_converter/json.rb +25 -0
  302. data/lib/temporal/payload_converter/nil.rb +25 -0
  303. data/lib/temporal/payload_converter.rb +14 -0
  304. data/lib/temporal/retry_policy.rb +82 -0
  305. data/lib/temporal/retry_state.rb +35 -0
  306. data/lib/temporal/runtime.rb +22 -0
  307. data/lib/temporal/timeout_type.rb +29 -0
  308. data/lib/temporal/version.rb +3 -0
  309. data/lib/temporal/workflow/execution_info.rb +54 -0
  310. data/lib/temporal/workflow/execution_status.rb +36 -0
  311. data/lib/temporal/workflow/id_reuse_policy.rb +36 -0
  312. data/lib/temporal/workflow/query_reject_condition.rb +33 -0
  313. data/lib/temporal.rb +8 -0
  314. data/lib/temporalio.rb +3 -0
  315. data/lib/thermite_patch.rb +23 -0
  316. data/temporalio.gemspec +41 -0
  317. metadata +583 -0
@@ -0,0 +1,751 @@
1
+ // The MIT License
2
+ //
3
+ // Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
4
+ //
5
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ // of this software and associated documentation files (the "Software"), to deal
7
+ // in the Software without restriction, including without limitation the rights
8
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ // copies of the Software, and to permit persons to whom the Software is
10
+ // furnished to do so, subject to the following conditions:
11
+ //
12
+ // The above copyright notice and this permission notice shall be included in
13
+ // all copies or substantial portions of the Software.
14
+ //
15
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ // THE SOFTWARE.
22
+
23
+ syntax = "proto3";
24
+
25
+ package temporal.api.history.v1;
26
+
27
+ option go_package = "go.temporal.io/api/history/v1;history";
28
+ option java_package = "io.temporal.api.history.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "MessageProto";
31
+ option ruby_package = "Temporal::Api::History::V1";
32
+ option csharp_namespace = "Temporal.Api.History.V1";
33
+
34
+ import "google/protobuf/duration.proto";
35
+ import "google/protobuf/timestamp.proto";
36
+
37
+ import "dependencies/gogoproto/gogo.proto";
38
+
39
+ import "temporal/api/enums/v1/event_type.proto";
40
+ import "temporal/api/enums/v1/failed_cause.proto";
41
+ import "temporal/api/enums/v1/workflow.proto";
42
+ import "temporal/api/common/v1/message.proto";
43
+ import "temporal/api/failure/v1/message.proto";
44
+ import "temporal/api/taskqueue/v1/message.proto";
45
+ import "temporal/api/update/v1/message.proto";
46
+ import "temporal/api/workflow/v1/message.proto";
47
+
48
+ // Always the first event in workflow history
49
+ message WorkflowExecutionStartedEventAttributes {
50
+ temporal.api.common.v1.WorkflowType workflow_type = 1;
51
+ // If this workflow is a child, the namespace our parent lives in.
52
+ // SDKs and UI tools should use `parent_workflow_namespace` field but server must use `parent_workflow_namespace_id` only.
53
+ string parent_workflow_namespace = 2;
54
+ string parent_workflow_namespace_id = 27;
55
+ // Contains information about parent workflow execution that initiated the child workflow these attributes belong to.
56
+ // If the workflow these attributes belong to is not a child workflow of any other execution, this field will not be populated.
57
+ temporal.api.common.v1.WorkflowExecution parent_workflow_execution = 3;
58
+ // EventID of the child execution initiated event in parent workflow
59
+ int64 parent_initiated_event_id = 4;
60
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 5;
61
+ // SDK will deserialize this and provide it as arguments to the workflow function
62
+ temporal.api.common.v1.Payloads input = 6;
63
+ // Total workflow execution timeout including retries and continue as new.
64
+ google.protobuf.Duration workflow_execution_timeout = 7 [(gogoproto.stdduration) = true];
65
+ // Timeout of a single workflow run.
66
+ google.protobuf.Duration workflow_run_timeout = 8 [(gogoproto.stdduration) = true];
67
+ // Timeout of a single workflow task.
68
+ google.protobuf.Duration workflow_task_timeout = 9 [(gogoproto.stdduration) = true];
69
+ // Run id of the previous workflow which continued-as-new or retired or cron executed into this
70
+ // workflow.
71
+ string continued_execution_run_id = 10;
72
+ temporal.api.enums.v1.ContinueAsNewInitiator initiator = 11;
73
+ temporal.api.failure.v1.Failure continued_failure = 12;
74
+ temporal.api.common.v1.Payloads last_completion_result = 13;
75
+ // This is the run id when the WorkflowExecutionStarted event was written.
76
+ // A workflow reset changes the execution run_id, but preserves this field.
77
+ string original_execution_run_id = 14;
78
+ // Identity of the client who requested this execution
79
+ string identity = 15;
80
+ // This is the very first runId along the chain of ContinueAsNew, Retry, Cron and Reset.
81
+ // Used to identify a chain.
82
+ string first_execution_run_id = 16;
83
+ temporal.api.common.v1.RetryPolicy retry_policy = 17;
84
+ // Starting at 1, the number of times we have tried to execute this workflow
85
+ int32 attempt = 18;
86
+ // The absolute time at which the workflow will be timed out.
87
+ // This is passed without change to the next run/retry of a workflow.
88
+ google.protobuf.Timestamp workflow_execution_expiration_time = 19 [(gogoproto.stdtime) = true];
89
+ // If this workflow runs on a cron schedule, it will appear here
90
+ string cron_schedule = 20;
91
+ // For a cron workflow, this contains the amount of time between when this iteration of
92
+ // the cron workflow was scheduled and when it should run next per its cron_schedule.
93
+ google.protobuf.Duration first_workflow_task_backoff = 21 [(gogoproto.stdduration) = true];
94
+ temporal.api.common.v1.Memo memo = 22;
95
+ temporal.api.common.v1.SearchAttributes search_attributes = 23;
96
+ temporal.api.workflow.v1.ResetPoints prev_auto_reset_points = 24;
97
+ temporal.api.common.v1.Header header = 25;
98
+ // Version of the child execution initiated event in parent workflow
99
+ // It should be used together with parent_initiated_event_id to identify
100
+ // a child initiated event for global namespace
101
+ int64 parent_initiated_event_version = 26;
102
+ }
103
+
104
+ message WorkflowExecutionCompletedEventAttributes {
105
+ // Serialized result of workflow completion (ie: The return value of the workflow function)
106
+ temporal.api.common.v1.Payloads result = 1;
107
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
108
+ int64 workflow_task_completed_event_id = 2;
109
+ // If another run is started by cron, this contains the new run id.
110
+ string new_execution_run_id = 3;
111
+ }
112
+
113
+ message WorkflowExecutionFailedEventAttributes {
114
+ // Serialized result of workflow failure (ex: An exception thrown, or error returned)
115
+ temporal.api.failure.v1.Failure failure = 1;
116
+ temporal.api.enums.v1.RetryState retry_state = 2;
117
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
118
+ int64 workflow_task_completed_event_id = 3;
119
+ // If another run is started by cron or retry, this contains the new run id.
120
+ string new_execution_run_id = 4;
121
+ }
122
+
123
+ message WorkflowExecutionTimedOutEventAttributes {
124
+ temporal.api.enums.v1.RetryState retry_state = 1;
125
+ // If another run is started by cron or retry, this contains the new run id.
126
+ string new_execution_run_id = 2;
127
+ }
128
+
129
+ message WorkflowExecutionContinuedAsNewEventAttributes {
130
+ // The run ID of the new workflow started by this continue-as-new
131
+ string new_execution_run_id = 1;
132
+ temporal.api.common.v1.WorkflowType workflow_type = 2;
133
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 3;
134
+ temporal.api.common.v1.Payloads input = 4;
135
+ // Timeout of a single workflow run.
136
+ google.protobuf.Duration workflow_run_timeout = 5 [(gogoproto.stdduration) = true];
137
+ // Timeout of a single workflow task.
138
+ google.protobuf.Duration workflow_task_timeout = 6 [(gogoproto.stdduration) = true];
139
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
140
+ int64 workflow_task_completed_event_id = 7;
141
+ // TODO: How and is this used?
142
+ google.protobuf.Duration backoff_start_interval = 8 [(gogoproto.stdduration) = true];
143
+ temporal.api.enums.v1.ContinueAsNewInitiator initiator = 9;
144
+ // TODO: David are these right?
145
+ // Deprecated. If a workflow's retry policy would cause a new run to start when the current one
146
+ // has failed, this field would be populated with that failure. Now (when supported by server
147
+ // and sdk) the final event will be `WORKFLOW_EXECUTION_FAILED` with `new_execution_run_id` set.
148
+ temporal.api.failure.v1.Failure failure = 10;
149
+ // TODO: Is this the result of *this* workflow as it continued-as-new?
150
+ temporal.api.common.v1.Payloads last_completion_result = 11;
151
+ temporal.api.common.v1.Header header = 12;
152
+ temporal.api.common.v1.Memo memo = 13;
153
+ temporal.api.common.v1.SearchAttributes search_attributes = 14;
154
+
155
+ // workflow_execution_timeout is omitted as it shouldn't be overridden from within a workflow.
156
+ }
157
+
158
+ message WorkflowTaskScheduledEventAttributes {
159
+ // The task queue this workflow task was enqueued in, which could be a normal or sticky queue
160
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 1;
161
+ // How long the worker has to process this task once receiving it before it times out
162
+ //
163
+ // (-- api-linter: core::0140::prepositions=disabled
164
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
165
+ google.protobuf.Duration start_to_close_timeout = 2 [(gogoproto.stdduration) = true];
166
+ // Starting at 1, how many attempts there have been to complete this task
167
+ int32 attempt = 3;
168
+ }
169
+
170
+ message WorkflowTaskStartedEventAttributes {
171
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
172
+ int64 scheduled_event_id = 1;
173
+ // Identity of the worker who picked up this task
174
+ string identity = 2;
175
+ // TODO: ? Appears unused?
176
+ string request_id = 3;
177
+ // True if this workflow should continue-as-new soon because its history size (in
178
+ // either event count or bytes) is getting large.
179
+ bool suggest_continue_as_new = 4;
180
+ // Total history size in bytes, which the workflow might use to decide when to
181
+ // continue-as-new regardless of the suggestion. Note that history event count is
182
+ // just the event id of this event, so we don't include it explicitly here.
183
+ int64 history_size_bytes = 5;
184
+ }
185
+
186
+ message WorkflowTaskCompletedEventAttributes {
187
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
188
+ int64 scheduled_event_id = 1;
189
+ // The id of the `WORKFLOW_TASK_STARTED` event this task corresponds to
190
+ int64 started_event_id = 2;
191
+ // Identity of the worker who completed this task
192
+ string identity = 3;
193
+ // Binary ID of the worker who completed this task
194
+ string binary_checksum = 4;
195
+ }
196
+
197
+ message WorkflowTaskTimedOutEventAttributes {
198
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
199
+ int64 scheduled_event_id = 1;
200
+ // The id of the `WORKFLOW_TASK_STARTED` event this task corresponds to
201
+ int64 started_event_id = 2;
202
+ temporal.api.enums.v1.TimeoutType timeout_type = 3;
203
+ }
204
+
205
+ message WorkflowTaskFailedEventAttributes {
206
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
207
+ int64 scheduled_event_id = 1;
208
+ // The id of the `WORKFLOW_TASK_STARTED` event this task corresponds to
209
+ int64 started_event_id = 2;
210
+ temporal.api.enums.v1.WorkflowTaskFailedCause cause = 3;
211
+ // The failure details
212
+ temporal.api.failure.v1.Failure failure = 4;
213
+ // If a worker explicitly failed this task, it's identity. TODO: What is this set to if server fails the task?
214
+ string identity = 5;
215
+ // The original run id of the workflow. For reset workflow.
216
+ string base_run_id = 6;
217
+ // If the workflow is being reset, the new run id.
218
+ string new_run_id = 7;
219
+ // TODO: ?
220
+ int64 fork_event_version = 8;
221
+ // If a worker explicitly failed this task, it's binary id
222
+ string binary_checksum = 9;
223
+ }
224
+
225
+ message ActivityTaskScheduledEventAttributes {
226
+ // The worker/user assigned identifier for the activity
227
+ string activity_id = 1;
228
+ temporal.api.common.v1.ActivityType activity_type = 2;
229
+ // This used to be a `namespace` field which allowed to schedule activity in another namespace.
230
+ reserved 3;
231
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
232
+ temporal.api.common.v1.Header header = 5;
233
+ temporal.api.common.v1.Payloads input = 6;
234
+ // Indicates how long the caller is willing to wait for an activity completion. Limits how long
235
+ // retries will be attempted. Either this or `start_to_close_timeout` must be specified.
236
+ //
237
+ // (-- api-linter: core::0140::prepositions=disabled
238
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
239
+ google.protobuf.Duration schedule_to_close_timeout = 7 [(gogoproto.stdduration) = true];
240
+ // Limits time an activity task can stay in a task queue before a worker picks it up. This
241
+ // timeout is always non retryable, as all a retry would achieve is to put it back into the same
242
+ // queue. Defaults to `schedule_to_close_timeout` or workflow execution timeout if not
243
+ // specified.
244
+ //
245
+ // (-- api-linter: core::0140::prepositions=disabled
246
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
247
+ google.protobuf.Duration schedule_to_start_timeout = 8 [(gogoproto.stdduration) = true];
248
+ // Maximum time an activity is allowed to execute after being picked up by a worker. This
249
+ // timeout is always retryable. Either this or `schedule_to_close_timeout` must be
250
+ // specified.
251
+ //
252
+ // (-- api-linter: core::0140::prepositions=disabled
253
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
254
+ google.protobuf.Duration start_to_close_timeout = 9 [(gogoproto.stdduration) = true];
255
+ // Maximum permitted time between successful worker heartbeats.
256
+ google.protobuf.Duration heartbeat_timeout = 10 [(gogoproto.stdduration) = true];
257
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
258
+ int64 workflow_task_completed_event_id = 11;
259
+ // Activities are assigned a default retry policy controlled by the service's dynamic
260
+ // configuration. Retries will happen up to `schedule_to_close_timeout`. To disable retries set
261
+ // retry_policy.maximum_attempts to 1.
262
+ temporal.api.common.v1.RetryPolicy retry_policy = 12;
263
+ }
264
+
265
+ message ActivityTaskStartedEventAttributes {
266
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this task corresponds to
267
+ int64 scheduled_event_id = 1;
268
+ // id of the worker that picked up this task
269
+ string identity = 2;
270
+ // TODO ??
271
+ string request_id = 3;
272
+ // Starting at 1, the number of times this task has been attempted
273
+ int32 attempt = 4;
274
+ // Will be set to the most recent failure details, if this task has previously failed and then
275
+ // been retried.
276
+ temporal.api.failure.v1.Failure last_failure = 5;
277
+ }
278
+
279
+ message ActivityTaskCompletedEventAttributes {
280
+ // Serialized results of the activity. IE: The return value of the activity function
281
+ temporal.api.common.v1.Payloads result = 1;
282
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this completion corresponds to
283
+ int64 scheduled_event_id = 2;
284
+ // The id of the `ACTIVITY_TASK_STARTED` event this completion corresponds to
285
+ int64 started_event_id = 3;
286
+ // id of the worker that completed this task
287
+ string identity = 4;
288
+ }
289
+
290
+ message ActivityTaskFailedEventAttributes {
291
+ // Failure details
292
+ temporal.api.failure.v1.Failure failure = 1;
293
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this failure corresponds to
294
+ int64 scheduled_event_id = 2;
295
+ // The id of the `ACTIVITY_TASK_STARTED` event this failure corresponds to
296
+ int64 started_event_id = 3;
297
+ // id of the worker that failed this task
298
+ string identity = 4;
299
+ temporal.api.enums.v1.RetryState retry_state = 5;
300
+ }
301
+
302
+ message ActivityTaskTimedOutEventAttributes {
303
+ // If this activity had failed, was retried, and then timed out, that failure is stored as the
304
+ // `cause` in here.
305
+ temporal.api.failure.v1.Failure failure = 1;
306
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this timeout corresponds to
307
+ int64 scheduled_event_id = 2;
308
+ // The id of the `ACTIVITY_TASK_STARTED` event this timeout corresponds to
309
+ int64 started_event_id = 3;
310
+ temporal.api.enums.v1.RetryState retry_state = 4;
311
+ }
312
+
313
+ message ActivityTaskCancelRequestedEventAttributes {
314
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this cancel request corresponds to
315
+ int64 scheduled_event_id = 1;
316
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
317
+ int64 workflow_task_completed_event_id = 2;
318
+ }
319
+
320
+ message ActivityTaskCanceledEventAttributes {
321
+ // Additional information that the activity reported upon confirming cancellation
322
+ temporal.api.common.v1.Payloads details = 1;
323
+ // id of the most recent `ACTIVITY_TASK_CANCEL_REQUESTED` event which refers to the same
324
+ // activity
325
+ int64 latest_cancel_requested_event_id = 2;
326
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this cancel confirmation corresponds to
327
+ int64 scheduled_event_id = 3;
328
+ // The id of the `ACTIVITY_TASK_STARTED` event this cancel confirmation corresponds to
329
+ int64 started_event_id = 4;
330
+ // id of the worker who canceled this activity
331
+ string identity = 5;
332
+ }
333
+
334
+ message TimerStartedEventAttributes {
335
+ // The worker/user assigned id for this timer
336
+ string timer_id = 1;
337
+ // How long until this timer fires
338
+ //
339
+ // (-- api-linter: core::0140::prepositions=disabled
340
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
341
+ google.protobuf.Duration start_to_fire_timeout = 2 [(gogoproto.stdduration) = true];
342
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
343
+ int64 workflow_task_completed_event_id = 3;
344
+ }
345
+
346
+ message TimerFiredEventAttributes {
347
+ // Will match the `timer_id` from `TIMER_STARTED` event for this timer
348
+ string timer_id = 1;
349
+ // The id of the `TIMER_STARTED` event itself
350
+ int64 started_event_id = 2;
351
+ }
352
+
353
+ message TimerCanceledEventAttributes {
354
+ // Will match the `timer_id` from `TIMER_STARTED` event for this timer
355
+ string timer_id = 1;
356
+ // The id of the `TIMER_STARTED` event itself
357
+ int64 started_event_id = 2;
358
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
359
+ int64 workflow_task_completed_event_id = 3;
360
+ // The id of the worker who requested this cancel
361
+ string identity = 4;
362
+ }
363
+
364
+ message WorkflowExecutionCancelRequestedEventAttributes {
365
+ // User provided reason for requesting cancellation
366
+ // TODO: shall we create a new field with name "reason" and deprecate this one?
367
+ string cause = 1;
368
+ // TODO: Is this the ID of the event in the workflow which initiated this cancel, if there was one?
369
+ int64 external_initiated_event_id = 2;
370
+ temporal.api.common.v1.WorkflowExecution external_workflow_execution = 3;
371
+ // id of the worker or client who requested this cancel
372
+ string identity = 4;
373
+ }
374
+
375
+ message WorkflowExecutionCanceledEventAttributes {
376
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
377
+ int64 workflow_task_completed_event_id = 1;
378
+ temporal.api.common.v1.Payloads details = 2;
379
+ }
380
+
381
+ message MarkerRecordedEventAttributes {
382
+ // Workers use this to identify the "types" of various markers. Ex: Local activity, side effect.
383
+ string marker_name = 1;
384
+ // Serialized information recorded in the marker
385
+ map<string, temporal.api.common.v1.Payloads> details = 2;
386
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
387
+ int64 workflow_task_completed_event_id = 3;
388
+ temporal.api.common.v1.Header header = 4;
389
+ // Some uses of markers, like a local activity, could "fail". If they did that is recorded here.
390
+ temporal.api.failure.v1.Failure failure = 5;
391
+ }
392
+
393
+ message WorkflowExecutionSignaledEventAttributes {
394
+ // The name/type of the signal to fire
395
+ string signal_name = 1;
396
+ // Will be deserialized and provided as argument(s) to the signal handler
397
+ temporal.api.common.v1.Payloads input = 2;
398
+ // id of the worker/client who sent this signal
399
+ string identity = 3;
400
+ // Headers that were passed by the sender of the signal and copied by temporal
401
+ // server into the workflow task.
402
+ temporal.api.common.v1.Header header = 4;
403
+ }
404
+
405
+ message WorkflowExecutionTerminatedEventAttributes {
406
+ // User/client provided reason for termination
407
+ string reason = 1;
408
+ temporal.api.common.v1.Payloads details = 2;
409
+ // id of the client who requested termination
410
+ string identity = 3;
411
+ }
412
+
413
+ message RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {
414
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
415
+ int64 workflow_task_completed_event_id = 1;
416
+ // The namespace the workflow to be cancelled lives in.
417
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
418
+ string namespace = 2;
419
+ string namespace_id = 7;
420
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
421
+ // Deprecated
422
+ string control = 4;
423
+ // Workers are expected to set this to true if the workflow they are requesting to cancel is
424
+ // a child of the workflow which issued the request
425
+ bool child_workflow_only = 5;
426
+ // Reason for requesting the cancellation
427
+ string reason = 6;
428
+ }
429
+
430
+ message RequestCancelExternalWorkflowExecutionFailedEventAttributes {
431
+ temporal.api.enums.v1.CancelExternalWorkflowExecutionFailedCause cause = 1;
432
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
433
+ int64 workflow_task_completed_event_id = 2;
434
+ // Namespace of the workflow which failed to cancel.
435
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
436
+ string namespace = 3;
437
+ string namespace_id = 7;
438
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 4;
439
+ // id of the `REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED` event this failure
440
+ // corresponds to
441
+ int64 initiated_event_id = 5;
442
+ // Deprecated
443
+ string control = 6;
444
+ }
445
+
446
+ message ExternalWorkflowExecutionCancelRequestedEventAttributes {
447
+ // id of the `REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED` event this event corresponds
448
+ // to
449
+ int64 initiated_event_id = 1;
450
+ // Namespace of the to-be-cancelled workflow.
451
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
452
+ string namespace = 2;
453
+ string namespace_id = 4;
454
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
455
+ }
456
+
457
+ message SignalExternalWorkflowExecutionInitiatedEventAttributes {
458
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
459
+ int64 workflow_task_completed_event_id = 1;
460
+ // Namespace of the to-be-signalled workflow.
461
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
462
+ string namespace = 2;
463
+ string namespace_id = 9;
464
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
465
+ // name/type of the signal to fire in the external workflow
466
+ string signal_name = 4;
467
+ // Serialized arguments to provide to the signal handler
468
+ temporal.api.common.v1.Payloads input = 5;
469
+ // Deprecated
470
+ string control = 6;
471
+ // Workers are expected to set this to true if the workflow they are requesting to cancel is
472
+ // a child of the workflow which issued the request
473
+ bool child_workflow_only = 7;
474
+ temporal.api.common.v1.Header header = 8;
475
+ }
476
+
477
+ message SignalExternalWorkflowExecutionFailedEventAttributes {
478
+ temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause cause = 1;
479
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
480
+ int64 workflow_task_completed_event_id = 2;
481
+ // Namespace of the workflow which failed the signal.
482
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
483
+ string namespace = 3;
484
+ string namespace_id = 7;
485
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 4;
486
+ int64 initiated_event_id = 5;
487
+ // Deprecated
488
+ string control = 6;
489
+ }
490
+
491
+ message ExternalWorkflowExecutionSignaledEventAttributes {
492
+ // id of the `SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED` event this event corresponds to
493
+ int64 initiated_event_id = 1;
494
+ // Namespace of the workflow which was signaled.
495
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
496
+ string namespace = 2;
497
+ string namespace_id = 5;
498
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
499
+ // Deprecated
500
+ string control = 4;
501
+ }
502
+
503
+ message UpsertWorkflowSearchAttributesEventAttributes {
504
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
505
+ int64 workflow_task_completed_event_id = 1;
506
+ temporal.api.common.v1.SearchAttributes search_attributes = 2;
507
+ }
508
+
509
+ message StartChildWorkflowExecutionInitiatedEventAttributes {
510
+ // Namespace of the child workflow.
511
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
512
+ string namespace = 1;
513
+ string namespace_id = 18;
514
+ string workflow_id = 2;
515
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
516
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
517
+ temporal.api.common.v1.Payloads input = 5;
518
+ // Total workflow execution timeout including retries and continue as new.
519
+ google.protobuf.Duration workflow_execution_timeout = 6 [(gogoproto.stdduration) = true];
520
+ // Timeout of a single workflow run.
521
+ google.protobuf.Duration workflow_run_timeout = 7 [(gogoproto.stdduration) = true];
522
+ // Timeout of a single workflow task.
523
+ google.protobuf.Duration workflow_task_timeout = 8 [(gogoproto.stdduration) = true];
524
+ // Default: PARENT_CLOSE_POLICY_TERMINATE.
525
+ temporal.api.enums.v1.ParentClosePolicy parent_close_policy = 9;
526
+ // Deprecated
527
+ string control = 10;
528
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
529
+ int64 workflow_task_completed_event_id = 11;
530
+ // Default: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE.
531
+ temporal.api.enums.v1.WorkflowIdReusePolicy workflow_id_reuse_policy = 12;
532
+ temporal.api.common.v1.RetryPolicy retry_policy = 13;
533
+ // If this child runs on a cron schedule, it will appear here
534
+ string cron_schedule = 14;
535
+ temporal.api.common.v1.Header header = 15;
536
+ temporal.api.common.v1.Memo memo = 16;
537
+ temporal.api.common.v1.SearchAttributes search_attributes = 17;
538
+ }
539
+
540
+ message StartChildWorkflowExecutionFailedEventAttributes {
541
+ // Namespace of the child workflow.
542
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
543
+ string namespace = 1;
544
+ string namespace_id = 8;
545
+ string workflow_id = 2;
546
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
547
+ temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause cause = 4;
548
+ // Deprecated
549
+ string control = 5;
550
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
551
+ int64 initiated_event_id = 6;
552
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
553
+ int64 workflow_task_completed_event_id = 7;
554
+ }
555
+
556
+ message ChildWorkflowExecutionStartedEventAttributes {
557
+ // Namespace of the child workflow.
558
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
559
+ string namespace = 1;
560
+ string namespace_id = 6;
561
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
562
+ int64 initiated_event_id = 2;
563
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
564
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
565
+ temporal.api.common.v1.Header header = 5;
566
+ }
567
+
568
+ message ChildWorkflowExecutionCompletedEventAttributes {
569
+ temporal.api.common.v1.Payloads result = 1;
570
+ // Namespace of the child workflow.
571
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
572
+ string namespace = 2;
573
+ string namespace_id = 7;
574
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
575
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
576
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
577
+ int64 initiated_event_id = 5;
578
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
579
+ int64 started_event_id = 6;
580
+ }
581
+
582
+ message ChildWorkflowExecutionFailedEventAttributes {
583
+ temporal.api.failure.v1.Failure failure = 1;
584
+ // Namespace of the child workflow.
585
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
586
+ string namespace = 2;
587
+ string namespace_id = 8;
588
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
589
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
590
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
591
+ int64 initiated_event_id = 5;
592
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
593
+ int64 started_event_id = 6;
594
+ temporal.api.enums.v1.RetryState retry_state = 7;
595
+ }
596
+
597
+ message ChildWorkflowExecutionCanceledEventAttributes {
598
+ temporal.api.common.v1.Payloads details = 1;
599
+ // Namespace of the child workflow.
600
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
601
+ string namespace = 2;
602
+ string namespace_id = 7;
603
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
604
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
605
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
606
+ int64 initiated_event_id = 5;
607
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
608
+ int64 started_event_id = 6;
609
+ }
610
+
611
+ message ChildWorkflowExecutionTimedOutEventAttributes {
612
+ // Namespace of the child workflow.
613
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
614
+ string namespace = 1;
615
+ string namespace_id = 7;
616
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
617
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
618
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
619
+ int64 initiated_event_id = 4;
620
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
621
+ int64 started_event_id = 5;
622
+ temporal.api.enums.v1.RetryState retry_state = 6;
623
+ }
624
+
625
+ message ChildWorkflowExecutionTerminatedEventAttributes {
626
+ // Namespace of the child workflow.
627
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
628
+ string namespace = 1;
629
+ string namespace_id = 6;
630
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
631
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
632
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
633
+ int64 initiated_event_id = 4;
634
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
635
+ int64 started_event_id = 5;
636
+ }
637
+
638
+ message WorkflowUpdateRequestedEventAttributes {
639
+ temporal.api.common.v1.Header header = 1;
640
+ string request_id = 2;
641
+ string update_id = 3;
642
+ temporal.api.update.v1.WorkflowUpdate update = 4;
643
+ }
644
+
645
+ message WorkflowUpdateAcceptedEventAttributes {
646
+ temporal.api.common.v1.Header header = 1;
647
+ string update_id = 2;
648
+ }
649
+
650
+ message WorkflowUpdateCompletedEventAttributes {
651
+ temporal.api.common.v1.Header system_header = 1;
652
+ string update_id = 3;
653
+ oneof result {
654
+ temporal.api.common.v1.Payloads success = 4;
655
+ temporal.api.failure.v1.Failure failure = 5;
656
+ }
657
+ }
658
+
659
+ message WorkflowPropertiesModifiedExternallyEventAttributes {
660
+ // If set to a nonempty string, future workflow tasks for this workflow shall be dispatched on
661
+ // the provided queue.
662
+ string new_task_queue = 1;
663
+ // If set, update the workflow task timeout to this value.
664
+ google.protobuf.Duration new_workflow_task_timeout = 2 [(gogoproto.stdduration) = true];
665
+ // If set, update the workflow run timeout to this value. May be set to 0 for no timeout.
666
+ google.protobuf.Duration new_workflow_run_timeout = 3 [(gogoproto.stdduration) = true];
667
+ // If set, update the workflow execution timeout to this value. May be set to 0 for no timeout.
668
+ google.protobuf.Duration new_workflow_execution_timeout = 4 [(gogoproto.stdduration) = true];
669
+ // If set, update the workflow memo with the provided values. The values will be merged with
670
+ // the existing memo. If the user wants to delete values, a default/empty Payload should be
671
+ // used as the value for the key being deleted.
672
+ temporal.api.common.v1.Memo upserted_memo = 5;
673
+ }
674
+
675
+ message ActivityPropertiesModifiedExternallyEventAttributes {
676
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this modification corresponds to.
677
+ int64 scheduled_event_id = 1;
678
+ // If set, update the retry policy of the activity, replacing it with the specified one.
679
+ // The number of attempts at the activity is preserved.
680
+ temporal.api.common.v1.RetryPolicy new_retry_policy = 2;
681
+ }
682
+
683
+ // History events are the method by which Temporal SDKs advance (or recreate) workflow state.
684
+ // See the `EventType` enum for more info about what each event is for.
685
+ message HistoryEvent {
686
+ // Monotonically increasing event number, starts at 1.
687
+ int64 event_id = 1;
688
+ google.protobuf.Timestamp event_time = 2 [(gogoproto.stdtime) = true];
689
+ temporal.api.enums.v1.EventType event_type = 3;
690
+ // TODO: What is this? Appears unused by SDKs
691
+ int64 version = 4;
692
+ // TODO: What is this? Appears unused by SDKs
693
+ int64 task_id = 5;
694
+ // Set to true when the SDK may ignore the event as it does not impact workflow state or
695
+ // information in any way that the SDK need be concerned with. If an SDK encounters an event
696
+ // type which it does not understand, it must error unless this is true. If it is true, it's
697
+ // acceptable for the event type and/or attributes to be uninterpretable.
698
+ bool worker_may_ignore = 300;
699
+ // The event details. The type must match that in `event_type`.
700
+ oneof attributes {
701
+ WorkflowExecutionStartedEventAttributes workflow_execution_started_event_attributes = 6;
702
+ WorkflowExecutionCompletedEventAttributes workflow_execution_completed_event_attributes = 7;
703
+ WorkflowExecutionFailedEventAttributes workflow_execution_failed_event_attributes = 8;
704
+ WorkflowExecutionTimedOutEventAttributes workflow_execution_timed_out_event_attributes = 9;
705
+ WorkflowTaskScheduledEventAttributes workflow_task_scheduled_event_attributes = 10;
706
+ WorkflowTaskStartedEventAttributes workflow_task_started_event_attributes = 11;
707
+ WorkflowTaskCompletedEventAttributes workflow_task_completed_event_attributes = 12;
708
+ WorkflowTaskTimedOutEventAttributes workflow_task_timed_out_event_attributes = 13;
709
+ WorkflowTaskFailedEventAttributes workflow_task_failed_event_attributes = 14;
710
+ ActivityTaskScheduledEventAttributes activity_task_scheduled_event_attributes = 15;
711
+ ActivityTaskStartedEventAttributes activity_task_started_event_attributes = 16;
712
+ ActivityTaskCompletedEventAttributes activity_task_completed_event_attributes = 17;
713
+ ActivityTaskFailedEventAttributes activity_task_failed_event_attributes = 18;
714
+ ActivityTaskTimedOutEventAttributes activity_task_timed_out_event_attributes = 19;
715
+ TimerStartedEventAttributes timer_started_event_attributes = 20;
716
+ TimerFiredEventAttributes timer_fired_event_attributes = 21;
717
+ ActivityTaskCancelRequestedEventAttributes activity_task_cancel_requested_event_attributes = 22;
718
+ ActivityTaskCanceledEventAttributes activity_task_canceled_event_attributes = 23;
719
+ TimerCanceledEventAttributes timer_canceled_event_attributes = 24;
720
+ MarkerRecordedEventAttributes marker_recorded_event_attributes = 25;
721
+ WorkflowExecutionSignaledEventAttributes workflow_execution_signaled_event_attributes = 26;
722
+ WorkflowExecutionTerminatedEventAttributes workflow_execution_terminated_event_attributes = 27;
723
+ WorkflowExecutionCancelRequestedEventAttributes workflow_execution_cancel_requested_event_attributes = 28;
724
+ WorkflowExecutionCanceledEventAttributes workflow_execution_canceled_event_attributes = 29;
725
+ RequestCancelExternalWorkflowExecutionInitiatedEventAttributes request_cancel_external_workflow_execution_initiated_event_attributes = 30;
726
+ RequestCancelExternalWorkflowExecutionFailedEventAttributes request_cancel_external_workflow_execution_failed_event_attributes = 31;
727
+ ExternalWorkflowExecutionCancelRequestedEventAttributes external_workflow_execution_cancel_requested_event_attributes = 32;
728
+ WorkflowExecutionContinuedAsNewEventAttributes workflow_execution_continued_as_new_event_attributes = 33;
729
+ StartChildWorkflowExecutionInitiatedEventAttributes start_child_workflow_execution_initiated_event_attributes = 34;
730
+ StartChildWorkflowExecutionFailedEventAttributes start_child_workflow_execution_failed_event_attributes = 35;
731
+ ChildWorkflowExecutionStartedEventAttributes child_workflow_execution_started_event_attributes = 36;
732
+ ChildWorkflowExecutionCompletedEventAttributes child_workflow_execution_completed_event_attributes = 37;
733
+ ChildWorkflowExecutionFailedEventAttributes child_workflow_execution_failed_event_attributes = 38;
734
+ ChildWorkflowExecutionCanceledEventAttributes child_workflow_execution_canceled_event_attributes = 39;
735
+ ChildWorkflowExecutionTimedOutEventAttributes child_workflow_execution_timed_out_event_attributes = 40;
736
+ ChildWorkflowExecutionTerminatedEventAttributes child_workflow_execution_terminated_event_attributes = 41;
737
+ SignalExternalWorkflowExecutionInitiatedEventAttributes signal_external_workflow_execution_initiated_event_attributes = 42;
738
+ SignalExternalWorkflowExecutionFailedEventAttributes signal_external_workflow_execution_failed_event_attributes = 43;
739
+ ExternalWorkflowExecutionSignaledEventAttributes external_workflow_execution_signaled_event_attributes = 44;
740
+ UpsertWorkflowSearchAttributesEventAttributes upsert_workflow_search_attributes_event_attributes = 45;
741
+ WorkflowUpdateRequestedEventAttributes workflow_update_requested_event_attributes = 46;
742
+ WorkflowUpdateAcceptedEventAttributes workflow_update_accepted_event_attributes = 47;
743
+ WorkflowUpdateCompletedEventAttributes workflow_update_completed_event_attributes = 48;
744
+ WorkflowPropertiesModifiedExternallyEventAttributes workflow_properties_modified_externally_event_attributes = 49;
745
+ ActivityPropertiesModifiedExternallyEventAttributes activity_properties_modified_externally_event_attributes = 50;
746
+ }
747
+ }
748
+
749
+ message History {
750
+ repeated HistoryEvent events = 1;
751
+ }