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,50 @@
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.enums.v1;
26
+
27
+ option go_package = "go.temporal.io/api/enums/v1;enums";
28
+ option java_package = "io.temporal.api.enums.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "QueryProto";
31
+ option ruby_package = "Temporal::Api::Enums::V1";
32
+ option csharp_namespace = "Temporal.Api.Enums.V1";
33
+
34
+ enum QueryResultType {
35
+ QUERY_RESULT_TYPE_UNSPECIFIED = 0;
36
+ QUERY_RESULT_TYPE_ANSWERED = 1;
37
+ QUERY_RESULT_TYPE_FAILED = 2;
38
+ }
39
+
40
+ enum QueryRejectCondition {
41
+ QUERY_REJECT_CONDITION_UNSPECIFIED = 0;
42
+ // None indicates that query should not be rejected.
43
+ QUERY_REJECT_CONDITION_NONE = 1;
44
+ // NotOpen indicates that query should be rejected if workflow is not open.
45
+ QUERY_REJECT_CONDITION_NOT_OPEN = 2;
46
+ // NotCompletedCleanly indicates that query should be rejected if workflow did not complete cleanly.
47
+ QUERY_REJECT_CONDITION_NOT_COMPLETED_CLEANLY = 3;
48
+ }
49
+
50
+
@@ -0,0 +1,41 @@
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.enums.v1;
26
+
27
+ option go_package = "go.temporal.io/api/enums/v1;enums";
28
+ option java_package = "io.temporal.api.enums.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "ResetProto";
31
+ option ruby_package = "Temporal::Api::Enums::V1";
32
+ option csharp_namespace = "Temporal.Api.Enums.V1";
33
+
34
+ // Reset reapplay(replay) options
35
+ // * RESET_REAPPLY_TYPE_SIGNAL (default) - Signals are reapplied when workflow is reset
36
+ // * RESET_REAPPLY_TYPE_NONE - nothing is reapplied
37
+ enum ResetReapplyType {
38
+ RESET_REAPPLY_TYPE_UNSPECIFIED = 0;
39
+ RESET_REAPPLY_TYPE_SIGNAL = 1;
40
+ RESET_REAPPLY_TYPE_NONE = 2;
41
+ }
@@ -0,0 +1,60 @@
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.enums.v1;
26
+
27
+ option go_package = "go.temporal.io/api/enums/v1;enums";
28
+ option java_package = "io.temporal.api.enums.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "ScheduleProto";
31
+ option ruby_package = "Temporal::Api::Enums::V1";
32
+ option csharp_namespace = "Temporal.Api.Enums.V1";
33
+
34
+
35
+ // ScheduleOverlapPolicy controls what happens when a workflow would be started
36
+ // by a schedule, and is already running.
37
+ enum ScheduleOverlapPolicy {
38
+ SCHEDULE_OVERLAP_POLICY_UNSPECIFIED = 0;
39
+ // SCHEDULE_OVERLAP_POLICY_SKIP (default) means don't start anything. When the
40
+ // workflow completes, the next scheduled event after that time will be considered.
41
+ SCHEDULE_OVERLAP_POLICY_SKIP = 1;
42
+ // SCHEDULE_OVERLAP_POLICY_BUFFER_ONE means start the workflow again soon as the
43
+ // current one completes, but only buffer one start in this way. If another start is
44
+ // supposed to happen when the workflow is running, and one is already buffered, then
45
+ // only the first one will be started after the running workflow finishes.
46
+ SCHEDULE_OVERLAP_POLICY_BUFFER_ONE = 2;
47
+ // SCHEDULE_OVERLAP_POLICY_BUFFER_ALL means buffer up any number of starts to all
48
+ // happen sequentially, immediately after the running workflow completes.
49
+ SCHEDULE_OVERLAP_POLICY_BUFFER_ALL = 3;
50
+ // SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER means that if there is another workflow
51
+ // running, cancel it, and start the new one after the old one completes cancellation.
52
+ SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER = 4;
53
+ // SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER means that if there is another workflow
54
+ // running, terminate it and start the new one immediately.
55
+ SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER = 5;
56
+ // SCHEDULE_OVERLAP_POLICY_ALLOW_ALL means start any number of concurrent workflows.
57
+ // Note that with this policy, last completion result and last failure will not be
58
+ // available since workflows are not sequential.
59
+ SCHEDULE_OVERLAP_POLICY_ALLOW_ALL = 6;
60
+ }
@@ -0,0 +1,59 @@
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.enums.v1;
26
+
27
+ option go_package = "go.temporal.io/api/enums/v1;enums";
28
+ option java_package = "io.temporal.api.enums.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "TaskQueueProto";
31
+ option ruby_package = "Temporal::Api::Enums::V1";
32
+ option csharp_namespace = "Temporal.Api.Enums.V1";
33
+
34
+ enum TaskQueueKind {
35
+ TASK_QUEUE_KIND_UNSPECIFIED = 0;
36
+ // Tasks from a normal workflow task queue always include complete workflow history
37
+ //
38
+ // The task queue specified by the user is always a normal task queue. There can be as many
39
+ // workers as desired for a single normal task queue. All those workers may pick up tasks from
40
+ // that queue.
41
+ TASK_QUEUE_KIND_NORMAL = 1;
42
+ // A sticky queue only includes new history since the last workflow task, and they are
43
+ // per-worker.
44
+ //
45
+ // Sticky queues are created dynamically by each worker during their start up. They only exist
46
+ // for the lifetime of the worker process. Tasks in a sticky task queue are only available to
47
+ // the worker that created the sticky queue.
48
+ //
49
+ // Sticky queues are only for workflow tasks. There are no sticky task queues for activities.
50
+ TASK_QUEUE_KIND_STICKY = 2;
51
+ }
52
+
53
+ enum TaskQueueType {
54
+ TASK_QUEUE_TYPE_UNSPECIFIED = 0;
55
+ // Workflow type of task queue.
56
+ TASK_QUEUE_TYPE_WORKFLOW = 1;
57
+ // Activity type of task queue.
58
+ TASK_QUEUE_TYPE_ACTIVITY = 2;
59
+ }
@@ -0,0 +1,51 @@
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.enums.v1;
26
+
27
+ option go_package = "go.temporal.io/api/enums/v1;enums";
28
+ option java_package = "io.temporal.api.enums.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "UpdateProto";
31
+ option ruby_package = "Temporal::Api::Enums::V1";
32
+ option csharp_namespace = "Temporal.Api.Enums.V1";
33
+
34
+ enum WorkflowUpdateResultAccessStyle {
35
+ WORKFLOW_UPDATE_RESULT_ACCESS_STYLE_UNSPECIFIED = 0;
36
+
37
+ // Indicates that the update response _must_ be included as part of the gRPC
38
+ // response body
39
+ WORKFLOW_UPDATE_RESULT_ACCESS_STYLE_REQUIRE_INLINE = 1;
40
+ }
41
+
42
+ enum WorkflowUpdateDurabilityPreference {
43
+ // The workflow expresses no preference as to the durability of the
44
+ // the associated update.
45
+ WORKFLOW_UPDATE_DURABILITY_PREFERENCE_UNSPECIFIED = 0;
46
+
47
+ // Used by a workflow to indicate that no workflow state mutation occurred
48
+ // while processing the update and that it wishes that the update not be
49
+ // made durable (and thus not take up space in workflow history).
50
+ WORKFLOW_UPDATE_DURABILITY_PREFERENCE_BYPASS = 1;
51
+ }
@@ -0,0 +1,122 @@
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.enums.v1;
26
+
27
+ option go_package = "go.temporal.io/api/enums/v1;enums";
28
+ option java_package = "io.temporal.api.enums.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "WorkflowProto";
31
+ option ruby_package = "Temporal::Api::Enums::V1";
32
+ option csharp_namespace = "Temporal.Api.Enums.V1";
33
+
34
+ // Defines how new runs of a workflow with a particular ID may or may not be allowed. Note that
35
+ // it is *never* valid to have two actively running instances of the same workflow id.
36
+ enum WorkflowIdReusePolicy {
37
+ WORKFLOW_ID_REUSE_POLICY_UNSPECIFIED = 0;
38
+ // Allow starting a workflow execution using the same workflow id.
39
+ WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE = 1;
40
+ // Allow starting a workflow execution using the same workflow id, only when the last
41
+ // execution's final state is one of [terminated, cancelled, timed out, failed].
42
+ WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY = 2;
43
+ // Do not permit re-use of the workflow id for this workflow. Future start workflow requests
44
+ // could potentially change the policy, allowing re-use of the workflow id.
45
+ WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE = 3;
46
+ // If a workflow is running using the same workflow ID, terminate it and start a new one.
47
+ // If no running workflow, then the behavior is the same as ALLOW_DUPLICATE
48
+ WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING = 4;
49
+ }
50
+
51
+ // Defines how child workflows will react to their parent completing
52
+ enum ParentClosePolicy {
53
+ PARENT_CLOSE_POLICY_UNSPECIFIED = 0;
54
+ // The child workflow will also terminate
55
+ PARENT_CLOSE_POLICY_TERMINATE = 1;
56
+ // The child workflow will do nothing
57
+ PARENT_CLOSE_POLICY_ABANDON = 2;
58
+ // Cancellation will be requested of the child workflow
59
+ PARENT_CLOSE_POLICY_REQUEST_CANCEL = 3;
60
+ }
61
+
62
+ enum ContinueAsNewInitiator {
63
+ CONTINUE_AS_NEW_INITIATOR_UNSPECIFIED = 0;
64
+ // The workflow itself requested to continue as new
65
+ CONTINUE_AS_NEW_INITIATOR_WORKFLOW = 1;
66
+ // The workflow continued as new because it is retrying
67
+ CONTINUE_AS_NEW_INITIATOR_RETRY = 2;
68
+ // The workflow continued as new because cron has triggered a new execution
69
+ CONTINUE_AS_NEW_INITIATOR_CRON_SCHEDULE = 3;
70
+ }
71
+
72
+ // (-- api-linter: core::0216::synonyms=disabled
73
+ // aip.dev/not-precedent: There is WorkflowExecutionState already in another package. --)
74
+ enum WorkflowExecutionStatus {
75
+ WORKFLOW_EXECUTION_STATUS_UNSPECIFIED = 0;
76
+ // Value 1 is hardcoded in SQL persistence.
77
+ WORKFLOW_EXECUTION_STATUS_RUNNING = 1;
78
+ WORKFLOW_EXECUTION_STATUS_COMPLETED = 2;
79
+ WORKFLOW_EXECUTION_STATUS_FAILED = 3;
80
+ WORKFLOW_EXECUTION_STATUS_CANCELED = 4;
81
+ WORKFLOW_EXECUTION_STATUS_TERMINATED = 5;
82
+ WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW = 6;
83
+ WORKFLOW_EXECUTION_STATUS_TIMED_OUT = 7;
84
+ }
85
+
86
+ enum PendingActivityState {
87
+ PENDING_ACTIVITY_STATE_UNSPECIFIED = 0;
88
+ PENDING_ACTIVITY_STATE_SCHEDULED = 1;
89
+ PENDING_ACTIVITY_STATE_STARTED = 2;
90
+ PENDING_ACTIVITY_STATE_CANCEL_REQUESTED = 3;
91
+ }
92
+
93
+ enum PendingWorkflowTaskState {
94
+ PENDING_WORKFLOW_TASK_STATE_UNSPECIFIED = 0;
95
+ PENDING_WORKFLOW_TASK_STATE_SCHEDULED = 1;
96
+ PENDING_WORKFLOW_TASK_STATE_STARTED = 2;
97
+ }
98
+
99
+ enum HistoryEventFilterType {
100
+ HISTORY_EVENT_FILTER_TYPE_UNSPECIFIED = 0;
101
+ HISTORY_EVENT_FILTER_TYPE_ALL_EVENT = 1;
102
+ HISTORY_EVENT_FILTER_TYPE_CLOSE_EVENT = 2;
103
+ }
104
+
105
+ enum RetryState {
106
+ RETRY_STATE_UNSPECIFIED = 0;
107
+ RETRY_STATE_IN_PROGRESS = 1;
108
+ RETRY_STATE_NON_RETRYABLE_FAILURE = 2;
109
+ RETRY_STATE_TIMEOUT = 3;
110
+ RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED = 4;
111
+ RETRY_STATE_RETRY_POLICY_NOT_SET = 5;
112
+ RETRY_STATE_INTERNAL_SERVER_ERROR = 6;
113
+ RETRY_STATE_CANCEL_REQUESTED = 7;
114
+ }
115
+
116
+ enum TimeoutType {
117
+ TIMEOUT_TYPE_UNSPECIFIED = 0;
118
+ TIMEOUT_TYPE_START_TO_CLOSE = 1;
119
+ TIMEOUT_TYPE_SCHEDULE_TO_START = 2;
120
+ TIMEOUT_TYPE_SCHEDULE_TO_CLOSE = 3;
121
+ TIMEOUT_TYPE_HEARTBEAT = 4;
122
+ }
@@ -0,0 +1,108 @@
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
+ // These error details are supplied in google.rpc.Status#details as described in "Google APIs, Error Model" (https://cloud.google.com/apis/design/errors#error_model)
26
+ // and extend standard Error Details defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/error_details.proto
27
+
28
+ package temporal.api.errordetails.v1;
29
+
30
+ option go_package = "go.temporal.io/api/errordetails/v1;errordetails";
31
+ option java_package = "io.temporal.api.errordetails.v1";
32
+ option java_multiple_files = true;
33
+ option java_outer_classname = "MessageProto";
34
+ option ruby_package = "Temporal::Api::ErrorDetails::V1";
35
+ option csharp_namespace = "Temporal.Api.ErrorDetails.V1";
36
+
37
+ import "temporal/api/common/v1/message.proto";
38
+
39
+ import "temporal/api/enums/v1/failed_cause.proto";
40
+ import "temporal/api/enums/v1/namespace.proto";
41
+
42
+ message NotFoundFailure {
43
+ string current_cluster = 1;
44
+ string active_cluster = 2;
45
+ }
46
+
47
+ message WorkflowExecutionAlreadyStartedFailure {
48
+ string start_request_id = 1;
49
+ string run_id = 2;
50
+ }
51
+
52
+ message NamespaceNotActiveFailure {
53
+ string namespace = 1;
54
+ string current_cluster = 2;
55
+ string active_cluster = 3;
56
+ }
57
+
58
+ message NamespaceInvalidStateFailure {
59
+ string namespace = 1;
60
+ // Current state of the requested namespace.
61
+ temporal.api.enums.v1.NamespaceState state = 2;
62
+ // Allowed namespace states for requested operation.
63
+ // For example NAMESPACE_STATE_DELETED is forbidden for most operations but allowed for DescribeNamespace.
64
+ repeated temporal.api.enums.v1.NamespaceState allowed_states = 3;
65
+ }
66
+
67
+ message NamespaceNotFoundFailure {
68
+ string namespace = 1;
69
+ }
70
+
71
+ message NamespaceAlreadyExistsFailure {
72
+ }
73
+
74
+ message ClientVersionNotSupportedFailure {
75
+ string client_version = 1;
76
+ string client_name = 2;
77
+ string supported_versions = 3;
78
+ }
79
+
80
+ message ServerVersionNotSupportedFailure {
81
+ string server_version = 1;
82
+ string client_supported_server_versions = 2;
83
+ }
84
+
85
+ message CancellationAlreadyRequestedFailure {
86
+ }
87
+
88
+ message QueryFailedFailure {
89
+ }
90
+
91
+ message PermissionDeniedFailure {
92
+ string reason = 1;
93
+ }
94
+
95
+ message ResourceExhaustedFailure {
96
+ temporal.api.enums.v1.ResourceExhaustedCause cause = 1;
97
+ }
98
+
99
+ message SystemWorkflowFailure {
100
+ // WorkflowId and RunId of the Temporal system workflow performing the underlying operation.
101
+ // Looking up the info of the system workflow run may help identify the issue causing the failure.
102
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 1;
103
+ // Serialized error returned by the system workflow performing the underlying operation.
104
+ string workflow_error = 2;
105
+ }
106
+
107
+ message WorkflowNotReadyFailure {
108
+ }
@@ -0,0 +1,114 @@
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.failure.v1;
26
+
27
+ option go_package = "go.temporal.io/api/failure/v1;failure";
28
+ option java_package = "io.temporal.api.failure.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "MessageProto";
31
+ option ruby_package = "Temporal::Api::Failure::V1";
32
+ option csharp_namespace = "Temporal.Api.Failure.V1";
33
+
34
+ import "temporal/api/common/v1/message.proto";
35
+ import "temporal/api/enums/v1/workflow.proto";
36
+
37
+ message ApplicationFailureInfo {
38
+ string type = 1;
39
+ bool non_retryable = 2;
40
+ temporal.api.common.v1.Payloads details = 3;
41
+ }
42
+
43
+ message TimeoutFailureInfo {
44
+ temporal.api.enums.v1.TimeoutType timeout_type = 1;
45
+ temporal.api.common.v1.Payloads last_heartbeat_details = 2;
46
+ }
47
+
48
+ message CanceledFailureInfo {
49
+ temporal.api.common.v1.Payloads details = 1;
50
+ }
51
+
52
+ message TerminatedFailureInfo {
53
+ }
54
+
55
+ message ServerFailureInfo {
56
+ bool non_retryable = 1;
57
+ }
58
+
59
+ message ResetWorkflowFailureInfo {
60
+ temporal.api.common.v1.Payloads last_heartbeat_details = 1;
61
+ }
62
+
63
+ message ActivityFailureInfo {
64
+ int64 scheduled_event_id = 1;
65
+ int64 started_event_id = 2;
66
+ string identity = 3;
67
+ temporal.api.common.v1.ActivityType activity_type = 4;
68
+ string activity_id = 5;
69
+ temporal.api.enums.v1.RetryState retry_state = 6;
70
+ }
71
+
72
+ message ChildWorkflowExecutionFailureInfo {
73
+ string namespace = 1;
74
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
75
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
76
+ int64 initiated_event_id = 4;
77
+ int64 started_event_id = 5;
78
+ temporal.api.enums.v1.RetryState retry_state = 6;
79
+ }
80
+
81
+ message Failure {
82
+ string message = 1;
83
+ // The source this Failure originated in, e.g. TypeScriptSDK / JavaSDK
84
+ // In some SDKs this is used to rehydrate the stack trace into an exception object.
85
+ string source = 2;
86
+ string stack_trace = 3;
87
+ // Alternative way to supply `message` and `stack_trace` and possibly other attributes, used for encryption of
88
+ // errors originating in user code which might contain sensitive information.
89
+ // The `encoded_attributes` Payload could represent any serializable object, e.g. JSON object or a `Failure` proto
90
+ // message.
91
+ //
92
+ // SDK authors:
93
+ // - The SDK should provide a default `encodeFailureAttributes` and `decodeFailureAttributes` implementation that:
94
+ // - Uses a JSON object to represent `{ message, stack_trace }`.
95
+ // - Overwrites the original message with "Encoded failure" to indicate that more information could be extracted.
96
+ // - Overwrites the original stack_trace with an empty string.
97
+ // - The resulting JSON object is converted to Payload using the default PayloadConverter and should be processed
98
+ // by the user-provided PayloadCodec
99
+ //
100
+ // - If there's demand, we could allow overriding the default SDK implementation to encode other opaque Failure attributes.
101
+ // (-- api-linter: core::0203::optional=disabled --)
102
+ temporal.api.common.v1.Payload encoded_attributes = 20;
103
+ Failure cause = 4;
104
+ oneof failure_info {
105
+ ApplicationFailureInfo application_failure_info = 5;
106
+ TimeoutFailureInfo timeout_failure_info = 6;
107
+ CanceledFailureInfo canceled_failure_info = 7;
108
+ TerminatedFailureInfo terminated_failure_info = 8;
109
+ ServerFailureInfo server_failure_info = 9;
110
+ ResetWorkflowFailureInfo reset_workflow_failure_info = 10;
111
+ ActivityFailureInfo activity_failure_info = 11;
112
+ ChildWorkflowExecutionFailureInfo child_workflow_execution_failure_info = 12;
113
+ }
114
+ }
@@ -0,0 +1,56 @@
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.filter.v1;
26
+
27
+ option go_package = "go.temporal.io/api/filter/v1;filter";
28
+ option java_package = "io.temporal.api.filter.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "MessageProto";
31
+ option ruby_package = "Temporal::Api::Filter::V1";
32
+ option csharp_namespace = "Temporal.Api.Filter.V1";
33
+
34
+ import "google/protobuf/timestamp.proto";
35
+
36
+ import "dependencies/gogoproto/gogo.proto";
37
+
38
+ import "temporal/api/enums/v1/workflow.proto";
39
+
40
+ message WorkflowExecutionFilter {
41
+ string workflow_id = 1;
42
+ string run_id = 2;
43
+ }
44
+
45
+ message WorkflowTypeFilter {
46
+ string name = 1;
47
+ }
48
+
49
+ message StartTimeFilter {
50
+ google.protobuf.Timestamp earliest_time = 1 [(gogoproto.stdtime) = true];
51
+ google.protobuf.Timestamp latest_time = 2 [(gogoproto.stdtime) = true];
52
+ }
53
+
54
+ message StatusFilter {
55
+ temporal.api.enums.v1.WorkflowExecutionStatus status = 1;
56
+ }