All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.applicationautoscaling.model.CustomizedMetricSpecification Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Application Auto Scaling module holds the client classes that are used for communicating with AWS Application Auto Scaling service.

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.applicationautoscaling.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * 

* Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto * Scaling. *

*

* For information about the available metrics for a service, see Amazon Web * Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide. *

*

* To create your customized metric specification: *

*
    *
  • *

    * Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you * create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see Publish custom * metrics in the Amazon CloudWatch User Guide. *

    *
  • *
  • *

    * Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in * inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity * increases, and increase when capacity decreases. *

    *
  • *
*

* For more information about the CloudWatch terminology below, see Amazon CloudWatch * concepts in the Amazon CloudWatch User Guide. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CustomizedMetricSpecification implements Serializable, Cloneable, StructuredPojo { /** *

* The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that's * returned by a call to ListMetrics. *

*/ private String metricName; /** *

* The namespace of the metric. *

*/ private String namespace; /** *

* The dimensions of the metric. *

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling * policy. *

*/ private java.util.List dimensions; /** *

* The statistic of the metric. *

*/ private String statistic; /** *

* The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data * type in the Amazon CloudWatch API Reference. *

*/ private String unit; /** *

* The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw * metric and metric math expressions. *

*/ private java.util.List metrics; /** *

* The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that's * returned by a call to ListMetrics. *

* * @param metricName * The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object * that's returned by a call to ListMetrics. */ public void setMetricName(String metricName) { this.metricName = metricName; } /** *

* The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that's * returned by a call to ListMetrics. *

* * @return The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object * that's returned by a call to ListMetrics. */ public String getMetricName() { return this.metricName; } /** *

* The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that's * returned by a call to ListMetrics. *

* * @param metricName * The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object * that's returned by a call to ListMetrics. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withMetricName(String metricName) { setMetricName(metricName); return this; } /** *

* The namespace of the metric. *

* * @param namespace * The namespace of the metric. */ public void setNamespace(String namespace) { this.namespace = namespace; } /** *

* The namespace of the metric. *

* * @return The namespace of the metric. */ public String getNamespace() { return this.namespace; } /** *

* The namespace of the metric. *

* * @param namespace * The namespace of the metric. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withNamespace(String namespace) { setNamespace(namespace); return this; } /** *

* The dimensions of the metric. *

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling * policy. *

* * @return The dimensions of the metric.

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * scaling policy. */ public java.util.List getDimensions() { return dimensions; } /** *

* The dimensions of the metric. *

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling * policy. *

* * @param dimensions * The dimensions of the metric.

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * scaling policy. */ public void setDimensions(java.util.Collection dimensions) { if (dimensions == null) { this.dimensions = null; return; } this.dimensions = new java.util.ArrayList(dimensions); } /** *

* The dimensions of the metric. *

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling * policy. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setDimensions(java.util.Collection)} or {@link #withDimensions(java.util.Collection)} if you want to * override the existing values. *

* * @param dimensions * The dimensions of the metric.

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withDimensions(MetricDimension... dimensions) { if (this.dimensions == null) { setDimensions(new java.util.ArrayList(dimensions.length)); } for (MetricDimension ele : dimensions) { this.dimensions.add(ele); } return this; } /** *

* The dimensions of the metric. *

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling * policy. *

* * @param dimensions * The dimensions of the metric.

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withDimensions(java.util.Collection dimensions) { setDimensions(dimensions); return this; } /** *

* The statistic of the metric. *

* * @param statistic * The statistic of the metric. * @see MetricStatistic */ public void setStatistic(String statistic) { this.statistic = statistic; } /** *

* The statistic of the metric. *

* * @return The statistic of the metric. * @see MetricStatistic */ public String getStatistic() { return this.statistic; } /** *

* The statistic of the metric. *

* * @param statistic * The statistic of the metric. * @return Returns a reference to this object so that method calls can be chained together. * @see MetricStatistic */ public CustomizedMetricSpecification withStatistic(String statistic) { setStatistic(statistic); return this; } /** *

* The statistic of the metric. *

* * @param statistic * The statistic of the metric. * @see MetricStatistic */ public void setStatistic(MetricStatistic statistic) { withStatistic(statistic); } /** *

* The statistic of the metric. *

* * @param statistic * The statistic of the metric. * @return Returns a reference to this object so that method calls can be chained together. * @see MetricStatistic */ public CustomizedMetricSpecification withStatistic(MetricStatistic statistic) { this.statistic = statistic.toString(); return this; } /** *

* The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data * type in the Amazon CloudWatch API Reference. *

* * @param unit * The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. */ public void setUnit(String unit) { this.unit = unit; } /** *

* The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data * type in the Amazon CloudWatch API Reference. *

* * @return The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. */ public String getUnit() { return this.unit; } /** *

* The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data * type in the Amazon CloudWatch API Reference. *

* * @param unit * The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withUnit(String unit) { setUnit(unit); return this; } /** *

* The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw * metric and metric math expressions. *

* * @return The metrics to include in the target tracking scaling policy, as a metric data query. This can include * both raw metric and metric math expressions. */ public java.util.List getMetrics() { return metrics; } /** *

* The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw * metric and metric math expressions. *

* * @param metrics * The metrics to include in the target tracking scaling policy, as a metric data query. This can include * both raw metric and metric math expressions. */ public void setMetrics(java.util.Collection metrics) { if (metrics == null) { this.metrics = null; return; } this.metrics = new java.util.ArrayList(metrics); } /** *

* The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw * metric and metric math expressions. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setMetrics(java.util.Collection)} or {@link #withMetrics(java.util.Collection)} if you want to override * the existing values. *

* * @param metrics * The metrics to include in the target tracking scaling policy, as a metric data query. This can include * both raw metric and metric math expressions. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withMetrics(TargetTrackingMetricDataQuery... metrics) { if (this.metrics == null) { setMetrics(new java.util.ArrayList(metrics.length)); } for (TargetTrackingMetricDataQuery ele : metrics) { this.metrics.add(ele); } return this; } /** *

* The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw * metric and metric math expressions. *

* * @param metrics * The metrics to include in the target tracking scaling policy, as a metric data query. This can include * both raw metric and metric math expressions. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withMetrics(java.util.Collection metrics) { setMetrics(metrics); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getMetricName() != null) sb.append("MetricName: ").append(getMetricName()).append(","); if (getNamespace() != null) sb.append("Namespace: ").append(getNamespace()).append(","); if (getDimensions() != null) sb.append("Dimensions: ").append(getDimensions()).append(","); if (getStatistic() != null) sb.append("Statistic: ").append(getStatistic()).append(","); if (getUnit() != null) sb.append("Unit: ").append(getUnit()).append(","); if (getMetrics() != null) sb.append("Metrics: ").append(getMetrics()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CustomizedMetricSpecification == false) return false; CustomizedMetricSpecification other = (CustomizedMetricSpecification) obj; if (other.getMetricName() == null ^ this.getMetricName() == null) return false; if (other.getMetricName() != null && other.getMetricName().equals(this.getMetricName()) == false) return false; if (other.getNamespace() == null ^ this.getNamespace() == null) return false; if (other.getNamespace() != null && other.getNamespace().equals(this.getNamespace()) == false) return false; if (other.getDimensions() == null ^ this.getDimensions() == null) return false; if (other.getDimensions() != null && other.getDimensions().equals(this.getDimensions()) == false) return false; if (other.getStatistic() == null ^ this.getStatistic() == null) return false; if (other.getStatistic() != null && other.getStatistic().equals(this.getStatistic()) == false) return false; if (other.getUnit() == null ^ this.getUnit() == null) return false; if (other.getUnit() != null && other.getUnit().equals(this.getUnit()) == false) return false; if (other.getMetrics() == null ^ this.getMetrics() == null) return false; if (other.getMetrics() != null && other.getMetrics().equals(this.getMetrics()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getMetricName() == null) ? 0 : getMetricName().hashCode()); hashCode = prime * hashCode + ((getNamespace() == null) ? 0 : getNamespace().hashCode()); hashCode = prime * hashCode + ((getDimensions() == null) ? 0 : getDimensions().hashCode()); hashCode = prime * hashCode + ((getStatistic() == null) ? 0 : getStatistic().hashCode()); hashCode = prime * hashCode + ((getUnit() == null) ? 0 : getUnit().hashCode()); hashCode = prime * hashCode + ((getMetrics() == null) ? 0 : getMetrics().hashCode()); return hashCode; } @Override public CustomizedMetricSpecification clone() { try { return (CustomizedMetricSpecification) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.applicationautoscaling.model.transform.CustomizedMetricSpecificationMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy