diff --git a/openapi/openapiv2.json b/openapi/openapiv2.json index 08db7afbf..cc20985af 100644 --- a/openapi/openapiv2.json +++ b/openapi/openapiv2.json @@ -19063,7 +19063,8 @@ "enum": [ "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED", "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_EXISTS", - "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_NAMESPACE_NOT_FOUND" + "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_NAMESPACE_NOT_FOUND", + "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_INVALID_VERSIONING_OVERRIDE" ], "default": "START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED" }, @@ -19181,6 +19182,10 @@ "$ref": "#/definitions/v1TimeSkippingConfig", "description": "The propagated time-skipping configuration for the child workflow." }, + "versioningOverride": { + "$ref": "#/definitions/v1VersioningOverride", + "description": "Versioning override requested for the child workflow. If present, this explicit override\ntakes precedence over versioning behavior inherited from the parent workflow." + }, "initialSkippedDuration": { "type": "string", "description": "Propagate the duration skipped to the child workflow." diff --git a/openapi/openapiv3.yaml b/openapi/openapiv3.yaml index bd6bb404c..43bfe9e59 100644 --- a/openapi/openapiv3.yaml +++ b/openapi/openapiv3.yaml @@ -16561,6 +16561,7 @@ components: - START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED - START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_EXISTS - START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_NAMESPACE_NOT_FOUND + - START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_INVALID_VERSIONING_OVERRIDE type: string format: enum control: @@ -16652,6 +16653,12 @@ components: allOf: - $ref: '#/components/schemas/TimeSkippingConfig' description: The propagated time-skipping configuration for the child workflow. + versioningOverride: + allOf: + - $ref: '#/components/schemas/VersioningOverride' + description: |- + Versioning override requested for the child workflow. If present, this explicit override + takes precedence over versioning behavior inherited from the parent workflow. initialSkippedDuration: pattern: ^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$ type: string diff --git a/temporal/api/command/v1/message.proto b/temporal/api/command/v1/message.proto index 2ce183aad..ee839115b 100644 --- a/temporal/api/command/v1/message.proto +++ b/temporal/api/command/v1/message.proto @@ -16,6 +16,7 @@ import "temporal/api/enums/v1/command_type.proto"; import "temporal/api/common/v1/message.proto"; import "temporal/api/failure/v1/message.proto"; import "temporal/api/taskqueue/v1/message.proto"; +import "temporal/api/workflow/v1/message.proto"; import "temporal/api/sdk/v1/user_metadata.proto"; import "temporal/api/sdk/v1/event_group_marker.proto"; @@ -221,6 +222,9 @@ message StartChildWorkflowExecutionCommandAttributes { // Priority metadata. If this message is not present, or any fields are not // present, they inherit the values from the workflow. temporal.api.common.v1.Priority priority = 18; + // Versioning override for the child workflow. If present, this explicit override takes + // precedence over versioning behavior inherited from the parent workflow. + temporal.api.workflow.v1.VersioningOverride versioning_override = 19; } message ProtocolMessageCommandAttributes { diff --git a/temporal/api/enums/v1/failed_cause.proto b/temporal/api/enums/v1/failed_cause.proto index 6b3eedfce..1085f4e45 100644 --- a/temporal/api/enums/v1/failed_cause.proto +++ b/temporal/api/enums/v1/failed_cause.proto @@ -89,6 +89,7 @@ enum StartChildWorkflowExecutionFailedCause { START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED = 0; START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_EXISTS = 1; START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_NAMESPACE_NOT_FOUND = 2; + START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_INVALID_VERSIONING_OVERRIDE = 3; } enum CancelExternalWorkflowExecutionFailedCause { @@ -136,4 +137,3 @@ enum ResourceExhaustedScope { // Exhausted resource is a namespace-level resource. RESOURCE_EXHAUSTED_SCOPE_SYSTEM = 2; } - diff --git a/temporal/api/history/v1/message.proto b/temporal/api/history/v1/message.proto index 32f4f83cc..56cb77f83 100644 --- a/temporal/api/history/v1/message.proto +++ b/temporal/api/history/v1/message.proto @@ -779,6 +779,10 @@ message StartChildWorkflowExecutionInitiatedEventAttributes { // The propagated time-skipping configuration for the child workflow. temporal.api.workflow.v1.TimeSkippingConfig time_skipping_config = 21; + // Versioning override requested for the child workflow. If present, this explicit override + // takes precedence over versioning behavior inherited from the parent workflow. + temporal.api.workflow.v1.VersioningOverride versioning_override = 22; + // Propagate the duration skipped to the child workflow. google.protobuf.Duration initial_skipped_duration = 30; }