java.lang.Object
software.amazon.awssdk.services.evidently.model.Feature
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Feature.Builder,Feature>

@Generated("software.amazon.awssdk:codegen") public final class Feature extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Feature.Builder,Feature>

This structure contains information about one Evidently feature in your account.

See Also:
  • Method Details

    • arn

      public final String arn()

      The ARN of the feature.

      Returns:
      The ARN of the feature.
    • createdTime

      public final Instant createdTime()

      The date and time that the feature is created.

      Returns:
      The date and time that the feature is created.
    • defaultVariation

      public final String defaultVariation()

      The name of the variation that is used as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature.

      This variation must also be listed in the variations structure.

      If you omit defaultVariation, the first variation listed in the variations structure is used as the default variation.

      Returns:
      The name of the variation that is used as the default variation. The default variation is served to users who are not allocated to any ongoing launches or experiments of this feature.

      This variation must also be listed in the variations structure.

      If you omit defaultVariation, the first variation listed in the variations structure is used as the default variation.

    • description

      public final String description()

      The description of the feature.

      Returns:
      The description of the feature.
    • hasEntityOverrides

      public final boolean hasEntityOverrides()
      For responses, this returns true if the service returned a value for the EntityOverrides property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • entityOverrides

      public final Map<String,String> entityOverrides()

      A set of key-value pairs that specify users who should always be served a specific variation of a feature. Each key specifies a user using their user ID, account ID, or some other identifier. The value specifies the name of the variation that the user is to be served.

      For the override to be successful, the value of the key must match the entityId used in the EvaluateFeature operation.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasEntityOverrides() method.

      Returns:
      A set of key-value pairs that specify users who should always be served a specific variation of a feature. Each key specifies a user using their user ID, account ID, or some other identifier. The value specifies the name of the variation that the user is to be served.

      For the override to be successful, the value of the key must match the entityId used in the EvaluateFeature operation.

    • hasEvaluationRules

      public final boolean hasEvaluationRules()
      For responses, this returns true if the service returned a value for the EvaluationRules property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • evaluationRules

      public final List<EvaluationRule> evaluationRules()

      An array of structures that define the evaluation rules for the feature.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasEvaluationRules() method.

      Returns:
      An array of structures that define the evaluation rules for the feature.
    • evaluationStrategy

      public final FeatureEvaluationStrategy evaluationStrategy()

      If this value is ALL_RULES, the traffic allocation specified by any ongoing launches or experiments is being used. If this is DEFAULT_VARIATION, the default variation is being served to all users.

      If the service returns an enum value that is not available in the current SDK version, evaluationStrategy will return FeatureEvaluationStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from evaluationStrategyAsString().

      Returns:
      If this value is ALL_RULES, the traffic allocation specified by any ongoing launches or experiments is being used. If this is DEFAULT_VARIATION, the default variation is being served to all users.
      See Also:
    • evaluationStrategyAsString

      public final String evaluationStrategyAsString()

      If this value is ALL_RULES, the traffic allocation specified by any ongoing launches or experiments is being used. If this is DEFAULT_VARIATION, the default variation is being served to all users.

      If the service returns an enum value that is not available in the current SDK version, evaluationStrategy will return FeatureEvaluationStrategy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from evaluationStrategyAsString().

      Returns:
      If this value is ALL_RULES, the traffic allocation specified by any ongoing launches or experiments is being used. If this is DEFAULT_VARIATION, the default variation is being served to all users.
      See Also:
    • lastUpdatedTime

      public final Instant lastUpdatedTime()

      The date and time that the feature was most recently updated.

      Returns:
      The date and time that the feature was most recently updated.
    • name

      public final String name()

      The name of the feature.

      Returns:
      The name of the feature.
    • project

      public final String project()

      The name or ARN of the project that contains the feature.

      Returns:
      The name or ARN of the project that contains the feature.
    • status

      public final FeatureStatus status()

      The current state of the feature.

      If the service returns an enum value that is not available in the current SDK version, status will return FeatureStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The current state of the feature.
      See Also:
    • statusAsString

      public final String statusAsString()

      The current state of the feature.

      If the service returns an enum value that is not available in the current SDK version, status will return FeatureStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The current state of the feature.
      See Also:
    • hasTags

      public final boolean hasTags()
      For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • tags

      public final Map<String,String> tags()

      The list of tag keys and values associated with this feature.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTags() method.

      Returns:
      The list of tag keys and values associated with this feature.
    • valueType

      public final VariationValueType valueType()

      Defines the type of value used to define the different feature variations. For more information, see Variation types

      If the service returns an enum value that is not available in the current SDK version, valueType will return VariationValueType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from valueTypeAsString().

      Returns:
      Defines the type of value used to define the different feature variations. For more information, see Variation types
      See Also:
    • valueTypeAsString

      public final String valueTypeAsString()

      Defines the type of value used to define the different feature variations. For more information, see Variation types

      If the service returns an enum value that is not available in the current SDK version, valueType will return VariationValueType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from valueTypeAsString().

      Returns:
      Defines the type of value used to define the different feature variations. For more information, see Variation types
      See Also:
    • hasVariations

      public final boolean hasVariations()
      For responses, this returns true if the service returned a value for the Variations property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • variations

      public final List<Variation> variations()

      An array of structures that contain the configuration of the feature's different variations.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasVariations() method.

      Returns:
      An array of structures that contain the configuration of the feature's different variations.
    • toBuilder

      public Feature.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<Feature.Builder,Feature>
      Returns:
      a builder for type T
    • builder

      public static Feature.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Feature.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.