Class Feature

    • Method Detail

      • 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:
        FeatureEvaluationStrategy
      • 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:
        FeatureEvaluationStrategy
      • 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.
      • 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:
        FeatureStatus
      • 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.
      • 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.
      • 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
      • 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)