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

com.amazonaws.services.autoscalingplans.model.CustomizedScalingMetricSpecification Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Auto Scaling Plans module holds the client classes that are used for communicating with AWS Auto Scaling Plans Service

There is a newer version: 1.12.772
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.autoscalingplans.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 that can be used for dynamic scaling as part of a target tracking * scaling policy. *

*

* To create your customized scaling 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. *

    *
  • *
*

* For information about terminology, available metrics, or how to publish new metrics, see Amazon CloudWatch * Concepts in the Amazon CloudWatch User Guide. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CustomizedScalingMetricSpecification 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 * customized scaling metric specification. *

*/ 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 CustomizedScalingMetricSpecification 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 CustomizedScalingMetricSpecification 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 * customized scaling metric specification. *

* * @return The dimensions of the metric.

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * customized scaling metric specification. */ 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 * customized scaling metric specification. *

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

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * customized scaling metric specification. */ 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 * customized scaling metric specification. *

*

* 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 * customized scaling metric specification. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedScalingMetricSpecification 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 * customized scaling metric specification. *

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

*

* Conditional: If you published your metric with dimensions, you must specify the same dimensions in your * customized scaling metric specification. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedScalingMetricSpecification 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 CustomizedScalingMetricSpecification withStatistic(String statistic) { setStatistic(statistic); return this; } /** *

* 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 CustomizedScalingMetricSpecification 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 CustomizedScalingMetricSpecification 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 CustomizedScalingMetricSpecification == false) return false; CustomizedScalingMetricSpecification other = (CustomizedScalingMetricSpecification) 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 CustomizedScalingMetricSpecification clone() { try { return (CustomizedScalingMetricSpecification) 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.autoscalingplans.model.transform.CustomizedScalingMetricSpecificationMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy