temporalio 1.10.0 → 1.11.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +763 -768
  3. data/Gemfile +3 -2
  4. data/ext/Cargo.toml +3 -3
  5. data/lib/temporalio/api/activity/v1/message.rb +1 -1
  6. data/lib/temporalio/api/common/v1/message.rb +2 -1
  7. data/lib/temporalio/api/schedule/v1/message.rb +1 -1
  8. data/lib/temporalio/api/taskqueue/v1/message.rb +2 -1
  9. data/lib/temporalio/api/worker/v1/message.rb +1 -1
  10. data/lib/temporalio/api/workflowservice/v1/request_response.rb +1 -1
  11. data/lib/temporalio/client/connection.rb +4 -4
  12. data/lib/temporalio/contrib/aws/s3_driver/aws_sdk_s3_storage_driver_client.rb +52 -0
  13. data/lib/temporalio/contrib/aws/s3_driver/s3_storage_driver.rb +211 -0
  14. data/lib/temporalio/contrib/aws/s3_driver/s3_storage_driver_client.rb +56 -0
  15. data/lib/temporalio/contrib/aws/s3_driver.rb +22 -0
  16. data/lib/temporalio/contrib/open_telemetry.rb +1 -1
  17. data/lib/temporalio/converters/external_storage_concurrency.rb +4 -6
  18. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +1 -1
  19. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +1 -1
  20. data/lib/temporalio/converters/storage_driver_limiter.rb +6 -8
  21. data/lib/temporalio/converters/storage_driver_retrieve_context.rb +1 -2
  22. data/lib/temporalio/converters/storage_driver_store_context.rb +1 -2
  23. data/lib/temporalio/env_config.rb +89 -8
  24. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +2 -2
  25. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +3 -1
  26. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +2 -1
  27. data/lib/temporalio/internal/bridge/testing.rb +4 -2
  28. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +2 -2
  29. data/lib/temporalio/internal/worker/workflow_instance/context.rb +35 -24
  30. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +6 -4
  31. data/lib/temporalio/internal/worker/workflow_instance/nexus_client.rb +3 -2
  32. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +52 -19
  33. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +8 -2
  34. data/lib/temporalio/internal/worker/workflow_instance.rb +47 -26
  35. data/lib/temporalio/internal/worker/workflow_worker.rb +1 -2
  36. data/lib/temporalio/search_attributes.rb +4 -2
  37. data/lib/temporalio/testing/workflow_environment.rb +10 -2
  38. data/lib/temporalio/version.rb +1 -1
  39. data/lib/temporalio/worker/interceptor.rb +16 -8
  40. data/lib/temporalio/worker/workflow_replayer.rb +1 -1
  41. data/lib/temporalio/worker.rb +19 -12
  42. data/lib/temporalio/workflow/child_workflow_handle.rb +4 -1
  43. data/lib/temporalio/workflow/event_group.rb +157 -0
  44. data/lib/temporalio/workflow/external_workflow_handle.rb +9 -2
  45. data/lib/temporalio/workflow/future.rb +1 -1
  46. data/lib/temporalio/workflow/info.rb +4 -0
  47. data/lib/temporalio/workflow/nexus_client.rb +11 -3
  48. data/lib/temporalio/workflow.rb +114 -22
  49. data/rbi/temporalio/api/activity/v1/message.rbi +71 -2
  50. data/rbi/temporalio/api/common/v1/message.rbi +95 -0
  51. data/rbi/temporalio/api/schedule/v1/message.rbi +44 -4
  52. data/rbi/temporalio/api/taskqueue/v1/message.rbi +67 -0
  53. data/rbi/temporalio/api/worker/v1/message.rbi +22 -2
  54. data/rbi/temporalio/api/workflowservice/v1/request_response.rbi +126 -12
  55. data/rbi/temporalio/contrib/aws/s3_driver/aws_sdk_s3_storage_driver_client.rbi +8 -0
  56. data/rbi/temporalio/contrib/aws/s3_driver/s3_storage_driver.rbi +27 -0
  57. data/rbi/temporalio/contrib/aws/s3_driver/s3_storage_driver_client.rbi +17 -0
  58. data/rbi/temporalio/contrib/aws/s3_driver.rbi +5 -0
  59. data/rbi/temporalio/env_config.rbi +39 -4
  60. data/rbi/temporalio/internal/bridge/api/activity_result/activity_result.rbi +0 -19
  61. data/rbi/temporalio/internal/bridge/api/activity_task/activity_task.rbi +213 -2
  62. data/rbi/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbi +50 -4
  63. data/rbi/temporalio/internal/bridge/testing.rbi +17 -4
  64. data/rbi/temporalio/internal/bridge/worker.rbi +4 -4
  65. data/rbi/temporalio/internal/worker/workflow_instance/context.rbi +33 -24
  66. data/rbi/temporalio/internal/worker/workflow_instance/nexus_client.rbi +4 -2
  67. data/rbi/temporalio/internal/worker/workflow_instance/outbound_implementation.rbi +17 -6
  68. data/rbi/temporalio/internal/worker/workflow_instance/scheduler.rbi +1 -1
  69. data/rbi/temporalio/internal/worker/workflow_instance.rbi +5 -2
  70. data/rbi/temporalio/testing/workflow_environment.rbi +4 -0
  71. data/rbi/temporalio/worker/interceptor.rbi +24 -0
  72. data/rbi/temporalio/worker.rbi +8 -8
  73. data/rbi/temporalio/workflow/child_workflow_handle.rbi +3 -2
  74. data/rbi/temporalio/workflow/event_group.rbi +104 -0
  75. data/rbi/temporalio/workflow/external_workflow_handle.rbi +5 -4
  76. data/rbi/temporalio/workflow/info.rbi +3 -0
  77. data/rbi/temporalio/workflow/nexus_client.rbi +8 -4
  78. data/rbi/temporalio/workflow.rbi +70 -21
  79. data/sig/temporalio/api/activity/v1/message.rbs +31 -0
  80. data/sig/temporalio/api/common/v1/message.rbs +35 -0
  81. data/sig/temporalio/api/schedule/v1/message.rbs +20 -0
  82. data/sig/temporalio/api/taskqueue/v1/message.rbs +24 -0
  83. data/sig/temporalio/api/worker/v1/message.rbs +10 -0
  84. data/sig/temporalio/api/workflowservice/v1/request_response.rbs +58 -0
  85. data/sig/temporalio/contrib/aws/s3_driver/aws_sdk_s3_storage_driver_client.rbs +13 -0
  86. data/sig/temporalio/contrib/aws/s3_driver/s3_storage_driver.rbs +68 -0
  87. data/sig/temporalio/contrib/aws/s3_driver/s3_storage_driver_client.rbs +14 -0
  88. data/sig/temporalio/contrib/aws/s3_driver.rbs +8 -0
  89. data/sig/temporalio/env_config.rbs +20 -2
  90. data/sig/temporalio/internal/bridge/api/activity_result/activity_result.rbs +6 -41
  91. data/sig/temporalio/internal/bridge/api/activity_task/activity_task.rbs +99 -0
  92. data/sig/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbs +22 -0
  93. data/sig/temporalio/internal/bridge/testing.rbs +7 -3
  94. data/sig/temporalio/internal/bridge/worker.rbs +4 -4
  95. data/sig/temporalio/internal/worker/workflow_instance/context.rbs +19 -13
  96. data/sig/temporalio/internal/worker/workflow_instance/nexus_client.rbs +2 -1
  97. data/sig/temporalio/internal/worker/workflow_instance/outbound_implementation.rbs +8 -5
  98. data/sig/temporalio/internal/worker/workflow_instance/scheduler.rbs +1 -1
  99. data/sig/temporalio/internal/worker/workflow_instance.rbs +2 -1
  100. data/sig/temporalio/testing/workflow_environment.rbs +8 -4
  101. data/sig/temporalio/worker/interceptor.rbs +24 -8
  102. data/sig/temporalio/worker.rbs +12 -12
  103. data/sig/temporalio/workflow/child_workflow_handle.rbs +2 -1
  104. data/sig/temporalio/workflow/event_group.rbs +37 -0
  105. data/sig/temporalio/workflow/external_workflow_handle.rbs +3 -2
  106. data/sig/temporalio/workflow/info.rbs +2 -0
  107. data/sig/temporalio/workflow/nexus_client.rbs +4 -2
  108. data/sig/temporalio/workflow.rbs +27 -11
  109. metadata +16 -1
@@ -55,6 +55,7 @@ class Temporalio::Testing::WorkflowEnvironment
55
55
  dev_server_download_dest_dir: T.nilable(String),
56
56
  dev_server_extra_args: T::Array[String],
57
57
  dev_server_download_ttl: T.nilable(Float),
58
+ dev_server_startup_timeout: T.nilable(Float),
58
59
  block: T.nilable(T.proc.params(arg0: Temporalio::Testing::WorkflowEnvironment).returns(T.type_parameter(:T)))
59
60
  ).returns(T.any(Temporalio::Testing::WorkflowEnvironment, T.type_parameter(:T)))
60
61
  end
@@ -78,6 +79,7 @@ class Temporalio::Testing::WorkflowEnvironment
78
79
  dev_server_download_dest_dir: T.unsafe(nil),
79
80
  dev_server_extra_args: T.unsafe(nil),
80
81
  dev_server_download_ttl: T.unsafe(nil),
82
+ dev_server_startup_timeout: T.unsafe(nil),
81
83
  &block
82
84
  ); end
83
85
 
@@ -95,6 +97,7 @@ class Temporalio::Testing::WorkflowEnvironment
95
97
  test_server_download_dest_dir: T.nilable(String),
96
98
  test_server_extra_args: T::Array[String],
97
99
  test_server_download_ttl: T.nilable(Float),
100
+ test_server_startup_timeout: T.nilable(Float),
98
101
  block: T.nilable(T.proc.params(arg0: Temporalio::Testing::WorkflowEnvironment).returns(T.type_parameter(:T)))
99
102
  ).returns(T.any(Temporalio::Testing::WorkflowEnvironment, T.type_parameter(:T)))
100
103
  end
@@ -110,6 +113,7 @@ class Temporalio::Testing::WorkflowEnvironment
110
113
  test_server_download_dest_dir: T.unsafe(nil),
111
114
  test_server_extra_args: T.unsafe(nil),
112
115
  test_server_download_ttl: T.unsafe(nil),
116
+ test_server_startup_timeout: T.unsafe(nil),
113
117
  &block
114
118
  ); end
115
119
  end
@@ -171,6 +171,9 @@ class Temporalio::Worker::Interceptor::Workflow::CancelExternalWorkflowInput < :
171
171
 
172
172
  sig { returns(T.nilable(String)) }
173
173
  def run_id; end
174
+
175
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
176
+ def event_groups; end
174
177
  end
175
178
 
176
179
  class Temporalio::Worker::Interceptor::Workflow::ExecuteActivityInput < ::Data
@@ -226,6 +229,9 @@ class Temporalio::Worker::Interceptor::Workflow::ExecuteActivityInput < ::Data
226
229
 
227
230
  sig { returns(T::Hash[String, T.nilable(Object)]) }
228
231
  def headers; end
232
+
233
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
234
+ def event_groups; end
229
235
  end
230
236
 
231
237
  class Temporalio::Worker::Interceptor::Workflow::ExecuteLocalActivityInput < ::Data
@@ -272,6 +278,9 @@ class Temporalio::Worker::Interceptor::Workflow::ExecuteLocalActivityInput < ::D
272
278
 
273
279
  sig { returns(T::Hash[String, T.nilable(Object)]) }
274
280
  def headers; end
281
+
282
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
283
+ def event_groups; end
275
284
  end
276
285
 
277
286
  class Temporalio::Worker::Interceptor::Workflow::InitializeContinueAsNewErrorInput < ::Data
@@ -301,6 +310,9 @@ class Temporalio::Worker::Interceptor::Workflow::SignalChildWorkflowInput < ::Da
301
310
 
302
311
  sig { returns(T::Hash[String, T.nilable(Object)]) }
303
312
  def headers; end
313
+
314
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
315
+ def event_groups; end
304
316
  end
305
317
 
306
318
  class Temporalio::Worker::Interceptor::Workflow::SignalExternalWorkflowInput < ::Data
@@ -326,6 +338,9 @@ class Temporalio::Worker::Interceptor::Workflow::SignalExternalWorkflowInput < :
326
338
 
327
339
  sig { returns(T::Hash[String, T.nilable(Object)]) }
328
340
  def headers; end
341
+
342
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
343
+ def event_groups; end
329
344
  end
330
345
 
331
346
  class Temporalio::Worker::Interceptor::Workflow::SleepInput < ::Data
@@ -339,6 +354,9 @@ class Temporalio::Worker::Interceptor::Workflow::SleepInput < ::Data
339
354
 
340
355
  sig { returns(Temporalio::Cancellation) }
341
356
  def cancellation; end
357
+
358
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
359
+ def event_groups; end
342
360
  end
343
361
 
344
362
  class Temporalio::Worker::Interceptor::Workflow::StartChildWorkflowInput < ::Data
@@ -409,6 +427,9 @@ class Temporalio::Worker::Interceptor::Workflow::StartChildWorkflowInput < ::Dat
409
427
 
410
428
  sig { returns(T::Hash[String, T.nilable(Object)]) }
411
429
  def headers; end
430
+
431
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
432
+ def event_groups; end
412
433
  end
413
434
 
414
435
  class Temporalio::Worker::Interceptor::Workflow::StartNexusOperationInput < ::Data
@@ -452,6 +473,9 @@ class Temporalio::Worker::Interceptor::Workflow::StartNexusOperationInput < ::Da
452
473
 
453
474
  sig { returns(T::Hash[String, String]) }
454
475
  def headers; end
476
+
477
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
478
+ def event_groups; end
455
479
  end
456
480
 
457
481
  class Temporalio::Worker::Interceptor::Workflow::Outbound
@@ -20,9 +20,9 @@ class Temporalio::Worker
20
20
  identity: T.nilable(String),
21
21
  logger: Logger,
22
22
  max_cached_workflows: Integer,
23
- max_concurrent_workflow_task_polls: Integer,
23
+ max_concurrent_workflow_task_polls: T.nilable(Integer),
24
24
  nonsticky_to_sticky_poll_ratio: Numeric,
25
- max_concurrent_activity_task_polls: Integer,
25
+ max_concurrent_activity_task_polls: T.nilable(Integer),
26
26
  no_remote_activities: T::Boolean,
27
27
  sticky_queue_schedule_to_start_timeout: Numeric,
28
28
  max_heartbeat_throttle_interval: Numeric,
@@ -38,8 +38,8 @@ class Temporalio::Worker
38
38
  unsafe_workflow_io_enabled: T::Boolean,
39
39
  deployment_options: Temporalio::Worker::DeploymentOptions,
40
40
  patch_activation_callback: T.nilable(T.proc.params(input: Temporalio::Worker::PatchActivationInput).returns(T::Boolean)),
41
- workflow_task_poller_behavior: Temporalio::Worker::PollerBehavior,
42
- activity_task_poller_behavior: Temporalio::Worker::PollerBehavior,
41
+ workflow_task_poller_behavior: T.nilable(Temporalio::Worker::PollerBehavior),
42
+ activity_task_poller_behavior: T.nilable(Temporalio::Worker::PollerBehavior),
43
43
  debug_mode: T::Boolean,
44
44
  disable_payload_error_limit: T::Boolean
45
45
  ).void
@@ -197,13 +197,13 @@ class Temporalio::Worker::Options < ::Data
197
197
  sig { returns(Integer) }
198
198
  def max_cached_workflows; end
199
199
 
200
- sig { returns(Integer) }
200
+ sig { returns(T.nilable(Integer)) }
201
201
  def max_concurrent_workflow_task_polls; end
202
202
 
203
203
  sig { returns(Numeric) }
204
204
  def nonsticky_to_sticky_poll_ratio; end
205
205
 
206
- sig { returns(Integer) }
206
+ sig { returns(T.nilable(Integer)) }
207
207
  def max_concurrent_activity_task_polls; end
208
208
 
209
209
  sig { returns(T::Boolean) }
@@ -248,10 +248,10 @@ class Temporalio::Worker::Options < ::Data
248
248
  sig { returns(T.nilable(T.proc.params(input: Temporalio::Worker::PatchActivationInput).returns(T::Boolean))) }
249
249
  def patch_activation_callback; end
250
250
 
251
- sig { returns(Temporalio::Worker::PollerBehavior) }
251
+ sig { returns(T.nilable(Temporalio::Worker::PollerBehavior)) }
252
252
  def workflow_task_poller_behavior; end
253
253
 
254
- sig { returns(Temporalio::Worker::PollerBehavior) }
254
+ sig { returns(T.nilable(Temporalio::Worker::PollerBehavior)) }
255
255
  def activity_task_poller_behavior; end
256
256
 
257
257
  sig { returns(Temporalio::Worker::DeploymentOptions) }
@@ -20,8 +20,9 @@ class Temporalio::Workflow::ChildWorkflowHandle
20
20
  signal: T.any(Temporalio::Workflow::Definition::Signal, Symbol, String),
21
21
  args: T.nilable(Object),
22
22
  cancellation: Temporalio::Cancellation,
23
- arg_hints: T.nilable(T::Array[Object])
23
+ arg_hints: T.nilable(T::Array[Object]),
24
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
24
25
  ).void
25
26
  end
26
- def signal(signal, *args, cancellation: T.unsafe(nil), arg_hints: T.unsafe(nil)); end
27
+ def signal(signal, *args, cancellation: T.unsafe(nil), arg_hints: T.unsafe(nil), event_groups: T.unsafe(nil)); end
27
28
  end
@@ -0,0 +1,104 @@
1
+ # typed: true
2
+
3
+ class Temporalio::Workflow::EventGroup
4
+ extend T::Sig
5
+
6
+ sig { returns(Temporalio::Workflow::EventGroup::Active) }
7
+ def self._active; end
8
+
9
+ sig do
10
+ type_parameters(:T)
11
+ .params(
12
+ active: Temporalio::Workflow::EventGroup::Active,
13
+ block: T.proc.returns(T.type_parameter(:T))
14
+ )
15
+ .returns(T.type_parameter(:T))
16
+ end
17
+ def self._with_active(active, &block); end
18
+
19
+ sig do
20
+ type_parameters(:T)
21
+ .params(
22
+ groups: Temporalio::Workflow::EventGroup,
23
+ block: T.proc.returns(T.type_parameter(:T))
24
+ )
25
+ .returns(T.type_parameter(:T))
26
+ end
27
+ def self._with_event_groups(*groups, &block); end
28
+
29
+ sig do
30
+ type_parameters(:T)
31
+ .params(event_id: Integer, block: T.proc.returns(T.type_parameter(:T)))
32
+ .returns(T.type_parameter(:T))
33
+ end
34
+ def self._with_inbound_event(event_id, &block); end
35
+
36
+ sig do
37
+ type_parameters(:T)
38
+ .params(update_id: String, block: T.proc.returns(T.type_parameter(:T)))
39
+ .returns(T.type_parameter(:T))
40
+ end
41
+ def self._with_inbound_update(update_id, &block); end
42
+
43
+ sig do
44
+ params(directs: T.nilable(T::Array[Temporalio::Workflow::EventGroup]))
45
+ .returns(T::Array[Temporalio::Api::Sdk::V1::EventGroupMarker])
46
+ end
47
+ def self._markers_for_command(directs); end
48
+
49
+ sig { void }
50
+ def initialize; end
51
+
52
+ sig do
53
+ params(_active: Temporalio::Workflow::EventGroup::Active)
54
+ .returns(Temporalio::Workflow::EventGroup::Active)
55
+ end
56
+ def _applied_over(_active); end
57
+
58
+ sig { returns(Temporalio::Api::Sdk::V1::EventGroupMarker) }
59
+ def _to_proto; end
60
+ end
61
+
62
+ class Temporalio::Workflow::EventGroup::Active
63
+ extend T::Sig
64
+
65
+ sig { returns(T.nilable(Temporalio::Workflow::EventGroup)) }
66
+ def implicit; end
67
+
68
+ sig { params(_: T.nilable(Temporalio::Workflow::EventGroup)).void }
69
+ def implicit=(_); end
70
+
71
+ sig { returns(T::Hash[String, Temporalio::Workflow::EventGroup]) }
72
+ def explicit; end
73
+
74
+ sig { params(_: T::Hash[String, Temporalio::Workflow::EventGroup]).void }
75
+ def explicit=(_); end
76
+
77
+ sig do
78
+ params(
79
+ implicit: T.nilable(Temporalio::Workflow::EventGroup),
80
+ explicit: T::Hash[String, Temporalio::Workflow::EventGroup]
81
+ ).void
82
+ end
83
+ def initialize(implicit: nil, explicit: {}); end
84
+ end
85
+
86
+ class Temporalio::Workflow::EventGroup::Label < Temporalio::Workflow::EventGroup
87
+ extend T::Sig
88
+
89
+ sig { returns(String) }
90
+ attr_reader :id
91
+
92
+ sig { returns(T.nilable(String)) }
93
+ attr_reader :label
94
+
95
+ sig { params(id: String, label: T.nilable(String)).void }
96
+ def initialize(id, label); end
97
+ end
98
+
99
+ class Temporalio::Workflow::EventGroup::Implicit < Temporalio::Workflow::EventGroup
100
+ extend T::Sig
101
+
102
+ sig { params(marker: Temporalio::Api::Sdk::V1::EventGroupMarker).void }
103
+ def initialize(marker); end
104
+ end
@@ -14,11 +14,12 @@ class Temporalio::Workflow::ExternalWorkflowHandle
14
14
  signal: T.any(Temporalio::Workflow::Definition::Signal, Symbol, String),
15
15
  args: T.nilable(Object),
16
16
  cancellation: Temporalio::Cancellation,
17
- arg_hints: T.nilable(T::Array[Object])
17
+ arg_hints: T.nilable(T::Array[Object]),
18
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
18
19
  ).void
19
20
  end
20
- def signal(signal, *args, cancellation: T.unsafe(nil), arg_hints: T.unsafe(nil)); end
21
+ def signal(signal, *args, cancellation: T.unsafe(nil), arg_hints: T.unsafe(nil), event_groups: T.unsafe(nil)); end
21
22
 
22
- sig { void }
23
- def cancel; end
23
+ sig { params(event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
24
+ def cancel(event_groups: nil); end
24
25
  end
@@ -33,6 +33,9 @@ class Temporalio::Workflow::Info < ::Struct
33
33
  sig { returns(String) }
34
34
  def namespace; end
35
35
 
36
+ sig { returns(String) }
37
+ def original_execution_run_id; end
38
+
36
39
  sig { returns(T.nilable(Temporalio::Workflow::Info::ParentInfo)) }
37
40
  def parent; end
38
41
 
@@ -20,7 +20,8 @@ class Temporalio::Workflow::NexusClient
20
20
  summary: T.nilable(String),
21
21
  cancellation: Temporalio::Cancellation,
22
22
  arg_hint: T.nilable(Object),
23
- result_hint: T.nilable(Object)
23
+ result_hint: T.nilable(Object),
24
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
24
25
  ).returns(Temporalio::Workflow::NexusOperationHandle)
25
26
  end
26
27
  def start_operation(
@@ -33,7 +34,8 @@ class Temporalio::Workflow::NexusClient
33
34
  summary: T.unsafe(nil),
34
35
  cancellation: T.unsafe(nil),
35
36
  arg_hint: T.unsafe(nil),
36
- result_hint: T.unsafe(nil)
37
+ result_hint: T.unsafe(nil),
38
+ event_groups: T.unsafe(nil)
37
39
  ); end
38
40
 
39
41
  sig do
@@ -47,7 +49,8 @@ class Temporalio::Workflow::NexusClient
47
49
  summary: T.nilable(String),
48
50
  cancellation: Temporalio::Cancellation,
49
51
  arg_hint: T.nilable(Object),
50
- result_hint: T.nilable(Object)
52
+ result_hint: T.nilable(Object),
53
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
51
54
  ).returns(T.nilable(Object))
52
55
  end
53
56
  def execute_operation(
@@ -60,6 +63,7 @@ class Temporalio::Workflow::NexusClient
60
63
  summary: T.unsafe(nil),
61
64
  cancellation: T.unsafe(nil),
62
65
  arg_hint: T.unsafe(nil),
63
- result_hint: T.unsafe(nil)
66
+ result_hint: T.unsafe(nil),
67
+ event_groups: T.unsafe(nil)
64
68
  ); end
65
69
  end
@@ -16,6 +16,19 @@ module Temporalio::Workflow
16
16
  sig { params(endpoint: T.any(Symbol, String), service: T.any(Symbol, String)).returns(Temporalio::Workflow::NexusClient) }
17
17
  def create_nexus_client(endpoint:, service:); end
18
18
 
19
+ sig { params(id: String, label: T.nilable(String)).returns(Temporalio::Workflow::EventGroup) }
20
+ def create_event_group(id, label: nil); end
21
+
22
+ sig do
23
+ type_parameters(:T)
24
+ .params(
25
+ groups: Temporalio::Workflow::EventGroup,
26
+ block: T.proc.returns(T.type_parameter(:T))
27
+ )
28
+ .returns(T.type_parameter(:T))
29
+ end
30
+ def with_event_groups(*groups, &block); end
31
+
19
32
  sig { returns(T::Array[Integer]) }
20
33
  def suggest_continue_as_new_reasons; end
21
34
 
@@ -40,8 +53,8 @@ module Temporalio::Workflow
40
53
  sig { returns(T.nilable(Temporalio::Workflow::UpdateInfo)) }
41
54
  def current_update_info; end
42
55
 
43
- sig { params(patch_id: T.any(Symbol, String)).void }
44
- def deprecate_patch(patch_id); end
56
+ sig { params(patch_id: T.any(Symbol, String), event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
57
+ def deprecate_patch(patch_id, event_groups: nil); end
45
58
 
46
59
  sig do
47
60
  params(
@@ -60,7 +73,8 @@ module Temporalio::Workflow
60
73
  disable_eager_execution: T::Boolean,
61
74
  priority: Temporalio::Priority,
62
75
  arg_hints: T.nilable(T::Array[Object]),
63
- result_hint: T.nilable(Object)
76
+ result_hint: T.nilable(Object),
77
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
64
78
  ).returns(T.nilable(Object))
65
79
  end
66
80
  def execute_activity(
@@ -79,7 +93,8 @@ module Temporalio::Workflow
79
93
  disable_eager_execution: T.unsafe(nil),
80
94
  priority: T.unsafe(nil),
81
95
  arg_hints: T.unsafe(nil),
82
- result_hint: T.unsafe(nil)
96
+ result_hint: T.unsafe(nil),
97
+ event_groups: T.unsafe(nil)
83
98
  ); end
84
99
 
85
100
  sig do
@@ -104,7 +119,8 @@ module Temporalio::Workflow
104
119
  priority: Temporalio::Priority,
105
120
  versioning_override: T.nilable(Temporalio::VersioningOverride),
106
121
  arg_hints: T.nilable(T::Array[Object]),
107
- result_hint: T.nilable(Object)
122
+ result_hint: T.nilable(Object),
123
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
108
124
  ).returns(T.nilable(Object))
109
125
  end
110
126
  def execute_child_workflow(
@@ -128,7 +144,8 @@ module Temporalio::Workflow
128
144
  priority: T.unsafe(nil),
129
145
  versioning_override: nil,
130
146
  arg_hints: T.unsafe(nil),
131
- result_hint: T.unsafe(nil)
147
+ result_hint: T.unsafe(nil),
148
+ event_groups: T.unsafe(nil)
132
149
  ); end
133
150
 
134
151
  sig do
@@ -145,7 +162,8 @@ module Temporalio::Workflow
145
162
  cancellation_type: Integer,
146
163
  activity_id: T.nilable(String),
147
164
  arg_hints: T.nilable(T::Array[Object]),
148
- result_hint: T.nilable(Object)
165
+ result_hint: T.nilable(Object),
166
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
149
167
  ).returns(T.nilable(Object))
150
168
  end
151
169
  def execute_local_activity(
@@ -161,7 +179,8 @@ module Temporalio::Workflow
161
179
  cancellation_type: T.unsafe(nil),
162
180
  activity_id: T.unsafe(nil),
163
181
  arg_hints: T.unsafe(nil),
164
- result_hint: T.unsafe(nil)
182
+ result_hint: T.unsafe(nil),
183
+ event_groups: T.unsafe(nil)
165
184
  ); end
166
185
 
167
186
  sig { params(workflow_id: String, run_id: T.nilable(String)).returns(Temporalio::Workflow::ExternalWorkflowHandle) }
@@ -188,8 +207,8 @@ module Temporalio::Workflow
188
207
  sig { returns(Time) }
189
208
  def now; end
190
209
 
191
- sig { params(patch_id: T.any(Symbol, String)).returns(T::Boolean) }
192
- def patched(patch_id); end
210
+ sig { params(patch_id: T.any(Symbol, String), event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).returns(T::Boolean) }
211
+ def patched(patch_id, event_groups: nil); end
193
212
 
194
213
  sig { returns(Temporalio::Converters::PayloadConverter) }
195
214
  def payload_converter; end
@@ -206,8 +225,8 @@ module Temporalio::Workflow
206
225
  sig { returns(T::Hash[T.nilable(String), Temporalio::Workflow::Definition::Signal]) }
207
226
  def signal_handlers; end
208
227
 
209
- sig { params(duration: T.nilable(T.any(Integer, Float)), summary: T.nilable(String), cancellation: Temporalio::Cancellation).void }
210
- def sleep(duration, summary: T.unsafe(nil), cancellation: T.unsafe(nil)); end
228
+ sig { params(duration: T.nilable(T.any(Integer, Float)), summary: T.nilable(String), cancellation: Temporalio::Cancellation, event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
229
+ def sleep(duration, summary: T.unsafe(nil), cancellation: T.unsafe(nil), event_groups: T.unsafe(nil)); end
211
230
 
212
231
  sig do
213
232
  params(
@@ -231,7 +250,8 @@ module Temporalio::Workflow
231
250
  priority: Temporalio::Priority,
232
251
  versioning_override: T.nilable(Temporalio::VersioningOverride),
233
252
  arg_hints: T.nilable(T::Array[Object]),
234
- result_hint: T.nilable(Object)
253
+ result_hint: T.nilable(Object),
254
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
235
255
  ).returns(Temporalio::Workflow::ChildWorkflowHandle)
236
256
  end
237
257
  def start_child_workflow(
@@ -255,7 +275,8 @@ module Temporalio::Workflow
255
275
  priority: T.unsafe(nil),
256
276
  versioning_override: nil,
257
277
  arg_hints: T.unsafe(nil),
258
- result_hint: T.unsafe(nil)
278
+ result_hint: T.unsafe(nil),
279
+ event_groups: T.unsafe(nil)
259
280
  ); end
260
281
 
261
282
  sig { returns(T::Hash[Object, Object]) }
@@ -268,19 +289,38 @@ module Temporalio::Workflow
268
289
  exception_class: T.class_of(Exception),
269
290
  message: String,
270
291
  summary: T.nilable(String),
292
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup]),
271
293
  block: T.proc.returns(T.type_parameter(:T))
272
294
  ).returns(T.type_parameter(:T))
273
295
  end
274
- def timeout(duration, exception_class = T.unsafe(nil), message = T.unsafe(nil), summary: T.unsafe(nil), &block); end
296
+ def timeout(duration, exception_class = T.unsafe(nil), message = T.unsafe(nil), summary: T.unsafe(nil), event_groups: T.unsafe(nil), &block); end
275
297
 
276
298
  sig { returns(T::Hash[T.nilable(String), Temporalio::Workflow::Definition::Update]) }
277
299
  def update_handlers; end
278
300
 
279
- sig { params(hash: T::Hash[T.any(Symbol, String), T.nilable(Object)]).void }
280
- def upsert_memo(hash); end
301
+ sig do
302
+ overload.params(
303
+ hash: T::Hash[T.any(Symbol, String), T.nilable(Object)],
304
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
305
+ ).void
306
+ end
307
+ sig do
308
+ overload.params(
309
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup]),
310
+ memo: T.nilable(Object)
311
+ ).void
312
+ end
313
+ sig do
314
+ params(
315
+ hash: T.nilable(T::Hash[T.any(Symbol, String), T.nilable(Object)]),
316
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup]),
317
+ memo: T.nilable(Object)
318
+ ).void
319
+ end
320
+ def upsert_memo(hash = nil, event_groups: nil, **memo); end
281
321
 
282
- sig { params(updates: Temporalio::SearchAttributes::Update).void }
283
- def upsert_search_attributes(*updates); end
322
+ sig { params(updates: Temporalio::SearchAttributes::Update, event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])).void }
323
+ def upsert_search_attributes(*updates, event_groups: nil); end
284
324
 
285
325
  sig do
286
326
  type_parameters(:T)
@@ -330,7 +370,8 @@ class Temporalio::Workflow::ContinueAsNewError < ::Temporalio::Error
330
370
  search_attributes: T.nilable(Temporalio::SearchAttributes),
331
371
  arg_hints: T.nilable(T::Array[Object]),
332
372
  headers: T::Hash[String, T.nilable(Object)],
333
- initial_versioning_behavior: T.nilable(Integer)
373
+ initial_versioning_behavior: T.nilable(Integer),
374
+ event_groups: T.nilable(T::Array[Temporalio::Workflow::EventGroup])
334
375
  ).void
335
376
  end
336
377
  def initialize(
@@ -345,7 +386,8 @@ class Temporalio::Workflow::ContinueAsNewError < ::Temporalio::Error
345
386
  search_attributes: T.unsafe(nil),
346
387
  arg_hints: T.unsafe(nil),
347
388
  headers: T.unsafe(nil),
348
- initial_versioning_behavior: T.unsafe(nil)
389
+ initial_versioning_behavior: T.unsafe(nil),
390
+ event_groups: T.unsafe(nil)
349
391
  ); end
350
392
 
351
393
  sig { returns(T::Array[T.nilable(Object)]) }
@@ -384,6 +426,13 @@ class Temporalio::Workflow::ContinueAsNewError < ::Temporalio::Error
384
426
  sig { returns(T.nilable(Integer)) }
385
427
  attr_accessor :initial_versioning_behavior
386
428
 
429
+ sig { returns(T.nilable(T::Array[Temporalio::Workflow::EventGroup])) }
430
+ attr_reader :event_groups
431
+
432
+ private
433
+
434
+ sig { returns(T.nilable(T::Array[Temporalio::Api::Sdk::V1::EventGroupMarker])) }
435
+ attr_accessor :_event_group_markers
387
436
  end
388
437
 
389
438
  class Temporalio::Workflow::InvalidWorkflowStateError < ::Temporalio::Error; end
@@ -395,6 +395,25 @@ module Temporalio
395
395
  attr_accessor eager_execution_accepted(): bool
396
396
  def clear_eager_execution_accepted: () -> void
397
397
 
398
+ # Authenticated principal by which this activity execution was started.
399
+ # (-- api-linter: core::0140::prepositions=disabled
400
+ # aip.dev/not-precedent: "by" identifies the authenticated actor. --)
401
+ attr_accessor started_by_principal(): ::Temporalio::Api::Common::V1::ResolvedPrincipal?
402
+ def has_started_by_principal?: () -> bool
403
+ def clear_started_by_principal: () -> void
404
+
405
+ # Authenticated principal by which this activity execution was closed.
406
+ # (-- api-linter: core::0140::prepositions=disabled
407
+ # aip.dev/not-precedent: "by" identifies the authenticated actor. --)
408
+ attr_accessor closed_by_principal(): ::Temporalio::Api::Common::V1::ResolvedPrincipal?
409
+ def has_closed_by_principal?: () -> bool
410
+ def clear_closed_by_principal: () -> void
411
+
412
+ # Authenticated principal of the worker that most recently interacted with this activity execution.
413
+ attr_accessor last_worker_principal(): ::Temporalio::Api::Common::V1::ResolvedPrincipal?
414
+ def has_last_worker_principal?: () -> bool
415
+ def clear_last_worker_principal: () -> void
416
+
398
417
  type init_map = {
399
418
  activity_id: (::String | ::Symbol)?,
400
419
  "activity_id" => (::String | ::Symbol)?,
@@ -476,6 +495,12 @@ module Temporalio
476
495
  "propagated_nexus_serialization_context" => (::Temporalio::Api::Nexus::V1::PropagatedSerializationContext | ::Temporalio::Api::Nexus::V1::PropagatedSerializationContext::init_map)?,
477
496
  eager_execution_accepted: bool?,
478
497
  "eager_execution_accepted" => bool?,
498
+ started_by_principal: (::Temporalio::Api::Common::V1::ResolvedPrincipal | ::Temporalio::Api::Common::V1::ResolvedPrincipal::init_map)?,
499
+ "started_by_principal" => (::Temporalio::Api::Common::V1::ResolvedPrincipal | ::Temporalio::Api::Common::V1::ResolvedPrincipal::init_map)?,
500
+ closed_by_principal: (::Temporalio::Api::Common::V1::ResolvedPrincipal | ::Temporalio::Api::Common::V1::ResolvedPrincipal::init_map)?,
501
+ "closed_by_principal" => (::Temporalio::Api::Common::V1::ResolvedPrincipal | ::Temporalio::Api::Common::V1::ResolvedPrincipal::init_map)?,
502
+ last_worker_principal: (::Temporalio::Api::Common::V1::ResolvedPrincipal | ::Temporalio::Api::Common::V1::ResolvedPrincipal::init_map)?,
503
+ "last_worker_principal" => (::Temporalio::Api::Common::V1::ResolvedPrincipal | ::Temporalio::Api::Common::V1::ResolvedPrincipal::init_map)?,
479
504
  }
480
505
 
481
506
  def initialize: (?init_map initial_value) -> void
@@ -521,6 +546,9 @@ module Temporalio
521
546
  | ("execution_time" name) -> ::Google::Protobuf::Timestamp?
522
547
  | ("propagated_nexus_serialization_context" name) -> ::Temporalio::Api::Nexus::V1::PropagatedSerializationContext?
523
548
  | ("eager_execution_accepted" name) -> bool
549
+ | ("started_by_principal" name) -> ::Temporalio::Api::Common::V1::ResolvedPrincipal?
550
+ | ("closed_by_principal" name) -> ::Temporalio::Api::Common::V1::ResolvedPrincipal?
551
+ | ("last_worker_principal" name) -> ::Temporalio::Api::Common::V1::ResolvedPrincipal?
524
552
 
525
553
  def []=:
526
554
  ("activity_id" name, (::String | ::Symbol) value) -> void
@@ -563,6 +591,9 @@ module Temporalio
563
591
  | ("execution_time" name, ((::Google::Protobuf::Timestamp | ::Time)?) value) -> void
564
592
  | ("propagated_nexus_serialization_context" name, ::Temporalio::Api::Nexus::V1::PropagatedSerializationContext? value) -> void
565
593
  | ("eager_execution_accepted" name, bool value) -> void
594
+ | ("started_by_principal" name, ::Temporalio::Api::Common::V1::ResolvedPrincipal? value) -> void
595
+ | ("closed_by_principal" name, ::Temporalio::Api::Common::V1::ResolvedPrincipal? value) -> void
596
+ | ("last_worker_principal" name, ::Temporalio::Api::Common::V1::ResolvedPrincipal? value) -> void
566
597
  end
567
598
 
568
599
  # Limited activity information returned in the list response.
@@ -1125,6 +1125,41 @@ module Temporalio
1125
1125
  | ("name" name, (::String | ::Symbol) value) -> void
1126
1126
  end
1127
1127
 
1128
+ # ResolvedPrincipal is a principal returned to an API caller.
1129
+ class ResolvedPrincipal < ::Google::Protobuf::AbstractMessage
1130
+
1131
+ # Low-cardinality category of the principal (e.g., "jwt", "users").
1132
+ attr_reader type(): ::String
1133
+ attr_writer type(): ::String | ::Symbol
1134
+ def clear_type: () -> void
1135
+
1136
+ # Identifier within that category (e.g., sub JWT claim, email address).
1137
+ # (-- api-linter: core::0140::prepositions=disabled
1138
+ # aip.dev/not-precedent: Identifies the principal name snapshot used for this response. --)
1139
+ # (-- api-linter: core::0142::time-field-type=disabled
1140
+ # aip.dev/not-precedent: This string is a principal name snapshot, not a timestamp. --)
1141
+ attr_reader name_at_write_time(): ::String
1142
+ attr_writer name_at_write_time(): ::String | ::Symbol
1143
+ def clear_name_at_write_time: () -> void
1144
+
1145
+ type init_map = {
1146
+ type: (::String | ::Symbol)?,
1147
+ "type" => (::String | ::Symbol)?,
1148
+ name_at_write_time: (::String | ::Symbol)?,
1149
+ "name_at_write_time" => (::String | ::Symbol)?,
1150
+ }
1151
+
1152
+ def initialize: (?init_map initial_value) -> void
1153
+
1154
+ def []:
1155
+ ("type" name) -> ::String
1156
+ | ("name_at_write_time" name) -> ::String
1157
+
1158
+ def []=:
1159
+ ("type" name, (::String | ::Symbol) value) -> void
1160
+ | ("name_at_write_time" name, (::String | ::Symbol) value) -> void
1161
+ end
1162
+
1128
1163
  # Priority contains metadata that controls relative ordering of task processing
1129
1164
  # when tasks are backed up in a queue. Initially, Priority will be used in
1130
1165
  # matching (workflow and activity) task queues. Later it may be used in history