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 2015-2020 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 AWS * 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 CloudWatch, see Amazon CloudWatch * Concepts. *

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

* The name of the metric. *

*/ 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. *

*/ private String unit; /** *

* The name of the metric. *

* * @param metricName * The name of the metric. */ public void setMetricName(String metricName) { this.metricName = metricName; } /** *

* The name of the metric. *

* * @return The name of the metric. */ public String getMetricName() { return this.metricName; } /** *

* The name of the metric. *

* * @param metricName * The name of the metric. * @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. *

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

* The unit of the metric. *

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

* The unit of the metric. *

* * @param unit * The unit of the metric. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedMetricSpecification withUnit(String unit) { setUnit(unit); 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()); 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; 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()); 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