1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package types 4 5import ( 6 "time" 7) 8 9// Represents a CloudWatch alarm associated with a scaling policy. 10type Alarm struct { 11 12 // The Amazon Resource Name (ARN) of the alarm. 13 // 14 // This member is required. 15 AlarmARN *string 16 17 // The name of the alarm. 18 // 19 // This member is required. 20 AlarmName *string 21} 22 23// Represents a CloudWatch metric of your choosing for a target tracking scaling 24// policy to use with Application Auto Scaling. For information about the available 25// metrics for a service, see AWS Services That Publish CloudWatch Metrics 26// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) 27// in the Amazon CloudWatch User Guide. To create your customized metric 28// specification: 29// 30// * Add values for each required parameter from CloudWatch. You 31// can use an existing metric, or a new metric that you create. To use your own 32// metric, you must first publish the metric to CloudWatch. For more information, 33// see Publish Custom Metrics 34// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) 35// in the Amazon CloudWatch User Guide. 36// 37// * Choose a metric that changes 38// proportionally with capacity. The value of the metric should increase or 39// decrease in inverse proportion to the number of capacity units. That is, the 40// value of the metric should decrease when capacity increases, and increase when 41// capacity decreases. 42// 43// For more information about CloudWatch, see Amazon 44// CloudWatch Concepts 45// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html). 46type CustomizedMetricSpecification struct { 47 48 // The name of the metric. 49 // 50 // This member is required. 51 MetricName *string 52 53 // The namespace of the metric. 54 // 55 // This member is required. 56 Namespace *string 57 58 // The statistic of the metric. 59 // 60 // This member is required. 61 Statistic MetricStatistic 62 63 // The dimensions of the metric. Conditional: If you published your metric with 64 // dimensions, you must specify the same dimensions in your scaling policy. 65 Dimensions []MetricDimension 66 67 // The unit of the metric. 68 Unit *string 69} 70 71// Describes the dimension names and values associated with a metric. 72type MetricDimension struct { 73 74 // The name of the dimension. 75 // 76 // This member is required. 77 Name *string 78 79 // The value of the dimension. 80 // 81 // This member is required. 82 Value *string 83} 84 85// Represents a predefined metric for a target tracking scaling policy to use with 86// Application Auto Scaling. Only the AWS services that you're using send metrics 87// to Amazon CloudWatch. To determine whether a desired metric already exists by 88// looking up its namespace and dimension using the CloudWatch metrics dashboard in 89// the console, follow the procedure in Building dashboards with CloudWatch 90// (https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html) 91// in the Application Auto Scaling User Guide. 92type PredefinedMetricSpecification struct { 93 94 // The metric type. The ALBRequestCountPerTarget metric type applies only to Spot 95 // Fleet requests and ECS services. 96 // 97 // This member is required. 98 PredefinedMetricType MetricType 99 100 // Identifies the resource associated with the metric type. You can't specify a 101 // resource label unless the metric type is ALBRequestCountPerTarget and there is a 102 // target group attached to the Spot Fleet request or ECS service. You create the 103 // resource label by appending the final portion of the load balancer ARN and the 104 // final portion of the target group ARN into a single value, separated by a 105 // forward slash (/). The format is app///targetgroup//, where: 106 // 107 // * app// is the 108 // final portion of the load balancer ARN 109 // 110 // * targetgroup// is the final portion of 111 // the target group ARN. 112 // 113 // This is an example: 114 // app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. 115 // To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers 116 // (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) 117 // API operation. To find the ARN for the target group, use the 118 // DescribeTargetGroups 119 // (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) 120 // API operation. 121 ResourceLabel *string 122} 123 124// Represents a scalable target. 125type ScalableTarget struct { 126 127 // The Unix timestamp for when the scalable target was created. 128 // 129 // This member is required. 130 CreationTime *time.Time 131 132 // The maximum value to scale to in response to a scale-out activity. 133 // 134 // This member is required. 135 MaxCapacity *int32 136 137 // The minimum value to scale to in response to a scale-in activity. 138 // 139 // This member is required. 140 MinCapacity *int32 141 142 // The identifier of the resource associated with the scalable target. This string 143 // consists of the resource type and unique identifier. 144 // 145 // * ECS service - The 146 // resource type is service and the unique identifier is the cluster name and 147 // service name. Example: service/default/sample-webapp. 148 // 149 // * Spot Fleet request - 150 // The resource type is spot-fleet-request and the unique identifier is the Spot 151 // Fleet request ID. Example: 152 // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. 153 // 154 // * EMR cluster - 155 // The resource type is instancegroup and the unique identifier is the cluster ID 156 // and instance group ID. Example: 157 // instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. 158 // 159 // * AppStream 2.0 fleet - The 160 // resource type is fleet and the unique identifier is the fleet name. Example: 161 // fleet/sample-fleet. 162 // 163 // * DynamoDB table - The resource type is table and the 164 // unique identifier is the table name. Example: table/my-table. 165 // 166 // * DynamoDB global 167 // secondary index - The resource type is index and the unique identifier is the 168 // index name. Example: table/my-table/index/my-table-index. 169 // 170 // * Aurora DB cluster - 171 // The resource type is cluster and the unique identifier is the cluster name. 172 // Example: cluster:my-db-cluster. 173 // 174 // * Amazon SageMaker endpoint variant - The 175 // resource type is variant and the unique identifier is the resource ID. Example: 176 // endpoint/my-end-point/variant/KMeansClustering. 177 // 178 // * Custom resources are not 179 // supported with a resource type. This parameter must specify the OutputValue from 180 // the CloudFormation template stack used to access the resources. The unique 181 // identifier is defined by the service provider. More information is available in 182 // our GitHub repository 183 // (https://github.com/aws/aws-auto-scaling-custom-resource). 184 // 185 // * Amazon Comprehend 186 // document classification endpoint - The resource type and unique identifier are 187 // specified using the endpoint ARN. Example: 188 // arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. 189 // 190 // * 191 // Amazon Comprehend entity recognizer endpoint - The resource type and unique 192 // identifier are specified using the endpoint ARN. Example: 193 // arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. 194 // 195 // * 196 // Lambda provisioned concurrency - The resource type is function and the unique 197 // identifier is the function name with a function version or alias name suffix 198 // that is not $LATEST. Example: function:my-function:prod or 199 // function:my-function:1. 200 // 201 // * Amazon Keyspaces table - The resource type is table 202 // and the unique identifier is the table name. Example: 203 // keyspace/mykeyspace/table/mytable. 204 // 205 // * Amazon MSK cluster - The resource type and 206 // unique identifier are specified using the cluster ARN. Example: 207 // arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. 208 // 209 // This member is required. 210 ResourceId *string 211 212 // The ARN of an IAM role that allows Application Auto Scaling to modify the 213 // scalable target on your behalf. 214 // 215 // This member is required. 216 RoleARN *string 217 218 // The scalable dimension associated with the scalable target. This string consists 219 // of the service namespace, resource type, and scaling property. 220 // 221 // * 222 // ecs:service:DesiredCount - The desired task count of an ECS service. 223 // 224 // * 225 // ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet 226 // request. 227 // 228 // * elasticmapreduce:instancegroup:InstanceCount - The instance count of 229 // an EMR Instance Group. 230 // 231 // * appstream:fleet:DesiredCapacity - The desired capacity 232 // of an AppStream 2.0 fleet. 233 // 234 // * dynamodb:table:ReadCapacityUnits - The provisioned 235 // read capacity for a DynamoDB table. 236 // 237 // * dynamodb:table:WriteCapacityUnits - The 238 // provisioned write capacity for a DynamoDB table. 239 // 240 // * 241 // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB 242 // global secondary index. 243 // 244 // * dynamodb:index:WriteCapacityUnits - The provisioned 245 // write capacity for a DynamoDB global secondary index. 246 // 247 // * 248 // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB 249 // cluster. Available for Aurora MySQL-compatible edition and Aurora 250 // PostgreSQL-compatible edition. 251 // 252 // * sagemaker:variant:DesiredInstanceCount - The 253 // number of EC2 instances for an Amazon SageMaker model endpoint variant. 254 // 255 // * 256 // custom-resource:ResourceType:Property - The scalable dimension for a custom 257 // resource provided by your own application or service. 258 // 259 // * 260 // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of 261 // inference units for an Amazon Comprehend document classification endpoint. 262 // 263 // * 264 // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of 265 // inference units for an Amazon Comprehend entity recognizer endpoint. 266 // 267 // * 268 // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a 269 // Lambda function. 270 // 271 // * cassandra:table:ReadCapacityUnits - The provisioned read 272 // capacity for an Amazon Keyspaces table. 273 // 274 // * cassandra:table:WriteCapacityUnits - 275 // The provisioned write capacity for an Amazon Keyspaces table. 276 // 277 // * 278 // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for 279 // brokers in an Amazon MSK cluster. 280 // 281 // This member is required. 282 ScalableDimension ScalableDimension 283 284 // The namespace of the AWS service that provides the resource, or a 285 // custom-resource. 286 // 287 // This member is required. 288 ServiceNamespace ServiceNamespace 289 290 // Specifies whether the scaling activities for a scalable target are in a 291 // suspended state. 292 SuspendedState *SuspendedState 293} 294 295// Represents the minimum and maximum capacity for a scheduled action. 296type ScalableTargetAction struct { 297 298 // The maximum capacity. Although you can specify a large maximum capacity, note 299 // that service quotas may impose lower limits. Each service has its own default 300 // quotas for the maximum capacity of the resource. If you want to specify a higher 301 // limit, you can request an increase. For more information, consult the 302 // documentation for that service. For information about the default quotas for 303 // each service, see Service Endpoints and Quotas 304 // (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in 305 // the Amazon Web Services General Reference. 306 MaxCapacity *int32 307 308 // The minimum capacity. For certain resources, the minimum value allowed is 0. 309 // This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora 310 // DB clusters, EMR clusters, and custom resources. For all other resources, the 311 // minimum value allowed is 1. 312 MinCapacity *int32 313} 314 315// Represents a scaling activity. 316type ScalingActivity struct { 317 318 // The unique identifier of the scaling activity. 319 // 320 // This member is required. 321 ActivityId *string 322 323 // A simple description of what caused the scaling activity to happen. 324 // 325 // This member is required. 326 Cause *string 327 328 // A simple description of what action the scaling activity intends to accomplish. 329 // 330 // This member is required. 331 Description *string 332 333 // The identifier of the resource associated with the scaling activity. This string 334 // consists of the resource type and unique identifier. 335 // 336 // * ECS service - The 337 // resource type is service and the unique identifier is the cluster name and 338 // service name. Example: service/default/sample-webapp. 339 // 340 // * Spot Fleet request - 341 // The resource type is spot-fleet-request and the unique identifier is the Spot 342 // Fleet request ID. Example: 343 // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. 344 // 345 // * EMR cluster - 346 // The resource type is instancegroup and the unique identifier is the cluster ID 347 // and instance group ID. Example: 348 // instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. 349 // 350 // * AppStream 2.0 fleet - The 351 // resource type is fleet and the unique identifier is the fleet name. Example: 352 // fleet/sample-fleet. 353 // 354 // * DynamoDB table - The resource type is table and the 355 // unique identifier is the table name. Example: table/my-table. 356 // 357 // * DynamoDB global 358 // secondary index - The resource type is index and the unique identifier is the 359 // index name. Example: table/my-table/index/my-table-index. 360 // 361 // * Aurora DB cluster - 362 // The resource type is cluster and the unique identifier is the cluster name. 363 // Example: cluster:my-db-cluster. 364 // 365 // * Amazon SageMaker endpoint variant - The 366 // resource type is variant and the unique identifier is the resource ID. Example: 367 // endpoint/my-end-point/variant/KMeansClustering. 368 // 369 // * Custom resources are not 370 // supported with a resource type. This parameter must specify the OutputValue from 371 // the CloudFormation template stack used to access the resources. The unique 372 // identifier is defined by the service provider. More information is available in 373 // our GitHub repository 374 // (https://github.com/aws/aws-auto-scaling-custom-resource). 375 // 376 // * Amazon Comprehend 377 // document classification endpoint - The resource type and unique identifier are 378 // specified using the endpoint ARN. Example: 379 // arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. 380 // 381 // * 382 // Amazon Comprehend entity recognizer endpoint - The resource type and unique 383 // identifier are specified using the endpoint ARN. Example: 384 // arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. 385 // 386 // * 387 // Lambda provisioned concurrency - The resource type is function and the unique 388 // identifier is the function name with a function version or alias name suffix 389 // that is not $LATEST. Example: function:my-function:prod or 390 // function:my-function:1. 391 // 392 // * Amazon Keyspaces table - The resource type is table 393 // and the unique identifier is the table name. Example: 394 // keyspace/mykeyspace/table/mytable. 395 // 396 // * Amazon MSK cluster - The resource type and 397 // unique identifier are specified using the cluster ARN. Example: 398 // arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. 399 // 400 // This member is required. 401 ResourceId *string 402 403 // The scalable dimension. This string consists of the service namespace, resource 404 // type, and scaling property. 405 // 406 // * ecs:service:DesiredCount - The desired task count 407 // of an ECS service. 408 // 409 // * ec2:spot-fleet-request:TargetCapacity - The target 410 // capacity of a Spot Fleet request. 411 // 412 // * 413 // elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR 414 // Instance Group. 415 // 416 // * appstream:fleet:DesiredCapacity - The desired capacity of an 417 // AppStream 2.0 fleet. 418 // 419 // * dynamodb:table:ReadCapacityUnits - The provisioned read 420 // capacity for a DynamoDB table. 421 // 422 // * dynamodb:table:WriteCapacityUnits - The 423 // provisioned write capacity for a DynamoDB table. 424 // 425 // * 426 // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB 427 // global secondary index. 428 // 429 // * dynamodb:index:WriteCapacityUnits - The provisioned 430 // write capacity for a DynamoDB global secondary index. 431 // 432 // * 433 // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB 434 // cluster. Available for Aurora MySQL-compatible edition and Aurora 435 // PostgreSQL-compatible edition. 436 // 437 // * sagemaker:variant:DesiredInstanceCount - The 438 // number of EC2 instances for an Amazon SageMaker model endpoint variant. 439 // 440 // * 441 // custom-resource:ResourceType:Property - The scalable dimension for a custom 442 // resource provided by your own application or service. 443 // 444 // * 445 // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of 446 // inference units for an Amazon Comprehend document classification endpoint. 447 // 448 // * 449 // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of 450 // inference units for an Amazon Comprehend entity recognizer endpoint. 451 // 452 // * 453 // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a 454 // Lambda function. 455 // 456 // * cassandra:table:ReadCapacityUnits - The provisioned read 457 // capacity for an Amazon Keyspaces table. 458 // 459 // * cassandra:table:WriteCapacityUnits - 460 // The provisioned write capacity for an Amazon Keyspaces table. 461 // 462 // * 463 // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for 464 // brokers in an Amazon MSK cluster. 465 // 466 // This member is required. 467 ScalableDimension ScalableDimension 468 469 // The namespace of the AWS service that provides the resource, or a 470 // custom-resource. 471 // 472 // This member is required. 473 ServiceNamespace ServiceNamespace 474 475 // The Unix timestamp for when the scaling activity began. 476 // 477 // This member is required. 478 StartTime *time.Time 479 480 // Indicates the status of the scaling activity. 481 // 482 // This member is required. 483 StatusCode ScalingActivityStatusCode 484 485 // The details about the scaling activity. 486 Details *string 487 488 // The Unix timestamp for when the scaling activity ended. 489 EndTime *time.Time 490 491 // A simple message about the current status of the scaling activity. 492 StatusMessage *string 493} 494 495// Represents a scaling policy to use with Application Auto Scaling. For more 496// information about configuring scaling policies for a specific service, see 497// Getting started with Application Auto Scaling 498// (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) 499// in the Application Auto Scaling User Guide. 500type ScalingPolicy struct { 501 502 // The Unix timestamp for when the scaling policy was created. 503 // 504 // This member is required. 505 CreationTime *time.Time 506 507 // The Amazon Resource Name (ARN) of the scaling policy. 508 // 509 // This member is required. 510 PolicyARN *string 511 512 // The name of the scaling policy. 513 // 514 // This member is required. 515 PolicyName *string 516 517 // The scaling policy type. 518 // 519 // This member is required. 520 PolicyType PolicyType 521 522 // The identifier of the resource associated with the scaling policy. This string 523 // consists of the resource type and unique identifier. 524 // 525 // * ECS service - The 526 // resource type is service and the unique identifier is the cluster name and 527 // service name. Example: service/default/sample-webapp. 528 // 529 // * Spot Fleet request - 530 // The resource type is spot-fleet-request and the unique identifier is the Spot 531 // Fleet request ID. Example: 532 // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. 533 // 534 // * EMR cluster - 535 // The resource type is instancegroup and the unique identifier is the cluster ID 536 // and instance group ID. Example: 537 // instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. 538 // 539 // * AppStream 2.0 fleet - The 540 // resource type is fleet and the unique identifier is the fleet name. Example: 541 // fleet/sample-fleet. 542 // 543 // * DynamoDB table - The resource type is table and the 544 // unique identifier is the table name. Example: table/my-table. 545 // 546 // * DynamoDB global 547 // secondary index - The resource type is index and the unique identifier is the 548 // index name. Example: table/my-table/index/my-table-index. 549 // 550 // * Aurora DB cluster - 551 // The resource type is cluster and the unique identifier is the cluster name. 552 // Example: cluster:my-db-cluster. 553 // 554 // * Amazon SageMaker endpoint variant - The 555 // resource type is variant and the unique identifier is the resource ID. Example: 556 // endpoint/my-end-point/variant/KMeansClustering. 557 // 558 // * Custom resources are not 559 // supported with a resource type. This parameter must specify the OutputValue from 560 // the CloudFormation template stack used to access the resources. The unique 561 // identifier is defined by the service provider. More information is available in 562 // our GitHub repository 563 // (https://github.com/aws/aws-auto-scaling-custom-resource). 564 // 565 // * Amazon Comprehend 566 // document classification endpoint - The resource type and unique identifier are 567 // specified using the endpoint ARN. Example: 568 // arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. 569 // 570 // * 571 // Amazon Comprehend entity recognizer endpoint - The resource type and unique 572 // identifier are specified using the endpoint ARN. Example: 573 // arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. 574 // 575 // * 576 // Lambda provisioned concurrency - The resource type is function and the unique 577 // identifier is the function name with a function version or alias name suffix 578 // that is not $LATEST. Example: function:my-function:prod or 579 // function:my-function:1. 580 // 581 // * Amazon Keyspaces table - The resource type is table 582 // and the unique identifier is the table name. Example: 583 // keyspace/mykeyspace/table/mytable. 584 // 585 // * Amazon MSK cluster - The resource type and 586 // unique identifier are specified using the cluster ARN. Example: 587 // arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. 588 // 589 // This member is required. 590 ResourceId *string 591 592 // The scalable dimension. This string consists of the service namespace, resource 593 // type, and scaling property. 594 // 595 // * ecs:service:DesiredCount - The desired task count 596 // of an ECS service. 597 // 598 // * ec2:spot-fleet-request:TargetCapacity - The target 599 // capacity of a Spot Fleet request. 600 // 601 // * 602 // elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR 603 // Instance Group. 604 // 605 // * appstream:fleet:DesiredCapacity - The desired capacity of an 606 // AppStream 2.0 fleet. 607 // 608 // * dynamodb:table:ReadCapacityUnits - The provisioned read 609 // capacity for a DynamoDB table. 610 // 611 // * dynamodb:table:WriteCapacityUnits - The 612 // provisioned write capacity for a DynamoDB table. 613 // 614 // * 615 // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB 616 // global secondary index. 617 // 618 // * dynamodb:index:WriteCapacityUnits - The provisioned 619 // write capacity for a DynamoDB global secondary index. 620 // 621 // * 622 // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB 623 // cluster. Available for Aurora MySQL-compatible edition and Aurora 624 // PostgreSQL-compatible edition. 625 // 626 // * sagemaker:variant:DesiredInstanceCount - The 627 // number of EC2 instances for an Amazon SageMaker model endpoint variant. 628 // 629 // * 630 // custom-resource:ResourceType:Property - The scalable dimension for a custom 631 // resource provided by your own application or service. 632 // 633 // * 634 // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of 635 // inference units for an Amazon Comprehend document classification endpoint. 636 // 637 // * 638 // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of 639 // inference units for an Amazon Comprehend entity recognizer endpoint. 640 // 641 // * 642 // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a 643 // Lambda function. 644 // 645 // * cassandra:table:ReadCapacityUnits - The provisioned read 646 // capacity for an Amazon Keyspaces table. 647 // 648 // * cassandra:table:WriteCapacityUnits - 649 // The provisioned write capacity for an Amazon Keyspaces table. 650 // 651 // * 652 // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for 653 // brokers in an Amazon MSK cluster. 654 // 655 // This member is required. 656 ScalableDimension ScalableDimension 657 658 // The namespace of the AWS service that provides the resource, or a 659 // custom-resource. 660 // 661 // This member is required. 662 ServiceNamespace ServiceNamespace 663 664 // The CloudWatch alarms associated with the scaling policy. 665 Alarms []Alarm 666 667 // A step scaling policy. 668 StepScalingPolicyConfiguration *StepScalingPolicyConfiguration 669 670 // A target tracking scaling policy. 671 TargetTrackingScalingPolicyConfiguration *TargetTrackingScalingPolicyConfiguration 672} 673 674// Represents a scheduled action. 675type ScheduledAction struct { 676 677 // The date and time that the scheduled action was created. 678 // 679 // This member is required. 680 CreationTime *time.Time 681 682 // The identifier of the resource associated with the scaling policy. This string 683 // consists of the resource type and unique identifier. 684 // 685 // * ECS service - The 686 // resource type is service and the unique identifier is the cluster name and 687 // service name. Example: service/default/sample-webapp. 688 // 689 // * Spot Fleet request - 690 // The resource type is spot-fleet-request and the unique identifier is the Spot 691 // Fleet request ID. Example: 692 // spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. 693 // 694 // * EMR cluster - 695 // The resource type is instancegroup and the unique identifier is the cluster ID 696 // and instance group ID. Example: 697 // instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. 698 // 699 // * AppStream 2.0 fleet - The 700 // resource type is fleet and the unique identifier is the fleet name. Example: 701 // fleet/sample-fleet. 702 // 703 // * DynamoDB table - The resource type is table and the 704 // unique identifier is the table name. Example: table/my-table. 705 // 706 // * DynamoDB global 707 // secondary index - The resource type is index and the unique identifier is the 708 // index name. Example: table/my-table/index/my-table-index. 709 // 710 // * Aurora DB cluster - 711 // The resource type is cluster and the unique identifier is the cluster name. 712 // Example: cluster:my-db-cluster. 713 // 714 // * Amazon SageMaker endpoint variant - The 715 // resource type is variant and the unique identifier is the resource ID. Example: 716 // endpoint/my-end-point/variant/KMeansClustering. 717 // 718 // * Custom resources are not 719 // supported with a resource type. This parameter must specify the OutputValue from 720 // the CloudFormation template stack used to access the resources. The unique 721 // identifier is defined by the service provider. More information is available in 722 // our GitHub repository 723 // (https://github.com/aws/aws-auto-scaling-custom-resource). 724 // 725 // * Amazon Comprehend 726 // document classification endpoint - The resource type and unique identifier are 727 // specified using the endpoint ARN. Example: 728 // arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. 729 // 730 // * 731 // Amazon Comprehend entity recognizer endpoint - The resource type and unique 732 // identifier are specified using the endpoint ARN. Example: 733 // arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. 734 // 735 // * 736 // Lambda provisioned concurrency - The resource type is function and the unique 737 // identifier is the function name with a function version or alias name suffix 738 // that is not $LATEST. Example: function:my-function:prod or 739 // function:my-function:1. 740 // 741 // * Amazon Keyspaces table - The resource type is table 742 // and the unique identifier is the table name. Example: 743 // keyspace/mykeyspace/table/mytable. 744 // 745 // * Amazon MSK cluster - The resource type and 746 // unique identifier are specified using the cluster ARN. Example: 747 // arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. 748 // 749 // This member is required. 750 ResourceId *string 751 752 // The schedule for this action. The following formats are supported: 753 // 754 // * At 755 // expressions - "at(yyyy-mm-ddThh:mm:ss)" 756 // 757 // * Rate expressions - "rate(value 758 // unit)" 759 // 760 // * Cron expressions - "cron(fields)" 761 // 762 // At expressions are useful for 763 // one-time schedules. Cron expressions are useful for scheduled actions that run 764 // periodically at a specified date and time, and rate expressions are useful for 765 // scheduled actions that run at a regular interval. At and cron expressions use 766 // Universal Coordinated Time (UTC) by default. The cron format consists of six 767 // fields separated by white spaces: [Minutes] [Hours] [Day_of_Month] [Month] 768 // [Day_of_Week] [Year]. For rate expressions, value is a positive integer and unit 769 // is minute | minutes | hour | hours | day | days. For more information and 770 // examples, see Example scheduled actions for Application Auto Scaling 771 // (https://docs.aws.amazon.com/autoscaling/application/userguide/examples-scheduled-actions.html) 772 // in the Application Auto Scaling User Guide. 773 // 774 // This member is required. 775 Schedule *string 776 777 // The Amazon Resource Name (ARN) of the scheduled action. 778 // 779 // This member is required. 780 ScheduledActionARN *string 781 782 // The name of the scheduled action. 783 // 784 // This member is required. 785 ScheduledActionName *string 786 787 // The namespace of the AWS service that provides the resource, or a 788 // custom-resource. 789 // 790 // This member is required. 791 ServiceNamespace ServiceNamespace 792 793 // The date and time that the action is scheduled to end, in UTC. 794 EndTime *time.Time 795 796 // The scalable dimension. This string consists of the service namespace, resource 797 // type, and scaling property. 798 // 799 // * ecs:service:DesiredCount - The desired task count 800 // of an ECS service. 801 // 802 // * ec2:spot-fleet-request:TargetCapacity - The target 803 // capacity of a Spot Fleet request. 804 // 805 // * 806 // elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR 807 // Instance Group. 808 // 809 // * appstream:fleet:DesiredCapacity - The desired capacity of an 810 // AppStream 2.0 fleet. 811 // 812 // * dynamodb:table:ReadCapacityUnits - The provisioned read 813 // capacity for a DynamoDB table. 814 // 815 // * dynamodb:table:WriteCapacityUnits - The 816 // provisioned write capacity for a DynamoDB table. 817 // 818 // * 819 // dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB 820 // global secondary index. 821 // 822 // * dynamodb:index:WriteCapacityUnits - The provisioned 823 // write capacity for a DynamoDB global secondary index. 824 // 825 // * 826 // rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB 827 // cluster. Available for Aurora MySQL-compatible edition and Aurora 828 // PostgreSQL-compatible edition. 829 // 830 // * sagemaker:variant:DesiredInstanceCount - The 831 // number of EC2 instances for an Amazon SageMaker model endpoint variant. 832 // 833 // * 834 // custom-resource:ResourceType:Property - The scalable dimension for a custom 835 // resource provided by your own application or service. 836 // 837 // * 838 // comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of 839 // inference units for an Amazon Comprehend document classification endpoint. 840 // 841 // * 842 // comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of 843 // inference units for an Amazon Comprehend entity recognizer endpoint. 844 // 845 // * 846 // lambda:function:ProvisionedConcurrency - The provisioned concurrency for a 847 // Lambda function. 848 // 849 // * cassandra:table:ReadCapacityUnits - The provisioned read 850 // capacity for an Amazon Keyspaces table. 851 // 852 // * cassandra:table:WriteCapacityUnits - 853 // The provisioned write capacity for an Amazon Keyspaces table. 854 // 855 // * 856 // kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for 857 // brokers in an Amazon MSK cluster. 858 ScalableDimension ScalableDimension 859 860 // The new minimum and maximum capacity. You can set both values or just one. At 861 // the scheduled time, if the current capacity is below the minimum capacity, 862 // Application Auto Scaling scales out to the minimum capacity. If the current 863 // capacity is above the maximum capacity, Application Auto Scaling scales in to 864 // the maximum capacity. 865 ScalableTargetAction *ScalableTargetAction 866 867 // The date and time that the action is scheduled to begin, in UTC. 868 StartTime *time.Time 869 870 // The time zone used when referring to the date and time of a scheduled action, 871 // when the scheduled action uses an at or cron expression. 872 Timezone *string 873} 874 875// Represents a step adjustment for a StepScalingPolicyConfiguration 876// (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html). 877// Describes an adjustment based on the difference between the value of the 878// aggregated CloudWatch metric and the breach threshold that you've defined for 879// the alarm. For the following examples, suppose that you have an alarm with a 880// breach threshold of 50: 881// 882// * To trigger the adjustment when the metric is greater 883// than or equal to 50 and less than 60, specify a lower bound of 0 and an upper 884// bound of 10. 885// 886// * To trigger the adjustment when the metric is greater than 40 and 887// less than or equal to 50, specify a lower bound of -10 and an upper bound of 888// 0. 889// 890// There are a few rules for the step adjustments for your step policy: 891// 892// * The 893// ranges of your step adjustments can't overlap or have a gap. 894// 895// * At most one step 896// adjustment can have a null lower bound. If one step adjustment has a negative 897// lower bound, then there must be a step adjustment with a null lower bound. 898// 899// * At 900// most one step adjustment can have a null upper bound. If one step adjustment has 901// a positive upper bound, then there must be a step adjustment with a null upper 902// bound. 903// 904// * The upper and lower bound can't be null in the same step adjustment. 905type StepAdjustment struct { 906 907 // The amount by which to scale, based on the specified adjustment type. A positive 908 // value adds to the current capacity while a negative number removes from the 909 // current capacity. For exact capacity, you must specify a positive value. 910 // 911 // This member is required. 912 ScalingAdjustment *int32 913 914 // The lower bound for the difference between the alarm threshold and the 915 // CloudWatch metric. If the metric value is above the breach threshold, the lower 916 // bound is inclusive (the metric must be greater than or equal to the threshold 917 // plus the lower bound). Otherwise, it is exclusive (the metric must be greater 918 // than the threshold plus the lower bound). A null value indicates negative 919 // infinity. 920 MetricIntervalLowerBound *float64 921 922 // The upper bound for the difference between the alarm threshold and the 923 // CloudWatch metric. If the metric value is above the breach threshold, the upper 924 // bound is exclusive (the metric must be less than the threshold plus the upper 925 // bound). Otherwise, it is inclusive (the metric must be less than or equal to the 926 // threshold plus the upper bound). A null value indicates positive infinity. The 927 // upper bound must be greater than the lower bound. 928 MetricIntervalUpperBound *float64 929} 930 931// Represents a step scaling policy configuration to use with Application Auto 932// Scaling. 933type StepScalingPolicyConfiguration struct { 934 935 // Specifies how the ScalingAdjustment value in a StepAdjustment 936 // (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepAdjustment.html) 937 // is interpreted (for example, an absolute number or a percentage). The valid 938 // values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. 939 // AdjustmentType is required if you are adding a new step scaling policy 940 // configuration. 941 AdjustmentType AdjustmentType 942 943 // The amount of time, in seconds, to wait for a previous scaling activity to take 944 // effect. With scale-out policies, the intention is to continuously (but not 945 // excessively) scale out. After Application Auto Scaling successfully scales out 946 // using a step scaling policy, it starts to calculate the cooldown time. The 947 // scaling policy won't increase the desired capacity again unless either a larger 948 // scale out is triggered or the cooldown period ends. While the cooldown period is 949 // in effect, capacity added by the initiating scale-out activity is calculated as 950 // part of the desired capacity for the next scale-out activity. For example, when 951 // an alarm triggers a step scaling policy to increase the capacity by 2, the 952 // scaling activity completes successfully, and a cooldown period starts. If the 953 // alarm triggers again during the cooldown period but at a more aggressive step 954 // adjustment of 3, the previous increase of 2 is considered part of the current 955 // capacity. Therefore, only 1 is added to the capacity. With scale-in policies, 956 // the intention is to scale in conservatively to protect your application’s 957 // availability, so scale-in activities are blocked until the cooldown period has 958 // expired. However, if another alarm triggers a scale-out activity during the 959 // cooldown period after a scale-in activity, Application Auto Scaling scales out 960 // the target immediately. In this case, the cooldown period for the scale-in 961 // activity stops and doesn't complete. Application Auto Scaling provides a default 962 // value of 300 for the following scalable targets: 963 // 964 // * ECS services 965 // 966 // * Spot Fleet 967 // requests 968 // 969 // * EMR clusters 970 // 971 // * AppStream 2.0 fleets 972 // 973 // * Aurora DB clusters 974 // 975 // * Amazon 976 // SageMaker endpoint variants 977 // 978 // * Custom resources 979 // 980 // For all other scalable targets, 981 // the default value is 0: 982 // 983 // * DynamoDB tables 984 // 985 // * DynamoDB global secondary 986 // indexes 987 // 988 // * Amazon Comprehend document classification and entity recognizer 989 // endpoints 990 // 991 // * Lambda provisioned concurrency 992 // 993 // * Amazon Keyspaces tables 994 // 995 // * Amazon 996 // MSK broker storage 997 Cooldown *int32 998 999 // The aggregation type for the CloudWatch metrics. Valid values are Minimum, 1000 // Maximum, and Average. If the aggregation type is null, the value is treated as 1001 // Average. 1002 MetricAggregationType MetricAggregationType 1003 1004 // The minimum value to scale by when the adjustment type is 1005 // PercentChangeInCapacity. For example, suppose that you create a step scaling 1006 // policy to scale out an Amazon ECS service by 25 percent and you specify a 1007 // MinAdjustmentMagnitude of 2. If the service has 4 tasks and the scaling policy 1008 // is performed, 25 percent of 4 is 1. However, because you specified a 1009 // MinAdjustmentMagnitude of 2, Application Auto Scaling scales out the service by 1010 // 2 tasks. 1011 MinAdjustmentMagnitude *int32 1012 1013 // A set of adjustments that enable you to scale based on the size of the alarm 1014 // breach. At least one step adjustment is required if you are adding a new step 1015 // scaling policy configuration. 1016 StepAdjustments []StepAdjustment 1017} 1018 1019// Specifies whether the scaling activities for a scalable target are in a 1020// suspended state. 1021type SuspendedState struct { 1022 1023 // Whether scale in by a target tracking scaling policy or a step scaling policy is 1024 // suspended. Set the value to true if you don't want Application Auto Scaling to 1025 // remove capacity when a scaling policy is triggered. The default is false. 1026 DynamicScalingInSuspended *bool 1027 1028 // Whether scale out by a target tracking scaling policy or a step scaling policy 1029 // is suspended. Set the value to true if you don't want Application Auto Scaling 1030 // to add capacity when a scaling policy is triggered. The default is false. 1031 DynamicScalingOutSuspended *bool 1032 1033 // Whether scheduled scaling is suspended. Set the value to true if you don't want 1034 // Application Auto Scaling to add or remove capacity by initiating scheduled 1035 // actions. The default is false. 1036 ScheduledScalingSuspended *bool 1037} 1038 1039// Represents a target tracking scaling policy configuration to use with 1040// Application Auto Scaling. 1041type TargetTrackingScalingPolicyConfiguration struct { 1042 1043 // The target value for the metric. Although this property accepts numbers of type 1044 // Double, it won't accept values that are either too small or too large. Values 1045 // must be in the range of -2^360 to 2^360. The value must be a valid number based 1046 // on the choice of metric. For example, if the metric is CPU utilization, then the 1047 // target value is a percent value that represents how much of the CPU can be used 1048 // before scaling out. 1049 // 1050 // This member is required. 1051 TargetValue *float64 1052 1053 // A customized metric. You can specify either a predefined metric or a customized 1054 // metric. 1055 CustomizedMetricSpecification *CustomizedMetricSpecification 1056 1057 // Indicates whether scale in by the target tracking scaling policy is disabled. If 1058 // the value is true, scale in is disabled and the target tracking scaling policy 1059 // won't remove capacity from the scalable target. Otherwise, scale in is enabled 1060 // and the target tracking scaling policy can remove capacity from the scalable 1061 // target. The default value is false. 1062 DisableScaleIn *bool 1063 1064 // A predefined metric. You can specify either a predefined metric or a customized 1065 // metric. 1066 PredefinedMetricSpecification *PredefinedMetricSpecification 1067 1068 // The amount of time, in seconds, after a scale-in activity completes before 1069 // another scale-in activity can start. With the scale-in cooldown period, the 1070 // intention is to scale in conservatively to protect your application’s 1071 // availability, so scale-in activities are blocked until the cooldown period has 1072 // expired. However, if another alarm triggers a scale-out activity during the 1073 // scale-in cooldown period, Application Auto Scaling scales out the target 1074 // immediately. In this case, the scale-in cooldown period stops and doesn't 1075 // complete. Application Auto Scaling provides a default value of 300 for the 1076 // following scalable targets: 1077 // 1078 // * ECS services 1079 // 1080 // * Spot Fleet requests 1081 // 1082 // * EMR 1083 // clusters 1084 // 1085 // * AppStream 2.0 fleets 1086 // 1087 // * Aurora DB clusters 1088 // 1089 // * Amazon SageMaker 1090 // endpoint variants 1091 // 1092 // * Custom resources 1093 // 1094 // For all other scalable targets, the 1095 // default value is 0: 1096 // 1097 // * DynamoDB tables 1098 // 1099 // * DynamoDB global secondary indexes 1100 // 1101 // * 1102 // Amazon Comprehend document classification and entity recognizer endpoints 1103 // 1104 // * 1105 // Lambda provisioned concurrency 1106 // 1107 // * Amazon Keyspaces tables 1108 // 1109 // * Amazon MSK broker 1110 // storage 1111 ScaleInCooldown *int32 1112 1113 // The amount of time, in seconds, to wait for a previous scale-out activity to 1114 // take effect. With the scale-out cooldown period, the intention is to 1115 // continuously (but not excessively) scale out. After Application Auto Scaling 1116 // successfully scales out using a target tracking scaling policy, it starts to 1117 // calculate the cooldown time. The scaling policy won't increase the desired 1118 // capacity again unless either a larger scale out is triggered or the cooldown 1119 // period ends. While the cooldown period is in effect, the capacity added by the 1120 // initiating scale-out activity is calculated as part of the desired capacity for 1121 // the next scale-out activity. Application Auto Scaling provides a default value 1122 // of 300 for the following scalable targets: 1123 // 1124 // * ECS services 1125 // 1126 // * Spot Fleet 1127 // requests 1128 // 1129 // * EMR clusters 1130 // 1131 // * AppStream 2.0 fleets 1132 // 1133 // * Aurora DB clusters 1134 // 1135 // * Amazon 1136 // SageMaker endpoint variants 1137 // 1138 // * Custom resources 1139 // 1140 // For all other scalable targets, 1141 // the default value is 0: 1142 // 1143 // * DynamoDB tables 1144 // 1145 // * DynamoDB global secondary 1146 // indexes 1147 // 1148 // * Amazon Comprehend document classification and entity recognizer 1149 // endpoints 1150 // 1151 // * Lambda provisioned concurrency 1152 // 1153 // * Amazon Keyspaces tables 1154 // 1155 // * Amazon 1156 // MSK broker storage 1157 ScaleOutCooldown *int32 1158} 1159