/*
* 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 autoscaling-plans-2018-01-06.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.AutoScalingPlans.Model
{
///
/// Represents a scalable resource.
///
public partial class ScalingPlanResource
{
private string _resourceId;
private ScalableDimension _scalableDimension;
private string _scalingPlanName;
private long? _scalingPlanVersion;
private List _scalingPolicies = new List();
private ScalingStatusCode _scalingStatusCode;
private string _scalingStatusMessage;
private ServiceNamespace _serviceNamespace;
///
/// Gets and sets the property ResourceId.
///
/// The ID of the resource. This string consists of the resource type and unique identifier.
///
/// -
///
/// Auto Scaling group - The resource type is
autoScalingGroup
and the unique
/// identifier is the name of the Auto Scaling group. Example: autoScalingGroup/my-asg
.
///
/// -
///
/// ECS service - The resource type is
service
and the unique identifier
/// is the cluster name and service name. Example: service/default/sample-webapp
.
///
/// -
///
/// Spot Fleet request - The resource type is
spot-fleet-request
and the
/// unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
///
/// -
///
/// DynamoDB table - The resource type is
table
and the unique identifier
/// is the resource ID. Example: table/my-table
.
///
/// -
///
/// DynamoDB global secondary index - The resource type is
index
and the
/// unique identifier is the resource ID. Example: table/my-table/index/my-table-index
.
///
/// -
///
/// Aurora DB cluster - The resource type is
cluster
and the unique identifier
/// is the cluster name. Example: cluster:my-db-cluster
.
///
///
///
[AWSProperty(Required=true, Min=1, Max=1600)]
public string ResourceId
{
get { return this._resourceId; }
set { this._resourceId = value; }
}
// Check to see if ResourceId property is set
internal bool IsSetResourceId()
{
return this._resourceId != null;
}
///
/// Gets and sets the property ScalableDimension.
///
/// The scalable dimension for the resource.
///
/// -
///
///
autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
/// of an Auto Scaling group.
///
/// -
///
///
ecs:service:DesiredCount
- The desired task count of an ECS service.
///
/// -
///
///
ec2:spot-fleet-request:TargetCapacity
- The target capacity of a Spot
/// Fleet request.
///
/// -
///
///
dynamodb:table:ReadCapacityUnits
- The provisioned read capacity for
/// a DynamoDB table.
///
/// -
///
///
dynamodb:table:WriteCapacityUnits
- The provisioned write capacity for
/// a DynamoDB table.
///
/// -
///
///
dynamodb:index:ReadCapacityUnits
- The provisioned read capacity for
/// a DynamoDB global secondary index.
///
/// -
///
///
dynamodb:index:WriteCapacityUnits
- The provisioned write capacity for
/// a DynamoDB global secondary index.
///
/// -
///
///
rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an Aurora
/// DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
/// edition.
///
///
///
[AWSProperty(Required=true)]
public ScalableDimension ScalableDimension
{
get { return this._scalableDimension; }
set { this._scalableDimension = value; }
}
// Check to see if ScalableDimension property is set
internal bool IsSetScalableDimension()
{
return this._scalableDimension != null;
}
///
/// Gets and sets the property ScalingPlanName.
///
/// The name of the scaling plan.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string ScalingPlanName
{
get { return this._scalingPlanName; }
set { this._scalingPlanName = value; }
}
// Check to see if ScalingPlanName property is set
internal bool IsSetScalingPlanName()
{
return this._scalingPlanName != null;
}
///
/// Gets and sets the property ScalingPlanVersion.
///
/// The version number of the scaling plan.
///
///
[AWSProperty(Required=true)]
public long ScalingPlanVersion
{
get { return this._scalingPlanVersion.GetValueOrDefault(); }
set { this._scalingPlanVersion = value; }
}
// Check to see if ScalingPlanVersion property is set
internal bool IsSetScalingPlanVersion()
{
return this._scalingPlanVersion.HasValue;
}
///
/// Gets and sets the property ScalingPolicies.
///
/// The scaling policies.
///
///
public List ScalingPolicies
{
get { return this._scalingPolicies; }
set { this._scalingPolicies = value; }
}
// Check to see if ScalingPolicies property is set
internal bool IsSetScalingPolicies()
{
return this._scalingPolicies != null && this._scalingPolicies.Count > 0;
}
///
/// Gets and sets the property ScalingStatusCode.
///
/// The scaling status of the resource.
///
/// -
///
///
Active
- The scaling configuration is active.
///
/// -
///
///
Inactive
- The scaling configuration is not active because the scaling
/// plan is being created or the scaling configuration could not be applied. Check the
/// status message for more information.
///
/// -
///
///
PartiallyActive
- The scaling configuration is partially active because
/// the scaling plan is being created or deleted or the scaling configuration could not
/// be fully applied. Check the status message for more information.
///
///
///
[AWSProperty(Required=true)]
public ScalingStatusCode ScalingStatusCode
{
get { return this._scalingStatusCode; }
set { this._scalingStatusCode = value; }
}
// Check to see if ScalingStatusCode property is set
internal bool IsSetScalingStatusCode()
{
return this._scalingStatusCode != null;
}
///
/// Gets and sets the property ScalingStatusMessage.
///
/// A simple message about the current scaling status of the resource.
///
///
public string ScalingStatusMessage
{
get { return this._scalingStatusMessage; }
set { this._scalingStatusMessage = value; }
}
// Check to see if ScalingStatusMessage property is set
internal bool IsSetScalingStatusMessage()
{
return this._scalingStatusMessage != null;
}
///
/// Gets and sets the property ServiceNamespace.
///
/// The namespace of the AWS service.
///
///
[AWSProperty(Required=true)]
public ServiceNamespace ServiceNamespace
{
get { return this._serviceNamespace; }
set { this._serviceNamespace = value; }
}
// Check to see if ServiceNamespace property is set
internal bool IsSetServiceNamespace()
{
return this._serviceNamespace != null;
}
}
}