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

com.amazonaws.services.autoscalingplans.model.CustomizedLoadMetricSpecification 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 predictive scaling. *

*

* For predictive scaling to work with a customized load metric specification, AWS Auto Scaling needs access to the * Sum and Average statistics that CloudWatch computes from metric data. *

*

* When you choose a load metric, make sure that the required Sum and Average statistics for * your metric are available in CloudWatch and that they provide relevant data for predictive scaling. The * Sum statistic must represent the total load on the resource, and the Average statistic must * represent the average load per capacity unit of the resource. For example, there is a metric that counts the number * of requests processed by your Auto Scaling group. If the Sum statistic represents the total request * count processed by the group, then the Average statistic for the specified metric must represent the * average request count processed by each instance of the group. *

*

* If you publish your own metrics, you can aggregate the data points at a given interval and then publish the * aggregated data points to CloudWatch. Before AWS Auto Scaling generates the forecast, it sums up all the metric data * points that occurred within each hour to match the granularity period that is used in the forecast (60 minutes). *

*

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

*

* After creating your scaling plan, you can use the AWS Auto Scaling console to visualize forecasts for the specified * metric. For more information, see View * Scaling Information for a Resource in the AWS Auto Scaling User Guide. *

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

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

* The statistic of the metric. The only valid value is Sum. *

*/ 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 CustomizedLoadMetricSpecification 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 CustomizedLoadMetricSpecification 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 load 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 load 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 load 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 load 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 load 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 load metric specification. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedLoadMetricSpecification 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 load 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 load metric specification. * @return Returns a reference to this object so that method calls can be chained together. */ public CustomizedLoadMetricSpecification withDimensions(java.util.Collection dimensions) { setDimensions(dimensions); return this; } /** *

* The statistic of the metric. The only valid value is Sum. *

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

* The statistic of the metric. The only valid value is Sum. *

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

* The statistic of the metric. The only valid value is Sum. *

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

* The statistic of the metric. The only valid value is Sum. *

* * @param statistic * The statistic of the metric. The only valid value is Sum. * @return Returns a reference to this object so that method calls can be chained together. * @see MetricStatistic */ public CustomizedLoadMetricSpecification 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 CustomizedLoadMetricSpecification 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 CustomizedLoadMetricSpecification == false) return false; CustomizedLoadMetricSpecification other = (CustomizedLoadMetricSpecification) 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 CustomizedLoadMetricSpecification clone() { try { return (CustomizedLoadMetricSpecification) 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.CustomizedLoadMetricSpecificationMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy