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,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
+ }