temporalio 0.0.2 → 0.1.0

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -23
  3. data/bridge/Cargo.lock +168 -59
  4. data/bridge/Cargo.toml +4 -2
  5. data/bridge/sdk-core/README.md +19 -6
  6. data/bridge/sdk-core/client/src/lib.rs +215 -39
  7. data/bridge/sdk-core/client/src/metrics.rs +17 -8
  8. data/bridge/sdk-core/client/src/raw.rs +4 -4
  9. data/bridge/sdk-core/client/src/retry.rs +32 -20
  10. data/bridge/sdk-core/core/Cargo.toml +22 -9
  11. data/bridge/sdk-core/core/src/abstractions.rs +203 -14
  12. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +76 -41
  13. data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
  14. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +204 -83
  15. data/bridge/sdk-core/core/src/core_tests/queries.rs +3 -4
  16. data/bridge/sdk-core/core/src/core_tests/workers.rs +1 -3
  17. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +397 -54
  18. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
  19. data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
  20. data/bridge/sdk-core/core/src/lib.rs +16 -9
  21. data/bridge/sdk-core/core/src/telemetry/log_export.rs +1 -1
  22. data/bridge/sdk-core/core/src/telemetry/metrics.rs +69 -35
  23. data/bridge/sdk-core/core/src/telemetry/mod.rs +29 -13
  24. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +17 -12
  25. data/bridge/sdk-core/core/src/test_help/mod.rs +62 -12
  26. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
  27. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
  28. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +352 -122
  29. data/bridge/sdk-core/core/src/worker/activities.rs +233 -157
  30. data/bridge/sdk-core/core/src/worker/client/mocks.rs +22 -2
  31. data/bridge/sdk-core/core/src/worker/client.rs +18 -2
  32. data/bridge/sdk-core/core/src/worker/mod.rs +165 -58
  33. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  34. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
  35. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +856 -277
  36. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +100 -43
  37. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +7 -7
  38. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +5 -4
  39. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +87 -27
  40. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +5 -4
  41. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +5 -4
  42. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +5 -4
  43. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +137 -62
  44. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +25 -17
  45. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +7 -6
  46. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +103 -152
  47. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +7 -7
  48. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -9
  49. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
  50. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -7
  51. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +5 -16
  52. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +201 -121
  53. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +11 -14
  54. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +30 -15
  55. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1026 -376
  56. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +460 -384
  57. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
  58. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
  59. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
  60. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +448 -718
  63. data/bridge/sdk-core/core-api/Cargo.toml +2 -1
  64. data/bridge/sdk-core/core-api/src/errors.rs +1 -34
  65. data/bridge/sdk-core/core-api/src/lib.rs +6 -2
  66. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -6
  67. data/bridge/sdk-core/core-api/src/worker.rs +14 -1
  68. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
  69. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
  70. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  71. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +5 -17
  72. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +11 -0
  73. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +1 -6
  74. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +6 -6
  75. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +5 -0
  76. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +22 -6
  77. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +48 -19
  78. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -0
  79. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +3 -0
  80. data/bridge/sdk-core/protos/api_upstream/temporal/api/{enums/v1/interaction_type.proto → protocol/v1/message.proto} +29 -11
  81. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
  82. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +111 -0
  83. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +59 -28
  84. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
  85. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
  86. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
  87. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
  88. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
  89. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
  90. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
  91. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +7 -0
  92. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +1 -0
  93. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
  94. data/bridge/sdk-core/sdk/Cargo.toml +3 -2
  95. data/bridge/sdk-core/sdk/src/lib.rs +87 -20
  96. data/bridge/sdk-core/sdk/src/workflow_future.rs +9 -8
  97. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  98. data/bridge/sdk-core/sdk-core-protos/build.rs +36 -1
  99. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +100 -87
  100. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +5 -1
  101. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +175 -57
  102. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  103. data/bridge/sdk-core/test-utils/Cargo.toml +3 -1
  104. data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
  105. data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
  106. data/bridge/sdk-core/test-utils/src/lib.rs +82 -23
  107. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  108. data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
  109. data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
  110. data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
  111. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
  112. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -3
  113. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
  114. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
  115. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
  116. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
  117. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
  118. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
  119. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
  120. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
  121. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
  122. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
  123. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +72 -191
  124. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -0
  125. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
  126. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
  127. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
  128. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
  129. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
  130. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
  131. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
  132. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +10 -11
  133. data/bridge/sdk-core/tests/main.rs +3 -13
  134. data/bridge/sdk-core/tests/runner.rs +75 -36
  135. data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
  136. data/bridge/src/connection.rs +41 -25
  137. data/bridge/src/lib.rs +269 -14
  138. data/bridge/src/runtime.rs +1 -1
  139. data/bridge/src/test_server.rs +153 -0
  140. data/bridge/src/worker.rs +89 -16
  141. data/lib/gen/temporal/api/command/v1/message_pb.rb +4 -18
  142. data/lib/gen/temporal/api/common/v1/message_pb.rb +4 -0
  143. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +1 -3
  144. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +3 -3
  145. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +2 -0
  146. data/lib/gen/temporal/api/enums/v1/update_pb.rb +6 -4
  147. data/lib/gen/temporal/api/history/v1/message_pb.rb +27 -19
  148. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +1 -0
  149. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +3 -0
  150. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
  151. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
  152. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
  153. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
  154. data/lib/gen/temporal/api/update/v1/message_pb.rb +72 -0
  155. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +26 -16
  156. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
  157. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
  158. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
  159. data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
  160. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
  161. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
  162. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +27 -21
  163. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +28 -24
  164. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
  165. data/lib/temporalio/activity/context.rb +13 -8
  166. data/lib/temporalio/activity/info.rb +1 -1
  167. data/lib/temporalio/bridge/connect_options.rb +15 -0
  168. data/lib/temporalio/bridge/retry_config.rb +24 -0
  169. data/lib/temporalio/bridge/tls_options.rb +19 -0
  170. data/lib/temporalio/client/implementation.rb +8 -8
  171. data/lib/temporalio/connection/retry_config.rb +44 -0
  172. data/lib/temporalio/connection/service.rb +20 -0
  173. data/lib/temporalio/connection/test_service.rb +92 -0
  174. data/lib/temporalio/connection/tls_options.rb +51 -0
  175. data/lib/temporalio/connection/workflow_service.rb +731 -0
  176. data/lib/temporalio/connection.rb +55 -720
  177. data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
  178. data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
  179. data/lib/temporalio/interceptor/chain.rb +5 -5
  180. data/lib/temporalio/interceptor/client.rb +8 -4
  181. data/lib/temporalio/interceptor.rb +22 -0
  182. data/lib/temporalio/retry_policy.rb +13 -3
  183. data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
  184. data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
  185. data/lib/temporalio/testing/workflow_environment.rb +112 -0
  186. data/lib/temporalio/testing.rb +175 -0
  187. data/lib/temporalio/version.rb +1 -1
  188. data/lib/temporalio/worker/activity_runner.rb +26 -4
  189. data/lib/temporalio/worker/activity_worker.rb +44 -18
  190. data/lib/temporalio/worker/sync_worker.rb +47 -11
  191. data/lib/temporalio/worker.rb +27 -21
  192. data/lib/temporalio/workflow/async.rb +46 -0
  193. data/lib/temporalio/workflow/future.rb +138 -0
  194. data/lib/temporalio/workflow/info.rb +76 -0
  195. data/temporalio.gemspec +4 -3
  196. metadata +67 -17
  197. data/bridge/sdk-core/Cargo.lock +0 -2606
  198. data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +0 -87
  199. data/lib/bridge.so +0 -0
  200. data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +0 -25
  201. data/lib/gen/temporal/api/interaction/v1/message_pb.rb +0 -49
  202. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
data/bridge/src/worker.rs CHANGED
@@ -1,14 +1,15 @@
1
1
  use crate::connection::Client;
2
2
  use crate::runtime::{Callback, Command, Runtime};
3
3
  use prost::Message;
4
- use std::sync::Arc;
5
4
  use std::sync::mpsc::Sender;
6
- use temporal_sdk_core::api::{Worker as WorkerTrait};
7
- use temporal_sdk_core_api::errors::{PollActivityError};
5
+ use std::sync::Arc;
6
+ use temporal_sdk_core::api::Worker as WorkerTrait;
7
+ use temporal_sdk_core_api::errors::{PollActivityError, PollWfError};
8
8
  use temporal_sdk_core_api::worker::{WorkerConfigBuilder, WorkerConfigBuilderError};
9
+ use temporal_sdk_core_protos::coresdk::workflow_completion::WorkflowActivationCompletion;
9
10
  use temporal_sdk_core_protos::coresdk::{ActivityHeartbeat, ActivityTaskCompletion};
10
11
  use thiserror::Error;
11
- use tokio::runtime::{Runtime as TokioRuntime};
12
+ use tokio::runtime::Runtime as TokioRuntime;
12
13
 
13
14
  #[derive(Error, Debug)]
14
15
  pub enum WorkerError {
@@ -24,12 +25,24 @@ pub enum WorkerError {
24
25
  #[error(transparent)]
25
26
  UnableToPollActivityTask(#[from] temporal_sdk_core::api::errors::PollActivityError),
26
27
 
28
+ #[error(transparent)]
29
+ UnableToPollWorkflowActivation(#[from] temporal_sdk_core::api::errors::PollWfError),
30
+
27
31
  #[error(transparent)]
28
32
  UnableToCompleteActivityTask(#[from] temporal_sdk_core::api::errors::CompleteActivityError),
29
33
 
34
+ #[error(transparent)]
35
+ UnableToCompleteWorkflowActivation(#[from] temporal_sdk_core::api::errors::CompleteWfError),
36
+
30
37
  #[error("Unable to send a request. Channel is closed")]
31
38
  ChannelClosed(),
32
39
 
40
+ #[error("Worker has already been shutdown")]
41
+ WorkerHasBeenShutdown(),
42
+
43
+ #[error("Unexpected error: {0}")]
44
+ UnexpectedError(String),
45
+
33
46
  #[error("Core worker is shutting down")]
34
47
  Shutdown(),
35
48
  }
@@ -37,18 +50,20 @@ pub enum WorkerError {
37
50
  pub type WorkerResult = Result<Vec<u8>, WorkerError>;
38
51
 
39
52
  pub struct Worker {
40
- core_worker: Arc<temporal_sdk_core::Worker>,
53
+ core_worker: Option<Arc<temporal_sdk_core::Worker>>,
41
54
  tokio_runtime: Arc<TokioRuntime>,
42
55
  callback_tx: Sender<Command>,
43
56
  }
44
57
 
45
58
  impl Worker {
46
59
  // TODO: Extend this to include full worker config
47
- pub fn new(runtime: &Runtime, client: &Client, namespace: &str, task_queue: &str) -> Result<Worker, WorkerError> {
60
+ pub fn new(runtime: &Runtime, client: &Client, namespace: &str, task_queue: &str, max_cached_workflows: u32, no_remote_activity: bool) -> Result<Worker, WorkerError> {
48
61
  let config = WorkerConfigBuilder::default()
49
62
  .namespace(namespace)
50
63
  .task_queue(task_queue)
51
64
  .worker_build_id("test-worker-build") // TODO: replace this with an actual build id
65
+ .max_cached_workflows(usize::try_from(max_cached_workflows).unwrap())
66
+ .no_remote_activities(no_remote_activity)
52
67
  .build()?;
53
68
 
54
69
  let core_worker = runtime.tokio_runtime.block_on(async move {
@@ -56,14 +71,14 @@ impl Worker {
56
71
  }).expect("Failed to initialize Core Worker");
57
72
 
58
73
  Ok(Worker {
59
- core_worker: Arc::new(core_worker),
74
+ core_worker: Some(Arc::new(core_worker)),
60
75
  tokio_runtime: runtime.tokio_runtime.clone(),
61
76
  callback_tx: runtime.callback_tx.clone(),
62
77
  })
63
78
  }
64
79
 
65
80
  pub fn poll_activity_task<F>(&self, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
66
- let core_worker = self.core_worker.clone();
81
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
67
82
  let callback_tx = self.callback_tx.clone();
68
83
 
69
84
  self.tokio_runtime.spawn(async move {
@@ -85,7 +100,7 @@ impl Worker {
85
100
  }
86
101
 
87
102
  pub fn complete_activity_task<F>(&self, bytes: Vec<u8>, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
88
- let core_worker = self.core_worker.clone();
103
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
89
104
  let callback_tx = self.callback_tx.clone();
90
105
  let proto = ActivityTaskCompletion::decode(&*bytes)?;
91
106
 
@@ -104,21 +119,79 @@ impl Worker {
104
119
  }
105
120
 
106
121
  pub fn record_activity_heartbeat(&self, bytes: Vec<u8>) -> Result<(), WorkerError> {
122
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
107
123
  let proto = ActivityHeartbeat::decode(&*bytes)?;
108
- self.core_worker.record_activity_heartbeat(proto);
124
+
125
+ core_worker.record_activity_heartbeat(proto);
126
+
127
+ Ok(())
128
+ }
129
+
130
+ pub fn poll_workflow_activation<F>(&self, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
131
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
132
+ let callback_tx = self.callback_tx.clone();
133
+
134
+ self.tokio_runtime.spawn(async move {
135
+ let result = core_worker.poll_workflow_activation().await;
136
+
137
+ let callback: Callback = match result {
138
+ Ok(task) => {
139
+ let bytes = task.encode_to_vec();
140
+ Box::new(move || callback(Ok(bytes)))
141
+ },
142
+ Err(PollWfError::ShutDown) => Box::new(move || callback(Err(WorkerError::Shutdown()))),
143
+ Err(e) => Box::new(move || callback(Err(WorkerError::UnableToPollWorkflowActivation(e))))
144
+ };
145
+
146
+ callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
147
+ });
109
148
 
110
149
  Ok(())
111
150
  }
112
151
 
113
- pub fn initiate_shutdown(&self) {
114
- self.core_worker.initiate_shutdown();
152
+ pub fn complete_workflow_activation<F>(&self, bytes: Vec<u8>, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
153
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
154
+ let callback_tx = self.callback_tx.clone();
155
+ let proto = WorkflowActivationCompletion::decode(&*bytes)?;
156
+
157
+ self.tokio_runtime.spawn(async move {
158
+ let result = core_worker.complete_workflow_activation(proto).await;
159
+
160
+ let callback: Callback = match result {
161
+ Ok(()) => Box::new(move || callback(Ok(vec!()))),
162
+ Err(e) => Box::new(move || callback(Err(WorkerError::UnableToCompleteWorkflowActivation(e))))
163
+ };
164
+
165
+ callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
166
+ });
167
+
168
+ Ok(())
115
169
  }
116
170
 
117
- pub fn shutdown(&self) {
118
- let core_worker = self.core_worker.clone();
171
+ pub fn initiate_shutdown(&self) -> Result<(), WorkerError> {
172
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
173
+
174
+ core_worker.initiate_shutdown();
175
+
176
+ Ok(())
177
+ }
178
+
179
+ pub fn finalize_shutdown(&mut self) -> Result<(), WorkerError> {
180
+ // Take the worker out of the option and leave None
181
+ let core_worker = self.core_worker.take().ok_or(WorkerError::WorkerHasBeenShutdown())?;
182
+
183
+ // By design, there should be no more task using the worker by the time the Ruby code calls finalize_shutdown.
184
+ // This should therefore be the very last reference remaining to the worker. This is a condition for try_unwrap to work.
185
+ let core_worker = Arc::try_unwrap(core_worker).map_err(|arc| {
186
+ WorkerError::UnexpectedError(format!(
187
+ "Can't finalize worker's shutdown because there are still active references to it (expected exactly 1 reference, but got {})",
188
+ Arc::strong_count(&arc)
189
+ ))
190
+ })?;
119
191
 
120
192
  self.tokio_runtime.block_on(async move {
121
- core_worker.shutdown().await;
122
- });
193
+ core_worker.finalize_shutdown().await;
194
+ Ok(())
195
+ })
123
196
  }
124
197
  }
@@ -9,7 +9,6 @@ require 'temporal/api/enums/v1/workflow_pb'
9
9
  require 'temporal/api/enums/v1/command_type_pb'
10
10
  require 'temporal/api/common/v1/message_pb'
11
11
  require 'temporal/api/failure/v1/message_pb'
12
- require 'temporal/api/interaction/v1/message_pb'
13
12
  require 'temporal/api/taskqueue/v1/message_pb'
14
13
 
15
14
  Google::Protobuf::DescriptorPool.generated_pool.build do
@@ -109,17 +108,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
109
108
  optional :memo, :message, 15, "temporal.api.common.v1.Memo"
110
109
  optional :search_attributes, :message, 16, "temporal.api.common.v1.SearchAttributes"
111
110
  end
112
- add_message "temporal.api.command.v1.AcceptWorkflowUpdateCommandAttributes" do
113
- optional :meta, :message, 1, "temporal.api.interaction.v1.Meta"
114
- optional :input, :message, 2, "temporal.api.interaction.v1.Input"
115
- end
116
- add_message "temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes" do
117
- optional :meta, :message, 1, "temporal.api.interaction.v1.Meta"
118
- optional :output, :message, 2, "temporal.api.interaction.v1.Output"
119
- end
120
- add_message "temporal.api.command.v1.RejectWorkflowUpdateCommandAttributes" do
121
- optional :meta, :message, 1, "temporal.api.interaction.v1.Meta"
122
- optional :failure, :message, 2, "temporal.api.failure.v1.Failure"
111
+ add_message "temporal.api.command.v1.ProtocolMessageCommandAttributes" do
112
+ optional :message_id, :string, 1
123
113
  end
124
114
  add_message "temporal.api.command.v1.Command" do
125
115
  optional :command_type, :enum, 1, "temporal.api.enums.v1.CommandType"
@@ -137,10 +127,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
137
127
  optional :start_child_workflow_execution_command_attributes, :message, 12, "temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes"
138
128
  optional :signal_external_workflow_execution_command_attributes, :message, 13, "temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes"
139
129
  optional :upsert_workflow_search_attributes_command_attributes, :message, 14, "temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes"
140
- optional :accept_workflow_update_command_attributes, :message, 15, "temporal.api.command.v1.AcceptWorkflowUpdateCommandAttributes"
141
- optional :complete_workflow_update_command_attributes, :message, 16, "temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes"
130
+ optional :protocol_message_command_attributes, :message, 15, "temporal.api.command.v1.ProtocolMessageCommandAttributes"
142
131
  optional :modify_workflow_properties_command_attributes, :message, 17, "temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes"
143
- optional :reject_workflow_update_command_attributes, :message, 18, "temporal.api.command.v1.RejectWorkflowUpdateCommandAttributes"
144
132
  end
145
133
  end
146
134
  end
@@ -164,9 +152,7 @@ module Temporalio
164
152
  RecordMarkerCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.RecordMarkerCommandAttributes").msgclass
165
153
  ContinueAsNewWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes").msgclass
166
154
  StartChildWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes").msgclass
167
- AcceptWorkflowUpdateCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.AcceptWorkflowUpdateCommandAttributes").msgclass
168
- CompleteWorkflowUpdateCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes").msgclass
169
- RejectWorkflowUpdateCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.RejectWorkflowUpdateCommandAttributes").msgclass
155
+ ProtocolMessageCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ProtocolMessageCommandAttributes").msgclass
170
156
  Command = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.Command").msgclass
171
157
  end
172
158
  end
@@ -46,6 +46,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
46
46
  optional :maximum_attempts, :int32, 4
47
47
  repeated :non_retryable_error_types, :string, 5
48
48
  end
49
+ add_message "temporal.api.common.v1.MeteringMetadata" do
50
+ optional :nonfirst_local_activity_execution_attempts, :uint32, 13
51
+ end
49
52
  end
50
53
  end
51
54
 
@@ -63,6 +66,7 @@ module Temporalio
63
66
  WorkflowType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.WorkflowType").msgclass
64
67
  ActivityType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.ActivityType").msgclass
65
68
  RetryPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.RetryPolicy").msgclass
69
+ MeteringMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.MeteringMetadata").msgclass
66
70
  end
67
71
  end
68
72
  end
@@ -20,10 +20,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
20
20
  value :COMMAND_TYPE_START_CHILD_WORKFLOW_EXECUTION, 11
21
21
  value :COMMAND_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION, 12
22
22
  value :COMMAND_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES, 13
23
- value :COMMAND_TYPE_ACCEPT_WORKFLOW_UPDATE, 14
24
- value :COMMAND_TYPE_COMPLETE_WORKFLOW_UPDATE, 15
23
+ value :COMMAND_TYPE_PROTOCOL_MESSAGE, 14
25
24
  value :COMMAND_TYPE_MODIFY_WORKFLOW_PROPERTIES, 16
26
- value :COMMAND_TYPE_REJECT_WORKFLOW_UPDATE, 17
27
25
  end
28
26
  end
29
27
  end
@@ -47,9 +47,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
47
47
  value :EVENT_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED, 38
48
48
  value :EVENT_TYPE_EXTERNAL_WORKFLOW_EXECUTION_SIGNALED, 39
49
49
  value :EVENT_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES, 40
50
- value :EVENT_TYPE_WORKFLOW_UPDATE_REJECTED, 41
51
- value :EVENT_TYPE_WORKFLOW_UPDATE_ACCEPTED, 42
52
- value :EVENT_TYPE_WORKFLOW_UPDATE_COMPLETED, 43
50
+ value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_ACCEPTED, 41
51
+ value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_REJECTED, 42
52
+ value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_COMPLETED, 43
53
53
  value :EVENT_TYPE_WORKFLOW_PROPERTIES_MODIFIED_EXTERNALLY, 44
54
54
  value :EVENT_TYPE_ACTIVITY_PROPERTIES_MODIFIED_EXTERNALLY, 45
55
55
  value :EVENT_TYPE_WORKFLOW_PROPERTIES_MODIFIED, 46
@@ -36,6 +36,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
36
36
  value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_ACTIVITIES_LIMIT_EXCEEDED, 27
37
37
  value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_SIGNALS_LIMIT_EXCEEDED, 28
38
38
  value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_REQUEST_CANCEL_LIMIT_EXCEEDED, 29
39
+ value :WORKFLOW_TASK_FAILED_CAUSE_BAD_UPDATE_WORKFLOW_EXECUTION_MESSAGE, 30
40
+ value :WORKFLOW_TASK_FAILED_CAUSE_UNHANDLED_UPDATE, 31
39
41
  end
40
42
  add_enum "temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause" do
41
43
  value :START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED, 0
@@ -5,9 +5,11 @@ require 'google/protobuf'
5
5
 
6
6
  Google::Protobuf::DescriptorPool.generated_pool.build do
7
7
  add_file("temporal/api/enums/v1/update.proto", :syntax => :proto3) do
8
- add_enum "temporal.api.enums.v1.WorkflowUpdateResultAccessStyle" do
9
- value :WORKFLOW_UPDATE_RESULT_ACCESS_STYLE_UNSPECIFIED, 0
10
- value :WORKFLOW_UPDATE_RESULT_ACCESS_STYLE_REQUIRE_INLINE, 1
8
+ add_enum "temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage" do
9
+ value :UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_UNSPECIFIED, 0
10
+ value :UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_ADMITTED, 1
11
+ value :UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_ACCEPTED, 2
12
+ value :UPDATE_WORKFLOW_EXECUTION_LIFECYCLE_STAGE_COMPLETED, 3
11
13
  end
12
14
  end
13
15
  end
@@ -16,7 +18,7 @@ module Temporalio
16
18
  module Api
17
19
  module Enums
18
20
  module V1
19
- WorkflowUpdateResultAccessStyle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.enums.v1.WorkflowUpdateResultAccessStyle").enummodule
21
+ UpdateWorkflowExecutionLifecycleStage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage").enummodule
20
22
  end
21
23
  end
22
24
  end
@@ -11,9 +11,10 @@ require 'temporal/api/enums/v1/failed_cause_pb'
11
11
  require 'temporal/api/enums/v1/workflow_pb'
12
12
  require 'temporal/api/common/v1/message_pb'
13
13
  require 'temporal/api/failure/v1/message_pb'
14
- require 'temporal/api/interaction/v1/message_pb'
15
14
  require 'temporal/api/taskqueue/v1/message_pb'
15
+ require 'temporal/api/update/v1/message_pb'
16
16
  require 'temporal/api/workflow/v1/message_pb'
17
+ require 'temporal/api/sdk/v1/task_complete_metadata_pb'
17
18
 
18
19
  Google::Protobuf::DescriptorPool.generated_pool.build do
19
20
  add_file("temporal/api/history/v1/message.proto", :syntax => :proto3) do
@@ -95,6 +96,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
95
96
  optional :identity, :string, 3
96
97
  optional :binary_checksum, :string, 4
97
98
  optional :worker_versioning_id, :message, 5, "temporal.api.taskqueue.v1.VersionId"
99
+ optional :sdk_metadata, :message, 6, "temporal.api.sdk.v1.WorkflowTaskCompletedMetadata"
100
+ optional :metering_metadata, :message, 13, "temporal.api.common.v1.MeteringMetadata"
98
101
  end
99
102
  add_message "temporal.api.history.v1.WorkflowTaskTimedOutEventAttributes" do
100
103
  optional :scheduled_event_id, :int64, 1
@@ -347,18 +350,6 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
347
350
  optional :initiated_event_id, :int64, 4
348
351
  optional :started_event_id, :int64, 5
349
352
  end
350
- add_message "temporal.api.history.v1.WorkflowUpdateAcceptedEventAttributes" do
351
- optional :meta, :message, 1, "temporal.api.interaction.v1.Meta"
352
- optional :input, :message, 2, "temporal.api.interaction.v1.Input"
353
- end
354
- add_message "temporal.api.history.v1.WorkflowUpdateCompletedEventAttributes" do
355
- optional :meta, :message, 1, "temporal.api.interaction.v1.Meta"
356
- optional :output, :message, 2, "temporal.api.interaction.v1.Output"
357
- end
358
- add_message "temporal.api.history.v1.WorkflowUpdateRejectedEventAttributes" do
359
- optional :meta, :message, 1, "temporal.api.interaction.v1.Meta"
360
- optional :failure, :message, 2, "temporal.api.failure.v1.Failure"
361
- end
362
353
  add_message "temporal.api.history.v1.WorkflowPropertiesModifiedExternallyEventAttributes" do
363
354
  optional :new_task_queue, :string, 1
364
355
  optional :new_workflow_task_timeout, :message, 2, "google.protobuf.Duration"
@@ -370,6 +361,23 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
370
361
  optional :scheduled_event_id, :int64, 1
371
362
  optional :new_retry_policy, :message, 2, "temporal.api.common.v1.RetryPolicy"
372
363
  end
364
+ add_message "temporal.api.history.v1.WorkflowExecutionUpdateAcceptedEventAttributes" do
365
+ optional :protocol_instance_id, :string, 1
366
+ optional :accepted_request_message_id, :string, 2
367
+ optional :accepted_request_sequencing_event_id, :int64, 3
368
+ optional :accepted_request, :message, 4, "temporal.api.update.v1.Request"
369
+ end
370
+ add_message "temporal.api.history.v1.WorkflowExecutionUpdateCompletedEventAttributes" do
371
+ optional :meta, :message, 1, "temporal.api.update.v1.Meta"
372
+ optional :outcome, :message, 2, "temporal.api.update.v1.Outcome"
373
+ end
374
+ add_message "temporal.api.history.v1.WorkflowExecutionUpdateRejectedEventAttributes" do
375
+ optional :protocol_instance_id, :string, 1
376
+ optional :rejected_request_message_id, :string, 2
377
+ optional :rejected_request_sequencing_event_id, :int64, 3
378
+ optional :rejected_request, :message, 4, "temporal.api.update.v1.Request"
379
+ optional :failure, :message, 5, "temporal.api.failure.v1.Failure"
380
+ end
373
381
  add_message "temporal.api.history.v1.HistoryEvent" do
374
382
  optional :event_id, :int64, 1
375
383
  optional :event_time, :message, 2, "google.protobuf.Timestamp"
@@ -418,9 +426,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
418
426
  optional :signal_external_workflow_execution_failed_event_attributes, :message, 43, "temporal.api.history.v1.SignalExternalWorkflowExecutionFailedEventAttributes"
419
427
  optional :external_workflow_execution_signaled_event_attributes, :message, 44, "temporal.api.history.v1.ExternalWorkflowExecutionSignaledEventAttributes"
420
428
  optional :upsert_workflow_search_attributes_event_attributes, :message, 45, "temporal.api.history.v1.UpsertWorkflowSearchAttributesEventAttributes"
421
- optional :workflow_update_rejected_event_attributes, :message, 46, "temporal.api.history.v1.WorkflowUpdateRejectedEventAttributes"
422
- optional :workflow_update_accepted_event_attributes, :message, 47, "temporal.api.history.v1.WorkflowUpdateAcceptedEventAttributes"
423
- optional :workflow_update_completed_event_attributes, :message, 48, "temporal.api.history.v1.WorkflowUpdateCompletedEventAttributes"
429
+ optional :workflow_execution_update_accepted_event_attributes, :message, 46, "temporal.api.history.v1.WorkflowExecutionUpdateAcceptedEventAttributes"
430
+ optional :workflow_execution_update_rejected_event_attributes, :message, 47, "temporal.api.history.v1.WorkflowExecutionUpdateRejectedEventAttributes"
431
+ optional :workflow_execution_update_completed_event_attributes, :message, 48, "temporal.api.history.v1.WorkflowExecutionUpdateCompletedEventAttributes"
424
432
  optional :workflow_properties_modified_externally_event_attributes, :message, 49, "temporal.api.history.v1.WorkflowPropertiesModifiedExternallyEventAttributes"
425
433
  optional :activity_properties_modified_externally_event_attributes, :message, 50, "temporal.api.history.v1.ActivityPropertiesModifiedExternallyEventAttributes"
426
434
  optional :workflow_properties_modified_event_attributes, :message, 51, "temporal.api.history.v1.WorkflowPropertiesModifiedEventAttributes"
@@ -477,11 +485,11 @@ module Temporalio
477
485
  ChildWorkflowExecutionCanceledEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.ChildWorkflowExecutionCanceledEventAttributes").msgclass
478
486
  ChildWorkflowExecutionTimedOutEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.ChildWorkflowExecutionTimedOutEventAttributes").msgclass
479
487
  ChildWorkflowExecutionTerminatedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.ChildWorkflowExecutionTerminatedEventAttributes").msgclass
480
- WorkflowUpdateAcceptedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowUpdateAcceptedEventAttributes").msgclass
481
- WorkflowUpdateCompletedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowUpdateCompletedEventAttributes").msgclass
482
- WorkflowUpdateRejectedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowUpdateRejectedEventAttributes").msgclass
483
488
  WorkflowPropertiesModifiedExternallyEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowPropertiesModifiedExternallyEventAttributes").msgclass
484
489
  ActivityPropertiesModifiedExternallyEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.ActivityPropertiesModifiedExternallyEventAttributes").msgclass
490
+ WorkflowExecutionUpdateAcceptedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowExecutionUpdateAcceptedEventAttributes").msgclass
491
+ WorkflowExecutionUpdateCompletedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowExecutionUpdateCompletedEventAttributes").msgclass
492
+ WorkflowExecutionUpdateRejectedEventAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.WorkflowExecutionUpdateRejectedEventAttributes").msgclass
485
493
  HistoryEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.HistoryEvent").msgclass
486
494
  History = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.history.v1.History").msgclass
487
495
  end
@@ -26,6 +26,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
26
26
  optional :history_archival_uri, :string, 4
27
27
  optional :visibility_archival_state, :enum, 5, "temporal.api.enums.v1.ArchivalState"
28
28
  optional :visibility_archival_uri, :string, 6
29
+ map :custom_search_attribute_aliases, :string, :string, 7
29
30
  end
30
31
  add_message "temporal.api.namespace.v1.BadBinaries" do
31
32
  map :binaries, :string, :message, 1, "temporal.api.namespace.v1.BadBinaryInfo"
@@ -9,15 +9,18 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
9
9
  add_file("temporal/api/operatorservice/v1/request_response.proto", :syntax => :proto3) do
10
10
  add_message "temporal.api.operatorservice.v1.AddSearchAttributesRequest" do
11
11
  map :search_attributes, :string, :enum, 1, "temporal.api.enums.v1.IndexedValueType"
12
+ optional :namespace, :string, 2
12
13
  end
13
14
  add_message "temporal.api.operatorservice.v1.AddSearchAttributesResponse" do
14
15
  end
15
16
  add_message "temporal.api.operatorservice.v1.RemoveSearchAttributesRequest" do
16
17
  repeated :search_attributes, :string, 1
18
+ optional :namespace, :string, 2
17
19
  end
18
20
  add_message "temporal.api.operatorservice.v1.RemoveSearchAttributesResponse" do
19
21
  end
20
22
  add_message "temporal.api.operatorservice.v1.ListSearchAttributesRequest" do
23
+ optional :namespace, :string, 1
21
24
  end
22
25
  add_message "temporal.api.operatorservice.v1.ListSearchAttributesResponse" do
23
26
  map :custom_attributes, :string, :enum, 1, "temporal.api.enums.v1.IndexedValueType"
@@ -0,0 +1,30 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: temporal/api/protocol/v1/message.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'google/protobuf/any_pb'
7
+
8
+ Google::Protobuf::DescriptorPool.generated_pool.build do
9
+ add_file("temporal/api/protocol/v1/message.proto", :syntax => :proto3) do
10
+ add_message "temporal.api.protocol.v1.Message" do
11
+ optional :id, :string, 1
12
+ optional :protocol_instance_id, :string, 2
13
+ optional :body, :message, 5, "google.protobuf.Any"
14
+ oneof :sequencing_id do
15
+ optional :event_id, :int64, 3
16
+ optional :command_index, :int64, 4
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ module Temporalio
23
+ module Api
24
+ module Protocol
25
+ module V1
26
+ Message = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.protocol.v1.Message").msgclass
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,23 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: temporal/api/sdk/v1/task_complete_metadata.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ Google::Protobuf::DescriptorPool.generated_pool.build do
7
+ add_file("temporal/api/sdk/v1/task_complete_metadata.proto", :syntax => :proto3) do
8
+ add_message "temporal.api.sdk.v1.WorkflowTaskCompletedMetadata" do
9
+ repeated :core_used_flags, :uint32, 1
10
+ repeated :lang_used_flags, :uint32, 2
11
+ end
12
+ end
13
+ end
14
+
15
+ module Temporalio
16
+ module Api
17
+ module Sdk
18
+ module V1
19
+ WorkflowTaskCompletedMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.sdk.v1.WorkflowTaskCompletedMetadata").msgclass
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,49 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: temporal/api/testservice/v1/request_response.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'google/protobuf/duration_pb'
7
+ require 'google/protobuf/timestamp_pb'
8
+ require 'dependencies/gogoproto/gogo_pb'
9
+
10
+ Google::Protobuf::DescriptorPool.generated_pool.build do
11
+ add_file("temporal/api/testservice/v1/request_response.proto", :syntax => :proto3) do
12
+ add_message "temporal.api.testservice.v1.LockTimeSkippingRequest" do
13
+ end
14
+ add_message "temporal.api.testservice.v1.LockTimeSkippingResponse" do
15
+ end
16
+ add_message "temporal.api.testservice.v1.UnlockTimeSkippingRequest" do
17
+ end
18
+ add_message "temporal.api.testservice.v1.UnlockTimeSkippingResponse" do
19
+ end
20
+ add_message "temporal.api.testservice.v1.SleepUntilRequest" do
21
+ optional :timestamp, :message, 1, "google.protobuf.Timestamp"
22
+ end
23
+ add_message "temporal.api.testservice.v1.SleepRequest" do
24
+ optional :duration, :message, 1, "google.protobuf.Duration"
25
+ end
26
+ add_message "temporal.api.testservice.v1.SleepResponse" do
27
+ end
28
+ add_message "temporal.api.testservice.v1.GetCurrentTimeResponse" do
29
+ optional :time, :message, 1, "google.protobuf.Timestamp"
30
+ end
31
+ end
32
+ end
33
+
34
+ module Temporalio
35
+ module Api
36
+ module TestService
37
+ module V1
38
+ LockTimeSkippingRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.LockTimeSkippingRequest").msgclass
39
+ LockTimeSkippingResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.LockTimeSkippingResponse").msgclass
40
+ UnlockTimeSkippingRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.UnlockTimeSkippingRequest").msgclass
41
+ UnlockTimeSkippingResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.UnlockTimeSkippingResponse").msgclass
42
+ SleepUntilRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.SleepUntilRequest").msgclass
43
+ SleepRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.SleepRequest").msgclass
44
+ SleepResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.SleepResponse").msgclass
45
+ GetCurrentTimeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.testservice.v1.GetCurrentTimeResponse").msgclass
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,21 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: temporal/api/testservice/v1/service.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'temporal/api/testservice/v1/request_response_pb'
7
+ require 'google/protobuf/empty_pb'
8
+
9
+ Google::Protobuf::DescriptorPool.generated_pool.build do
10
+ add_file("temporal/api/testservice/v1/service.proto", :syntax => :proto3) do
11
+ end
12
+ end
13
+
14
+ module Temporalio
15
+ module Api
16
+ module TestService
17
+ module V1
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,72 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: temporal/api/update/v1/message.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'temporal/api/common/v1/message_pb'
7
+ require 'temporal/api/enums/v1/update_pb'
8
+ require 'temporal/api/failure/v1/message_pb'
9
+
10
+ Google::Protobuf::DescriptorPool.generated_pool.build do
11
+ add_file("temporal/api/update/v1/message.proto", :syntax => :proto3) do
12
+ add_message "temporal.api.update.v1.WaitPolicy" do
13
+ optional :lifecycle_stage, :enum, 1, "temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage"
14
+ end
15
+ add_message "temporal.api.update.v1.UpdateRef" do
16
+ optional :workflow_execution, :message, 1, "temporal.api.common.v1.WorkflowExecution"
17
+ optional :update_id, :string, 2
18
+ end
19
+ add_message "temporal.api.update.v1.Outcome" do
20
+ oneof :value do
21
+ optional :success, :message, 1, "temporal.api.common.v1.Payloads"
22
+ optional :failure, :message, 2, "temporal.api.failure.v1.Failure"
23
+ end
24
+ end
25
+ add_message "temporal.api.update.v1.Meta" do
26
+ optional :update_id, :string, 1
27
+ optional :identity, :string, 2
28
+ end
29
+ add_message "temporal.api.update.v1.Input" do
30
+ optional :header, :message, 1, "temporal.api.common.v1.Header"
31
+ optional :name, :string, 2
32
+ optional :args, :message, 3, "temporal.api.common.v1.Payloads"
33
+ end
34
+ add_message "temporal.api.update.v1.Request" do
35
+ optional :meta, :message, 1, "temporal.api.update.v1.Meta"
36
+ optional :input, :message, 2, "temporal.api.update.v1.Input"
37
+ end
38
+ add_message "temporal.api.update.v1.Rejection" do
39
+ optional :rejected_request_message_id, :string, 1
40
+ optional :rejected_request_sequencing_event_id, :int64, 2
41
+ optional :rejected_request, :message, 3, "temporal.api.update.v1.Request"
42
+ optional :failure, :message, 4, "temporal.api.failure.v1.Failure"
43
+ end
44
+ add_message "temporal.api.update.v1.Acceptance" do
45
+ optional :accepted_request_message_id, :string, 1
46
+ optional :accepted_request_sequencing_event_id, :int64, 2
47
+ optional :accepted_request, :message, 3, "temporal.api.update.v1.Request"
48
+ end
49
+ add_message "temporal.api.update.v1.Response" do
50
+ optional :meta, :message, 1, "temporal.api.update.v1.Meta"
51
+ optional :outcome, :message, 2, "temporal.api.update.v1.Outcome"
52
+ end
53
+ end
54
+ end
55
+
56
+ module Temporalio
57
+ module Api
58
+ module Update
59
+ module V1
60
+ WaitPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.WaitPolicy").msgclass
61
+ UpdateRef = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.UpdateRef").msgclass
62
+ Outcome = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Outcome").msgclass
63
+ Meta = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Meta").msgclass
64
+ Input = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Input").msgclass
65
+ Request = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Request").msgclass
66
+ Rejection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Rejection").msgclass
67
+ Acceptance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Acceptance").msgclass
68
+ Response = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.update.v1.Response").msgclass
69
+ end
70
+ end
71
+ end
72
+ end