/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the compute-optimizer-2019-11-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.ComputeOptimizer.Model
{
///
/// Describes an Auto Scaling group recommendation.
///
public partial class AutoScalingGroupRecommendation
{
private string _accountId;
private string _autoScalingGroupArn;
private string _autoScalingGroupName;
private AutoScalingGroupConfiguration _currentConfiguration;
private CurrentPerformanceRisk _currentPerformanceRisk;
private EffectiveRecommendationPreferences _effectiveRecommendationPreferences;
private Finding _finding;
private List _inferredWorkloadTypes = new List();
private DateTime? _lastRefreshTimestamp;
private double? _lookBackPeriodInDays;
private List _recommendationOptions = new List();
private List _utilizationMetrics = new List();
///
/// Gets and sets the property AccountId.
///
/// The Amazon Web Services account ID of the Auto Scaling group.
///
///
public string AccountId
{
get { return this._accountId; }
set { this._accountId = value; }
}
// Check to see if AccountId property is set
internal bool IsSetAccountId()
{
return this._accountId != null;
}
///
/// Gets and sets the property AutoScalingGroupArn.
///
/// The Amazon Resource Name (ARN) of the Auto Scaling group.
///
///
public string AutoScalingGroupArn
{
get { return this._autoScalingGroupArn; }
set { this._autoScalingGroupArn = value; }
}
// Check to see if AutoScalingGroupArn property is set
internal bool IsSetAutoScalingGroupArn()
{
return this._autoScalingGroupArn != null;
}
///
/// Gets and sets the property AutoScalingGroupName.
///
/// The name of the Auto Scaling group.
///
///
public string AutoScalingGroupName
{
get { return this._autoScalingGroupName; }
set { this._autoScalingGroupName = value; }
}
// Check to see if AutoScalingGroupName property is set
internal bool IsSetAutoScalingGroupName()
{
return this._autoScalingGroupName != null;
}
///
/// Gets and sets the property CurrentConfiguration.
///
/// An array of objects that describe the current configuration of the Auto Scaling group.
///
///
public AutoScalingGroupConfiguration CurrentConfiguration
{
get { return this._currentConfiguration; }
set { this._currentConfiguration = value; }
}
// Check to see if CurrentConfiguration property is set
internal bool IsSetCurrentConfiguration()
{
return this._currentConfiguration != null;
}
///
/// Gets and sets the property CurrentPerformanceRisk.
///
/// The risk of the current Auto Scaling group not meeting the performance needs of its
/// workloads. The higher the risk, the more likely the current Auto Scaling group configuration
/// has insufficient capacity and cannot meet workload requirements.
///
///
public CurrentPerformanceRisk CurrentPerformanceRisk
{
get { return this._currentPerformanceRisk; }
set { this._currentPerformanceRisk = value; }
}
// Check to see if CurrentPerformanceRisk property is set
internal bool IsSetCurrentPerformanceRisk()
{
return this._currentPerformanceRisk != null;
}
///
/// Gets and sets the property EffectiveRecommendationPreferences.
///
/// An object that describes the effective recommendation preferences for the Auto Scaling
/// group.
///
///
public EffectiveRecommendationPreferences EffectiveRecommendationPreferences
{
get { return this._effectiveRecommendationPreferences; }
set { this._effectiveRecommendationPreferences = value; }
}
// Check to see if EffectiveRecommendationPreferences property is set
internal bool IsSetEffectiveRecommendationPreferences()
{
return this._effectiveRecommendationPreferences != null;
}
///
/// Gets and sets the property Finding.
///
/// The finding classification of the Auto Scaling group.
///
///
///
/// Findings for Auto Scaling groups include:
///
/// -
///
///
NotOptimized
—An Auto Scaling group is considered not optimized
/// when Compute Optimizer identifies a recommendation that can provide better performance
/// for your workload.
///
/// -
///
///
Optimized
—An Auto Scaling group is considered optimized when
/// Compute Optimizer determines that the group is correctly provisioned to run your workload
/// based on the chosen instance type. For optimized resources, Compute Optimizer might
/// recommend a new generation instance type.
///
///
///
public Finding Finding
{
get { return this._finding; }
set { this._finding = value; }
}
// Check to see if Finding property is set
internal bool IsSetFinding()
{
return this._finding != null;
}
///
/// Gets and sets the property InferredWorkloadTypes.
///
/// The applications that might be running on the instances in the Auto Scaling group
/// as inferred by Compute Optimizer.
///
///
///
/// Compute Optimizer can infer if one of the following applications might be running
/// on the instances:
///
/// -
///
///
AmazonEmr
- Infers that Amazon EMR might be running on the instances.
///
/// -
///
///
ApacheCassandra
- Infers that Apache Cassandra might be running on the
/// instances.
///
/// -
///
///
ApacheHadoop
- Infers that Apache Hadoop might be running on the instances.
///
/// -
///
///
Memcached
- Infers that Memcached might be running on the instances.
///
/// -
///
///
NGINX
- Infers that NGINX might be running on the instances.
///
/// -
///
///
PostgreSql
- Infers that PostgreSQL might be running on the instances.
///
/// -
///
///
Redis
- Infers that Redis might be running on the instances.
///
/// -
///
///
Kafka
- Infers that Kafka might be running on the instance.
///
/// -
///
///
SQLServer
- Infers that SQLServer might be running on the instance.
///
///
///
public List InferredWorkloadTypes
{
get { return this._inferredWorkloadTypes; }
set { this._inferredWorkloadTypes = value; }
}
// Check to see if InferredWorkloadTypes property is set
internal bool IsSetInferredWorkloadTypes()
{
return this._inferredWorkloadTypes != null && this._inferredWorkloadTypes.Count > 0;
}
///
/// Gets and sets the property LastRefreshTimestamp.
///
/// The timestamp of when the Auto Scaling group recommendation was last generated.
///
///
public DateTime LastRefreshTimestamp
{
get { return this._lastRefreshTimestamp.GetValueOrDefault(); }
set { this._lastRefreshTimestamp = value; }
}
// Check to see if LastRefreshTimestamp property is set
internal bool IsSetLastRefreshTimestamp()
{
return this._lastRefreshTimestamp.HasValue;
}
///
/// Gets and sets the property LookBackPeriodInDays.
///
/// The number of days for which utilization metrics were analyzed for the Auto Scaling
/// group.
///
///
public double LookBackPeriodInDays
{
get { return this._lookBackPeriodInDays.GetValueOrDefault(); }
set { this._lookBackPeriodInDays = value; }
}
// Check to see if LookBackPeriodInDays property is set
internal bool IsSetLookBackPeriodInDays()
{
return this._lookBackPeriodInDays.HasValue;
}
///
/// Gets and sets the property RecommendationOptions.
///
/// An array of objects that describe the recommendation options for the Auto Scaling
/// group.
///
///
public List RecommendationOptions
{
get { return this._recommendationOptions; }
set { this._recommendationOptions = value; }
}
// Check to see if RecommendationOptions property is set
internal bool IsSetRecommendationOptions()
{
return this._recommendationOptions != null && this._recommendationOptions.Count > 0;
}
///
/// Gets and sets the property UtilizationMetrics.
///
/// An array of objects that describe the utilization metrics of the Auto Scaling group.
///
///
public List UtilizationMetrics
{
get { return this._utilizationMetrics; }
set { this._utilizationMetrics = value; }
}
// Check to see if UtilizationMetrics property is set
internal bool IsSetUtilizationMetrics()
{
return this._utilizationMetrics != null && this._utilizationMetrics.Count > 0;
}
}
}