Enum VersioningBehavior

  • All Implemented Interfaces:
    com.google.protobuf.Internal.EnumLite, com.google.protobuf.ProtocolMessageEnum, java.io.Serializable, java.lang.Comparable<VersioningBehavior>

    @Generated(value="protoc",
               comments="annotations:VersioningBehavior.java.pb.meta")
    public enum VersioningBehavior
    extends java.lang.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).
     Experimental. Worker Deployments are experimental and might significantly change in the future.
     
    Protobuf enum temporal.api.enums.v1.VersioningBehavior
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      UNRECOGNIZED  
      VERSIONING_BEHAVIOR_AUTO_UPGRADE
      Workflow will automatically move to the Current Deployment Version of its Task Queue when the next workflow task is dispatched.
      VERSIONING_BEHAVIOR_PINNED
      Workflow will start on the Current Deployment Version of its Task Queue, 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`).
      VERSIONING_BEHAVIOR_UNSPECIFIED
      Workflow execution does not have a Versioning Behavior and is called Unversioned.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int VERSIONING_BEHAVIOR_AUTO_UPGRADE_VALUE
      Workflow will automatically move to the Current Deployment Version of its Task Queue when the next workflow task is dispatched.
      static int VERSIONING_BEHAVIOR_PINNED_VALUE
      Workflow will start on the Current Deployment Version of its Task Queue, 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`).
      static int VERSIONING_BEHAVIOR_UNSPECIFIED_VALUE
      Workflow execution does not have a Versioning Behavior and is called Unversioned.
    • Enum Constant Detail

      • 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 the Current Deployment Version of its Task Queue, 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`).
         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 the Current Deployment Version of its Task Queue when the
         next workflow task is dispatched.
         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 Deployment Version of its own task
         queue.
         Workflows stuck on a backlogged activity will still auto-upgrade if the Current Deployment
         Version of their Task Queue changes, without having to wait for the backlogged activity to
         complete on the old Version.
         
        VERSIONING_BEHAVIOR_AUTO_UPGRADE = 2;
    • Field Detail

      • 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:
        Constant Field Values
      • VERSIONING_BEHAVIOR_PINNED_VALUE

        public static final int VERSIONING_BEHAVIOR_PINNED_VALUE
         Workflow will start on the Current Deployment Version of its Task Queue, 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`).
         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:
        Constant Field Values
      • VERSIONING_BEHAVIOR_AUTO_UPGRADE_VALUE

        public static final int VERSIONING_BEHAVIOR_AUTO_UPGRADE_VALUE
         Workflow will automatically move to the Current Deployment Version of its Task Queue when the
         next workflow task is dispatched.
         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 Deployment Version of its own task
         queue.
         Workflows stuck on a backlogged activity will still auto-upgrade if the Current Deployment
         Version of their Task Queue changes, without having to wait for the backlogged activity to
         complete on the old Version.
         
        VERSIONING_BEHAVIOR_AUTO_UPGRADE = 2;
        See Also:
        Constant Field Values
    • Method Detail

      • values

        public static VersioningBehavior[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (VersioningBehavior c : VersioningBehavior.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static VersioningBehavior valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.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 type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.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 type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (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:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null