temporalio 1.2.0 → 1.4.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.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/Cargo.lock +985 -773
- data/Cargo.toml +16 -11
- data/Gemfile +0 -1
- data/README.md +4 -0
- data/Rakefile +12 -13
- data/ext/Cargo.toml +7 -3
- data/lib/temporalio/api/activity/v1/message.rb +5 -1
- data/lib/temporalio/api/callback/v1/message.rb +26 -0
- data/lib/temporalio/api/cloud/account/v1/message.rb +4 -1
- data/lib/temporalio/api/cloud/auditlog/v1/message.rb +27 -0
- data/lib/temporalio/api/cloud/billing/v1/message.rb +30 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +23 -1
- data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +2 -1
- data/lib/temporalio/api/cloud/namespace/v1/message.rb +16 -2
- data/lib/temporalio/api/command/v1/message.rb +1 -1
- data/lib/temporalio/api/common/v1/message.rb +5 -1
- data/lib/temporalio/api/compute/v1/config.rb +30 -0
- data/lib/temporalio/api/compute/v1/provider.rb +23 -0
- data/lib/temporalio/api/compute/v1/scaler.rb +23 -0
- data/lib/temporalio/api/deployment/v1/message.rb +3 -1
- data/lib/temporalio/api/enums/v1/deployment.rb +1 -1
- data/lib/temporalio/api/enums/v1/event_type.rb +1 -1
- data/lib/temporalio/api/enums/v1/nexus.rb +5 -1
- data/lib/temporalio/api/enums/v1/task_queue.rb +1 -1
- data/lib/temporalio/api/enums/v1/workflow.rb +1 -1
- data/lib/temporalio/api/errordetails/v1/message.rb +2 -1
- data/lib/temporalio/api/failure/v1/message.rb +1 -1
- data/lib/temporalio/api/history/v1/message.rb +3 -1
- data/lib/temporalio/api/namespace/v1/message.rb +1 -1
- data/lib/temporalio/api/nexus/v1/message.rb +9 -1
- data/lib/temporalio/api/nexusservices/workerservice/v1/request_response.rb +26 -0
- data/lib/temporalio/api/payload_visitor.rb +174 -4
- data/lib/temporalio/api/protoc_gen_openapiv2/options/annotations.rb +23 -0
- data/lib/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rb +48 -0
- data/lib/temporalio/api/protometa/v1/annotations.rb +23 -0
- data/lib/temporalio/api/sdk/v1/external_storage.rb +21 -0
- data/lib/temporalio/api/taskqueue/v1/message.rb +2 -1
- data/lib/temporalio/api/worker/v1/message.rb +7 -1
- data/lib/temporalio/api/workflow/v1/message.rb +2 -1
- data/lib/temporalio/api/workflowservice/v1/request_response.rb +31 -1
- data/lib/temporalio/api/workflowservice/v1/service.rb +2 -1
- data/lib/temporalio/client/connection/cloud_service.rb +150 -0
- data/lib/temporalio/client/connection/workflow_service.rb +195 -0
- data/lib/temporalio/client.rb +1 -3
- data/lib/temporalio/common_enums.rb +29 -2
- data/lib/temporalio/contrib/open_telemetry.rb +59 -13
- data/lib/temporalio/converters/failure_converter.rb +30 -0
- data/lib/temporalio/converters/payload_converter/composite.rb +4 -2
- data/lib/temporalio/env_config.rb +1 -3
- data/lib/temporalio/error/failure.rb +66 -0
- data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +1 -1
- data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +1 -1
- data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +1 -1
- data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +1 -1
- data/lib/temporalio/internal/bridge/client.rb +5 -10
- data/lib/temporalio/internal/bridge/runtime.rb +6 -12
- data/lib/temporalio/internal/bridge/testing.rb +2 -4
- data/lib/temporalio/internal/bridge/worker.rb +8 -16
- data/lib/temporalio/internal/bridge.rb +2 -2
- data/lib/temporalio/internal/client/implementation.rb +1 -1
- data/lib/temporalio/internal/proto_utils.rb +7 -5
- data/lib/temporalio/internal/worker/workflow_instance/context.rb +16 -1
- data/lib/temporalio/internal/worker/workflow_instance/nexus_client.rb +45 -0
- data/lib/temporalio/internal/worker/workflow_instance/nexus_operation_handle.rb +51 -0
- data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +71 -1
- data/lib/temporalio/internal/worker/workflow_instance.rb +20 -2
- data/lib/temporalio/search_attributes.rb +12 -2
- data/lib/temporalio/testing/workflow_environment.rb +40 -0
- data/lib/temporalio/version.rb +1 -1
- data/lib/temporalio/versioning_override.rb +0 -2
- data/lib/temporalio/worker/deployment_options.rb +0 -2
- data/lib/temporalio/worker/interceptor.rb +29 -0
- data/lib/temporalio/worker/workflow_executor/thread_pool.rb +1 -1
- data/lib/temporalio/worker/workflow_replayer.rb +1 -3
- data/lib/temporalio/worker.rb +9 -8
- data/lib/temporalio/worker_deployment_version.rb +0 -2
- data/lib/temporalio/workflow/definition.rb +0 -3
- data/lib/temporalio/workflow/info.rb +3 -6
- data/lib/temporalio/workflow/nexus_client.rb +93 -0
- data/lib/temporalio/workflow/nexus_operation_cancellation_type.rb +21 -0
- data/lib/temporalio/workflow/nexus_operation_handle.rb +37 -0
- data/lib/temporalio/workflow/update_info.rb +1 -2
- data/lib/temporalio/workflow.rb +34 -2
- metadata +18 -2
data/lib/temporalio/client.rb
CHANGED
|
@@ -216,7 +216,7 @@ module Temporalio
|
|
|
216
216
|
def initialize(
|
|
217
217
|
connection:,
|
|
218
218
|
namespace:,
|
|
219
|
-
data_converter: DataConverter.default,
|
|
219
|
+
data_converter: Converters::DataConverter.default,
|
|
220
220
|
plugins: [],
|
|
221
221
|
interceptors: [],
|
|
222
222
|
logger: Logger.new($stdout, level: Logger::WARN),
|
|
@@ -298,7 +298,6 @@ module Temporalio
|
|
|
298
298
|
# @param request_eager_start [Boolean] Potentially reduce the latency to start this workflow by encouraging the
|
|
299
299
|
# server to start it on a local worker running with this same client. This is currently experimental.
|
|
300
300
|
# @param versioning_override [VersioningOverride, nil] Override the version of the workflow.
|
|
301
|
-
# This is currently experimental.
|
|
302
301
|
# @param priority [Priority] Priority of the workflow. This is currently experimental.
|
|
303
302
|
# @param arg_hints [Array<Object>, nil] Overrides converter hints for arguments if any. If unset/nil and the
|
|
304
303
|
# workflow definition has arg hints, those are used by default.
|
|
@@ -392,7 +391,6 @@ module Temporalio
|
|
|
392
391
|
# @param request_eager_start [Boolean] Potentially reduce the latency to start this workflow by encouraging the
|
|
393
392
|
# server to start it on a local worker running with this same client. This is currently experimental.
|
|
394
393
|
# @param versioning_override [VersioningOverride, nil] Override the version of the workflow.
|
|
395
|
-
# This is currently experimental.
|
|
396
394
|
# @param priority [Priority] Priority for the workflow. This is currently experimental.
|
|
397
395
|
# @param arg_hints [Array<Object>, nil] Overrides converter hints for arguments if any. If unset/nil and the
|
|
398
396
|
# workflow definition has arg hints, those are used by default.
|
|
@@ -39,9 +39,36 @@ module Temporalio
|
|
|
39
39
|
TERMINATE_EXISTING = Api::Enums::V1::WorkflowIdConflictPolicy::WORKFLOW_ID_CONFLICT_POLICY_TERMINATE_EXISTING
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
# Specifies the versioning behavior for the first task of a new run after continue-as-new. This is currently
|
|
43
|
+
# experimental.
|
|
44
|
+
module ContinueAsNewVersioningBehavior
|
|
45
|
+
# Unspecified. Follow existing continue-as-new inheritance semantics.
|
|
46
|
+
UNSPECIFIED =
|
|
47
|
+
Api::Enums::V1::ContinueAsNewVersioningBehavior::CONTINUE_AS_NEW_VERSIONING_BEHAVIOR_UNSPECIFIED
|
|
48
|
+
# Start the new run with AutoUpgrade behavior. Use the Target Version of the workflow's task queue at start-time.
|
|
49
|
+
# After the first workflow task completes, use whatever Versioning Behavior the workflow is annotated with in the
|
|
50
|
+
# workflow code.
|
|
51
|
+
AUTO_UPGRADE =
|
|
52
|
+
Api::Enums::V1::ContinueAsNewVersioningBehavior::CONTINUE_AS_NEW_VERSIONING_BEHAVIOR_AUTO_UPGRADE
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Specifies why the server suggests continue-as-new. This is currently experimental.
|
|
56
|
+
module SuggestContinueAsNewReason
|
|
57
|
+
# Unspecified.
|
|
58
|
+
UNSPECIFIED =
|
|
59
|
+
Api::Enums::V1::SuggestContinueAsNewReason::SUGGEST_CONTINUE_AS_NEW_REASON_UNSPECIFIED
|
|
60
|
+
# Workflow History size is getting too large.
|
|
61
|
+
HISTORY_SIZE_TOO_LARGE =
|
|
62
|
+
Api::Enums::V1::SuggestContinueAsNewReason::SUGGEST_CONTINUE_AS_NEW_REASON_HISTORY_SIZE_TOO_LARGE
|
|
63
|
+
# Workflow History event count is getting too large.
|
|
64
|
+
TOO_MANY_HISTORY_EVENTS =
|
|
65
|
+
Api::Enums::V1::SuggestContinueAsNewReason::SUGGEST_CONTINUE_AS_NEW_REASON_TOO_MANY_HISTORY_EVENTS
|
|
66
|
+
# Workflow's count of completed plus in-flight updates is too large.
|
|
67
|
+
TOO_MANY_UPDATES =
|
|
68
|
+
Api::Enums::V1::SuggestContinueAsNewReason::SUGGEST_CONTINUE_AS_NEW_REASON_TOO_MANY_UPDATES
|
|
69
|
+
end
|
|
70
|
+
|
|
42
71
|
# Specifies when a workflow might move from a worker of one Build Id to another.
|
|
43
|
-
#
|
|
44
|
-
# WARNING: Experimental API.
|
|
45
72
|
module VersioningBehavior
|
|
46
73
|
# Unspecified versioning behavior. By default, workers opting into worker versioning will
|
|
47
74
|
# be required to specify a behavior.
|
|
@@ -67,12 +67,22 @@ module Temporalio
|
|
|
67
67
|
headers[@header_key] = carrier unless carrier.empty?
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
+
# @!visibility private
|
|
71
|
+
def _propagator
|
|
72
|
+
@propagator
|
|
73
|
+
end
|
|
74
|
+
|
|
70
75
|
# @!visibility private
|
|
71
76
|
def _attach_context(headers)
|
|
72
77
|
context = _context_from_headers(headers)
|
|
73
78
|
::OpenTelemetry::Context.attach(context) if context
|
|
74
79
|
end
|
|
75
80
|
|
|
81
|
+
# @!visibility private
|
|
82
|
+
def _detach_context(context_token)
|
|
83
|
+
::OpenTelemetry::Context.detach(context_token) if context_token
|
|
84
|
+
end
|
|
85
|
+
|
|
76
86
|
# @!visibility private
|
|
77
87
|
def _context_from_headers(headers)
|
|
78
88
|
carrier = headers[@header_key]
|
|
@@ -148,15 +158,15 @@ module Temporalio
|
|
|
148
158
|
# @!visibility private
|
|
149
159
|
def signal_with_start_workflow(input)
|
|
150
160
|
@root._with_started_span(
|
|
151
|
-
name: "SignalWithStartWorkflow:#{input.workflow}",
|
|
161
|
+
name: "SignalWithStartWorkflow:#{input.start_workflow_operation.options.workflow}",
|
|
152
162
|
kind: :client,
|
|
153
|
-
attributes: { 'temporalWorkflowID' => input.start_workflow_operation.options.id }
|
|
154
|
-
outbound_input: input
|
|
163
|
+
attributes: { 'temporalWorkflowID' => input.start_workflow_operation.options.id }
|
|
155
164
|
) do
|
|
156
|
-
#
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
165
|
+
# SignalWithStartWorkflowInput has no top-level headers field and instead uses
|
|
166
|
+
# start_workflow_operation.options.headers.
|
|
167
|
+
# So tracing context must be injected explicitly instead of relying
|
|
168
|
+
# on _with_started_span.
|
|
169
|
+
@root._apply_context_to_headers(input.start_workflow_operation.options.headers)
|
|
160
170
|
super
|
|
161
171
|
end
|
|
162
172
|
end
|
|
@@ -201,7 +211,7 @@ module Temporalio
|
|
|
201
211
|
|
|
202
212
|
# @!visibility private
|
|
203
213
|
def execute(input)
|
|
204
|
-
@root._attach_context(input.headers)
|
|
214
|
+
token = @root._attach_context(input.headers)
|
|
205
215
|
info = Activity::Context.current.info
|
|
206
216
|
@root._with_started_span(
|
|
207
217
|
name: "RunActivity:#{info.activity_type}",
|
|
@@ -212,6 +222,8 @@ module Temporalio
|
|
|
212
222
|
'temporalActivityID' => info.activity_id
|
|
213
223
|
}
|
|
214
224
|
) { super }
|
|
225
|
+
ensure
|
|
226
|
+
@root._detach_context(token)
|
|
215
227
|
end
|
|
216
228
|
end
|
|
217
229
|
|
|
@@ -231,7 +243,7 @@ module Temporalio
|
|
|
231
243
|
|
|
232
244
|
# @!visibility private
|
|
233
245
|
def execute(input)
|
|
234
|
-
_attach_context(Temporalio::Workflow.info.headers)
|
|
246
|
+
token = _attach_context(Temporalio::Workflow.info.headers)
|
|
235
247
|
Workflow.with_completed_span("RunWorkflow:#{Temporalio::Workflow.info.workflow_type}", kind: :server) do
|
|
236
248
|
super
|
|
237
249
|
ensure
|
|
@@ -241,11 +253,13 @@ module Temporalio
|
|
|
241
253
|
exception: $ERROR_INFO # steep:ignore
|
|
242
254
|
)
|
|
243
255
|
end
|
|
256
|
+
ensure
|
|
257
|
+
_detach_context(token)
|
|
244
258
|
end
|
|
245
259
|
|
|
246
260
|
# @!visibility private
|
|
247
261
|
def handle_signal(input)
|
|
248
|
-
_attach_context(Temporalio::Workflow.info.headers)
|
|
262
|
+
token = _attach_context(Temporalio::Workflow.info.headers)
|
|
249
263
|
Workflow.with_completed_span(
|
|
250
264
|
"HandleSignal:#{input.signal}",
|
|
251
265
|
links: _links_from_headers(input.headers),
|
|
@@ -256,11 +270,13 @@ module Temporalio
|
|
|
256
270
|
Workflow.completed_span("FailHandleSignal:#{input.signal}", kind: :internal, exception: e)
|
|
257
271
|
raise
|
|
258
272
|
end
|
|
273
|
+
ensure
|
|
274
|
+
_detach_context(token)
|
|
259
275
|
end
|
|
260
276
|
|
|
261
277
|
# @!visibility private
|
|
262
278
|
def handle_query(input)
|
|
263
|
-
_attach_context(Temporalio::Workflow.info.headers)
|
|
279
|
+
token = _attach_context(Temporalio::Workflow.info.headers)
|
|
264
280
|
Workflow.with_completed_span(
|
|
265
281
|
"HandleQuery:#{input.query}",
|
|
266
282
|
links: _links_from_headers(input.headers),
|
|
@@ -277,11 +293,13 @@ module Temporalio
|
|
|
277
293
|
)
|
|
278
294
|
raise
|
|
279
295
|
end
|
|
296
|
+
ensure
|
|
297
|
+
_detach_context(token)
|
|
280
298
|
end
|
|
281
299
|
|
|
282
300
|
# @!visibility private
|
|
283
301
|
def validate_update(input)
|
|
284
|
-
_attach_context(Temporalio::Workflow.info.headers)
|
|
302
|
+
token = _attach_context(Temporalio::Workflow.info.headers)
|
|
285
303
|
Workflow.with_completed_span(
|
|
286
304
|
"ValidateUpdate:#{input.update}",
|
|
287
305
|
attributes: { 'temporalUpdateID' => input.id },
|
|
@@ -300,11 +318,13 @@ module Temporalio
|
|
|
300
318
|
)
|
|
301
319
|
raise
|
|
302
320
|
end
|
|
321
|
+
ensure
|
|
322
|
+
_detach_context(token)
|
|
303
323
|
end
|
|
304
324
|
|
|
305
325
|
# @!visibility private
|
|
306
326
|
def handle_update(input)
|
|
307
|
-
_attach_context(Temporalio::Workflow.info.headers)
|
|
327
|
+
token = _attach_context(Temporalio::Workflow.info.headers)
|
|
308
328
|
Workflow.with_completed_span(
|
|
309
329
|
"HandleUpdate:#{input.update}",
|
|
310
330
|
attributes: { 'temporalUpdateID' => input.id },
|
|
@@ -321,6 +341,8 @@ module Temporalio
|
|
|
321
341
|
)
|
|
322
342
|
raise
|
|
323
343
|
end
|
|
344
|
+
ensure
|
|
345
|
+
_detach_context(token)
|
|
324
346
|
end
|
|
325
347
|
|
|
326
348
|
# @!visibility private
|
|
@@ -336,6 +358,14 @@ module Temporalio
|
|
|
336
358
|
end
|
|
337
359
|
end
|
|
338
360
|
|
|
361
|
+
# @!visibility private
|
|
362
|
+
def _detach_context(context_token)
|
|
363
|
+
# See _attach_context above for why we have to disable scheduler even for these simple operations
|
|
364
|
+
Temporalio::Workflow::Unsafe.durable_scheduler_disabled do
|
|
365
|
+
@root._detach_context(context_token)
|
|
366
|
+
end
|
|
367
|
+
end
|
|
368
|
+
|
|
339
369
|
# @!visibility private
|
|
340
370
|
def _links_from_headers(headers)
|
|
341
371
|
# See _attach_context above for why we have to disable scheduler even for these simple operations
|
|
@@ -402,6 +432,22 @@ module Temporalio
|
|
|
402
432
|
super
|
|
403
433
|
end
|
|
404
434
|
|
|
435
|
+
# @!visibility private
|
|
436
|
+
def start_nexus_operation(input)
|
|
437
|
+
# Nexus headers are string-to-string maps (not payload-based like activity/workflow headers)
|
|
438
|
+
# so we inject the tracing context directly into the headers instead of nesting under a key
|
|
439
|
+
span = Workflow.completed_span("StartNexusOperation:#{input.service}/#{input.operation}", kind: :client)
|
|
440
|
+
Temporalio::Workflow::Unsafe.durable_scheduler_disabled do
|
|
441
|
+
if span
|
|
442
|
+
@root._propagator.inject(
|
|
443
|
+
input.headers,
|
|
444
|
+
context: ::OpenTelemetry::Trace.context_with_span(span)
|
|
445
|
+
)
|
|
446
|
+
end
|
|
447
|
+
end
|
|
448
|
+
super
|
|
449
|
+
end
|
|
450
|
+
|
|
405
451
|
# @!visibility private
|
|
406
452
|
def _apply_span_to_headers(headers, span)
|
|
407
453
|
# See WorkflowInbound#_attach_context comments for why we have to disable scheduler even for these simple
|
|
@@ -84,6 +84,18 @@ module Temporalio
|
|
|
84
84
|
started_event_id: error.started_event_id,
|
|
85
85
|
retry_state: error.retry_state
|
|
86
86
|
)
|
|
87
|
+
when Error::NexusOperationError
|
|
88
|
+
failure.nexus_operation_execution_failure_info = Api::Failure::V1::NexusOperationFailureInfo.new(
|
|
89
|
+
endpoint: error.endpoint,
|
|
90
|
+
service: error.service,
|
|
91
|
+
operation: error.operation,
|
|
92
|
+
operation_token: error.operation_token || ''
|
|
93
|
+
)
|
|
94
|
+
when Error::NexusHandlerError
|
|
95
|
+
failure.nexus_handler_failure_info = Api::Failure::V1::NexusHandlerFailureInfo.new(
|
|
96
|
+
type: error.error_type.to_s,
|
|
97
|
+
retry_behavior: error.retry_behavior
|
|
98
|
+
)
|
|
87
99
|
else
|
|
88
100
|
failure.application_failure_info = Api::Failure::V1::ApplicationFailureInfo.new(
|
|
89
101
|
type: error.class.name.to_s.split('::').last
|
|
@@ -190,6 +202,24 @@ module Temporalio
|
|
|
190
202
|
zero_means_nil: true
|
|
191
203
|
)
|
|
192
204
|
)
|
|
205
|
+
elsif failure.nexus_operation_execution_failure_info
|
|
206
|
+
token = failure.nexus_operation_execution_failure_info.operation_token
|
|
207
|
+
Error::NexusOperationError.new(
|
|
208
|
+
Internal::ProtoUtils.string_or(failure.message, 'Nexus operation error'),
|
|
209
|
+
endpoint: failure.nexus_operation_execution_failure_info.endpoint,
|
|
210
|
+
service: failure.nexus_operation_execution_failure_info.service,
|
|
211
|
+
operation: failure.nexus_operation_execution_failure_info.operation,
|
|
212
|
+
operation_token: token.empty? ? nil : token
|
|
213
|
+
)
|
|
214
|
+
elsif failure.nexus_handler_failure_info
|
|
215
|
+
Error::NexusHandlerError.new(
|
|
216
|
+
Internal::ProtoUtils.string_or(failure.message, 'Nexus handler error'),
|
|
217
|
+
error_type: failure.nexus_handler_failure_info.type,
|
|
218
|
+
retry_behavior: Internal::ProtoUtils.enum_to_int(
|
|
219
|
+
Api::Enums::V1::NexusHandlerErrorRetryBehavior,
|
|
220
|
+
failure.nexus_handler_failure_info.retry_behavior
|
|
221
|
+
)
|
|
222
|
+
)
|
|
193
223
|
else
|
|
194
224
|
Error::Failure.new(Internal::ProtoUtils.string_or(failure.message, 'Failure error'))
|
|
195
225
|
end
|
|
@@ -49,12 +49,14 @@ module Temporalio
|
|
|
49
49
|
|
|
50
50
|
# Convert payload to Ruby value based on its +encoding+ metadata on the payload.
|
|
51
51
|
#
|
|
52
|
-
# @param payload [Api::Common::V1::Payload] Payload to convert.
|
|
52
|
+
# @param payload [Api::Common::V1::Payload, nil] Payload to convert.
|
|
53
53
|
# @param hint [Object, nil] Hint, if any, to assist conversion.
|
|
54
|
-
# @return [Object] Converted Ruby value.
|
|
54
|
+
# @return [Object, nil] Converted Ruby value.
|
|
55
55
|
# @raise [EncodingNotSet] If encoding not set on the metadata.
|
|
56
56
|
# @raise [ConverterNotFound] If no converter found for the encoding.
|
|
57
57
|
def from_payload(payload, hint: nil)
|
|
58
|
+
return nil unless payload
|
|
59
|
+
|
|
58
60
|
encoding = payload.metadata['encoding']
|
|
59
61
|
raise EncodingNotSet, 'Missing payload encoding' unless encoding
|
|
60
62
|
|
|
@@ -4,9 +4,7 @@ require 'pathname'
|
|
|
4
4
|
require 'temporalio/internal/bridge'
|
|
5
5
|
|
|
6
6
|
module Temporalio
|
|
7
|
-
# Environment and file-based configuration for Temporal clients
|
|
8
|
-
#
|
|
9
|
-
# WARNING: Experimental API.
|
|
7
|
+
# Environment and file-based configuration for Temporal clients.
|
|
10
8
|
module EnvConfig
|
|
11
9
|
# This module provides utilities to load Temporal client configuration from TOML files
|
|
12
10
|
# and environment variables.
|
|
@@ -233,5 +233,71 @@ module Temporalio
|
|
|
233
233
|
@retry_state = retry_state
|
|
234
234
|
end
|
|
235
235
|
end
|
|
236
|
+
|
|
237
|
+
# Error raised on Nexus operation failure.
|
|
238
|
+
#
|
|
239
|
+
# WARNING: Nexus support is experimental.
|
|
240
|
+
class NexusOperationError < Failure
|
|
241
|
+
# @return [String] Nexus endpoint.
|
|
242
|
+
attr_reader :endpoint
|
|
243
|
+
# @return [String] Nexus service.
|
|
244
|
+
attr_reader :service
|
|
245
|
+
# @return [String] Nexus operation.
|
|
246
|
+
attr_reader :operation
|
|
247
|
+
# @return [String, nil] Operation token for async operations.
|
|
248
|
+
attr_reader :operation_token
|
|
249
|
+
|
|
250
|
+
# @!visibility private
|
|
251
|
+
def initialize(
|
|
252
|
+
message,
|
|
253
|
+
endpoint:,
|
|
254
|
+
service:,
|
|
255
|
+
operation:,
|
|
256
|
+
operation_token:
|
|
257
|
+
)
|
|
258
|
+
super(message)
|
|
259
|
+
@endpoint = endpoint
|
|
260
|
+
@service = service
|
|
261
|
+
@operation = operation
|
|
262
|
+
@operation_token = operation_token
|
|
263
|
+
end
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
# Error raised from a Nexus handler.
|
|
267
|
+
#
|
|
268
|
+
# WARNING: Nexus support is experimental.
|
|
269
|
+
class NexusHandlerError < Failure
|
|
270
|
+
# @return [Symbol] Error type from the handler.
|
|
271
|
+
attr_reader :error_type
|
|
272
|
+
|
|
273
|
+
# @return [RetryBehavior] Retry behavior for the error.
|
|
274
|
+
attr_reader :retry_behavior
|
|
275
|
+
|
|
276
|
+
# @!visibility private
|
|
277
|
+
def initialize(
|
|
278
|
+
message,
|
|
279
|
+
error_type:,
|
|
280
|
+
retry_behavior:
|
|
281
|
+
)
|
|
282
|
+
super(message)
|
|
283
|
+
@error_type = error_type.to_sym
|
|
284
|
+
@retry_behavior = retry_behavior
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
# Nexus handler error retry behavior.
|
|
288
|
+
module RetryBehavior
|
|
289
|
+
# Unspecified retry behavior.
|
|
290
|
+
UNSPECIFIED =
|
|
291
|
+
Api::Enums::V1::NexusHandlerErrorRetryBehavior::NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_UNSPECIFIED
|
|
292
|
+
|
|
293
|
+
# Retryable error.
|
|
294
|
+
RETRYABLE =
|
|
295
|
+
Api::Enums::V1::NexusHandlerErrorRetryBehavior::NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_RETRYABLE
|
|
296
|
+
|
|
297
|
+
# Non-retryable error.
|
|
298
|
+
NON_RETRYABLE =
|
|
299
|
+
Api::Enums::V1::NexusHandlerErrorRetryBehavior::NEXUS_HANDLER_ERROR_RETRY_BEHAVIOR_NON_RETRYABLE
|
|
300
|
+
end
|
|
301
|
+
end
|
|
236
302
|
end
|
|
237
303
|
end
|
|
@@ -10,7 +10,7 @@ require 'temporalio/api/common/v1/message'
|
|
|
10
10
|
require 'temporalio/internal/bridge/api/common/common'
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
descriptor_data = "\n3temporal/sdk/core/activity_task/activity_task.proto\x12\x15\x63oresdk.activity_task\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/sdk/core/common/common.proto\"\x8d\x01\n\x0c\x41\x63tivityTask\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12-\n\x05start\x18\x03 \x01(\x0b\x32\x1c.coresdk.activity_task.StartH\x00\x12/\n\x06\x63\x61ncel\x18\x04 \x01(\x0b\x32\x1d.coresdk.activity_task.CancelH\x00\x42\t\n\x07variant\"\
|
|
13
|
+
descriptor_data = "\n3temporal/sdk/core/activity_task/activity_task.proto\x12\x15\x63oresdk.activity_task\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/sdk/core/common/common.proto\"\x8d\x01\n\x0c\x41\x63tivityTask\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12-\n\x05start\x18\x03 \x01(\x0b\x32\x1c.coresdk.activity_task.StartH\x00\x12/\n\x06\x63\x61ncel\x18\x04 \x01(\x0b\x32\x1d.coresdk.activity_task.CancelH\x00\x42\t\n\x07variant\"\xb1\x07\n\x05Start\x12\x1a\n\x12workflow_namespace\x18\x01 \x01(\t\x12\x15\n\rworkflow_type\x18\x02 \x01(\t\x12\x45\n\x12workflow_execution\x18\x03 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x13\n\x0b\x61\x63tivity_id\x18\x04 \x01(\t\x12\x15\n\ractivity_type\x18\x05 \x01(\t\x12\x45\n\rheader_fields\x18\x06 \x03(\x0b\x32..coresdk.activity_task.Start.HeaderFieldsEntry\x12.\n\x05input\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12:\n\x11heartbeat_details\x18\x08 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x32\n\x0escheduled_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x42\n\x1e\x63urrent_attempt_scheduled_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0cstarted_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x61ttempt\x18\x0c \x01(\r\x12<\n\x19schedule_to_close_timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\x0e \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0f \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x10 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x32\n\x08priority\x18\x12 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x12\x10\n\x08is_local\x18\x11 \x01(\x08\x12\x0e\n\x06run_id\x18\x13 \x01(\t\x1aT\n\x11HeaderFieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x8a\x01\n\x06\x43\x61ncel\x12;\n\x06reason\x18\x01 \x01(\x0e\x32+.coresdk.activity_task.ActivityCancelReason\x12\x43\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x32.coresdk.activity_task.ActivityCancellationDetails\"\xa0\x01\n\x1b\x41\x63tivityCancellationDetails\x12\x14\n\x0cis_not_found\x18\x01 \x01(\x08\x12\x14\n\x0cis_cancelled\x18\x02 \x01(\x08\x12\x11\n\tis_paused\x18\x03 \x01(\x08\x12\x14\n\x0cis_timed_out\x18\x04 \x01(\x08\x12\x1a\n\x12is_worker_shutdown\x18\x05 \x01(\x08\x12\x10\n\x08is_reset\x18\x06 \x01(\x08*o\n\x14\x41\x63tivityCancelReason\x12\r\n\tNOT_FOUND\x10\x00\x12\r\n\tCANCELLED\x10\x01\x12\r\n\tTIMED_OUT\x10\x02\x12\x13\n\x0fWORKER_SHUTDOWN\x10\x03\x12\n\n\x06PAUSED\x10\x04\x12\t\n\x05RESET\x10\x05\x42\x32\xea\x02/Temporalio::Internal::Bridge::Api::ActivityTaskb\x06proto3"
|
|
14
14
|
|
|
15
15
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
16
16
|
pool.add_serialized_file(descriptor_data)
|
|
@@ -12,7 +12,7 @@ require 'temporalio/api/workflowservice/v1/request_response'
|
|
|
12
12
|
require 'temporalio/internal/bridge/api/common/common'
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
descriptor_data = "\n#temporal/sdk/core/nexus/nexus.proto\x12\rcoresdk.nexus\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a#temporal/api/nexus/v1/message.proto\x1a\x36temporal/api/workflowservice/v1/request_response.proto\x1a%temporal/sdk/core/common/common.proto\"\xf8\x01\n\x14NexusOperationResult\x12\x34\n\tcompleted\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x12\x32\n\x06\x66\x61iled\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\tcancelled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\ttimed_out\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status\"\
|
|
15
|
+
descriptor_data = "\n#temporal/sdk/core/nexus/nexus.proto\x12\rcoresdk.nexus\x1a\x1fgoogle/protobuf/timestamp.proto\x1a$temporal/api/common/v1/message.proto\x1a%temporal/api/failure/v1/message.proto\x1a#temporal/api/nexus/v1/message.proto\x1a\x36temporal/api/workflowservice/v1/request_response.proto\x1a%temporal/sdk/core/common/common.proto\"\xf8\x01\n\x14NexusOperationResult\x12\x34\n\tcompleted\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x12\x32\n\x06\x66\x61iled\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\tcancelled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x35\n\ttimed_out\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status\"\xee\x01\n\x13NexusTaskCompletion\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x34\n\tcompleted\x18\x02 \x01(\x0b\x32\x1f.temporal.api.nexus.v1.ResponseH\x00\x12\x38\n\x05\x65rror\x18\x03 \x01(\x0b\x32#.temporal.api.nexus.v1.HandlerErrorB\x02\x18\x01H\x00\x12\x14\n\nack_cancel\x18\x04 \x01(\x08H\x00\x12\x33\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status\"\xe2\x01\n\tNexusTask\x12K\n\x04task\x18\x01 \x01(\x0b\x32;.temporal.api.workflowservice.v1.PollNexusTaskQueueResponseH\x00\x12\x35\n\x0b\x63\x61ncel_task\x18\x02 \x01(\x0b\x32\x1e.coresdk.nexus.CancelNexusTaskH\x00\x12\x34\n\x10request_deadline\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\tB\t\n\x07variant\"[\n\x0f\x43\x61ncelNexusTask\x12\x12\n\ntask_token\x18\x01 \x01(\x0c\x12\x34\n\x06reason\x18\x02 \x01(\x0e\x32$.coresdk.nexus.NexusTaskCancelReason*;\n\x15NexusTaskCancelReason\x12\r\n\tTIMED_OUT\x10\x00\x12\x13\n\x0fWORKER_SHUTDOWN\x10\x01*\x7f\n\x1eNexusOperationCancellationType\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x00\x12\x0b\n\x07\x41\x42\x41NDON\x10\x01\x12\x0e\n\nTRY_CANCEL\x10\x02\x12\x1f\n\x1bWAIT_CANCELLATION_REQUESTED\x10\x03\x42+\xea\x02(Temporalio::Internal::Bridge::Api::Nexusb\x06proto3"
|
|
16
16
|
|
|
17
17
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
18
18
|
pool.add_serialized_file(descriptor_data)
|
|
@@ -17,7 +17,7 @@ require 'temporalio/internal/bridge/api/common/common'
|
|
|
17
17
|
require 'temporalio/internal/bridge/api/nexus/nexus'
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
descriptor_data = "\n?temporal/sdk/core/workflow_activation/workflow_activation.proto\x12\x1b\x63oresdk.workflow_activation\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a\x37temporal/sdk/core/activity_result/activity_result.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a#temporal/sdk/core/nexus/nexus.proto\"\
|
|
20
|
+
descriptor_data = "\n?temporal/sdk/core/workflow_activation/workflow_activation.proto\x12\x1b\x63oresdk.workflow_activation\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%temporal/api/failure/v1/message.proto\x1a$temporal/api/update/v1/message.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a\x37temporal/sdk/core/activity_result/activity_result.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\x1a#temporal/sdk/core/nexus/nexus.proto\"\xa2\x04\n\x12WorkflowActivation\x12\x0e\n\x06run_id\x18\x01 \x01(\t\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cis_replaying\x18\x03 \x01(\x08\x12\x16\n\x0ehistory_length\x18\x04 \x01(\r\x12@\n\x04jobs\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.WorkflowActivationJob\x12 \n\x18\x61vailable_internal_flags\x18\x06 \x03(\r\x12\x1a\n\x12history_size_bytes\x18\x07 \x01(\x04\x12!\n\x19\x63ontinue_as_new_suggested\x18\x08 \x01(\x08\x12T\n#deployment_version_for_current_task\x18\t \x01(\x0b\x32\'.coresdk.common.WorkerDeploymentVersion\x12\x18\n\x10last_sdk_version\x18\n \x01(\t\x12Z\n\x1fsuggest_continue_as_new_reasons\x18\x0b \x03(\x0e\x32\x31.temporal.api.enums.v1.SuggestContinueAsNewReason\x12\x30\n(target_worker_deployment_version_changed\x18\x0c \x01(\x08\"\xe0\n\n\x15WorkflowActivationJob\x12N\n\x13initialize_workflow\x18\x01 \x01(\x0b\x32/.coresdk.workflow_activation.InitializeWorkflowH\x00\x12<\n\nfire_timer\x18\x02 \x01(\x0b\x32&.coresdk.workflow_activation.FireTimerH\x00\x12K\n\x12update_random_seed\x18\x04 \x01(\x0b\x32-.coresdk.workflow_activation.UpdateRandomSeedH\x00\x12\x44\n\x0equery_workflow\x18\x05 \x01(\x0b\x32*.coresdk.workflow_activation.QueryWorkflowH\x00\x12\x46\n\x0f\x63\x61ncel_workflow\x18\x06 \x01(\x0b\x32+.coresdk.workflow_activation.CancelWorkflowH\x00\x12\x46\n\x0fsignal_workflow\x18\x07 \x01(\x0b\x32+.coresdk.workflow_activation.SignalWorkflowH\x00\x12H\n\x10resolve_activity\x18\x08 \x01(\x0b\x32,.coresdk.workflow_activation.ResolveActivityH\x00\x12G\n\x10notify_has_patch\x18\t \x01(\x0b\x32+.coresdk.workflow_activation.NotifyHasPatchH\x00\x12q\n&resolve_child_workflow_execution_start\x18\n \x01(\x0b\x32?.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartH\x00\x12\x66\n resolve_child_workflow_execution\x18\x0b \x01(\x0b\x32:.coresdk.workflow_activation.ResolveChildWorkflowExecutionH\x00\x12\x66\n resolve_signal_external_workflow\x18\x0c \x01(\x0b\x32:.coresdk.workflow_activation.ResolveSignalExternalWorkflowH\x00\x12u\n(resolve_request_cancel_external_workflow\x18\r \x01(\x0b\x32\x41.coresdk.workflow_activation.ResolveRequestCancelExternalWorkflowH\x00\x12:\n\tdo_update\x18\x0e \x01(\x0b\x32%.coresdk.workflow_activation.DoUpdateH\x00\x12`\n\x1dresolve_nexus_operation_start\x18\x0f \x01(\x0b\x32\x37.coresdk.workflow_activation.ResolveNexusOperationStartH\x00\x12U\n\x17resolve_nexus_operation\x18\x10 \x01(\x0b\x32\x32.coresdk.workflow_activation.ResolveNexusOperationH\x00\x12I\n\x11remove_from_cache\x18\x32 \x01(\x0b\x32,.coresdk.workflow_activation.RemoveFromCacheH\x00\x42\t\n\x07variant\"\xd9\n\n\x12InitializeWorkflow\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x17\n\x0frandomness_seed\x18\x04 \x01(\x04\x12M\n\x07headers\x18\x05 \x03(\x0b\x32<.coresdk.workflow_activation.InitializeWorkflow.HeadersEntry\x12\x10\n\x08identity\x18\x06 \x01(\t\x12I\n\x14parent_workflow_info\x18\x07 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12=\n\x1aworkflow_execution_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\'\n\x1f\x63ontinued_from_execution_run_id\x18\x0b \x01(\t\x12J\n\x13\x63ontinued_initiator\x18\x0c \x01(\x0e\x32-.temporal.api.enums.v1.ContinueAsNewInitiator\x12;\n\x11\x63ontinued_failure\x18\r \x01(\x0b\x32 .temporal.api.failure.v1.Failure\x12@\n\x16last_completion_result\x18\x0e \x01(\x0b\x32 .temporal.api.common.v1.Payloads\x12\x1e\n\x16\x66irst_execution_run_id\x18\x0f \x01(\t\x12\x39\n\x0cretry_policy\x18\x10 \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x0f\n\x07\x61ttempt\x18\x11 \x01(\x05\x12\x15\n\rcron_schedule\x18\x12 \x01(\t\x12\x46\n\"workflow_execution_expiration_time\x18\x13 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x45\n\"cron_schedule_to_schedule_interval\x18\x14 \x01(\x0b\x32\x19.google.protobuf.Duration\x12*\n\x04memo\x18\x15 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\x12\x43\n\x11search_attributes\x18\x16 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12.\n\nstart_time\x18\x17 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\rroot_workflow\x18\x18 \x01(\x0b\x32).temporal.api.common.v1.WorkflowExecution\x12\x32\n\x08priority\x18\x19 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x18\n\tFireTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"m\n\x0fResolveActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.activity_result.ActivityResolution\x12\x10\n\x08is_local\x18\x03 \x01(\x08\"\xd1\x02\n\"ResolveChildWorkflowExecutionStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12[\n\tsucceeded\x18\x02 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccessH\x00\x12X\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32\x46.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailureH\x00\x12]\n\tcancelled\x18\x04 \x01(\x0b\x32H.coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelledH\x00\x42\x08\n\x06status\";\n)ResolveChildWorkflowExecutionStartSuccess\x12\x0e\n\x06run_id\x18\x01 \x01(\t\"\xa6\x01\n)ResolveChildWorkflowExecutionStartFailure\x12\x13\n\x0bworkflow_id\x18\x01 \x01(\t\x12\x15\n\rworkflow_type\x18\x02 \x01(\t\x12M\n\x05\x63\x61use\x18\x03 \x01(\x0e\x32>.coresdk.child_workflow.StartChildWorkflowExecutionFailedCause\"`\n+ResolveChildWorkflowExecutionStartCancelled\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"i\n\x1dResolveChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12;\n\x06result\x18\x02 \x01(\x0b\x32+.coresdk.child_workflow.ChildWorkflowResult\"+\n\x10UpdateRandomSeed\x12\x17\n\x0frandomness_seed\x18\x01 \x01(\x04\"\x84\x02\n\rQueryWorkflow\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12\x12\n\nquery_type\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12H\n\x07headers\x18\x05 \x03(\x0b\x32\x37.coresdk.workflow_activation.QueryWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\" \n\x0e\x43\x61ncelWorkflow\x12\x0e\n\x06reason\x18\x01 \x01(\t\"\x83\x02\n\x0eSignalWorkflow\x12\x13\n\x0bsignal_name\x18\x01 \x01(\t\x12.\n\x05input\x18\x02 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x10\n\x08identity\x18\x03 \x01(\t\x12I\n\x07headers\x18\x05 \x03(\x0b\x32\x38.coresdk.workflow_activation.SignalWorkflow.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\"\n\x0eNotifyHasPatch\x12\x10\n\x08patch_id\x18\x01 \x01(\t\"_\n\x1dResolveSignalExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"f\n$ResolveRequestCancelExternalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x31\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\xcb\x02\n\x08\x44oUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1c\n\x14protocol_instance_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12.\n\x05input\x18\x04 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x43\n\x07headers\x18\x05 \x03(\x0b\x32\x32.coresdk.workflow_activation.DoUpdate.HeadersEntry\x12*\n\x04meta\x18\x06 \x01(\x0b\x32\x1c.temporal.api.update.v1.Meta\x12\x15\n\rrun_validator\x18\x07 \x01(\x08\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x9a\x01\n\x1aResolveNexusOperationStart\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x19\n\x0foperation_token\x18\x02 \x01(\tH\x00\x12\x16\n\x0cstarted_sync\x18\x03 \x01(\x08H\x00\x12\x32\n\x06\x66\x61iled\x18\x04 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\x08\n\x06status\"Y\n\x15ResolveNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x33\n\x06result\x18\x02 \x01(\x0b\x32#.coresdk.nexus.NexusOperationResult\"\xe0\x02\n\x0fRemoveFromCache\x12\x0f\n\x07message\x18\x01 \x01(\t\x12K\n\x06reason\x18\x02 \x01(\x0e\x32;.coresdk.workflow_activation.RemoveFromCache.EvictionReason\"\xee\x01\n\x0e\x45victionReason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0e\n\nCACHE_FULL\x10\x01\x12\x0e\n\nCACHE_MISS\x10\x02\x12\x12\n\x0eNONDETERMINISM\x10\x03\x12\r\n\tLANG_FAIL\x10\x04\x12\x12\n\x0eLANG_REQUESTED\x10\x05\x12\x12\n\x0eTASK_NOT_FOUND\x10\x06\x12\x15\n\x11UNHANDLED_COMMAND\x10\x07\x12\t\n\x05\x46\x41TAL\x10\x08\x12\x1f\n\x1bPAGINATION_OR_HISTORY_FETCH\x10\t\x12\x1d\n\x19WORKFLOW_EXECUTION_ENDING\x10\nB8\xea\x02\x35Temporalio::Internal::Bridge::Api::WorkflowActivationb\x06proto3"
|
|
21
21
|
|
|
22
22
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
23
23
|
pool.add_serialized_file(descriptor_data)
|
|
@@ -16,7 +16,7 @@ require 'temporalio/internal/bridge/api/nexus/nexus'
|
|
|
16
16
|
require 'temporalio/internal/bridge/api/common/common'
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
descriptor_data = "\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a#temporal/sdk/core/nexus/nexus.proto\x1a%temporal/sdk/core/common/common.proto\"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n\"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n\"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant\"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xb8\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x10 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant\"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\xfb\x06\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12j\n\x11search_attributes\x18\x08 \x03(\x0b\x32O.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.SearchAttributesEntry\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x19\n\x17\x43\x61ncelWorkflowExecution\"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08\"\x94\n\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12g\n\x11search_attributes\x18\x11 \x03(\x0b\x32L.coresdk.workflow_commands.StartChildWorkflowExecution.SearchAttributesEntry\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"J\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\"\x8e\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target\"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xe6\x01\n\x1eUpsertWorkflowSearchAttributes\x12j\n\x11search_attributes\x18\x01 \x03(\x0b\x32O.coresdk.workflow_commands.UpsertWorkflowSearchAttributes.SearchAttributesEntry\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response\"\x9a\x04\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x12H\n\x11\x63\x61ncellation_type\x18\x08 \x01(\x0e\x32-.coresdk.nexus.NexusOperationCancellationType\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3"
|
|
19
|
+
descriptor_data = "\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a#temporal/sdk/core/nexus/nexus.proto\x1a%temporal/sdk/core/common/common.proto\"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n\"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n\"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant\"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xb8\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x10 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant\"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\xd7\x06\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12\x43\n\x11search_attributes\x18\x08 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12[\n\x1binitial_versioning_behavior\x18\x0b \x01(\x0e\x32\x36.temporal.api.enums.v1.ContinueAsNewVersioningBehavior\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x19\n\x17\x43\x61ncelWorkflowExecution\"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08\"\x96\t\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12\x43\n\x11search_attributes\x18\x11 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x12\x32\n\x08priority\x18\x14 \x01(\x0b\x32 .temporal.api.common.v1.Priority\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"J\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\"\x8e\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target\"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\"e\n\x1eUpsertWorkflowSearchAttributes\x12\x43\n\x11search_attributes\x18\x01 \x01(\x0b\x32(.temporal.api.common.v1.SearchAttributes\"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response\"\x9a\x04\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x12H\n\x11\x63\x61ncellation_type\x18\x08 \x01(\x0e\x32-.coresdk.nexus.NexusOperationCancellationType\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3"
|
|
20
20
|
|
|
21
21
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
22
22
|
pool.add_serialized_file(descriptor_data)
|
|
@@ -16,16 +16,14 @@ module Temporalio
|
|
|
16
16
|
:tls, # Optional
|
|
17
17
|
:rpc_retry,
|
|
18
18
|
:keep_alive, # Optional
|
|
19
|
-
:http_connect_proxy
|
|
20
|
-
keyword_init: true
|
|
19
|
+
:http_connect_proxy # Optional
|
|
21
20
|
)
|
|
22
21
|
|
|
23
22
|
TLSOptions = Struct.new(
|
|
24
23
|
:client_cert, # Optional
|
|
25
24
|
:client_private_key, # Optional
|
|
26
25
|
:server_root_ca_cert, # Optional
|
|
27
|
-
:domain
|
|
28
|
-
keyword_init: true
|
|
26
|
+
:domain # Optional
|
|
29
27
|
)
|
|
30
28
|
|
|
31
29
|
RPCRetryOptions = Struct.new(
|
|
@@ -34,21 +32,18 @@ module Temporalio
|
|
|
34
32
|
:multiplier,
|
|
35
33
|
:max_interval,
|
|
36
34
|
:max_elapsed_time, # Can use 0 for none
|
|
37
|
-
:max_retries
|
|
38
|
-
keyword_init: true
|
|
35
|
+
:max_retries
|
|
39
36
|
)
|
|
40
37
|
|
|
41
38
|
KeepAliveOptions = Struct.new(
|
|
42
39
|
:interval,
|
|
43
|
-
:timeout
|
|
44
|
-
keyword_init: true
|
|
40
|
+
:timeout
|
|
45
41
|
)
|
|
46
42
|
|
|
47
43
|
HTTPConnectProxyOptions = Struct.new(
|
|
48
44
|
:target_host,
|
|
49
45
|
:basic_auth_user, # Optional
|
|
50
|
-
:basic_auth_pass
|
|
51
|
-
keyword_init: true
|
|
46
|
+
:basic_auth_pass # Optional
|
|
52
47
|
)
|
|
53
48
|
|
|
54
49
|
def self.new(runtime, options)
|
|
@@ -6,20 +6,17 @@ module Temporalio
|
|
|
6
6
|
class Runtime
|
|
7
7
|
Options = Struct.new(
|
|
8
8
|
:telemetry,
|
|
9
|
-
:worker_heartbeat_interval
|
|
10
|
-
keyword_init: true
|
|
9
|
+
:worker_heartbeat_interval
|
|
11
10
|
)
|
|
12
11
|
|
|
13
12
|
TelemetryOptions = Struct.new(
|
|
14
13
|
:logging, # Optional
|
|
15
|
-
:metrics
|
|
16
|
-
keyword_init: true
|
|
14
|
+
:metrics # Optional
|
|
17
15
|
)
|
|
18
16
|
|
|
19
17
|
LoggingOptions = Struct.new(
|
|
20
18
|
:log_filter,
|
|
21
|
-
:forward_to
|
|
22
|
-
keyword_init: true
|
|
19
|
+
:forward_to # Optional
|
|
23
20
|
)
|
|
24
21
|
|
|
25
22
|
MetricsOptions = Struct.new(
|
|
@@ -28,8 +25,7 @@ module Temporalio
|
|
|
28
25
|
:buffered_with_size, # Optional
|
|
29
26
|
:attach_service_name,
|
|
30
27
|
:global_tags, # Optional
|
|
31
|
-
:metric_prefix
|
|
32
|
-
keyword_init: true
|
|
28
|
+
:metric_prefix # Optional
|
|
33
29
|
)
|
|
34
30
|
|
|
35
31
|
OpenTelemetryMetricsOptions = Struct.new(
|
|
@@ -39,8 +35,7 @@ module Temporalio
|
|
|
39
35
|
:metric_temporality_delta,
|
|
40
36
|
:durations_as_seconds,
|
|
41
37
|
:http,
|
|
42
|
-
:histogram_bucket_overrides
|
|
43
|
-
keyword_init: true
|
|
38
|
+
:histogram_bucket_overrides # Optional
|
|
44
39
|
)
|
|
45
40
|
|
|
46
41
|
PrometheusMetricsOptions = Struct.new(
|
|
@@ -48,8 +43,7 @@ module Temporalio
|
|
|
48
43
|
:counters_total_suffix,
|
|
49
44
|
:unit_suffix,
|
|
50
45
|
:durations_as_seconds,
|
|
51
|
-
:histogram_bucket_overrides
|
|
52
|
-
keyword_init: true
|
|
46
|
+
:histogram_bucket_overrides # Optional
|
|
53
47
|
)
|
|
54
48
|
end
|
|
55
49
|
end
|