1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package autoscalingplans
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opCreateScalingPlan = "CreateScalingPlan"
17
18// CreateScalingPlanRequest generates a "aws/request.Request" representing the
19// client's request for the CreateScalingPlan operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateScalingPlan for more information on using the CreateScalingPlan
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateScalingPlanRequest method.
34//    req, resp := client.CreateScalingPlanRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/CreateScalingPlan
42func (c *AutoScalingPlans) CreateScalingPlanRequest(input *CreateScalingPlanInput) (req *request.Request, output *CreateScalingPlanOutput) {
43	op := &request.Operation{
44		Name:       opCreateScalingPlan,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateScalingPlanInput{}
51	}
52
53	output = &CreateScalingPlanOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateScalingPlan API operation for AWS Auto Scaling Plans.
59//
60// Creates a scaling plan.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for AWS Auto Scaling Plans's
67// API operation CreateScalingPlan for usage and error information.
68//
69// Returned Error Types:
70//   * ValidationException
71//   An exception was thrown for a validation issue. Review the parameters provided.
72//
73//   * LimitExceededException
74//   Your account exceeded a limit. This exception is thrown when a per-account
75//   resource limit is exceeded.
76//
77//   * ConcurrentUpdateException
78//   Concurrent updates caused an exception, for example, if you request an update
79//   to a scaling plan that already has a pending update.
80//
81//   * InternalServiceException
82//   The service encountered an internal error.
83//
84// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/CreateScalingPlan
85func (c *AutoScalingPlans) CreateScalingPlan(input *CreateScalingPlanInput) (*CreateScalingPlanOutput, error) {
86	req, out := c.CreateScalingPlanRequest(input)
87	return out, req.Send()
88}
89
90// CreateScalingPlanWithContext is the same as CreateScalingPlan with the addition of
91// the ability to pass a context and additional request options.
92//
93// See CreateScalingPlan for details on how to use this API operation.
94//
95// The context must be non-nil and will be used for request cancellation. If
96// the context is nil a panic will occur. In the future the SDK may create
97// sub-contexts for http.Requests. See https://golang.org/pkg/context/
98// for more information on using Contexts.
99func (c *AutoScalingPlans) CreateScalingPlanWithContext(ctx aws.Context, input *CreateScalingPlanInput, opts ...request.Option) (*CreateScalingPlanOutput, error) {
100	req, out := c.CreateScalingPlanRequest(input)
101	req.SetContext(ctx)
102	req.ApplyOptions(opts...)
103	return out, req.Send()
104}
105
106const opDeleteScalingPlan = "DeleteScalingPlan"
107
108// DeleteScalingPlanRequest generates a "aws/request.Request" representing the
109// client's request for the DeleteScalingPlan operation. The "output" return
110// value will be populated with the request's response once the request completes
111// successfully.
112//
113// Use "Send" method on the returned Request to send the API call to the service.
114// the "output" return value is not valid until after Send returns without error.
115//
116// See DeleteScalingPlan for more information on using the DeleteScalingPlan
117// API call, and error handling.
118//
119// This method is useful when you want to inject custom logic or configuration
120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
121//
122//
123//    // Example sending a request using the DeleteScalingPlanRequest method.
124//    req, resp := client.DeleteScalingPlanRequest(params)
125//
126//    err := req.Send()
127//    if err == nil { // resp is now filled
128//        fmt.Println(resp)
129//    }
130//
131// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DeleteScalingPlan
132func (c *AutoScalingPlans) DeleteScalingPlanRequest(input *DeleteScalingPlanInput) (req *request.Request, output *DeleteScalingPlanOutput) {
133	op := &request.Operation{
134		Name:       opDeleteScalingPlan,
135		HTTPMethod: "POST",
136		HTTPPath:   "/",
137	}
138
139	if input == nil {
140		input = &DeleteScalingPlanInput{}
141	}
142
143	output = &DeleteScalingPlanOutput{}
144	req = c.newRequest(op, input, output)
145	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
146	return
147}
148
149// DeleteScalingPlan API operation for AWS Auto Scaling Plans.
150//
151// Deletes the specified scaling plan.
152//
153// Deleting a scaling plan deletes the underlying ScalingInstruction for all
154// of the scalable resources that are covered by the plan.
155//
156// If the plan has launched resources or has scaling activities in progress,
157// you must delete those resources separately.
158//
159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
160// with awserr.Error's Code and Message methods to get detailed information about
161// the error.
162//
163// See the AWS API reference guide for AWS Auto Scaling Plans's
164// API operation DeleteScalingPlan for usage and error information.
165//
166// Returned Error Types:
167//   * ValidationException
168//   An exception was thrown for a validation issue. Review the parameters provided.
169//
170//   * ObjectNotFoundException
171//   The specified object could not be found.
172//
173//   * ConcurrentUpdateException
174//   Concurrent updates caused an exception, for example, if you request an update
175//   to a scaling plan that already has a pending update.
176//
177//   * InternalServiceException
178//   The service encountered an internal error.
179//
180// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DeleteScalingPlan
181func (c *AutoScalingPlans) DeleteScalingPlan(input *DeleteScalingPlanInput) (*DeleteScalingPlanOutput, error) {
182	req, out := c.DeleteScalingPlanRequest(input)
183	return out, req.Send()
184}
185
186// DeleteScalingPlanWithContext is the same as DeleteScalingPlan with the addition of
187// the ability to pass a context and additional request options.
188//
189// See DeleteScalingPlan for details on how to use this API operation.
190//
191// The context must be non-nil and will be used for request cancellation. If
192// the context is nil a panic will occur. In the future the SDK may create
193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
194// for more information on using Contexts.
195func (c *AutoScalingPlans) DeleteScalingPlanWithContext(ctx aws.Context, input *DeleteScalingPlanInput, opts ...request.Option) (*DeleteScalingPlanOutput, error) {
196	req, out := c.DeleteScalingPlanRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opDescribeScalingPlanResources = "DescribeScalingPlanResources"
203
204// DescribeScalingPlanResourcesRequest generates a "aws/request.Request" representing the
205// client's request for the DescribeScalingPlanResources operation. The "output" return
206// value will be populated with the request's response once the request completes
207// successfully.
208//
209// Use "Send" method on the returned Request to send the API call to the service.
210// the "output" return value is not valid until after Send returns without error.
211//
212// See DescribeScalingPlanResources for more information on using the DescribeScalingPlanResources
213// API call, and error handling.
214//
215// This method is useful when you want to inject custom logic or configuration
216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
217//
218//
219//    // Example sending a request using the DescribeScalingPlanResourcesRequest method.
220//    req, resp := client.DescribeScalingPlanResourcesRequest(params)
221//
222//    err := req.Send()
223//    if err == nil { // resp is now filled
224//        fmt.Println(resp)
225//    }
226//
227// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DescribeScalingPlanResources
228func (c *AutoScalingPlans) DescribeScalingPlanResourcesRequest(input *DescribeScalingPlanResourcesInput) (req *request.Request, output *DescribeScalingPlanResourcesOutput) {
229	op := &request.Operation{
230		Name:       opDescribeScalingPlanResources,
231		HTTPMethod: "POST",
232		HTTPPath:   "/",
233	}
234
235	if input == nil {
236		input = &DescribeScalingPlanResourcesInput{}
237	}
238
239	output = &DescribeScalingPlanResourcesOutput{}
240	req = c.newRequest(op, input, output)
241	return
242}
243
244// DescribeScalingPlanResources API operation for AWS Auto Scaling Plans.
245//
246// Describes the scalable resources in the specified scaling plan.
247//
248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
249// with awserr.Error's Code and Message methods to get detailed information about
250// the error.
251//
252// See the AWS API reference guide for AWS Auto Scaling Plans's
253// API operation DescribeScalingPlanResources for usage and error information.
254//
255// Returned Error Types:
256//   * ValidationException
257//   An exception was thrown for a validation issue. Review the parameters provided.
258//
259//   * InvalidNextTokenException
260//   The token provided is not valid.
261//
262//   * ConcurrentUpdateException
263//   Concurrent updates caused an exception, for example, if you request an update
264//   to a scaling plan that already has a pending update.
265//
266//   * InternalServiceException
267//   The service encountered an internal error.
268//
269// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DescribeScalingPlanResources
270func (c *AutoScalingPlans) DescribeScalingPlanResources(input *DescribeScalingPlanResourcesInput) (*DescribeScalingPlanResourcesOutput, error) {
271	req, out := c.DescribeScalingPlanResourcesRequest(input)
272	return out, req.Send()
273}
274
275// DescribeScalingPlanResourcesWithContext is the same as DescribeScalingPlanResources with the addition of
276// the ability to pass a context and additional request options.
277//
278// See DescribeScalingPlanResources for details on how to use this API operation.
279//
280// The context must be non-nil and will be used for request cancellation. If
281// the context is nil a panic will occur. In the future the SDK may create
282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
283// for more information on using Contexts.
284func (c *AutoScalingPlans) DescribeScalingPlanResourcesWithContext(ctx aws.Context, input *DescribeScalingPlanResourcesInput, opts ...request.Option) (*DescribeScalingPlanResourcesOutput, error) {
285	req, out := c.DescribeScalingPlanResourcesRequest(input)
286	req.SetContext(ctx)
287	req.ApplyOptions(opts...)
288	return out, req.Send()
289}
290
291const opDescribeScalingPlans = "DescribeScalingPlans"
292
293// DescribeScalingPlansRequest generates a "aws/request.Request" representing the
294// client's request for the DescribeScalingPlans operation. The "output" return
295// value will be populated with the request's response once the request completes
296// successfully.
297//
298// Use "Send" method on the returned Request to send the API call to the service.
299// the "output" return value is not valid until after Send returns without error.
300//
301// See DescribeScalingPlans for more information on using the DescribeScalingPlans
302// API call, and error handling.
303//
304// This method is useful when you want to inject custom logic or configuration
305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
306//
307//
308//    // Example sending a request using the DescribeScalingPlansRequest method.
309//    req, resp := client.DescribeScalingPlansRequest(params)
310//
311//    err := req.Send()
312//    if err == nil { // resp is now filled
313//        fmt.Println(resp)
314//    }
315//
316// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DescribeScalingPlans
317func (c *AutoScalingPlans) DescribeScalingPlansRequest(input *DescribeScalingPlansInput) (req *request.Request, output *DescribeScalingPlansOutput) {
318	op := &request.Operation{
319		Name:       opDescribeScalingPlans,
320		HTTPMethod: "POST",
321		HTTPPath:   "/",
322	}
323
324	if input == nil {
325		input = &DescribeScalingPlansInput{}
326	}
327
328	output = &DescribeScalingPlansOutput{}
329	req = c.newRequest(op, input, output)
330	return
331}
332
333// DescribeScalingPlans API operation for AWS Auto Scaling Plans.
334//
335// Describes one or more of your scaling plans.
336//
337// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
338// with awserr.Error's Code and Message methods to get detailed information about
339// the error.
340//
341// See the AWS API reference guide for AWS Auto Scaling Plans's
342// API operation DescribeScalingPlans for usage and error information.
343//
344// Returned Error Types:
345//   * ValidationException
346//   An exception was thrown for a validation issue. Review the parameters provided.
347//
348//   * InvalidNextTokenException
349//   The token provided is not valid.
350//
351//   * ConcurrentUpdateException
352//   Concurrent updates caused an exception, for example, if you request an update
353//   to a scaling plan that already has a pending update.
354//
355//   * InternalServiceException
356//   The service encountered an internal error.
357//
358// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DescribeScalingPlans
359func (c *AutoScalingPlans) DescribeScalingPlans(input *DescribeScalingPlansInput) (*DescribeScalingPlansOutput, error) {
360	req, out := c.DescribeScalingPlansRequest(input)
361	return out, req.Send()
362}
363
364// DescribeScalingPlansWithContext is the same as DescribeScalingPlans with the addition of
365// the ability to pass a context and additional request options.
366//
367// See DescribeScalingPlans for details on how to use this API operation.
368//
369// The context must be non-nil and will be used for request cancellation. If
370// the context is nil a panic will occur. In the future the SDK may create
371// sub-contexts for http.Requests. See https://golang.org/pkg/context/
372// for more information on using Contexts.
373func (c *AutoScalingPlans) DescribeScalingPlansWithContext(ctx aws.Context, input *DescribeScalingPlansInput, opts ...request.Option) (*DescribeScalingPlansOutput, error) {
374	req, out := c.DescribeScalingPlansRequest(input)
375	req.SetContext(ctx)
376	req.ApplyOptions(opts...)
377	return out, req.Send()
378}
379
380const opGetScalingPlanResourceForecastData = "GetScalingPlanResourceForecastData"
381
382// GetScalingPlanResourceForecastDataRequest generates a "aws/request.Request" representing the
383// client's request for the GetScalingPlanResourceForecastData operation. The "output" return
384// value will be populated with the request's response once the request completes
385// successfully.
386//
387// Use "Send" method on the returned Request to send the API call to the service.
388// the "output" return value is not valid until after Send returns without error.
389//
390// See GetScalingPlanResourceForecastData for more information on using the GetScalingPlanResourceForecastData
391// API call, and error handling.
392//
393// This method is useful when you want to inject custom logic or configuration
394// into the SDK's request lifecycle. Such as custom headers, or retry logic.
395//
396//
397//    // Example sending a request using the GetScalingPlanResourceForecastDataRequest method.
398//    req, resp := client.GetScalingPlanResourceForecastDataRequest(params)
399//
400//    err := req.Send()
401//    if err == nil { // resp is now filled
402//        fmt.Println(resp)
403//    }
404//
405// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/GetScalingPlanResourceForecastData
406func (c *AutoScalingPlans) GetScalingPlanResourceForecastDataRequest(input *GetScalingPlanResourceForecastDataInput) (req *request.Request, output *GetScalingPlanResourceForecastDataOutput) {
407	op := &request.Operation{
408		Name:       opGetScalingPlanResourceForecastData,
409		HTTPMethod: "POST",
410		HTTPPath:   "/",
411	}
412
413	if input == nil {
414		input = &GetScalingPlanResourceForecastDataInput{}
415	}
416
417	output = &GetScalingPlanResourceForecastDataOutput{}
418	req = c.newRequest(op, input, output)
419	return
420}
421
422// GetScalingPlanResourceForecastData API operation for AWS Auto Scaling Plans.
423//
424// Retrieves the forecast data for a scalable resource.
425//
426// Capacity forecasts are represented as predicted values, or data points, that
427// are calculated using historical data points from a specified CloudWatch load
428// metric. Data points are available for up to 56 days.
429//
430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
431// with awserr.Error's Code and Message methods to get detailed information about
432// the error.
433//
434// See the AWS API reference guide for AWS Auto Scaling Plans's
435// API operation GetScalingPlanResourceForecastData for usage and error information.
436//
437// Returned Error Types:
438//   * ValidationException
439//   An exception was thrown for a validation issue. Review the parameters provided.
440//
441//   * InternalServiceException
442//   The service encountered an internal error.
443//
444// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/GetScalingPlanResourceForecastData
445func (c *AutoScalingPlans) GetScalingPlanResourceForecastData(input *GetScalingPlanResourceForecastDataInput) (*GetScalingPlanResourceForecastDataOutput, error) {
446	req, out := c.GetScalingPlanResourceForecastDataRequest(input)
447	return out, req.Send()
448}
449
450// GetScalingPlanResourceForecastDataWithContext is the same as GetScalingPlanResourceForecastData with the addition of
451// the ability to pass a context and additional request options.
452//
453// See GetScalingPlanResourceForecastData for details on how to use this API operation.
454//
455// The context must be non-nil and will be used for request cancellation. If
456// the context is nil a panic will occur. In the future the SDK may create
457// sub-contexts for http.Requests. See https://golang.org/pkg/context/
458// for more information on using Contexts.
459func (c *AutoScalingPlans) GetScalingPlanResourceForecastDataWithContext(ctx aws.Context, input *GetScalingPlanResourceForecastDataInput, opts ...request.Option) (*GetScalingPlanResourceForecastDataOutput, error) {
460	req, out := c.GetScalingPlanResourceForecastDataRequest(input)
461	req.SetContext(ctx)
462	req.ApplyOptions(opts...)
463	return out, req.Send()
464}
465
466const opUpdateScalingPlan = "UpdateScalingPlan"
467
468// UpdateScalingPlanRequest generates a "aws/request.Request" representing the
469// client's request for the UpdateScalingPlan operation. The "output" return
470// value will be populated with the request's response once the request completes
471// successfully.
472//
473// Use "Send" method on the returned Request to send the API call to the service.
474// the "output" return value is not valid until after Send returns without error.
475//
476// See UpdateScalingPlan for more information on using the UpdateScalingPlan
477// API call, and error handling.
478//
479// This method is useful when you want to inject custom logic or configuration
480// into the SDK's request lifecycle. Such as custom headers, or retry logic.
481//
482//
483//    // Example sending a request using the UpdateScalingPlanRequest method.
484//    req, resp := client.UpdateScalingPlanRequest(params)
485//
486//    err := req.Send()
487//    if err == nil { // resp is now filled
488//        fmt.Println(resp)
489//    }
490//
491// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/UpdateScalingPlan
492func (c *AutoScalingPlans) UpdateScalingPlanRequest(input *UpdateScalingPlanInput) (req *request.Request, output *UpdateScalingPlanOutput) {
493	op := &request.Operation{
494		Name:       opUpdateScalingPlan,
495		HTTPMethod: "POST",
496		HTTPPath:   "/",
497	}
498
499	if input == nil {
500		input = &UpdateScalingPlanInput{}
501	}
502
503	output = &UpdateScalingPlanOutput{}
504	req = c.newRequest(op, input, output)
505	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
506	return
507}
508
509// UpdateScalingPlan API operation for AWS Auto Scaling Plans.
510//
511// Updates the specified scaling plan.
512//
513// You cannot update a scaling plan if it is in the process of being created,
514// updated, or deleted.
515//
516// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
517// with awserr.Error's Code and Message methods to get detailed information about
518// the error.
519//
520// See the AWS API reference guide for AWS Auto Scaling Plans's
521// API operation UpdateScalingPlan for usage and error information.
522//
523// Returned Error Types:
524//   * ValidationException
525//   An exception was thrown for a validation issue. Review the parameters provided.
526//
527//   * ConcurrentUpdateException
528//   Concurrent updates caused an exception, for example, if you request an update
529//   to a scaling plan that already has a pending update.
530//
531//   * InternalServiceException
532//   The service encountered an internal error.
533//
534//   * ObjectNotFoundException
535//   The specified object could not be found.
536//
537// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/UpdateScalingPlan
538func (c *AutoScalingPlans) UpdateScalingPlan(input *UpdateScalingPlanInput) (*UpdateScalingPlanOutput, error) {
539	req, out := c.UpdateScalingPlanRequest(input)
540	return out, req.Send()
541}
542
543// UpdateScalingPlanWithContext is the same as UpdateScalingPlan with the addition of
544// the ability to pass a context and additional request options.
545//
546// See UpdateScalingPlan for details on how to use this API operation.
547//
548// The context must be non-nil and will be used for request cancellation. If
549// the context is nil a panic will occur. In the future the SDK may create
550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
551// for more information on using Contexts.
552func (c *AutoScalingPlans) UpdateScalingPlanWithContext(ctx aws.Context, input *UpdateScalingPlanInput, opts ...request.Option) (*UpdateScalingPlanOutput, error) {
553	req, out := c.UpdateScalingPlanRequest(input)
554	req.SetContext(ctx)
555	req.ApplyOptions(opts...)
556	return out, req.Send()
557}
558
559// Represents an application source.
560type ApplicationSource struct {
561	_ struct{} `type:"structure"`
562
563	// The Amazon Resource Name (ARN) of a AWS CloudFormation stack.
564	CloudFormationStackARN *string `type:"string"`
565
566	// A set of tags (up to 50).
567	TagFilters []*TagFilter `type:"list"`
568}
569
570// String returns the string representation
571func (s ApplicationSource) String() string {
572	return awsutil.Prettify(s)
573}
574
575// GoString returns the string representation
576func (s ApplicationSource) GoString() string {
577	return s.String()
578}
579
580// Validate inspects the fields of the type to determine if they are valid.
581func (s *ApplicationSource) Validate() error {
582	invalidParams := request.ErrInvalidParams{Context: "ApplicationSource"}
583	if s.TagFilters != nil {
584		for i, v := range s.TagFilters {
585			if v == nil {
586				continue
587			}
588			if err := v.Validate(); err != nil {
589				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagFilters", i), err.(request.ErrInvalidParams))
590			}
591		}
592	}
593
594	if invalidParams.Len() > 0 {
595		return invalidParams
596	}
597	return nil
598}
599
600// SetCloudFormationStackARN sets the CloudFormationStackARN field's value.
601func (s *ApplicationSource) SetCloudFormationStackARN(v string) *ApplicationSource {
602	s.CloudFormationStackARN = &v
603	return s
604}
605
606// SetTagFilters sets the TagFilters field's value.
607func (s *ApplicationSource) SetTagFilters(v []*TagFilter) *ApplicationSource {
608	s.TagFilters = v
609	return s
610}
611
612// Concurrent updates caused an exception, for example, if you request an update
613// to a scaling plan that already has a pending update.
614type ConcurrentUpdateException struct {
615	_            struct{}                  `type:"structure"`
616	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
617
618	Message_ *string `locationName:"Message" type:"string"`
619}
620
621// String returns the string representation
622func (s ConcurrentUpdateException) String() string {
623	return awsutil.Prettify(s)
624}
625
626// GoString returns the string representation
627func (s ConcurrentUpdateException) GoString() string {
628	return s.String()
629}
630
631func newErrorConcurrentUpdateException(v protocol.ResponseMetadata) error {
632	return &ConcurrentUpdateException{
633		RespMetadata: v,
634	}
635}
636
637// Code returns the exception type name.
638func (s *ConcurrentUpdateException) Code() string {
639	return "ConcurrentUpdateException"
640}
641
642// Message returns the exception's message.
643func (s *ConcurrentUpdateException) Message() string {
644	if s.Message_ != nil {
645		return *s.Message_
646	}
647	return ""
648}
649
650// OrigErr always returns nil, satisfies awserr.Error interface.
651func (s *ConcurrentUpdateException) OrigErr() error {
652	return nil
653}
654
655func (s *ConcurrentUpdateException) Error() string {
656	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
657}
658
659// Status code returns the HTTP status code for the request's response error.
660func (s *ConcurrentUpdateException) StatusCode() int {
661	return s.RespMetadata.StatusCode
662}
663
664// RequestID returns the service's response RequestID for request.
665func (s *ConcurrentUpdateException) RequestID() string {
666	return s.RespMetadata.RequestID
667}
668
669type CreateScalingPlanInput struct {
670	_ struct{} `type:"structure"`
671
672	// A CloudFormation stack or set of tags. You can create one scaling plan per
673	// application source.
674	//
675	// ApplicationSource is a required field
676	ApplicationSource *ApplicationSource `type:"structure" required:"true"`
677
678	// The scaling instructions.
679	//
680	// ScalingInstructions is a required field
681	ScalingInstructions []*ScalingInstruction `type:"list" required:"true"`
682
683	// The name of the scaling plan. Names cannot contain vertical bars, colons,
684	// or forward slashes.
685	//
686	// ScalingPlanName is a required field
687	ScalingPlanName *string `min:"1" type:"string" required:"true"`
688}
689
690// String returns the string representation
691func (s CreateScalingPlanInput) String() string {
692	return awsutil.Prettify(s)
693}
694
695// GoString returns the string representation
696func (s CreateScalingPlanInput) GoString() string {
697	return s.String()
698}
699
700// Validate inspects the fields of the type to determine if they are valid.
701func (s *CreateScalingPlanInput) Validate() error {
702	invalidParams := request.ErrInvalidParams{Context: "CreateScalingPlanInput"}
703	if s.ApplicationSource == nil {
704		invalidParams.Add(request.NewErrParamRequired("ApplicationSource"))
705	}
706	if s.ScalingInstructions == nil {
707		invalidParams.Add(request.NewErrParamRequired("ScalingInstructions"))
708	}
709	if s.ScalingPlanName == nil {
710		invalidParams.Add(request.NewErrParamRequired("ScalingPlanName"))
711	}
712	if s.ScalingPlanName != nil && len(*s.ScalingPlanName) < 1 {
713		invalidParams.Add(request.NewErrParamMinLen("ScalingPlanName", 1))
714	}
715	if s.ApplicationSource != nil {
716		if err := s.ApplicationSource.Validate(); err != nil {
717			invalidParams.AddNested("ApplicationSource", err.(request.ErrInvalidParams))
718		}
719	}
720	if s.ScalingInstructions != nil {
721		for i, v := range s.ScalingInstructions {
722			if v == nil {
723				continue
724			}
725			if err := v.Validate(); err != nil {
726				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ScalingInstructions", i), err.(request.ErrInvalidParams))
727			}
728		}
729	}
730
731	if invalidParams.Len() > 0 {
732		return invalidParams
733	}
734	return nil
735}
736
737// SetApplicationSource sets the ApplicationSource field's value.
738func (s *CreateScalingPlanInput) SetApplicationSource(v *ApplicationSource) *CreateScalingPlanInput {
739	s.ApplicationSource = v
740	return s
741}
742
743// SetScalingInstructions sets the ScalingInstructions field's value.
744func (s *CreateScalingPlanInput) SetScalingInstructions(v []*ScalingInstruction) *CreateScalingPlanInput {
745	s.ScalingInstructions = v
746	return s
747}
748
749// SetScalingPlanName sets the ScalingPlanName field's value.
750func (s *CreateScalingPlanInput) SetScalingPlanName(v string) *CreateScalingPlanInput {
751	s.ScalingPlanName = &v
752	return s
753}
754
755type CreateScalingPlanOutput struct {
756	_ struct{} `type:"structure"`
757
758	// The version number of the scaling plan. This value is always 1.
759	//
760	// Currently, you cannot specify multiple scaling plan versions.
761	//
762	// ScalingPlanVersion is a required field
763	ScalingPlanVersion *int64 `type:"long" required:"true"`
764}
765
766// String returns the string representation
767func (s CreateScalingPlanOutput) String() string {
768	return awsutil.Prettify(s)
769}
770
771// GoString returns the string representation
772func (s CreateScalingPlanOutput) GoString() string {
773	return s.String()
774}
775
776// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
777func (s *CreateScalingPlanOutput) SetScalingPlanVersion(v int64) *CreateScalingPlanOutput {
778	s.ScalingPlanVersion = &v
779	return s
780}
781
782// Represents a CloudWatch metric of your choosing that can be used for predictive
783// scaling.
784//
785// For predictive scaling to work with a customized load metric specification,
786// AWS Auto Scaling needs access to the Sum and Average statistics that CloudWatch
787// computes from metric data. Statistics are calculations used to aggregate
788// data over specified time periods.
789//
790// When you choose a load metric, make sure that the required Sum and Average
791// statistics for your metric are available in CloudWatch and that they provide
792// relevant data for predictive scaling. The Sum statistic must represent the
793// total load on the resource, and the Average statistic must represent the
794// average load per capacity unit of the resource. For example, there is a metric
795// that counts the number of requests processed by your Auto Scaling group.
796// If the Sum statistic represents the total request count processed by the
797// group, then the Average statistic for the specified metric must represent
798// the average request count processed by each instance of the group.
799//
800// For information about terminology, available metrics, or how to publish new
801// metrics, see Amazon CloudWatch Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)
802// in the Amazon CloudWatch User Guide.
803type CustomizedLoadMetricSpecification struct {
804	_ struct{} `type:"structure"`
805
806	// The dimensions of the metric.
807	//
808	// Conditional: If you published your metric with dimensions, you must specify
809	// the same dimensions in your customized load metric specification.
810	Dimensions []*MetricDimension `type:"list"`
811
812	// The name of the metric.
813	//
814	// MetricName is a required field
815	MetricName *string `type:"string" required:"true"`
816
817	// The namespace of the metric.
818	//
819	// Namespace is a required field
820	Namespace *string `type:"string" required:"true"`
821
822	// The statistic of the metric. Currently, the value must always be Sum.
823	//
824	// Statistic is a required field
825	Statistic *string `type:"string" required:"true" enum:"MetricStatistic"`
826
827	// The unit of the metric.
828	Unit *string `type:"string"`
829}
830
831// String returns the string representation
832func (s CustomizedLoadMetricSpecification) String() string {
833	return awsutil.Prettify(s)
834}
835
836// GoString returns the string representation
837func (s CustomizedLoadMetricSpecification) GoString() string {
838	return s.String()
839}
840
841// Validate inspects the fields of the type to determine if they are valid.
842func (s *CustomizedLoadMetricSpecification) Validate() error {
843	invalidParams := request.ErrInvalidParams{Context: "CustomizedLoadMetricSpecification"}
844	if s.MetricName == nil {
845		invalidParams.Add(request.NewErrParamRequired("MetricName"))
846	}
847	if s.Namespace == nil {
848		invalidParams.Add(request.NewErrParamRequired("Namespace"))
849	}
850	if s.Statistic == nil {
851		invalidParams.Add(request.NewErrParamRequired("Statistic"))
852	}
853	if s.Dimensions != nil {
854		for i, v := range s.Dimensions {
855			if v == nil {
856				continue
857			}
858			if err := v.Validate(); err != nil {
859				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
860			}
861		}
862	}
863
864	if invalidParams.Len() > 0 {
865		return invalidParams
866	}
867	return nil
868}
869
870// SetDimensions sets the Dimensions field's value.
871func (s *CustomizedLoadMetricSpecification) SetDimensions(v []*MetricDimension) *CustomizedLoadMetricSpecification {
872	s.Dimensions = v
873	return s
874}
875
876// SetMetricName sets the MetricName field's value.
877func (s *CustomizedLoadMetricSpecification) SetMetricName(v string) *CustomizedLoadMetricSpecification {
878	s.MetricName = &v
879	return s
880}
881
882// SetNamespace sets the Namespace field's value.
883func (s *CustomizedLoadMetricSpecification) SetNamespace(v string) *CustomizedLoadMetricSpecification {
884	s.Namespace = &v
885	return s
886}
887
888// SetStatistic sets the Statistic field's value.
889func (s *CustomizedLoadMetricSpecification) SetStatistic(v string) *CustomizedLoadMetricSpecification {
890	s.Statistic = &v
891	return s
892}
893
894// SetUnit sets the Unit field's value.
895func (s *CustomizedLoadMetricSpecification) SetUnit(v string) *CustomizedLoadMetricSpecification {
896	s.Unit = &v
897	return s
898}
899
900// Represents a CloudWatch metric of your choosing that can be used for dynamic
901// scaling as part of a target tracking scaling policy.
902//
903// To create your customized scaling metric specification:
904//
905//    * Add values for each required parameter from CloudWatch. You can use
906//    an existing metric, or a new metric that you create. To use your own metric,
907//    you must first publish the metric to CloudWatch. For more information,
908//    see Publish Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
909//    in the Amazon CloudWatch User Guide.
910//
911//    * Choose a metric that changes proportionally with capacity. The value
912//    of the metric should increase or decrease in inverse proportion to the
913//    number of capacity units. That is, the value of the metric should decrease
914//    when capacity increases.
915//
916// For more information about CloudWatch, see Amazon CloudWatch Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html).
917type CustomizedScalingMetricSpecification struct {
918	_ struct{} `type:"structure"`
919
920	// The dimensions of the metric.
921	//
922	// Conditional: If you published your metric with dimensions, you must specify
923	// the same dimensions in your customized scaling metric specification.
924	Dimensions []*MetricDimension `type:"list"`
925
926	// The name of the metric.
927	//
928	// MetricName is a required field
929	MetricName *string `type:"string" required:"true"`
930
931	// The namespace of the metric.
932	//
933	// Namespace is a required field
934	Namespace *string `type:"string" required:"true"`
935
936	// The statistic of the metric.
937	//
938	// Statistic is a required field
939	Statistic *string `type:"string" required:"true" enum:"MetricStatistic"`
940
941	// The unit of the metric.
942	Unit *string `type:"string"`
943}
944
945// String returns the string representation
946func (s CustomizedScalingMetricSpecification) String() string {
947	return awsutil.Prettify(s)
948}
949
950// GoString returns the string representation
951func (s CustomizedScalingMetricSpecification) GoString() string {
952	return s.String()
953}
954
955// Validate inspects the fields of the type to determine if they are valid.
956func (s *CustomizedScalingMetricSpecification) Validate() error {
957	invalidParams := request.ErrInvalidParams{Context: "CustomizedScalingMetricSpecification"}
958	if s.MetricName == nil {
959		invalidParams.Add(request.NewErrParamRequired("MetricName"))
960	}
961	if s.Namespace == nil {
962		invalidParams.Add(request.NewErrParamRequired("Namespace"))
963	}
964	if s.Statistic == nil {
965		invalidParams.Add(request.NewErrParamRequired("Statistic"))
966	}
967	if s.Dimensions != nil {
968		for i, v := range s.Dimensions {
969			if v == nil {
970				continue
971			}
972			if err := v.Validate(); err != nil {
973				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
974			}
975		}
976	}
977
978	if invalidParams.Len() > 0 {
979		return invalidParams
980	}
981	return nil
982}
983
984// SetDimensions sets the Dimensions field's value.
985func (s *CustomizedScalingMetricSpecification) SetDimensions(v []*MetricDimension) *CustomizedScalingMetricSpecification {
986	s.Dimensions = v
987	return s
988}
989
990// SetMetricName sets the MetricName field's value.
991func (s *CustomizedScalingMetricSpecification) SetMetricName(v string) *CustomizedScalingMetricSpecification {
992	s.MetricName = &v
993	return s
994}
995
996// SetNamespace sets the Namespace field's value.
997func (s *CustomizedScalingMetricSpecification) SetNamespace(v string) *CustomizedScalingMetricSpecification {
998	s.Namespace = &v
999	return s
1000}
1001
1002// SetStatistic sets the Statistic field's value.
1003func (s *CustomizedScalingMetricSpecification) SetStatistic(v string) *CustomizedScalingMetricSpecification {
1004	s.Statistic = &v
1005	return s
1006}
1007
1008// SetUnit sets the Unit field's value.
1009func (s *CustomizedScalingMetricSpecification) SetUnit(v string) *CustomizedScalingMetricSpecification {
1010	s.Unit = &v
1011	return s
1012}
1013
1014// Represents a single value in the forecast data used for predictive scaling.
1015type Datapoint struct {
1016	_ struct{} `type:"structure"`
1017
1018	// The time stamp for the data point in UTC format.
1019	Timestamp *time.Time `type:"timestamp"`
1020
1021	// The value of the data point.
1022	Value *float64 `type:"double"`
1023}
1024
1025// String returns the string representation
1026func (s Datapoint) String() string {
1027	return awsutil.Prettify(s)
1028}
1029
1030// GoString returns the string representation
1031func (s Datapoint) GoString() string {
1032	return s.String()
1033}
1034
1035// SetTimestamp sets the Timestamp field's value.
1036func (s *Datapoint) SetTimestamp(v time.Time) *Datapoint {
1037	s.Timestamp = &v
1038	return s
1039}
1040
1041// SetValue sets the Value field's value.
1042func (s *Datapoint) SetValue(v float64) *Datapoint {
1043	s.Value = &v
1044	return s
1045}
1046
1047type DeleteScalingPlanInput struct {
1048	_ struct{} `type:"structure"`
1049
1050	// The name of the scaling plan.
1051	//
1052	// ScalingPlanName is a required field
1053	ScalingPlanName *string `min:"1" type:"string" required:"true"`
1054
1055	// The version number of the scaling plan.
1056	//
1057	// ScalingPlanVersion is a required field
1058	ScalingPlanVersion *int64 `type:"long" required:"true"`
1059}
1060
1061// String returns the string representation
1062func (s DeleteScalingPlanInput) String() string {
1063	return awsutil.Prettify(s)
1064}
1065
1066// GoString returns the string representation
1067func (s DeleteScalingPlanInput) GoString() string {
1068	return s.String()
1069}
1070
1071// Validate inspects the fields of the type to determine if they are valid.
1072func (s *DeleteScalingPlanInput) Validate() error {
1073	invalidParams := request.ErrInvalidParams{Context: "DeleteScalingPlanInput"}
1074	if s.ScalingPlanName == nil {
1075		invalidParams.Add(request.NewErrParamRequired("ScalingPlanName"))
1076	}
1077	if s.ScalingPlanName != nil && len(*s.ScalingPlanName) < 1 {
1078		invalidParams.Add(request.NewErrParamMinLen("ScalingPlanName", 1))
1079	}
1080	if s.ScalingPlanVersion == nil {
1081		invalidParams.Add(request.NewErrParamRequired("ScalingPlanVersion"))
1082	}
1083
1084	if invalidParams.Len() > 0 {
1085		return invalidParams
1086	}
1087	return nil
1088}
1089
1090// SetScalingPlanName sets the ScalingPlanName field's value.
1091func (s *DeleteScalingPlanInput) SetScalingPlanName(v string) *DeleteScalingPlanInput {
1092	s.ScalingPlanName = &v
1093	return s
1094}
1095
1096// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
1097func (s *DeleteScalingPlanInput) SetScalingPlanVersion(v int64) *DeleteScalingPlanInput {
1098	s.ScalingPlanVersion = &v
1099	return s
1100}
1101
1102type DeleteScalingPlanOutput struct {
1103	_ struct{} `type:"structure"`
1104}
1105
1106// String returns the string representation
1107func (s DeleteScalingPlanOutput) String() string {
1108	return awsutil.Prettify(s)
1109}
1110
1111// GoString returns the string representation
1112func (s DeleteScalingPlanOutput) GoString() string {
1113	return s.String()
1114}
1115
1116type DescribeScalingPlanResourcesInput struct {
1117	_ struct{} `type:"structure"`
1118
1119	// The maximum number of scalable resources to return. The value must be between
1120	// 1 and 50. The default value is 50.
1121	MaxResults *int64 `type:"integer"`
1122
1123	// The token for the next set of results.
1124	NextToken *string `type:"string"`
1125
1126	// The name of the scaling plan.
1127	//
1128	// ScalingPlanName is a required field
1129	ScalingPlanName *string `min:"1" type:"string" required:"true"`
1130
1131	// The version number of the scaling plan.
1132	//
1133	// ScalingPlanVersion is a required field
1134	ScalingPlanVersion *int64 `type:"long" required:"true"`
1135}
1136
1137// String returns the string representation
1138func (s DescribeScalingPlanResourcesInput) String() string {
1139	return awsutil.Prettify(s)
1140}
1141
1142// GoString returns the string representation
1143func (s DescribeScalingPlanResourcesInput) GoString() string {
1144	return s.String()
1145}
1146
1147// Validate inspects the fields of the type to determine if they are valid.
1148func (s *DescribeScalingPlanResourcesInput) Validate() error {
1149	invalidParams := request.ErrInvalidParams{Context: "DescribeScalingPlanResourcesInput"}
1150	if s.ScalingPlanName == nil {
1151		invalidParams.Add(request.NewErrParamRequired("ScalingPlanName"))
1152	}
1153	if s.ScalingPlanName != nil && len(*s.ScalingPlanName) < 1 {
1154		invalidParams.Add(request.NewErrParamMinLen("ScalingPlanName", 1))
1155	}
1156	if s.ScalingPlanVersion == nil {
1157		invalidParams.Add(request.NewErrParamRequired("ScalingPlanVersion"))
1158	}
1159
1160	if invalidParams.Len() > 0 {
1161		return invalidParams
1162	}
1163	return nil
1164}
1165
1166// SetMaxResults sets the MaxResults field's value.
1167func (s *DescribeScalingPlanResourcesInput) SetMaxResults(v int64) *DescribeScalingPlanResourcesInput {
1168	s.MaxResults = &v
1169	return s
1170}
1171
1172// SetNextToken sets the NextToken field's value.
1173func (s *DescribeScalingPlanResourcesInput) SetNextToken(v string) *DescribeScalingPlanResourcesInput {
1174	s.NextToken = &v
1175	return s
1176}
1177
1178// SetScalingPlanName sets the ScalingPlanName field's value.
1179func (s *DescribeScalingPlanResourcesInput) SetScalingPlanName(v string) *DescribeScalingPlanResourcesInput {
1180	s.ScalingPlanName = &v
1181	return s
1182}
1183
1184// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
1185func (s *DescribeScalingPlanResourcesInput) SetScalingPlanVersion(v int64) *DescribeScalingPlanResourcesInput {
1186	s.ScalingPlanVersion = &v
1187	return s
1188}
1189
1190type DescribeScalingPlanResourcesOutput struct {
1191	_ struct{} `type:"structure"`
1192
1193	// The token required to get the next set of results. This value is null if
1194	// there are no more results to return.
1195	NextToken *string `type:"string"`
1196
1197	// Information about the scalable resources.
1198	ScalingPlanResources []*ScalingPlanResource `type:"list"`
1199}
1200
1201// String returns the string representation
1202func (s DescribeScalingPlanResourcesOutput) String() string {
1203	return awsutil.Prettify(s)
1204}
1205
1206// GoString returns the string representation
1207func (s DescribeScalingPlanResourcesOutput) GoString() string {
1208	return s.String()
1209}
1210
1211// SetNextToken sets the NextToken field's value.
1212func (s *DescribeScalingPlanResourcesOutput) SetNextToken(v string) *DescribeScalingPlanResourcesOutput {
1213	s.NextToken = &v
1214	return s
1215}
1216
1217// SetScalingPlanResources sets the ScalingPlanResources field's value.
1218func (s *DescribeScalingPlanResourcesOutput) SetScalingPlanResources(v []*ScalingPlanResource) *DescribeScalingPlanResourcesOutput {
1219	s.ScalingPlanResources = v
1220	return s
1221}
1222
1223type DescribeScalingPlansInput struct {
1224	_ struct{} `type:"structure"`
1225
1226	// The sources for the applications (up to 10). If you specify scaling plan
1227	// names, you cannot specify application sources.
1228	ApplicationSources []*ApplicationSource `type:"list"`
1229
1230	// The maximum number of scalable resources to return. This value can be between
1231	// 1 and 50. The default value is 50.
1232	MaxResults *int64 `type:"integer"`
1233
1234	// The token for the next set of results.
1235	NextToken *string `type:"string"`
1236
1237	// The names of the scaling plans (up to 10). If you specify application sources,
1238	// you cannot specify scaling plan names.
1239	ScalingPlanNames []*string `type:"list"`
1240
1241	// The version number of the scaling plan. If you specify a scaling plan version,
1242	// you must also specify a scaling plan name.
1243	ScalingPlanVersion *int64 `type:"long"`
1244}
1245
1246// String returns the string representation
1247func (s DescribeScalingPlansInput) String() string {
1248	return awsutil.Prettify(s)
1249}
1250
1251// GoString returns the string representation
1252func (s DescribeScalingPlansInput) GoString() string {
1253	return s.String()
1254}
1255
1256// Validate inspects the fields of the type to determine if they are valid.
1257func (s *DescribeScalingPlansInput) Validate() error {
1258	invalidParams := request.ErrInvalidParams{Context: "DescribeScalingPlansInput"}
1259	if s.ApplicationSources != nil {
1260		for i, v := range s.ApplicationSources {
1261			if v == nil {
1262				continue
1263			}
1264			if err := v.Validate(); err != nil {
1265				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ApplicationSources", i), err.(request.ErrInvalidParams))
1266			}
1267		}
1268	}
1269
1270	if invalidParams.Len() > 0 {
1271		return invalidParams
1272	}
1273	return nil
1274}
1275
1276// SetApplicationSources sets the ApplicationSources field's value.
1277func (s *DescribeScalingPlansInput) SetApplicationSources(v []*ApplicationSource) *DescribeScalingPlansInput {
1278	s.ApplicationSources = v
1279	return s
1280}
1281
1282// SetMaxResults sets the MaxResults field's value.
1283func (s *DescribeScalingPlansInput) SetMaxResults(v int64) *DescribeScalingPlansInput {
1284	s.MaxResults = &v
1285	return s
1286}
1287
1288// SetNextToken sets the NextToken field's value.
1289func (s *DescribeScalingPlansInput) SetNextToken(v string) *DescribeScalingPlansInput {
1290	s.NextToken = &v
1291	return s
1292}
1293
1294// SetScalingPlanNames sets the ScalingPlanNames field's value.
1295func (s *DescribeScalingPlansInput) SetScalingPlanNames(v []*string) *DescribeScalingPlansInput {
1296	s.ScalingPlanNames = v
1297	return s
1298}
1299
1300// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
1301func (s *DescribeScalingPlansInput) SetScalingPlanVersion(v int64) *DescribeScalingPlansInput {
1302	s.ScalingPlanVersion = &v
1303	return s
1304}
1305
1306type DescribeScalingPlansOutput struct {
1307	_ struct{} `type:"structure"`
1308
1309	// The token required to get the next set of results. This value is null if
1310	// there are no more results to return.
1311	NextToken *string `type:"string"`
1312
1313	// Information about the scaling plans.
1314	ScalingPlans []*ScalingPlan `type:"list"`
1315}
1316
1317// String returns the string representation
1318func (s DescribeScalingPlansOutput) String() string {
1319	return awsutil.Prettify(s)
1320}
1321
1322// GoString returns the string representation
1323func (s DescribeScalingPlansOutput) GoString() string {
1324	return s.String()
1325}
1326
1327// SetNextToken sets the NextToken field's value.
1328func (s *DescribeScalingPlansOutput) SetNextToken(v string) *DescribeScalingPlansOutput {
1329	s.NextToken = &v
1330	return s
1331}
1332
1333// SetScalingPlans sets the ScalingPlans field's value.
1334func (s *DescribeScalingPlansOutput) SetScalingPlans(v []*ScalingPlan) *DescribeScalingPlansOutput {
1335	s.ScalingPlans = v
1336	return s
1337}
1338
1339type GetScalingPlanResourceForecastDataInput struct {
1340	_ struct{} `type:"structure"`
1341
1342	// The exclusive end time of the time range for the forecast data to get. The
1343	// maximum time duration between the start and end time is seven days.
1344	//
1345	// Although this parameter can accept a date and time that is more than two
1346	// days in the future, the availability of forecast data has limits. AWS Auto
1347	// Scaling only issues forecasts for periods of two days in advance.
1348	//
1349	// EndTime is a required field
1350	EndTime *time.Time `type:"timestamp" required:"true"`
1351
1352	// The type of forecast data to get.
1353	//
1354	//    * LoadForecast: The load metric forecast.
1355	//
1356	//    * CapacityForecast: The capacity forecast.
1357	//
1358	//    * ScheduledActionMinCapacity: The minimum capacity for each scheduled
1359	//    scaling action. This data is calculated as the larger of two values: the
1360	//    capacity forecast or the minimum capacity in the scaling instruction.
1361	//
1362	//    * ScheduledActionMaxCapacity: The maximum capacity for each scheduled
1363	//    scaling action. The calculation used is determined by the predictive scaling
1364	//    maximum capacity behavior setting in the scaling instruction.
1365	//
1366	// ForecastDataType is a required field
1367	ForecastDataType *string `type:"string" required:"true" enum:"ForecastDataType"`
1368
1369	// The ID of the resource. This string consists of the resource type and unique
1370	// identifier.
1371	//
1372	//    * Auto Scaling group - The resource type is autoScalingGroup and the unique
1373	//    identifier is the name of the Auto Scaling group. Example: autoScalingGroup/my-asg.
1374	//
1375	//    * ECS service - The resource type is service and the unique identifier
1376	//    is the cluster name and service name. Example: service/default/sample-webapp.
1377	//
1378	//    * Spot Fleet request - The resource type is spot-fleet-request and the
1379	//    unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
1380	//
1381	//    * DynamoDB table - The resource type is table and the unique identifier
1382	//    is the resource ID. Example: table/my-table.
1383	//
1384	//    * DynamoDB global secondary index - The resource type is index and the
1385	//    unique identifier is the resource ID. Example: table/my-table/index/my-table-index.
1386	//
1387	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
1388	//    is the cluster name. Example: cluster:my-db-cluster.
1389	//
1390	// ResourceId is a required field
1391	ResourceId *string `type:"string" required:"true"`
1392
1393	// The scalable dimension for the resource.
1394	//
1395	// ScalableDimension is a required field
1396	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
1397
1398	// The name of the scaling plan.
1399	//
1400	// ScalingPlanName is a required field
1401	ScalingPlanName *string `min:"1" type:"string" required:"true"`
1402
1403	// The version number of the scaling plan.
1404	//
1405	// ScalingPlanVersion is a required field
1406	ScalingPlanVersion *int64 `type:"long" required:"true"`
1407
1408	// The namespace of the AWS service.
1409	//
1410	// ServiceNamespace is a required field
1411	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
1412
1413	// The inclusive start time of the time range for the forecast data to get.
1414	// The date and time can be at most 56 days before the current date and time.
1415	//
1416	// StartTime is a required field
1417	StartTime *time.Time `type:"timestamp" required:"true"`
1418}
1419
1420// String returns the string representation
1421func (s GetScalingPlanResourceForecastDataInput) String() string {
1422	return awsutil.Prettify(s)
1423}
1424
1425// GoString returns the string representation
1426func (s GetScalingPlanResourceForecastDataInput) GoString() string {
1427	return s.String()
1428}
1429
1430// Validate inspects the fields of the type to determine if they are valid.
1431func (s *GetScalingPlanResourceForecastDataInput) Validate() error {
1432	invalidParams := request.ErrInvalidParams{Context: "GetScalingPlanResourceForecastDataInput"}
1433	if s.EndTime == nil {
1434		invalidParams.Add(request.NewErrParamRequired("EndTime"))
1435	}
1436	if s.ForecastDataType == nil {
1437		invalidParams.Add(request.NewErrParamRequired("ForecastDataType"))
1438	}
1439	if s.ResourceId == nil {
1440		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
1441	}
1442	if s.ScalableDimension == nil {
1443		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
1444	}
1445	if s.ScalingPlanName == nil {
1446		invalidParams.Add(request.NewErrParamRequired("ScalingPlanName"))
1447	}
1448	if s.ScalingPlanName != nil && len(*s.ScalingPlanName) < 1 {
1449		invalidParams.Add(request.NewErrParamMinLen("ScalingPlanName", 1))
1450	}
1451	if s.ScalingPlanVersion == nil {
1452		invalidParams.Add(request.NewErrParamRequired("ScalingPlanVersion"))
1453	}
1454	if s.ServiceNamespace == nil {
1455		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
1456	}
1457	if s.StartTime == nil {
1458		invalidParams.Add(request.NewErrParamRequired("StartTime"))
1459	}
1460
1461	if invalidParams.Len() > 0 {
1462		return invalidParams
1463	}
1464	return nil
1465}
1466
1467// SetEndTime sets the EndTime field's value.
1468func (s *GetScalingPlanResourceForecastDataInput) SetEndTime(v time.Time) *GetScalingPlanResourceForecastDataInput {
1469	s.EndTime = &v
1470	return s
1471}
1472
1473// SetForecastDataType sets the ForecastDataType field's value.
1474func (s *GetScalingPlanResourceForecastDataInput) SetForecastDataType(v string) *GetScalingPlanResourceForecastDataInput {
1475	s.ForecastDataType = &v
1476	return s
1477}
1478
1479// SetResourceId sets the ResourceId field's value.
1480func (s *GetScalingPlanResourceForecastDataInput) SetResourceId(v string) *GetScalingPlanResourceForecastDataInput {
1481	s.ResourceId = &v
1482	return s
1483}
1484
1485// SetScalableDimension sets the ScalableDimension field's value.
1486func (s *GetScalingPlanResourceForecastDataInput) SetScalableDimension(v string) *GetScalingPlanResourceForecastDataInput {
1487	s.ScalableDimension = &v
1488	return s
1489}
1490
1491// SetScalingPlanName sets the ScalingPlanName field's value.
1492func (s *GetScalingPlanResourceForecastDataInput) SetScalingPlanName(v string) *GetScalingPlanResourceForecastDataInput {
1493	s.ScalingPlanName = &v
1494	return s
1495}
1496
1497// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
1498func (s *GetScalingPlanResourceForecastDataInput) SetScalingPlanVersion(v int64) *GetScalingPlanResourceForecastDataInput {
1499	s.ScalingPlanVersion = &v
1500	return s
1501}
1502
1503// SetServiceNamespace sets the ServiceNamespace field's value.
1504func (s *GetScalingPlanResourceForecastDataInput) SetServiceNamespace(v string) *GetScalingPlanResourceForecastDataInput {
1505	s.ServiceNamespace = &v
1506	return s
1507}
1508
1509// SetStartTime sets the StartTime field's value.
1510func (s *GetScalingPlanResourceForecastDataInput) SetStartTime(v time.Time) *GetScalingPlanResourceForecastDataInput {
1511	s.StartTime = &v
1512	return s
1513}
1514
1515type GetScalingPlanResourceForecastDataOutput struct {
1516	_ struct{} `type:"structure"`
1517
1518	// The data points to return.
1519	//
1520	// Datapoints is a required field
1521	Datapoints []*Datapoint `type:"list" required:"true"`
1522}
1523
1524// String returns the string representation
1525func (s GetScalingPlanResourceForecastDataOutput) String() string {
1526	return awsutil.Prettify(s)
1527}
1528
1529// GoString returns the string representation
1530func (s GetScalingPlanResourceForecastDataOutput) GoString() string {
1531	return s.String()
1532}
1533
1534// SetDatapoints sets the Datapoints field's value.
1535func (s *GetScalingPlanResourceForecastDataOutput) SetDatapoints(v []*Datapoint) *GetScalingPlanResourceForecastDataOutput {
1536	s.Datapoints = v
1537	return s
1538}
1539
1540// The service encountered an internal error.
1541type InternalServiceException struct {
1542	_            struct{}                  `type:"structure"`
1543	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1544
1545	Message_ *string `locationName:"Message" type:"string"`
1546}
1547
1548// String returns the string representation
1549func (s InternalServiceException) String() string {
1550	return awsutil.Prettify(s)
1551}
1552
1553// GoString returns the string representation
1554func (s InternalServiceException) GoString() string {
1555	return s.String()
1556}
1557
1558func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
1559	return &InternalServiceException{
1560		RespMetadata: v,
1561	}
1562}
1563
1564// Code returns the exception type name.
1565func (s *InternalServiceException) Code() string {
1566	return "InternalServiceException"
1567}
1568
1569// Message returns the exception's message.
1570func (s *InternalServiceException) Message() string {
1571	if s.Message_ != nil {
1572		return *s.Message_
1573	}
1574	return ""
1575}
1576
1577// OrigErr always returns nil, satisfies awserr.Error interface.
1578func (s *InternalServiceException) OrigErr() error {
1579	return nil
1580}
1581
1582func (s *InternalServiceException) Error() string {
1583	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1584}
1585
1586// Status code returns the HTTP status code for the request's response error.
1587func (s *InternalServiceException) StatusCode() int {
1588	return s.RespMetadata.StatusCode
1589}
1590
1591// RequestID returns the service's response RequestID for request.
1592func (s *InternalServiceException) RequestID() string {
1593	return s.RespMetadata.RequestID
1594}
1595
1596// The token provided is not valid.
1597type InvalidNextTokenException struct {
1598	_            struct{}                  `type:"structure"`
1599	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1600
1601	Message_ *string `locationName:"Message" type:"string"`
1602}
1603
1604// String returns the string representation
1605func (s InvalidNextTokenException) String() string {
1606	return awsutil.Prettify(s)
1607}
1608
1609// GoString returns the string representation
1610func (s InvalidNextTokenException) GoString() string {
1611	return s.String()
1612}
1613
1614func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
1615	return &InvalidNextTokenException{
1616		RespMetadata: v,
1617	}
1618}
1619
1620// Code returns the exception type name.
1621func (s *InvalidNextTokenException) Code() string {
1622	return "InvalidNextTokenException"
1623}
1624
1625// Message returns the exception's message.
1626func (s *InvalidNextTokenException) Message() string {
1627	if s.Message_ != nil {
1628		return *s.Message_
1629	}
1630	return ""
1631}
1632
1633// OrigErr always returns nil, satisfies awserr.Error interface.
1634func (s *InvalidNextTokenException) OrigErr() error {
1635	return nil
1636}
1637
1638func (s *InvalidNextTokenException) Error() string {
1639	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1640}
1641
1642// Status code returns the HTTP status code for the request's response error.
1643func (s *InvalidNextTokenException) StatusCode() int {
1644	return s.RespMetadata.StatusCode
1645}
1646
1647// RequestID returns the service's response RequestID for request.
1648func (s *InvalidNextTokenException) RequestID() string {
1649	return s.RespMetadata.RequestID
1650}
1651
1652// Your account exceeded a limit. This exception is thrown when a per-account
1653// resource limit is exceeded.
1654type LimitExceededException struct {
1655	_            struct{}                  `type:"structure"`
1656	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1657
1658	Message_ *string `locationName:"Message" type:"string"`
1659}
1660
1661// String returns the string representation
1662func (s LimitExceededException) String() string {
1663	return awsutil.Prettify(s)
1664}
1665
1666// GoString returns the string representation
1667func (s LimitExceededException) GoString() string {
1668	return s.String()
1669}
1670
1671func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
1672	return &LimitExceededException{
1673		RespMetadata: v,
1674	}
1675}
1676
1677// Code returns the exception type name.
1678func (s *LimitExceededException) Code() string {
1679	return "LimitExceededException"
1680}
1681
1682// Message returns the exception's message.
1683func (s *LimitExceededException) Message() string {
1684	if s.Message_ != nil {
1685		return *s.Message_
1686	}
1687	return ""
1688}
1689
1690// OrigErr always returns nil, satisfies awserr.Error interface.
1691func (s *LimitExceededException) OrigErr() error {
1692	return nil
1693}
1694
1695func (s *LimitExceededException) Error() string {
1696	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1697}
1698
1699// Status code returns the HTTP status code for the request's response error.
1700func (s *LimitExceededException) StatusCode() int {
1701	return s.RespMetadata.StatusCode
1702}
1703
1704// RequestID returns the service's response RequestID for request.
1705func (s *LimitExceededException) RequestID() string {
1706	return s.RespMetadata.RequestID
1707}
1708
1709// Represents a dimension for a customized metric.
1710type MetricDimension struct {
1711	_ struct{} `type:"structure"`
1712
1713	// The name of the dimension.
1714	//
1715	// Name is a required field
1716	Name *string `type:"string" required:"true"`
1717
1718	// The value of the dimension.
1719	//
1720	// Value is a required field
1721	Value *string `type:"string" required:"true"`
1722}
1723
1724// String returns the string representation
1725func (s MetricDimension) String() string {
1726	return awsutil.Prettify(s)
1727}
1728
1729// GoString returns the string representation
1730func (s MetricDimension) GoString() string {
1731	return s.String()
1732}
1733
1734// Validate inspects the fields of the type to determine if they are valid.
1735func (s *MetricDimension) Validate() error {
1736	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
1737	if s.Name == nil {
1738		invalidParams.Add(request.NewErrParamRequired("Name"))
1739	}
1740	if s.Value == nil {
1741		invalidParams.Add(request.NewErrParamRequired("Value"))
1742	}
1743
1744	if invalidParams.Len() > 0 {
1745		return invalidParams
1746	}
1747	return nil
1748}
1749
1750// SetName sets the Name field's value.
1751func (s *MetricDimension) SetName(v string) *MetricDimension {
1752	s.Name = &v
1753	return s
1754}
1755
1756// SetValue sets the Value field's value.
1757func (s *MetricDimension) SetValue(v string) *MetricDimension {
1758	s.Value = &v
1759	return s
1760}
1761
1762// The specified object could not be found.
1763type ObjectNotFoundException struct {
1764	_            struct{}                  `type:"structure"`
1765	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1766
1767	Message_ *string `locationName:"Message" type:"string"`
1768}
1769
1770// String returns the string representation
1771func (s ObjectNotFoundException) String() string {
1772	return awsutil.Prettify(s)
1773}
1774
1775// GoString returns the string representation
1776func (s ObjectNotFoundException) GoString() string {
1777	return s.String()
1778}
1779
1780func newErrorObjectNotFoundException(v protocol.ResponseMetadata) error {
1781	return &ObjectNotFoundException{
1782		RespMetadata: v,
1783	}
1784}
1785
1786// Code returns the exception type name.
1787func (s *ObjectNotFoundException) Code() string {
1788	return "ObjectNotFoundException"
1789}
1790
1791// Message returns the exception's message.
1792func (s *ObjectNotFoundException) Message() string {
1793	if s.Message_ != nil {
1794		return *s.Message_
1795	}
1796	return ""
1797}
1798
1799// OrigErr always returns nil, satisfies awserr.Error interface.
1800func (s *ObjectNotFoundException) OrigErr() error {
1801	return nil
1802}
1803
1804func (s *ObjectNotFoundException) Error() string {
1805	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1806}
1807
1808// Status code returns the HTTP status code for the request's response error.
1809func (s *ObjectNotFoundException) StatusCode() int {
1810	return s.RespMetadata.StatusCode
1811}
1812
1813// RequestID returns the service's response RequestID for request.
1814func (s *ObjectNotFoundException) RequestID() string {
1815	return s.RespMetadata.RequestID
1816}
1817
1818// Represents a predefined metric that can be used for predictive scaling.
1819type PredefinedLoadMetricSpecification struct {
1820	_ struct{} `type:"structure"`
1821
1822	// The metric type.
1823	//
1824	// PredefinedLoadMetricType is a required field
1825	PredefinedLoadMetricType *string `type:"string" required:"true" enum:"LoadMetricType"`
1826
1827	// Identifies the resource associated with the metric type. You can't specify
1828	// a resource label unless the metric type is ALBRequestCountPerTarget and there
1829	// is a target group for an Application Load Balancer attached to the Auto Scaling
1830	// group.
1831	//
1832	// The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>,
1833	// where:
1834	//
1835	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
1836	//    the load balancer ARN.
1837	//
1838	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
1839	//    of the target group ARN.
1840	ResourceLabel *string `min:"1" type:"string"`
1841}
1842
1843// String returns the string representation
1844func (s PredefinedLoadMetricSpecification) String() string {
1845	return awsutil.Prettify(s)
1846}
1847
1848// GoString returns the string representation
1849func (s PredefinedLoadMetricSpecification) GoString() string {
1850	return s.String()
1851}
1852
1853// Validate inspects the fields of the type to determine if they are valid.
1854func (s *PredefinedLoadMetricSpecification) Validate() error {
1855	invalidParams := request.ErrInvalidParams{Context: "PredefinedLoadMetricSpecification"}
1856	if s.PredefinedLoadMetricType == nil {
1857		invalidParams.Add(request.NewErrParamRequired("PredefinedLoadMetricType"))
1858	}
1859	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
1860		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
1861	}
1862
1863	if invalidParams.Len() > 0 {
1864		return invalidParams
1865	}
1866	return nil
1867}
1868
1869// SetPredefinedLoadMetricType sets the PredefinedLoadMetricType field's value.
1870func (s *PredefinedLoadMetricSpecification) SetPredefinedLoadMetricType(v string) *PredefinedLoadMetricSpecification {
1871	s.PredefinedLoadMetricType = &v
1872	return s
1873}
1874
1875// SetResourceLabel sets the ResourceLabel field's value.
1876func (s *PredefinedLoadMetricSpecification) SetResourceLabel(v string) *PredefinedLoadMetricSpecification {
1877	s.ResourceLabel = &v
1878	return s
1879}
1880
1881// Represents a predefined metric that can be used for dynamic scaling as part
1882// of a target tracking scaling policy.
1883type PredefinedScalingMetricSpecification struct {
1884	_ struct{} `type:"structure"`
1885
1886	// The metric type. The ALBRequestCountPerTarget metric type applies only to
1887	// Auto Scaling groups, Spot Fleet requests, and ECS services.
1888	//
1889	// PredefinedScalingMetricType is a required field
1890	PredefinedScalingMetricType *string `type:"string" required:"true" enum:"ScalingMetricType"`
1891
1892	// Identifies the resource associated with the metric type. You can't specify
1893	// a resource label unless the metric type is ALBRequestCountPerTarget and there
1894	// is a target group for an Application Load Balancer attached to the Auto Scaling
1895	// group, Spot Fleet request, or ECS service.
1896	//
1897	// The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>,
1898	// where:
1899	//
1900	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
1901	//    the load balancer ARN.
1902	//
1903	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
1904	//    of the target group ARN.
1905	ResourceLabel *string `min:"1" type:"string"`
1906}
1907
1908// String returns the string representation
1909func (s PredefinedScalingMetricSpecification) String() string {
1910	return awsutil.Prettify(s)
1911}
1912
1913// GoString returns the string representation
1914func (s PredefinedScalingMetricSpecification) GoString() string {
1915	return s.String()
1916}
1917
1918// Validate inspects the fields of the type to determine if they are valid.
1919func (s *PredefinedScalingMetricSpecification) Validate() error {
1920	invalidParams := request.ErrInvalidParams{Context: "PredefinedScalingMetricSpecification"}
1921	if s.PredefinedScalingMetricType == nil {
1922		invalidParams.Add(request.NewErrParamRequired("PredefinedScalingMetricType"))
1923	}
1924	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
1925		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
1926	}
1927
1928	if invalidParams.Len() > 0 {
1929		return invalidParams
1930	}
1931	return nil
1932}
1933
1934// SetPredefinedScalingMetricType sets the PredefinedScalingMetricType field's value.
1935func (s *PredefinedScalingMetricSpecification) SetPredefinedScalingMetricType(v string) *PredefinedScalingMetricSpecification {
1936	s.PredefinedScalingMetricType = &v
1937	return s
1938}
1939
1940// SetResourceLabel sets the ResourceLabel field's value.
1941func (s *PredefinedScalingMetricSpecification) SetResourceLabel(v string) *PredefinedScalingMetricSpecification {
1942	s.ResourceLabel = &v
1943	return s
1944}
1945
1946// Describes a scaling instruction for a scalable resource.
1947//
1948// The scaling instruction is used in combination with a scaling plan, which
1949// is a set of instructions for configuring dynamic scaling and predictive scaling
1950// for the scalable resources in your application. Each scaling instruction
1951// applies to one resource.
1952//
1953// AWS Auto Scaling creates target tracking scaling policies based on the scaling
1954// instructions. Target tracking scaling policies adjust the capacity of your
1955// scalable resource as required to maintain resource utilization at the target
1956// value that you specified.
1957//
1958// AWS Auto Scaling also configures predictive scaling for your Amazon EC2 Auto
1959// Scaling groups using a subset of parameters, including the load metric, the
1960// scaling metric, the target value for the scaling metric, the predictive scaling
1961// mode (forecast and scale or forecast only), and the desired behavior when
1962// the forecast capacity exceeds the maximum capacity of the resource. With
1963// predictive scaling, AWS Auto Scaling generates forecasts with traffic predictions
1964// for the two days ahead and schedules scaling actions that proactively add
1965// and remove resource capacity to match the forecast.
1966//
1967// We recommend waiting a minimum of 24 hours after creating an Auto Scaling
1968// group to configure predictive scaling. At minimum, there must be 24 hours
1969// of historical data to generate a forecast.
1970//
1971// For more information, see Getting Started with AWS Auto Scaling (https://docs.aws.amazon.com/autoscaling/plans/userguide/auto-scaling-getting-started.html).
1972type ScalingInstruction struct {
1973	_ struct{} `type:"structure"`
1974
1975	// The customized load metric to use for predictive scaling. This parameter
1976	// or a PredefinedLoadMetricSpecification is required when configuring predictive
1977	// scaling, and cannot be used otherwise.
1978	CustomizedLoadMetricSpecification *CustomizedLoadMetricSpecification `type:"structure"`
1979
1980	// Controls whether dynamic scaling by AWS Auto Scaling is disabled. When dynamic
1981	// scaling is enabled, AWS Auto Scaling creates target tracking scaling policies
1982	// based on the specified target tracking configurations.
1983	//
1984	// The default is enabled (false).
1985	DisableDynamicScaling *bool `type:"boolean"`
1986
1987	// The maximum capacity of the resource. The exception to this upper limit is
1988	// if you specify a non-default setting for PredictiveScalingMaxCapacityBehavior.
1989	//
1990	// MaxCapacity is a required field
1991	MaxCapacity *int64 `type:"integer" required:"true"`
1992
1993	// The minimum capacity of the resource.
1994	//
1995	// MinCapacity is a required field
1996	MinCapacity *int64 `type:"integer" required:"true"`
1997
1998	// The predefined load metric to use for predictive scaling. This parameter
1999	// or a CustomizedLoadMetricSpecification is required when configuring predictive
2000	// scaling, and cannot be used otherwise.
2001	PredefinedLoadMetricSpecification *PredefinedLoadMetricSpecification `type:"structure"`
2002
2003	// Defines the behavior that should be applied if the forecast capacity approaches
2004	// or exceeds the maximum capacity specified for the resource. The default value
2005	// is SetForecastCapacityToMaxCapacity.
2006	//
2007	// The following are possible values:
2008	//
2009	//    * SetForecastCapacityToMaxCapacity - AWS Auto Scaling cannot scale resource
2010	//    capacity higher than the maximum capacity. The maximum capacity is enforced
2011	//    as a hard limit.
2012	//
2013	//    * SetMaxCapacityToForecastCapacity - AWS Auto Scaling may scale resource
2014	//    capacity higher than the maximum capacity to equal but not exceed forecast
2015	//    capacity.
2016	//
2017	//    * SetMaxCapacityAboveForecastCapacity - AWS Auto Scaling may scale resource
2018	//    capacity higher than the maximum capacity by a specified buffer value.
2019	//    The intention is to give the target tracking scaling policy extra capacity
2020	//    if unexpected traffic occurs.
2021	//
2022	// Only valid when configuring predictive scaling.
2023	PredictiveScalingMaxCapacityBehavior *string `type:"string" enum:"PredictiveScalingMaxCapacityBehavior"`
2024
2025	// The size of the capacity buffer to use when the forecast capacity is close
2026	// to or exceeds the maximum capacity. The value is specified as a percentage
2027	// relative to the forecast capacity. For example, if the buffer is 10, this
2028	// means a 10 percent buffer, such that if the forecast capacity is 50, and
2029	// the maximum capacity is 40, then the effective maximum capacity is 55.
2030	//
2031	// Only valid when configuring predictive scaling. Required if the PredictiveScalingMaxCapacityBehavior
2032	// is set to SetMaxCapacityAboveForecastCapacity, and cannot be used otherwise.
2033	//
2034	// The range is 1-100.
2035	PredictiveScalingMaxCapacityBuffer *int64 `type:"integer"`
2036
2037	// The predictive scaling mode. The default value is ForecastAndScale. Otherwise,
2038	// AWS Auto Scaling forecasts capacity but does not create any scheduled scaling
2039	// actions based on the capacity forecast.
2040	PredictiveScalingMode *string `type:"string" enum:"PredictiveScalingMode"`
2041
2042	// The ID of the resource. This string consists of the resource type and unique
2043	// identifier.
2044	//
2045	//    * Auto Scaling group - The resource type is autoScalingGroup and the unique
2046	//    identifier is the name of the Auto Scaling group. Example: autoScalingGroup/my-asg.
2047	//
2048	//    * ECS service - The resource type is service and the unique identifier
2049	//    is the cluster name and service name. Example: service/default/sample-webapp.
2050	//
2051	//    * Spot Fleet request - The resource type is spot-fleet-request and the
2052	//    unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
2053	//
2054	//    * DynamoDB table - The resource type is table and the unique identifier
2055	//    is the resource ID. Example: table/my-table.
2056	//
2057	//    * DynamoDB global secondary index - The resource type is index and the
2058	//    unique identifier is the resource ID. Example: table/my-table/index/my-table-index.
2059	//
2060	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
2061	//    is the cluster name. Example: cluster:my-db-cluster.
2062	//
2063	// ResourceId is a required field
2064	ResourceId *string `min:"1" type:"string" required:"true"`
2065
2066	// The scalable dimension associated with the resource.
2067	//
2068	//    * autoscaling:autoScalingGroup:DesiredCapacity - The desired capacity
2069	//    of an Auto Scaling group.
2070	//
2071	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
2072	//
2073	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
2074	//    Fleet request.
2075	//
2076	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
2077	//    a DynamoDB table.
2078	//
2079	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
2080	//    a DynamoDB table.
2081	//
2082	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
2083	//    a DynamoDB global secondary index.
2084	//
2085	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
2086	//    a DynamoDB global secondary index.
2087	//
2088	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
2089	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
2090	//    edition.
2091	//
2092	// ScalableDimension is a required field
2093	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
2094
2095	// Controls whether a resource's externally created scaling policies are kept
2096	// or replaced.
2097	//
2098	// The default value is KeepExternalPolicies. If the parameter is set to ReplaceExternalPolicies,
2099	// any scaling policies that are external to AWS Auto Scaling are deleted and
2100	// new target tracking scaling policies created.
2101	//
2102	// Only valid when configuring dynamic scaling.
2103	//
2104	// Condition: The number of existing policies to be replaced must be less than
2105	// or equal to 50. If there are more than 50 policies to be replaced, AWS Auto
2106	// Scaling keeps all existing policies and does not create new ones.
2107	ScalingPolicyUpdateBehavior *string `type:"string" enum:"ScalingPolicyUpdateBehavior"`
2108
2109	// The amount of time, in seconds, to buffer the run time of scheduled scaling
2110	// actions when scaling out. For example, if the forecast says to add capacity
2111	// at 10:00 AM, and the buffer time is 5 minutes, then the run time of the corresponding
2112	// scheduled scaling action will be 9:55 AM. The intention is to give resources
2113	// time to be provisioned. For example, it can take a few minutes to launch
2114	// an EC2 instance. The actual amount of time required depends on several factors,
2115	// such as the size of the instance and whether there are startup scripts to
2116	// complete.
2117	//
2118	// The value must be less than the forecast interval duration of 3600 seconds
2119	// (60 minutes). The default is 300 seconds.
2120	//
2121	// Only valid when configuring predictive scaling.
2122	ScheduledActionBufferTime *int64 `type:"integer"`
2123
2124	// The namespace of the AWS service.
2125	//
2126	// ServiceNamespace is a required field
2127	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
2128
2129	// The structure that defines new target tracking configurations (up to 10).
2130	// Each of these structures includes a specific scaling metric and a target
2131	// value for the metric, along with various parameters to use with dynamic scaling.
2132	//
2133	// With predictive scaling and dynamic scaling, the resource scales based on
2134	// the target tracking configuration that provides the largest capacity for
2135	// both scale in and scale out.
2136	//
2137	// Condition: The scaling metric must be unique across target tracking configurations.
2138	//
2139	// TargetTrackingConfigurations is a required field
2140	TargetTrackingConfigurations []*TargetTrackingConfiguration `type:"list" required:"true"`
2141}
2142
2143// String returns the string representation
2144func (s ScalingInstruction) String() string {
2145	return awsutil.Prettify(s)
2146}
2147
2148// GoString returns the string representation
2149func (s ScalingInstruction) GoString() string {
2150	return s.String()
2151}
2152
2153// Validate inspects the fields of the type to determine if they are valid.
2154func (s *ScalingInstruction) Validate() error {
2155	invalidParams := request.ErrInvalidParams{Context: "ScalingInstruction"}
2156	if s.MaxCapacity == nil {
2157		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
2158	}
2159	if s.MinCapacity == nil {
2160		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
2161	}
2162	if s.ResourceId == nil {
2163		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2164	}
2165	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
2166		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
2167	}
2168	if s.ScalableDimension == nil {
2169		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
2170	}
2171	if s.ServiceNamespace == nil {
2172		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
2173	}
2174	if s.TargetTrackingConfigurations == nil {
2175		invalidParams.Add(request.NewErrParamRequired("TargetTrackingConfigurations"))
2176	}
2177	if s.CustomizedLoadMetricSpecification != nil {
2178		if err := s.CustomizedLoadMetricSpecification.Validate(); err != nil {
2179			invalidParams.AddNested("CustomizedLoadMetricSpecification", err.(request.ErrInvalidParams))
2180		}
2181	}
2182	if s.PredefinedLoadMetricSpecification != nil {
2183		if err := s.PredefinedLoadMetricSpecification.Validate(); err != nil {
2184			invalidParams.AddNested("PredefinedLoadMetricSpecification", err.(request.ErrInvalidParams))
2185		}
2186	}
2187	if s.TargetTrackingConfigurations != nil {
2188		for i, v := range s.TargetTrackingConfigurations {
2189			if v == nil {
2190				continue
2191			}
2192			if err := v.Validate(); err != nil {
2193				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetTrackingConfigurations", i), err.(request.ErrInvalidParams))
2194			}
2195		}
2196	}
2197
2198	if invalidParams.Len() > 0 {
2199		return invalidParams
2200	}
2201	return nil
2202}
2203
2204// SetCustomizedLoadMetricSpecification sets the CustomizedLoadMetricSpecification field's value.
2205func (s *ScalingInstruction) SetCustomizedLoadMetricSpecification(v *CustomizedLoadMetricSpecification) *ScalingInstruction {
2206	s.CustomizedLoadMetricSpecification = v
2207	return s
2208}
2209
2210// SetDisableDynamicScaling sets the DisableDynamicScaling field's value.
2211func (s *ScalingInstruction) SetDisableDynamicScaling(v bool) *ScalingInstruction {
2212	s.DisableDynamicScaling = &v
2213	return s
2214}
2215
2216// SetMaxCapacity sets the MaxCapacity field's value.
2217func (s *ScalingInstruction) SetMaxCapacity(v int64) *ScalingInstruction {
2218	s.MaxCapacity = &v
2219	return s
2220}
2221
2222// SetMinCapacity sets the MinCapacity field's value.
2223func (s *ScalingInstruction) SetMinCapacity(v int64) *ScalingInstruction {
2224	s.MinCapacity = &v
2225	return s
2226}
2227
2228// SetPredefinedLoadMetricSpecification sets the PredefinedLoadMetricSpecification field's value.
2229func (s *ScalingInstruction) SetPredefinedLoadMetricSpecification(v *PredefinedLoadMetricSpecification) *ScalingInstruction {
2230	s.PredefinedLoadMetricSpecification = v
2231	return s
2232}
2233
2234// SetPredictiveScalingMaxCapacityBehavior sets the PredictiveScalingMaxCapacityBehavior field's value.
2235func (s *ScalingInstruction) SetPredictiveScalingMaxCapacityBehavior(v string) *ScalingInstruction {
2236	s.PredictiveScalingMaxCapacityBehavior = &v
2237	return s
2238}
2239
2240// SetPredictiveScalingMaxCapacityBuffer sets the PredictiveScalingMaxCapacityBuffer field's value.
2241func (s *ScalingInstruction) SetPredictiveScalingMaxCapacityBuffer(v int64) *ScalingInstruction {
2242	s.PredictiveScalingMaxCapacityBuffer = &v
2243	return s
2244}
2245
2246// SetPredictiveScalingMode sets the PredictiveScalingMode field's value.
2247func (s *ScalingInstruction) SetPredictiveScalingMode(v string) *ScalingInstruction {
2248	s.PredictiveScalingMode = &v
2249	return s
2250}
2251
2252// SetResourceId sets the ResourceId field's value.
2253func (s *ScalingInstruction) SetResourceId(v string) *ScalingInstruction {
2254	s.ResourceId = &v
2255	return s
2256}
2257
2258// SetScalableDimension sets the ScalableDimension field's value.
2259func (s *ScalingInstruction) SetScalableDimension(v string) *ScalingInstruction {
2260	s.ScalableDimension = &v
2261	return s
2262}
2263
2264// SetScalingPolicyUpdateBehavior sets the ScalingPolicyUpdateBehavior field's value.
2265func (s *ScalingInstruction) SetScalingPolicyUpdateBehavior(v string) *ScalingInstruction {
2266	s.ScalingPolicyUpdateBehavior = &v
2267	return s
2268}
2269
2270// SetScheduledActionBufferTime sets the ScheduledActionBufferTime field's value.
2271func (s *ScalingInstruction) SetScheduledActionBufferTime(v int64) *ScalingInstruction {
2272	s.ScheduledActionBufferTime = &v
2273	return s
2274}
2275
2276// SetServiceNamespace sets the ServiceNamespace field's value.
2277func (s *ScalingInstruction) SetServiceNamespace(v string) *ScalingInstruction {
2278	s.ServiceNamespace = &v
2279	return s
2280}
2281
2282// SetTargetTrackingConfigurations sets the TargetTrackingConfigurations field's value.
2283func (s *ScalingInstruction) SetTargetTrackingConfigurations(v []*TargetTrackingConfiguration) *ScalingInstruction {
2284	s.TargetTrackingConfigurations = v
2285	return s
2286}
2287
2288// Represents a scaling plan.
2289type ScalingPlan struct {
2290	_ struct{} `type:"structure"`
2291
2292	// The application source.
2293	//
2294	// ApplicationSource is a required field
2295	ApplicationSource *ApplicationSource `type:"structure" required:"true"`
2296
2297	// The Unix time stamp when the scaling plan was created.
2298	CreationTime *time.Time `type:"timestamp"`
2299
2300	// The scaling instructions.
2301	//
2302	// ScalingInstructions is a required field
2303	ScalingInstructions []*ScalingInstruction `type:"list" required:"true"`
2304
2305	// The name of the scaling plan.
2306	//
2307	// ScalingPlanName is a required field
2308	ScalingPlanName *string `min:"1" type:"string" required:"true"`
2309
2310	// The version number of the scaling plan.
2311	//
2312	// ScalingPlanVersion is a required field
2313	ScalingPlanVersion *int64 `type:"long" required:"true"`
2314
2315	// The status of the scaling plan.
2316	//
2317	//    * Active - The scaling plan is active.
2318	//
2319	//    * ActiveWithProblems - The scaling plan is active, but the scaling configuration
2320	//    for one or more resources could not be applied.
2321	//
2322	//    * CreationInProgress - The scaling plan is being created.
2323	//
2324	//    * CreationFailed - The scaling plan could not be created.
2325	//
2326	//    * DeletionInProgress - The scaling plan is being deleted.
2327	//
2328	//    * DeletionFailed - The scaling plan could not be deleted.
2329	//
2330	//    * UpdateInProgress - The scaling plan is being updated.
2331	//
2332	//    * UpdateFailed - The scaling plan could not be updated.
2333	//
2334	// StatusCode is a required field
2335	StatusCode *string `type:"string" required:"true" enum:"ScalingPlanStatusCode"`
2336
2337	// A simple message about the current status of the scaling plan.
2338	StatusMessage *string `type:"string"`
2339
2340	// The Unix time stamp when the scaling plan entered the current status.
2341	StatusStartTime *time.Time `type:"timestamp"`
2342}
2343
2344// String returns the string representation
2345func (s ScalingPlan) String() string {
2346	return awsutil.Prettify(s)
2347}
2348
2349// GoString returns the string representation
2350func (s ScalingPlan) GoString() string {
2351	return s.String()
2352}
2353
2354// SetApplicationSource sets the ApplicationSource field's value.
2355func (s *ScalingPlan) SetApplicationSource(v *ApplicationSource) *ScalingPlan {
2356	s.ApplicationSource = v
2357	return s
2358}
2359
2360// SetCreationTime sets the CreationTime field's value.
2361func (s *ScalingPlan) SetCreationTime(v time.Time) *ScalingPlan {
2362	s.CreationTime = &v
2363	return s
2364}
2365
2366// SetScalingInstructions sets the ScalingInstructions field's value.
2367func (s *ScalingPlan) SetScalingInstructions(v []*ScalingInstruction) *ScalingPlan {
2368	s.ScalingInstructions = v
2369	return s
2370}
2371
2372// SetScalingPlanName sets the ScalingPlanName field's value.
2373func (s *ScalingPlan) SetScalingPlanName(v string) *ScalingPlan {
2374	s.ScalingPlanName = &v
2375	return s
2376}
2377
2378// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
2379func (s *ScalingPlan) SetScalingPlanVersion(v int64) *ScalingPlan {
2380	s.ScalingPlanVersion = &v
2381	return s
2382}
2383
2384// SetStatusCode sets the StatusCode field's value.
2385func (s *ScalingPlan) SetStatusCode(v string) *ScalingPlan {
2386	s.StatusCode = &v
2387	return s
2388}
2389
2390// SetStatusMessage sets the StatusMessage field's value.
2391func (s *ScalingPlan) SetStatusMessage(v string) *ScalingPlan {
2392	s.StatusMessage = &v
2393	return s
2394}
2395
2396// SetStatusStartTime sets the StatusStartTime field's value.
2397func (s *ScalingPlan) SetStatusStartTime(v time.Time) *ScalingPlan {
2398	s.StatusStartTime = &v
2399	return s
2400}
2401
2402// Represents a scalable resource.
2403type ScalingPlanResource struct {
2404	_ struct{} `type:"structure"`
2405
2406	// The ID of the resource. This string consists of the resource type and unique
2407	// identifier.
2408	//
2409	//    * Auto Scaling group - The resource type is autoScalingGroup and the unique
2410	//    identifier is the name of the Auto Scaling group. Example: autoScalingGroup/my-asg.
2411	//
2412	//    * ECS service - The resource type is service and the unique identifier
2413	//    is the cluster name and service name. Example: service/default/sample-webapp.
2414	//
2415	//    * Spot Fleet request - The resource type is spot-fleet-request and the
2416	//    unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
2417	//
2418	//    * DynamoDB table - The resource type is table and the unique identifier
2419	//    is the resource ID. Example: table/my-table.
2420	//
2421	//    * DynamoDB global secondary index - The resource type is index and the
2422	//    unique identifier is the resource ID. Example: table/my-table/index/my-table-index.
2423	//
2424	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
2425	//    is the cluster name. Example: cluster:my-db-cluster.
2426	//
2427	// ResourceId is a required field
2428	ResourceId *string `min:"1" type:"string" required:"true"`
2429
2430	// The scalable dimension for the resource.
2431	//
2432	//    * autoscaling:autoScalingGroup:DesiredCapacity - The desired capacity
2433	//    of an Auto Scaling group.
2434	//
2435	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
2436	//
2437	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
2438	//    Fleet request.
2439	//
2440	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
2441	//    a DynamoDB table.
2442	//
2443	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
2444	//    a DynamoDB table.
2445	//
2446	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
2447	//    a DynamoDB global secondary index.
2448	//
2449	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
2450	//    a DynamoDB global secondary index.
2451	//
2452	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
2453	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
2454	//    edition.
2455	//
2456	// ScalableDimension is a required field
2457	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
2458
2459	// The name of the scaling plan.
2460	//
2461	// ScalingPlanName is a required field
2462	ScalingPlanName *string `min:"1" type:"string" required:"true"`
2463
2464	// The version number of the scaling plan.
2465	//
2466	// ScalingPlanVersion is a required field
2467	ScalingPlanVersion *int64 `type:"long" required:"true"`
2468
2469	// The scaling policies.
2470	ScalingPolicies []*ScalingPolicy `type:"list"`
2471
2472	// The scaling status of the resource.
2473	//
2474	//    * Active - The scaling configuration is active.
2475	//
2476	//    * Inactive - The scaling configuration is not active because the scaling
2477	//    plan is being created or the scaling configuration could not be applied.
2478	//    Check the status message for more information.
2479	//
2480	//    * PartiallyActive - The scaling configuration is partially active because
2481	//    the scaling plan is being created or deleted or the scaling configuration
2482	//    could not be fully applied. Check the status message for more information.
2483	//
2484	// ScalingStatusCode is a required field
2485	ScalingStatusCode *string `type:"string" required:"true" enum:"ScalingStatusCode"`
2486
2487	// A simple message about the current scaling status of the resource.
2488	ScalingStatusMessage *string `type:"string"`
2489
2490	// The namespace of the AWS service.
2491	//
2492	// ServiceNamespace is a required field
2493	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
2494}
2495
2496// String returns the string representation
2497func (s ScalingPlanResource) String() string {
2498	return awsutil.Prettify(s)
2499}
2500
2501// GoString returns the string representation
2502func (s ScalingPlanResource) GoString() string {
2503	return s.String()
2504}
2505
2506// SetResourceId sets the ResourceId field's value.
2507func (s *ScalingPlanResource) SetResourceId(v string) *ScalingPlanResource {
2508	s.ResourceId = &v
2509	return s
2510}
2511
2512// SetScalableDimension sets the ScalableDimension field's value.
2513func (s *ScalingPlanResource) SetScalableDimension(v string) *ScalingPlanResource {
2514	s.ScalableDimension = &v
2515	return s
2516}
2517
2518// SetScalingPlanName sets the ScalingPlanName field's value.
2519func (s *ScalingPlanResource) SetScalingPlanName(v string) *ScalingPlanResource {
2520	s.ScalingPlanName = &v
2521	return s
2522}
2523
2524// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
2525func (s *ScalingPlanResource) SetScalingPlanVersion(v int64) *ScalingPlanResource {
2526	s.ScalingPlanVersion = &v
2527	return s
2528}
2529
2530// SetScalingPolicies sets the ScalingPolicies field's value.
2531func (s *ScalingPlanResource) SetScalingPolicies(v []*ScalingPolicy) *ScalingPlanResource {
2532	s.ScalingPolicies = v
2533	return s
2534}
2535
2536// SetScalingStatusCode sets the ScalingStatusCode field's value.
2537func (s *ScalingPlanResource) SetScalingStatusCode(v string) *ScalingPlanResource {
2538	s.ScalingStatusCode = &v
2539	return s
2540}
2541
2542// SetScalingStatusMessage sets the ScalingStatusMessage field's value.
2543func (s *ScalingPlanResource) SetScalingStatusMessage(v string) *ScalingPlanResource {
2544	s.ScalingStatusMessage = &v
2545	return s
2546}
2547
2548// SetServiceNamespace sets the ServiceNamespace field's value.
2549func (s *ScalingPlanResource) SetServiceNamespace(v string) *ScalingPlanResource {
2550	s.ServiceNamespace = &v
2551	return s
2552}
2553
2554// Represents a scaling policy.
2555type ScalingPolicy struct {
2556	_ struct{} `type:"structure"`
2557
2558	// The name of the scaling policy.
2559	//
2560	// PolicyName is a required field
2561	PolicyName *string `min:"1" type:"string" required:"true"`
2562
2563	// The type of scaling policy.
2564	//
2565	// PolicyType is a required field
2566	PolicyType *string `type:"string" required:"true" enum:"PolicyType"`
2567
2568	// The target tracking scaling policy. Includes support for predefined or customized
2569	// metrics.
2570	TargetTrackingConfiguration *TargetTrackingConfiguration `type:"structure"`
2571}
2572
2573// String returns the string representation
2574func (s ScalingPolicy) String() string {
2575	return awsutil.Prettify(s)
2576}
2577
2578// GoString returns the string representation
2579func (s ScalingPolicy) GoString() string {
2580	return s.String()
2581}
2582
2583// SetPolicyName sets the PolicyName field's value.
2584func (s *ScalingPolicy) SetPolicyName(v string) *ScalingPolicy {
2585	s.PolicyName = &v
2586	return s
2587}
2588
2589// SetPolicyType sets the PolicyType field's value.
2590func (s *ScalingPolicy) SetPolicyType(v string) *ScalingPolicy {
2591	s.PolicyType = &v
2592	return s
2593}
2594
2595// SetTargetTrackingConfiguration sets the TargetTrackingConfiguration field's value.
2596func (s *ScalingPolicy) SetTargetTrackingConfiguration(v *TargetTrackingConfiguration) *ScalingPolicy {
2597	s.TargetTrackingConfiguration = v
2598	return s
2599}
2600
2601// Represents a tag.
2602type TagFilter struct {
2603	_ struct{} `type:"structure"`
2604
2605	// The tag key.
2606	Key *string `min:"1" type:"string"`
2607
2608	// The tag values (0 to 20).
2609	Values []*string `type:"list"`
2610}
2611
2612// String returns the string representation
2613func (s TagFilter) String() string {
2614	return awsutil.Prettify(s)
2615}
2616
2617// GoString returns the string representation
2618func (s TagFilter) GoString() string {
2619	return s.String()
2620}
2621
2622// Validate inspects the fields of the type to determine if they are valid.
2623func (s *TagFilter) Validate() error {
2624	invalidParams := request.ErrInvalidParams{Context: "TagFilter"}
2625	if s.Key != nil && len(*s.Key) < 1 {
2626		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
2627	}
2628
2629	if invalidParams.Len() > 0 {
2630		return invalidParams
2631	}
2632	return nil
2633}
2634
2635// SetKey sets the Key field's value.
2636func (s *TagFilter) SetKey(v string) *TagFilter {
2637	s.Key = &v
2638	return s
2639}
2640
2641// SetValues sets the Values field's value.
2642func (s *TagFilter) SetValues(v []*string) *TagFilter {
2643	s.Values = v
2644	return s
2645}
2646
2647// Describes a target tracking configuration to use with AWS Auto Scaling. Used
2648// with ScalingInstruction and ScalingPolicy.
2649type TargetTrackingConfiguration struct {
2650	_ struct{} `type:"structure"`
2651
2652	// A customized metric. You can specify either a predefined metric or a customized
2653	// metric.
2654	CustomizedScalingMetricSpecification *CustomizedScalingMetricSpecification `type:"structure"`
2655
2656	// Indicates whether scale in by the target tracking scaling policy is disabled.
2657	// If the value is true, scale in is disabled and the target tracking scaling
2658	// policy doesn't remove capacity from the scalable resource. Otherwise, scale
2659	// in is enabled and the target tracking scaling policy can remove capacity
2660	// from the scalable resource.
2661	//
2662	// The default value is false.
2663	DisableScaleIn *bool `type:"boolean"`
2664
2665	// The estimated time, in seconds, until a newly launched instance can contribute
2666	// to the CloudWatch metrics. This value is used only if the resource is an
2667	// Auto Scaling group.
2668	EstimatedInstanceWarmup *int64 `type:"integer"`
2669
2670	// A predefined metric. You can specify either a predefined metric or a customized
2671	// metric.
2672	PredefinedScalingMetricSpecification *PredefinedScalingMetricSpecification `type:"structure"`
2673
2674	// The amount of time, in seconds, after a scale in activity completes before
2675	// another scale in activity can start. This value is not used if the scalable
2676	// resource is an Auto Scaling group.
2677	//
2678	// The cooldown period is used to block subsequent scale in requests until it
2679	// has expired. The intention is to scale in conservatively to protect your
2680	// application's availability. However, if another alarm triggers a scale-out
2681	// policy during the cooldown period after a scale-in, AWS Auto Scaling scales
2682	// out your scalable target immediately.
2683	ScaleInCooldown *int64 `type:"integer"`
2684
2685	// The amount of time, in seconds, after a scale-out activity completes before
2686	// another scale-out activity can start. This value is not used if the scalable
2687	// resource is an Auto Scaling group.
2688	//
2689	// While the cooldown period is in effect, the capacity that has been added
2690	// by the previous scale-out event that initiated the cooldown is calculated
2691	// as part of the desired capacity for the next scale out. The intention is
2692	// to continuously (but not excessively) scale out.
2693	ScaleOutCooldown *int64 `type:"integer"`
2694
2695	// The target value for the metric. The range is 8.515920e-109 to 1.174271e+108
2696	// (Base 10) or 2e-360 to 2e360 (Base 2).
2697	//
2698	// TargetValue is a required field
2699	TargetValue *float64 `type:"double" required:"true"`
2700}
2701
2702// String returns the string representation
2703func (s TargetTrackingConfiguration) String() string {
2704	return awsutil.Prettify(s)
2705}
2706
2707// GoString returns the string representation
2708func (s TargetTrackingConfiguration) GoString() string {
2709	return s.String()
2710}
2711
2712// Validate inspects the fields of the type to determine if they are valid.
2713func (s *TargetTrackingConfiguration) Validate() error {
2714	invalidParams := request.ErrInvalidParams{Context: "TargetTrackingConfiguration"}
2715	if s.TargetValue == nil {
2716		invalidParams.Add(request.NewErrParamRequired("TargetValue"))
2717	}
2718	if s.CustomizedScalingMetricSpecification != nil {
2719		if err := s.CustomizedScalingMetricSpecification.Validate(); err != nil {
2720			invalidParams.AddNested("CustomizedScalingMetricSpecification", err.(request.ErrInvalidParams))
2721		}
2722	}
2723	if s.PredefinedScalingMetricSpecification != nil {
2724		if err := s.PredefinedScalingMetricSpecification.Validate(); err != nil {
2725			invalidParams.AddNested("PredefinedScalingMetricSpecification", err.(request.ErrInvalidParams))
2726		}
2727	}
2728
2729	if invalidParams.Len() > 0 {
2730		return invalidParams
2731	}
2732	return nil
2733}
2734
2735// SetCustomizedScalingMetricSpecification sets the CustomizedScalingMetricSpecification field's value.
2736func (s *TargetTrackingConfiguration) SetCustomizedScalingMetricSpecification(v *CustomizedScalingMetricSpecification) *TargetTrackingConfiguration {
2737	s.CustomizedScalingMetricSpecification = v
2738	return s
2739}
2740
2741// SetDisableScaleIn sets the DisableScaleIn field's value.
2742func (s *TargetTrackingConfiguration) SetDisableScaleIn(v bool) *TargetTrackingConfiguration {
2743	s.DisableScaleIn = &v
2744	return s
2745}
2746
2747// SetEstimatedInstanceWarmup sets the EstimatedInstanceWarmup field's value.
2748func (s *TargetTrackingConfiguration) SetEstimatedInstanceWarmup(v int64) *TargetTrackingConfiguration {
2749	s.EstimatedInstanceWarmup = &v
2750	return s
2751}
2752
2753// SetPredefinedScalingMetricSpecification sets the PredefinedScalingMetricSpecification field's value.
2754func (s *TargetTrackingConfiguration) SetPredefinedScalingMetricSpecification(v *PredefinedScalingMetricSpecification) *TargetTrackingConfiguration {
2755	s.PredefinedScalingMetricSpecification = v
2756	return s
2757}
2758
2759// SetScaleInCooldown sets the ScaleInCooldown field's value.
2760func (s *TargetTrackingConfiguration) SetScaleInCooldown(v int64) *TargetTrackingConfiguration {
2761	s.ScaleInCooldown = &v
2762	return s
2763}
2764
2765// SetScaleOutCooldown sets the ScaleOutCooldown field's value.
2766func (s *TargetTrackingConfiguration) SetScaleOutCooldown(v int64) *TargetTrackingConfiguration {
2767	s.ScaleOutCooldown = &v
2768	return s
2769}
2770
2771// SetTargetValue sets the TargetValue field's value.
2772func (s *TargetTrackingConfiguration) SetTargetValue(v float64) *TargetTrackingConfiguration {
2773	s.TargetValue = &v
2774	return s
2775}
2776
2777type UpdateScalingPlanInput struct {
2778	_ struct{} `type:"structure"`
2779
2780	// A CloudFormation stack or set of tags.
2781	ApplicationSource *ApplicationSource `type:"structure"`
2782
2783	// The scaling instructions.
2784	ScalingInstructions []*ScalingInstruction `type:"list"`
2785
2786	// The name of the scaling plan.
2787	//
2788	// ScalingPlanName is a required field
2789	ScalingPlanName *string `min:"1" type:"string" required:"true"`
2790
2791	// The version number of the scaling plan.
2792	//
2793	// ScalingPlanVersion is a required field
2794	ScalingPlanVersion *int64 `type:"long" required:"true"`
2795}
2796
2797// String returns the string representation
2798func (s UpdateScalingPlanInput) String() string {
2799	return awsutil.Prettify(s)
2800}
2801
2802// GoString returns the string representation
2803func (s UpdateScalingPlanInput) GoString() string {
2804	return s.String()
2805}
2806
2807// Validate inspects the fields of the type to determine if they are valid.
2808func (s *UpdateScalingPlanInput) Validate() error {
2809	invalidParams := request.ErrInvalidParams{Context: "UpdateScalingPlanInput"}
2810	if s.ScalingPlanName == nil {
2811		invalidParams.Add(request.NewErrParamRequired("ScalingPlanName"))
2812	}
2813	if s.ScalingPlanName != nil && len(*s.ScalingPlanName) < 1 {
2814		invalidParams.Add(request.NewErrParamMinLen("ScalingPlanName", 1))
2815	}
2816	if s.ScalingPlanVersion == nil {
2817		invalidParams.Add(request.NewErrParamRequired("ScalingPlanVersion"))
2818	}
2819	if s.ApplicationSource != nil {
2820		if err := s.ApplicationSource.Validate(); err != nil {
2821			invalidParams.AddNested("ApplicationSource", err.(request.ErrInvalidParams))
2822		}
2823	}
2824	if s.ScalingInstructions != nil {
2825		for i, v := range s.ScalingInstructions {
2826			if v == nil {
2827				continue
2828			}
2829			if err := v.Validate(); err != nil {
2830				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ScalingInstructions", i), err.(request.ErrInvalidParams))
2831			}
2832		}
2833	}
2834
2835	if invalidParams.Len() > 0 {
2836		return invalidParams
2837	}
2838	return nil
2839}
2840
2841// SetApplicationSource sets the ApplicationSource field's value.
2842func (s *UpdateScalingPlanInput) SetApplicationSource(v *ApplicationSource) *UpdateScalingPlanInput {
2843	s.ApplicationSource = v
2844	return s
2845}
2846
2847// SetScalingInstructions sets the ScalingInstructions field's value.
2848func (s *UpdateScalingPlanInput) SetScalingInstructions(v []*ScalingInstruction) *UpdateScalingPlanInput {
2849	s.ScalingInstructions = v
2850	return s
2851}
2852
2853// SetScalingPlanName sets the ScalingPlanName field's value.
2854func (s *UpdateScalingPlanInput) SetScalingPlanName(v string) *UpdateScalingPlanInput {
2855	s.ScalingPlanName = &v
2856	return s
2857}
2858
2859// SetScalingPlanVersion sets the ScalingPlanVersion field's value.
2860func (s *UpdateScalingPlanInput) SetScalingPlanVersion(v int64) *UpdateScalingPlanInput {
2861	s.ScalingPlanVersion = &v
2862	return s
2863}
2864
2865type UpdateScalingPlanOutput struct {
2866	_ struct{} `type:"structure"`
2867}
2868
2869// String returns the string representation
2870func (s UpdateScalingPlanOutput) String() string {
2871	return awsutil.Prettify(s)
2872}
2873
2874// GoString returns the string representation
2875func (s UpdateScalingPlanOutput) GoString() string {
2876	return s.String()
2877}
2878
2879// An exception was thrown for a validation issue. Review the parameters provided.
2880type ValidationException struct {
2881	_            struct{}                  `type:"structure"`
2882	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2883
2884	Message_ *string `locationName:"Message" type:"string"`
2885}
2886
2887// String returns the string representation
2888func (s ValidationException) String() string {
2889	return awsutil.Prettify(s)
2890}
2891
2892// GoString returns the string representation
2893func (s ValidationException) GoString() string {
2894	return s.String()
2895}
2896
2897func newErrorValidationException(v protocol.ResponseMetadata) error {
2898	return &ValidationException{
2899		RespMetadata: v,
2900	}
2901}
2902
2903// Code returns the exception type name.
2904func (s *ValidationException) Code() string {
2905	return "ValidationException"
2906}
2907
2908// Message returns the exception's message.
2909func (s *ValidationException) Message() string {
2910	if s.Message_ != nil {
2911		return *s.Message_
2912	}
2913	return ""
2914}
2915
2916// OrigErr always returns nil, satisfies awserr.Error interface.
2917func (s *ValidationException) OrigErr() error {
2918	return nil
2919}
2920
2921func (s *ValidationException) Error() string {
2922	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2923}
2924
2925// Status code returns the HTTP status code for the request's response error.
2926func (s *ValidationException) StatusCode() int {
2927	return s.RespMetadata.StatusCode
2928}
2929
2930// RequestID returns the service's response RequestID for request.
2931func (s *ValidationException) RequestID() string {
2932	return s.RespMetadata.RequestID
2933}
2934
2935const (
2936	// ForecastDataTypeCapacityForecast is a ForecastDataType enum value
2937	ForecastDataTypeCapacityForecast = "CapacityForecast"
2938
2939	// ForecastDataTypeLoadForecast is a ForecastDataType enum value
2940	ForecastDataTypeLoadForecast = "LoadForecast"
2941
2942	// ForecastDataTypeScheduledActionMinCapacity is a ForecastDataType enum value
2943	ForecastDataTypeScheduledActionMinCapacity = "ScheduledActionMinCapacity"
2944
2945	// ForecastDataTypeScheduledActionMaxCapacity is a ForecastDataType enum value
2946	ForecastDataTypeScheduledActionMaxCapacity = "ScheduledActionMaxCapacity"
2947)
2948
2949const (
2950	// LoadMetricTypeAsgtotalCpuutilization is a LoadMetricType enum value
2951	LoadMetricTypeAsgtotalCpuutilization = "ASGTotalCPUUtilization"
2952
2953	// LoadMetricTypeAsgtotalNetworkIn is a LoadMetricType enum value
2954	LoadMetricTypeAsgtotalNetworkIn = "ASGTotalNetworkIn"
2955
2956	// LoadMetricTypeAsgtotalNetworkOut is a LoadMetricType enum value
2957	LoadMetricTypeAsgtotalNetworkOut = "ASGTotalNetworkOut"
2958
2959	// LoadMetricTypeAlbtargetGroupRequestCount is a LoadMetricType enum value
2960	LoadMetricTypeAlbtargetGroupRequestCount = "ALBTargetGroupRequestCount"
2961)
2962
2963const (
2964	// MetricStatisticAverage is a MetricStatistic enum value
2965	MetricStatisticAverage = "Average"
2966
2967	// MetricStatisticMinimum is a MetricStatistic enum value
2968	MetricStatisticMinimum = "Minimum"
2969
2970	// MetricStatisticMaximum is a MetricStatistic enum value
2971	MetricStatisticMaximum = "Maximum"
2972
2973	// MetricStatisticSampleCount is a MetricStatistic enum value
2974	MetricStatisticSampleCount = "SampleCount"
2975
2976	// MetricStatisticSum is a MetricStatistic enum value
2977	MetricStatisticSum = "Sum"
2978)
2979
2980const (
2981	// PolicyTypeTargetTrackingScaling is a PolicyType enum value
2982	PolicyTypeTargetTrackingScaling = "TargetTrackingScaling"
2983)
2984
2985const (
2986	// PredictiveScalingMaxCapacityBehaviorSetForecastCapacityToMaxCapacity is a PredictiveScalingMaxCapacityBehavior enum value
2987	PredictiveScalingMaxCapacityBehaviorSetForecastCapacityToMaxCapacity = "SetForecastCapacityToMaxCapacity"
2988
2989	// PredictiveScalingMaxCapacityBehaviorSetMaxCapacityToForecastCapacity is a PredictiveScalingMaxCapacityBehavior enum value
2990	PredictiveScalingMaxCapacityBehaviorSetMaxCapacityToForecastCapacity = "SetMaxCapacityToForecastCapacity"
2991
2992	// PredictiveScalingMaxCapacityBehaviorSetMaxCapacityAboveForecastCapacity is a PredictiveScalingMaxCapacityBehavior enum value
2993	PredictiveScalingMaxCapacityBehaviorSetMaxCapacityAboveForecastCapacity = "SetMaxCapacityAboveForecastCapacity"
2994)
2995
2996const (
2997	// PredictiveScalingModeForecastAndScale is a PredictiveScalingMode enum value
2998	PredictiveScalingModeForecastAndScale = "ForecastAndScale"
2999
3000	// PredictiveScalingModeForecastOnly is a PredictiveScalingMode enum value
3001	PredictiveScalingModeForecastOnly = "ForecastOnly"
3002)
3003
3004const (
3005	// ScalableDimensionAutoscalingAutoScalingGroupDesiredCapacity is a ScalableDimension enum value
3006	ScalableDimensionAutoscalingAutoScalingGroupDesiredCapacity = "autoscaling:autoScalingGroup:DesiredCapacity"
3007
3008	// ScalableDimensionEcsServiceDesiredCount is a ScalableDimension enum value
3009	ScalableDimensionEcsServiceDesiredCount = "ecs:service:DesiredCount"
3010
3011	// ScalableDimensionEc2SpotFleetRequestTargetCapacity is a ScalableDimension enum value
3012	ScalableDimensionEc2SpotFleetRequestTargetCapacity = "ec2:spot-fleet-request:TargetCapacity"
3013
3014	// ScalableDimensionRdsClusterReadReplicaCount is a ScalableDimension enum value
3015	ScalableDimensionRdsClusterReadReplicaCount = "rds:cluster:ReadReplicaCount"
3016
3017	// ScalableDimensionDynamodbTableReadCapacityUnits is a ScalableDimension enum value
3018	ScalableDimensionDynamodbTableReadCapacityUnits = "dynamodb:table:ReadCapacityUnits"
3019
3020	// ScalableDimensionDynamodbTableWriteCapacityUnits is a ScalableDimension enum value
3021	ScalableDimensionDynamodbTableWriteCapacityUnits = "dynamodb:table:WriteCapacityUnits"
3022
3023	// ScalableDimensionDynamodbIndexReadCapacityUnits is a ScalableDimension enum value
3024	ScalableDimensionDynamodbIndexReadCapacityUnits = "dynamodb:index:ReadCapacityUnits"
3025
3026	// ScalableDimensionDynamodbIndexWriteCapacityUnits is a ScalableDimension enum value
3027	ScalableDimensionDynamodbIndexWriteCapacityUnits = "dynamodb:index:WriteCapacityUnits"
3028)
3029
3030const (
3031	// ScalingMetricTypeAsgaverageCpuutilization is a ScalingMetricType enum value
3032	ScalingMetricTypeAsgaverageCpuutilization = "ASGAverageCPUUtilization"
3033
3034	// ScalingMetricTypeAsgaverageNetworkIn is a ScalingMetricType enum value
3035	ScalingMetricTypeAsgaverageNetworkIn = "ASGAverageNetworkIn"
3036
3037	// ScalingMetricTypeAsgaverageNetworkOut is a ScalingMetricType enum value
3038	ScalingMetricTypeAsgaverageNetworkOut = "ASGAverageNetworkOut"
3039
3040	// ScalingMetricTypeDynamoDbreadCapacityUtilization is a ScalingMetricType enum value
3041	ScalingMetricTypeDynamoDbreadCapacityUtilization = "DynamoDBReadCapacityUtilization"
3042
3043	// ScalingMetricTypeDynamoDbwriteCapacityUtilization is a ScalingMetricType enum value
3044	ScalingMetricTypeDynamoDbwriteCapacityUtilization = "DynamoDBWriteCapacityUtilization"
3045
3046	// ScalingMetricTypeEcsserviceAverageCpuutilization is a ScalingMetricType enum value
3047	ScalingMetricTypeEcsserviceAverageCpuutilization = "ECSServiceAverageCPUUtilization"
3048
3049	// ScalingMetricTypeEcsserviceAverageMemoryUtilization is a ScalingMetricType enum value
3050	ScalingMetricTypeEcsserviceAverageMemoryUtilization = "ECSServiceAverageMemoryUtilization"
3051
3052	// ScalingMetricTypeAlbrequestCountPerTarget is a ScalingMetricType enum value
3053	ScalingMetricTypeAlbrequestCountPerTarget = "ALBRequestCountPerTarget"
3054
3055	// ScalingMetricTypeRdsreaderAverageCpuutilization is a ScalingMetricType enum value
3056	ScalingMetricTypeRdsreaderAverageCpuutilization = "RDSReaderAverageCPUUtilization"
3057
3058	// ScalingMetricTypeRdsreaderAverageDatabaseConnections is a ScalingMetricType enum value
3059	ScalingMetricTypeRdsreaderAverageDatabaseConnections = "RDSReaderAverageDatabaseConnections"
3060
3061	// ScalingMetricTypeEc2spotFleetRequestAverageCpuutilization is a ScalingMetricType enum value
3062	ScalingMetricTypeEc2spotFleetRequestAverageCpuutilization = "EC2SpotFleetRequestAverageCPUUtilization"
3063
3064	// ScalingMetricTypeEc2spotFleetRequestAverageNetworkIn is a ScalingMetricType enum value
3065	ScalingMetricTypeEc2spotFleetRequestAverageNetworkIn = "EC2SpotFleetRequestAverageNetworkIn"
3066
3067	// ScalingMetricTypeEc2spotFleetRequestAverageNetworkOut is a ScalingMetricType enum value
3068	ScalingMetricTypeEc2spotFleetRequestAverageNetworkOut = "EC2SpotFleetRequestAverageNetworkOut"
3069)
3070
3071const (
3072	// ScalingPlanStatusCodeActive is a ScalingPlanStatusCode enum value
3073	ScalingPlanStatusCodeActive = "Active"
3074
3075	// ScalingPlanStatusCodeActiveWithProblems is a ScalingPlanStatusCode enum value
3076	ScalingPlanStatusCodeActiveWithProblems = "ActiveWithProblems"
3077
3078	// ScalingPlanStatusCodeCreationInProgress is a ScalingPlanStatusCode enum value
3079	ScalingPlanStatusCodeCreationInProgress = "CreationInProgress"
3080
3081	// ScalingPlanStatusCodeCreationFailed is a ScalingPlanStatusCode enum value
3082	ScalingPlanStatusCodeCreationFailed = "CreationFailed"
3083
3084	// ScalingPlanStatusCodeDeletionInProgress is a ScalingPlanStatusCode enum value
3085	ScalingPlanStatusCodeDeletionInProgress = "DeletionInProgress"
3086
3087	// ScalingPlanStatusCodeDeletionFailed is a ScalingPlanStatusCode enum value
3088	ScalingPlanStatusCodeDeletionFailed = "DeletionFailed"
3089
3090	// ScalingPlanStatusCodeUpdateInProgress is a ScalingPlanStatusCode enum value
3091	ScalingPlanStatusCodeUpdateInProgress = "UpdateInProgress"
3092
3093	// ScalingPlanStatusCodeUpdateFailed is a ScalingPlanStatusCode enum value
3094	ScalingPlanStatusCodeUpdateFailed = "UpdateFailed"
3095)
3096
3097const (
3098	// ScalingPolicyUpdateBehaviorKeepExternalPolicies is a ScalingPolicyUpdateBehavior enum value
3099	ScalingPolicyUpdateBehaviorKeepExternalPolicies = "KeepExternalPolicies"
3100
3101	// ScalingPolicyUpdateBehaviorReplaceExternalPolicies is a ScalingPolicyUpdateBehavior enum value
3102	ScalingPolicyUpdateBehaviorReplaceExternalPolicies = "ReplaceExternalPolicies"
3103)
3104
3105const (
3106	// ScalingStatusCodeInactive is a ScalingStatusCode enum value
3107	ScalingStatusCodeInactive = "Inactive"
3108
3109	// ScalingStatusCodePartiallyActive is a ScalingStatusCode enum value
3110	ScalingStatusCodePartiallyActive = "PartiallyActive"
3111
3112	// ScalingStatusCodeActive is a ScalingStatusCode enum value
3113	ScalingStatusCodeActive = "Active"
3114)
3115
3116const (
3117	// ServiceNamespaceAutoscaling is a ServiceNamespace enum value
3118	ServiceNamespaceAutoscaling = "autoscaling"
3119
3120	// ServiceNamespaceEcs is a ServiceNamespace enum value
3121	ServiceNamespaceEcs = "ecs"
3122
3123	// ServiceNamespaceEc2 is a ServiceNamespace enum value
3124	ServiceNamespaceEc2 = "ec2"
3125
3126	// ServiceNamespaceRds is a ServiceNamespace enum value
3127	ServiceNamespaceRds = "rds"
3128
3129	// ServiceNamespaceDynamodb is a ServiceNamespace enum value
3130	ServiceNamespaceDynamodb = "dynamodb"
3131)
3132