Class ServiceLevelObjective

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

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

A structure containing information about one service level objective (SLO) that has been created in Application Signals. Creating SLOs can help you ensure your services are performing to the level that you expect. SLOs help you set and track a specific target level for the reliability and availability of your applications and services. Each SLO uses a service level indicator (SLI), which is a key performance metric, to calculate how much underperformance can be tolerated before the goal that you set for the SLO is not achieved.

See Also:
  • Method Details

    • arn

      public final String arn()

      The ARN of this SLO.

      Returns:
      The ARN of this SLO.
    • name

      public final String name()

      The name of this SLO.

      Returns:
      The name of this SLO.
    • description

      public final String description()

      The description that you created for this SLO.

      Returns:
      The description that you created for this SLO.
    • createdTime

      public final Instant createdTime()

      The date and time that this SLO was created. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

      Returns:
      The date and time that this SLO was created. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.
    • lastUpdatedTime

      public final Instant lastUpdatedTime()

      The time that this SLO was most recently updated. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.

      Returns:
      The time that this SLO was most recently updated. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.
    • sli

      public final ServiceLevelIndicator sli()

      A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.

      Returns:
      A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.
    • requestBasedSli

      public final RequestBasedServiceLevelIndicator requestBasedSli()

      A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.

      Returns:
      A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.
    • evaluationType

      public final EvaluationType evaluationType()

      Displays whether this is a period-based SLO or a request-based SLO.

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

      Returns:
      Displays whether this is a period-based SLO or a request-based SLO.
      See Also:
    • evaluationTypeAsString

      public final String evaluationTypeAsString()

      Displays whether this is a period-based SLO or a request-based SLO.

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

      Returns:
      Displays whether this is a period-based SLO or a request-based SLO.
      See Also:
    • goal

      public final Goal goal()
      Returns the value of the Goal property for this object.
      Returns:
      The value of the Goal property for this object.
    • hasBurnRateConfigurations

      public final boolean hasBurnRateConfigurations()
      For responses, this returns true if the service returned a value for the BurnRateConfigurations 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.
    • burnRateConfigurations

      public final List<BurnRateConfiguration> burnRateConfigurations()

      Each object in this array defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.

      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 hasBurnRateConfigurations() method.

      Returns:
      Each object in this array defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.
    • metricSourceType

      public final MetricSourceType metricSourceType()

      Displays the SLI metric source type for this SLO. Supported types are:

      • Service operation

      • Service dependency

      • CloudWatch metric

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

      Returns:
      Displays the SLI metric source type for this SLO. Supported types are:

      • Service operation

      • Service dependency

      • CloudWatch metric

      See Also:
    • metricSourceTypeAsString

      public final String metricSourceTypeAsString()

      Displays the SLI metric source type for this SLO. Supported types are:

      • Service operation

      • Service dependency

      • CloudWatch metric

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

      Returns:
      Displays the SLI metric source type for this SLO. Supported types are:

      • Service operation

      • Service dependency

      • CloudWatch metric

      See Also:
    • toBuilder

      public ServiceLevelObjective.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<ServiceLevelObjective.Builder,ServiceLevelObjective>
      Returns:
      a builder for type T
    • builder

      public static ServiceLevelObjective.Builder builder()
    • serializableBuilderClass

      public static Class<? extends ServiceLevelObjective.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.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.