temporalio 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (316) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +130 -0
  3. data/bridge/Cargo.lock +2865 -0
  4. data/bridge/Cargo.toml +26 -0
  5. data/bridge/sdk-core/ARCHITECTURE.md +76 -0
  6. data/bridge/sdk-core/Cargo.lock +2606 -0
  7. data/bridge/sdk-core/Cargo.toml +2 -0
  8. data/bridge/sdk-core/LICENSE.txt +23 -0
  9. data/bridge/sdk-core/README.md +107 -0
  10. data/bridge/sdk-core/arch_docs/diagrams/README.md +10 -0
  11. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +40 -0
  12. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +1 -0
  13. data/bridge/sdk-core/arch_docs/sticky_queues.md +51 -0
  14. data/bridge/sdk-core/bridge-ffi/Cargo.toml +24 -0
  15. data/bridge/sdk-core/bridge-ffi/LICENSE.txt +23 -0
  16. data/bridge/sdk-core/bridge-ffi/build.rs +25 -0
  17. data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +249 -0
  18. data/bridge/sdk-core/bridge-ffi/src/lib.rs +825 -0
  19. data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +211 -0
  20. data/bridge/sdk-core/client/Cargo.toml +40 -0
  21. data/bridge/sdk-core/client/LICENSE.txt +23 -0
  22. data/bridge/sdk-core/client/src/lib.rs +1294 -0
  23. data/bridge/sdk-core/client/src/metrics.rs +165 -0
  24. data/bridge/sdk-core/client/src/raw.rs +931 -0
  25. data/bridge/sdk-core/client/src/retry.rs +674 -0
  26. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +185 -0
  27. data/bridge/sdk-core/core/Cargo.toml +116 -0
  28. data/bridge/sdk-core/core/LICENSE.txt +23 -0
  29. data/bridge/sdk-core/core/benches/workflow_replay.rs +73 -0
  30. data/bridge/sdk-core/core/src/abstractions.rs +166 -0
  31. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +911 -0
  32. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +221 -0
  33. data/bridge/sdk-core/core/src/core_tests/determinism.rs +107 -0
  34. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +515 -0
  35. data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
  36. data/bridge/sdk-core/core/src/core_tests/queries.rs +736 -0
  37. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +65 -0
  38. data/bridge/sdk-core/core/src/core_tests/workers.rs +259 -0
  39. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +124 -0
  40. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +2070 -0
  41. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
  42. data/bridge/sdk-core/core/src/lib.rs +175 -0
  43. data/bridge/sdk-core/core/src/log_export.rs +62 -0
  44. data/bridge/sdk-core/core/src/pollers/mod.rs +54 -0
  45. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +297 -0
  46. data/bridge/sdk-core/core/src/protosext/mod.rs +428 -0
  47. data/bridge/sdk-core/core/src/replay/mod.rs +71 -0
  48. data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
  49. data/bridge/sdk-core/core/src/telemetry/metrics.rs +383 -0
  50. data/bridge/sdk-core/core/src/telemetry/mod.rs +412 -0
  51. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +77 -0
  52. data/bridge/sdk-core/core/src/test_help/mod.rs +875 -0
  53. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +580 -0
  54. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +1042 -0
  55. data/bridge/sdk-core/core/src/worker/activities.rs +464 -0
  56. data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
  57. data/bridge/sdk-core/core/src/worker/client.rs +347 -0
  58. data/bridge/sdk-core/core/src/worker/mod.rs +566 -0
  59. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
  60. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +110 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +458 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +911 -0
  63. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +298 -0
  64. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +171 -0
  65. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +860 -0
  66. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +140 -0
  67. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +161 -0
  68. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +133 -0
  69. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1448 -0
  70. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +342 -0
  71. data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +127 -0
  72. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +712 -0
  73. data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +71 -0
  74. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +443 -0
  75. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +439 -0
  76. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +169 -0
  77. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +246 -0
  78. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +96 -0
  79. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +1184 -0
  80. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +277 -0
  81. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +198 -0
  82. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +647 -0
  83. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1143 -0
  84. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +145 -0
  85. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +88 -0
  86. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +940 -0
  87. data/bridge/sdk-core/core-api/Cargo.toml +31 -0
  88. data/bridge/sdk-core/core-api/LICENSE.txt +23 -0
  89. data/bridge/sdk-core/core-api/src/errors.rs +95 -0
  90. data/bridge/sdk-core/core-api/src/lib.rs +151 -0
  91. data/bridge/sdk-core/core-api/src/worker.rs +135 -0
  92. data/bridge/sdk-core/etc/deps.svg +187 -0
  93. data/bridge/sdk-core/etc/dynamic-config.yaml +2 -0
  94. data/bridge/sdk-core/etc/otel-collector-config.yaml +36 -0
  95. data/bridge/sdk-core/etc/prometheus.yaml +6 -0
  96. data/bridge/sdk-core/fsm/Cargo.toml +18 -0
  97. data/bridge/sdk-core/fsm/LICENSE.txt +23 -0
  98. data/bridge/sdk-core/fsm/README.md +3 -0
  99. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +27 -0
  100. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +23 -0
  101. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +647 -0
  102. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +8 -0
  103. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +18 -0
  104. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +12 -0
  105. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +41 -0
  106. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +14 -0
  107. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +11 -0
  108. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +32 -0
  109. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +31 -0
  110. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +46 -0
  111. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +29 -0
  112. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +12 -0
  113. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +32 -0
  114. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +18 -0
  115. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +5 -0
  116. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +11 -0
  117. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
  118. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +11 -0
  119. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
  120. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +14 -0
  121. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +23 -0
  122. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +249 -0
  123. data/bridge/sdk-core/fsm/src/lib.rs +2 -0
  124. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  125. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  126. data/bridge/sdk-core/integ-with-otel.sh +7 -0
  127. data/bridge/sdk-core/protos/api_upstream/README.md +9 -0
  128. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +40 -0
  129. data/bridge/sdk-core/protos/api_upstream/buf.yaml +12 -0
  130. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
  131. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +86 -0
  132. data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +83 -0
  133. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +259 -0
  134. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +112 -0
  135. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +46 -0
  136. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/cluster.proto +40 -0
  137. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +57 -0
  138. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +55 -0
  139. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +168 -0
  140. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +97 -0
  141. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +51 -0
  142. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +50 -0
  143. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +41 -0
  144. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +60 -0
  145. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +59 -0
  146. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +51 -0
  147. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +122 -0
  148. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +108 -0
  149. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +114 -0
  150. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +56 -0
  151. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +751 -0
  152. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +97 -0
  153. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +161 -0
  154. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +99 -0
  155. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +61 -0
  156. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +55 -0
  157. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +300 -0
  158. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +108 -0
  159. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +46 -0
  160. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +59 -0
  161. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +145 -0
  162. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1124 -0
  163. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +401 -0
  164. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +63 -0
  165. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +78 -0
  166. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +79 -0
  167. data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +210 -0
  168. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +77 -0
  169. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +15 -0
  170. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +30 -0
  171. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +30 -0
  172. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +261 -0
  173. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +297 -0
  174. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +29 -0
  175. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +38 -0
  176. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +13 -0
  177. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +141 -0
  178. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +63 -0
  179. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +90 -0
  180. data/bridge/sdk-core/rustfmt.toml +1 -0
  181. data/bridge/sdk-core/sdk/Cargo.toml +47 -0
  182. data/bridge/sdk-core/sdk/LICENSE.txt +23 -0
  183. data/bridge/sdk-core/sdk/src/activity_context.rs +230 -0
  184. data/bridge/sdk-core/sdk/src/app_data.rs +37 -0
  185. data/bridge/sdk-core/sdk/src/conversions.rs +8 -0
  186. data/bridge/sdk-core/sdk/src/interceptors.rs +17 -0
  187. data/bridge/sdk-core/sdk/src/lib.rs +792 -0
  188. data/bridge/sdk-core/sdk/src/payload_converter.rs +11 -0
  189. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +295 -0
  190. data/bridge/sdk-core/sdk/src/workflow_context.rs +683 -0
  191. data/bridge/sdk-core/sdk/src/workflow_future.rs +503 -0
  192. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +30 -0
  193. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +23 -0
  194. data/bridge/sdk-core/sdk-core-protos/build.rs +108 -0
  195. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
  196. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +497 -0
  197. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
  198. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1910 -0
  199. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +38 -0
  200. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +14 -0
  201. data/bridge/sdk-core/test-utils/Cargo.toml +35 -0
  202. data/bridge/sdk-core/test-utils/src/canned_histories.rs +1579 -0
  203. data/bridge/sdk-core/test-utils/src/histfetch.rs +28 -0
  204. data/bridge/sdk-core/test-utils/src/lib.rs +598 -0
  205. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +36 -0
  206. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +128 -0
  207. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +218 -0
  208. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +146 -0
  209. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +437 -0
  210. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +93 -0
  211. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +878 -0
  212. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +61 -0
  213. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +59 -0
  214. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +58 -0
  215. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +50 -0
  216. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +60 -0
  217. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +54 -0
  218. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +634 -0
  219. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +113 -0
  220. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +137 -0
  221. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +93 -0
  222. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +167 -0
  223. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +99 -0
  224. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +131 -0
  225. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +75 -0
  226. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +587 -0
  227. data/bridge/sdk-core/tests/load_tests.rs +191 -0
  228. data/bridge/sdk-core/tests/main.rs +111 -0
  229. data/bridge/sdk-core/tests/runner.rs +93 -0
  230. data/bridge/src/connection.rs +167 -0
  231. data/bridge/src/lib.rs +180 -0
  232. data/bridge/src/runtime.rs +47 -0
  233. data/bridge/src/worker.rs +73 -0
  234. data/ext/Rakefile +9 -0
  235. data/lib/bridge.so +0 -0
  236. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +14 -0
  237. data/lib/gen/temporal/api/batch/v1/message_pb.rb +48 -0
  238. data/lib/gen/temporal/api/cluster/v1/message_pb.rb +67 -0
  239. data/lib/gen/temporal/api/command/v1/message_pb.rb +166 -0
  240. data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
  241. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +32 -0
  242. data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +26 -0
  243. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +37 -0
  244. data/lib/gen/temporal/api/enums/v1/common_pb.rb +41 -0
  245. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +67 -0
  246. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +71 -0
  247. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +37 -0
  248. data/lib/gen/temporal/api/enums/v1/query_pb.rb +31 -0
  249. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +24 -0
  250. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +28 -0
  251. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +30 -0
  252. data/lib/gen/temporal/api/enums/v1/update_pb.rb +28 -0
  253. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +89 -0
  254. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +84 -0
  255. data/lib/gen/temporal/api/failure/v1/message_pb.rb +83 -0
  256. data/lib/gen/temporal/api/filter/v1/message_pb.rb +40 -0
  257. data/lib/gen/temporal/api/history/v1/message_pb.rb +489 -0
  258. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
  259. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +125 -0
  260. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +20 -0
  261. data/lib/gen/temporal/api/query/v1/message_pb.rb +38 -0
  262. data/lib/gen/temporal/api/replication/v1/message_pb.rb +37 -0
  263. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +128 -0
  264. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
  265. data/lib/gen/temporal/api/update/v1/message_pb.rb +26 -0
  266. data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
  267. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +110 -0
  268. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +771 -0
  269. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +20 -0
  270. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +58 -0
  271. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +57 -0
  272. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +222 -0
  273. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +57 -0
  274. data/lib/gen/temporal/sdk/core/common/common_pb.rb +22 -0
  275. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +34 -0
  276. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +27 -0
  277. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +164 -0
  278. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +192 -0
  279. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
  280. data/lib/temporal/bridge.rb +14 -0
  281. data/lib/temporal/client/implementation.rb +339 -0
  282. data/lib/temporal/client/workflow_handle.rb +243 -0
  283. data/lib/temporal/client.rb +144 -0
  284. data/lib/temporal/connection.rb +736 -0
  285. data/lib/temporal/data_converter.rb +150 -0
  286. data/lib/temporal/error/failure.rb +194 -0
  287. data/lib/temporal/error/workflow_failure.rb +17 -0
  288. data/lib/temporal/errors.rb +22 -0
  289. data/lib/temporal/failure_converter/base.rb +26 -0
  290. data/lib/temporal/failure_converter/basic.rb +313 -0
  291. data/lib/temporal/failure_converter.rb +8 -0
  292. data/lib/temporal/interceptor/chain.rb +27 -0
  293. data/lib/temporal/interceptor/client.rb +102 -0
  294. data/lib/temporal/payload_codec/base.rb +32 -0
  295. data/lib/temporal/payload_converter/base.rb +24 -0
  296. data/lib/temporal/payload_converter/bytes.rb +26 -0
  297. data/lib/temporal/payload_converter/composite.rb +47 -0
  298. data/lib/temporal/payload_converter/encoding_base.rb +35 -0
  299. data/lib/temporal/payload_converter/json.rb +25 -0
  300. data/lib/temporal/payload_converter/nil.rb +25 -0
  301. data/lib/temporal/payload_converter.rb +14 -0
  302. data/lib/temporal/retry_policy.rb +82 -0
  303. data/lib/temporal/retry_state.rb +35 -0
  304. data/lib/temporal/runtime.rb +22 -0
  305. data/lib/temporal/timeout_type.rb +29 -0
  306. data/lib/temporal/version.rb +1 -1
  307. data/lib/temporal/workflow/execution_info.rb +54 -0
  308. data/lib/temporal/workflow/execution_status.rb +36 -0
  309. data/lib/temporal/workflow/id_reuse_policy.rb +36 -0
  310. data/lib/temporal/workflow/query_reject_condition.rb +33 -0
  311. data/lib/temporal.rb +4 -0
  312. data/lib/temporalio.rb +3 -1
  313. data/lib/thermite_patch.rb +23 -0
  314. data/temporalio.gemspec +41 -0
  315. metadata +543 -9
  316. data/temporal.gemspec +0 -20
@@ -0,0 +1,1124 @@
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.workflowservice.v1;
26
+
27
+ option go_package = "go.temporal.io/api/workflowservice/v1;workflowservice";
28
+ option java_package = "io.temporal.api.workflowservice.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "RequestResponseProto";
31
+ option ruby_package = "Temporal::Api::WorkflowService::V1";
32
+ option csharp_namespace = "Temporal.Api.WorkflowService.V1";
33
+
34
+ import "temporal/api/enums/v1/batch_operation.proto";
35
+ import "temporal/api/enums/v1/workflow.proto";
36
+ import "temporal/api/enums/v1/namespace.proto";
37
+ import "temporal/api/enums/v1/failed_cause.proto";
38
+ import "temporal/api/enums/v1/common.proto";
39
+ import "temporal/api/enums/v1/query.proto";
40
+ import "temporal/api/enums/v1/reset.proto";
41
+ import "temporal/api/enums/v1/task_queue.proto";
42
+ import "temporal/api/enums/v1/update.proto";
43
+ import "temporal/api/common/v1/message.proto";
44
+ import "temporal/api/history/v1/message.proto";
45
+ import "temporal/api/workflow/v1/message.proto";
46
+ import "temporal/api/command/v1/message.proto";
47
+ import "temporal/api/failure/v1/message.proto";
48
+ import "temporal/api/filter/v1/message.proto";
49
+ import "temporal/api/namespace/v1/message.proto";
50
+ import "temporal/api/query/v1/message.proto";
51
+ import "temporal/api/replication/v1/message.proto";
52
+ import "temporal/api/schedule/v1/message.proto";
53
+ import "temporal/api/taskqueue/v1/message.proto";
54
+ import "temporal/api/update/v1/message.proto";
55
+ import "temporal/api/version/v1/message.proto";
56
+ import "temporal/api/batch/v1/message.proto";
57
+
58
+ import "google/protobuf/duration.proto";
59
+ import "google/protobuf/timestamp.proto";
60
+
61
+ import "dependencies/gogoproto/gogo.proto";
62
+
63
+ message RegisterNamespaceRequest {
64
+ string namespace = 1;
65
+ string description = 2;
66
+ string owner_email = 3;
67
+ google.protobuf.Duration workflow_execution_retention_period = 4 [(gogoproto.stdduration) = true];
68
+ repeated temporal.api.replication.v1.ClusterReplicationConfig clusters = 5;
69
+ string active_cluster_name = 6;
70
+ // A key-value map for any customized purpose.
71
+ map<string, string> data = 7;
72
+ string security_token = 8;
73
+ bool is_global_namespace = 9;
74
+ // If unspecified (ARCHIVAL_STATE_UNSPECIFIED) then default server configuration is used.
75
+ temporal.api.enums.v1.ArchivalState history_archival_state = 10;
76
+ string history_archival_uri = 11;
77
+ // If unspecified (ARCHIVAL_STATE_UNSPECIFIED) then default server configuration is used.
78
+ temporal.api.enums.v1.ArchivalState visibility_archival_state = 12;
79
+ string visibility_archival_uri = 13;
80
+ }
81
+
82
+ message RegisterNamespaceResponse {
83
+ }
84
+
85
+ message ListNamespacesRequest {
86
+ int32 page_size = 1;
87
+ bytes next_page_token = 2;
88
+ temporal.api.namespace.v1.NamespaceFilter namespace_filter = 3;
89
+ }
90
+
91
+ message ListNamespacesResponse {
92
+ repeated DescribeNamespaceResponse namespaces = 1;
93
+ bytes next_page_token = 2;
94
+ }
95
+
96
+ message DescribeNamespaceRequest {
97
+ string namespace = 1;
98
+ string id = 2;
99
+ }
100
+
101
+ message DescribeNamespaceResponse {
102
+ temporal.api.namespace.v1.NamespaceInfo namespace_info = 1;
103
+ temporal.api.namespace.v1.NamespaceConfig config = 2;
104
+ temporal.api.replication.v1.NamespaceReplicationConfig replication_config = 3;
105
+ int64 failover_version = 4;
106
+ bool is_global_namespace = 5;
107
+ // Contains the historical state of failover_versions for the cluster, truncated to contain only the last N
108
+ // states to ensure that the list does not grow unbounded.
109
+ repeated temporal.api.replication.v1.FailoverStatus failover_history = 6;
110
+ }
111
+
112
+ // (-- api-linter: core::0134::request-mask-required=disabled
113
+ // aip.dev/not-precedent: UpdateNamespace RPC doesn't follow Google API format. --)
114
+ // (-- api-linter: core::0134::request-resource-required=disabled
115
+ // aip.dev/not-precedent: UpdateNamespace RPC doesn't follow Google API format. --)
116
+ message UpdateNamespaceRequest {
117
+ string namespace = 1;
118
+ temporal.api.namespace.v1.UpdateNamespaceInfo update_info = 2;
119
+ temporal.api.namespace.v1.NamespaceConfig config = 3;
120
+ temporal.api.replication.v1.NamespaceReplicationConfig replication_config = 4;
121
+ string security_token = 5;
122
+ string delete_bad_binary = 6;
123
+ // promote local namespace to global namespace. Ignored if namespace is already global namespace.
124
+ bool promote_namespace = 7;
125
+ }
126
+
127
+ message UpdateNamespaceResponse {
128
+ temporal.api.namespace.v1.NamespaceInfo namespace_info = 1;
129
+ temporal.api.namespace.v1.NamespaceConfig config = 2;
130
+ temporal.api.replication.v1.NamespaceReplicationConfig replication_config = 3;
131
+ int64 failover_version = 4;
132
+ bool is_global_namespace = 5;
133
+ }
134
+
135
+ // Deprecated.
136
+ message DeprecateNamespaceRequest {
137
+ string namespace = 1;
138
+ string security_token = 2;
139
+ }
140
+
141
+ // Deprecated.
142
+ message DeprecateNamespaceResponse {
143
+ }
144
+
145
+ message StartWorkflowExecutionRequest {
146
+ string namespace = 1;
147
+ string workflow_id = 2;
148
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
149
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
150
+ // Serialized arguments to the workflow. These are passed as arguments to the workflow function.
151
+ temporal.api.common.v1.Payloads input = 5;
152
+ // Total workflow execution timeout including retries and continue as new.
153
+ google.protobuf.Duration workflow_execution_timeout = 6 [(gogoproto.stdduration) = true];
154
+ // Timeout of a single workflow run.
155
+ google.protobuf.Duration workflow_run_timeout = 7 [(gogoproto.stdduration) = true];
156
+ // Timeout of a single workflow task.
157
+ google.protobuf.Duration workflow_task_timeout = 8 [(gogoproto.stdduration) = true];
158
+ // The identity of the client who initiated this request
159
+ string identity = 9;
160
+ // A unique identifier for this start request. Typically UUIDv4.
161
+ string request_id = 10;
162
+ // Default: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE.
163
+ temporal.api.enums.v1.WorkflowIdReusePolicy workflow_id_reuse_policy = 11;
164
+ // The retry policy for the workflow. Will never exceed `workflow_execution_timeout`.
165
+ temporal.api.common.v1.RetryPolicy retry_policy = 12;
166
+ // See https://docs.temporal.io/docs/content/what-is-a-temporal-cron-job/
167
+ string cron_schedule = 13;
168
+ temporal.api.common.v1.Memo memo = 14;
169
+ temporal.api.common.v1.SearchAttributes search_attributes = 15;
170
+ temporal.api.common.v1.Header header = 16;
171
+ }
172
+
173
+ message StartWorkflowExecutionResponse {
174
+ string run_id = 1;
175
+ }
176
+
177
+ message GetWorkflowExecutionHistoryRequest {
178
+ string namespace = 1;
179
+ temporal.api.common.v1.WorkflowExecution execution = 2;
180
+ int32 maximum_page_size = 3;
181
+ // If a `GetWorkflowExecutionHistoryResponse` or a `PollWorkflowTaskQueueResponse` had one of
182
+ // these, it should be passed here to fetch the next page.
183
+ bytes next_page_token = 4;
184
+ // If set to true, the RPC call will not resolve until there is a new event which matches
185
+ // the `history_event_filter_type`, or a timeout is hit.
186
+ bool wait_new_event = 5;
187
+ // Filter returned events such that they match the specified filter type.
188
+ // Default: HISTORY_EVENT_FILTER_TYPE_ALL_EVENT.
189
+ temporal.api.enums.v1.HistoryEventFilterType history_event_filter_type = 6;
190
+ bool skip_archival = 7;
191
+ }
192
+
193
+ message GetWorkflowExecutionHistoryResponse {
194
+ temporal.api.history.v1.History history = 1;
195
+ // Raw history is an alternate representation of history that may be returned if configured on
196
+ // the frontend. This is not supported by all SDKs. Either this or `history` will be set.
197
+ repeated temporal.api.common.v1.DataBlob raw_history = 2;
198
+ // Will be set if there are more history events than were included in this response
199
+ bytes next_page_token = 3;
200
+ bool archived = 4;
201
+ }
202
+
203
+ message GetWorkflowExecutionHistoryReverseRequest {
204
+ string namespace = 1;
205
+ temporal.api.common.v1.WorkflowExecution execution = 2;
206
+ int32 maximum_page_size = 3;
207
+ bytes next_page_token = 4;
208
+ }
209
+
210
+ message GetWorkflowExecutionHistoryReverseResponse {
211
+ temporal.api.history.v1.History history = 1;
212
+ // Will be set if there are more history events than were included in this response
213
+ bytes next_page_token = 3;
214
+ }
215
+
216
+ message PollWorkflowTaskQueueRequest {
217
+ string namespace = 1;
218
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 2;
219
+ // The identity of the worker/client who is polling this task queue
220
+ string identity = 3;
221
+ // Each worker process should provide an ID unique to the specific set of code it is running
222
+ // "checksum" in this field name isn't very accurate, it should be though of as an id.
223
+ string binary_checksum = 4;
224
+ // If set, the worker is opting in to build-id based versioning and wishes to only
225
+ // receive tasks that are considered compatible with the version provided in the string.
226
+ // Doing so only makes sense in conjunction with the `UpdateWorkerBuildIdOrdering` API.
227
+ // When set, and `binary_checksum` is not, this value should also be considered as the
228
+ // `binary_checksum`.
229
+ string worker_versioning_build_id = 5;
230
+ }
231
+
232
+ message PollWorkflowTaskQueueResponse {
233
+ // A unique identifier for this task
234
+ bytes task_token = 1;
235
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
236
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
237
+ // The last workflow task started event which was processed by some worker for this execution.
238
+ // Will be zero if no task has ever started.
239
+ int64 previous_started_event_id = 4;
240
+ // The id of the most recent workflow task started event, which will have been generated as a
241
+ // result of this poll request being served.
242
+ int64 started_event_id = 5;
243
+ // Starting at 1, the number of attempts to complete this task by any worker.
244
+ int32 attempt = 6;
245
+ // A hint that there are more tasks already present in this task queue. Can be used to
246
+ // prioritize draining a sticky queue before polling from a normal queue.
247
+ int64 backlog_count_hint = 7;
248
+ // The history for this workflow, which will either be complete or partial. Partial histories
249
+ // are sent to workers who have signaled that they are using a sticky queue when completing
250
+ // a workflow task.
251
+ temporal.api.history.v1.History history = 8;
252
+ // Will be set if there are more history events than were included in this response. Such events
253
+ // should be fetched via `GetWorkflowExecutionHistory`.
254
+ bytes next_page_token = 9;
255
+ // Legacy queries appear in this field. The query must be responded to via
256
+ // `RespondQueryTaskCompleted`. If the workflow is already closed (queries are permitted on
257
+ // closed workflows) then the `history` field will be populated with the entire history. It
258
+ // may also be populated if this task originates on a non-sticky queue.
259
+ temporal.api.query.v1.WorkflowQuery query = 10;
260
+ // The task queue this task originated from, which will always be the original non-sticky name
261
+ // for the queue, even if this response came from polling a sticky queue.
262
+ temporal.api.taskqueue.v1.TaskQueue workflow_execution_task_queue = 11;
263
+ // When this task was scheduled by the server
264
+ google.protobuf.Timestamp scheduled_time = 12 [(gogoproto.stdtime) = true];
265
+ // When the current workflow task started event was generated, meaning the current attempt.
266
+ google.protobuf.Timestamp started_time = 13 [(gogoproto.stdtime) = true];
267
+ // Queries that should be executed after applying the history in this task. Responses should be
268
+ // attached to `RespondWorkflowTaskCompletedRequest::query_results`
269
+ map<string, temporal.api.query.v1.WorkflowQuery> queries = 14;
270
+ }
271
+
272
+ message RespondWorkflowTaskCompletedRequest {
273
+ // The task token as received in `PollWorkflowTaskQueueResponse`
274
+ bytes task_token = 1;
275
+ // A list of commands generated when driving the workflow code in response to the new task
276
+ repeated temporal.api.command.v1.Command commands = 2;
277
+ // The identity of the worker/client
278
+ string identity = 3;
279
+ // May be set by workers to indicate that the worker desires future tasks to be provided with
280
+ // incremental history on a sticky queue.
281
+ temporal.api.taskqueue.v1.StickyExecutionAttributes sticky_attributes = 4;
282
+ // If set, the worker wishes to immediately receive the next workflow task as a response to
283
+ // this completion. This can save on polling round-trips.
284
+ bool return_new_workflow_task = 5;
285
+ // Can be used to *force* creation of a new workflow task, even if no commands have resolved or
286
+ // one would not otherwise have been generated. This is used when the worker knows it is doing
287
+ // something useful, but cannot complete it within the workflow task timeout. Local activities
288
+ // which run for longer than the task timeout being the prime example.
289
+ bool force_create_new_workflow_task = 6;
290
+ // Worker process' unique binary id
291
+ string binary_checksum = 7;
292
+ // Responses to the `queries` field in the task being responded to
293
+ map<string, temporal.api.query.v1.WorkflowQueryResult> query_results = 8;
294
+ string namespace = 9;
295
+ }
296
+
297
+ message RespondWorkflowTaskCompletedResponse {
298
+ // See `RespondWorkflowTaskCompletedResponse::return_new_workflow_task`
299
+ PollWorkflowTaskQueueResponse workflow_task = 1;
300
+ // See `ScheduleActivityTaskCommandAttributes::request_start`
301
+ repeated PollActivityTaskQueueResponse activity_tasks = 2;
302
+ }
303
+
304
+ message RespondWorkflowTaskFailedRequest {
305
+ // The task token as received in `PollWorkflowTaskQueueResponse`
306
+ bytes task_token = 1;
307
+ // Why did the task fail? It's important to note that many of the variants in this enum cannot
308
+ // apply to worker responses. See the type's doc for more.
309
+ temporal.api.enums.v1.WorkflowTaskFailedCause cause = 2;
310
+ // Failure details
311
+ temporal.api.failure.v1.Failure failure = 3;
312
+ // The identity of the worker/client
313
+ string identity = 4;
314
+ // Worker process' unique binary id
315
+ string binary_checksum = 5;
316
+ string namespace = 6;
317
+ }
318
+
319
+ message RespondWorkflowTaskFailedResponse {
320
+ }
321
+
322
+ message PollActivityTaskQueueRequest {
323
+ string namespace = 1;
324
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 2;
325
+ // The identity of the worker/client
326
+ string identity = 3;
327
+ temporal.api.taskqueue.v1.TaskQueueMetadata task_queue_metadata = 4;
328
+ // If set, the worker is opting in to build-id based versioning and wishes to only
329
+ // receive tasks that are considered compatible with the version provided in the string.
330
+ // Doing so only makes sense in conjunction with the `UpdateWorkerBuildIdOrdering` API.
331
+ string worker_versioning_build_id = 5;
332
+ }
333
+
334
+ message PollActivityTaskQueueResponse {
335
+ // A unique identifier for this task
336
+ bytes task_token = 1;
337
+ // The namespace the workflow which requested this activity lives in
338
+ string workflow_namespace = 2;
339
+ // Type of the requesting workflow
340
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
341
+ // Execution info of the requesting workflow
342
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 4;
343
+ temporal.api.common.v1.ActivityType activity_type = 5;
344
+ // The autogenerated or user specified identifier of this activity. Can be used to complete the
345
+ // activity via `RespondActivityTaskCompletedById`. May be re-used as long as the last usage
346
+ // has resolved, but unique IDs for every activity invocation is a good idea.
347
+ string activity_id = 6;
348
+ // Headers specified by the scheduling workflow. Commonly used to propagate contextual info
349
+ // from the workflow to its activities. For example, tracing contexts.
350
+ temporal.api.common.v1.Header header = 7;
351
+ // Arguments to the activity invocation
352
+ temporal.api.common.v1.Payloads input = 8;
353
+ // Details of the last heartbeat that was recorded for this activity as of the time this task
354
+ // was delivered.
355
+ temporal.api.common.v1.Payloads heartbeat_details = 9;
356
+ // When was this task first scheduled
357
+ google.protobuf.Timestamp scheduled_time = 10 [(gogoproto.stdtime) = true];
358
+ // When was this task attempt scheduled
359
+ google.protobuf.Timestamp current_attempt_scheduled_time = 11 [(gogoproto.stdtime) = true];
360
+ // When was this task started (this attempt)
361
+ google.protobuf.Timestamp started_time = 12 [(gogoproto.stdtime) = true];
362
+ // Starting at 1, the number of attempts to perform this activity
363
+ int32 attempt = 13;
364
+ // First scheduled -> final result reported timeout
365
+ //
366
+ // (-- api-linter: core::0140::prepositions=disabled
367
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
368
+ google.protobuf.Duration schedule_to_close_timeout = 14 [(gogoproto.stdduration) = true];
369
+ // Current attempt start -> final result reported timeout
370
+ //
371
+ // (-- api-linter: core::0140::prepositions=disabled
372
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
373
+ google.protobuf.Duration start_to_close_timeout = 15 [(gogoproto.stdduration) = true];
374
+ // Window within which the activity must report a heartbeat, or be timed out.
375
+ google.protobuf.Duration heartbeat_timeout = 16 [(gogoproto.stdduration) = true];
376
+ // This is the retry policy the service uses which may be different from the one provided
377
+ // (or not) during activity scheduling. The service can override the provided one if some
378
+ // values are not specified or exceed configured system limits.
379
+ temporal.api.common.v1.RetryPolicy retry_policy = 17;
380
+ }
381
+
382
+ message RecordActivityTaskHeartbeatRequest {
383
+ // The task token as received in `PollActivityTaskQueueResponse`
384
+ bytes task_token = 1;
385
+ // Arbitrary data, of which the most recent call is kept, to store for this activity
386
+ temporal.api.common.v1.Payloads details = 2;
387
+ // The identity of the worker/client
388
+ string identity = 3;
389
+ string namespace = 4;
390
+ }
391
+
392
+ message RecordActivityTaskHeartbeatResponse {
393
+ // Will be set to true if the activity has been asked to cancel itself. The SDK should then
394
+ // notify the activity of cancellation if it is still running.
395
+ bool cancel_requested = 1;
396
+ }
397
+
398
+ message RecordActivityTaskHeartbeatByIdRequest {
399
+ // Namespace of the workflow which scheduled this activity
400
+ string namespace = 1;
401
+ // Id of the workflow which scheduled this activity
402
+ string workflow_id = 2;
403
+ // Run Id of the workflow which scheduled this activity
404
+ string run_id = 3;
405
+ // Id of the activity we're heartbeating
406
+ string activity_id = 4;
407
+ // Arbitrary data, of which the most recent call is kept, to store for this activity
408
+ temporal.api.common.v1.Payloads details = 5;
409
+ // The identity of the worker/client
410
+ string identity = 6;
411
+ }
412
+
413
+ message RecordActivityTaskHeartbeatByIdResponse {
414
+ // Will be set to true if the activity has been asked to cancel itself. The SDK should then
415
+ // notify the activity of cancellation if it is still running.
416
+ bool cancel_requested = 1;
417
+ }
418
+
419
+ message RespondActivityTaskCompletedRequest {
420
+ // The task token as received in `PollActivityTaskQueueResponse`
421
+ bytes task_token = 1;
422
+ // The result of successfully executing the activity
423
+ temporal.api.common.v1.Payloads result = 2;
424
+ // The identity of the worker/client
425
+ string identity = 3;
426
+ string namespace = 4;
427
+ }
428
+
429
+ message RespondActivityTaskCompletedResponse {
430
+ }
431
+
432
+ message RespondActivityTaskCompletedByIdRequest {
433
+ // Namespace of the workflow which scheduled this activity
434
+ string namespace = 1;
435
+ // Id of the workflow which scheduled this activity
436
+ string workflow_id = 2;
437
+ // Run Id of the workflow which scheduled this activity
438
+ string run_id = 3;
439
+ // Id of the activity to complete
440
+ string activity_id = 4;
441
+ // The serialized result of activity execution
442
+ temporal.api.common.v1.Payloads result = 5;
443
+ // The identity of the worker/client
444
+ string identity = 6;
445
+ }
446
+
447
+ message RespondActivityTaskCompletedByIdResponse {
448
+ }
449
+
450
+ message RespondActivityTaskFailedRequest {
451
+ // The task token as received in `PollActivityTaskQueueResponse`
452
+ bytes task_token = 1;
453
+ // Detailed failure information
454
+ temporal.api.failure.v1.Failure failure = 2;
455
+ // The identity of the worker/client
456
+ string identity = 3;
457
+ string namespace = 4;
458
+ // Additional details to be stored as last activity heartbeat
459
+ temporal.api.common.v1.Payloads last_heartbeat_details = 5;
460
+ }
461
+
462
+ message RespondActivityTaskFailedResponse {
463
+ // Server validation failures could include
464
+ // last_heartbeat_details payload is too large, request failure is too large
465
+ repeated temporal.api.failure.v1.Failure failures = 1;
466
+ }
467
+
468
+ message RespondActivityTaskFailedByIdRequest {
469
+ // Namespace of the workflow which scheduled this activity
470
+ string namespace = 1;
471
+ // Id of the workflow which scheduled this activity
472
+ string workflow_id = 2;
473
+ // Run Id of the workflow which scheduled this activity
474
+ string run_id = 3;
475
+ // Id of the activity to fail
476
+ string activity_id = 4;
477
+ // Detailed failure information
478
+ temporal.api.failure.v1.Failure failure = 5;
479
+ // The identity of the worker/client
480
+ string identity = 6;
481
+ // Additional details to be stored as last activity heartbeat
482
+ temporal.api.common.v1.Payloads last_heartbeat_details = 7;
483
+ }
484
+
485
+ message RespondActivityTaskFailedByIdResponse {
486
+ // Server validation failures could include
487
+ // last_heartbeat_details payload is too large, request failure is too large
488
+ repeated temporal.api.failure.v1.Failure failures = 1;
489
+ }
490
+
491
+ message RespondActivityTaskCanceledRequest {
492
+ // The task token as received in `PollActivityTaskQueueResponse`
493
+ bytes task_token = 1;
494
+ // Serialized additional information to attach to the cancellation
495
+ temporal.api.common.v1.Payloads details = 2;
496
+ // The identity of the worker/client
497
+ string identity = 3;
498
+ string namespace = 4;
499
+ }
500
+
501
+ message RespondActivityTaskCanceledResponse {
502
+ }
503
+
504
+ message RespondActivityTaskCanceledByIdRequest {
505
+ // Namespace of the workflow which scheduled this activity
506
+ string namespace = 1;
507
+ // Id of the workflow which scheduled this activity
508
+ string workflow_id = 2;
509
+ // Run Id of the workflow which scheduled this activity
510
+ string run_id = 3;
511
+ // Id of the activity to confirm is cancelled
512
+ string activity_id = 4;
513
+ // Serialized additional information to attach to the cancellation
514
+ temporal.api.common.v1.Payloads details = 5;
515
+ // The identity of the worker/client
516
+ string identity = 6;
517
+ }
518
+
519
+ message RespondActivityTaskCanceledByIdResponse {
520
+ }
521
+
522
+ message RequestCancelWorkflowExecutionRequest {
523
+ string namespace = 1;
524
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
525
+ // The identity of the worker/client
526
+ string identity = 3;
527
+ // Used to de-dupe cancellation requests
528
+ string request_id = 4;
529
+ // If set, this call will error if the most recent (if no run id is set on
530
+ // `workflow_execution`), or specified (if it is) workflow execution is not part of the same
531
+ // execution chain as this id.
532
+ string first_execution_run_id = 5;
533
+ // Reason for requesting the cancellation
534
+ string reason = 6;
535
+ }
536
+
537
+ message RequestCancelWorkflowExecutionResponse {
538
+ }
539
+
540
+ message SignalWorkflowExecutionRequest {
541
+ string namespace = 1;
542
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
543
+ // The workflow author-defined name of the signal to send to the workflow
544
+ string signal_name = 3;
545
+ // Serialized value(s) to provide with the signal
546
+ temporal.api.common.v1.Payloads input = 4;
547
+ // The identity of the worker/client
548
+ string identity = 5;
549
+ // Used to de-dupe sent signals
550
+ string request_id = 6;
551
+ // Deprecated
552
+ string control = 7;
553
+ // Headers that are passed with the signal to the processing workflow.
554
+ // These can include things like auth or tracing tokens.
555
+ temporal.api.common.v1.Header header = 8;
556
+ }
557
+
558
+ message SignalWorkflowExecutionResponse {
559
+ }
560
+
561
+ message SignalWithStartWorkflowExecutionRequest {
562
+ string namespace = 1;
563
+ string workflow_id = 2;
564
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
565
+ // The task queue to start this workflow on, if it will be started
566
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
567
+ // Serialized arguments to the workflow. These are passed as arguments to the workflow function.
568
+ temporal.api.common.v1.Payloads input = 5;
569
+ // Total workflow execution timeout including retries and continue as new
570
+ google.protobuf.Duration workflow_execution_timeout = 6 [(gogoproto.stdduration) = true];
571
+ // Timeout of a single workflow run
572
+ google.protobuf.Duration workflow_run_timeout = 7 [(gogoproto.stdduration) = true];
573
+ // Timeout of a single workflow task
574
+ google.protobuf.Duration workflow_task_timeout = 8 [(gogoproto.stdduration) = true];
575
+ // The identity of the worker/client
576
+ string identity = 9;
577
+ // Used to de-dupe signal w/ start requests
578
+ string request_id = 10;
579
+ temporal.api.enums.v1.WorkflowIdReusePolicy workflow_id_reuse_policy = 11;
580
+ // The workflow author-defined name of the signal to send to the workflow
581
+ string signal_name = 12;
582
+ // Serialized value(s) to provide with the signal
583
+ temporal.api.common.v1.Payloads signal_input = 13;
584
+ // Deprecated
585
+ string control = 14;
586
+ // Retry policy for the workflow Default: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE.
587
+ temporal.api.common.v1.RetryPolicy retry_policy = 15;
588
+ // See https://docs.temporal.io/docs/content/what-is-a-temporal-cron-job/
589
+ string cron_schedule = 16;
590
+ temporal.api.common.v1.Memo memo = 17;
591
+ temporal.api.common.v1.SearchAttributes search_attributes = 18;
592
+ temporal.api.common.v1.Header header = 19;
593
+ }
594
+
595
+ message SignalWithStartWorkflowExecutionResponse {
596
+ string run_id = 1;
597
+ }
598
+
599
+ message ResetWorkflowExecutionRequest {
600
+ string namespace = 1;
601
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
602
+ string reason = 3;
603
+ // The id of a `WORKFLOW_TASK_COMPLETED`,`WORKFLOW_TASK_TIMED_OUT`, `WORKFLOW_TASK_FAILED`, or
604
+ // `WORKFLOW_TASK_STARTED` event to reset to.
605
+ int64 workflow_task_finish_event_id = 4;
606
+ // Used to de-dupe reset requests
607
+ string request_id = 5;
608
+ // Reset reapplay(replay) options.
609
+ temporal.api.enums.v1.ResetReapplyType reset_reapply_type = 6;
610
+ }
611
+
612
+ message ResetWorkflowExecutionResponse {
613
+ string run_id = 1;
614
+ }
615
+
616
+ message TerminateWorkflowExecutionRequest {
617
+ string namespace = 1;
618
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
619
+ string reason = 3;
620
+ // Serialized additional information to attach to the termination event
621
+ temporal.api.common.v1.Payloads details = 4;
622
+ // The identity of the worker/client
623
+ string identity = 5;
624
+ // If set, this call will error if the most recent (if no run id is set on
625
+ // `workflow_execution`), or specified (if it is) workflow execution is not part of the same
626
+ // execution chain as this id.
627
+ string first_execution_run_id = 6;
628
+ }
629
+
630
+ message TerminateWorkflowExecutionResponse {
631
+ }
632
+
633
+ message ListOpenWorkflowExecutionsRequest {
634
+ string namespace = 1;
635
+ int32 maximum_page_size = 2;
636
+ bytes next_page_token = 3;
637
+ temporal.api.filter.v1.StartTimeFilter start_time_filter = 4;
638
+ oneof filters {
639
+ temporal.api.filter.v1.WorkflowExecutionFilter execution_filter = 5;
640
+ temporal.api.filter.v1.WorkflowTypeFilter type_filter = 6;
641
+ }
642
+ }
643
+
644
+ message ListOpenWorkflowExecutionsResponse {
645
+ repeated temporal.api.workflow.v1.WorkflowExecutionInfo executions = 1;
646
+ bytes next_page_token = 2;
647
+ }
648
+
649
+ message ListClosedWorkflowExecutionsRequest {
650
+ string namespace = 1;
651
+ int32 maximum_page_size = 2;
652
+ bytes next_page_token = 3;
653
+ temporal.api.filter.v1.StartTimeFilter start_time_filter = 4;
654
+ oneof filters {
655
+ temporal.api.filter.v1.WorkflowExecutionFilter execution_filter = 5;
656
+ temporal.api.filter.v1.WorkflowTypeFilter type_filter = 6;
657
+ temporal.api.filter.v1.StatusFilter status_filter = 7;
658
+ }
659
+ }
660
+
661
+ message ListClosedWorkflowExecutionsResponse {
662
+ repeated temporal.api.workflow.v1.WorkflowExecutionInfo executions = 1;
663
+ bytes next_page_token = 2;
664
+ }
665
+
666
+ message ListWorkflowExecutionsRequest {
667
+ string namespace = 1;
668
+ int32 page_size = 2;
669
+ bytes next_page_token = 3;
670
+ string query = 4;
671
+ }
672
+
673
+ message ListWorkflowExecutionsResponse {
674
+ repeated temporal.api.workflow.v1.WorkflowExecutionInfo executions = 1;
675
+ bytes next_page_token = 2;
676
+ }
677
+
678
+ message ListArchivedWorkflowExecutionsRequest {
679
+ string namespace = 1;
680
+ int32 page_size = 2;
681
+ bytes next_page_token = 3;
682
+ string query = 4;
683
+ }
684
+
685
+ message ListArchivedWorkflowExecutionsResponse {
686
+ repeated temporal.api.workflow.v1.WorkflowExecutionInfo executions = 1;
687
+ bytes next_page_token = 2;
688
+ }
689
+
690
+ message ScanWorkflowExecutionsRequest {
691
+ string namespace = 1;
692
+ int32 page_size = 2;
693
+ bytes next_page_token = 3;
694
+ string query = 4;
695
+ }
696
+
697
+ message ScanWorkflowExecutionsResponse {
698
+ repeated temporal.api.workflow.v1.WorkflowExecutionInfo executions = 1;
699
+ bytes next_page_token = 2;
700
+ }
701
+
702
+ message CountWorkflowExecutionsRequest {
703
+ string namespace = 1;
704
+ string query = 2;
705
+ }
706
+
707
+ message CountWorkflowExecutionsResponse {
708
+ int64 count = 1;
709
+ }
710
+
711
+ message GetSearchAttributesRequest {
712
+ }
713
+
714
+ message GetSearchAttributesResponse {
715
+ map<string, temporal.api.enums.v1.IndexedValueType> keys = 1;
716
+ }
717
+
718
+ message RespondQueryTaskCompletedRequest {
719
+ bytes task_token = 1;
720
+ temporal.api.enums.v1.QueryResultType completed_type = 2;
721
+ temporal.api.common.v1.Payloads query_result = 3;
722
+ string error_message = 4;
723
+ reserved 5;
724
+ string namespace = 6;
725
+ }
726
+
727
+ message RespondQueryTaskCompletedResponse {
728
+ }
729
+
730
+ message ResetStickyTaskQueueRequest {
731
+ string namespace = 1;
732
+ temporal.api.common.v1.WorkflowExecution execution = 2;
733
+ }
734
+
735
+ message ResetStickyTaskQueueResponse {
736
+ }
737
+
738
+ message QueryWorkflowRequest {
739
+ string namespace = 1;
740
+ temporal.api.common.v1.WorkflowExecution execution = 2;
741
+ temporal.api.query.v1.WorkflowQuery query = 3;
742
+ // QueryRejectCondition can used to reject the query if workflow state does not satisfy condition.
743
+ // Default: QUERY_REJECT_CONDITION_NONE.
744
+ temporal.api.enums.v1.QueryRejectCondition query_reject_condition = 4;
745
+ }
746
+
747
+ message QueryWorkflowResponse {
748
+ temporal.api.common.v1.Payloads query_result = 1;
749
+ temporal.api.query.v1.QueryRejected query_rejected = 2;
750
+ }
751
+
752
+ message DescribeWorkflowExecutionRequest {
753
+ string namespace = 1;
754
+ temporal.api.common.v1.WorkflowExecution execution = 2;
755
+ }
756
+
757
+ message DescribeWorkflowExecutionResponse {
758
+ temporal.api.workflow.v1.WorkflowExecutionConfig execution_config = 1;
759
+ temporal.api.workflow.v1.WorkflowExecutionInfo workflow_execution_info = 2;
760
+ repeated temporal.api.workflow.v1.PendingActivityInfo pending_activities = 3;
761
+ repeated temporal.api.workflow.v1.PendingChildExecutionInfo pending_children = 4;
762
+ temporal.api.workflow.v1.PendingWorkflowTaskInfo pending_workflow_task = 5;
763
+ }
764
+
765
+ message DescribeTaskQueueRequest {
766
+ string namespace = 1;
767
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 2;
768
+ temporal.api.enums.v1.TaskQueueType task_queue_type = 3;
769
+ bool include_task_queue_status = 4;
770
+ }
771
+
772
+ message DescribeTaskQueueResponse {
773
+ repeated temporal.api.taskqueue.v1.PollerInfo pollers = 1;
774
+ temporal.api.taskqueue.v1.TaskQueueStatus task_queue_status = 2;
775
+ }
776
+
777
+ message GetClusterInfoRequest {
778
+ }
779
+
780
+ // GetClusterInfoResponse contains information about Temporal cluster.
781
+ message GetClusterInfoResponse {
782
+ // Key is client name i.e "temporal-go", "temporal-java", or "temporal-cli".
783
+ // Value is ranges of supported versions of this client i.e ">1.1.1 <=1.4.0 || ^5.0.0".
784
+ map<string,string> supported_clients = 1;
785
+ string server_version = 2;
786
+ string cluster_id = 3;
787
+ temporal.api.version.v1.VersionInfo version_info = 4;
788
+ string cluster_name = 5;
789
+ int32 history_shard_count = 6;
790
+ string persistence_store = 7;
791
+ string visibility_store = 8;
792
+ }
793
+
794
+ message GetSystemInfoRequest {
795
+ }
796
+
797
+ message GetSystemInfoResponse {
798
+ // Version of the server.
799
+ string server_version = 1;
800
+
801
+ // All capabilities the system supports.
802
+ Capabilities capabilities = 2;
803
+
804
+ // System capability details.
805
+ message Capabilities {
806
+ // True if signal and query headers are supported.
807
+ bool signal_and_query_header = 1;
808
+
809
+ // True if internal errors are differentiated from other types of errors for purposes of
810
+ // retrying non-internal errors.
811
+ //
812
+ // When unset/false, clients retry all failures. When true, clients should only retry
813
+ // non-internal errors.
814
+ bool internal_error_differentiation = 2;
815
+
816
+ // True if RespondActivityTaskFailed API supports including heartbeat details
817
+ bool activity_failure_include_heartbeat = 3;
818
+
819
+ // Supports scheduled workflow features.
820
+ bool supports_schedules = 4;
821
+
822
+ // True if server uses protos that include temporal.api.failure.v1.Failure.encoded_attributes
823
+ bool encoded_failure_attributes = 5;
824
+ }
825
+ }
826
+
827
+ message ListTaskQueuePartitionsRequest {
828
+ string namespace = 1;
829
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 2;
830
+ }
831
+
832
+ message ListTaskQueuePartitionsResponse {
833
+ repeated temporal.api.taskqueue.v1.TaskQueuePartitionMetadata activity_task_queue_partitions = 1;
834
+ repeated temporal.api.taskqueue.v1.TaskQueuePartitionMetadata workflow_task_queue_partitions = 2;
835
+ }
836
+
837
+ // (-- api-linter: core::0133::request-parent-required=disabled
838
+ // aip.dev/not-precedent: CreateSchedule doesn't follow Google API format --)
839
+ // (-- api-linter: core::0133::request-unknown-fields=disabled
840
+ // aip.dev/not-precedent: CreateSchedule doesn't follow Google API format --)
841
+ // (-- api-linter: core::0133::request-resource-behavior=disabled
842
+ // aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
843
+ // (-- api-linter: core::0203::optional=disabled
844
+ // aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
845
+ message CreateScheduleRequest {
846
+ // The namespace the schedule should be created in.
847
+ string namespace = 1;
848
+ // The id of the new schedule.
849
+ string schedule_id = 2;
850
+ // The schedule spec, policies, action, and initial state.
851
+ temporal.api.schedule.v1.Schedule schedule = 3;
852
+ // Optional initial patch (e.g. to run the action once immediately).
853
+ temporal.api.schedule.v1.SchedulePatch initial_patch = 4;
854
+ // The identity of the client who initiated this request.
855
+ string identity = 5;
856
+ // A unique identifier for this create request for idempotence. Typically UUIDv4.
857
+ string request_id = 6;
858
+ // Memo and search attributes to attach to the schedule itself.
859
+ temporal.api.common.v1.Memo memo = 7;
860
+ temporal.api.common.v1.SearchAttributes search_attributes = 8;
861
+ }
862
+
863
+ message CreateScheduleResponse {
864
+ bytes conflict_token = 1;
865
+ }
866
+
867
+ message DescribeScheduleRequest {
868
+ // The namespace of the schedule to describe.
869
+ string namespace = 1;
870
+ // The id of the schedule to describe.
871
+ string schedule_id = 2;
872
+ }
873
+
874
+ message DescribeScheduleResponse {
875
+ // The complete current schedule details. This may not match the schedule as
876
+ // created because:
877
+ // - some fields in the state are modified automatically
878
+ // - the schedule may have been modified by UpdateSchedule or PatchSchedule
879
+ temporal.api.schedule.v1.Schedule schedule = 1;
880
+ // Extra schedule state info.
881
+ temporal.api.schedule.v1.ScheduleInfo info = 2;
882
+ // The memo and search attributes that the schedule was created with.
883
+ temporal.api.common.v1.Memo memo = 3;
884
+ temporal.api.common.v1.SearchAttributes search_attributes = 4;
885
+
886
+ // This value can be passed back to UpdateSchedule to ensure that the
887
+ // schedule was not modified between a Describe and an Update, which could
888
+ // lead to lost updates and other confusion.
889
+ bytes conflict_token = 5;
890
+ }
891
+
892
+ // (-- api-linter: core::0134::request-mask-required=disabled
893
+ // aip.dev/not-precedent: UpdateSchedule doesn't follow Google API format --)
894
+ message UpdateScheduleRequest {
895
+ // The namespace of the schedule to update.
896
+ string namespace = 1;
897
+ // The id of the schedule to update.
898
+ string schedule_id = 2;
899
+ // The new schedule. The four main fields of the schedule (spec, action,
900
+ // policies, state) are replaced completely by the values in this message.
901
+ temporal.api.schedule.v1.Schedule schedule = 3;
902
+ // This can be the value of conflict_token from a DescribeScheduleResponse,
903
+ // which will cause this request to fail if the schedule has been modified
904
+ // between the Describe and this Update.
905
+ // If missing, the schedule will be updated unconditionally.
906
+ bytes conflict_token = 4;
907
+ // The identity of the client who initiated this request.
908
+ string identity = 5;
909
+ // A unique identifier for this update request for idempotence. Typically UUIDv4.
910
+ string request_id = 6;
911
+ }
912
+
913
+ message UpdateScheduleResponse {
914
+ }
915
+
916
+ message PatchScheduleRequest {
917
+ // The namespace of the schedule to patch.
918
+ string namespace = 1;
919
+ // The id of the schedule to patch.
920
+ string schedule_id = 2;
921
+ temporal.api.schedule.v1.SchedulePatch patch = 3;
922
+ // The identity of the client who initiated this request.
923
+ string identity = 4;
924
+ // A unique identifier for this update request for idempotence. Typically UUIDv4.
925
+ string request_id = 5;
926
+ }
927
+
928
+ message PatchScheduleResponse {
929
+ }
930
+
931
+ message ListScheduleMatchingTimesRequest {
932
+ // The namespace of the schedule to query.
933
+ string namespace = 1;
934
+ // The id of the schedule to query.
935
+ string schedule_id = 2;
936
+ // Time range to query.
937
+ google.protobuf.Timestamp start_time = 3 [(gogoproto.stdtime) = true];
938
+ google.protobuf.Timestamp end_time = 4 [(gogoproto.stdtime) = true];
939
+ }
940
+
941
+ message ListScheduleMatchingTimesResponse {
942
+ repeated google.protobuf.Timestamp start_time = 1 [(gogoproto.stdtime) = true];
943
+ }
944
+
945
+ // (-- api-linter: core::0135::request-name-required=disabled
946
+ // aip.dev/not-precedent: DeleteSchedule doesn't follow Google API format --)
947
+ // (-- api-linter: core::0135::request-unknown-fields=disabled
948
+ // aip.dev/not-precedent: DeleteSchedule doesn't follow Google API format --)
949
+ message DeleteScheduleRequest {
950
+ // The namespace of the schedule to delete.
951
+ string namespace = 1;
952
+ // The id of the schedule to delete.
953
+ string schedule_id = 2;
954
+ // The identity of the client who initiated this request.
955
+ string identity = 3;
956
+ }
957
+
958
+ message DeleteScheduleResponse {
959
+ }
960
+
961
+ message ListSchedulesRequest {
962
+ // The namespace to list schedules in.
963
+ string namespace = 1;
964
+ // How many to return at once.
965
+ int32 maximum_page_size = 2;
966
+ // Token to get the next page of results.
967
+ bytes next_page_token = 3;
968
+ }
969
+
970
+ message ListSchedulesResponse {
971
+ repeated temporal.api.schedule.v1.ScheduleListEntry schedules = 1;
972
+ bytes next_page_token = 2;
973
+ }
974
+
975
+ // (-- api-linter: core::0134::request-mask-required=disabled
976
+ // aip.dev/not-precedent: UpdateWorkerBuildIdOrderingRequest doesn't follow Google API format --)
977
+ // (-- api-linter: core::0134::request-resource-required=disabled
978
+ // aip.dev/not-precedent: UpdateWorkerBuildIdOrderingRequest RPC doesn't follow Google API format. --)
979
+ message UpdateWorkerBuildIdOrderingRequest {
980
+ string namespace = 1;
981
+ // Must be set, the task queue to apply changes to. Because all workers on
982
+ // a given task queue must have the same set of workflow & activity
983
+ // implementations, there is no reason to specify a task queue type here.
984
+ string task_queue = 2;
985
+ // The version id we are targeting.
986
+ temporal.api.taskqueue.v1.VersionId version_id = 3;
987
+ // When set, indicates that the `version_id` in this message is compatible
988
+ // with the one specified in this field. Because compatability should form
989
+ // a DAG, any build id can only be the "next compatible" version for one
990
+ // other ID of a certain type at a time, and any setting which would create a cycle is invalid.
991
+ temporal.api.taskqueue.v1.VersionId previous_compatible = 4;
992
+ // When set, establishes the specified `version_id` as the default of it's type
993
+ // for the queue. Workers matching it will begin processing new workflow executions.
994
+ // The existing default will be marked as a previous incompatible version
995
+ // to this one, assuming it is not also in `is_compatible_with`.
996
+ bool become_default = 5;
997
+ }
998
+ message UpdateWorkerBuildIdOrderingResponse {}
999
+
1000
+ // (-- api-linter: core::0134::request-resource-required=disabled
1001
+ // aip.dev/not-precedent: GetWorkerBuildIdOrderingRequest RPC doesn't follow Google API format. --)
1002
+ message GetWorkerBuildIdOrderingRequest {
1003
+ string namespace = 1;
1004
+ // Must be set, the task queue to interrogate about worker id ordering
1005
+ string task_queue = 2;
1006
+ // Limits how deep the returned DAG will go. 1 will return only the
1007
+ // default build id. A default/0 value will return the entire graph.
1008
+ int32 max_depth = 3;
1009
+ }
1010
+ message GetWorkerBuildIdOrderingResponse {
1011
+ // The currently established default version
1012
+ temporal.api.taskqueue.v1.VersionIdNode current_default = 1;
1013
+ // Other current latest-compatible versions who are not the overall default. These are the
1014
+ // versions that will be used when generating new tasks by following the graph from the
1015
+ // version of the last task out to a leaf.
1016
+ repeated temporal.api.taskqueue.v1.VersionIdNode compatible_leaves = 2;
1017
+ }
1018
+
1019
+ // (-- api-linter: core::0134=disabled
1020
+ // aip.dev/not-precedent: Update RPCs don't follow Google API format. --)
1021
+ message UpdateWorkflowRequest {
1022
+ // A unique ID for this logical request
1023
+ string request_id = 1;
1024
+
1025
+ // The manner in which the update result will be accessed.
1026
+ // This field requires a non-default value; the default value of the enum
1027
+ // will result in an error.
1028
+ temporal.api.enums.v1.WorkflowUpdateResultAccessStyle result_access_style = 2;
1029
+
1030
+ // The namespace name of the target workflow
1031
+ string namespace = 3;
1032
+ // The target workflow id and (optionally) a specific run thereof
1033
+ // (-- api-linter: core::0203::optional=disabled
1034
+ // aip.dev/not-precedent: false positive triggered by the word "optional" --)
1035
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 4;
1036
+ // If set, this call will error if the most recent (if no run id is set on
1037
+ // `workflow_execution`), or specified (if it is) workflow execution is not
1038
+ // part of the same execution chain as this id.
1039
+ string first_execution_run_id = 5;
1040
+
1041
+ // The name under which the workflow update function is registered and the
1042
+ // arguments to pass to said function.
1043
+ temporal.api.update.v1.WorkflowUpdate update = 6;
1044
+ }
1045
+
1046
+ message UpdateWorkflowResponse {
1047
+ // An opaque token that can be used to retrieve the update result via
1048
+ // polling if it is not returned as part of the gRPC response
1049
+ bytes update_token = 1;
1050
+ // The success or failure status of the update
1051
+ oneof result {
1052
+ temporal.api.common.v1.Payloads success = 2;
1053
+ temporal.api.failure.v1.Failure failure = 3;
1054
+ }
1055
+ }
1056
+
1057
+ message StartBatchOperationRequest {
1058
+ // Namespace that contains the batch operation
1059
+ string namespace = 1;
1060
+ // Visibility query defines the the group of workflow to do batch operation
1061
+ string visibility_query = 2;
1062
+ // Operation input
1063
+ oneof operation {
1064
+ temporal.api.batch.v1.BatchOperationTermination termination_operation = 10;
1065
+ temporal.api.batch.v1.BatchOperationSignal signal_operation = 11;
1066
+ temporal.api.batch.v1.BatchOperationCancellation cancellation_operation = 12;
1067
+ }
1068
+ }
1069
+
1070
+ message StartBatchOperationResponse {
1071
+ // Batch job id
1072
+ string job_id = 1;
1073
+ }
1074
+
1075
+ message StopBatchOperationRequest {
1076
+ // Namespace that contains the batch operation
1077
+ string namespace = 1;
1078
+ // Batch job id
1079
+ string job_id = 2;
1080
+ }
1081
+
1082
+ message StopBatchOperationResponse {
1083
+ }
1084
+
1085
+ message DescribeBatchOperationRequest {
1086
+ // Namespace that contains the batch operation
1087
+ string namespace = 1;
1088
+ // Batch job id
1089
+ string job_id = 2;
1090
+ }
1091
+
1092
+ message DescribeBatchOperationResponse {
1093
+ // Batch operation type
1094
+ temporal.api.enums.v1.BatchOperationType operation_type = 1;
1095
+ // Batch job ID
1096
+ string job_id = 2;
1097
+ // Batch operation state
1098
+ temporal.api.enums.v1.BatchOperationState state = 3;
1099
+ // Batch operation start time
1100
+ google.protobuf.Timestamp start_time = 4 [(gogoproto.stdtime) = true];
1101
+ // Batch operation close time
1102
+ google.protobuf.Timestamp close_time = 5 [(gogoproto.stdtime) = true];
1103
+ // Total operation count
1104
+ int64 total_operation_count = 6;
1105
+ // Complete operation count
1106
+ int64 complete_operation_count = 7;
1107
+ // Failure operation count
1108
+ int64 failure_operation_count = 8;
1109
+ }
1110
+
1111
+ message ListBatchOperationsRequest {
1112
+ // Namespace that contains the batch operation
1113
+ string namespace = 1;
1114
+ // List page size
1115
+ int32 page_size = 2;
1116
+ // Next page token
1117
+ bytes next_page_token = 3;
1118
+ }
1119
+
1120
+ message ListBatchOperationsResponse {
1121
+ // BatchOperationInfo contains the basic info about batch operation
1122
+ repeated temporal.api.batch.v1.BatchOperationInfo operation_info = 1;
1123
+ bytes next_page_token = 2;
1124
+ }