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,297 @@
1
+ syntax = "proto3";
2
+
3
+ /**
4
+ * Definitions for commands from a workflow in lang SDK to core. While a workflow processes a batch
5
+ * of activation jobs, it accumulates these commands to be sent back to core to conclude that
6
+ * activation.
7
+ */
8
+ package coresdk.workflow_commands;
9
+
10
+ import "google/protobuf/duration.proto";
11
+ import "google/protobuf/timestamp.proto";
12
+ import "temporal/api/common/v1/message.proto";
13
+ import "temporal/api/enums/v1/workflow.proto";
14
+ import "temporal/api/failure/v1/message.proto";
15
+ import "temporal/sdk/core/child_workflow/child_workflow.proto";
16
+ import "temporal/sdk/core/common/common.proto";
17
+
18
+ message WorkflowCommand {
19
+ oneof variant {
20
+ StartTimer start_timer = 1;
21
+ ScheduleActivity schedule_activity = 2;
22
+ QueryResult respond_to_query = 3;
23
+ RequestCancelActivity request_cancel_activity = 4;
24
+ CancelTimer cancel_timer = 5;
25
+ CompleteWorkflowExecution complete_workflow_execution = 6;
26
+ FailWorkflowExecution fail_workflow_execution = 7;
27
+ ContinueAsNewWorkflowExecution continue_as_new_workflow_execution = 8;
28
+ CancelWorkflowExecution cancel_workflow_execution = 9;
29
+ SetPatchMarker set_patch_marker = 10;
30
+ StartChildWorkflowExecution start_child_workflow_execution = 11;
31
+ CancelChildWorkflowExecution cancel_child_workflow_execution = 12;
32
+ RequestCancelExternalWorkflowExecution request_cancel_external_workflow_execution = 13;
33
+ SignalExternalWorkflowExecution signal_external_workflow_execution = 14;
34
+ CancelSignalWorkflow cancel_signal_workflow = 15;
35
+ ScheduleLocalActivity schedule_local_activity = 16;
36
+ RequestCancelLocalActivity request_cancel_local_activity = 17;
37
+ UpsertWorkflowSearchAttributes upsert_workflow_search_attributes = 18;
38
+ }
39
+ }
40
+
41
+ message StartTimer {
42
+ /// Lang's incremental sequence number, used as the operation identifier
43
+ uint32 seq = 1;
44
+ google.protobuf.Duration start_to_fire_timeout = 2;
45
+ }
46
+
47
+ message CancelTimer {
48
+ /// Lang's incremental sequence number as passed to `StartTimer`
49
+ uint32 seq = 1;
50
+ }
51
+
52
+ message ScheduleActivity {
53
+ /// Lang's incremental sequence number, used as the operation identifier
54
+ uint32 seq = 1;
55
+ string activity_id = 2;
56
+ string activity_type = 3;
57
+ string namespace = 4;
58
+ // The name of the task queue to place this activity request in
59
+ string task_queue = 5;
60
+ map<string, temporal.api.common.v1.Payload> headers = 6;
61
+ /// Arguments/input to the activity. Called "input" upstream.
62
+ repeated temporal.api.common.v1.Payload arguments = 7;
63
+ /// Indicates how long the caller is willing to wait for an activity completion. Limits how long
64
+ /// retries will be attempted. Either this or start_to_close_timeout_seconds must be specified.
65
+ /// When not specified defaults to the workflow execution timeout.
66
+ google.protobuf.Duration schedule_to_close_timeout = 8;
67
+ /// Limits time an activity task can stay in a task queue before a worker picks it up. This
68
+ /// timeout is always non retryable as all a retry would achieve is to put it back into the same
69
+ /// queue. Defaults to schedule_to_close_timeout or workflow execution timeout if not specified.
70
+ google.protobuf.Duration schedule_to_start_timeout = 9;
71
+ /// Maximum time an activity is allowed to execute after a pick up by a worker. This timeout is
72
+ /// always retryable. Either this or schedule_to_close_timeout must be specified.
73
+ google.protobuf.Duration start_to_close_timeout = 10;
74
+ /// Maximum time allowed between successful worker heartbeats.
75
+ google.protobuf.Duration heartbeat_timeout = 11;
76
+ /// Activities are provided by a default retry policy controlled through the service dynamic
77
+ /// configuration. Retries are happening up to schedule_to_close_timeout. To disable retries set
78
+ /// retry_policy.maximum_attempts to 1.
79
+ temporal.api.common.v1.RetryPolicy retry_policy = 12;
80
+ /// Defines how the workflow will wait (or not) for cancellation of the activity to be confirmed
81
+ ActivityCancellationType cancellation_type = 13;
82
+ /// If set, the worker will not tell the service that it can immediately start executing this
83
+ /// activity. When unset/default, workers will always attempt to do so if activity execution
84
+ /// slots are available.
85
+ bool do_not_eagerly_execute = 14;
86
+ }
87
+
88
+ message ScheduleLocalActivity {
89
+ /// Lang's incremental sequence number, used as the operation identifier
90
+ uint32 seq = 1;
91
+ string activity_id = 2;
92
+ string activity_type = 3;
93
+ /// Local activities can start with a non-1 attempt, if lang has been told to backoff using
94
+ /// a timer before retrying. It should pass the attempt number from a `DoBackoff` activity
95
+ /// resolution.
96
+ uint32 attempt = 4;
97
+ /// If this local activity is a retry (as per the attempt field) this needs to be the original
98
+ /// scheduling time (as provided in `DoBackoff`)
99
+ google.protobuf.Timestamp original_schedule_time = 5;
100
+ map<string, temporal.api.common.v1.Payload> headers = 6;
101
+ /// Arguments/input to the activity.
102
+ repeated temporal.api.common.v1.Payload arguments = 7;
103
+ /// Indicates how long the caller is willing to wait for local activity completion. Limits how
104
+ /// long retries will be attempted. When not specified defaults to the workflow execution
105
+ /// timeout (which may be unset).
106
+ google.protobuf.Duration schedule_to_close_timeout = 8;
107
+ /// Limits time the local activity can idle internally before being executed. That can happen if
108
+ /// the worker is currently at max concurrent local activity executions. This timeout is always
109
+ /// non retryable as all a retry would achieve is to put it back into the same queue. Defaults
110
+ /// to `schedule_to_close_timeout` if not specified and that is set. Must be <=
111
+ /// `schedule_to_close_timeout` when set, otherwise, it will be clamped down.
112
+ google.protobuf.Duration schedule_to_start_timeout = 9;
113
+ /// Maximum time the local activity is allowed to execute after the task is dispatched. This
114
+ /// timeout is always retryable. Either or both of `schedule_to_close_timeout` and this must be
115
+ /// specified. If set, this must be <= `schedule_to_close_timeout`, otherwise, it will be
116
+ /// clamped down.
117
+ google.protobuf.Duration start_to_close_timeout = 10;
118
+ /// Specify a retry policy for the local activity. By default local activities will be retried
119
+ /// indefinitely.
120
+ temporal.api.common.v1.RetryPolicy retry_policy = 11;
121
+ /// If the activity is retrying and backoff would exceed this value, lang will be told to
122
+ /// schedule a timer and retry the activity after. Otherwise, backoff will happen internally in
123
+ /// core. Defaults to 1 minute.
124
+ google.protobuf.Duration local_retry_threshold = 12;
125
+ /// Defines how the workflow will wait (or not) for cancellation of the activity to be
126
+ /// confirmed. Lang should default this to `WAIT_CANCELLATION_COMPLETED`, even though proto
127
+ /// will default to `TRY_CANCEL` automatically.
128
+ ActivityCancellationType cancellation_type = 13;
129
+ }
130
+
131
+ enum ActivityCancellationType {
132
+ /// Initiate a cancellation request and immediately report cancellation to the workflow.
133
+ TRY_CANCEL = 0;
134
+ /// Wait for activity cancellation completion. Note that activity must heartbeat to receive a
135
+ /// cancellation notification. This can block the cancellation for a long time if activity
136
+ /// doesn't heartbeat or chooses to ignore the cancellation request.
137
+ WAIT_CANCELLATION_COMPLETED = 1;
138
+ /// Do not request cancellation of the activity and immediately report cancellation to the
139
+ /// workflow
140
+ ABANDON = 2;
141
+ }
142
+
143
+ message RequestCancelActivity {
144
+ /// Lang's incremental sequence number as passed to `ScheduleActivity`
145
+ uint32 seq = 1;
146
+ }
147
+
148
+ message RequestCancelLocalActivity {
149
+ /// Lang's incremental sequence number as passed to `ScheduleLocalActivity`
150
+ uint32 seq = 1;
151
+ }
152
+
153
+ message QueryResult {
154
+ /// Corresponds to the id provided in the activation job
155
+ string query_id = 1;
156
+ oneof variant {
157
+ QuerySuccess succeeded = 2;
158
+ temporal.api.failure.v1.Failure failed = 3;
159
+ }
160
+ }
161
+
162
+ message QuerySuccess {
163
+ temporal.api.common.v1.Payload response = 1;
164
+ }
165
+
166
+ /// Issued when the workflow completes successfully
167
+ message CompleteWorkflowExecution {
168
+ temporal.api.common.v1.Payload result = 1;
169
+ }
170
+
171
+ /// Issued when the workflow errors out
172
+ message FailWorkflowExecution {
173
+ temporal.api.failure.v1.Failure failure = 1;
174
+ }
175
+
176
+ // Continue the workflow as a new execution
177
+ message ContinueAsNewWorkflowExecution {
178
+ // The identifier the lang-specific sdk uses to execute workflow code
179
+ string workflow_type = 1;
180
+ // Task queue for the new workflow execution
181
+ string task_queue = 2;
182
+ // Inputs to the workflow code. Should be specified. Will not re-use old arguments, as that
183
+ // typically wouldn't make any sense.
184
+ repeated temporal.api.common.v1.Payload arguments = 3;
185
+ // Timeout for a single run of the new workflow. Will not re-use current workflow's value.
186
+ google.protobuf.Duration workflow_run_timeout = 4;
187
+ // Timeout of a single workflow task. Will not re-use current workflow's value.
188
+ google.protobuf.Duration workflow_task_timeout = 5;
189
+ // If set, the new workflow will have this memo. If unset, re-uses the current workflow's memo
190
+ map<string, temporal.api.common.v1.Payload> memo = 6;
191
+ // If set, the new workflow will have these headers. Will *not* re-use current workflow's
192
+ // headers otherwise.
193
+ map<string, temporal.api.common.v1.Payload> headers = 7;
194
+ // If set, the new workflow will have these search attributes. If unset, re-uses the current
195
+ // workflow's search attributes.
196
+ map<string, temporal.api.common.v1.Payload> search_attributes = 8;
197
+ // If set, the new workflow will have this retry policy. If unset, re-uses the current
198
+ // workflow's retry policy.
199
+ temporal.api.common.v1.RetryPolicy retry_policy = 9;
200
+ }
201
+
202
+ /// Indicate a workflow has completed as cancelled. Generally sent as a response to an activation
203
+ /// containing a cancellation job.
204
+ message CancelWorkflowExecution {}
205
+
206
+ /// A request to set/check if a certain patch is present or not
207
+ message SetPatchMarker {
208
+ // A user-chosen identifier for this patch. If the same identifier is used in multiple places in
209
+ // the code, those places are considered to be versioned as one unit. IE: The check call will
210
+ // return the same result for all of them
211
+ string patch_id = 1;
212
+ // Can be set to true to indicate that branches using this change are being removed, and all
213
+ // future worker deployments will only have the "with change" code in them.
214
+ bool deprecated = 2;
215
+ }
216
+
217
+ /// Start a child workflow execution
218
+ message StartChildWorkflowExecution {
219
+ /// Lang's incremental sequence number, used as the operation identifier
220
+ uint32 seq = 1;
221
+ string namespace = 2;
222
+ string workflow_id = 3;
223
+ string workflow_type = 4;
224
+ string task_queue = 5;
225
+ repeated temporal.api.common.v1.Payload input = 6;
226
+ /// Total workflow execution timeout including retries and continue as new.
227
+ google.protobuf.Duration workflow_execution_timeout = 7;
228
+ /// Timeout of a single workflow run.
229
+ google.protobuf.Duration workflow_run_timeout = 8;
230
+ /// Timeout of a single workflow task.
231
+ google.protobuf.Duration workflow_task_timeout = 9;
232
+ /// Default: PARENT_CLOSE_POLICY_TERMINATE.
233
+ child_workflow.ParentClosePolicy parent_close_policy = 10;
234
+ // string control = 11; (unused from StartChildWorkflowExecutionCommandAttributes)
235
+ // Default: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE.
236
+ temporal.api.enums.v1.WorkflowIdReusePolicy workflow_id_reuse_policy = 12;
237
+ temporal.api.common.v1.RetryPolicy retry_policy = 13;
238
+ string cron_schedule = 14;
239
+ /// Header fields
240
+ map<string, temporal.api.common.v1.Payload> headers = 15;
241
+ /// Memo fields
242
+ map<string, temporal.api.common.v1.Payload> memo = 16;
243
+ /// Search attributes
244
+ map<string, temporal.api.common.v1.Payload> search_attributes = 17;
245
+ /// Defines behaviour of the underlying workflow when child workflow cancellation has been requested.
246
+ child_workflow.ChildWorkflowCancellationType cancellation_type = 18;
247
+ }
248
+
249
+ /// Cancel a child workflow
250
+ message CancelChildWorkflowExecution {
251
+ // Sequence number as given to the `StartChildWorkflowExecution` command
252
+ uint32 child_workflow_seq = 1;
253
+ }
254
+
255
+ /// Request cancellation of an external workflow execution (which may be a started child)
256
+ message RequestCancelExternalWorkflowExecution {
257
+ /// Lang's incremental sequence number, used as the operation identifier
258
+ uint32 seq = 1;
259
+ // What workflow is being targeted
260
+ oneof target {
261
+ // A specific workflow instance
262
+ common.NamespacedWorkflowExecution workflow_execution = 2;
263
+ // The desired target must be a child of the issuing workflow, and this is its workflow id
264
+ string child_workflow_id = 3;
265
+ }
266
+ }
267
+
268
+ /// Send a signal to an external or child workflow
269
+ message SignalExternalWorkflowExecution {
270
+ /// Lang's incremental sequence number, used as the operation identifier
271
+ uint32 seq = 1;
272
+ // What workflow is being targeted
273
+ oneof target {
274
+ // A specific workflow instance
275
+ common.NamespacedWorkflowExecution workflow_execution = 2;
276
+ // The desired target must be a child of the issuing workflow, and this is its workflow id
277
+ string child_workflow_id = 3;
278
+ }
279
+ /// Name of the signal handler
280
+ string signal_name = 4;
281
+ /// Arguments for the handler
282
+ repeated temporal.api.common.v1.Payload args = 5;
283
+ /// Headers to attach to the signal
284
+ map<string, temporal.api.common.v1.Payload> headers = 6;
285
+ }
286
+
287
+ /// Can be used to cancel not-already-sent `SignalExternalWorkflowExecution` commands
288
+ message CancelSignalWorkflow {
289
+ /// Lang's incremental sequence number as passed to `SignalExternalWorkflowExecution`
290
+ uint32 seq = 1;
291
+ }
292
+
293
+ message UpsertWorkflowSearchAttributes {
294
+ /// SearchAttributes fields - equivalent to indexed_fields on api. Key = search index, Value =
295
+ /// value?
296
+ map<string, temporal.api.common.v1.Payload> search_attributes = 1;
297
+ }
@@ -0,0 +1,29 @@
1
+ syntax = "proto3";
2
+
3
+ package coresdk.workflow_completion;
4
+
5
+ import "temporal/api/failure/v1/message.proto";
6
+ import "temporal/sdk/core/common/common.proto";
7
+ import "temporal/sdk/core/workflow_commands/workflow_commands.proto";
8
+
9
+ /// Result of a single workflow activation, reported from lang to core
10
+ message WorkflowActivationCompletion {
11
+ // The run id from the workflow activation you are completing
12
+ string run_id = 1;
13
+ oneof status {
14
+ Success successful = 2;
15
+ Failure failed = 3;
16
+ }
17
+ }
18
+
19
+ /// Successful workflow activation with a list of commands generated by the workflow execution
20
+ message Success {
21
+ // A list of commands to send back to the temporal server
22
+ repeated workflow_commands.WorkflowCommand commands = 1;
23
+ }
24
+
25
+ /// Failure to activate or execute a workflow
26
+ message Failure {
27
+ temporal.api.failure.v1.Failure failure = 1;
28
+ }
29
+
@@ -0,0 +1,38 @@
1
+ - included_paths:
2
+ - '**/*.proto'
3
+ disabled_rules:
4
+ - 'core::0192::has-comments'
5
+
6
+ - included_paths:
7
+ - '**/message.proto'
8
+ disabled_rules:
9
+ - 'core::0122::name-suffix'
10
+ - 'core::0123::resource-annotation'
11
+
12
+ - included_paths:
13
+ - '**/testservice/v1/request_response.proto'
14
+ disabled_rules:
15
+ - 'core::0122::name-suffix'
16
+ - 'core::0131::request-name-required'
17
+ - 'core::0131::request-unknown-fields'
18
+ - 'core::0132::request-parent-required'
19
+ - 'core::0132::request-unknown-fields'
20
+ - 'core::0132::response-unknown-fields'
21
+ - 'core::0134::request-unknown-fields'
22
+ - 'core::0158::request-page-size-field'
23
+ - 'core::0158::request-page-token-field'
24
+ - 'core::0158::response-next-page-token-field'
25
+ - 'core::0158::response-plural-first-field'
26
+ - 'core::0158::response-repeated-first-field'
27
+
28
+ - included_paths:
29
+ - '**/testservice/v1/service.proto'
30
+ disabled_rules:
31
+ - 'core::0127::http-annotation'
32
+ - 'core::0131::method-signature'
33
+ - 'core::0131::response-message-name'
34
+
35
+ - included_paths:
36
+ - 'dependencies/gogoproto/gogo.proto'
37
+ disabled_rules:
38
+ - 'all'
@@ -0,0 +1,13 @@
1
+ version: v1beta1
2
+ build:
3
+ roots:
4
+ - .
5
+ lint:
6
+ ignore:
7
+ - dependencies
8
+ use:
9
+ - DEFAULT
10
+ breaking:
11
+ ignore:
12
+ use:
13
+ - PACKAGE
@@ -0,0 +1,141 @@
1
+ // Protocol Buffers for Go with Gadgets
2
+ //
3
+ // Copyright (c) 2013, The GoGo Authors. All rights reserved.
4
+ // http://github.com/temporalio/gogo-protobuf
5
+ //
6
+ // Redistribution and use in source and binary forms, with or without
7
+ // modification, are permitted provided that the following conditions are
8
+ // met:
9
+ //
10
+ // * Redistributions of source code must retain the above copyright
11
+ // notice, this list of conditions and the following disclaimer.
12
+ // * Redistributions in binary form must reproduce the above
13
+ // copyright notice, this list of conditions and the following disclaimer
14
+ // in the documentation and/or other materials provided with the
15
+ // distribution.
16
+ //
17
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+
29
+ syntax = "proto2";
30
+ package gogoproto;
31
+
32
+ import "google/protobuf/descriptor.proto";
33
+
34
+ option go_package = "github.com/gogo/protobuf/gogoproto";
35
+
36
+ extend google.protobuf.EnumOptions {
37
+ optional bool goproto_enum_prefix = 62001;
38
+ optional bool goproto_enum_stringer = 62021;
39
+ optional bool enum_stringer = 62022;
40
+ optional string enum_customname = 62023;
41
+ optional bool enumdecl = 62024;
42
+ }
43
+
44
+ extend google.protobuf.EnumValueOptions {
45
+ optional string enumvalue_customname = 66001;
46
+ }
47
+
48
+ extend google.protobuf.FileOptions {
49
+ optional bool goproto_getters_all = 63001;
50
+ optional bool goproto_enum_prefix_all = 63002;
51
+ optional bool goproto_stringer_all = 63003;
52
+ optional bool verbose_equal_all = 63004;
53
+ optional bool face_all = 63005;
54
+ optional bool gostring_all = 63006;
55
+ optional bool populate_all = 63007;
56
+ optional bool stringer_all = 63008;
57
+ optional bool onlyone_all = 63009;
58
+
59
+ optional bool equal_all = 63013;
60
+ optional bool description_all = 63014;
61
+ optional bool testgen_all = 63015;
62
+ optional bool benchgen_all = 63016;
63
+ optional bool marshaler_all = 63017;
64
+ optional bool unmarshaler_all = 63018;
65
+ optional bool stable_marshaler_all = 63019;
66
+
67
+ optional bool sizer_all = 63020;
68
+
69
+ optional bool goproto_enum_stringer_all = 63021;
70
+ optional bool enum_stringer_all = 63022;
71
+
72
+ optional bool unsafe_marshaler_all = 63023;
73
+ optional bool unsafe_unmarshaler_all = 63024;
74
+
75
+ optional bool goproto_extensions_map_all = 63025;
76
+ optional bool goproto_unrecognized_all = 63026;
77
+ optional bool gogoproto_import = 63027;
78
+ optional bool protosizer_all = 63028;
79
+ optional bool compare_all = 63029;
80
+ optional bool typedecl_all = 63030;
81
+ optional bool enumdecl_all = 63031;
82
+
83
+ optional bool goproto_registration = 63032;
84
+ optional bool messagename_all = 63033;
85
+
86
+ optional bool goproto_sizecache_all = 63034;
87
+ optional bool goproto_unkeyed_all = 63035;
88
+ }
89
+
90
+ extend google.protobuf.MessageOptions {
91
+ optional bool goproto_getters = 64001;
92
+ optional bool goproto_stringer = 64003;
93
+ optional bool verbose_equal = 64004;
94
+ optional bool face = 64005;
95
+ optional bool gostring = 64006;
96
+ optional bool populate = 64007;
97
+ optional bool stringer = 67008;
98
+ optional bool onlyone = 64009;
99
+
100
+ optional bool equal = 64013;
101
+ optional bool description = 64014;
102
+ optional bool testgen = 64015;
103
+ optional bool benchgen = 64016;
104
+ optional bool marshaler = 64017;
105
+ optional bool unmarshaler = 64018;
106
+ optional bool stable_marshaler = 64019;
107
+
108
+ optional bool sizer = 64020;
109
+
110
+ optional bool unsafe_marshaler = 64023;
111
+ optional bool unsafe_unmarshaler = 64024;
112
+
113
+ optional bool goproto_extensions_map = 64025;
114
+ optional bool goproto_unrecognized = 64026;
115
+
116
+ optional bool protosizer = 64028;
117
+ optional bool compare = 64029;
118
+
119
+ optional bool typedecl = 64030;
120
+
121
+ optional bool messagename = 64033;
122
+
123
+ optional bool goproto_sizecache = 64034;
124
+ optional bool goproto_unkeyed = 64035;
125
+ }
126
+
127
+ extend google.protobuf.FieldOptions {
128
+ optional bool nullable = 65001;
129
+ optional bool embed = 65002;
130
+ optional string customtype = 65003;
131
+ optional string customname = 65004;
132
+ optional string jsontag = 65005;
133
+ optional string moretags = 65006;
134
+ optional string casttype = 65007;
135
+ optional string castkey = 65008;
136
+ optional string castvalue = 65009;
137
+
138
+ optional bool stdtime = 65010;
139
+ optional bool stdduration = 65011;
140
+ optional bool wktpointer = 65012;
141
+ }
@@ -0,0 +1,63 @@
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.testservice.v1;
26
+
27
+ option go_package = "go.temporal.io/api/testservice/v1;testservice";
28
+ option java_package = "io.temporal.api.testservice.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "RequestResponseProto";
31
+ option ruby_package = "Temporal::Api::TestService::V1";
32
+ option csharp_namespace = "Temporal.Api.TestService.V1";
33
+
34
+ import "google/protobuf/duration.proto";
35
+ import "google/protobuf/timestamp.proto";
36
+ import "dependencies/gogoproto/gogo.proto";
37
+
38
+ message LockTimeSkippingRequest {
39
+ }
40
+
41
+ message LockTimeSkippingResponse {
42
+ }
43
+
44
+ message UnlockTimeSkippingRequest {
45
+ }
46
+
47
+ message UnlockTimeSkippingResponse {
48
+ }
49
+
50
+ message SleepUntilRequest {
51
+ google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true];
52
+ }
53
+
54
+ message SleepRequest {
55
+ google.protobuf.Duration duration = 1 [(gogoproto.stdduration) = true];
56
+ }
57
+
58
+ message SleepResponse {
59
+ }
60
+
61
+ message GetCurrentTimeResponse {
62
+ google.protobuf.Timestamp time = 1 [(gogoproto.stdtime) = true];
63
+ }
@@ -0,0 +1,90 @@
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.testservice.v1;
26
+
27
+ option go_package = "go.temporal.io/api/testservice/v1;testservice";
28
+ option java_package = "io.temporal.api.testservice.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "ServiceProto";
31
+ option ruby_package = "Temporal::Api::TestService::V1";
32
+ option csharp_namespace = "Temporal.Api.TestService.V1";
33
+
34
+ import "temporal/api/testservice/v1/request_response.proto";
35
+ import "google/protobuf/empty.proto";
36
+
37
+ // TestService API defines an interface supported only by the Temporal Test Server.
38
+ // It provides functionality needed or supported for testing purposes only.
39
+ //
40
+ // This is an EXPERIMENTAL API.
41
+ service TestService {
42
+ // LockTimeSkipping increments Time Locking Counter by one.
43
+ //
44
+ // If Time Locking Counter is positive, time skipping is locked (disabled).
45
+ // When time skipping is disabled, the time in test server is moving normally, with a real time pace.
46
+ // Test Server is typically started with locked time skipping and Time Locking Counter = 1.
47
+ //
48
+ // LockTimeSkipping and UnlockTimeSkipping calls are counted.
49
+ rpc LockTimeSkipping (LockTimeSkippingRequest) returns (LockTimeSkippingResponse) {
50
+ }
51
+
52
+ // UnlockTimeSkipping decrements Time Locking Counter by one.
53
+ //
54
+ // If the counter reaches 0, it unlocks time skipping and fast forwards time.
55
+ // LockTimeSkipping and UnlockTimeSkipping calls are counted. Calling UnlockTimeSkipping does not
56
+ // guarantee that time is going to be fast forwarded as another lock can be holding it.
57
+ //
58
+ // Time Locking Counter can't be negative, unbalanced calls to UnlockTimeSkipping will lead to rpc call failure
59
+ rpc UnlockTimeSkipping (UnlockTimeSkippingRequest) returns (UnlockTimeSkippingResponse) {
60
+ }
61
+
62
+ // This call returns only when the Test Server Time advances by the specified duration.
63
+ // This is an EXPERIMENTAL API.
64
+ rpc Sleep (SleepRequest) returns (SleepResponse) {
65
+ }
66
+
67
+ // This call returns only when the Test Server Time advances to the specified timestamp.
68
+ // If the current Test Server Time is beyond the specified timestamp, returns immediately.
69
+ // This is an EXPERIMENTAL API.
70
+ rpc SleepUntil (SleepUntilRequest) returns (SleepResponse) {
71
+ }
72
+
73
+ // UnlockTimeSkippingWhileSleep decreases time locking counter by one and increases it back
74
+ // once the Test Server Time advances by the duration specified in the request.
75
+ //
76
+ // This call returns only when the Test Server Time advances by the specified duration.
77
+ //
78
+ // If it is called when Time Locking Counter is
79
+ // - more than 1 and no other unlocks are coming in, rpc call will block for the specified duration, time will not be fast forwarded.
80
+ // - 1, it will lead to fast forwarding of the time by the duration specified in the request and quick return of this rpc call.
81
+ // - 0 will lead to rpc call failure same way as an unbalanced UnlockTimeSkipping.
82
+ rpc UnlockTimeSkippingWithSleep (SleepRequest) returns (SleepResponse) {
83
+ }
84
+
85
+ // GetCurrentTime returns the current Temporal Test Server time
86
+ //
87
+ // This time might not be equal to {@link System#currentTimeMillis()} due to time skipping.
88
+ rpc GetCurrentTime (google.protobuf.Empty) returns (GetCurrentTimeResponse) {
89
+ }
90
+ }
@@ -0,0 +1 @@
1
+ imports_granularity="Crate"