Enum Class VersioningBehavior

java.lang.Object
java.lang.Enum<VersioningBehavior>
io.temporal.api.enums.v1.VersioningBehavior
All Implemented Interfaces:
com.google.protobuf.Internal.EnumLite, com.google.protobuf.ProtocolMessageEnum, Serializable, Comparable<VersioningBehavior>, Constable

@Generated(value="protoc", comments="annotations:VersioningBehavior.java.pb.meta") public enum VersioningBehavior extends Enum<VersioningBehavior> implements com.google.protobuf.ProtocolMessageEnum
 Versioning Behavior specifies if and how a workflow execution moves between Worker Deployment
 Versions. The Versioning Behavior of a workflow execution is typically specified by the worker
 who completes the first task of the execution, but is also overridable manually for new and
 existing workflows (see VersioningOverride).
 
Protobuf enum temporal.api.enums.v1.VersioningBehavior
  • Enum Constant Details

    • VERSIONING_BEHAVIOR_UNSPECIFIED

      public static final VersioningBehavior VERSIONING_BEHAVIOR_UNSPECIFIED
       Workflow execution does not have a Versioning Behavior and is called Unversioned. This is the
       legacy behavior. An Unversioned workflow's task can go to any Unversioned worker (see
       `WorkerVersioningMode`.)
       User needs to use Patching to keep the new code compatible with prior versions when dealing
       with Unversioned workflows.
       
      VERSIONING_BEHAVIOR_UNSPECIFIED = 0;
    • VERSIONING_BEHAVIOR_PINNED

      public static final VersioningBehavior VERSIONING_BEHAVIOR_PINNED
       Workflow will start on its Target Version and then will be pinned to that same Deployment
       Version until completion (the Version that this Workflow is pinned to is specified in
       `versioning_info.version` and is the Pinned Version of the Workflow).
      
       The workflow's Target Version is the Current Version of its Task Queue, or, if the
       Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target
       Version has a P% chance of being the Ramping Version. Whether a workflow falls into the
       Ramping group depends on its Workflow ID and and the Ramp Percentage.
      
       This behavior eliminates most of compatibility concerns users face when changing their code.
       Patching is not needed when pinned workflows code change.
       Can be overridden explicitly via `UpdateWorkflowExecutionOptions` API to move the
       execution to another Deployment Version.
       Activities of `PINNED` workflows are sent to the same Deployment Version. Exception to this
       would be when the activity Task Queue workers are not present in the workflow's Deployment
       Version, in which case the activity will be sent to the Current Deployment Version of its own
       task queue.
       
      VERSIONING_BEHAVIOR_PINNED = 1;
    • VERSIONING_BEHAVIOR_AUTO_UPGRADE

      public static final VersioningBehavior VERSIONING_BEHAVIOR_AUTO_UPGRADE
       Workflow will automatically move to its Target Version when the next workflow task is dispatched.
      
       The workflow's Target Version is the Current Version of its Task Queue, or, if the
       Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target
       Version has a P% chance of being the Ramping Version. Whether a workflow falls into the
       Ramping group depends on its Workflow ID and and the Ramp Percentage.
      
       AutoUpgrade behavior is suitable for long-running workflows as it allows them to move to the
       latest Deployment Version, but the user still needs to use Patching to keep the new code
       compatible with prior versions for changed workflow types.
       Activities of `AUTO_UPGRADE` workflows are sent to the Deployment Version of the workflow
       execution (as specified in versioning_info.version based on the last completed
       workflow task). Exception to this would be when the activity Task Queue workers are not
       present in the workflow's Deployment Version, in which case, the activity will be sent to a
       different Deployment Version according to the Current or Ramping Deployment Version of its own
       Task Queue.
       Workflows stuck on a backlogged activity will still auto-upgrade if their Target Version
       changes, without having to wait for the backlogged activity to complete on the old Version.
       
      VERSIONING_BEHAVIOR_AUTO_UPGRADE = 2;
    • UNRECOGNIZED

      public static final VersioningBehavior UNRECOGNIZED
  • Field Details

    • VERSIONING_BEHAVIOR_UNSPECIFIED_VALUE

      public static final int VERSIONING_BEHAVIOR_UNSPECIFIED_VALUE
       Workflow execution does not have a Versioning Behavior and is called Unversioned. This is the
       legacy behavior. An Unversioned workflow's task can go to any Unversioned worker (see
       `WorkerVersioningMode`.)
       User needs to use Patching to keep the new code compatible with prior versions when dealing
       with Unversioned workflows.
       
      VERSIONING_BEHAVIOR_UNSPECIFIED = 0;
      See Also:
    • VERSIONING_BEHAVIOR_PINNED_VALUE

      public static final int VERSIONING_BEHAVIOR_PINNED_VALUE
       Workflow will start on its Target Version and then will be pinned to that same Deployment
       Version until completion (the Version that this Workflow is pinned to is specified in
       `versioning_info.version` and is the Pinned Version of the Workflow).
      
       The workflow's Target Version is the Current Version of its Task Queue, or, if the
       Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target
       Version has a P% chance of being the Ramping Version. Whether a workflow falls into the
       Ramping group depends on its Workflow ID and and the Ramp Percentage.
      
       This behavior eliminates most of compatibility concerns users face when changing their code.
       Patching is not needed when pinned workflows code change.
       Can be overridden explicitly via `UpdateWorkflowExecutionOptions` API to move the
       execution to another Deployment Version.
       Activities of `PINNED` workflows are sent to the same Deployment Version. Exception to this
       would be when the activity Task Queue workers are not present in the workflow's Deployment
       Version, in which case the activity will be sent to the Current Deployment Version of its own
       task queue.
       
      VERSIONING_BEHAVIOR_PINNED = 1;
      See Also:
    • VERSIONING_BEHAVIOR_AUTO_UPGRADE_VALUE

      public static final int VERSIONING_BEHAVIOR_AUTO_UPGRADE_VALUE
       Workflow will automatically move to its Target Version when the next workflow task is dispatched.
      
       The workflow's Target Version is the Current Version of its Task Queue, or, if the
       Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target
       Version has a P% chance of being the Ramping Version. Whether a workflow falls into the
       Ramping group depends on its Workflow ID and and the Ramp Percentage.
      
       AutoUpgrade behavior is suitable for long-running workflows as it allows them to move to the
       latest Deployment Version, but the user still needs to use Patching to keep the new code
       compatible with prior versions for changed workflow types.
       Activities of `AUTO_UPGRADE` workflows are sent to the Deployment Version of the workflow
       execution (as specified in versioning_info.version based on the last completed
       workflow task). Exception to this would be when the activity Task Queue workers are not
       present in the workflow's Deployment Version, in which case, the activity will be sent to a
       different Deployment Version according to the Current or Ramping Deployment Version of its own
       Task Queue.
       Workflows stuck on a backlogged activity will still auto-upgrade if their Target Version
       changes, without having to wait for the backlogged activity to complete on the old Version.
       
      VERSIONING_BEHAVIOR_AUTO_UPGRADE = 2;
      See Also:
  • Method Details

    • values

      public static VersioningBehavior[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static VersioningBehavior valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getNumber

      public final int getNumber()
      Specified by:
      getNumber in interface com.google.protobuf.Internal.EnumLite
      Specified by:
      getNumber in interface com.google.protobuf.ProtocolMessageEnum
    • valueOf

      @Deprecated public static VersioningBehavior valueOf(int value)
      Deprecated.
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      value - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • forNumber

      public static VersioningBehavior forNumber(int value)
      Parameters:
      value - The numeric wire value of the corresponding enum entry.
      Returns:
      The enum associated with the given numeric wire value.
    • internalGetValueMap

      public static com.google.protobuf.Internal.EnumLiteMap<VersioningBehavior> internalGetValueMap()
    • getValueDescriptor

      public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
      Specified by:
      getValueDescriptor in interface com.google.protobuf.ProtocolMessageEnum
    • getDescriptorForType

      public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.ProtocolMessageEnum
    • getDescriptor

      public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
    • valueOf

      public static VersioningBehavior valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      desc - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null