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