temporalio 1.8.0-aarch64-linux → 1.10.0-aarch64-linux

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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +28 -0
  3. data/lib/temporalio/activity/info.rb +0 -3
  4. data/lib/temporalio/api/activity/v1/message.rb +2 -1
  5. data/lib/temporalio/api/callback/v1/message.rb +1 -1
  6. data/lib/temporalio/api/common/v1/message.rb +3 -1
  7. data/lib/temporalio/api/compute/v1/config.rb +1 -1
  8. data/lib/temporalio/api/enums/v1/common.rb +1 -1
  9. data/lib/temporalio/api/enums/v1/failed_cause.rb +2 -1
  10. data/lib/temporalio/api/export/v1/message.rb +4 -1
  11. data/lib/temporalio/api/history/v1/message.rb +2 -1
  12. data/lib/temporalio/api/nexus/v1/message.rb +2 -1
  13. data/lib/temporalio/api/nexusoperation/v1/message.rb +26 -0
  14. data/lib/temporalio/api/notificationservice/v1/request_response.rb +25 -0
  15. data/lib/temporalio/api/payload_visitor.rb +54 -0
  16. data/lib/temporalio/api/replication/v1/message.rb +2 -1
  17. data/lib/temporalio/api/update/v1/message.rb +2 -1
  18. data/lib/temporalio/api/worker/v1/message.rb +1 -1
  19. data/lib/temporalio/api/workflow/v1/message.rb +2 -1
  20. data/lib/temporalio/api/workflowservice/v1/request_response.rb +2 -1
  21. data/lib/temporalio/client/activity_execution.rb +1 -5
  22. data/lib/temporalio/client/activity_execution_count.rb +0 -4
  23. data/lib/temporalio/client/activity_execution_status.rb +0 -2
  24. data/lib/temporalio/client/activity_handle.rb +9 -6
  25. data/lib/temporalio/client/activity_id_reference.rb +0 -4
  26. data/lib/temporalio/client/interceptor.rb +1 -29
  27. data/lib/temporalio/client/pending_activity_state.rb +0 -2
  28. data/lib/temporalio/client/schedule.rb +8 -7
  29. data/lib/temporalio/client/with_start_workflow_operation.rb +1 -1
  30. data/lib/temporalio/client.rb +10 -20
  31. data/lib/temporalio/common_enums.rb +0 -4
  32. data/lib/temporalio/converters/external_storage.rb +90 -0
  33. data/lib/temporalio/converters/external_storage_concurrency.rb +52 -0
  34. data/lib/temporalio/converters/storage_driver.rb +56 -0
  35. data/lib/temporalio/converters/storage_driver_activity_info.rb +38 -0
  36. data/lib/temporalio/converters/storage_driver_claim.rb +30 -0
  37. data/lib/temporalio/converters/storage_driver_limiter.rb +37 -0
  38. data/lib/temporalio/converters/storage_driver_retrieve_context.rb +30 -0
  39. data/lib/temporalio/converters/storage_driver_select_context.rb +26 -0
  40. data/lib/temporalio/converters/storage_driver_store_context.rb +31 -0
  41. data/lib/temporalio/converters/storage_driver_workflow_info.rb +40 -0
  42. data/lib/temporalio/converters.rb +11 -0
  43. data/lib/temporalio/error/failure.rb +16 -2
  44. data/lib/temporalio/error.rb +17 -2
  45. data/lib/temporalio/internal/bridge/3.3/temporalio_bridge.so +2 -2
  46. data/lib/temporalio/internal/bridge/3.4/temporalio_bridge.so +2 -2
  47. data/lib/temporalio/internal/bridge/4.0/temporalio_bridge.so +2 -2
  48. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +2 -1
  49. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +1 -1
  50. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +1 -1
  51. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +2 -1
  52. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +3 -1
  53. data/lib/temporalio/internal/client/implementation.rb +6 -1
  54. data/lib/temporalio/internal/external_storage_references.rb +62 -0
  55. data/lib/temporalio/internal/worker/workflow_instance/context.rb +2 -0
  56. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +21 -3
  57. data/lib/temporalio/testing/activity_environment.rb +1 -1
  58. data/lib/temporalio/testing/workflow_environment.rb +4 -4
  59. data/lib/temporalio/version.rb +1 -1
  60. data/lib/temporalio/versioning_override.rb +28 -1
  61. data/lib/temporalio/worker/interceptor.rb +1 -0
  62. data/lib/temporalio/workflow.rb +14 -4
  63. data/rbi/temporalio/api/activity/v1/message.rbi +39 -2
  64. data/rbi/temporalio/api/callback/v1/message.rbi +22 -2
  65. data/rbi/temporalio/api/common/v1/message.rbi +294 -4
  66. data/rbi/temporalio/api/compute/v1/config.rbi +39 -5
  67. data/rbi/temporalio/api/enums/v1/common.rbi +1 -0
  68. data/rbi/temporalio/api/enums/v1/failed_cause.rbi +20 -0
  69. data/rbi/temporalio/api/export/v1/message.rbi +136 -2
  70. data/rbi/temporalio/api/history/v1/message.rbi +38 -4
  71. data/rbi/temporalio/api/nexus/v1/message.rbi +88 -0
  72. data/rbi/temporalio/api/nexusoperation/v1/message.rbi +287 -0
  73. data/rbi/temporalio/api/notificationservice/v1/request_response.rbi +151 -0
  74. data/rbi/temporalio/api/payload_visitor.rbi +21 -0
  75. data/rbi/temporalio/api/replication/v1/message.rbi +22 -2
  76. data/rbi/temporalio/api/update/v1/message.rbi +19 -2
  77. data/rbi/temporalio/api/worker/v1/message.rbi +2 -0
  78. data/rbi/temporalio/api/workflow/v1/message.rbi +41 -4
  79. data/rbi/temporalio/api/workflowservice/v1/request_response.rbi +294 -20
  80. data/rbi/temporalio/api/workflowservice/v1/service_services.rbi +0 -13
  81. data/rbi/temporalio/client/activity_execution.rbi +1 -1
  82. data/rbi/temporalio/client/interceptor.rbi +1 -1
  83. data/rbi/temporalio/client/schedule.rbi +2 -2
  84. data/rbi/temporalio/client.rbi +4 -4
  85. data/rbi/temporalio/converters/external_storage.rbi +49 -0
  86. data/rbi/temporalio/converters/external_storage_concurrency.rbi +26 -0
  87. data/rbi/temporalio/converters/storage_driver.rbi +27 -0
  88. data/rbi/temporalio/converters/storage_driver_activity_info.rbi +36 -0
  89. data/rbi/temporalio/converters/storage_driver_claim.rbi +20 -0
  90. data/rbi/temporalio/converters/storage_driver_limiter.rbi +13 -0
  91. data/rbi/temporalio/converters/storage_driver_retrieve_context.rbi +23 -0
  92. data/rbi/temporalio/converters/storage_driver_select_context.rbi +42 -0
  93. data/rbi/temporalio/converters/storage_driver_store_context.rbi +46 -0
  94. data/rbi/temporalio/converters/storage_driver_workflow_info.rbi +36 -0
  95. data/rbi/temporalio/error.rbi +17 -0
  96. data/rbi/temporalio/internal/bridge/api/activity_result/activity_result.rbi +41 -2
  97. data/rbi/temporalio/internal/bridge/api/child_workflow/child_workflow.rbi +2 -0
  98. data/rbi/temporalio/internal/bridge/api/external_data/external_data.rbi +29 -2
  99. data/rbi/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbi +88 -14
  100. data/rbi/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rbi +91 -6
  101. data/rbi/temporalio/internal/external_storage_references.rbi +26 -0
  102. data/rbi/temporalio/internal/worker/workflow_instance/context.rbi +2 -0
  103. data/rbi/temporalio/versioning_override.rbi +8 -0
  104. data/rbi/temporalio/worker/interceptor.rbi +3 -0
  105. data/rbi/temporalio/workflow.rbi +4 -0
  106. data/sig/temporalio/api/activity/v1/message.rbs +18 -0
  107. data/sig/temporalio/api/callback/v1/message.rbs +10 -0
  108. data/sig/temporalio/api/common/v1/message.rbs +133 -4
  109. data/sig/temporalio/api/compute/v1/config.rbs +17 -1
  110. data/sig/temporalio/api/enums/v1/common.rbs +7 -4
  111. data/sig/temporalio/api/enums/v1/failed_cause.rbs +42 -5
  112. data/sig/temporalio/api/export/v1/message.rbs +50 -2
  113. data/sig/temporalio/api/history/v1/message.rbs +19 -0
  114. data/sig/temporalio/api/nexus/v1/message.rbs +37 -0
  115. data/sig/temporalio/api/nexusoperation/v1/message.rbs +125 -0
  116. data/sig/temporalio/api/notificationservice/v1/request_response.rbs +81 -0
  117. data/sig/temporalio/api/payload_visitor.rbs +7 -0
  118. data/sig/temporalio/api/replication/v1/message.rbs +11 -0
  119. data/sig/temporalio/api/update/v1/message.rbs +9 -0
  120. data/sig/temporalio/api/worker/v1/message.rbs +9 -3
  121. data/sig/temporalio/api/workflow/v1/message.rbs +19 -0
  122. data/sig/temporalio/api/workflowservice/v1/request_response.rbs +136 -0
  123. data/sig/temporalio/client/activity_execution.rbs +1 -1
  124. data/sig/temporalio/client/interceptor.rbs +2 -2
  125. data/sig/temporalio/client/schedule.rbs +3 -2
  126. data/sig/temporalio/client.rbs +2 -2
  127. data/sig/temporalio/converters/external_storage.rbs +25 -0
  128. data/sig/temporalio/converters/external_storage_concurrency.rbs +16 -0
  129. data/sig/temporalio/converters/storage_driver.rbs +16 -0
  130. data/sig/temporalio/converters/storage_driver_activity_info.rbs +17 -0
  131. data/sig/temporalio/converters/storage_driver_claim.rbs +9 -0
  132. data/sig/temporalio/converters/storage_driver_limiter.rbs +7 -0
  133. data/sig/temporalio/converters/storage_driver_retrieve_context.rbs +13 -0
  134. data/sig/temporalio/converters/storage_driver_select_context.rbs +13 -0
  135. data/sig/temporalio/converters/storage_driver_store_context.rbs +15 -0
  136. data/sig/temporalio/converters/storage_driver_target_info.rbs +5 -0
  137. data/sig/temporalio/converters/storage_driver_workflow_info.rbs +17 -0
  138. data/sig/temporalio/error/failure.rbs +8 -0
  139. data/sig/temporalio/error.rbs +4 -0
  140. data/sig/temporalio/internal/bridge/api/activity_result/activity_result.rbs +46 -0
  141. data/sig/temporalio/internal/bridge/api/child_workflow/child_workflow.rbs +7 -3
  142. data/sig/temporalio/internal/bridge/api/external_data/external_data.rbs +16 -0
  143. data/sig/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rbs +42 -2
  144. data/sig/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rbs +42 -0
  145. data/sig/temporalio/internal/external_storage_references.rbs +18 -0
  146. data/sig/temporalio/internal/worker/workflow_instance/context.rbs +1 -0
  147. data/sig/temporalio/testing/activity_environment.rbs +1 -1
  148. data/sig/temporalio/versioning_override.rbs +7 -0
  149. data/sig/temporalio/worker/interceptor.rbs +2 -0
  150. data/sig/temporalio/workflow.rbs +2 -0
  151. data/temporalio.gemspec +1 -0
  152. metadata +56 -2
@@ -3,7 +3,7 @@
3
3
  require 'temporalio/worker_deployment_version'
4
4
 
5
5
  module Temporalio
6
- # Base class for version overrides that can be provided in start workflow options.
6
+ # Base class for version overrides that can be provided when starting workflows, including child workflows.
7
7
  # Used to control the versioning behavior of workflows started with this override.
8
8
  class VersioningOverride
9
9
  # @!visibility private
@@ -50,5 +50,32 @@ module Temporalio
50
50
  )
51
51
  end
52
52
  end
53
+
54
+ # Routes workflow tasks to a target deployment version until a task completes there, then clears the override.
55
+ # Subsequent tasks follow the workflow's normal versioning behavior.
56
+ #
57
+ # Requires Temporal Server 1.32.0 or later.
58
+ # WARNING: This override is experimental.
59
+ class OneTime < VersioningOverride
60
+ # @return [WorkerDeploymentVersion] Target worker deployment version.
61
+ attr_reader :target_version
62
+
63
+ # Create a one-time versioning override.
64
+ #
65
+ # @param target_version [WorkerDeploymentVersion] Target worker deployment version.
66
+ def initialize(target_version)
67
+ @target_version = target_version
68
+ super()
69
+ end
70
+
71
+ # @!visibility private
72
+ def _to_proto
73
+ Api::Workflow::V1::VersioningOverride.new(
74
+ one_time: Api::Workflow::V1::VersioningOverride::OneTimeOverride.new(
75
+ target_deployment_version: @target_version._to_proto
76
+ )
77
+ )
78
+ end
79
+ end
53
80
  end
54
81
  end
@@ -295,6 +295,7 @@ module Temporalio
295
295
  :memo,
296
296
  :search_attributes,
297
297
  :priority,
298
+ :versioning_override,
298
299
  :arg_hints,
299
300
  :result_hint,
300
301
  :headers
@@ -4,6 +4,7 @@ require 'random/formatter'
4
4
  require 'temporalio/error'
5
5
  require 'temporalio/internal/worker/workflow_instance'
6
6
  require 'temporalio/priority'
7
+ require 'temporalio/versioning_override'
7
8
  require 'temporalio/workflow/activity_cancellation_type'
8
9
  require 'temporalio/workflow/child_workflow_cancellation_type'
9
10
  require 'temporalio/workflow/child_workflow_handle'
@@ -158,7 +159,7 @@ module Temporalio
158
159
  # optimization on some servers that sends activities back to the same worker as the calling workflow if they can
159
160
  # run there. If `false` (the default), eager execution may still be disabled at the worker level or may not be
160
161
  # requested due to lack of available slots.
161
- # @param priority [Priority] Priority of the activity. This is currently experimental.
162
+ # @param priority [Priority] Priority of the activity.
162
163
  # @param arg_hints [Array<Object>, nil] Overrides converter hints for arguments if any. If unset/nil and the
163
164
  # activity definition has arg hints, those are used by default.
164
165
  # @param result_hint [Object, nil] Overrides converter hint for result if any. If unset/nil and the activity
@@ -214,6 +215,7 @@ module Temporalio
214
215
  memo: nil,
215
216
  search_attributes: nil,
216
217
  priority: Priority.default,
218
+ versioning_override: nil,
217
219
  arg_hints: nil,
218
220
  result_hint: nil
219
221
  )
@@ -221,7 +223,8 @@ module Temporalio
221
223
  workflow, *args,
222
224
  id:, task_queue:, static_summary:, static_details:, cancellation:, cancellation_type:,
223
225
  parent_close_policy:, execution_timeout:, run_timeout:, task_timeout:, id_reuse_policy:,
224
- retry_policy:, cron_schedule:, memo:, search_attributes:, priority:, arg_hints:, result_hint:
226
+ retry_policy:, cron_schedule:, memo:, search_attributes:, priority:, versioning_override:,
227
+ arg_hints:, result_hint:
225
228
  ).result
226
229
  end
227
230
 
@@ -424,7 +427,10 @@ module Temporalio
424
427
  # @param cron_schedule [String, nil] Cron schedule. Users should use schedules instead of this.
425
428
  # @param memo [Hash{String, Symbol => Object}, nil] Memo for the workflow.
426
429
  # @param search_attributes [SearchAttributes, nil] Search attributes for the workflow.
427
- # @param priority [Priority] Priority of the workflow. This is currently experimental.
430
+ # @param priority [Priority] Priority of the workflow.
431
+ # @param versioning_override [VersioningOverride, nil] Override the child's versioning independently of its parent.
432
+ # If unset, normal versioning inheritance applies. Requires Temporal Server 1.32.0 or later.
433
+ # WARNING: This option is experimental.
428
434
  # @param arg_hints [Array<Object>, nil] Overrides converter hints for arguments if any. If unset/nil and the
429
435
  # workflow definition has arg hints, those are used by default.
430
436
  # @param result_hint [Object, nil] Overrides converter hint for result if any. If unset/nil and the workflow
@@ -432,6 +438,8 @@ module Temporalio
432
438
  #
433
439
  # @return [ChildWorkflowHandle] Workflow handle to the started workflow.
434
440
  # @raise [Error::WorkflowAlreadyStartedError] Workflow already exists for the ID.
441
+ # @raise [Error::ChildWorkflowError] Child could not start. The cause is {Error::InvalidVersioningOverrideError}
442
+ # for an invalid versioning override or {Error::NamespaceNotFoundError} for a missing namespace.
435
443
  # @raise [Error::CanceledError] Starting of the child was canceled.
436
444
  def self.start_child_workflow(
437
445
  workflow,
@@ -452,6 +460,7 @@ module Temporalio
452
460
  memo: nil,
453
461
  search_attributes: nil,
454
462
  priority: Priority.default,
463
+ versioning_override: nil,
455
464
  arg_hints: nil,
456
465
  result_hint: nil
457
466
  )
@@ -459,7 +468,8 @@ module Temporalio
459
468
  workflow, *args,
460
469
  id:, task_queue:, static_summary:, static_details:, cancellation:, cancellation_type:,
461
470
  parent_close_policy:, execution_timeout:, run_timeout:, task_timeout:, id_reuse_policy:,
462
- retry_policy:, cron_schedule:, memo:, search_attributes:, priority:, arg_hints:, result_hint:
471
+ retry_policy:, cron_schedule:, memo:, search_attributes:, priority:, versioning_override:,
472
+ arg_hints:, result_hint:
463
473
  )
464
474
  end
465
475
 
@@ -382,7 +382,9 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
382
382
  sdk_name: T.nilable(String),
383
383
  sdk_version: T.nilable(String),
384
384
  start_delay: T.nilable(Google::Protobuf::Duration),
385
- execution_time: T.nilable(Google::Protobuf::Timestamp)
385
+ execution_time: T.nilable(Google::Protobuf::Timestamp),
386
+ propagated_nexus_serialization_context: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext),
387
+ eager_execution_accepted: T.nilable(T::Boolean)
386
388
  ).void
387
389
  end
388
390
  def initialize(
@@ -423,7 +425,9 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
423
425
  sdk_name: "",
424
426
  sdk_version: "",
425
427
  start_delay: nil,
426
- execution_time: nil
428
+ execution_time: nil,
429
+ propagated_nexus_serialization_context: nil,
430
+ eager_execution_accepted: false
427
431
  )
428
432
  end
429
433
 
@@ -1060,6 +1064,39 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
1060
1064
  def clear_execution_time
1061
1065
  end
1062
1066
 
1067
+ # Serialization context propagated from the Nexus caller that started this activity.
1068
+ sig { returns(T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)) }
1069
+ def propagated_nexus_serialization_context
1070
+ end
1071
+
1072
+ # Serialization context propagated from the Nexus caller that started this activity.
1073
+ sig { params(value: T.nilable(Temporalio::Api::Nexus::V1::PropagatedSerializationContext)).void }
1074
+ def propagated_nexus_serialization_context=(value)
1075
+ end
1076
+
1077
+ # Serialization context propagated from the Nexus caller that started this activity.
1078
+ sig { void }
1079
+ def clear_propagated_nexus_serialization_context
1080
+ end
1081
+
1082
+ # Indicates whether eager execution was requested for this activity and accepted by the server
1083
+ # for its first task.
1084
+ sig { returns(T::Boolean) }
1085
+ def eager_execution_accepted
1086
+ end
1087
+
1088
+ # Indicates whether eager execution was requested for this activity and accepted by the server
1089
+ # for its first task.
1090
+ sig { params(value: T::Boolean).void }
1091
+ def eager_execution_accepted=(value)
1092
+ end
1093
+
1094
+ # Indicates whether eager execution was requested for this activity and accepted by the server
1095
+ # for its first task.
1096
+ sig { void }
1097
+ def clear_eager_execution_accepted
1098
+ end
1099
+
1063
1100
  sig { params(field: String).returns(T.untyped) }
1064
1101
  def [](field)
1065
1102
  end
@@ -16,7 +16,8 @@ class Temporalio::Api::Callback::V1::CallbackInfo
16
16
  last_attempt_complete_time: T.nilable(Google::Protobuf::Timestamp),
17
17
  last_attempt_failure: T.nilable(Temporalio::Api::Failure::V1::Failure),
18
18
  next_attempt_schedule_time: T.nilable(Google::Protobuf::Timestamp),
19
- blocked_reason: T.nilable(String)
19
+ blocked_reason: T.nilable(String),
20
+ request_id: T.nilable(String)
20
21
  ).void
21
22
  end
22
23
  def initialize(
@@ -27,7 +28,8 @@ class Temporalio::Api::Callback::V1::CallbackInfo
27
28
  last_attempt_complete_time: nil,
28
29
  last_attempt_failure: nil,
29
30
  next_attempt_schedule_time: nil,
30
- blocked_reason: ""
31
+ blocked_reason: "",
32
+ request_id: ""
31
33
  )
32
34
  end
33
35
 
@@ -154,6 +156,24 @@ class Temporalio::Api::Callback::V1::CallbackInfo
154
156
  def clear_blocked_reason
155
157
  end
156
158
 
159
+ # Server-generated request ID used as an idempotency token when invoking callbacks.
160
+ # It has no relation to caller-side request_id sent in operations like StartNexusOperationExecutionRequest.
161
+ sig { returns(String) }
162
+ def request_id
163
+ end
164
+
165
+ # Server-generated request ID used as an idempotency token when invoking callbacks.
166
+ # It has no relation to caller-side request_id sent in operations like StartNexusOperationExecutionRequest.
167
+ sig { params(value: String).void }
168
+ def request_id=(value)
169
+ end
170
+
171
+ # Server-generated request ID used as an idempotency token when invoking callbacks.
172
+ # It has no relation to caller-side request_id sent in operations like StartNexusOperationExecutionRequest.
173
+ sig { void }
174
+ def clear_request_id
175
+ end
176
+
157
177
  sig { params(field: String).returns(T.untyped) }
158
178
  def [](field)
159
179
  end
@@ -486,8 +486,7 @@ class Temporalio::Api::Common::V1::WorkflowExecution
486
486
  end
487
487
  end
488
488
 
489
- # Identifies a specific execution within a namespace. This is used for standalone activities
490
- # executions in batch jobs currently.
489
+ # Identifies a specific execution within a namespace.
491
490
  class Temporalio::Api::Common::V1::Execution
492
491
  include ::Google::Protobuf::MessageExts
493
492
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1314,12 +1313,14 @@ class Temporalio::Api::Common::V1::Callback
1314
1313
  params(
1315
1314
  nexus: T.nilable(Temporalio::Api::Common::V1::Callback::Nexus),
1316
1315
  internal: T.nilable(Temporalio::Api::Common::V1::Callback::Internal),
1316
+ nexus_handler: T.nilable(Temporalio::Api::Common::V1::Callback::NexusHandler),
1317
1317
  links: T.nilable(T::Array[T.nilable(Temporalio::Api::Common::V1::Link)])
1318
1318
  ).void
1319
1319
  end
1320
1320
  def initialize(
1321
1321
  nexus: nil,
1322
1322
  internal: nil,
1323
+ nexus_handler: nil,
1323
1324
  links: []
1324
1325
  )
1325
1326
  end
@@ -1348,6 +1349,18 @@ class Temporalio::Api::Common::V1::Callback
1348
1349
  def clear_internal
1349
1350
  end
1350
1351
 
1352
+ sig { returns(T.nilable(Temporalio::Api::Common::V1::Callback::NexusHandler)) }
1353
+ def nexus_handler
1354
+ end
1355
+
1356
+ sig { params(value: T.nilable(Temporalio::Api::Common::V1::Callback::NexusHandler)).void }
1357
+ def nexus_handler=(value)
1358
+ end
1359
+
1360
+ sig { void }
1361
+ def clear_nexus_handler
1362
+ end
1363
+
1351
1364
  # Links associated with the callback. It can be used to link to underlying resources of the
1352
1365
  # callback.
1353
1366
  sig { returns(T::Array[T.nilable(Temporalio::Api::Common::V1::Link)]) }
@@ -1417,7 +1430,8 @@ class Temporalio::Api::Common::V1::Link
1417
1430
  batch_job: T.nilable(Temporalio::Api::Common::V1::Link::BatchJob),
1418
1431
  activity: T.nilable(Temporalio::Api::Common::V1::Link::Activity),
1419
1432
  nexus_operation: T.nilable(Temporalio::Api::Common::V1::Link::NexusOperation),
1420
- workflow: T.nilable(Temporalio::Api::Common::V1::Link::Workflow)
1433
+ workflow: T.nilable(Temporalio::Api::Common::V1::Link::Workflow),
1434
+ callback: T.nilable(Temporalio::Api::Common::V1::Link::Callback)
1421
1435
  ).void
1422
1436
  end
1423
1437
  def initialize(
@@ -1425,7 +1439,8 @@ class Temporalio::Api::Common::V1::Link
1425
1439
  batch_job: nil,
1426
1440
  activity: nil,
1427
1441
  nexus_operation: nil,
1428
- workflow: nil
1442
+ workflow: nil,
1443
+ callback: nil
1429
1444
  )
1430
1445
  end
1431
1446
 
@@ -1489,6 +1504,18 @@ class Temporalio::Api::Common::V1::Link
1489
1504
  def clear_workflow
1490
1505
  end
1491
1506
 
1507
+ sig { returns(T.nilable(Temporalio::Api::Common::V1::Link::Callback)) }
1508
+ def callback
1509
+ end
1510
+
1511
+ sig { params(value: T.nilable(Temporalio::Api::Common::V1::Link::Callback)).void }
1512
+ def callback=(value)
1513
+ end
1514
+
1515
+ sig { void }
1516
+ def clear_callback
1517
+ end
1518
+
1492
1519
  sig { returns(T.nilable(Symbol)) }
1493
1520
  def variant
1494
1521
  end
@@ -2702,6 +2729,8 @@ class Temporalio::Api::Common::V1::Payload::ExternalPayloadDetails
2702
2729
  end
2703
2730
  end
2704
2731
 
2732
+ # Nexus callbacks are used to delivery Nexus operation completions, as defined in the Nexus RPC spec:
2733
+ # https://github.com/nexus-rpc/api/blob/main/SPEC.md#callback-urls
2705
2734
  class Temporalio::Api::Common::V1::Callback::Nexus
2706
2735
  include ::Google::Protobuf::MessageExts
2707
2736
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2847,6 +2876,152 @@ class Temporalio::Api::Common::V1::Callback::Internal
2847
2876
  end
2848
2877
  end
2849
2878
 
2879
+ # NexusHandler callbacks are requests to invoke a specific shape of Nexus operation on a Temporal worker.
2880
+ # The specified Nexus operation must have the following:
2881
+ # - Input: temporal.api.notificationservice.v1.OnCompleteRequest
2882
+ # - Output: temporal.api.notificationservice.v1.OnCompleteResponse
2883
+ #
2884
+ # The targeted Nexus service must be registered within the same namespace as the source operation
2885
+ # the callback is attached to. (While Nexus allows for cross-namespace operations, NexusHandler callbacks
2886
+ # are strictly caller-side.)
2887
+ #
2888
+ # NexusHandler callbacks are only supported for certain types of operations, e.g. standalone Nexus operations.
2889
+ # Attempting to attach a Worker callback for an unsupported operation will result in an INVALID_ARGUMENT
2890
+ # error from the server.
2891
+ class Temporalio::Api::Common::V1::Callback::NexusHandler
2892
+ include ::Google::Protobuf::MessageExts
2893
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2894
+
2895
+ sig do
2896
+ params(
2897
+ task_queue_name: T.nilable(String),
2898
+ service: T.nilable(String),
2899
+ operation: T.nilable(String),
2900
+ source_context: T.nilable(Temporalio::Api::Common::V1::Payload)
2901
+ ).void
2902
+ end
2903
+ def initialize(
2904
+ task_queue_name: "",
2905
+ service: "",
2906
+ operation: "",
2907
+ source_context: nil
2908
+ )
2909
+ end
2910
+
2911
+ # Nexus task queue the Temporal worker is listening on.
2912
+ #
2913
+ # NOTE: This is not a temporal.api.taskqueue.v1.TaskQueue to avoid a circular dependency.
2914
+ sig { returns(String) }
2915
+ def task_queue_name
2916
+ end
2917
+
2918
+ # Nexus task queue the Temporal worker is listening on.
2919
+ #
2920
+ # NOTE: This is not a temporal.api.taskqueue.v1.TaskQueue to avoid a circular dependency.
2921
+ sig { params(value: String).void }
2922
+ def task_queue_name=(value)
2923
+ end
2924
+
2925
+ # Nexus task queue the Temporal worker is listening on.
2926
+ #
2927
+ # NOTE: This is not a temporal.api.taskqueue.v1.TaskQueue to avoid a circular dependency.
2928
+ sig { void }
2929
+ def clear_task_queue_name
2930
+ end
2931
+
2932
+ # Target Nexus service, e.g. "HTTPAdapter".
2933
+ sig { returns(String) }
2934
+ def service
2935
+ end
2936
+
2937
+ # Target Nexus service, e.g. "HTTPAdapter".
2938
+ sig { params(value: String).void }
2939
+ def service=(value)
2940
+ end
2941
+
2942
+ # Target Nexus service, e.g. "HTTPAdapter".
2943
+ sig { void }
2944
+ def clear_service
2945
+ end
2946
+
2947
+ # Target operation, e.g. "DeliverAsWebhook".
2948
+ sig { returns(String) }
2949
+ def operation
2950
+ end
2951
+
2952
+ # Target operation, e.g. "DeliverAsWebhook".
2953
+ sig { params(value: String).void }
2954
+ def operation=(value)
2955
+ end
2956
+
2957
+ # Target operation, e.g. "DeliverAsWebhook".
2958
+ sig { void }
2959
+ def clear_operation
2960
+ end
2961
+
2962
+ # Arbitrary user-supplied data from the source operation's callsite. (As applicable, not all operations
2963
+ # support attaching context data.)
2964
+ #
2965
+ # There are restrictions on the maxium payload size a single callback can carry, as well as the
2966
+ # total sum of all source context payloads attached to an execution. See dynamic configuration:
2967
+ # "callback.nexusHandler.sourceContext.maxSize", "callback.nexusHandler.sourceContext.aggregateMaxSize".
2968
+ sig { returns(T.nilable(Temporalio::Api::Common::V1::Payload)) }
2969
+ def source_context
2970
+ end
2971
+
2972
+ # Arbitrary user-supplied data from the source operation's callsite. (As applicable, not all operations
2973
+ # support attaching context data.)
2974
+ #
2975
+ # There are restrictions on the maxium payload size a single callback can carry, as well as the
2976
+ # total sum of all source context payloads attached to an execution. See dynamic configuration:
2977
+ # "callback.nexusHandler.sourceContext.maxSize", "callback.nexusHandler.sourceContext.aggregateMaxSize".
2978
+ sig { params(value: T.nilable(Temporalio::Api::Common::V1::Payload)).void }
2979
+ def source_context=(value)
2980
+ end
2981
+
2982
+ # Arbitrary user-supplied data from the source operation's callsite. (As applicable, not all operations
2983
+ # support attaching context data.)
2984
+ #
2985
+ # There are restrictions on the maxium payload size a single callback can carry, as well as the
2986
+ # total sum of all source context payloads attached to an execution. See dynamic configuration:
2987
+ # "callback.nexusHandler.sourceContext.maxSize", "callback.nexusHandler.sourceContext.aggregateMaxSize".
2988
+ sig { void }
2989
+ def clear_source_context
2990
+ end
2991
+
2992
+ sig { params(field: String).returns(T.untyped) }
2993
+ def [](field)
2994
+ end
2995
+
2996
+ sig { params(field: String, value: T.untyped).void }
2997
+ def []=(field, value)
2998
+ end
2999
+
3000
+ sig { returns(T::Hash[Symbol, T.untyped]) }
3001
+ def to_h
3002
+ end
3003
+
3004
+ sig { params(str: String).returns(Temporalio::Api::Common::V1::Callback::NexusHandler) }
3005
+ def self.decode(str)
3006
+ end
3007
+
3008
+ sig { params(msg: Temporalio::Api::Common::V1::Callback::NexusHandler).returns(String) }
3009
+ def self.encode(msg)
3010
+ end
3011
+
3012
+ sig { params(str: String, kw: T.untyped).returns(Temporalio::Api::Common::V1::Callback::NexusHandler) }
3013
+ def self.decode_json(str, **kw)
3014
+ end
3015
+
3016
+ sig { params(msg: Temporalio::Api::Common::V1::Callback::NexusHandler, kw: T.untyped).returns(String) }
3017
+ def self.encode_json(msg, **kw)
3018
+ end
3019
+
3020
+ sig { returns(::Google::Protobuf::Descriptor) }
3021
+ def self.descriptor
3022
+ end
3023
+ end
3024
+
2850
3025
  class Temporalio::Api::Common::V1::Link::WorkflowEvent
2851
3026
  include ::Google::Protobuf::MessageExts
2852
3027
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -3308,6 +3483,121 @@ class Temporalio::Api::Common::V1::Link::Workflow
3308
3483
  end
3309
3484
  end
3310
3485
 
3486
+ # A link to a worker callback attached to an execution. An execution (e.g. standalone Nexus operation) can have
3487
+ # multiple callbacks attached, and will be differentiated by the request_id used when the callback is invoked.
3488
+ class Temporalio::Api::Common::V1::Link::Callback
3489
+ include ::Google::Protobuf::MessageExts
3490
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3491
+
3492
+ sig do
3493
+ params(
3494
+ namespace: T.nilable(String),
3495
+ execution: T.nilable(Temporalio::Api::Common::V1::Execution),
3496
+ component_path: T.nilable(T::Array[String]),
3497
+ request_id: T.nilable(String)
3498
+ ).void
3499
+ end
3500
+ def initialize(
3501
+ namespace: "",
3502
+ execution: nil,
3503
+ component_path: [],
3504
+ request_id: ""
3505
+ )
3506
+ end
3507
+
3508
+ sig { returns(String) }
3509
+ def namespace
3510
+ end
3511
+
3512
+ sig { params(value: String).void }
3513
+ def namespace=(value)
3514
+ end
3515
+
3516
+ sig { void }
3517
+ def clear_namespace
3518
+ end
3519
+
3520
+ sig { returns(T.nilable(Temporalio::Api::Common::V1::Execution)) }
3521
+ def execution
3522
+ end
3523
+
3524
+ sig { params(value: T.nilable(Temporalio::Api::Common::V1::Execution)).void }
3525
+ def execution=(value)
3526
+ end
3527
+
3528
+ sig { void }
3529
+ def clear_execution
3530
+ end
3531
+
3532
+ # In most cases, the Execution is sufficient to identify the callback's source. But the callback could have
3533
+ # been attached some child component of that execution. e.g. a workflow update. The component path describes
3534
+ # the unique component as applicable, typically ending with a unique ID. e.g. ["Update", $workflowUpdateId ]
3535
+ sig { returns(T::Array[String]) }
3536
+ def component_path
3537
+ end
3538
+
3539
+ # In most cases, the Execution is sufficient to identify the callback's source. But the callback could have
3540
+ # been attached some child component of that execution. e.g. a workflow update. The component path describes
3541
+ # the unique component as applicable, typically ending with a unique ID. e.g. ["Update", $workflowUpdateId ]
3542
+ sig { params(value: ::Google::Protobuf::RepeatedField).void }
3543
+ def component_path=(value)
3544
+ end
3545
+
3546
+ # In most cases, the Execution is sufficient to identify the callback's source. But the callback could have
3547
+ # been attached some child component of that execution. e.g. a workflow update. The component path describes
3548
+ # the unique component as applicable, typically ending with a unique ID. e.g. ["Update", $workflowUpdateId ]
3549
+ sig { void }
3550
+ def clear_component_path
3551
+ end
3552
+
3553
+ # Server-generate request ID sent when the callback was dispatched.
3554
+ sig { returns(String) }
3555
+ def request_id
3556
+ end
3557
+
3558
+ # Server-generate request ID sent when the callback was dispatched.
3559
+ sig { params(value: String).void }
3560
+ def request_id=(value)
3561
+ end
3562
+
3563
+ # Server-generate request ID sent when the callback was dispatched.
3564
+ sig { void }
3565
+ def clear_request_id
3566
+ end
3567
+
3568
+ sig { params(field: String).returns(T.untyped) }
3569
+ def [](field)
3570
+ end
3571
+
3572
+ sig { params(field: String, value: T.untyped).void }
3573
+ def []=(field, value)
3574
+ end
3575
+
3576
+ sig { returns(T::Hash[Symbol, T.untyped]) }
3577
+ def to_h
3578
+ end
3579
+
3580
+ sig { params(str: String).returns(Temporalio::Api::Common::V1::Link::Callback) }
3581
+ def self.decode(str)
3582
+ end
3583
+
3584
+ sig { params(msg: Temporalio::Api::Common::V1::Link::Callback).returns(String) }
3585
+ def self.encode(msg)
3586
+ end
3587
+
3588
+ sig { params(str: String, kw: T.untyped).returns(Temporalio::Api::Common::V1::Link::Callback) }
3589
+ def self.decode_json(str, **kw)
3590
+ end
3591
+
3592
+ sig { params(msg: Temporalio::Api::Common::V1::Link::Callback, kw: T.untyped).returns(String) }
3593
+ def self.encode_json(msg, **kw)
3594
+ end
3595
+
3596
+ sig { returns(::Google::Protobuf::Descriptor) }
3597
+ def self.descriptor
3598
+ end
3599
+ end
3600
+
3311
3601
  # EventReference is a direct reference to a history event through the event ID.
3312
3602
  class Temporalio::Api::Common::V1::Link::WorkflowEvent::EventReference
3313
3603
  include ::Google::Protobuf::MessageExts
@@ -9,12 +9,14 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroup
9
9
  sig do
10
10
  params(
11
11
  task_queue_types: T.nilable(T::Array[T.any(Symbol, String, Integer)]),
12
+ region_ids: T.nilable(T::Array[String]),
12
13
  provider: T.nilable(Temporalio::Api::Compute::V1::ComputeProvider),
13
14
  scaler: T.nilable(Temporalio::Api::Compute::V1::ComputeScaler)
14
15
  ).void
15
16
  end
16
17
  def initialize(
17
18
  task_queue_types: [],
19
+ region_ids: [],
18
20
  provider: nil,
19
21
  scaler: nil
20
22
  )
@@ -41,6 +43,24 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroup
41
43
  def clear_task_queue_types
42
44
  end
43
45
 
46
+ # Optional. If set, this scaling group is used only while the namespace is
47
+ # active in one of these regions.
48
+ sig { returns(T::Array[String]) }
49
+ def region_ids
50
+ end
51
+
52
+ # Optional. If set, this scaling group is used only while the namespace is
53
+ # active in one of these regions.
54
+ sig { params(value: ::Google::Protobuf::RepeatedField).void }
55
+ def region_ids=(value)
56
+ end
57
+
58
+ # Optional. If set, this scaling group is used only while the namespace is
59
+ # active in one of these regions.
60
+ sig { void }
61
+ def clear_region_ids
62
+ end
63
+
44
64
  # Stores instructions for a worker control plane controller how to respond
45
65
  # to worker lifeycle events.
46
66
  sig { returns(T.nilable(Temporalio::Api::Compute::V1::ComputeProvider)) }
@@ -226,7 +246,7 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroupUpdate
226
246
  # - Empty mask for an existing scaling group is no-op: no change.
227
247
  # - Non-empty mask for an existing scaling group will update/unset only to the fields
228
248
  # mentioned in the mask.
229
- # - Accepted paths: "task_queue_types", "provider", "provider.type", "provider.details",
249
+ # - Accepted paths: "task_queue_types", "region_ids", "provider", "provider.type", "provider.details",
230
250
  # "provider.nexus_endpoint", "scaler", "scaler.type", "scaler.details"
231
251
  sig { returns(T.nilable(Google::Protobuf::FieldMask)) }
232
252
  def update_mask
@@ -237,7 +257,7 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroupUpdate
237
257
  # - Empty mask for an existing scaling group is no-op: no change.
238
258
  # - Non-empty mask for an existing scaling group will update/unset only to the fields
239
259
  # mentioned in the mask.
240
- # - Accepted paths: "task_queue_types", "provider", "provider.type", "provider.details",
260
+ # - Accepted paths: "task_queue_types", "region_ids", "provider", "provider.type", "provider.details",
241
261
  # "provider.nexus_endpoint", "scaler", "scaler.type", "scaler.details"
242
262
  sig { params(value: T.nilable(Google::Protobuf::FieldMask)).void }
243
263
  def update_mask=(value)
@@ -248,7 +268,7 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroupUpdate
248
268
  # - Empty mask for an existing scaling group is no-op: no change.
249
269
  # - Non-empty mask for an existing scaling group will update/unset only to the fields
250
270
  # mentioned in the mask.
251
- # - Accepted paths: "task_queue_types", "provider", "provider.type", "provider.details",
271
+ # - Accepted paths: "task_queue_types", "region_ids", "provider", "provider.type", "provider.details",
252
272
  # "provider.nexus_endpoint", "scaler", "scaler.type", "scaler.details"
253
273
  sig { void }
254
274
  def clear_update_mask
@@ -354,12 +374,14 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroupSummary
354
374
  sig do
355
375
  params(
356
376
  task_queue_types: T.nilable(T::Array[T.any(Symbol, String, Integer)]),
357
- provider_type: T.nilable(String)
377
+ provider_type: T.nilable(String),
378
+ region_ids: T.nilable(T::Array[String])
358
379
  ).void
359
380
  end
360
381
  def initialize(
361
382
  task_queue_types: [],
362
- provider_type: ""
383
+ provider_type: "",
384
+ region_ids: []
363
385
  )
364
386
  end
365
387
 
@@ -387,6 +409,18 @@ class Temporalio::Api::Compute::V1::ComputeConfigScalingGroupSummary
387
409
  def clear_provider_type
388
410
  end
389
411
 
412
+ sig { returns(T::Array[String]) }
413
+ def region_ids
414
+ end
415
+
416
+ sig { params(value: ::Google::Protobuf::RepeatedField).void }
417
+ def region_ids=(value)
418
+ end
419
+
420
+ sig { void }
421
+ def clear_region_ids
422
+ end
423
+
390
424
  sig { params(field: String).returns(T.untyped) }
391
425
  def [](field)
392
426
  end