1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/autoscaling-plans/AutoScalingPlans_EXPORTS.h> 8 #include <aws/autoscaling-plans/model/ServiceNamespace.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/autoscaling-plans/model/ScalableDimension.h> 11 #include <aws/core/utils/memory/stl/AWSVector.h> 12 #include <aws/autoscaling-plans/model/PredefinedLoadMetricSpecification.h> 13 #include <aws/autoscaling-plans/model/CustomizedLoadMetricSpecification.h> 14 #include <aws/autoscaling-plans/model/PredictiveScalingMaxCapacityBehavior.h> 15 #include <aws/autoscaling-plans/model/PredictiveScalingMode.h> 16 #include <aws/autoscaling-plans/model/ScalingPolicyUpdateBehavior.h> 17 #include <aws/autoscaling-plans/model/TargetTrackingConfiguration.h> 18 #include <utility> 19 20 namespace Aws 21 { 22 namespace Utils 23 { 24 namespace Json 25 { 26 class JsonValue; 27 class JsonView; 28 } // namespace Json 29 } // namespace Utils 30 namespace AutoScalingPlans 31 { 32 namespace Model 33 { 34 35 /** 36 * <p>Describes a scaling instruction for a scalable resource in a scaling plan. 37 * Each scaling instruction applies to one resource.</p> <p>AWS Auto Scaling 38 * creates target tracking scaling policies based on the scaling instructions. 39 * Target tracking scaling policies adjust the capacity of your scalable resource 40 * as required to maintain resource utilization at the target value that you 41 * specified. </p> <p>AWS Auto Scaling also configures predictive scaling for your 42 * Amazon EC2 Auto Scaling groups using a subset of parameters, including the load 43 * metric, the scaling metric, the target value for the scaling metric, the 44 * predictive scaling mode (forecast and scale or forecast only), and the desired 45 * behavior when the forecast capacity exceeds the maximum capacity of the 46 * resource. With predictive scaling, AWS Auto Scaling generates forecasts with 47 * traffic predictions for the two days ahead and schedules scaling actions that 48 * proactively add and remove resource capacity to match the forecast. </p> 49 * <p>We recommend waiting a minimum of 24 hours after creating an Auto 50 * Scaling group to configure predictive scaling. At minimum, there must be 24 51 * hours of historical data to generate a forecast. For more information, see <a 52 * href="https://docs.aws.amazon.com/autoscaling/plans/userguide/gs-best-practices.html">Best 53 * Practices for AWS Auto Scaling</a> in the <i>AWS Auto Scaling User 54 * Guide</i>.</p> <p><h3>See Also:</h3> <a 55 * href="http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/ScalingInstruction">AWS 56 * API Reference</a></p> 57 */ 58 class AWS_AUTOSCALINGPLANS_API ScalingInstruction 59 { 60 public: 61 ScalingInstruction(); 62 ScalingInstruction(Aws::Utils::Json::JsonView jsonValue); 63 ScalingInstruction& operator=(Aws::Utils::Json::JsonView jsonValue); 64 Aws::Utils::Json::JsonValue Jsonize() const; 65 66 67 /** 68 * <p>The namespace of the AWS service.</p> 69 */ GetServiceNamespace()70 inline const ServiceNamespace& GetServiceNamespace() const{ return m_serviceNamespace; } 71 72 /** 73 * <p>The namespace of the AWS service.</p> 74 */ ServiceNamespaceHasBeenSet()75 inline bool ServiceNamespaceHasBeenSet() const { return m_serviceNamespaceHasBeenSet; } 76 77 /** 78 * <p>The namespace of the AWS service.</p> 79 */ SetServiceNamespace(const ServiceNamespace & value)80 inline void SetServiceNamespace(const ServiceNamespace& value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace = value; } 81 82 /** 83 * <p>The namespace of the AWS service.</p> 84 */ SetServiceNamespace(ServiceNamespace && value)85 inline void SetServiceNamespace(ServiceNamespace&& value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace = std::move(value); } 86 87 /** 88 * <p>The namespace of the AWS service.</p> 89 */ WithServiceNamespace(const ServiceNamespace & value)90 inline ScalingInstruction& WithServiceNamespace(const ServiceNamespace& value) { SetServiceNamespace(value); return *this;} 91 92 /** 93 * <p>The namespace of the AWS service.</p> 94 */ WithServiceNamespace(ServiceNamespace && value)95 inline ScalingInstruction& WithServiceNamespace(ServiceNamespace&& value) { SetServiceNamespace(std::move(value)); return *this;} 96 97 98 /** 99 * <p>The ID of the resource. This string consists of the resource type and unique 100 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 101 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 102 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 103 * <p>ECS service - The resource type is <code>service</code> and the unique 104 * identifier is the cluster name and service name. Example: 105 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 106 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 107 * is the Spot Fleet request ID. Example: 108 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 109 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 110 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 111 * </li> <li> <p>DynamoDB global secondary index - The resource type is 112 * <code>index</code> and the unique identifier is the resource ID. Example: 113 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 114 * cluster - The resource type is <code>cluster</code> and the unique identifier is 115 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 116 */ GetResourceId()117 inline const Aws::String& GetResourceId() const{ return m_resourceId; } 118 119 /** 120 * <p>The ID of the resource. This string consists of the resource type and unique 121 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 122 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 123 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 124 * <p>ECS service - The resource type is <code>service</code> and the unique 125 * identifier is the cluster name and service name. Example: 126 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 127 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 128 * is the Spot Fleet request ID. Example: 129 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 130 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 131 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 132 * </li> <li> <p>DynamoDB global secondary index - The resource type is 133 * <code>index</code> and the unique identifier is the resource ID. Example: 134 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 135 * cluster - The resource type is <code>cluster</code> and the unique identifier is 136 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 137 */ ResourceIdHasBeenSet()138 inline bool ResourceIdHasBeenSet() const { return m_resourceIdHasBeenSet; } 139 140 /** 141 * <p>The ID of the resource. This string consists of the resource type and unique 142 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 143 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 144 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 145 * <p>ECS service - The resource type is <code>service</code> and the unique 146 * identifier is the cluster name and service name. Example: 147 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 148 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 149 * is the Spot Fleet request ID. Example: 150 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 151 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 152 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 153 * </li> <li> <p>DynamoDB global secondary index - The resource type is 154 * <code>index</code> and the unique identifier is the resource ID. Example: 155 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 156 * cluster - The resource type is <code>cluster</code> and the unique identifier is 157 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 158 */ SetResourceId(const Aws::String & value)159 inline void SetResourceId(const Aws::String& value) { m_resourceIdHasBeenSet = true; m_resourceId = value; } 160 161 /** 162 * <p>The ID of the resource. This string consists of the resource type and unique 163 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 164 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 165 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 166 * <p>ECS service - The resource type is <code>service</code> and the unique 167 * identifier is the cluster name and service name. Example: 168 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 169 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 170 * is the Spot Fleet request ID. Example: 171 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 172 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 173 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 174 * </li> <li> <p>DynamoDB global secondary index - The resource type is 175 * <code>index</code> and the unique identifier is the resource ID. Example: 176 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 177 * cluster - The resource type is <code>cluster</code> and the unique identifier is 178 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 179 */ SetResourceId(Aws::String && value)180 inline void SetResourceId(Aws::String&& value) { m_resourceIdHasBeenSet = true; m_resourceId = std::move(value); } 181 182 /** 183 * <p>The ID of the resource. This string consists of the resource type and unique 184 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 185 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 186 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 187 * <p>ECS service - The resource type is <code>service</code> and the unique 188 * identifier is the cluster name and service name. Example: 189 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 190 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 191 * is the Spot Fleet request ID. Example: 192 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 193 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 194 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 195 * </li> <li> <p>DynamoDB global secondary index - The resource type is 196 * <code>index</code> and the unique identifier is the resource ID. Example: 197 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 198 * cluster - The resource type is <code>cluster</code> and the unique identifier is 199 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 200 */ SetResourceId(const char * value)201 inline void SetResourceId(const char* value) { m_resourceIdHasBeenSet = true; m_resourceId.assign(value); } 202 203 /** 204 * <p>The ID of the resource. This string consists of the resource type and unique 205 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 206 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 207 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 208 * <p>ECS service - The resource type is <code>service</code> and the unique 209 * identifier is the cluster name and service name. Example: 210 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 211 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 212 * is the Spot Fleet request ID. Example: 213 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 214 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 215 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 216 * </li> <li> <p>DynamoDB global secondary index - The resource type is 217 * <code>index</code> and the unique identifier is the resource ID. Example: 218 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 219 * cluster - The resource type is <code>cluster</code> and the unique identifier is 220 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 221 */ WithResourceId(const Aws::String & value)222 inline ScalingInstruction& WithResourceId(const Aws::String& value) { SetResourceId(value); return *this;} 223 224 /** 225 * <p>The ID of the resource. This string consists of the resource type and unique 226 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 227 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 228 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 229 * <p>ECS service - The resource type is <code>service</code> and the unique 230 * identifier is the cluster name and service name. Example: 231 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 232 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 233 * is the Spot Fleet request ID. Example: 234 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 235 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 236 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 237 * </li> <li> <p>DynamoDB global secondary index - The resource type is 238 * <code>index</code> and the unique identifier is the resource ID. Example: 239 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 240 * cluster - The resource type is <code>cluster</code> and the unique identifier is 241 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 242 */ WithResourceId(Aws::String && value)243 inline ScalingInstruction& WithResourceId(Aws::String&& value) { SetResourceId(std::move(value)); return *this;} 244 245 /** 246 * <p>The ID of the resource. This string consists of the resource type and unique 247 * identifier.</p> <ul> <li> <p>Auto Scaling group - The resource type is 248 * <code>autoScalingGroup</code> and the unique identifier is the name of the Auto 249 * Scaling group. Example: <code>autoScalingGroup/my-asg</code>.</p> </li> <li> 250 * <p>ECS service - The resource type is <code>service</code> and the unique 251 * identifier is the cluster name and service name. Example: 252 * <code>service/default/sample-webapp</code>.</p> </li> <li> <p>Spot Fleet request 253 * - The resource type is <code>spot-fleet-request</code> and the unique identifier 254 * is the Spot Fleet request ID. Example: 255 * <code>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</code>.</p> 256 * </li> <li> <p>DynamoDB table - The resource type is <code>table</code> and the 257 * unique identifier is the resource ID. Example: <code>table/my-table</code>.</p> 258 * </li> <li> <p>DynamoDB global secondary index - The resource type is 259 * <code>index</code> and the unique identifier is the resource ID. Example: 260 * <code>table/my-table/index/my-table-index</code>.</p> </li> <li> <p>Aurora DB 261 * cluster - The resource type is <code>cluster</code> and the unique identifier is 262 * the cluster name. Example: <code>cluster:my-db-cluster</code>.</p> </li> </ul> 263 */ WithResourceId(const char * value)264 inline ScalingInstruction& WithResourceId(const char* value) { SetResourceId(value); return *this;} 265 266 267 /** 268 * <p>The scalable dimension associated with the resource.</p> <ul> <li> <p> 269 * <code>autoscaling:autoScalingGroup:DesiredCapacity</code> - The desired capacity 270 * of an Auto Scaling group.</p> </li> <li> <p> 271 * <code>ecs:service:DesiredCount</code> - The desired task count of an ECS 272 * service.</p> </li> <li> <p> <code>ec2:spot-fleet-request:TargetCapacity</code> - 273 * The target capacity of a Spot Fleet request.</p> </li> <li> <p> 274 * <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity 275 * for a DynamoDB table.</p> </li> <li> <p> 276 * <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity 277 * for a DynamoDB table.</p> </li> <li> <p> 278 * <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity 279 * for a DynamoDB global secondary index.</p> </li> <li> <p> 280 * <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity 281 * for a DynamoDB global secondary index.</p> </li> <li> <p> 282 * <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an 283 * Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora 284 * PostgreSQL-compatible edition.</p> </li> </ul> 285 */ GetScalableDimension()286 inline const ScalableDimension& GetScalableDimension() const{ return m_scalableDimension; } 287 288 /** 289 * <p>The scalable dimension associated with the resource.</p> <ul> <li> <p> 290 * <code>autoscaling:autoScalingGroup:DesiredCapacity</code> - The desired capacity 291 * of an Auto Scaling group.</p> </li> <li> <p> 292 * <code>ecs:service:DesiredCount</code> - The desired task count of an ECS 293 * service.</p> </li> <li> <p> <code>ec2:spot-fleet-request:TargetCapacity</code> - 294 * The target capacity of a Spot Fleet request.</p> </li> <li> <p> 295 * <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity 296 * for a DynamoDB table.</p> </li> <li> <p> 297 * <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity 298 * for a DynamoDB table.</p> </li> <li> <p> 299 * <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity 300 * for a DynamoDB global secondary index.</p> </li> <li> <p> 301 * <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity 302 * for a DynamoDB global secondary index.</p> </li> <li> <p> 303 * <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an 304 * Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora 305 * PostgreSQL-compatible edition.</p> </li> </ul> 306 */ ScalableDimensionHasBeenSet()307 inline bool ScalableDimensionHasBeenSet() const { return m_scalableDimensionHasBeenSet; } 308 309 /** 310 * <p>The scalable dimension associated with the resource.</p> <ul> <li> <p> 311 * <code>autoscaling:autoScalingGroup:DesiredCapacity</code> - The desired capacity 312 * of an Auto Scaling group.</p> </li> <li> <p> 313 * <code>ecs:service:DesiredCount</code> - The desired task count of an ECS 314 * service.</p> </li> <li> <p> <code>ec2:spot-fleet-request:TargetCapacity</code> - 315 * The target capacity of a Spot Fleet request.</p> </li> <li> <p> 316 * <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity 317 * for a DynamoDB table.</p> </li> <li> <p> 318 * <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity 319 * for a DynamoDB table.</p> </li> <li> <p> 320 * <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity 321 * for a DynamoDB global secondary index.</p> </li> <li> <p> 322 * <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity 323 * for a DynamoDB global secondary index.</p> </li> <li> <p> 324 * <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an 325 * Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora 326 * PostgreSQL-compatible edition.</p> </li> </ul> 327 */ SetScalableDimension(const ScalableDimension & value)328 inline void SetScalableDimension(const ScalableDimension& value) { m_scalableDimensionHasBeenSet = true; m_scalableDimension = value; } 329 330 /** 331 * <p>The scalable dimension associated with the resource.</p> <ul> <li> <p> 332 * <code>autoscaling:autoScalingGroup:DesiredCapacity</code> - The desired capacity 333 * of an Auto Scaling group.</p> </li> <li> <p> 334 * <code>ecs:service:DesiredCount</code> - The desired task count of an ECS 335 * service.</p> </li> <li> <p> <code>ec2:spot-fleet-request:TargetCapacity</code> - 336 * The target capacity of a Spot Fleet request.</p> </li> <li> <p> 337 * <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity 338 * for a DynamoDB table.</p> </li> <li> <p> 339 * <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity 340 * for a DynamoDB table.</p> </li> <li> <p> 341 * <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity 342 * for a DynamoDB global secondary index.</p> </li> <li> <p> 343 * <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity 344 * for a DynamoDB global secondary index.</p> </li> <li> <p> 345 * <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an 346 * Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora 347 * PostgreSQL-compatible edition.</p> </li> </ul> 348 */ SetScalableDimension(ScalableDimension && value)349 inline void SetScalableDimension(ScalableDimension&& value) { m_scalableDimensionHasBeenSet = true; m_scalableDimension = std::move(value); } 350 351 /** 352 * <p>The scalable dimension associated with the resource.</p> <ul> <li> <p> 353 * <code>autoscaling:autoScalingGroup:DesiredCapacity</code> - The desired capacity 354 * of an Auto Scaling group.</p> </li> <li> <p> 355 * <code>ecs:service:DesiredCount</code> - The desired task count of an ECS 356 * service.</p> </li> <li> <p> <code>ec2:spot-fleet-request:TargetCapacity</code> - 357 * The target capacity of a Spot Fleet request.</p> </li> <li> <p> 358 * <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity 359 * for a DynamoDB table.</p> </li> <li> <p> 360 * <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity 361 * for a DynamoDB table.</p> </li> <li> <p> 362 * <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity 363 * for a DynamoDB global secondary index.</p> </li> <li> <p> 364 * <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity 365 * for a DynamoDB global secondary index.</p> </li> <li> <p> 366 * <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an 367 * Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora 368 * PostgreSQL-compatible edition.</p> </li> </ul> 369 */ WithScalableDimension(const ScalableDimension & value)370 inline ScalingInstruction& WithScalableDimension(const ScalableDimension& value) { SetScalableDimension(value); return *this;} 371 372 /** 373 * <p>The scalable dimension associated with the resource.</p> <ul> <li> <p> 374 * <code>autoscaling:autoScalingGroup:DesiredCapacity</code> - The desired capacity 375 * of an Auto Scaling group.</p> </li> <li> <p> 376 * <code>ecs:service:DesiredCount</code> - The desired task count of an ECS 377 * service.</p> </li> <li> <p> <code>ec2:spot-fleet-request:TargetCapacity</code> - 378 * The target capacity of a Spot Fleet request.</p> </li> <li> <p> 379 * <code>dynamodb:table:ReadCapacityUnits</code> - The provisioned read capacity 380 * for a DynamoDB table.</p> </li> <li> <p> 381 * <code>dynamodb:table:WriteCapacityUnits</code> - The provisioned write capacity 382 * for a DynamoDB table.</p> </li> <li> <p> 383 * <code>dynamodb:index:ReadCapacityUnits</code> - The provisioned read capacity 384 * for a DynamoDB global secondary index.</p> </li> <li> <p> 385 * <code>dynamodb:index:WriteCapacityUnits</code> - The provisioned write capacity 386 * for a DynamoDB global secondary index.</p> </li> <li> <p> 387 * <code>rds:cluster:ReadReplicaCount</code> - The count of Aurora Replicas in an 388 * Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora 389 * PostgreSQL-compatible edition.</p> </li> </ul> 390 */ WithScalableDimension(ScalableDimension && value)391 inline ScalingInstruction& WithScalableDimension(ScalableDimension&& value) { SetScalableDimension(std::move(value)); return *this;} 392 393 394 /** 395 * <p>The minimum capacity of the resource. </p> 396 */ GetMinCapacity()397 inline int GetMinCapacity() const{ return m_minCapacity; } 398 399 /** 400 * <p>The minimum capacity of the resource. </p> 401 */ MinCapacityHasBeenSet()402 inline bool MinCapacityHasBeenSet() const { return m_minCapacityHasBeenSet; } 403 404 /** 405 * <p>The minimum capacity of the resource. </p> 406 */ SetMinCapacity(int value)407 inline void SetMinCapacity(int value) { m_minCapacityHasBeenSet = true; m_minCapacity = value; } 408 409 /** 410 * <p>The minimum capacity of the resource. </p> 411 */ WithMinCapacity(int value)412 inline ScalingInstruction& WithMinCapacity(int value) { SetMinCapacity(value); return *this;} 413 414 415 /** 416 * <p>The maximum capacity of the resource. The exception to this upper limit is if 417 * you specify a non-default setting for 418 * <b>PredictiveScalingMaxCapacityBehavior</b>. </p> 419 */ GetMaxCapacity()420 inline int GetMaxCapacity() const{ return m_maxCapacity; } 421 422 /** 423 * <p>The maximum capacity of the resource. The exception to this upper limit is if 424 * you specify a non-default setting for 425 * <b>PredictiveScalingMaxCapacityBehavior</b>. </p> 426 */ MaxCapacityHasBeenSet()427 inline bool MaxCapacityHasBeenSet() const { return m_maxCapacityHasBeenSet; } 428 429 /** 430 * <p>The maximum capacity of the resource. The exception to this upper limit is if 431 * you specify a non-default setting for 432 * <b>PredictiveScalingMaxCapacityBehavior</b>. </p> 433 */ SetMaxCapacity(int value)434 inline void SetMaxCapacity(int value) { m_maxCapacityHasBeenSet = true; m_maxCapacity = value; } 435 436 /** 437 * <p>The maximum capacity of the resource. The exception to this upper limit is if 438 * you specify a non-default setting for 439 * <b>PredictiveScalingMaxCapacityBehavior</b>. </p> 440 */ WithMaxCapacity(int value)441 inline ScalingInstruction& WithMaxCapacity(int value) { SetMaxCapacity(value); return *this;} 442 443 444 /** 445 * <p>The target tracking configurations (up to 10). Each of these structures must 446 * specify a unique scaling metric and a target value for the metric. </p> 447 */ GetTargetTrackingConfigurations()448 inline const Aws::Vector<TargetTrackingConfiguration>& GetTargetTrackingConfigurations() const{ return m_targetTrackingConfigurations; } 449 450 /** 451 * <p>The target tracking configurations (up to 10). Each of these structures must 452 * specify a unique scaling metric and a target value for the metric. </p> 453 */ TargetTrackingConfigurationsHasBeenSet()454 inline bool TargetTrackingConfigurationsHasBeenSet() const { return m_targetTrackingConfigurationsHasBeenSet; } 455 456 /** 457 * <p>The target tracking configurations (up to 10). Each of these structures must 458 * specify a unique scaling metric and a target value for the metric. </p> 459 */ SetTargetTrackingConfigurations(const Aws::Vector<TargetTrackingConfiguration> & value)460 inline void SetTargetTrackingConfigurations(const Aws::Vector<TargetTrackingConfiguration>& value) { m_targetTrackingConfigurationsHasBeenSet = true; m_targetTrackingConfigurations = value; } 461 462 /** 463 * <p>The target tracking configurations (up to 10). Each of these structures must 464 * specify a unique scaling metric and a target value for the metric. </p> 465 */ SetTargetTrackingConfigurations(Aws::Vector<TargetTrackingConfiguration> && value)466 inline void SetTargetTrackingConfigurations(Aws::Vector<TargetTrackingConfiguration>&& value) { m_targetTrackingConfigurationsHasBeenSet = true; m_targetTrackingConfigurations = std::move(value); } 467 468 /** 469 * <p>The target tracking configurations (up to 10). Each of these structures must 470 * specify a unique scaling metric and a target value for the metric. </p> 471 */ WithTargetTrackingConfigurations(const Aws::Vector<TargetTrackingConfiguration> & value)472 inline ScalingInstruction& WithTargetTrackingConfigurations(const Aws::Vector<TargetTrackingConfiguration>& value) { SetTargetTrackingConfigurations(value); return *this;} 473 474 /** 475 * <p>The target tracking configurations (up to 10). Each of these structures must 476 * specify a unique scaling metric and a target value for the metric. </p> 477 */ WithTargetTrackingConfigurations(Aws::Vector<TargetTrackingConfiguration> && value)478 inline ScalingInstruction& WithTargetTrackingConfigurations(Aws::Vector<TargetTrackingConfiguration>&& value) { SetTargetTrackingConfigurations(std::move(value)); return *this;} 479 480 /** 481 * <p>The target tracking configurations (up to 10). Each of these structures must 482 * specify a unique scaling metric and a target value for the metric. </p> 483 */ AddTargetTrackingConfigurations(const TargetTrackingConfiguration & value)484 inline ScalingInstruction& AddTargetTrackingConfigurations(const TargetTrackingConfiguration& value) { m_targetTrackingConfigurationsHasBeenSet = true; m_targetTrackingConfigurations.push_back(value); return *this; } 485 486 /** 487 * <p>The target tracking configurations (up to 10). Each of these structures must 488 * specify a unique scaling metric and a target value for the metric. </p> 489 */ AddTargetTrackingConfigurations(TargetTrackingConfiguration && value)490 inline ScalingInstruction& AddTargetTrackingConfigurations(TargetTrackingConfiguration&& value) { m_targetTrackingConfigurationsHasBeenSet = true; m_targetTrackingConfigurations.push_back(std::move(value)); return *this; } 491 492 493 /** 494 * <p>The predefined load metric to use for predictive scaling. This parameter or a 495 * <b>CustomizedLoadMetricSpecification</b> is required when configuring predictive 496 * scaling, and cannot be used otherwise. </p> 497 */ GetPredefinedLoadMetricSpecification()498 inline const PredefinedLoadMetricSpecification& GetPredefinedLoadMetricSpecification() const{ return m_predefinedLoadMetricSpecification; } 499 500 /** 501 * <p>The predefined load metric to use for predictive scaling. This parameter or a 502 * <b>CustomizedLoadMetricSpecification</b> is required when configuring predictive 503 * scaling, and cannot be used otherwise. </p> 504 */ PredefinedLoadMetricSpecificationHasBeenSet()505 inline bool PredefinedLoadMetricSpecificationHasBeenSet() const { return m_predefinedLoadMetricSpecificationHasBeenSet; } 506 507 /** 508 * <p>The predefined load metric to use for predictive scaling. This parameter or a 509 * <b>CustomizedLoadMetricSpecification</b> is required when configuring predictive 510 * scaling, and cannot be used otherwise. </p> 511 */ SetPredefinedLoadMetricSpecification(const PredefinedLoadMetricSpecification & value)512 inline void SetPredefinedLoadMetricSpecification(const PredefinedLoadMetricSpecification& value) { m_predefinedLoadMetricSpecificationHasBeenSet = true; m_predefinedLoadMetricSpecification = value; } 513 514 /** 515 * <p>The predefined load metric to use for predictive scaling. This parameter or a 516 * <b>CustomizedLoadMetricSpecification</b> is required when configuring predictive 517 * scaling, and cannot be used otherwise. </p> 518 */ SetPredefinedLoadMetricSpecification(PredefinedLoadMetricSpecification && value)519 inline void SetPredefinedLoadMetricSpecification(PredefinedLoadMetricSpecification&& value) { m_predefinedLoadMetricSpecificationHasBeenSet = true; m_predefinedLoadMetricSpecification = std::move(value); } 520 521 /** 522 * <p>The predefined load metric to use for predictive scaling. This parameter or a 523 * <b>CustomizedLoadMetricSpecification</b> is required when configuring predictive 524 * scaling, and cannot be used otherwise. </p> 525 */ WithPredefinedLoadMetricSpecification(const PredefinedLoadMetricSpecification & value)526 inline ScalingInstruction& WithPredefinedLoadMetricSpecification(const PredefinedLoadMetricSpecification& value) { SetPredefinedLoadMetricSpecification(value); return *this;} 527 528 /** 529 * <p>The predefined load metric to use for predictive scaling. This parameter or a 530 * <b>CustomizedLoadMetricSpecification</b> is required when configuring predictive 531 * scaling, and cannot be used otherwise. </p> 532 */ WithPredefinedLoadMetricSpecification(PredefinedLoadMetricSpecification && value)533 inline ScalingInstruction& WithPredefinedLoadMetricSpecification(PredefinedLoadMetricSpecification&& value) { SetPredefinedLoadMetricSpecification(std::move(value)); return *this;} 534 535 536 /** 537 * <p>The customized load metric to use for predictive scaling. This parameter or a 538 * <b>PredefinedLoadMetricSpecification</b> is required when configuring predictive 539 * scaling, and cannot be used otherwise. </p> 540 */ GetCustomizedLoadMetricSpecification()541 inline const CustomizedLoadMetricSpecification& GetCustomizedLoadMetricSpecification() const{ return m_customizedLoadMetricSpecification; } 542 543 /** 544 * <p>The customized load metric to use for predictive scaling. This parameter or a 545 * <b>PredefinedLoadMetricSpecification</b> is required when configuring predictive 546 * scaling, and cannot be used otherwise. </p> 547 */ CustomizedLoadMetricSpecificationHasBeenSet()548 inline bool CustomizedLoadMetricSpecificationHasBeenSet() const { return m_customizedLoadMetricSpecificationHasBeenSet; } 549 550 /** 551 * <p>The customized load metric to use for predictive scaling. This parameter or a 552 * <b>PredefinedLoadMetricSpecification</b> is required when configuring predictive 553 * scaling, and cannot be used otherwise. </p> 554 */ SetCustomizedLoadMetricSpecification(const CustomizedLoadMetricSpecification & value)555 inline void SetCustomizedLoadMetricSpecification(const CustomizedLoadMetricSpecification& value) { m_customizedLoadMetricSpecificationHasBeenSet = true; m_customizedLoadMetricSpecification = value; } 556 557 /** 558 * <p>The customized load metric to use for predictive scaling. This parameter or a 559 * <b>PredefinedLoadMetricSpecification</b> is required when configuring predictive 560 * scaling, and cannot be used otherwise. </p> 561 */ SetCustomizedLoadMetricSpecification(CustomizedLoadMetricSpecification && value)562 inline void SetCustomizedLoadMetricSpecification(CustomizedLoadMetricSpecification&& value) { m_customizedLoadMetricSpecificationHasBeenSet = true; m_customizedLoadMetricSpecification = std::move(value); } 563 564 /** 565 * <p>The customized load metric to use for predictive scaling. This parameter or a 566 * <b>PredefinedLoadMetricSpecification</b> is required when configuring predictive 567 * scaling, and cannot be used otherwise. </p> 568 */ WithCustomizedLoadMetricSpecification(const CustomizedLoadMetricSpecification & value)569 inline ScalingInstruction& WithCustomizedLoadMetricSpecification(const CustomizedLoadMetricSpecification& value) { SetCustomizedLoadMetricSpecification(value); return *this;} 570 571 /** 572 * <p>The customized load metric to use for predictive scaling. This parameter or a 573 * <b>PredefinedLoadMetricSpecification</b> is required when configuring predictive 574 * scaling, and cannot be used otherwise. </p> 575 */ WithCustomizedLoadMetricSpecification(CustomizedLoadMetricSpecification && value)576 inline ScalingInstruction& WithCustomizedLoadMetricSpecification(CustomizedLoadMetricSpecification&& value) { SetCustomizedLoadMetricSpecification(std::move(value)); return *this;} 577 578 579 /** 580 * <p>The amount of time, in seconds, to buffer the run time of scheduled scaling 581 * actions when scaling out. For example, if the forecast says to add capacity at 582 * 10:00 AM, and the buffer time is 5 minutes, then the run time of the 583 * corresponding scheduled scaling action will be 9:55 AM. The intention is to give 584 * resources time to be provisioned. For example, it can take a few minutes to 585 * launch an EC2 instance. The actual amount of time required depends on several 586 * factors, such as the size of the instance and whether there are startup scripts 587 * to complete. </p> <p>The value must be less than the forecast interval duration 588 * of 3600 seconds (60 minutes). The default is 300 seconds. </p> <p>Only valid 589 * when configuring predictive scaling. </p> 590 */ GetScheduledActionBufferTime()591 inline int GetScheduledActionBufferTime() const{ return m_scheduledActionBufferTime; } 592 593 /** 594 * <p>The amount of time, in seconds, to buffer the run time of scheduled scaling 595 * actions when scaling out. For example, if the forecast says to add capacity at 596 * 10:00 AM, and the buffer time is 5 minutes, then the run time of the 597 * corresponding scheduled scaling action will be 9:55 AM. The intention is to give 598 * resources time to be provisioned. For example, it can take a few minutes to 599 * launch an EC2 instance. The actual amount of time required depends on several 600 * factors, such as the size of the instance and whether there are startup scripts 601 * to complete. </p> <p>The value must be less than the forecast interval duration 602 * of 3600 seconds (60 minutes). The default is 300 seconds. </p> <p>Only valid 603 * when configuring predictive scaling. </p> 604 */ ScheduledActionBufferTimeHasBeenSet()605 inline bool ScheduledActionBufferTimeHasBeenSet() const { return m_scheduledActionBufferTimeHasBeenSet; } 606 607 /** 608 * <p>The amount of time, in seconds, to buffer the run time of scheduled scaling 609 * actions when scaling out. For example, if the forecast says to add capacity at 610 * 10:00 AM, and the buffer time is 5 minutes, then the run time of the 611 * corresponding scheduled scaling action will be 9:55 AM. The intention is to give 612 * resources time to be provisioned. For example, it can take a few minutes to 613 * launch an EC2 instance. The actual amount of time required depends on several 614 * factors, such as the size of the instance and whether there are startup scripts 615 * to complete. </p> <p>The value must be less than the forecast interval duration 616 * of 3600 seconds (60 minutes). The default is 300 seconds. </p> <p>Only valid 617 * when configuring predictive scaling. </p> 618 */ SetScheduledActionBufferTime(int value)619 inline void SetScheduledActionBufferTime(int value) { m_scheduledActionBufferTimeHasBeenSet = true; m_scheduledActionBufferTime = value; } 620 621 /** 622 * <p>The amount of time, in seconds, to buffer the run time of scheduled scaling 623 * actions when scaling out. For example, if the forecast says to add capacity at 624 * 10:00 AM, and the buffer time is 5 minutes, then the run time of the 625 * corresponding scheduled scaling action will be 9:55 AM. The intention is to give 626 * resources time to be provisioned. For example, it can take a few minutes to 627 * launch an EC2 instance. The actual amount of time required depends on several 628 * factors, such as the size of the instance and whether there are startup scripts 629 * to complete. </p> <p>The value must be less than the forecast interval duration 630 * of 3600 seconds (60 minutes). The default is 300 seconds. </p> <p>Only valid 631 * when configuring predictive scaling. </p> 632 */ WithScheduledActionBufferTime(int value)633 inline ScalingInstruction& WithScheduledActionBufferTime(int value) { SetScheduledActionBufferTime(value); return *this;} 634 635 636 /** 637 * <p>Defines the behavior that should be applied if the forecast capacity 638 * approaches or exceeds the maximum capacity specified for the resource. The 639 * default value is <code>SetForecastCapacityToMaxCapacity</code>.</p> <p>The 640 * following are possible values:</p> <ul> <li> <p> 641 * <code>SetForecastCapacityToMaxCapacity</code> - AWS Auto Scaling cannot scale 642 * resource capacity higher than the maximum capacity. The maximum capacity is 643 * enforced as a hard limit. </p> </li> <li> <p> 644 * <code>SetMaxCapacityToForecastCapacity</code> - AWS Auto Scaling may scale 645 * resource capacity higher than the maximum capacity to equal but not exceed 646 * forecast capacity.</p> </li> <li> <p> 647 * <code>SetMaxCapacityAboveForecastCapacity</code> - AWS Auto Scaling may scale 648 * resource capacity higher than the maximum capacity by a specified buffer value. 649 * The intention is to give the target tracking scaling policy extra capacity if 650 * unexpected traffic occurs. </p> </li> </ul> <p>Only valid when configuring 651 * predictive scaling.</p> 652 */ GetPredictiveScalingMaxCapacityBehavior()653 inline const PredictiveScalingMaxCapacityBehavior& GetPredictiveScalingMaxCapacityBehavior() const{ return m_predictiveScalingMaxCapacityBehavior; } 654 655 /** 656 * <p>Defines the behavior that should be applied if the forecast capacity 657 * approaches or exceeds the maximum capacity specified for the resource. The 658 * default value is <code>SetForecastCapacityToMaxCapacity</code>.</p> <p>The 659 * following are possible values:</p> <ul> <li> <p> 660 * <code>SetForecastCapacityToMaxCapacity</code> - AWS Auto Scaling cannot scale 661 * resource capacity higher than the maximum capacity. The maximum capacity is 662 * enforced as a hard limit. </p> </li> <li> <p> 663 * <code>SetMaxCapacityToForecastCapacity</code> - AWS Auto Scaling may scale 664 * resource capacity higher than the maximum capacity to equal but not exceed 665 * forecast capacity.</p> </li> <li> <p> 666 * <code>SetMaxCapacityAboveForecastCapacity</code> - AWS Auto Scaling may scale 667 * resource capacity higher than the maximum capacity by a specified buffer value. 668 * The intention is to give the target tracking scaling policy extra capacity if 669 * unexpected traffic occurs. </p> </li> </ul> <p>Only valid when configuring 670 * predictive scaling.</p> 671 */ PredictiveScalingMaxCapacityBehaviorHasBeenSet()672 inline bool PredictiveScalingMaxCapacityBehaviorHasBeenSet() const { return m_predictiveScalingMaxCapacityBehaviorHasBeenSet; } 673 674 /** 675 * <p>Defines the behavior that should be applied if the forecast capacity 676 * approaches or exceeds the maximum capacity specified for the resource. The 677 * default value is <code>SetForecastCapacityToMaxCapacity</code>.</p> <p>The 678 * following are possible values:</p> <ul> <li> <p> 679 * <code>SetForecastCapacityToMaxCapacity</code> - AWS Auto Scaling cannot scale 680 * resource capacity higher than the maximum capacity. The maximum capacity is 681 * enforced as a hard limit. </p> </li> <li> <p> 682 * <code>SetMaxCapacityToForecastCapacity</code> - AWS Auto Scaling may scale 683 * resource capacity higher than the maximum capacity to equal but not exceed 684 * forecast capacity.</p> </li> <li> <p> 685 * <code>SetMaxCapacityAboveForecastCapacity</code> - AWS Auto Scaling may scale 686 * resource capacity higher than the maximum capacity by a specified buffer value. 687 * The intention is to give the target tracking scaling policy extra capacity if 688 * unexpected traffic occurs. </p> </li> </ul> <p>Only valid when configuring 689 * predictive scaling.</p> 690 */ SetPredictiveScalingMaxCapacityBehavior(const PredictiveScalingMaxCapacityBehavior & value)691 inline void SetPredictiveScalingMaxCapacityBehavior(const PredictiveScalingMaxCapacityBehavior& value) { m_predictiveScalingMaxCapacityBehaviorHasBeenSet = true; m_predictiveScalingMaxCapacityBehavior = value; } 692 693 /** 694 * <p>Defines the behavior that should be applied if the forecast capacity 695 * approaches or exceeds the maximum capacity specified for the resource. The 696 * default value is <code>SetForecastCapacityToMaxCapacity</code>.</p> <p>The 697 * following are possible values:</p> <ul> <li> <p> 698 * <code>SetForecastCapacityToMaxCapacity</code> - AWS Auto Scaling cannot scale 699 * resource capacity higher than the maximum capacity. The maximum capacity is 700 * enforced as a hard limit. </p> </li> <li> <p> 701 * <code>SetMaxCapacityToForecastCapacity</code> - AWS Auto Scaling may scale 702 * resource capacity higher than the maximum capacity to equal but not exceed 703 * forecast capacity.</p> </li> <li> <p> 704 * <code>SetMaxCapacityAboveForecastCapacity</code> - AWS Auto Scaling may scale 705 * resource capacity higher than the maximum capacity by a specified buffer value. 706 * The intention is to give the target tracking scaling policy extra capacity if 707 * unexpected traffic occurs. </p> </li> </ul> <p>Only valid when configuring 708 * predictive scaling.</p> 709 */ SetPredictiveScalingMaxCapacityBehavior(PredictiveScalingMaxCapacityBehavior && value)710 inline void SetPredictiveScalingMaxCapacityBehavior(PredictiveScalingMaxCapacityBehavior&& value) { m_predictiveScalingMaxCapacityBehaviorHasBeenSet = true; m_predictiveScalingMaxCapacityBehavior = std::move(value); } 711 712 /** 713 * <p>Defines the behavior that should be applied if the forecast capacity 714 * approaches or exceeds the maximum capacity specified for the resource. The 715 * default value is <code>SetForecastCapacityToMaxCapacity</code>.</p> <p>The 716 * following are possible values:</p> <ul> <li> <p> 717 * <code>SetForecastCapacityToMaxCapacity</code> - AWS Auto Scaling cannot scale 718 * resource capacity higher than the maximum capacity. The maximum capacity is 719 * enforced as a hard limit. </p> </li> <li> <p> 720 * <code>SetMaxCapacityToForecastCapacity</code> - AWS Auto Scaling may scale 721 * resource capacity higher than the maximum capacity to equal but not exceed 722 * forecast capacity.</p> </li> <li> <p> 723 * <code>SetMaxCapacityAboveForecastCapacity</code> - AWS Auto Scaling may scale 724 * resource capacity higher than the maximum capacity by a specified buffer value. 725 * The intention is to give the target tracking scaling policy extra capacity if 726 * unexpected traffic occurs. </p> </li> </ul> <p>Only valid when configuring 727 * predictive scaling.</p> 728 */ WithPredictiveScalingMaxCapacityBehavior(const PredictiveScalingMaxCapacityBehavior & value)729 inline ScalingInstruction& WithPredictiveScalingMaxCapacityBehavior(const PredictiveScalingMaxCapacityBehavior& value) { SetPredictiveScalingMaxCapacityBehavior(value); return *this;} 730 731 /** 732 * <p>Defines the behavior that should be applied if the forecast capacity 733 * approaches or exceeds the maximum capacity specified for the resource. The 734 * default value is <code>SetForecastCapacityToMaxCapacity</code>.</p> <p>The 735 * following are possible values:</p> <ul> <li> <p> 736 * <code>SetForecastCapacityToMaxCapacity</code> - AWS Auto Scaling cannot scale 737 * resource capacity higher than the maximum capacity. The maximum capacity is 738 * enforced as a hard limit. </p> </li> <li> <p> 739 * <code>SetMaxCapacityToForecastCapacity</code> - AWS Auto Scaling may scale 740 * resource capacity higher than the maximum capacity to equal but not exceed 741 * forecast capacity.</p> </li> <li> <p> 742 * <code>SetMaxCapacityAboveForecastCapacity</code> - AWS Auto Scaling may scale 743 * resource capacity higher than the maximum capacity by a specified buffer value. 744 * The intention is to give the target tracking scaling policy extra capacity if 745 * unexpected traffic occurs. </p> </li> </ul> <p>Only valid when configuring 746 * predictive scaling.</p> 747 */ WithPredictiveScalingMaxCapacityBehavior(PredictiveScalingMaxCapacityBehavior && value)748 inline ScalingInstruction& WithPredictiveScalingMaxCapacityBehavior(PredictiveScalingMaxCapacityBehavior&& value) { SetPredictiveScalingMaxCapacityBehavior(std::move(value)); return *this;} 749 750 751 /** 752 * <p>The size of the capacity buffer to use when the forecast capacity is close to 753 * or exceeds the maximum capacity. The value is specified as a percentage relative 754 * to the forecast capacity. For example, if the buffer is 10, this means a 10 755 * percent buffer, such that if the forecast capacity is 50, and the maximum 756 * capacity is 40, then the effective maximum capacity is 55.</p> <p>Only valid 757 * when configuring predictive scaling. Required if the 758 * <b>PredictiveScalingMaxCapacityBehavior</b> is set to 759 * <code>SetMaxCapacityAboveForecastCapacity</code>, and cannot be used 760 * otherwise.</p> <p>The range is 1-100.</p> 761 */ GetPredictiveScalingMaxCapacityBuffer()762 inline int GetPredictiveScalingMaxCapacityBuffer() const{ return m_predictiveScalingMaxCapacityBuffer; } 763 764 /** 765 * <p>The size of the capacity buffer to use when the forecast capacity is close to 766 * or exceeds the maximum capacity. The value is specified as a percentage relative 767 * to the forecast capacity. For example, if the buffer is 10, this means a 10 768 * percent buffer, such that if the forecast capacity is 50, and the maximum 769 * capacity is 40, then the effective maximum capacity is 55.</p> <p>Only valid 770 * when configuring predictive scaling. Required if the 771 * <b>PredictiveScalingMaxCapacityBehavior</b> is set to 772 * <code>SetMaxCapacityAboveForecastCapacity</code>, and cannot be used 773 * otherwise.</p> <p>The range is 1-100.</p> 774 */ PredictiveScalingMaxCapacityBufferHasBeenSet()775 inline bool PredictiveScalingMaxCapacityBufferHasBeenSet() const { return m_predictiveScalingMaxCapacityBufferHasBeenSet; } 776 777 /** 778 * <p>The size of the capacity buffer to use when the forecast capacity is close to 779 * or exceeds the maximum capacity. The value is specified as a percentage relative 780 * to the forecast capacity. For example, if the buffer is 10, this means a 10 781 * percent buffer, such that if the forecast capacity is 50, and the maximum 782 * capacity is 40, then the effective maximum capacity is 55.</p> <p>Only valid 783 * when configuring predictive scaling. Required if the 784 * <b>PredictiveScalingMaxCapacityBehavior</b> is set to 785 * <code>SetMaxCapacityAboveForecastCapacity</code>, and cannot be used 786 * otherwise.</p> <p>The range is 1-100.</p> 787 */ SetPredictiveScalingMaxCapacityBuffer(int value)788 inline void SetPredictiveScalingMaxCapacityBuffer(int value) { m_predictiveScalingMaxCapacityBufferHasBeenSet = true; m_predictiveScalingMaxCapacityBuffer = value; } 789 790 /** 791 * <p>The size of the capacity buffer to use when the forecast capacity is close to 792 * or exceeds the maximum capacity. The value is specified as a percentage relative 793 * to the forecast capacity. For example, if the buffer is 10, this means a 10 794 * percent buffer, such that if the forecast capacity is 50, and the maximum 795 * capacity is 40, then the effective maximum capacity is 55.</p> <p>Only valid 796 * when configuring predictive scaling. Required if the 797 * <b>PredictiveScalingMaxCapacityBehavior</b> is set to 798 * <code>SetMaxCapacityAboveForecastCapacity</code>, and cannot be used 799 * otherwise.</p> <p>The range is 1-100.</p> 800 */ WithPredictiveScalingMaxCapacityBuffer(int value)801 inline ScalingInstruction& WithPredictiveScalingMaxCapacityBuffer(int value) { SetPredictiveScalingMaxCapacityBuffer(value); return *this;} 802 803 804 /** 805 * <p>The predictive scaling mode. The default value is 806 * <code>ForecastAndScale</code>. Otherwise, AWS Auto Scaling forecasts capacity 807 * but does not create any scheduled scaling actions based on the capacity 808 * forecast. </p> 809 */ GetPredictiveScalingMode()810 inline const PredictiveScalingMode& GetPredictiveScalingMode() const{ return m_predictiveScalingMode; } 811 812 /** 813 * <p>The predictive scaling mode. The default value is 814 * <code>ForecastAndScale</code>. Otherwise, AWS Auto Scaling forecasts capacity 815 * but does not create any scheduled scaling actions based on the capacity 816 * forecast. </p> 817 */ PredictiveScalingModeHasBeenSet()818 inline bool PredictiveScalingModeHasBeenSet() const { return m_predictiveScalingModeHasBeenSet; } 819 820 /** 821 * <p>The predictive scaling mode. The default value is 822 * <code>ForecastAndScale</code>. Otherwise, AWS Auto Scaling forecasts capacity 823 * but does not create any scheduled scaling actions based on the capacity 824 * forecast. </p> 825 */ SetPredictiveScalingMode(const PredictiveScalingMode & value)826 inline void SetPredictiveScalingMode(const PredictiveScalingMode& value) { m_predictiveScalingModeHasBeenSet = true; m_predictiveScalingMode = value; } 827 828 /** 829 * <p>The predictive scaling mode. The default value is 830 * <code>ForecastAndScale</code>. Otherwise, AWS Auto Scaling forecasts capacity 831 * but does not create any scheduled scaling actions based on the capacity 832 * forecast. </p> 833 */ SetPredictiveScalingMode(PredictiveScalingMode && value)834 inline void SetPredictiveScalingMode(PredictiveScalingMode&& value) { m_predictiveScalingModeHasBeenSet = true; m_predictiveScalingMode = std::move(value); } 835 836 /** 837 * <p>The predictive scaling mode. The default value is 838 * <code>ForecastAndScale</code>. Otherwise, AWS Auto Scaling forecasts capacity 839 * but does not create any scheduled scaling actions based on the capacity 840 * forecast. </p> 841 */ WithPredictiveScalingMode(const PredictiveScalingMode & value)842 inline ScalingInstruction& WithPredictiveScalingMode(const PredictiveScalingMode& value) { SetPredictiveScalingMode(value); return *this;} 843 844 /** 845 * <p>The predictive scaling mode. The default value is 846 * <code>ForecastAndScale</code>. Otherwise, AWS Auto Scaling forecasts capacity 847 * but does not create any scheduled scaling actions based on the capacity 848 * forecast. </p> 849 */ WithPredictiveScalingMode(PredictiveScalingMode && value)850 inline ScalingInstruction& WithPredictiveScalingMode(PredictiveScalingMode&& value) { SetPredictiveScalingMode(std::move(value)); return *this;} 851 852 853 /** 854 * <p>Controls whether a resource's externally created scaling policies are kept or 855 * replaced. </p> <p>The default value is <code>KeepExternalPolicies</code>. If the 856 * parameter is set to <code>ReplaceExternalPolicies</code>, any scaling policies 857 * that are external to AWS Auto Scaling are deleted and new target tracking 858 * scaling policies created. </p> <p>Only valid when configuring dynamic scaling. 859 * </p> <p>Condition: The number of existing policies to be replaced must be less 860 * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto 861 * Scaling keeps all existing policies and does not create new ones.</p> 862 */ GetScalingPolicyUpdateBehavior()863 inline const ScalingPolicyUpdateBehavior& GetScalingPolicyUpdateBehavior() const{ return m_scalingPolicyUpdateBehavior; } 864 865 /** 866 * <p>Controls whether a resource's externally created scaling policies are kept or 867 * replaced. </p> <p>The default value is <code>KeepExternalPolicies</code>. If the 868 * parameter is set to <code>ReplaceExternalPolicies</code>, any scaling policies 869 * that are external to AWS Auto Scaling are deleted and new target tracking 870 * scaling policies created. </p> <p>Only valid when configuring dynamic scaling. 871 * </p> <p>Condition: The number of existing policies to be replaced must be less 872 * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto 873 * Scaling keeps all existing policies and does not create new ones.</p> 874 */ ScalingPolicyUpdateBehaviorHasBeenSet()875 inline bool ScalingPolicyUpdateBehaviorHasBeenSet() const { return m_scalingPolicyUpdateBehaviorHasBeenSet; } 876 877 /** 878 * <p>Controls whether a resource's externally created scaling policies are kept or 879 * replaced. </p> <p>The default value is <code>KeepExternalPolicies</code>. If the 880 * parameter is set to <code>ReplaceExternalPolicies</code>, any scaling policies 881 * that are external to AWS Auto Scaling are deleted and new target tracking 882 * scaling policies created. </p> <p>Only valid when configuring dynamic scaling. 883 * </p> <p>Condition: The number of existing policies to be replaced must be less 884 * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto 885 * Scaling keeps all existing policies and does not create new ones.</p> 886 */ SetScalingPolicyUpdateBehavior(const ScalingPolicyUpdateBehavior & value)887 inline void SetScalingPolicyUpdateBehavior(const ScalingPolicyUpdateBehavior& value) { m_scalingPolicyUpdateBehaviorHasBeenSet = true; m_scalingPolicyUpdateBehavior = value; } 888 889 /** 890 * <p>Controls whether a resource's externally created scaling policies are kept or 891 * replaced. </p> <p>The default value is <code>KeepExternalPolicies</code>. If the 892 * parameter is set to <code>ReplaceExternalPolicies</code>, any scaling policies 893 * that are external to AWS Auto Scaling are deleted and new target tracking 894 * scaling policies created. </p> <p>Only valid when configuring dynamic scaling. 895 * </p> <p>Condition: The number of existing policies to be replaced must be less 896 * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto 897 * Scaling keeps all existing policies and does not create new ones.</p> 898 */ SetScalingPolicyUpdateBehavior(ScalingPolicyUpdateBehavior && value)899 inline void SetScalingPolicyUpdateBehavior(ScalingPolicyUpdateBehavior&& value) { m_scalingPolicyUpdateBehaviorHasBeenSet = true; m_scalingPolicyUpdateBehavior = std::move(value); } 900 901 /** 902 * <p>Controls whether a resource's externally created scaling policies are kept or 903 * replaced. </p> <p>The default value is <code>KeepExternalPolicies</code>. If the 904 * parameter is set to <code>ReplaceExternalPolicies</code>, any scaling policies 905 * that are external to AWS Auto Scaling are deleted and new target tracking 906 * scaling policies created. </p> <p>Only valid when configuring dynamic scaling. 907 * </p> <p>Condition: The number of existing policies to be replaced must be less 908 * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto 909 * Scaling keeps all existing policies and does not create new ones.</p> 910 */ WithScalingPolicyUpdateBehavior(const ScalingPolicyUpdateBehavior & value)911 inline ScalingInstruction& WithScalingPolicyUpdateBehavior(const ScalingPolicyUpdateBehavior& value) { SetScalingPolicyUpdateBehavior(value); return *this;} 912 913 /** 914 * <p>Controls whether a resource's externally created scaling policies are kept or 915 * replaced. </p> <p>The default value is <code>KeepExternalPolicies</code>. If the 916 * parameter is set to <code>ReplaceExternalPolicies</code>, any scaling policies 917 * that are external to AWS Auto Scaling are deleted and new target tracking 918 * scaling policies created. </p> <p>Only valid when configuring dynamic scaling. 919 * </p> <p>Condition: The number of existing policies to be replaced must be less 920 * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto 921 * Scaling keeps all existing policies and does not create new ones.</p> 922 */ WithScalingPolicyUpdateBehavior(ScalingPolicyUpdateBehavior && value)923 inline ScalingInstruction& WithScalingPolicyUpdateBehavior(ScalingPolicyUpdateBehavior&& value) { SetScalingPolicyUpdateBehavior(std::move(value)); return *this;} 924 925 926 /** 927 * <p>Controls whether dynamic scaling by AWS Auto Scaling is disabled. When 928 * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling 929 * policies based on the specified target tracking configurations. </p> <p>The 930 * default is enabled (<code>false</code>). </p> 931 */ GetDisableDynamicScaling()932 inline bool GetDisableDynamicScaling() const{ return m_disableDynamicScaling; } 933 934 /** 935 * <p>Controls whether dynamic scaling by AWS Auto Scaling is disabled. When 936 * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling 937 * policies based on the specified target tracking configurations. </p> <p>The 938 * default is enabled (<code>false</code>). </p> 939 */ DisableDynamicScalingHasBeenSet()940 inline bool DisableDynamicScalingHasBeenSet() const { return m_disableDynamicScalingHasBeenSet; } 941 942 /** 943 * <p>Controls whether dynamic scaling by AWS Auto Scaling is disabled. When 944 * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling 945 * policies based on the specified target tracking configurations. </p> <p>The 946 * default is enabled (<code>false</code>). </p> 947 */ SetDisableDynamicScaling(bool value)948 inline void SetDisableDynamicScaling(bool value) { m_disableDynamicScalingHasBeenSet = true; m_disableDynamicScaling = value; } 949 950 /** 951 * <p>Controls whether dynamic scaling by AWS Auto Scaling is disabled. When 952 * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling 953 * policies based on the specified target tracking configurations. </p> <p>The 954 * default is enabled (<code>false</code>). </p> 955 */ WithDisableDynamicScaling(bool value)956 inline ScalingInstruction& WithDisableDynamicScaling(bool value) { SetDisableDynamicScaling(value); return *this;} 957 958 private: 959 960 ServiceNamespace m_serviceNamespace; 961 bool m_serviceNamespaceHasBeenSet; 962 963 Aws::String m_resourceId; 964 bool m_resourceIdHasBeenSet; 965 966 ScalableDimension m_scalableDimension; 967 bool m_scalableDimensionHasBeenSet; 968 969 int m_minCapacity; 970 bool m_minCapacityHasBeenSet; 971 972 int m_maxCapacity; 973 bool m_maxCapacityHasBeenSet; 974 975 Aws::Vector<TargetTrackingConfiguration> m_targetTrackingConfigurations; 976 bool m_targetTrackingConfigurationsHasBeenSet; 977 978 PredefinedLoadMetricSpecification m_predefinedLoadMetricSpecification; 979 bool m_predefinedLoadMetricSpecificationHasBeenSet; 980 981 CustomizedLoadMetricSpecification m_customizedLoadMetricSpecification; 982 bool m_customizedLoadMetricSpecificationHasBeenSet; 983 984 int m_scheduledActionBufferTime; 985 bool m_scheduledActionBufferTimeHasBeenSet; 986 987 PredictiveScalingMaxCapacityBehavior m_predictiveScalingMaxCapacityBehavior; 988 bool m_predictiveScalingMaxCapacityBehaviorHasBeenSet; 989 990 int m_predictiveScalingMaxCapacityBuffer; 991 bool m_predictiveScalingMaxCapacityBufferHasBeenSet; 992 993 PredictiveScalingMode m_predictiveScalingMode; 994 bool m_predictiveScalingModeHasBeenSet; 995 996 ScalingPolicyUpdateBehavior m_scalingPolicyUpdateBehavior; 997 bool m_scalingPolicyUpdateBehaviorHasBeenSet; 998 999 bool m_disableDynamicScaling; 1000 bool m_disableDynamicScalingHasBeenSet; 1001 }; 1002 1003 } // namespace Model 1004 } // namespace AutoScalingPlans 1005 } // namespace Aws 1006