@@ -6,69 +6,50 @@ module Temporalio
66 # Base class for version overrides that can be provided in start workflow options.
77 # Used to control the versioning behavior of workflows started with this override.
88 #
9- # Use factory methods {.auto_upgrade} or {.pinned} to create instances.
10- #
119 # WARNING: Experimental API.
1210 class VersioningOverride
13- # Creates an auto-upgrade versioning override
14- # The workflow will auto-upgrade to the current deployment version on the next workflow task.
15- #
16- # @return [AutoUpgradeVersioningOverride] An auto-upgrade versioning override
17- def self . auto_upgrade
18- AutoUpgradeVersioningOverride . new
19- end
20-
21- # Creates a pinned versioning override
22- # The workflow will be pinned to a specific deployment version.
23- #
24- # @param version [WorkerDeploymentVersion] The worker deployment version to pin the workflow to
25- # @return [PinnedVersioningOverride] A pinned versioning override
26- def self . pinned ( version )
27- PinnedVersioningOverride . new ( version )
28- end
29-
3011 # @!visibility private
3112 def _to_proto
3213 raise NotImplementedError , 'Subclasses must implement this method'
3314 end
34- end
35-
36- # Represents a versioning override to pin a workflow to a specific version
37- class PinnedVersioningOverride < VersioningOverride
38- # The worker deployment version to pin to
39- # @return [WorkerDeploymentVersion]
40- attr_reader :version
41-
42- # Create a new pinned versioning override
43- #
44- # @param version [WorkerDeploymentVersion] The worker deployment version to pin to
45- def initialize ( version )
46- @version = version
47- super ( )
48- end
49-
50- # TODO: Remove deprecated field setting once removed from server
5115
52- # @!visibility private
53- def _to_proto
54- Temporalio ::Api ::Workflow ::V1 ::VersioningOverride . new (
55- behavior : Temporalio ::Api ::Enums ::V1 ::VersioningBehavior ::VERSIONING_BEHAVIOR_PINNED ,
56- pinned_version : @version . to_canonical_string ,
57- pinned : Temporalio ::Api ::Workflow ::V1 ::VersioningOverride ::PinnedOverride . new (
58- version : @version . _to_proto
16+ # Represents a versioning override to pin a workflow to a specific version
17+ class Pinned < VersioningOverride
18+ # The worker deployment version to pin to
19+ # @return [WorkerDeploymentVersion]
20+ attr_reader :version
21+
22+ # Create a new pinned versioning override
23+ #
24+ # @param version [WorkerDeploymentVersion] The worker deployment version to pin to
25+ def initialize ( version )
26+ @version = version
27+ super ( )
28+ end
29+
30+ # TODO: Remove deprecated field setting once removed from server
31+
32+ # @!visibility private
33+ def _to_proto
34+ Temporalio ::Api ::Workflow ::V1 ::VersioningOverride . new (
35+ behavior : Temporalio ::Api ::Enums ::V1 ::VersioningBehavior ::VERSIONING_BEHAVIOR_PINNED ,
36+ pinned_version : @version . to_canonical_string ,
37+ pinned : Temporalio ::Api ::Workflow ::V1 ::VersioningOverride ::PinnedOverride . new (
38+ version : @version . _to_proto
39+ )
5940 )
60- )
41+ end
6142 end
62- end
6343
64- # Represents a versioning override to auto-upgrade a workflow
65- class AutoUpgradeVersioningOverride < VersioningOverride
66- # @!visibility private
67- def _to_proto
68- Temporalio ::Api ::Workflow ::V1 ::VersioningOverride . new (
69- behavior : Temporalio ::Api ::Enums ::V1 ::VersioningBehavior ::VERSIONING_BEHAVIOR_AUTO_UPGRADE ,
70- auto_upgrade : true
71- )
44+ # Represents a versioning override to auto-upgrade a workflow
45+ class AutoUpgrade < VersioningOverride
46+ # @!visibility private
47+ def _to_proto
48+ Temporalio ::Api ::Workflow ::V1 ::VersioningOverride . new (
49+ behavior : Temporalio ::Api ::Enums ::V1 ::VersioningBehavior ::VERSIONING_BEHAVIOR_AUTO_UPGRADE ,
50+ auto_upgrade : true
51+ )
52+ end
7253 end
7354 end
7455end
0 commit comments