1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package computeoptimizer
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)
14
15const opDescribeRecommendationExportJobs = "DescribeRecommendationExportJobs"
16
17// DescribeRecommendationExportJobsRequest generates a "aws/request.Request" representing the
18// client's request for the DescribeRecommendationExportJobs operation. The "output" return
19// value will be populated with the request's response once the request completes
20// successfully.
21//
22// Use "Send" method on the returned Request to send the API call to the service.
23// the "output" return value is not valid until after Send returns without error.
24//
25// See DescribeRecommendationExportJobs for more information on using the DescribeRecommendationExportJobs
26// API call, and error handling.
27//
28// This method is useful when you want to inject custom logic or configuration
29// into the SDK's request lifecycle. Such as custom headers, or retry logic.
30//
31//
32//    // Example sending a request using the DescribeRecommendationExportJobsRequest method.
33//    req, resp := client.DescribeRecommendationExportJobsRequest(params)
34//
35//    err := req.Send()
36//    if err == nil { // resp is now filled
37//        fmt.Println(resp)
38//    }
39//
40// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/DescribeRecommendationExportJobs
41func (c *ComputeOptimizer) DescribeRecommendationExportJobsRequest(input *DescribeRecommendationExportJobsInput) (req *request.Request, output *DescribeRecommendationExportJobsOutput) {
42	op := &request.Operation{
43		Name:       opDescribeRecommendationExportJobs,
44		HTTPMethod: "POST",
45		HTTPPath:   "/",
46	}
47
48	if input == nil {
49		input = &DescribeRecommendationExportJobsInput{}
50	}
51
52	output = &DescribeRecommendationExportJobsOutput{}
53	req = c.newRequest(op, input, output)
54	return
55}
56
57// DescribeRecommendationExportJobs API operation for AWS Compute Optimizer.
58//
59// Describes recommendation export jobs created in the last seven days.
60//
61// Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations
62// actions to request an export of your recommendations. Then use the DescribeRecommendationExportJobs
63// action to view your export jobs.
64//
65// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
66// with awserr.Error's Code and Message methods to get detailed information about
67// the error.
68//
69// See the AWS API reference guide for AWS Compute Optimizer's
70// API operation DescribeRecommendationExportJobs for usage and error information.
71//
72// Returned Error Types:
73//   * OptInRequiredException
74//   The account is not opted in to AWS Compute Optimizer.
75//
76//   * InternalServerException
77//   An internal error has occurred. Try your call again.
78//
79//   * ServiceUnavailableException
80//   The request has failed due to a temporary failure of the server.
81//
82//   * AccessDeniedException
83//   You do not have sufficient access to perform this action.
84//
85//   * InvalidParameterValueException
86//   An invalid or out-of-range value was supplied for the input parameter.
87//
88//   * ResourceNotFoundException
89//   A resource that is required for the action doesn't exist.
90//
91//   * MissingAuthenticationToken
92//   The request must contain either a valid (registered) AWS access key ID or
93//   X.509 certificate.
94//
95//   * ThrottlingException
96//   The request was denied due to request throttling.
97//
98// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/DescribeRecommendationExportJobs
99func (c *ComputeOptimizer) DescribeRecommendationExportJobs(input *DescribeRecommendationExportJobsInput) (*DescribeRecommendationExportJobsOutput, error) {
100	req, out := c.DescribeRecommendationExportJobsRequest(input)
101	return out, req.Send()
102}
103
104// DescribeRecommendationExportJobsWithContext is the same as DescribeRecommendationExportJobs with the addition of
105// the ability to pass a context and additional request options.
106//
107// See DescribeRecommendationExportJobs for details on how to use this API operation.
108//
109// The context must be non-nil and will be used for request cancellation. If
110// the context is nil a panic will occur. In the future the SDK may create
111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
112// for more information on using Contexts.
113func (c *ComputeOptimizer) DescribeRecommendationExportJobsWithContext(ctx aws.Context, input *DescribeRecommendationExportJobsInput, opts ...request.Option) (*DescribeRecommendationExportJobsOutput, error) {
114	req, out := c.DescribeRecommendationExportJobsRequest(input)
115	req.SetContext(ctx)
116	req.ApplyOptions(opts...)
117	return out, req.Send()
118}
119
120const opExportAutoScalingGroupRecommendations = "ExportAutoScalingGroupRecommendations"
121
122// ExportAutoScalingGroupRecommendationsRequest generates a "aws/request.Request" representing the
123// client's request for the ExportAutoScalingGroupRecommendations operation. The "output" return
124// value will be populated with the request's response once the request completes
125// successfully.
126//
127// Use "Send" method on the returned Request to send the API call to the service.
128// the "output" return value is not valid until after Send returns without error.
129//
130// See ExportAutoScalingGroupRecommendations for more information on using the ExportAutoScalingGroupRecommendations
131// API call, and error handling.
132//
133// This method is useful when you want to inject custom logic or configuration
134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
135//
136//
137//    // Example sending a request using the ExportAutoScalingGroupRecommendationsRequest method.
138//    req, resp := client.ExportAutoScalingGroupRecommendationsRequest(params)
139//
140//    err := req.Send()
141//    if err == nil { // resp is now filled
142//        fmt.Println(resp)
143//    }
144//
145// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportAutoScalingGroupRecommendations
146func (c *ComputeOptimizer) ExportAutoScalingGroupRecommendationsRequest(input *ExportAutoScalingGroupRecommendationsInput) (req *request.Request, output *ExportAutoScalingGroupRecommendationsOutput) {
147	op := &request.Operation{
148		Name:       opExportAutoScalingGroupRecommendations,
149		HTTPMethod: "POST",
150		HTTPPath:   "/",
151	}
152
153	if input == nil {
154		input = &ExportAutoScalingGroupRecommendationsInput{}
155	}
156
157	output = &ExportAutoScalingGroupRecommendationsOutput{}
158	req = c.newRequest(op, input, output)
159	return
160}
161
162// ExportAutoScalingGroupRecommendations API operation for AWS Compute Optimizer.
163//
164// Exports optimization recommendations for Auto Scaling groups.
165//
166// Recommendations are exported in a comma-separated values (.csv) file, and
167// its metadata in a JavaScript Object Notation (.json) file, to an existing
168// Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
169// information, see Exporting Recommendations (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
170// in the Compute Optimizer User Guide.
171//
172// You can have only one Auto Scaling group export job in progress per AWS Region.
173//
174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
175// with awserr.Error's Code and Message methods to get detailed information about
176// the error.
177//
178// See the AWS API reference guide for AWS Compute Optimizer's
179// API operation ExportAutoScalingGroupRecommendations for usage and error information.
180//
181// Returned Error Types:
182//   * OptInRequiredException
183//   The account is not opted in to AWS Compute Optimizer.
184//
185//   * InternalServerException
186//   An internal error has occurred. Try your call again.
187//
188//   * ServiceUnavailableException
189//   The request has failed due to a temporary failure of the server.
190//
191//   * AccessDeniedException
192//   You do not have sufficient access to perform this action.
193//
194//   * InvalidParameterValueException
195//   An invalid or out-of-range value was supplied for the input parameter.
196//
197//   * MissingAuthenticationToken
198//   The request must contain either a valid (registered) AWS access key ID or
199//   X.509 certificate.
200//
201//   * ThrottlingException
202//   The request was denied due to request throttling.
203//
204//   * LimitExceededException
205//   The request exceeds a limit of the service.
206//
207// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportAutoScalingGroupRecommendations
208func (c *ComputeOptimizer) ExportAutoScalingGroupRecommendations(input *ExportAutoScalingGroupRecommendationsInput) (*ExportAutoScalingGroupRecommendationsOutput, error) {
209	req, out := c.ExportAutoScalingGroupRecommendationsRequest(input)
210	return out, req.Send()
211}
212
213// ExportAutoScalingGroupRecommendationsWithContext is the same as ExportAutoScalingGroupRecommendations with the addition of
214// the ability to pass a context and additional request options.
215//
216// See ExportAutoScalingGroupRecommendations for details on how to use this API operation.
217//
218// The context must be non-nil and will be used for request cancellation. If
219// the context is nil a panic will occur. In the future the SDK may create
220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
221// for more information on using Contexts.
222func (c *ComputeOptimizer) ExportAutoScalingGroupRecommendationsWithContext(ctx aws.Context, input *ExportAutoScalingGroupRecommendationsInput, opts ...request.Option) (*ExportAutoScalingGroupRecommendationsOutput, error) {
223	req, out := c.ExportAutoScalingGroupRecommendationsRequest(input)
224	req.SetContext(ctx)
225	req.ApplyOptions(opts...)
226	return out, req.Send()
227}
228
229const opExportEC2InstanceRecommendations = "ExportEC2InstanceRecommendations"
230
231// ExportEC2InstanceRecommendationsRequest generates a "aws/request.Request" representing the
232// client's request for the ExportEC2InstanceRecommendations operation. The "output" return
233// value will be populated with the request's response once the request completes
234// successfully.
235//
236// Use "Send" method on the returned Request to send the API call to the service.
237// the "output" return value is not valid until after Send returns without error.
238//
239// See ExportEC2InstanceRecommendations for more information on using the ExportEC2InstanceRecommendations
240// API call, and error handling.
241//
242// This method is useful when you want to inject custom logic or configuration
243// into the SDK's request lifecycle. Such as custom headers, or retry logic.
244//
245//
246//    // Example sending a request using the ExportEC2InstanceRecommendationsRequest method.
247//    req, resp := client.ExportEC2InstanceRecommendationsRequest(params)
248//
249//    err := req.Send()
250//    if err == nil { // resp is now filled
251//        fmt.Println(resp)
252//    }
253//
254// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportEC2InstanceRecommendations
255func (c *ComputeOptimizer) ExportEC2InstanceRecommendationsRequest(input *ExportEC2InstanceRecommendationsInput) (req *request.Request, output *ExportEC2InstanceRecommendationsOutput) {
256	op := &request.Operation{
257		Name:       opExportEC2InstanceRecommendations,
258		HTTPMethod: "POST",
259		HTTPPath:   "/",
260	}
261
262	if input == nil {
263		input = &ExportEC2InstanceRecommendationsInput{}
264	}
265
266	output = &ExportEC2InstanceRecommendationsOutput{}
267	req = c.newRequest(op, input, output)
268	return
269}
270
271// ExportEC2InstanceRecommendations API operation for AWS Compute Optimizer.
272//
273// Exports optimization recommendations for Amazon EC2 instances.
274//
275// Recommendations are exported in a comma-separated values (.csv) file, and
276// its metadata in a JavaScript Object Notation (.json) file, to an existing
277// Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
278// information, see Exporting Recommendations (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
279// in the Compute Optimizer User Guide.
280//
281// You can have only one Amazon EC2 instance export job in progress per AWS
282// Region.
283//
284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
285// with awserr.Error's Code and Message methods to get detailed information about
286// the error.
287//
288// See the AWS API reference guide for AWS Compute Optimizer's
289// API operation ExportEC2InstanceRecommendations for usage and error information.
290//
291// Returned Error Types:
292//   * OptInRequiredException
293//   The account is not opted in to AWS Compute Optimizer.
294//
295//   * InternalServerException
296//   An internal error has occurred. Try your call again.
297//
298//   * ServiceUnavailableException
299//   The request has failed due to a temporary failure of the server.
300//
301//   * AccessDeniedException
302//   You do not have sufficient access to perform this action.
303//
304//   * InvalidParameterValueException
305//   An invalid or out-of-range value was supplied for the input parameter.
306//
307//   * MissingAuthenticationToken
308//   The request must contain either a valid (registered) AWS access key ID or
309//   X.509 certificate.
310//
311//   * ThrottlingException
312//   The request was denied due to request throttling.
313//
314//   * LimitExceededException
315//   The request exceeds a limit of the service.
316//
317// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportEC2InstanceRecommendations
318func (c *ComputeOptimizer) ExportEC2InstanceRecommendations(input *ExportEC2InstanceRecommendationsInput) (*ExportEC2InstanceRecommendationsOutput, error) {
319	req, out := c.ExportEC2InstanceRecommendationsRequest(input)
320	return out, req.Send()
321}
322
323// ExportEC2InstanceRecommendationsWithContext is the same as ExportEC2InstanceRecommendations with the addition of
324// the ability to pass a context and additional request options.
325//
326// See ExportEC2InstanceRecommendations for details on how to use this API operation.
327//
328// The context must be non-nil and will be used for request cancellation. If
329// the context is nil a panic will occur. In the future the SDK may create
330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
331// for more information on using Contexts.
332func (c *ComputeOptimizer) ExportEC2InstanceRecommendationsWithContext(ctx aws.Context, input *ExportEC2InstanceRecommendationsInput, opts ...request.Option) (*ExportEC2InstanceRecommendationsOutput, error) {
333	req, out := c.ExportEC2InstanceRecommendationsRequest(input)
334	req.SetContext(ctx)
335	req.ApplyOptions(opts...)
336	return out, req.Send()
337}
338
339const opGetAutoScalingGroupRecommendations = "GetAutoScalingGroupRecommendations"
340
341// GetAutoScalingGroupRecommendationsRequest generates a "aws/request.Request" representing the
342// client's request for the GetAutoScalingGroupRecommendations operation. The "output" return
343// value will be populated with the request's response once the request completes
344// successfully.
345//
346// Use "Send" method on the returned Request to send the API call to the service.
347// the "output" return value is not valid until after Send returns without error.
348//
349// See GetAutoScalingGroupRecommendations for more information on using the GetAutoScalingGroupRecommendations
350// API call, and error handling.
351//
352// This method is useful when you want to inject custom logic or configuration
353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
354//
355//
356//    // Example sending a request using the GetAutoScalingGroupRecommendationsRequest method.
357//    req, resp := client.GetAutoScalingGroupRecommendationsRequest(params)
358//
359//    err := req.Send()
360//    if err == nil { // resp is now filled
361//        fmt.Println(resp)
362//    }
363//
364// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetAutoScalingGroupRecommendations
365func (c *ComputeOptimizer) GetAutoScalingGroupRecommendationsRequest(input *GetAutoScalingGroupRecommendationsInput) (req *request.Request, output *GetAutoScalingGroupRecommendationsOutput) {
366	op := &request.Operation{
367		Name:       opGetAutoScalingGroupRecommendations,
368		HTTPMethod: "POST",
369		HTTPPath:   "/",
370	}
371
372	if input == nil {
373		input = &GetAutoScalingGroupRecommendationsInput{}
374	}
375
376	output = &GetAutoScalingGroupRecommendationsOutput{}
377	req = c.newRequest(op, input, output)
378	return
379}
380
381// GetAutoScalingGroupRecommendations API operation for AWS Compute Optimizer.
382//
383// Returns Auto Scaling group recommendations.
384//
385// AWS Compute Optimizer generates recommendations for Amazon EC2 Auto Scaling
386// groups that meet a specific set of requirements. For more information, see
387// the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
388// in the AWS Compute Optimizer User Guide.
389//
390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
391// with awserr.Error's Code and Message methods to get detailed information about
392// the error.
393//
394// See the AWS API reference guide for AWS Compute Optimizer's
395// API operation GetAutoScalingGroupRecommendations for usage and error information.
396//
397// Returned Error Types:
398//   * OptInRequiredException
399//   The account is not opted in to AWS Compute Optimizer.
400//
401//   * InternalServerException
402//   An internal error has occurred. Try your call again.
403//
404//   * ServiceUnavailableException
405//   The request has failed due to a temporary failure of the server.
406//
407//   * AccessDeniedException
408//   You do not have sufficient access to perform this action.
409//
410//   * InvalidParameterValueException
411//   An invalid or out-of-range value was supplied for the input parameter.
412//
413//   * ResourceNotFoundException
414//   A resource that is required for the action doesn't exist.
415//
416//   * MissingAuthenticationToken
417//   The request must contain either a valid (registered) AWS access key ID or
418//   X.509 certificate.
419//
420//   * ThrottlingException
421//   The request was denied due to request throttling.
422//
423// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetAutoScalingGroupRecommendations
424func (c *ComputeOptimizer) GetAutoScalingGroupRecommendations(input *GetAutoScalingGroupRecommendationsInput) (*GetAutoScalingGroupRecommendationsOutput, error) {
425	req, out := c.GetAutoScalingGroupRecommendationsRequest(input)
426	return out, req.Send()
427}
428
429// GetAutoScalingGroupRecommendationsWithContext is the same as GetAutoScalingGroupRecommendations with the addition of
430// the ability to pass a context and additional request options.
431//
432// See GetAutoScalingGroupRecommendations for details on how to use this API operation.
433//
434// The context must be non-nil and will be used for request cancellation. If
435// the context is nil a panic will occur. In the future the SDK may create
436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
437// for more information on using Contexts.
438func (c *ComputeOptimizer) GetAutoScalingGroupRecommendationsWithContext(ctx aws.Context, input *GetAutoScalingGroupRecommendationsInput, opts ...request.Option) (*GetAutoScalingGroupRecommendationsOutput, error) {
439	req, out := c.GetAutoScalingGroupRecommendationsRequest(input)
440	req.SetContext(ctx)
441	req.ApplyOptions(opts...)
442	return out, req.Send()
443}
444
445const opGetEC2InstanceRecommendations = "GetEC2InstanceRecommendations"
446
447// GetEC2InstanceRecommendationsRequest generates a "aws/request.Request" representing the
448// client's request for the GetEC2InstanceRecommendations operation. The "output" return
449// value will be populated with the request's response once the request completes
450// successfully.
451//
452// Use "Send" method on the returned Request to send the API call to the service.
453// the "output" return value is not valid until after Send returns without error.
454//
455// See GetEC2InstanceRecommendations for more information on using the GetEC2InstanceRecommendations
456// API call, and error handling.
457//
458// This method is useful when you want to inject custom logic or configuration
459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
460//
461//
462//    // Example sending a request using the GetEC2InstanceRecommendationsRequest method.
463//    req, resp := client.GetEC2InstanceRecommendationsRequest(params)
464//
465//    err := req.Send()
466//    if err == nil { // resp is now filled
467//        fmt.Println(resp)
468//    }
469//
470// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2InstanceRecommendations
471func (c *ComputeOptimizer) GetEC2InstanceRecommendationsRequest(input *GetEC2InstanceRecommendationsInput) (req *request.Request, output *GetEC2InstanceRecommendationsOutput) {
472	op := &request.Operation{
473		Name:       opGetEC2InstanceRecommendations,
474		HTTPMethod: "POST",
475		HTTPPath:   "/",
476	}
477
478	if input == nil {
479		input = &GetEC2InstanceRecommendationsInput{}
480	}
481
482	output = &GetEC2InstanceRecommendationsOutput{}
483	req = c.newRequest(op, input, output)
484	return
485}
486
487// GetEC2InstanceRecommendations API operation for AWS Compute Optimizer.
488//
489// Returns Amazon EC2 instance recommendations.
490//
491// AWS Compute Optimizer generates recommendations for Amazon Elastic Compute
492// Cloud (Amazon EC2) instances that meet a specific set of requirements. For
493// more information, see the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
494// in the AWS Compute Optimizer User Guide.
495//
496// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
497// with awserr.Error's Code and Message methods to get detailed information about
498// the error.
499//
500// See the AWS API reference guide for AWS Compute Optimizer's
501// API operation GetEC2InstanceRecommendations for usage and error information.
502//
503// Returned Error Types:
504//   * OptInRequiredException
505//   The account is not opted in to AWS Compute Optimizer.
506//
507//   * InternalServerException
508//   An internal error has occurred. Try your call again.
509//
510//   * ServiceUnavailableException
511//   The request has failed due to a temporary failure of the server.
512//
513//   * AccessDeniedException
514//   You do not have sufficient access to perform this action.
515//
516//   * InvalidParameterValueException
517//   An invalid or out-of-range value was supplied for the input parameter.
518//
519//   * ResourceNotFoundException
520//   A resource that is required for the action doesn't exist.
521//
522//   * MissingAuthenticationToken
523//   The request must contain either a valid (registered) AWS access key ID or
524//   X.509 certificate.
525//
526//   * ThrottlingException
527//   The request was denied due to request throttling.
528//
529// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2InstanceRecommendations
530func (c *ComputeOptimizer) GetEC2InstanceRecommendations(input *GetEC2InstanceRecommendationsInput) (*GetEC2InstanceRecommendationsOutput, error) {
531	req, out := c.GetEC2InstanceRecommendationsRequest(input)
532	return out, req.Send()
533}
534
535// GetEC2InstanceRecommendationsWithContext is the same as GetEC2InstanceRecommendations with the addition of
536// the ability to pass a context and additional request options.
537//
538// See GetEC2InstanceRecommendations for details on how to use this API operation.
539//
540// The context must be non-nil and will be used for request cancellation. If
541// the context is nil a panic will occur. In the future the SDK may create
542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
543// for more information on using Contexts.
544func (c *ComputeOptimizer) GetEC2InstanceRecommendationsWithContext(ctx aws.Context, input *GetEC2InstanceRecommendationsInput, opts ...request.Option) (*GetEC2InstanceRecommendationsOutput, error) {
545	req, out := c.GetEC2InstanceRecommendationsRequest(input)
546	req.SetContext(ctx)
547	req.ApplyOptions(opts...)
548	return out, req.Send()
549}
550
551const opGetEC2RecommendationProjectedMetrics = "GetEC2RecommendationProjectedMetrics"
552
553// GetEC2RecommendationProjectedMetricsRequest generates a "aws/request.Request" representing the
554// client's request for the GetEC2RecommendationProjectedMetrics operation. The "output" return
555// value will be populated with the request's response once the request completes
556// successfully.
557//
558// Use "Send" method on the returned Request to send the API call to the service.
559// the "output" return value is not valid until after Send returns without error.
560//
561// See GetEC2RecommendationProjectedMetrics for more information on using the GetEC2RecommendationProjectedMetrics
562// API call, and error handling.
563//
564// This method is useful when you want to inject custom logic or configuration
565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
566//
567//
568//    // Example sending a request using the GetEC2RecommendationProjectedMetricsRequest method.
569//    req, resp := client.GetEC2RecommendationProjectedMetricsRequest(params)
570//
571//    err := req.Send()
572//    if err == nil { // resp is now filled
573//        fmt.Println(resp)
574//    }
575//
576// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2RecommendationProjectedMetrics
577func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetricsRequest(input *GetEC2RecommendationProjectedMetricsInput) (req *request.Request, output *GetEC2RecommendationProjectedMetricsOutput) {
578	op := &request.Operation{
579		Name:       opGetEC2RecommendationProjectedMetrics,
580		HTTPMethod: "POST",
581		HTTPPath:   "/",
582	}
583
584	if input == nil {
585		input = &GetEC2RecommendationProjectedMetricsInput{}
586	}
587
588	output = &GetEC2RecommendationProjectedMetricsOutput{}
589	req = c.newRequest(op, input, output)
590	return
591}
592
593// GetEC2RecommendationProjectedMetrics API operation for AWS Compute Optimizer.
594//
595// Returns the projected utilization metrics of Amazon EC2 instance recommendations.
596//
597// The Cpu and Memory metrics are the only projected utilization metrics returned
598// when you run this action. Additionally, the Memory metric is returned only
599// for resources that have the unified CloudWatch agent installed on them. For
600// more information, see Enabling Memory Utilization with the CloudWatch Agent
601// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
602//
603// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
604// with awserr.Error's Code and Message methods to get detailed information about
605// the error.
606//
607// See the AWS API reference guide for AWS Compute Optimizer's
608// API operation GetEC2RecommendationProjectedMetrics for usage and error information.
609//
610// Returned Error Types:
611//   * OptInRequiredException
612//   The account is not opted in to AWS Compute Optimizer.
613//
614//   * InternalServerException
615//   An internal error has occurred. Try your call again.
616//
617//   * ServiceUnavailableException
618//   The request has failed due to a temporary failure of the server.
619//
620//   * AccessDeniedException
621//   You do not have sufficient access to perform this action.
622//
623//   * InvalidParameterValueException
624//   An invalid or out-of-range value was supplied for the input parameter.
625//
626//   * ResourceNotFoundException
627//   A resource that is required for the action doesn't exist.
628//
629//   * MissingAuthenticationToken
630//   The request must contain either a valid (registered) AWS access key ID or
631//   X.509 certificate.
632//
633//   * ThrottlingException
634//   The request was denied due to request throttling.
635//
636// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2RecommendationProjectedMetrics
637func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetrics(input *GetEC2RecommendationProjectedMetricsInput) (*GetEC2RecommendationProjectedMetricsOutput, error) {
638	req, out := c.GetEC2RecommendationProjectedMetricsRequest(input)
639	return out, req.Send()
640}
641
642// GetEC2RecommendationProjectedMetricsWithContext is the same as GetEC2RecommendationProjectedMetrics with the addition of
643// the ability to pass a context and additional request options.
644//
645// See GetEC2RecommendationProjectedMetrics for details on how to use this API operation.
646//
647// The context must be non-nil and will be used for request cancellation. If
648// the context is nil a panic will occur. In the future the SDK may create
649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
650// for more information on using Contexts.
651func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetricsWithContext(ctx aws.Context, input *GetEC2RecommendationProjectedMetricsInput, opts ...request.Option) (*GetEC2RecommendationProjectedMetricsOutput, error) {
652	req, out := c.GetEC2RecommendationProjectedMetricsRequest(input)
653	req.SetContext(ctx)
654	req.ApplyOptions(opts...)
655	return out, req.Send()
656}
657
658const opGetEnrollmentStatus = "GetEnrollmentStatus"
659
660// GetEnrollmentStatusRequest generates a "aws/request.Request" representing the
661// client's request for the GetEnrollmentStatus operation. The "output" return
662// value will be populated with the request's response once the request completes
663// successfully.
664//
665// Use "Send" method on the returned Request to send the API call to the service.
666// the "output" return value is not valid until after Send returns without error.
667//
668// See GetEnrollmentStatus for more information on using the GetEnrollmentStatus
669// API call, and error handling.
670//
671// This method is useful when you want to inject custom logic or configuration
672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
673//
674//
675//    // Example sending a request using the GetEnrollmentStatusRequest method.
676//    req, resp := client.GetEnrollmentStatusRequest(params)
677//
678//    err := req.Send()
679//    if err == nil { // resp is now filled
680//        fmt.Println(resp)
681//    }
682//
683// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatus
684func (c *ComputeOptimizer) GetEnrollmentStatusRequest(input *GetEnrollmentStatusInput) (req *request.Request, output *GetEnrollmentStatusOutput) {
685	op := &request.Operation{
686		Name:       opGetEnrollmentStatus,
687		HTTPMethod: "POST",
688		HTTPPath:   "/",
689	}
690
691	if input == nil {
692		input = &GetEnrollmentStatusInput{}
693	}
694
695	output = &GetEnrollmentStatusOutput{}
696	req = c.newRequest(op, input, output)
697	return
698}
699
700// GetEnrollmentStatus API operation for AWS Compute Optimizer.
701//
702// Returns the enrollment (opt in) status of an account to the AWS Compute Optimizer
703// service.
704//
705// If the account is the master account of an organization, this action also
706// confirms the enrollment status of member accounts within the organization.
707//
708// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
709// with awserr.Error's Code and Message methods to get detailed information about
710// the error.
711//
712// See the AWS API reference guide for AWS Compute Optimizer's
713// API operation GetEnrollmentStatus for usage and error information.
714//
715// Returned Error Types:
716//   * InternalServerException
717//   An internal error has occurred. Try your call again.
718//
719//   * ServiceUnavailableException
720//   The request has failed due to a temporary failure of the server.
721//
722//   * AccessDeniedException
723//   You do not have sufficient access to perform this action.
724//
725//   * InvalidParameterValueException
726//   An invalid or out-of-range value was supplied for the input parameter.
727//
728//   * MissingAuthenticationToken
729//   The request must contain either a valid (registered) AWS access key ID or
730//   X.509 certificate.
731//
732//   * ThrottlingException
733//   The request was denied due to request throttling.
734//
735// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatus
736func (c *ComputeOptimizer) GetEnrollmentStatus(input *GetEnrollmentStatusInput) (*GetEnrollmentStatusOutput, error) {
737	req, out := c.GetEnrollmentStatusRequest(input)
738	return out, req.Send()
739}
740
741// GetEnrollmentStatusWithContext is the same as GetEnrollmentStatus with the addition of
742// the ability to pass a context and additional request options.
743//
744// See GetEnrollmentStatus for details on how to use this API operation.
745//
746// The context must be non-nil and will be used for request cancellation. If
747// the context is nil a panic will occur. In the future the SDK may create
748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
749// for more information on using Contexts.
750func (c *ComputeOptimizer) GetEnrollmentStatusWithContext(ctx aws.Context, input *GetEnrollmentStatusInput, opts ...request.Option) (*GetEnrollmentStatusOutput, error) {
751	req, out := c.GetEnrollmentStatusRequest(input)
752	req.SetContext(ctx)
753	req.ApplyOptions(opts...)
754	return out, req.Send()
755}
756
757const opGetRecommendationSummaries = "GetRecommendationSummaries"
758
759// GetRecommendationSummariesRequest generates a "aws/request.Request" representing the
760// client's request for the GetRecommendationSummaries operation. The "output" return
761// value will be populated with the request's response once the request completes
762// successfully.
763//
764// Use "Send" method on the returned Request to send the API call to the service.
765// the "output" return value is not valid until after Send returns without error.
766//
767// See GetRecommendationSummaries for more information on using the GetRecommendationSummaries
768// API call, and error handling.
769//
770// This method is useful when you want to inject custom logic or configuration
771// into the SDK's request lifecycle. Such as custom headers, or retry logic.
772//
773//
774//    // Example sending a request using the GetRecommendationSummariesRequest method.
775//    req, resp := client.GetRecommendationSummariesRequest(params)
776//
777//    err := req.Send()
778//    if err == nil { // resp is now filled
779//        fmt.Println(resp)
780//    }
781//
782// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationSummaries
783func (c *ComputeOptimizer) GetRecommendationSummariesRequest(input *GetRecommendationSummariesInput) (req *request.Request, output *GetRecommendationSummariesOutput) {
784	op := &request.Operation{
785		Name:       opGetRecommendationSummaries,
786		HTTPMethod: "POST",
787		HTTPPath:   "/",
788	}
789
790	if input == nil {
791		input = &GetRecommendationSummariesInput{}
792	}
793
794	output = &GetRecommendationSummariesOutput{}
795	req = c.newRequest(op, input, output)
796	return
797}
798
799// GetRecommendationSummaries API operation for AWS Compute Optimizer.
800//
801// Returns the optimization findings for an account.
802//
803// For example, it returns the number of Amazon EC2 instances in an account
804// that are under-provisioned, over-provisioned, or optimized. It also returns
805// the number of Auto Scaling groups in an account that are not optimized, or
806// optimized.
807//
808// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
809// with awserr.Error's Code and Message methods to get detailed information about
810// the error.
811//
812// See the AWS API reference guide for AWS Compute Optimizer's
813// API operation GetRecommendationSummaries for usage and error information.
814//
815// Returned Error Types:
816//   * OptInRequiredException
817//   The account is not opted in to AWS Compute Optimizer.
818//
819//   * InternalServerException
820//   An internal error has occurred. Try your call again.
821//
822//   * ServiceUnavailableException
823//   The request has failed due to a temporary failure of the server.
824//
825//   * AccessDeniedException
826//   You do not have sufficient access to perform this action.
827//
828//   * InvalidParameterValueException
829//   An invalid or out-of-range value was supplied for the input parameter.
830//
831//   * MissingAuthenticationToken
832//   The request must contain either a valid (registered) AWS access key ID or
833//   X.509 certificate.
834//
835//   * ThrottlingException
836//   The request was denied due to request throttling.
837//
838// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationSummaries
839func (c *ComputeOptimizer) GetRecommendationSummaries(input *GetRecommendationSummariesInput) (*GetRecommendationSummariesOutput, error) {
840	req, out := c.GetRecommendationSummariesRequest(input)
841	return out, req.Send()
842}
843
844// GetRecommendationSummariesWithContext is the same as GetRecommendationSummaries with the addition of
845// the ability to pass a context and additional request options.
846//
847// See GetRecommendationSummaries for details on how to use this API operation.
848//
849// The context must be non-nil and will be used for request cancellation. If
850// the context is nil a panic will occur. In the future the SDK may create
851// sub-contexts for http.Requests. See https://golang.org/pkg/context/
852// for more information on using Contexts.
853func (c *ComputeOptimizer) GetRecommendationSummariesWithContext(ctx aws.Context, input *GetRecommendationSummariesInput, opts ...request.Option) (*GetRecommendationSummariesOutput, error) {
854	req, out := c.GetRecommendationSummariesRequest(input)
855	req.SetContext(ctx)
856	req.ApplyOptions(opts...)
857	return out, req.Send()
858}
859
860const opUpdateEnrollmentStatus = "UpdateEnrollmentStatus"
861
862// UpdateEnrollmentStatusRequest generates a "aws/request.Request" representing the
863// client's request for the UpdateEnrollmentStatus operation. The "output" return
864// value will be populated with the request's response once the request completes
865// successfully.
866//
867// Use "Send" method on the returned Request to send the API call to the service.
868// the "output" return value is not valid until after Send returns without error.
869//
870// See UpdateEnrollmentStatus for more information on using the UpdateEnrollmentStatus
871// API call, and error handling.
872//
873// This method is useful when you want to inject custom logic or configuration
874// into the SDK's request lifecycle. Such as custom headers, or retry logic.
875//
876//
877//    // Example sending a request using the UpdateEnrollmentStatusRequest method.
878//    req, resp := client.UpdateEnrollmentStatusRequest(params)
879//
880//    err := req.Send()
881//    if err == nil { // resp is now filled
882//        fmt.Println(resp)
883//    }
884//
885// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatus
886func (c *ComputeOptimizer) UpdateEnrollmentStatusRequest(input *UpdateEnrollmentStatusInput) (req *request.Request, output *UpdateEnrollmentStatusOutput) {
887	op := &request.Operation{
888		Name:       opUpdateEnrollmentStatus,
889		HTTPMethod: "POST",
890		HTTPPath:   "/",
891	}
892
893	if input == nil {
894		input = &UpdateEnrollmentStatusInput{}
895	}
896
897	output = &UpdateEnrollmentStatusOutput{}
898	req = c.newRequest(op, input, output)
899	return
900}
901
902// UpdateEnrollmentStatus API operation for AWS Compute Optimizer.
903//
904// Updates the enrollment (opt in) status of an account to the AWS Compute Optimizer
905// service.
906//
907// If the account is a master account of an organization, this action can also
908// be used to enroll member accounts within the organization.
909//
910// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
911// with awserr.Error's Code and Message methods to get detailed information about
912// the error.
913//
914// See the AWS API reference guide for AWS Compute Optimizer's
915// API operation UpdateEnrollmentStatus for usage and error information.
916//
917// Returned Error Types:
918//   * InternalServerException
919//   An internal error has occurred. Try your call again.
920//
921//   * ServiceUnavailableException
922//   The request has failed due to a temporary failure of the server.
923//
924//   * AccessDeniedException
925//   You do not have sufficient access to perform this action.
926//
927//   * InvalidParameterValueException
928//   An invalid or out-of-range value was supplied for the input parameter.
929//
930//   * MissingAuthenticationToken
931//   The request must contain either a valid (registered) AWS access key ID or
932//   X.509 certificate.
933//
934//   * ThrottlingException
935//   The request was denied due to request throttling.
936//
937// See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatus
938func (c *ComputeOptimizer) UpdateEnrollmentStatus(input *UpdateEnrollmentStatusInput) (*UpdateEnrollmentStatusOutput, error) {
939	req, out := c.UpdateEnrollmentStatusRequest(input)
940	return out, req.Send()
941}
942
943// UpdateEnrollmentStatusWithContext is the same as UpdateEnrollmentStatus with the addition of
944// the ability to pass a context and additional request options.
945//
946// See UpdateEnrollmentStatus for details on how to use this API operation.
947//
948// The context must be non-nil and will be used for request cancellation. If
949// the context is nil a panic will occur. In the future the SDK may create
950// sub-contexts for http.Requests. See https://golang.org/pkg/context/
951// for more information on using Contexts.
952func (c *ComputeOptimizer) UpdateEnrollmentStatusWithContext(ctx aws.Context, input *UpdateEnrollmentStatusInput, opts ...request.Option) (*UpdateEnrollmentStatusOutput, error) {
953	req, out := c.UpdateEnrollmentStatusRequest(input)
954	req.SetContext(ctx)
955	req.ApplyOptions(opts...)
956	return out, req.Send()
957}
958
959// You do not have sufficient access to perform this action.
960type AccessDeniedException struct {
961	_            struct{}                  `type:"structure"`
962	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
963
964	Message_ *string `locationName:"message" type:"string"`
965}
966
967// String returns the string representation
968func (s AccessDeniedException) String() string {
969	return awsutil.Prettify(s)
970}
971
972// GoString returns the string representation
973func (s AccessDeniedException) GoString() string {
974	return s.String()
975}
976
977func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
978	return &AccessDeniedException{
979		RespMetadata: v,
980	}
981}
982
983// Code returns the exception type name.
984func (s *AccessDeniedException) Code() string {
985	return "AccessDeniedException"
986}
987
988// Message returns the exception's message.
989func (s *AccessDeniedException) Message() string {
990	if s.Message_ != nil {
991		return *s.Message_
992	}
993	return ""
994}
995
996// OrigErr always returns nil, satisfies awserr.Error interface.
997func (s *AccessDeniedException) OrigErr() error {
998	return nil
999}
1000
1001func (s *AccessDeniedException) Error() string {
1002	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1003}
1004
1005// Status code returns the HTTP status code for the request's response error.
1006func (s *AccessDeniedException) StatusCode() int {
1007	return s.RespMetadata.StatusCode
1008}
1009
1010// RequestID returns the service's response RequestID for request.
1011func (s *AccessDeniedException) RequestID() string {
1012	return s.RespMetadata.RequestID
1013}
1014
1015// Describes the configuration of an Auto Scaling group.
1016type AutoScalingGroupConfiguration struct {
1017	_ struct{} `type:"structure"`
1018
1019	// The desired capacity, or number of instances, for the Auto Scaling group.
1020	DesiredCapacity *int64 `locationName:"desiredCapacity" type:"integer"`
1021
1022	// The instance type for the Auto Scaling group.
1023	InstanceType *string `locationName:"instanceType" type:"string"`
1024
1025	// The maximum size, or maximum number of instances, for the Auto Scaling group.
1026	MaxSize *int64 `locationName:"maxSize" type:"integer"`
1027
1028	// The minimum size, or minimum number of instances, for the Auto Scaling group.
1029	MinSize *int64 `locationName:"minSize" type:"integer"`
1030}
1031
1032// String returns the string representation
1033func (s AutoScalingGroupConfiguration) String() string {
1034	return awsutil.Prettify(s)
1035}
1036
1037// GoString returns the string representation
1038func (s AutoScalingGroupConfiguration) GoString() string {
1039	return s.String()
1040}
1041
1042// SetDesiredCapacity sets the DesiredCapacity field's value.
1043func (s *AutoScalingGroupConfiguration) SetDesiredCapacity(v int64) *AutoScalingGroupConfiguration {
1044	s.DesiredCapacity = &v
1045	return s
1046}
1047
1048// SetInstanceType sets the InstanceType field's value.
1049func (s *AutoScalingGroupConfiguration) SetInstanceType(v string) *AutoScalingGroupConfiguration {
1050	s.InstanceType = &v
1051	return s
1052}
1053
1054// SetMaxSize sets the MaxSize field's value.
1055func (s *AutoScalingGroupConfiguration) SetMaxSize(v int64) *AutoScalingGroupConfiguration {
1056	s.MaxSize = &v
1057	return s
1058}
1059
1060// SetMinSize sets the MinSize field's value.
1061func (s *AutoScalingGroupConfiguration) SetMinSize(v int64) *AutoScalingGroupConfiguration {
1062	s.MinSize = &v
1063	return s
1064}
1065
1066// Describes an Auto Scaling group recommendation.
1067type AutoScalingGroupRecommendation struct {
1068	_ struct{} `type:"structure"`
1069
1070	// The AWS account ID of the Auto Scaling group.
1071	AccountId *string `locationName:"accountId" type:"string"`
1072
1073	// The Amazon Resource Name (ARN) of the Auto Scaling group.
1074	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string"`
1075
1076	// The name of the Auto Scaling group.
1077	AutoScalingGroupName *string `locationName:"autoScalingGroupName" type:"string"`
1078
1079	// An array of objects that describe the current configuration of the Auto Scaling
1080	// group.
1081	CurrentConfiguration *AutoScalingGroupConfiguration `locationName:"currentConfiguration" type:"structure"`
1082
1083	// The finding classification for the Auto Scaling group.
1084	//
1085	// Findings for Auto Scaling groups include:
1086	//
1087	//    * NotOptimized —An Auto Scaling group is considered not optimized when
1088	//    AWS Compute Optimizer identifies a recommendation that can provide better
1089	//    performance for your workload.
1090	//
1091	//    * Optimized —An Auto Scaling group is considered optimized when Compute
1092	//    Optimizer determines that the group is correctly provisioned to run your
1093	//    workload based on the chosen instance type. For optimized resources, Compute
1094	//    Optimizer might recommend a new generation instance type.
1095	//
1096	// The values that are returned might be NOT_OPTIMIZED or OPTIMIZED.
1097	Finding *string `locationName:"finding" type:"string" enum:"Finding"`
1098
1099	// The time stamp of when the Auto Scaling group recommendation was last refreshed.
1100	LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"`
1101
1102	// The number of days for which utilization metrics were analyzed for the Auto
1103	// Scaling group.
1104	LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"`
1105
1106	// An array of objects that describe the recommendation options for the Auto
1107	// Scaling group.
1108	RecommendationOptions []*AutoScalingGroupRecommendationOption `locationName:"recommendationOptions" type:"list"`
1109
1110	// An array of objects that describe the utilization metrics of the Auto Scaling
1111	// group.
1112	UtilizationMetrics []*UtilizationMetric `locationName:"utilizationMetrics" type:"list"`
1113}
1114
1115// String returns the string representation
1116func (s AutoScalingGroupRecommendation) String() string {
1117	return awsutil.Prettify(s)
1118}
1119
1120// GoString returns the string representation
1121func (s AutoScalingGroupRecommendation) GoString() string {
1122	return s.String()
1123}
1124
1125// SetAccountId sets the AccountId field's value.
1126func (s *AutoScalingGroupRecommendation) SetAccountId(v string) *AutoScalingGroupRecommendation {
1127	s.AccountId = &v
1128	return s
1129}
1130
1131// SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
1132func (s *AutoScalingGroupRecommendation) SetAutoScalingGroupArn(v string) *AutoScalingGroupRecommendation {
1133	s.AutoScalingGroupArn = &v
1134	return s
1135}
1136
1137// SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
1138func (s *AutoScalingGroupRecommendation) SetAutoScalingGroupName(v string) *AutoScalingGroupRecommendation {
1139	s.AutoScalingGroupName = &v
1140	return s
1141}
1142
1143// SetCurrentConfiguration sets the CurrentConfiguration field's value.
1144func (s *AutoScalingGroupRecommendation) SetCurrentConfiguration(v *AutoScalingGroupConfiguration) *AutoScalingGroupRecommendation {
1145	s.CurrentConfiguration = v
1146	return s
1147}
1148
1149// SetFinding sets the Finding field's value.
1150func (s *AutoScalingGroupRecommendation) SetFinding(v string) *AutoScalingGroupRecommendation {
1151	s.Finding = &v
1152	return s
1153}
1154
1155// SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value.
1156func (s *AutoScalingGroupRecommendation) SetLastRefreshTimestamp(v time.Time) *AutoScalingGroupRecommendation {
1157	s.LastRefreshTimestamp = &v
1158	return s
1159}
1160
1161// SetLookBackPeriodInDays sets the LookBackPeriodInDays field's value.
1162func (s *AutoScalingGroupRecommendation) SetLookBackPeriodInDays(v float64) *AutoScalingGroupRecommendation {
1163	s.LookBackPeriodInDays = &v
1164	return s
1165}
1166
1167// SetRecommendationOptions sets the RecommendationOptions field's value.
1168func (s *AutoScalingGroupRecommendation) SetRecommendationOptions(v []*AutoScalingGroupRecommendationOption) *AutoScalingGroupRecommendation {
1169	s.RecommendationOptions = v
1170	return s
1171}
1172
1173// SetUtilizationMetrics sets the UtilizationMetrics field's value.
1174func (s *AutoScalingGroupRecommendation) SetUtilizationMetrics(v []*UtilizationMetric) *AutoScalingGroupRecommendation {
1175	s.UtilizationMetrics = v
1176	return s
1177}
1178
1179// Describes a recommendation option for an Auto Scaling group.
1180type AutoScalingGroupRecommendationOption struct {
1181	_ struct{} `type:"structure"`
1182
1183	// An array of objects that describe an Auto Scaling group configuration.
1184	Configuration *AutoScalingGroupConfiguration `locationName:"configuration" type:"structure"`
1185
1186	// The performance risk of the Auto Scaling group configuration recommendation.
1187	//
1188	// Performance risk is the likelihood of the recommended instance type not meeting
1189	// the performance requirement of your workload.
1190	//
1191	// The lowest performance risk is categorized as 0, and the highest as 5.
1192	PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"`
1193
1194	// An array of objects that describe the projected utilization metrics of the
1195	// Auto Scaling group recommendation option.
1196	//
1197	// The Cpu and Memory metrics are the only projected utilization metrics returned.
1198	// Additionally, the Memory metric is returned only for resources that have
1199	// the unified CloudWatch agent installed on them. For more information, see
1200	// Enabling Memory Utilization with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
1201	ProjectedUtilizationMetrics []*UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"`
1202
1203	// The rank of the Auto Scaling group recommendation option.
1204	//
1205	// The top recommendation option is ranked as 1.
1206	Rank *int64 `locationName:"rank" type:"integer"`
1207}
1208
1209// String returns the string representation
1210func (s AutoScalingGroupRecommendationOption) String() string {
1211	return awsutil.Prettify(s)
1212}
1213
1214// GoString returns the string representation
1215func (s AutoScalingGroupRecommendationOption) GoString() string {
1216	return s.String()
1217}
1218
1219// SetConfiguration sets the Configuration field's value.
1220func (s *AutoScalingGroupRecommendationOption) SetConfiguration(v *AutoScalingGroupConfiguration) *AutoScalingGroupRecommendationOption {
1221	s.Configuration = v
1222	return s
1223}
1224
1225// SetPerformanceRisk sets the PerformanceRisk field's value.
1226func (s *AutoScalingGroupRecommendationOption) SetPerformanceRisk(v float64) *AutoScalingGroupRecommendationOption {
1227	s.PerformanceRisk = &v
1228	return s
1229}
1230
1231// SetProjectedUtilizationMetrics sets the ProjectedUtilizationMetrics field's value.
1232func (s *AutoScalingGroupRecommendationOption) SetProjectedUtilizationMetrics(v []*UtilizationMetric) *AutoScalingGroupRecommendationOption {
1233	s.ProjectedUtilizationMetrics = v
1234	return s
1235}
1236
1237// SetRank sets the Rank field's value.
1238func (s *AutoScalingGroupRecommendationOption) SetRank(v int64) *AutoScalingGroupRecommendationOption {
1239	s.Rank = &v
1240	return s
1241}
1242
1243type DescribeRecommendationExportJobsInput struct {
1244	_ struct{} `type:"structure"`
1245
1246	// An array of objects that describe a filter to return a more specific list
1247	// of export jobs.
1248	Filters []*JobFilter `locationName:"filters" type:"list"`
1249
1250	// The identification numbers of the export jobs to return.
1251	//
1252	// An export job ID is returned when you create an export using the ExportAutoScalingGroupRecommendations
1253	// or ExportEC2InstanceRecommendations actions.
1254	//
1255	// All export jobs created in the last seven days are returned if this parameter
1256	// is omitted.
1257	JobIds []*string `locationName:"jobIds" type:"list"`
1258
1259	// The maximum number of export jobs to return with a single request.
1260	//
1261	// To retrieve the remaining results, make another request with the returned
1262	// NextToken value.
1263	MaxResults *int64 `locationName:"maxResults" type:"integer"`
1264
1265	// The token to advance to the next page of export jobs.
1266	NextToken *string `locationName:"nextToken" type:"string"`
1267}
1268
1269// String returns the string representation
1270func (s DescribeRecommendationExportJobsInput) String() string {
1271	return awsutil.Prettify(s)
1272}
1273
1274// GoString returns the string representation
1275func (s DescribeRecommendationExportJobsInput) GoString() string {
1276	return s.String()
1277}
1278
1279// SetFilters sets the Filters field's value.
1280func (s *DescribeRecommendationExportJobsInput) SetFilters(v []*JobFilter) *DescribeRecommendationExportJobsInput {
1281	s.Filters = v
1282	return s
1283}
1284
1285// SetJobIds sets the JobIds field's value.
1286func (s *DescribeRecommendationExportJobsInput) SetJobIds(v []*string) *DescribeRecommendationExportJobsInput {
1287	s.JobIds = v
1288	return s
1289}
1290
1291// SetMaxResults sets the MaxResults field's value.
1292func (s *DescribeRecommendationExportJobsInput) SetMaxResults(v int64) *DescribeRecommendationExportJobsInput {
1293	s.MaxResults = &v
1294	return s
1295}
1296
1297// SetNextToken sets the NextToken field's value.
1298func (s *DescribeRecommendationExportJobsInput) SetNextToken(v string) *DescribeRecommendationExportJobsInput {
1299	s.NextToken = &v
1300	return s
1301}
1302
1303type DescribeRecommendationExportJobsOutput struct {
1304	_ struct{} `type:"structure"`
1305
1306	// The token to use to advance to the next page of export jobs.
1307	//
1308	// This value is null when there are no more pages of export jobs to return.
1309	NextToken *string `locationName:"nextToken" type:"string"`
1310
1311	// An array of objects that describe recommendation export jobs.
1312	RecommendationExportJobs []*RecommendationExportJob `locationName:"recommendationExportJobs" type:"list"`
1313}
1314
1315// String returns the string representation
1316func (s DescribeRecommendationExportJobsOutput) String() string {
1317	return awsutil.Prettify(s)
1318}
1319
1320// GoString returns the string representation
1321func (s DescribeRecommendationExportJobsOutput) GoString() string {
1322	return s.String()
1323}
1324
1325// SetNextToken sets the NextToken field's value.
1326func (s *DescribeRecommendationExportJobsOutput) SetNextToken(v string) *DescribeRecommendationExportJobsOutput {
1327	s.NextToken = &v
1328	return s
1329}
1330
1331// SetRecommendationExportJobs sets the RecommendationExportJobs field's value.
1332func (s *DescribeRecommendationExportJobsOutput) SetRecommendationExportJobs(v []*RecommendationExportJob) *DescribeRecommendationExportJobsOutput {
1333	s.RecommendationExportJobs = v
1334	return s
1335}
1336
1337type ExportAutoScalingGroupRecommendationsInput struct {
1338	_ struct{} `type:"structure"`
1339
1340	// The IDs of the AWS accounts for which to export Auto Scaling group recommendations.
1341	//
1342	// If your account is the master account of an organization, use this parameter
1343	// to specify the member accounts for which you want to export recommendations.
1344	//
1345	// This parameter cannot be specified together with the include member accounts
1346	// parameter. The parameters are mutually exclusive.
1347	//
1348	// Recommendations for member accounts are not included in the export if this
1349	// parameter, or the include member accounts parameter, is omitted.
1350	//
1351	// You can specify multiple account IDs per request.
1352	AccountIds []*string `locationName:"accountIds" type:"list"`
1353
1354	// The recommendations data to include in the export file. For more information
1355	// about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files)
1356	// in the Compute Optimizer User Guide.
1357	FieldsToExport []*string `locationName:"fieldsToExport" type:"list"`
1358
1359	// The format of the export file.
1360	//
1361	// The only export file format currently supported is Csv.
1362	FileFormat *string `locationName:"fileFormat" type:"string" enum:"FileFormat"`
1363
1364	// An array of objects that describe a filter to export a more specific set
1365	// of Auto Scaling group recommendations.
1366	Filters []*Filter `locationName:"filters" type:"list"`
1367
1368	// Indicates whether to include recommendations for resources in all member
1369	// accounts of the organization if your account is the master account of an
1370	// organization.
1371	//
1372	// The member accounts must also be opted in to Compute Optimizer.
1373	//
1374	// Recommendations for member accounts of the organization are not included
1375	// in the export file if this parameter is omitted.
1376	//
1377	// This parameter cannot be specified together with the account IDs parameter.
1378	// The parameters are mutually exclusive.
1379	//
1380	// Recommendations for member accounts are not included in the export if this
1381	// parameter, or the account IDs parameter, is omitted.
1382	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
1383
1384	// An object to specify the destination Amazon Simple Storage Service (Amazon
1385	// S3) bucket name and key prefix for the export job.
1386	//
1387	// You must create the destination Amazon S3 bucket for your recommendations
1388	// export before you create the export job. Compute Optimizer does not create
1389	// the S3 bucket for you. After you create the S3 bucket, ensure that it has
1390	// the required permission policy to allow Compute Optimizer to write the export
1391	// file to it. If you plan to specify an object prefix when you create the export
1392	// job, you must include the object prefix in the policy that you add to the
1393	// S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
1394	// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
1395	// in the Compute Optimizer user guide.
1396	//
1397	// S3DestinationConfig is a required field
1398	S3DestinationConfig *S3DestinationConfig `locationName:"s3DestinationConfig" type:"structure" required:"true"`
1399}
1400
1401// String returns the string representation
1402func (s ExportAutoScalingGroupRecommendationsInput) String() string {
1403	return awsutil.Prettify(s)
1404}
1405
1406// GoString returns the string representation
1407func (s ExportAutoScalingGroupRecommendationsInput) GoString() string {
1408	return s.String()
1409}
1410
1411// Validate inspects the fields of the type to determine if they are valid.
1412func (s *ExportAutoScalingGroupRecommendationsInput) Validate() error {
1413	invalidParams := request.ErrInvalidParams{Context: "ExportAutoScalingGroupRecommendationsInput"}
1414	if s.S3DestinationConfig == nil {
1415		invalidParams.Add(request.NewErrParamRequired("S3DestinationConfig"))
1416	}
1417
1418	if invalidParams.Len() > 0 {
1419		return invalidParams
1420	}
1421	return nil
1422}
1423
1424// SetAccountIds sets the AccountIds field's value.
1425func (s *ExportAutoScalingGroupRecommendationsInput) SetAccountIds(v []*string) *ExportAutoScalingGroupRecommendationsInput {
1426	s.AccountIds = v
1427	return s
1428}
1429
1430// SetFieldsToExport sets the FieldsToExport field's value.
1431func (s *ExportAutoScalingGroupRecommendationsInput) SetFieldsToExport(v []*string) *ExportAutoScalingGroupRecommendationsInput {
1432	s.FieldsToExport = v
1433	return s
1434}
1435
1436// SetFileFormat sets the FileFormat field's value.
1437func (s *ExportAutoScalingGroupRecommendationsInput) SetFileFormat(v string) *ExportAutoScalingGroupRecommendationsInput {
1438	s.FileFormat = &v
1439	return s
1440}
1441
1442// SetFilters sets the Filters field's value.
1443func (s *ExportAutoScalingGroupRecommendationsInput) SetFilters(v []*Filter) *ExportAutoScalingGroupRecommendationsInput {
1444	s.Filters = v
1445	return s
1446}
1447
1448// SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
1449func (s *ExportAutoScalingGroupRecommendationsInput) SetIncludeMemberAccounts(v bool) *ExportAutoScalingGroupRecommendationsInput {
1450	s.IncludeMemberAccounts = &v
1451	return s
1452}
1453
1454// SetS3DestinationConfig sets the S3DestinationConfig field's value.
1455func (s *ExportAutoScalingGroupRecommendationsInput) SetS3DestinationConfig(v *S3DestinationConfig) *ExportAutoScalingGroupRecommendationsInput {
1456	s.S3DestinationConfig = v
1457	return s
1458}
1459
1460type ExportAutoScalingGroupRecommendationsOutput struct {
1461	_ struct{} `type:"structure"`
1462
1463	// The identification number of the export job.
1464	//
1465	// Use the DescribeRecommendationExportJobs action, and specify the job ID to
1466	// view the status of an export job.
1467	JobId *string `locationName:"jobId" type:"string"`
1468
1469	// An object that describes the destination Amazon S3 bucket of a recommendations
1470	// export file.
1471	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
1472}
1473
1474// String returns the string representation
1475func (s ExportAutoScalingGroupRecommendationsOutput) String() string {
1476	return awsutil.Prettify(s)
1477}
1478
1479// GoString returns the string representation
1480func (s ExportAutoScalingGroupRecommendationsOutput) GoString() string {
1481	return s.String()
1482}
1483
1484// SetJobId sets the JobId field's value.
1485func (s *ExportAutoScalingGroupRecommendationsOutput) SetJobId(v string) *ExportAutoScalingGroupRecommendationsOutput {
1486	s.JobId = &v
1487	return s
1488}
1489
1490// SetS3Destination sets the S3Destination field's value.
1491func (s *ExportAutoScalingGroupRecommendationsOutput) SetS3Destination(v *S3Destination) *ExportAutoScalingGroupRecommendationsOutput {
1492	s.S3Destination = v
1493	return s
1494}
1495
1496// Describes the destination of the recommendations export and metadata files.
1497type ExportDestination struct {
1498	_ struct{} `type:"structure"`
1499
1500	// An object that describes the destination Amazon Simple Storage Service (Amazon
1501	// S3) bucket name and object keys of a recommendations export file, and its
1502	// associated metadata file.
1503	S3 *S3Destination `locationName:"s3" type:"structure"`
1504}
1505
1506// String returns the string representation
1507func (s ExportDestination) String() string {
1508	return awsutil.Prettify(s)
1509}
1510
1511// GoString returns the string representation
1512func (s ExportDestination) GoString() string {
1513	return s.String()
1514}
1515
1516// SetS3 sets the S3 field's value.
1517func (s *ExportDestination) SetS3(v *S3Destination) *ExportDestination {
1518	s.S3 = v
1519	return s
1520}
1521
1522type ExportEC2InstanceRecommendationsInput struct {
1523	_ struct{} `type:"structure"`
1524
1525	// The IDs of the AWS accounts for which to export instance recommendations.
1526	//
1527	// If your account is the master account of an organization, use this parameter
1528	// to specify the member accounts for which you want to export recommendations.
1529	//
1530	// This parameter cannot be specified together with the include member accounts
1531	// parameter. The parameters are mutually exclusive.
1532	//
1533	// Recommendations for member accounts are not included in the export if this
1534	// parameter, or the include member accounts parameter, is omitted.
1535	//
1536	// You can specify multiple account IDs per request.
1537	AccountIds []*string `locationName:"accountIds" type:"list"`
1538
1539	// The recommendations data to include in the export file. For more information
1540	// about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files)
1541	// in the Compute Optimizer User Guide.
1542	FieldsToExport []*string `locationName:"fieldsToExport" type:"list"`
1543
1544	// The format of the export file.
1545	//
1546	// The only export file format currently supported is Csv.
1547	FileFormat *string `locationName:"fileFormat" type:"string" enum:"FileFormat"`
1548
1549	// An array of objects that describe a filter to export a more specific set
1550	// of instance recommendations.
1551	Filters []*Filter `locationName:"filters" type:"list"`
1552
1553	// Indicates whether to include recommendations for resources in all member
1554	// accounts of the organization if your account is the master account of an
1555	// organization.
1556	//
1557	// The member accounts must also be opted in to Compute Optimizer.
1558	//
1559	// Recommendations for member accounts of the organization are not included
1560	// in the export file if this parameter is omitted.
1561	//
1562	// Recommendations for member accounts are not included in the export if this
1563	// parameter, or the account IDs parameter, is omitted.
1564	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
1565
1566	// An object to specify the destination Amazon Simple Storage Service (Amazon
1567	// S3) bucket name and key prefix for the export job.
1568	//
1569	// You must create the destination Amazon S3 bucket for your recommendations
1570	// export before you create the export job. Compute Optimizer does not create
1571	// the S3 bucket for you. After you create the S3 bucket, ensure that it has
1572	// the required permission policy to allow Compute Optimizer to write the export
1573	// file to it. If you plan to specify an object prefix when you create the export
1574	// job, you must include the object prefix in the policy that you add to the
1575	// S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
1576	// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
1577	// in the Compute Optimizer user guide.
1578	//
1579	// S3DestinationConfig is a required field
1580	S3DestinationConfig *S3DestinationConfig `locationName:"s3DestinationConfig" type:"structure" required:"true"`
1581}
1582
1583// String returns the string representation
1584func (s ExportEC2InstanceRecommendationsInput) String() string {
1585	return awsutil.Prettify(s)
1586}
1587
1588// GoString returns the string representation
1589func (s ExportEC2InstanceRecommendationsInput) GoString() string {
1590	return s.String()
1591}
1592
1593// Validate inspects the fields of the type to determine if they are valid.
1594func (s *ExportEC2InstanceRecommendationsInput) Validate() error {
1595	invalidParams := request.ErrInvalidParams{Context: "ExportEC2InstanceRecommendationsInput"}
1596	if s.S3DestinationConfig == nil {
1597		invalidParams.Add(request.NewErrParamRequired("S3DestinationConfig"))
1598	}
1599
1600	if invalidParams.Len() > 0 {
1601		return invalidParams
1602	}
1603	return nil
1604}
1605
1606// SetAccountIds sets the AccountIds field's value.
1607func (s *ExportEC2InstanceRecommendationsInput) SetAccountIds(v []*string) *ExportEC2InstanceRecommendationsInput {
1608	s.AccountIds = v
1609	return s
1610}
1611
1612// SetFieldsToExport sets the FieldsToExport field's value.
1613func (s *ExportEC2InstanceRecommendationsInput) SetFieldsToExport(v []*string) *ExportEC2InstanceRecommendationsInput {
1614	s.FieldsToExport = v
1615	return s
1616}
1617
1618// SetFileFormat sets the FileFormat field's value.
1619func (s *ExportEC2InstanceRecommendationsInput) SetFileFormat(v string) *ExportEC2InstanceRecommendationsInput {
1620	s.FileFormat = &v
1621	return s
1622}
1623
1624// SetFilters sets the Filters field's value.
1625func (s *ExportEC2InstanceRecommendationsInput) SetFilters(v []*Filter) *ExportEC2InstanceRecommendationsInput {
1626	s.Filters = v
1627	return s
1628}
1629
1630// SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
1631func (s *ExportEC2InstanceRecommendationsInput) SetIncludeMemberAccounts(v bool) *ExportEC2InstanceRecommendationsInput {
1632	s.IncludeMemberAccounts = &v
1633	return s
1634}
1635
1636// SetS3DestinationConfig sets the S3DestinationConfig field's value.
1637func (s *ExportEC2InstanceRecommendationsInput) SetS3DestinationConfig(v *S3DestinationConfig) *ExportEC2InstanceRecommendationsInput {
1638	s.S3DestinationConfig = v
1639	return s
1640}
1641
1642type ExportEC2InstanceRecommendationsOutput struct {
1643	_ struct{} `type:"structure"`
1644
1645	// The identification number of the export job.
1646	//
1647	// Use the DescribeRecommendationExportJobs action, and specify the job ID to
1648	// view the status of an export job.
1649	JobId *string `locationName:"jobId" type:"string"`
1650
1651	// An object that describes the destination Amazon S3 bucket of a recommendations
1652	// export file.
1653	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
1654}
1655
1656// String returns the string representation
1657func (s ExportEC2InstanceRecommendationsOutput) String() string {
1658	return awsutil.Prettify(s)
1659}
1660
1661// GoString returns the string representation
1662func (s ExportEC2InstanceRecommendationsOutput) GoString() string {
1663	return s.String()
1664}
1665
1666// SetJobId sets the JobId field's value.
1667func (s *ExportEC2InstanceRecommendationsOutput) SetJobId(v string) *ExportEC2InstanceRecommendationsOutput {
1668	s.JobId = &v
1669	return s
1670}
1671
1672// SetS3Destination sets the S3Destination field's value.
1673func (s *ExportEC2InstanceRecommendationsOutput) SetS3Destination(v *S3Destination) *ExportEC2InstanceRecommendationsOutput {
1674	s.S3Destination = v
1675	return s
1676}
1677
1678// Describes a filter that returns a more specific list of recommendations.
1679type Filter struct {
1680	_ struct{} `type:"structure"`
1681
1682	// The name of the filter.
1683	//
1684	// Specify Finding to return recommendations with a specific findings classification
1685	// (e.g., Overprovisioned).
1686	//
1687	// Specify RecommendationSourceType to return recommendations of a specific
1688	// resource type (e.g., AutoScalingGroup).
1689	Name *string `locationName:"name" type:"string" enum:"FilterName"`
1690
1691	// The value of the filter.
1692	//
1693	// If you specify the name parameter as Finding, and you request recommendations
1694	// for an instance, then the valid values are Underprovisioned, Overprovisioned,
1695	// NotOptimized, or Optimized.
1696	//
1697	// If you specify the name parameter as Finding, and you request recommendations
1698	// for an Auto Scaling group, then the valid values are Optimized, or NotOptimized.
1699	//
1700	// If you specify the name parameter as RecommendationSourceType, then the valid
1701	// values are Ec2Instance, or AutoScalingGroup.
1702	Values []*string `locationName:"values" type:"list"`
1703}
1704
1705// String returns the string representation
1706func (s Filter) String() string {
1707	return awsutil.Prettify(s)
1708}
1709
1710// GoString returns the string representation
1711func (s Filter) GoString() string {
1712	return s.String()
1713}
1714
1715// SetName sets the Name field's value.
1716func (s *Filter) SetName(v string) *Filter {
1717	s.Name = &v
1718	return s
1719}
1720
1721// SetValues sets the Values field's value.
1722func (s *Filter) SetValues(v []*string) *Filter {
1723	s.Values = v
1724	return s
1725}
1726
1727type GetAutoScalingGroupRecommendationsInput struct {
1728	_ struct{} `type:"structure"`
1729
1730	// The IDs of the AWS accounts for which to return Auto Scaling group recommendations.
1731	//
1732	// If your account is the master account of an organization, use this parameter
1733	// to specify the member accounts for which you want to return Auto Scaling
1734	// group recommendations.
1735	//
1736	// Only one account ID can be specified per request.
1737	AccountIds []*string `locationName:"accountIds" type:"list"`
1738
1739	// The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return
1740	// recommendations.
1741	AutoScalingGroupArns []*string `locationName:"autoScalingGroupArns" type:"list"`
1742
1743	// An array of objects that describe a filter that returns a more specific list
1744	// of Auto Scaling group recommendations.
1745	Filters []*Filter `locationName:"filters" type:"list"`
1746
1747	// The maximum number of Auto Scaling group recommendations to return with a
1748	// single request.
1749	//
1750	// To retrieve the remaining results, make another request with the returned
1751	// NextToken value.
1752	MaxResults *int64 `locationName:"maxResults" type:"integer"`
1753
1754	// The token to advance to the next page of Auto Scaling group recommendations.
1755	NextToken *string `locationName:"nextToken" type:"string"`
1756}
1757
1758// String returns the string representation
1759func (s GetAutoScalingGroupRecommendationsInput) String() string {
1760	return awsutil.Prettify(s)
1761}
1762
1763// GoString returns the string representation
1764func (s GetAutoScalingGroupRecommendationsInput) GoString() string {
1765	return s.String()
1766}
1767
1768// SetAccountIds sets the AccountIds field's value.
1769func (s *GetAutoScalingGroupRecommendationsInput) SetAccountIds(v []*string) *GetAutoScalingGroupRecommendationsInput {
1770	s.AccountIds = v
1771	return s
1772}
1773
1774// SetAutoScalingGroupArns sets the AutoScalingGroupArns field's value.
1775func (s *GetAutoScalingGroupRecommendationsInput) SetAutoScalingGroupArns(v []*string) *GetAutoScalingGroupRecommendationsInput {
1776	s.AutoScalingGroupArns = v
1777	return s
1778}
1779
1780// SetFilters sets the Filters field's value.
1781func (s *GetAutoScalingGroupRecommendationsInput) SetFilters(v []*Filter) *GetAutoScalingGroupRecommendationsInput {
1782	s.Filters = v
1783	return s
1784}
1785
1786// SetMaxResults sets the MaxResults field's value.
1787func (s *GetAutoScalingGroupRecommendationsInput) SetMaxResults(v int64) *GetAutoScalingGroupRecommendationsInput {
1788	s.MaxResults = &v
1789	return s
1790}
1791
1792// SetNextToken sets the NextToken field's value.
1793func (s *GetAutoScalingGroupRecommendationsInput) SetNextToken(v string) *GetAutoScalingGroupRecommendationsInput {
1794	s.NextToken = &v
1795	return s
1796}
1797
1798type GetAutoScalingGroupRecommendationsOutput struct {
1799	_ struct{} `type:"structure"`
1800
1801	// An array of objects that describe Auto Scaling group recommendations.
1802	AutoScalingGroupRecommendations []*AutoScalingGroupRecommendation `locationName:"autoScalingGroupRecommendations" type:"list"`
1803
1804	// An array of objects that describe errors of the request.
1805	//
1806	// For example, an error is returned if you request recommendations for an unsupported
1807	// Auto Scaling group.
1808	Errors []*GetRecommendationError `locationName:"errors" type:"list"`
1809
1810	// The token to use to advance to the next page of Auto Scaling group recommendations.
1811	//
1812	// This value is null when there are no more pages of Auto Scaling group recommendations
1813	// to return.
1814	NextToken *string `locationName:"nextToken" type:"string"`
1815}
1816
1817// String returns the string representation
1818func (s GetAutoScalingGroupRecommendationsOutput) String() string {
1819	return awsutil.Prettify(s)
1820}
1821
1822// GoString returns the string representation
1823func (s GetAutoScalingGroupRecommendationsOutput) GoString() string {
1824	return s.String()
1825}
1826
1827// SetAutoScalingGroupRecommendations sets the AutoScalingGroupRecommendations field's value.
1828func (s *GetAutoScalingGroupRecommendationsOutput) SetAutoScalingGroupRecommendations(v []*AutoScalingGroupRecommendation) *GetAutoScalingGroupRecommendationsOutput {
1829	s.AutoScalingGroupRecommendations = v
1830	return s
1831}
1832
1833// SetErrors sets the Errors field's value.
1834func (s *GetAutoScalingGroupRecommendationsOutput) SetErrors(v []*GetRecommendationError) *GetAutoScalingGroupRecommendationsOutput {
1835	s.Errors = v
1836	return s
1837}
1838
1839// SetNextToken sets the NextToken field's value.
1840func (s *GetAutoScalingGroupRecommendationsOutput) SetNextToken(v string) *GetAutoScalingGroupRecommendationsOutput {
1841	s.NextToken = &v
1842	return s
1843}
1844
1845type GetEC2InstanceRecommendationsInput struct {
1846	_ struct{} `type:"structure"`
1847
1848	// The IDs of the AWS accounts for which to return instance recommendations.
1849	//
1850	// If your account is the master account of an organization, use this parameter
1851	// to specify the member accounts for which you want to return instance recommendations.
1852	//
1853	// Only one account ID can be specified per request.
1854	AccountIds []*string `locationName:"accountIds" type:"list"`
1855
1856	// An array of objects that describe a filter that returns a more specific list
1857	// of instance recommendations.
1858	Filters []*Filter `locationName:"filters" type:"list"`
1859
1860	// The Amazon Resource Name (ARN) of the instances for which to return recommendations.
1861	InstanceArns []*string `locationName:"instanceArns" type:"list"`
1862
1863	// The maximum number of instance recommendations to return with a single request.
1864	//
1865	// To retrieve the remaining results, make another request with the returned
1866	// NextToken value.
1867	MaxResults *int64 `locationName:"maxResults" type:"integer"`
1868
1869	// The token to advance to the next page of instance recommendations.
1870	NextToken *string `locationName:"nextToken" type:"string"`
1871}
1872
1873// String returns the string representation
1874func (s GetEC2InstanceRecommendationsInput) String() string {
1875	return awsutil.Prettify(s)
1876}
1877
1878// GoString returns the string representation
1879func (s GetEC2InstanceRecommendationsInput) GoString() string {
1880	return s.String()
1881}
1882
1883// SetAccountIds sets the AccountIds field's value.
1884func (s *GetEC2InstanceRecommendationsInput) SetAccountIds(v []*string) *GetEC2InstanceRecommendationsInput {
1885	s.AccountIds = v
1886	return s
1887}
1888
1889// SetFilters sets the Filters field's value.
1890func (s *GetEC2InstanceRecommendationsInput) SetFilters(v []*Filter) *GetEC2InstanceRecommendationsInput {
1891	s.Filters = v
1892	return s
1893}
1894
1895// SetInstanceArns sets the InstanceArns field's value.
1896func (s *GetEC2InstanceRecommendationsInput) SetInstanceArns(v []*string) *GetEC2InstanceRecommendationsInput {
1897	s.InstanceArns = v
1898	return s
1899}
1900
1901// SetMaxResults sets the MaxResults field's value.
1902func (s *GetEC2InstanceRecommendationsInput) SetMaxResults(v int64) *GetEC2InstanceRecommendationsInput {
1903	s.MaxResults = &v
1904	return s
1905}
1906
1907// SetNextToken sets the NextToken field's value.
1908func (s *GetEC2InstanceRecommendationsInput) SetNextToken(v string) *GetEC2InstanceRecommendationsInput {
1909	s.NextToken = &v
1910	return s
1911}
1912
1913type GetEC2InstanceRecommendationsOutput struct {
1914	_ struct{} `type:"structure"`
1915
1916	// An array of objects that describe errors of the request.
1917	//
1918	// For example, an error is returned if you request recommendations for an instance
1919	// of an unsupported instance family.
1920	Errors []*GetRecommendationError `locationName:"errors" type:"list"`
1921
1922	// An array of objects that describe instance recommendations.
1923	InstanceRecommendations []*InstanceRecommendation `locationName:"instanceRecommendations" type:"list"`
1924
1925	// The token to use to advance to the next page of instance recommendations.
1926	//
1927	// This value is null when there are no more pages of instance recommendations
1928	// to return.
1929	NextToken *string `locationName:"nextToken" type:"string"`
1930}
1931
1932// String returns the string representation
1933func (s GetEC2InstanceRecommendationsOutput) String() string {
1934	return awsutil.Prettify(s)
1935}
1936
1937// GoString returns the string representation
1938func (s GetEC2InstanceRecommendationsOutput) GoString() string {
1939	return s.String()
1940}
1941
1942// SetErrors sets the Errors field's value.
1943func (s *GetEC2InstanceRecommendationsOutput) SetErrors(v []*GetRecommendationError) *GetEC2InstanceRecommendationsOutput {
1944	s.Errors = v
1945	return s
1946}
1947
1948// SetInstanceRecommendations sets the InstanceRecommendations field's value.
1949func (s *GetEC2InstanceRecommendationsOutput) SetInstanceRecommendations(v []*InstanceRecommendation) *GetEC2InstanceRecommendationsOutput {
1950	s.InstanceRecommendations = v
1951	return s
1952}
1953
1954// SetNextToken sets the NextToken field's value.
1955func (s *GetEC2InstanceRecommendationsOutput) SetNextToken(v string) *GetEC2InstanceRecommendationsOutput {
1956	s.NextToken = &v
1957	return s
1958}
1959
1960type GetEC2RecommendationProjectedMetricsInput struct {
1961	_ struct{} `type:"structure"`
1962
1963	// The time stamp of the last projected metrics data point to return.
1964	//
1965	// EndTime is a required field
1966	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
1967
1968	// The Amazon Resource Name (ARN) of the instances for which to return recommendation
1969	// projected metrics.
1970	//
1971	// InstanceArn is a required field
1972	InstanceArn *string `locationName:"instanceArn" type:"string" required:"true"`
1973
1974	// The granularity, in seconds, of the projected metrics data points.
1975	//
1976	// Period is a required field
1977	Period *int64 `locationName:"period" type:"integer" required:"true"`
1978
1979	// The time stamp of the first projected metrics data point to return.
1980	//
1981	// StartTime is a required field
1982	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
1983
1984	// The statistic of the projected metrics.
1985	//
1986	// Stat is a required field
1987	Stat *string `locationName:"stat" type:"string" required:"true" enum:"MetricStatistic"`
1988}
1989
1990// String returns the string representation
1991func (s GetEC2RecommendationProjectedMetricsInput) String() string {
1992	return awsutil.Prettify(s)
1993}
1994
1995// GoString returns the string representation
1996func (s GetEC2RecommendationProjectedMetricsInput) GoString() string {
1997	return s.String()
1998}
1999
2000// Validate inspects the fields of the type to determine if they are valid.
2001func (s *GetEC2RecommendationProjectedMetricsInput) Validate() error {
2002	invalidParams := request.ErrInvalidParams{Context: "GetEC2RecommendationProjectedMetricsInput"}
2003	if s.EndTime == nil {
2004		invalidParams.Add(request.NewErrParamRequired("EndTime"))
2005	}
2006	if s.InstanceArn == nil {
2007		invalidParams.Add(request.NewErrParamRequired("InstanceArn"))
2008	}
2009	if s.Period == nil {
2010		invalidParams.Add(request.NewErrParamRequired("Period"))
2011	}
2012	if s.StartTime == nil {
2013		invalidParams.Add(request.NewErrParamRequired("StartTime"))
2014	}
2015	if s.Stat == nil {
2016		invalidParams.Add(request.NewErrParamRequired("Stat"))
2017	}
2018
2019	if invalidParams.Len() > 0 {
2020		return invalidParams
2021	}
2022	return nil
2023}
2024
2025// SetEndTime sets the EndTime field's value.
2026func (s *GetEC2RecommendationProjectedMetricsInput) SetEndTime(v time.Time) *GetEC2RecommendationProjectedMetricsInput {
2027	s.EndTime = &v
2028	return s
2029}
2030
2031// SetInstanceArn sets the InstanceArn field's value.
2032func (s *GetEC2RecommendationProjectedMetricsInput) SetInstanceArn(v string) *GetEC2RecommendationProjectedMetricsInput {
2033	s.InstanceArn = &v
2034	return s
2035}
2036
2037// SetPeriod sets the Period field's value.
2038func (s *GetEC2RecommendationProjectedMetricsInput) SetPeriod(v int64) *GetEC2RecommendationProjectedMetricsInput {
2039	s.Period = &v
2040	return s
2041}
2042
2043// SetStartTime sets the StartTime field's value.
2044func (s *GetEC2RecommendationProjectedMetricsInput) SetStartTime(v time.Time) *GetEC2RecommendationProjectedMetricsInput {
2045	s.StartTime = &v
2046	return s
2047}
2048
2049// SetStat sets the Stat field's value.
2050func (s *GetEC2RecommendationProjectedMetricsInput) SetStat(v string) *GetEC2RecommendationProjectedMetricsInput {
2051	s.Stat = &v
2052	return s
2053}
2054
2055type GetEC2RecommendationProjectedMetricsOutput struct {
2056	_ struct{} `type:"structure"`
2057
2058	// An array of objects that describe a projected metrics.
2059	RecommendedOptionProjectedMetrics []*RecommendedOptionProjectedMetric `locationName:"recommendedOptionProjectedMetrics" type:"list"`
2060}
2061
2062// String returns the string representation
2063func (s GetEC2RecommendationProjectedMetricsOutput) String() string {
2064	return awsutil.Prettify(s)
2065}
2066
2067// GoString returns the string representation
2068func (s GetEC2RecommendationProjectedMetricsOutput) GoString() string {
2069	return s.String()
2070}
2071
2072// SetRecommendedOptionProjectedMetrics sets the RecommendedOptionProjectedMetrics field's value.
2073func (s *GetEC2RecommendationProjectedMetricsOutput) SetRecommendedOptionProjectedMetrics(v []*RecommendedOptionProjectedMetric) *GetEC2RecommendationProjectedMetricsOutput {
2074	s.RecommendedOptionProjectedMetrics = v
2075	return s
2076}
2077
2078type GetEnrollmentStatusInput struct {
2079	_ struct{} `type:"structure"`
2080}
2081
2082// String returns the string representation
2083func (s GetEnrollmentStatusInput) String() string {
2084	return awsutil.Prettify(s)
2085}
2086
2087// GoString returns the string representation
2088func (s GetEnrollmentStatusInput) GoString() string {
2089	return s.String()
2090}
2091
2092type GetEnrollmentStatusOutput struct {
2093	_ struct{} `type:"structure"`
2094
2095	// Confirms the enrollment status of member accounts within the organization,
2096	// if the account is a master account of an organization.
2097	MemberAccountsEnrolled *bool `locationName:"memberAccountsEnrolled" type:"boolean"`
2098
2099	// The enrollment status of the account.
2100	Status *string `locationName:"status" type:"string" enum:"Status"`
2101
2102	// The reason for the enrollment status of the account.
2103	//
2104	// For example, an account might show a status of Pending because member accounts
2105	// of an organization require more time to be enrolled in the service.
2106	StatusReason *string `locationName:"statusReason" type:"string"`
2107}
2108
2109// String returns the string representation
2110func (s GetEnrollmentStatusOutput) String() string {
2111	return awsutil.Prettify(s)
2112}
2113
2114// GoString returns the string representation
2115func (s GetEnrollmentStatusOutput) GoString() string {
2116	return s.String()
2117}
2118
2119// SetMemberAccountsEnrolled sets the MemberAccountsEnrolled field's value.
2120func (s *GetEnrollmentStatusOutput) SetMemberAccountsEnrolled(v bool) *GetEnrollmentStatusOutput {
2121	s.MemberAccountsEnrolled = &v
2122	return s
2123}
2124
2125// SetStatus sets the Status field's value.
2126func (s *GetEnrollmentStatusOutput) SetStatus(v string) *GetEnrollmentStatusOutput {
2127	s.Status = &v
2128	return s
2129}
2130
2131// SetStatusReason sets the StatusReason field's value.
2132func (s *GetEnrollmentStatusOutput) SetStatusReason(v string) *GetEnrollmentStatusOutput {
2133	s.StatusReason = &v
2134	return s
2135}
2136
2137// Describes an error experienced when getting recommendations.
2138//
2139// For example, an error is returned if you request recommendations for an unsupported
2140// Auto Scaling group, or if you request recommendations for an instance of
2141// an unsupported instance family.
2142type GetRecommendationError struct {
2143	_ struct{} `type:"structure"`
2144
2145	// The error code.
2146	Code *string `locationName:"code" type:"string"`
2147
2148	// The ID of the error.
2149	Identifier *string `locationName:"identifier" type:"string"`
2150
2151	// The message, or reason, for the error.
2152	Message *string `locationName:"message" type:"string"`
2153}
2154
2155// String returns the string representation
2156func (s GetRecommendationError) String() string {
2157	return awsutil.Prettify(s)
2158}
2159
2160// GoString returns the string representation
2161func (s GetRecommendationError) GoString() string {
2162	return s.String()
2163}
2164
2165// SetCode sets the Code field's value.
2166func (s *GetRecommendationError) SetCode(v string) *GetRecommendationError {
2167	s.Code = &v
2168	return s
2169}
2170
2171// SetIdentifier sets the Identifier field's value.
2172func (s *GetRecommendationError) SetIdentifier(v string) *GetRecommendationError {
2173	s.Identifier = &v
2174	return s
2175}
2176
2177// SetMessage sets the Message field's value.
2178func (s *GetRecommendationError) SetMessage(v string) *GetRecommendationError {
2179	s.Message = &v
2180	return s
2181}
2182
2183type GetRecommendationSummariesInput struct {
2184	_ struct{} `type:"structure"`
2185
2186	// The IDs of the AWS accounts for which to return recommendation summaries.
2187	//
2188	// If your account is the master account of an organization, use this parameter
2189	// to specify the member accounts for which you want to return recommendation
2190	// summaries.
2191	//
2192	// Only one account ID can be specified per request.
2193	AccountIds []*string `locationName:"accountIds" type:"list"`
2194
2195	// The maximum number of recommendation summaries to return with a single request.
2196	//
2197	// To retrieve the remaining results, make another request with the returned
2198	// NextToken value.
2199	MaxResults *int64 `locationName:"maxResults" type:"integer"`
2200
2201	// The token to advance to the next page of recommendation summaries.
2202	NextToken *string `locationName:"nextToken" type:"string"`
2203}
2204
2205// String returns the string representation
2206func (s GetRecommendationSummariesInput) String() string {
2207	return awsutil.Prettify(s)
2208}
2209
2210// GoString returns the string representation
2211func (s GetRecommendationSummariesInput) GoString() string {
2212	return s.String()
2213}
2214
2215// SetAccountIds sets the AccountIds field's value.
2216func (s *GetRecommendationSummariesInput) SetAccountIds(v []*string) *GetRecommendationSummariesInput {
2217	s.AccountIds = v
2218	return s
2219}
2220
2221// SetMaxResults sets the MaxResults field's value.
2222func (s *GetRecommendationSummariesInput) SetMaxResults(v int64) *GetRecommendationSummariesInput {
2223	s.MaxResults = &v
2224	return s
2225}
2226
2227// SetNextToken sets the NextToken field's value.
2228func (s *GetRecommendationSummariesInput) SetNextToken(v string) *GetRecommendationSummariesInput {
2229	s.NextToken = &v
2230	return s
2231}
2232
2233type GetRecommendationSummariesOutput struct {
2234	_ struct{} `type:"structure"`
2235
2236	// The token to use to advance to the next page of recommendation summaries.
2237	//
2238	// This value is null when there are no more pages of recommendation summaries
2239	// to return.
2240	NextToken *string `locationName:"nextToken" type:"string"`
2241
2242	// An array of objects that summarize a recommendation.
2243	RecommendationSummaries []*RecommendationSummary `locationName:"recommendationSummaries" type:"list"`
2244}
2245
2246// String returns the string representation
2247func (s GetRecommendationSummariesOutput) String() string {
2248	return awsutil.Prettify(s)
2249}
2250
2251// GoString returns the string representation
2252func (s GetRecommendationSummariesOutput) GoString() string {
2253	return s.String()
2254}
2255
2256// SetNextToken sets the NextToken field's value.
2257func (s *GetRecommendationSummariesOutput) SetNextToken(v string) *GetRecommendationSummariesOutput {
2258	s.NextToken = &v
2259	return s
2260}
2261
2262// SetRecommendationSummaries sets the RecommendationSummaries field's value.
2263func (s *GetRecommendationSummariesOutput) SetRecommendationSummaries(v []*RecommendationSummary) *GetRecommendationSummariesOutput {
2264	s.RecommendationSummaries = v
2265	return s
2266}
2267
2268// Describes an Amazon EC2 instance recommendation.
2269type InstanceRecommendation struct {
2270	_ struct{} `type:"structure"`
2271
2272	// The AWS account ID of the instance.
2273	AccountId *string `locationName:"accountId" type:"string"`
2274
2275	// The instance type of the current instance.
2276	CurrentInstanceType *string `locationName:"currentInstanceType" type:"string"`
2277
2278	// The finding classification for the instance.
2279	//
2280	// Findings for instances include:
2281	//
2282	//    * Underprovisioned —An instance is considered under-provisioned when
2283	//    at least one specification of your instance, such as CPU, memory, or network,
2284	//    does not meet the performance requirements of your workload. Under-provisioned
2285	//    instances may lead to poor application performance.
2286	//
2287	//    * Overprovisioned —An instance is considered over-provisioned when at
2288	//    least one specification of your instance, such as CPU, memory, or network,
2289	//    can be sized down while still meeting the performance requirements of
2290	//    your workload, and no specification is under-provisioned. Over-provisioned
2291	//    instances may lead to unnecessary infrastructure cost.
2292	//
2293	//    * Optimized —An instance is considered optimized when all specifications
2294	//    of your instance, such as CPU, memory, and network, meet the performance
2295	//    requirements of your workload and is not over provisioned. An optimized
2296	//    instance runs your workloads with optimal performance and infrastructure
2297	//    cost. For optimized resources, AWS Compute Optimizer might recommend a
2298	//    new generation instance type.
2299	//
2300	// The values that are returned might be UNDER_PROVISIONED, OVER_PROVISIONED,
2301	// or OPTIMIZED.
2302	Finding *string `locationName:"finding" type:"string" enum:"Finding"`
2303
2304	// The Amazon Resource Name (ARN) of the current instance.
2305	InstanceArn *string `locationName:"instanceArn" type:"string"`
2306
2307	// The name of the current instance.
2308	InstanceName *string `locationName:"instanceName" type:"string"`
2309
2310	// The time stamp of when the instance recommendation was last refreshed.
2311	LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"`
2312
2313	// The number of days for which utilization metrics were analyzed for the instance.
2314	LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"`
2315
2316	// An array of objects that describe the recommendation options for the instance.
2317	RecommendationOptions []*InstanceRecommendationOption `locationName:"recommendationOptions" type:"list"`
2318
2319	// An array of objects that describe the source resource of the recommendation.
2320	RecommendationSources []*RecommendationSource `locationName:"recommendationSources" type:"list"`
2321
2322	// An array of objects that describe the utilization metrics of the instance.
2323	UtilizationMetrics []*UtilizationMetric `locationName:"utilizationMetrics" type:"list"`
2324}
2325
2326// String returns the string representation
2327func (s InstanceRecommendation) String() string {
2328	return awsutil.Prettify(s)
2329}
2330
2331// GoString returns the string representation
2332func (s InstanceRecommendation) GoString() string {
2333	return s.String()
2334}
2335
2336// SetAccountId sets the AccountId field's value.
2337func (s *InstanceRecommendation) SetAccountId(v string) *InstanceRecommendation {
2338	s.AccountId = &v
2339	return s
2340}
2341
2342// SetCurrentInstanceType sets the CurrentInstanceType field's value.
2343func (s *InstanceRecommendation) SetCurrentInstanceType(v string) *InstanceRecommendation {
2344	s.CurrentInstanceType = &v
2345	return s
2346}
2347
2348// SetFinding sets the Finding field's value.
2349func (s *InstanceRecommendation) SetFinding(v string) *InstanceRecommendation {
2350	s.Finding = &v
2351	return s
2352}
2353
2354// SetInstanceArn sets the InstanceArn field's value.
2355func (s *InstanceRecommendation) SetInstanceArn(v string) *InstanceRecommendation {
2356	s.InstanceArn = &v
2357	return s
2358}
2359
2360// SetInstanceName sets the InstanceName field's value.
2361func (s *InstanceRecommendation) SetInstanceName(v string) *InstanceRecommendation {
2362	s.InstanceName = &v
2363	return s
2364}
2365
2366// SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value.
2367func (s *InstanceRecommendation) SetLastRefreshTimestamp(v time.Time) *InstanceRecommendation {
2368	s.LastRefreshTimestamp = &v
2369	return s
2370}
2371
2372// SetLookBackPeriodInDays sets the LookBackPeriodInDays field's value.
2373func (s *InstanceRecommendation) SetLookBackPeriodInDays(v float64) *InstanceRecommendation {
2374	s.LookBackPeriodInDays = &v
2375	return s
2376}
2377
2378// SetRecommendationOptions sets the RecommendationOptions field's value.
2379func (s *InstanceRecommendation) SetRecommendationOptions(v []*InstanceRecommendationOption) *InstanceRecommendation {
2380	s.RecommendationOptions = v
2381	return s
2382}
2383
2384// SetRecommendationSources sets the RecommendationSources field's value.
2385func (s *InstanceRecommendation) SetRecommendationSources(v []*RecommendationSource) *InstanceRecommendation {
2386	s.RecommendationSources = v
2387	return s
2388}
2389
2390// SetUtilizationMetrics sets the UtilizationMetrics field's value.
2391func (s *InstanceRecommendation) SetUtilizationMetrics(v []*UtilizationMetric) *InstanceRecommendation {
2392	s.UtilizationMetrics = v
2393	return s
2394}
2395
2396// Describes a recommendation option for an Amazon EC2 instance.
2397type InstanceRecommendationOption struct {
2398	_ struct{} `type:"structure"`
2399
2400	// The instance type of the instance recommendation.
2401	InstanceType *string `locationName:"instanceType" type:"string"`
2402
2403	// The performance risk of the instance recommendation option.
2404	//
2405	// Performance risk is the likelihood of the recommended instance type not meeting
2406	// the performance requirement of your workload.
2407	//
2408	// The lowest performance risk is categorized as 0, and the highest as 5.
2409	PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"`
2410
2411	// An array of objects that describe the projected utilization metrics of the
2412	// instance recommendation option.
2413	//
2414	// The Cpu and Memory metrics are the only projected utilization metrics returned.
2415	// Additionally, the Memory metric is returned only for resources that have
2416	// the unified CloudWatch agent installed on them. For more information, see
2417	// Enabling Memory Utilization with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
2418	ProjectedUtilizationMetrics []*UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"`
2419
2420	// The rank of the instance recommendation option.
2421	//
2422	// The top recommendation option is ranked as 1.
2423	Rank *int64 `locationName:"rank" type:"integer"`
2424}
2425
2426// String returns the string representation
2427func (s InstanceRecommendationOption) String() string {
2428	return awsutil.Prettify(s)
2429}
2430
2431// GoString returns the string representation
2432func (s InstanceRecommendationOption) GoString() string {
2433	return s.String()
2434}
2435
2436// SetInstanceType sets the InstanceType field's value.
2437func (s *InstanceRecommendationOption) SetInstanceType(v string) *InstanceRecommendationOption {
2438	s.InstanceType = &v
2439	return s
2440}
2441
2442// SetPerformanceRisk sets the PerformanceRisk field's value.
2443func (s *InstanceRecommendationOption) SetPerformanceRisk(v float64) *InstanceRecommendationOption {
2444	s.PerformanceRisk = &v
2445	return s
2446}
2447
2448// SetProjectedUtilizationMetrics sets the ProjectedUtilizationMetrics field's value.
2449func (s *InstanceRecommendationOption) SetProjectedUtilizationMetrics(v []*UtilizationMetric) *InstanceRecommendationOption {
2450	s.ProjectedUtilizationMetrics = v
2451	return s
2452}
2453
2454// SetRank sets the Rank field's value.
2455func (s *InstanceRecommendationOption) SetRank(v int64) *InstanceRecommendationOption {
2456	s.Rank = &v
2457	return s
2458}
2459
2460// An internal error has occurred. Try your call again.
2461type InternalServerException struct {
2462	_            struct{}                  `type:"structure"`
2463	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2464
2465	Message_ *string `locationName:"message" type:"string"`
2466}
2467
2468// String returns the string representation
2469func (s InternalServerException) String() string {
2470	return awsutil.Prettify(s)
2471}
2472
2473// GoString returns the string representation
2474func (s InternalServerException) GoString() string {
2475	return s.String()
2476}
2477
2478func newErrorInternalServerException(v protocol.ResponseMetadata) error {
2479	return &InternalServerException{
2480		RespMetadata: v,
2481	}
2482}
2483
2484// Code returns the exception type name.
2485func (s *InternalServerException) Code() string {
2486	return "InternalServerException"
2487}
2488
2489// Message returns the exception's message.
2490func (s *InternalServerException) Message() string {
2491	if s.Message_ != nil {
2492		return *s.Message_
2493	}
2494	return ""
2495}
2496
2497// OrigErr always returns nil, satisfies awserr.Error interface.
2498func (s *InternalServerException) OrigErr() error {
2499	return nil
2500}
2501
2502func (s *InternalServerException) Error() string {
2503	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2504}
2505
2506// Status code returns the HTTP status code for the request's response error.
2507func (s *InternalServerException) StatusCode() int {
2508	return s.RespMetadata.StatusCode
2509}
2510
2511// RequestID returns the service's response RequestID for request.
2512func (s *InternalServerException) RequestID() string {
2513	return s.RespMetadata.RequestID
2514}
2515
2516// An invalid or out-of-range value was supplied for the input parameter.
2517type InvalidParameterValueException struct {
2518	_            struct{}                  `type:"structure"`
2519	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2520
2521	Message_ *string `locationName:"message" type:"string"`
2522}
2523
2524// String returns the string representation
2525func (s InvalidParameterValueException) String() string {
2526	return awsutil.Prettify(s)
2527}
2528
2529// GoString returns the string representation
2530func (s InvalidParameterValueException) GoString() string {
2531	return s.String()
2532}
2533
2534func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
2535	return &InvalidParameterValueException{
2536		RespMetadata: v,
2537	}
2538}
2539
2540// Code returns the exception type name.
2541func (s *InvalidParameterValueException) Code() string {
2542	return "InvalidParameterValueException"
2543}
2544
2545// Message returns the exception's message.
2546func (s *InvalidParameterValueException) Message() string {
2547	if s.Message_ != nil {
2548		return *s.Message_
2549	}
2550	return ""
2551}
2552
2553// OrigErr always returns nil, satisfies awserr.Error interface.
2554func (s *InvalidParameterValueException) OrigErr() error {
2555	return nil
2556}
2557
2558func (s *InvalidParameterValueException) Error() string {
2559	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2560}
2561
2562// Status code returns the HTTP status code for the request's response error.
2563func (s *InvalidParameterValueException) StatusCode() int {
2564	return s.RespMetadata.StatusCode
2565}
2566
2567// RequestID returns the service's response RequestID for request.
2568func (s *InvalidParameterValueException) RequestID() string {
2569	return s.RespMetadata.RequestID
2570}
2571
2572// Describes a filter that returns a more specific list of recommendation export
2573// jobs.
2574//
2575// This filter is used with the DescribeRecommendationExportJobs action.
2576type JobFilter struct {
2577	_ struct{} `type:"structure"`
2578
2579	// The name of the filter.
2580	//
2581	// Specify ResourceType to return export jobs of a specific resource type (e.g.,
2582	// Ec2Instance).
2583	//
2584	// Specify JobStatus to return export jobs with a specific status (e.g, Complete).
2585	Name *string `locationName:"name" type:"string" enum:"JobFilterName"`
2586
2587	// The value of the filter.
2588	//
2589	// If you specify the name parameter as ResourceType, the valid values are Ec2Instance
2590	// or AutoScalingGroup.
2591	//
2592	// If you specify the name parameter as JobStatus, the valid values are Queued,
2593	// InProgress, Complete, or Failed.
2594	Values []*string `locationName:"values" type:"list"`
2595}
2596
2597// String returns the string representation
2598func (s JobFilter) String() string {
2599	return awsutil.Prettify(s)
2600}
2601
2602// GoString returns the string representation
2603func (s JobFilter) GoString() string {
2604	return s.String()
2605}
2606
2607// SetName sets the Name field's value.
2608func (s *JobFilter) SetName(v string) *JobFilter {
2609	s.Name = &v
2610	return s
2611}
2612
2613// SetValues sets the Values field's value.
2614func (s *JobFilter) SetValues(v []*string) *JobFilter {
2615	s.Values = v
2616	return s
2617}
2618
2619// The request exceeds a limit of the service.
2620type LimitExceededException struct {
2621	_            struct{}                  `type:"structure"`
2622	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2623
2624	Message_ *string `locationName:"message" type:"string"`
2625}
2626
2627// String returns the string representation
2628func (s LimitExceededException) String() string {
2629	return awsutil.Prettify(s)
2630}
2631
2632// GoString returns the string representation
2633func (s LimitExceededException) GoString() string {
2634	return s.String()
2635}
2636
2637func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
2638	return &LimitExceededException{
2639		RespMetadata: v,
2640	}
2641}
2642
2643// Code returns the exception type name.
2644func (s *LimitExceededException) Code() string {
2645	return "LimitExceededException"
2646}
2647
2648// Message returns the exception's message.
2649func (s *LimitExceededException) Message() string {
2650	if s.Message_ != nil {
2651		return *s.Message_
2652	}
2653	return ""
2654}
2655
2656// OrigErr always returns nil, satisfies awserr.Error interface.
2657func (s *LimitExceededException) OrigErr() error {
2658	return nil
2659}
2660
2661func (s *LimitExceededException) Error() string {
2662	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2663}
2664
2665// Status code returns the HTTP status code for the request's response error.
2666func (s *LimitExceededException) StatusCode() int {
2667	return s.RespMetadata.StatusCode
2668}
2669
2670// RequestID returns the service's response RequestID for request.
2671func (s *LimitExceededException) RequestID() string {
2672	return s.RespMetadata.RequestID
2673}
2674
2675// The request must contain either a valid (registered) AWS access key ID or
2676// X.509 certificate.
2677type MissingAuthenticationToken struct {
2678	_            struct{}                  `type:"structure"`
2679	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2680
2681	Message_ *string `locationName:"message" type:"string"`
2682}
2683
2684// String returns the string representation
2685func (s MissingAuthenticationToken) String() string {
2686	return awsutil.Prettify(s)
2687}
2688
2689// GoString returns the string representation
2690func (s MissingAuthenticationToken) GoString() string {
2691	return s.String()
2692}
2693
2694func newErrorMissingAuthenticationToken(v protocol.ResponseMetadata) error {
2695	return &MissingAuthenticationToken{
2696		RespMetadata: v,
2697	}
2698}
2699
2700// Code returns the exception type name.
2701func (s *MissingAuthenticationToken) Code() string {
2702	return "MissingAuthenticationToken"
2703}
2704
2705// Message returns the exception's message.
2706func (s *MissingAuthenticationToken) Message() string {
2707	if s.Message_ != nil {
2708		return *s.Message_
2709	}
2710	return ""
2711}
2712
2713// OrigErr always returns nil, satisfies awserr.Error interface.
2714func (s *MissingAuthenticationToken) OrigErr() error {
2715	return nil
2716}
2717
2718func (s *MissingAuthenticationToken) Error() string {
2719	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2720}
2721
2722// Status code returns the HTTP status code for the request's response error.
2723func (s *MissingAuthenticationToken) StatusCode() int {
2724	return s.RespMetadata.StatusCode
2725}
2726
2727// RequestID returns the service's response RequestID for request.
2728func (s *MissingAuthenticationToken) RequestID() string {
2729	return s.RespMetadata.RequestID
2730}
2731
2732// The account is not opted in to AWS Compute Optimizer.
2733type OptInRequiredException struct {
2734	_            struct{}                  `type:"structure"`
2735	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2736
2737	Message_ *string `locationName:"message" type:"string"`
2738}
2739
2740// String returns the string representation
2741func (s OptInRequiredException) String() string {
2742	return awsutil.Prettify(s)
2743}
2744
2745// GoString returns the string representation
2746func (s OptInRequiredException) GoString() string {
2747	return s.String()
2748}
2749
2750func newErrorOptInRequiredException(v protocol.ResponseMetadata) error {
2751	return &OptInRequiredException{
2752		RespMetadata: v,
2753	}
2754}
2755
2756// Code returns the exception type name.
2757func (s *OptInRequiredException) Code() string {
2758	return "OptInRequiredException"
2759}
2760
2761// Message returns the exception's message.
2762func (s *OptInRequiredException) Message() string {
2763	if s.Message_ != nil {
2764		return *s.Message_
2765	}
2766	return ""
2767}
2768
2769// OrigErr always returns nil, satisfies awserr.Error interface.
2770func (s *OptInRequiredException) OrigErr() error {
2771	return nil
2772}
2773
2774func (s *OptInRequiredException) Error() string {
2775	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2776}
2777
2778// Status code returns the HTTP status code for the request's response error.
2779func (s *OptInRequiredException) StatusCode() int {
2780	return s.RespMetadata.StatusCode
2781}
2782
2783// RequestID returns the service's response RequestID for request.
2784func (s *OptInRequiredException) RequestID() string {
2785	return s.RespMetadata.RequestID
2786}
2787
2788// Describes a projected utilization metric of a recommendation option, such
2789// as an Amazon EC2 instance.
2790//
2791// The Cpu and Memory metrics are the only projected utilization metrics returned
2792// when you run the GetEC2RecommendationProjectedMetrics action. Additionally,
2793// the Memory metric is returned only for resources that have the unified CloudWatch
2794// agent installed on them. For more information, see Enabling Memory Utilization
2795// with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
2796type ProjectedMetric struct {
2797	_ struct{} `type:"structure"`
2798
2799	// The name of the projected utilization metric.
2800	Name *string `locationName:"name" type:"string" enum:"MetricName"`
2801
2802	// The time stamps of the projected utilization metric.
2803	Timestamps []*time.Time `locationName:"timestamps" type:"list"`
2804
2805	// The values of the projected utilization metrics.
2806	Values []*float64 `locationName:"values" type:"list"`
2807}
2808
2809// String returns the string representation
2810func (s ProjectedMetric) String() string {
2811	return awsutil.Prettify(s)
2812}
2813
2814// GoString returns the string representation
2815func (s ProjectedMetric) GoString() string {
2816	return s.String()
2817}
2818
2819// SetName sets the Name field's value.
2820func (s *ProjectedMetric) SetName(v string) *ProjectedMetric {
2821	s.Name = &v
2822	return s
2823}
2824
2825// SetTimestamps sets the Timestamps field's value.
2826func (s *ProjectedMetric) SetTimestamps(v []*time.Time) *ProjectedMetric {
2827	s.Timestamps = v
2828	return s
2829}
2830
2831// SetValues sets the Values field's value.
2832func (s *ProjectedMetric) SetValues(v []*float64) *ProjectedMetric {
2833	s.Values = v
2834	return s
2835}
2836
2837// Describes a recommendation export job.
2838//
2839// Use the DescribeRecommendationExportJobs action to view your recommendation
2840// export jobs.
2841//
2842// Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations
2843// actions to request an export of your recommendations.
2844type RecommendationExportJob struct {
2845	_ struct{} `type:"structure"`
2846
2847	// The timestamp of when the export job was created.
2848	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
2849
2850	// An object that describes the destination of the export file.
2851	Destination *ExportDestination `locationName:"destination" type:"structure"`
2852
2853	// The reason for an export job failure.
2854	FailureReason *string `locationName:"failureReason" type:"string"`
2855
2856	// The identification number of the export job.
2857	JobId *string `locationName:"jobId" type:"string"`
2858
2859	// The timestamp of when the export job was last updated.
2860	LastUpdatedTimestamp *time.Time `locationName:"lastUpdatedTimestamp" type:"timestamp"`
2861
2862	// The resource type of the exported recommendations.
2863	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
2864
2865	// The status of the export job.
2866	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
2867}
2868
2869// String returns the string representation
2870func (s RecommendationExportJob) String() string {
2871	return awsutil.Prettify(s)
2872}
2873
2874// GoString returns the string representation
2875func (s RecommendationExportJob) GoString() string {
2876	return s.String()
2877}
2878
2879// SetCreationTimestamp sets the CreationTimestamp field's value.
2880func (s *RecommendationExportJob) SetCreationTimestamp(v time.Time) *RecommendationExportJob {
2881	s.CreationTimestamp = &v
2882	return s
2883}
2884
2885// SetDestination sets the Destination field's value.
2886func (s *RecommendationExportJob) SetDestination(v *ExportDestination) *RecommendationExportJob {
2887	s.Destination = v
2888	return s
2889}
2890
2891// SetFailureReason sets the FailureReason field's value.
2892func (s *RecommendationExportJob) SetFailureReason(v string) *RecommendationExportJob {
2893	s.FailureReason = &v
2894	return s
2895}
2896
2897// SetJobId sets the JobId field's value.
2898func (s *RecommendationExportJob) SetJobId(v string) *RecommendationExportJob {
2899	s.JobId = &v
2900	return s
2901}
2902
2903// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
2904func (s *RecommendationExportJob) SetLastUpdatedTimestamp(v time.Time) *RecommendationExportJob {
2905	s.LastUpdatedTimestamp = &v
2906	return s
2907}
2908
2909// SetResourceType sets the ResourceType field's value.
2910func (s *RecommendationExportJob) SetResourceType(v string) *RecommendationExportJob {
2911	s.ResourceType = &v
2912	return s
2913}
2914
2915// SetStatus sets the Status field's value.
2916func (s *RecommendationExportJob) SetStatus(v string) *RecommendationExportJob {
2917	s.Status = &v
2918	return s
2919}
2920
2921// Describes the source of a recommendation, such as an Amazon EC2 instance
2922// or Auto Scaling group.
2923type RecommendationSource struct {
2924	_ struct{} `type:"structure"`
2925
2926	// The Amazon Resource Name (ARN) of the recommendation source.
2927	RecommendationSourceArn *string `locationName:"recommendationSourceArn" type:"string"`
2928
2929	// The resource type of the recommendation source.
2930	RecommendationSourceType *string `locationName:"recommendationSourceType" type:"string" enum:"RecommendationSourceType"`
2931}
2932
2933// String returns the string representation
2934func (s RecommendationSource) String() string {
2935	return awsutil.Prettify(s)
2936}
2937
2938// GoString returns the string representation
2939func (s RecommendationSource) GoString() string {
2940	return s.String()
2941}
2942
2943// SetRecommendationSourceArn sets the RecommendationSourceArn field's value.
2944func (s *RecommendationSource) SetRecommendationSourceArn(v string) *RecommendationSource {
2945	s.RecommendationSourceArn = &v
2946	return s
2947}
2948
2949// SetRecommendationSourceType sets the RecommendationSourceType field's value.
2950func (s *RecommendationSource) SetRecommendationSourceType(v string) *RecommendationSource {
2951	s.RecommendationSourceType = &v
2952	return s
2953}
2954
2955// A summary of a recommendation.
2956type RecommendationSummary struct {
2957	_ struct{} `type:"structure"`
2958
2959	// The AWS account ID of the recommendation summary.
2960	AccountId *string `locationName:"accountId" type:"string"`
2961
2962	// The resource type of the recommendation.
2963	RecommendationResourceType *string `locationName:"recommendationResourceType" type:"string" enum:"RecommendationSourceType"`
2964
2965	// An array of objects that describe a recommendation summary.
2966	Summaries []*Summary `locationName:"summaries" type:"list"`
2967}
2968
2969// String returns the string representation
2970func (s RecommendationSummary) String() string {
2971	return awsutil.Prettify(s)
2972}
2973
2974// GoString returns the string representation
2975func (s RecommendationSummary) GoString() string {
2976	return s.String()
2977}
2978
2979// SetAccountId sets the AccountId field's value.
2980func (s *RecommendationSummary) SetAccountId(v string) *RecommendationSummary {
2981	s.AccountId = &v
2982	return s
2983}
2984
2985// SetRecommendationResourceType sets the RecommendationResourceType field's value.
2986func (s *RecommendationSummary) SetRecommendationResourceType(v string) *RecommendationSummary {
2987	s.RecommendationResourceType = &v
2988	return s
2989}
2990
2991// SetSummaries sets the Summaries field's value.
2992func (s *RecommendationSummary) SetSummaries(v []*Summary) *RecommendationSummary {
2993	s.Summaries = v
2994	return s
2995}
2996
2997// Describes a projected utilization metric of a recommendation option.
2998//
2999// The Cpu and Memory metrics are the only projected utilization metrics returned
3000// when you run the GetEC2RecommendationProjectedMetrics action. Additionally,
3001// the Memory metric is returned only for resources that have the unified CloudWatch
3002// agent installed on them. For more information, see Enabling Memory Utilization
3003// with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
3004type RecommendedOptionProjectedMetric struct {
3005	_ struct{} `type:"structure"`
3006
3007	// An array of objects that describe a projected utilization metric.
3008	ProjectedMetrics []*ProjectedMetric `locationName:"projectedMetrics" type:"list"`
3009
3010	// The rank of the recommendation option projected metric.
3011	//
3012	// The top recommendation option is ranked as 1.
3013	//
3014	// The projected metric rank correlates to the recommendation option rank. For
3015	// example, the projected metric ranked as 1 is related to the recommendation
3016	// option that is also ranked as 1 in the same response.
3017	Rank *int64 `locationName:"rank" type:"integer"`
3018
3019	// The recommended instance type.
3020	RecommendedInstanceType *string `locationName:"recommendedInstanceType" type:"string"`
3021}
3022
3023// String returns the string representation
3024func (s RecommendedOptionProjectedMetric) String() string {
3025	return awsutil.Prettify(s)
3026}
3027
3028// GoString returns the string representation
3029func (s RecommendedOptionProjectedMetric) GoString() string {
3030	return s.String()
3031}
3032
3033// SetProjectedMetrics sets the ProjectedMetrics field's value.
3034func (s *RecommendedOptionProjectedMetric) SetProjectedMetrics(v []*ProjectedMetric) *RecommendedOptionProjectedMetric {
3035	s.ProjectedMetrics = v
3036	return s
3037}
3038
3039// SetRank sets the Rank field's value.
3040func (s *RecommendedOptionProjectedMetric) SetRank(v int64) *RecommendedOptionProjectedMetric {
3041	s.Rank = &v
3042	return s
3043}
3044
3045// SetRecommendedInstanceType sets the RecommendedInstanceType field's value.
3046func (s *RecommendedOptionProjectedMetric) SetRecommendedInstanceType(v string) *RecommendedOptionProjectedMetric {
3047	s.RecommendedInstanceType = &v
3048	return s
3049}
3050
3051// A resource that is required for the action doesn't exist.
3052type ResourceNotFoundException struct {
3053	_            struct{}                  `type:"structure"`
3054	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3055
3056	Message_ *string `locationName:"message" type:"string"`
3057}
3058
3059// String returns the string representation
3060func (s ResourceNotFoundException) String() string {
3061	return awsutil.Prettify(s)
3062}
3063
3064// GoString returns the string representation
3065func (s ResourceNotFoundException) GoString() string {
3066	return s.String()
3067}
3068
3069func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
3070	return &ResourceNotFoundException{
3071		RespMetadata: v,
3072	}
3073}
3074
3075// Code returns the exception type name.
3076func (s *ResourceNotFoundException) Code() string {
3077	return "ResourceNotFoundException"
3078}
3079
3080// Message returns the exception's message.
3081func (s *ResourceNotFoundException) Message() string {
3082	if s.Message_ != nil {
3083		return *s.Message_
3084	}
3085	return ""
3086}
3087
3088// OrigErr always returns nil, satisfies awserr.Error interface.
3089func (s *ResourceNotFoundException) OrigErr() error {
3090	return nil
3091}
3092
3093func (s *ResourceNotFoundException) Error() string {
3094	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3095}
3096
3097// Status code returns the HTTP status code for the request's response error.
3098func (s *ResourceNotFoundException) StatusCode() int {
3099	return s.RespMetadata.StatusCode
3100}
3101
3102// RequestID returns the service's response RequestID for request.
3103func (s *ResourceNotFoundException) RequestID() string {
3104	return s.RespMetadata.RequestID
3105}
3106
3107// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
3108// name and object keys of a recommendations export file, and its associated
3109// metadata file.
3110type S3Destination struct {
3111	_ struct{} `type:"structure"`
3112
3113	// The name of the Amazon S3 bucket used as the destination of an export file.
3114	Bucket *string `locationName:"bucket" type:"string"`
3115
3116	// The Amazon S3 bucket key of an export file.
3117	//
3118	// The key uniquely identifies the object, or export file, in the S3 bucket.
3119	Key *string `locationName:"key" type:"string"`
3120
3121	// The Amazon S3 bucket key of a metadata file.
3122	//
3123	// The key uniquely identifies the object, or metadata file, in the S3 bucket.
3124	MetadataKey *string `locationName:"metadataKey" type:"string"`
3125}
3126
3127// String returns the string representation
3128func (s S3Destination) String() string {
3129	return awsutil.Prettify(s)
3130}
3131
3132// GoString returns the string representation
3133func (s S3Destination) GoString() string {
3134	return s.String()
3135}
3136
3137// SetBucket sets the Bucket field's value.
3138func (s *S3Destination) SetBucket(v string) *S3Destination {
3139	s.Bucket = &v
3140	return s
3141}
3142
3143// SetKey sets the Key field's value.
3144func (s *S3Destination) SetKey(v string) *S3Destination {
3145	s.Key = &v
3146	return s
3147}
3148
3149// SetMetadataKey sets the MetadataKey field's value.
3150func (s *S3Destination) SetMetadataKey(v string) *S3Destination {
3151	s.MetadataKey = &v
3152	return s
3153}
3154
3155// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
3156// name and key prefix for a recommendations export job.
3157//
3158// You must create the destination Amazon S3 bucket for your recommendations
3159// export before you create the export job. Compute Optimizer does not create
3160// the S3 bucket for you. After you create the S3 bucket, ensure that it has
3161// the required permission policy to allow Compute Optimizer to write the export
3162// file to it. If you plan to specify an object prefix when you create the export
3163// job, you must include the object prefix in the policy that you add to the
3164// S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
3165// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
3166// in the Compute Optimizer user guide.
3167type S3DestinationConfig struct {
3168	_ struct{} `type:"structure"`
3169
3170	// The name of the Amazon S3 bucket to use as the destination for an export
3171	// job.
3172	Bucket *string `locationName:"bucket" type:"string"`
3173
3174	// The Amazon S3 bucket prefix for an export job.
3175	KeyPrefix *string `locationName:"keyPrefix" type:"string"`
3176}
3177
3178// String returns the string representation
3179func (s S3DestinationConfig) String() string {
3180	return awsutil.Prettify(s)
3181}
3182
3183// GoString returns the string representation
3184func (s S3DestinationConfig) GoString() string {
3185	return s.String()
3186}
3187
3188// SetBucket sets the Bucket field's value.
3189func (s *S3DestinationConfig) SetBucket(v string) *S3DestinationConfig {
3190	s.Bucket = &v
3191	return s
3192}
3193
3194// SetKeyPrefix sets the KeyPrefix field's value.
3195func (s *S3DestinationConfig) SetKeyPrefix(v string) *S3DestinationConfig {
3196	s.KeyPrefix = &v
3197	return s
3198}
3199
3200// The request has failed due to a temporary failure of the server.
3201type ServiceUnavailableException struct {
3202	_            struct{}                  `type:"structure"`
3203	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3204
3205	Message_ *string `locationName:"message" type:"string"`
3206}
3207
3208// String returns the string representation
3209func (s ServiceUnavailableException) String() string {
3210	return awsutil.Prettify(s)
3211}
3212
3213// GoString returns the string representation
3214func (s ServiceUnavailableException) GoString() string {
3215	return s.String()
3216}
3217
3218func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
3219	return &ServiceUnavailableException{
3220		RespMetadata: v,
3221	}
3222}
3223
3224// Code returns the exception type name.
3225func (s *ServiceUnavailableException) Code() string {
3226	return "ServiceUnavailableException"
3227}
3228
3229// Message returns the exception's message.
3230func (s *ServiceUnavailableException) Message() string {
3231	if s.Message_ != nil {
3232		return *s.Message_
3233	}
3234	return ""
3235}
3236
3237// OrigErr always returns nil, satisfies awserr.Error interface.
3238func (s *ServiceUnavailableException) OrigErr() error {
3239	return nil
3240}
3241
3242func (s *ServiceUnavailableException) Error() string {
3243	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3244}
3245
3246// Status code returns the HTTP status code for the request's response error.
3247func (s *ServiceUnavailableException) StatusCode() int {
3248	return s.RespMetadata.StatusCode
3249}
3250
3251// RequestID returns the service's response RequestID for request.
3252func (s *ServiceUnavailableException) RequestID() string {
3253	return s.RespMetadata.RequestID
3254}
3255
3256// The summary of a recommendation.
3257type Summary struct {
3258	_ struct{} `type:"structure"`
3259
3260	// The finding classification of the recommendation.
3261	Name *string `locationName:"name" type:"string" enum:"Finding"`
3262
3263	// The value of the recommendation summary.
3264	Value *float64 `locationName:"value" type:"double"`
3265}
3266
3267// String returns the string representation
3268func (s Summary) String() string {
3269	return awsutil.Prettify(s)
3270}
3271
3272// GoString returns the string representation
3273func (s Summary) GoString() string {
3274	return s.String()
3275}
3276
3277// SetName sets the Name field's value.
3278func (s *Summary) SetName(v string) *Summary {
3279	s.Name = &v
3280	return s
3281}
3282
3283// SetValue sets the Value field's value.
3284func (s *Summary) SetValue(v float64) *Summary {
3285	s.Value = &v
3286	return s
3287}
3288
3289// The request was denied due to request throttling.
3290type ThrottlingException struct {
3291	_            struct{}                  `type:"structure"`
3292	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3293
3294	Message_ *string `locationName:"message" type:"string"`
3295}
3296
3297// String returns the string representation
3298func (s ThrottlingException) String() string {
3299	return awsutil.Prettify(s)
3300}
3301
3302// GoString returns the string representation
3303func (s ThrottlingException) GoString() string {
3304	return s.String()
3305}
3306
3307func newErrorThrottlingException(v protocol.ResponseMetadata) error {
3308	return &ThrottlingException{
3309		RespMetadata: v,
3310	}
3311}
3312
3313// Code returns the exception type name.
3314func (s *ThrottlingException) Code() string {
3315	return "ThrottlingException"
3316}
3317
3318// Message returns the exception's message.
3319func (s *ThrottlingException) Message() string {
3320	if s.Message_ != nil {
3321		return *s.Message_
3322	}
3323	return ""
3324}
3325
3326// OrigErr always returns nil, satisfies awserr.Error interface.
3327func (s *ThrottlingException) OrigErr() error {
3328	return nil
3329}
3330
3331func (s *ThrottlingException) Error() string {
3332	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3333}
3334
3335// Status code returns the HTTP status code for the request's response error.
3336func (s *ThrottlingException) StatusCode() int {
3337	return s.RespMetadata.StatusCode
3338}
3339
3340// RequestID returns the service's response RequestID for request.
3341func (s *ThrottlingException) RequestID() string {
3342	return s.RespMetadata.RequestID
3343}
3344
3345type UpdateEnrollmentStatusInput struct {
3346	_ struct{} `type:"structure"`
3347
3348	// Indicates whether to enroll member accounts of the organization if the your
3349	// account is the master account of an organization.
3350	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
3351
3352	// The new enrollment status of the account.
3353	//
3354	// Accepted options are Active or Inactive. You will get an error if Pending
3355	// or Failed are specified.
3356	//
3357	// Status is a required field
3358	Status *string `locationName:"status" type:"string" required:"true" enum:"Status"`
3359}
3360
3361// String returns the string representation
3362func (s UpdateEnrollmentStatusInput) String() string {
3363	return awsutil.Prettify(s)
3364}
3365
3366// GoString returns the string representation
3367func (s UpdateEnrollmentStatusInput) GoString() string {
3368	return s.String()
3369}
3370
3371// Validate inspects the fields of the type to determine if they are valid.
3372func (s *UpdateEnrollmentStatusInput) Validate() error {
3373	invalidParams := request.ErrInvalidParams{Context: "UpdateEnrollmentStatusInput"}
3374	if s.Status == nil {
3375		invalidParams.Add(request.NewErrParamRequired("Status"))
3376	}
3377
3378	if invalidParams.Len() > 0 {
3379		return invalidParams
3380	}
3381	return nil
3382}
3383
3384// SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
3385func (s *UpdateEnrollmentStatusInput) SetIncludeMemberAccounts(v bool) *UpdateEnrollmentStatusInput {
3386	s.IncludeMemberAccounts = &v
3387	return s
3388}
3389
3390// SetStatus sets the Status field's value.
3391func (s *UpdateEnrollmentStatusInput) SetStatus(v string) *UpdateEnrollmentStatusInput {
3392	s.Status = &v
3393	return s
3394}
3395
3396type UpdateEnrollmentStatusOutput struct {
3397	_ struct{} `type:"structure"`
3398
3399	// The enrollment status of the account.
3400	Status *string `locationName:"status" type:"string" enum:"Status"`
3401
3402	// The reason for the enrollment status of the account. For example, an account
3403	// might show a status of Pending because member accounts of an organization
3404	// require more time to be enrolled in the service.
3405	StatusReason *string `locationName:"statusReason" type:"string"`
3406}
3407
3408// String returns the string representation
3409func (s UpdateEnrollmentStatusOutput) String() string {
3410	return awsutil.Prettify(s)
3411}
3412
3413// GoString returns the string representation
3414func (s UpdateEnrollmentStatusOutput) GoString() string {
3415	return s.String()
3416}
3417
3418// SetStatus sets the Status field's value.
3419func (s *UpdateEnrollmentStatusOutput) SetStatus(v string) *UpdateEnrollmentStatusOutput {
3420	s.Status = &v
3421	return s
3422}
3423
3424// SetStatusReason sets the StatusReason field's value.
3425func (s *UpdateEnrollmentStatusOutput) SetStatusReason(v string) *UpdateEnrollmentStatusOutput {
3426	s.StatusReason = &v
3427	return s
3428}
3429
3430// Describes a utilization metric of a resource, such as an Amazon EC2 instance.
3431type UtilizationMetric struct {
3432	_ struct{} `type:"structure"`
3433
3434	// The name of the utilization metric.
3435	//
3436	// The Memory metric is returned only for resources that have the unified CloudWatch
3437	// agent installed on them. For more information, see Enabling Memory Utilization
3438	// with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
3439	Name *string `locationName:"name" type:"string" enum:"MetricName"`
3440
3441	// The statistic of the utilization metric.
3442	Statistic *string `locationName:"statistic" type:"string" enum:"MetricStatistic"`
3443
3444	// The value of the utilization metric.
3445	Value *float64 `locationName:"value" type:"double"`
3446}
3447
3448// String returns the string representation
3449func (s UtilizationMetric) String() string {
3450	return awsutil.Prettify(s)
3451}
3452
3453// GoString returns the string representation
3454func (s UtilizationMetric) GoString() string {
3455	return s.String()
3456}
3457
3458// SetName sets the Name field's value.
3459func (s *UtilizationMetric) SetName(v string) *UtilizationMetric {
3460	s.Name = &v
3461	return s
3462}
3463
3464// SetStatistic sets the Statistic field's value.
3465func (s *UtilizationMetric) SetStatistic(v string) *UtilizationMetric {
3466	s.Statistic = &v
3467	return s
3468}
3469
3470// SetValue sets the Value field's value.
3471func (s *UtilizationMetric) SetValue(v float64) *UtilizationMetric {
3472	s.Value = &v
3473	return s
3474}
3475
3476const (
3477	// ExportableAutoScalingGroupFieldAccountId is a ExportableAutoScalingGroupField enum value
3478	ExportableAutoScalingGroupFieldAccountId = "AccountId"
3479
3480	// ExportableAutoScalingGroupFieldAutoScalingGroupArn is a ExportableAutoScalingGroupField enum value
3481	ExportableAutoScalingGroupFieldAutoScalingGroupArn = "AutoScalingGroupArn"
3482
3483	// ExportableAutoScalingGroupFieldAutoScalingGroupName is a ExportableAutoScalingGroupField enum value
3484	ExportableAutoScalingGroupFieldAutoScalingGroupName = "AutoScalingGroupName"
3485
3486	// ExportableAutoScalingGroupFieldFinding is a ExportableAutoScalingGroupField enum value
3487	ExportableAutoScalingGroupFieldFinding = "Finding"
3488
3489	// ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum is a ExportableAutoScalingGroupField enum value
3490	ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum = "UtilizationMetricsCpuMaximum"
3491
3492	// ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum is a ExportableAutoScalingGroupField enum value
3493	ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum"
3494
3495	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value
3496	ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum = "UtilizationMetricsEbsReadOpsPerSecondMaximum"
3497
3498	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value
3499	ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum = "UtilizationMetricsEbsWriteOpsPerSecondMaximum"
3500
3501	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
3502	ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum = "UtilizationMetricsEbsReadBytesPerSecondMaximum"
3503
3504	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
3505	ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum = "UtilizationMetricsEbsWriteBytesPerSecondMaximum"
3506
3507	// ExportableAutoScalingGroupFieldLookbackPeriodInDays is a ExportableAutoScalingGroupField enum value
3508	ExportableAutoScalingGroupFieldLookbackPeriodInDays = "LookbackPeriodInDays"
3509
3510	// ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType is a ExportableAutoScalingGroupField enum value
3511	ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType = "CurrentConfigurationInstanceType"
3512
3513	// ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity is a ExportableAutoScalingGroupField enum value
3514	ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity = "CurrentConfigurationDesiredCapacity"
3515
3516	// ExportableAutoScalingGroupFieldCurrentConfigurationMinSize is a ExportableAutoScalingGroupField enum value
3517	ExportableAutoScalingGroupFieldCurrentConfigurationMinSize = "CurrentConfigurationMinSize"
3518
3519	// ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize is a ExportableAutoScalingGroupField enum value
3520	ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize = "CurrentConfigurationMaxSize"
3521
3522	// ExportableAutoScalingGroupFieldCurrentOnDemandPrice is a ExportableAutoScalingGroupField enum value
3523	ExportableAutoScalingGroupFieldCurrentOnDemandPrice = "CurrentOnDemandPrice"
3524
3525	// ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
3526	ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice = "CurrentStandardOneYearNoUpfrontReservedPrice"
3527
3528	// ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
3529	ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice = "CurrentStandardThreeYearNoUpfrontReservedPrice"
3530
3531	// ExportableAutoScalingGroupFieldCurrentVcpus is a ExportableAutoScalingGroupField enum value
3532	ExportableAutoScalingGroupFieldCurrentVcpus = "CurrentVCpus"
3533
3534	// ExportableAutoScalingGroupFieldCurrentMemory is a ExportableAutoScalingGroupField enum value
3535	ExportableAutoScalingGroupFieldCurrentMemory = "CurrentMemory"
3536
3537	// ExportableAutoScalingGroupFieldCurrentStorage is a ExportableAutoScalingGroupField enum value
3538	ExportableAutoScalingGroupFieldCurrentStorage = "CurrentStorage"
3539
3540	// ExportableAutoScalingGroupFieldCurrentNetwork is a ExportableAutoScalingGroupField enum value
3541	ExportableAutoScalingGroupFieldCurrentNetwork = "CurrentNetwork"
3542
3543	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType is a ExportableAutoScalingGroupField enum value
3544	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType = "RecommendationOptionsConfigurationInstanceType"
3545
3546	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity is a ExportableAutoScalingGroupField enum value
3547	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity = "RecommendationOptionsConfigurationDesiredCapacity"
3548
3549	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize is a ExportableAutoScalingGroupField enum value
3550	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize = "RecommendationOptionsConfigurationMinSize"
3551
3552	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize is a ExportableAutoScalingGroupField enum value
3553	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize = "RecommendationOptionsConfigurationMaxSize"
3554
3555	// ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum is a ExportableAutoScalingGroupField enum value
3556	ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
3557
3558	// ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum is a ExportableAutoScalingGroupField enum value
3559	ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
3560
3561	// ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk is a ExportableAutoScalingGroupField enum value
3562	ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk = "RecommendationOptionsPerformanceRisk"
3563
3564	// ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice is a ExportableAutoScalingGroupField enum value
3565	ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice = "RecommendationOptionsOnDemandPrice"
3566
3567	// ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
3568	ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice"
3569
3570	// ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
3571	ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice"
3572
3573	// ExportableAutoScalingGroupFieldRecommendationOptionsVcpus is a ExportableAutoScalingGroupField enum value
3574	ExportableAutoScalingGroupFieldRecommendationOptionsVcpus = "RecommendationOptionsVcpus"
3575
3576	// ExportableAutoScalingGroupFieldRecommendationOptionsMemory is a ExportableAutoScalingGroupField enum value
3577	ExportableAutoScalingGroupFieldRecommendationOptionsMemory = "RecommendationOptionsMemory"
3578
3579	// ExportableAutoScalingGroupFieldRecommendationOptionsStorage is a ExportableAutoScalingGroupField enum value
3580	ExportableAutoScalingGroupFieldRecommendationOptionsStorage = "RecommendationOptionsStorage"
3581
3582	// ExportableAutoScalingGroupFieldRecommendationOptionsNetwork is a ExportableAutoScalingGroupField enum value
3583	ExportableAutoScalingGroupFieldRecommendationOptionsNetwork = "RecommendationOptionsNetwork"
3584
3585	// ExportableAutoScalingGroupFieldLastRefreshTimestamp is a ExportableAutoScalingGroupField enum value
3586	ExportableAutoScalingGroupFieldLastRefreshTimestamp = "LastRefreshTimestamp"
3587)
3588
3589// ExportableAutoScalingGroupField_Values returns all elements of the ExportableAutoScalingGroupField enum
3590func ExportableAutoScalingGroupField_Values() []string {
3591	return []string{
3592		ExportableAutoScalingGroupFieldAccountId,
3593		ExportableAutoScalingGroupFieldAutoScalingGroupArn,
3594		ExportableAutoScalingGroupFieldAutoScalingGroupName,
3595		ExportableAutoScalingGroupFieldFinding,
3596		ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum,
3597		ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum,
3598		ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum,
3599		ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum,
3600		ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum,
3601		ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum,
3602		ExportableAutoScalingGroupFieldLookbackPeriodInDays,
3603		ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType,
3604		ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity,
3605		ExportableAutoScalingGroupFieldCurrentConfigurationMinSize,
3606		ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize,
3607		ExportableAutoScalingGroupFieldCurrentOnDemandPrice,
3608		ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice,
3609		ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice,
3610		ExportableAutoScalingGroupFieldCurrentVcpus,
3611		ExportableAutoScalingGroupFieldCurrentMemory,
3612		ExportableAutoScalingGroupFieldCurrentStorage,
3613		ExportableAutoScalingGroupFieldCurrentNetwork,
3614		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType,
3615		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity,
3616		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize,
3617		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize,
3618		ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum,
3619		ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum,
3620		ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk,
3621		ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice,
3622		ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice,
3623		ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice,
3624		ExportableAutoScalingGroupFieldRecommendationOptionsVcpus,
3625		ExportableAutoScalingGroupFieldRecommendationOptionsMemory,
3626		ExportableAutoScalingGroupFieldRecommendationOptionsStorage,
3627		ExportableAutoScalingGroupFieldRecommendationOptionsNetwork,
3628		ExportableAutoScalingGroupFieldLastRefreshTimestamp,
3629	}
3630}
3631
3632const (
3633	// ExportableInstanceFieldAccountId is a ExportableInstanceField enum value
3634	ExportableInstanceFieldAccountId = "AccountId"
3635
3636	// ExportableInstanceFieldInstanceArn is a ExportableInstanceField enum value
3637	ExportableInstanceFieldInstanceArn = "InstanceArn"
3638
3639	// ExportableInstanceFieldInstanceName is a ExportableInstanceField enum value
3640	ExportableInstanceFieldInstanceName = "InstanceName"
3641
3642	// ExportableInstanceFieldFinding is a ExportableInstanceField enum value
3643	ExportableInstanceFieldFinding = "Finding"
3644
3645	// ExportableInstanceFieldLookbackPeriodInDays is a ExportableInstanceField enum value
3646	ExportableInstanceFieldLookbackPeriodInDays = "LookbackPeriodInDays"
3647
3648	// ExportableInstanceFieldCurrentInstanceType is a ExportableInstanceField enum value
3649	ExportableInstanceFieldCurrentInstanceType = "CurrentInstanceType"
3650
3651	// ExportableInstanceFieldUtilizationMetricsCpuMaximum is a ExportableInstanceField enum value
3652	ExportableInstanceFieldUtilizationMetricsCpuMaximum = "UtilizationMetricsCpuMaximum"
3653
3654	// ExportableInstanceFieldUtilizationMetricsMemoryMaximum is a ExportableInstanceField enum value
3655	ExportableInstanceFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum"
3656
3657	// ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum is a ExportableInstanceField enum value
3658	ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum = "UtilizationMetricsEbsReadOpsPerSecondMaximum"
3659
3660	// ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum is a ExportableInstanceField enum value
3661	ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum = "UtilizationMetricsEbsWriteOpsPerSecondMaximum"
3662
3663	// ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum is a ExportableInstanceField enum value
3664	ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum = "UtilizationMetricsEbsReadBytesPerSecondMaximum"
3665
3666	// ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum is a ExportableInstanceField enum value
3667	ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum = "UtilizationMetricsEbsWriteBytesPerSecondMaximum"
3668
3669	// ExportableInstanceFieldCurrentOnDemandPrice is a ExportableInstanceField enum value
3670	ExportableInstanceFieldCurrentOnDemandPrice = "CurrentOnDemandPrice"
3671
3672	// ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
3673	ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice = "CurrentStandardOneYearNoUpfrontReservedPrice"
3674
3675	// ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
3676	ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice = "CurrentStandardThreeYearNoUpfrontReservedPrice"
3677
3678	// ExportableInstanceFieldCurrentVcpus is a ExportableInstanceField enum value
3679	ExportableInstanceFieldCurrentVcpus = "CurrentVCpus"
3680
3681	// ExportableInstanceFieldCurrentMemory is a ExportableInstanceField enum value
3682	ExportableInstanceFieldCurrentMemory = "CurrentMemory"
3683
3684	// ExportableInstanceFieldCurrentStorage is a ExportableInstanceField enum value
3685	ExportableInstanceFieldCurrentStorage = "CurrentStorage"
3686
3687	// ExportableInstanceFieldCurrentNetwork is a ExportableInstanceField enum value
3688	ExportableInstanceFieldCurrentNetwork = "CurrentNetwork"
3689
3690	// ExportableInstanceFieldRecommendationOptionsInstanceType is a ExportableInstanceField enum value
3691	ExportableInstanceFieldRecommendationOptionsInstanceType = "RecommendationOptionsInstanceType"
3692
3693	// ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum is a ExportableInstanceField enum value
3694	ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
3695
3696	// ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum is a ExportableInstanceField enum value
3697	ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
3698
3699	// ExportableInstanceFieldRecommendationOptionsPerformanceRisk is a ExportableInstanceField enum value
3700	ExportableInstanceFieldRecommendationOptionsPerformanceRisk = "RecommendationOptionsPerformanceRisk"
3701
3702	// ExportableInstanceFieldRecommendationOptionsVcpus is a ExportableInstanceField enum value
3703	ExportableInstanceFieldRecommendationOptionsVcpus = "RecommendationOptionsVcpus"
3704
3705	// ExportableInstanceFieldRecommendationOptionsMemory is a ExportableInstanceField enum value
3706	ExportableInstanceFieldRecommendationOptionsMemory = "RecommendationOptionsMemory"
3707
3708	// ExportableInstanceFieldRecommendationOptionsStorage is a ExportableInstanceField enum value
3709	ExportableInstanceFieldRecommendationOptionsStorage = "RecommendationOptionsStorage"
3710
3711	// ExportableInstanceFieldRecommendationOptionsNetwork is a ExportableInstanceField enum value
3712	ExportableInstanceFieldRecommendationOptionsNetwork = "RecommendationOptionsNetwork"
3713
3714	// ExportableInstanceFieldRecommendationOptionsOnDemandPrice is a ExportableInstanceField enum value
3715	ExportableInstanceFieldRecommendationOptionsOnDemandPrice = "RecommendationOptionsOnDemandPrice"
3716
3717	// ExportableInstanceFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
3718	ExportableInstanceFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice"
3719
3720	// ExportableInstanceFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
3721	ExportableInstanceFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice"
3722
3723	// ExportableInstanceFieldRecommendationsSourcesRecommendationSourceArn is a ExportableInstanceField enum value
3724	ExportableInstanceFieldRecommendationsSourcesRecommendationSourceArn = "RecommendationsSourcesRecommendationSourceArn"
3725
3726	// ExportableInstanceFieldRecommendationsSourcesRecommendationSourceType is a ExportableInstanceField enum value
3727	ExportableInstanceFieldRecommendationsSourcesRecommendationSourceType = "RecommendationsSourcesRecommendationSourceType"
3728
3729	// ExportableInstanceFieldLastRefreshTimestamp is a ExportableInstanceField enum value
3730	ExportableInstanceFieldLastRefreshTimestamp = "LastRefreshTimestamp"
3731)
3732
3733// ExportableInstanceField_Values returns all elements of the ExportableInstanceField enum
3734func ExportableInstanceField_Values() []string {
3735	return []string{
3736		ExportableInstanceFieldAccountId,
3737		ExportableInstanceFieldInstanceArn,
3738		ExportableInstanceFieldInstanceName,
3739		ExportableInstanceFieldFinding,
3740		ExportableInstanceFieldLookbackPeriodInDays,
3741		ExportableInstanceFieldCurrentInstanceType,
3742		ExportableInstanceFieldUtilizationMetricsCpuMaximum,
3743		ExportableInstanceFieldUtilizationMetricsMemoryMaximum,
3744		ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum,
3745		ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum,
3746		ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum,
3747		ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum,
3748		ExportableInstanceFieldCurrentOnDemandPrice,
3749		ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice,
3750		ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice,
3751		ExportableInstanceFieldCurrentVcpus,
3752		ExportableInstanceFieldCurrentMemory,
3753		ExportableInstanceFieldCurrentStorage,
3754		ExportableInstanceFieldCurrentNetwork,
3755		ExportableInstanceFieldRecommendationOptionsInstanceType,
3756		ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum,
3757		ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum,
3758		ExportableInstanceFieldRecommendationOptionsPerformanceRisk,
3759		ExportableInstanceFieldRecommendationOptionsVcpus,
3760		ExportableInstanceFieldRecommendationOptionsMemory,
3761		ExportableInstanceFieldRecommendationOptionsStorage,
3762		ExportableInstanceFieldRecommendationOptionsNetwork,
3763		ExportableInstanceFieldRecommendationOptionsOnDemandPrice,
3764		ExportableInstanceFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice,
3765		ExportableInstanceFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice,
3766		ExportableInstanceFieldRecommendationsSourcesRecommendationSourceArn,
3767		ExportableInstanceFieldRecommendationsSourcesRecommendationSourceType,
3768		ExportableInstanceFieldLastRefreshTimestamp,
3769	}
3770}
3771
3772const (
3773	// FileFormatCsv is a FileFormat enum value
3774	FileFormatCsv = "Csv"
3775)
3776
3777// FileFormat_Values returns all elements of the FileFormat enum
3778func FileFormat_Values() []string {
3779	return []string{
3780		FileFormatCsv,
3781	}
3782}
3783
3784const (
3785	// FilterNameFinding is a FilterName enum value
3786	FilterNameFinding = "Finding"
3787
3788	// FilterNameRecommendationSourceType is a FilterName enum value
3789	FilterNameRecommendationSourceType = "RecommendationSourceType"
3790)
3791
3792// FilterName_Values returns all elements of the FilterName enum
3793func FilterName_Values() []string {
3794	return []string{
3795		FilterNameFinding,
3796		FilterNameRecommendationSourceType,
3797	}
3798}
3799
3800const (
3801	// FindingUnderprovisioned is a Finding enum value
3802	FindingUnderprovisioned = "Underprovisioned"
3803
3804	// FindingOverprovisioned is a Finding enum value
3805	FindingOverprovisioned = "Overprovisioned"
3806
3807	// FindingOptimized is a Finding enum value
3808	FindingOptimized = "Optimized"
3809
3810	// FindingNotOptimized is a Finding enum value
3811	FindingNotOptimized = "NotOptimized"
3812)
3813
3814// Finding_Values returns all elements of the Finding enum
3815func Finding_Values() []string {
3816	return []string{
3817		FindingUnderprovisioned,
3818		FindingOverprovisioned,
3819		FindingOptimized,
3820		FindingNotOptimized,
3821	}
3822}
3823
3824const (
3825	// JobFilterNameResourceType is a JobFilterName enum value
3826	JobFilterNameResourceType = "ResourceType"
3827
3828	// JobFilterNameJobStatus is a JobFilterName enum value
3829	JobFilterNameJobStatus = "JobStatus"
3830)
3831
3832// JobFilterName_Values returns all elements of the JobFilterName enum
3833func JobFilterName_Values() []string {
3834	return []string{
3835		JobFilterNameResourceType,
3836		JobFilterNameJobStatus,
3837	}
3838}
3839
3840const (
3841	// JobStatusQueued is a JobStatus enum value
3842	JobStatusQueued = "Queued"
3843
3844	// JobStatusInProgress is a JobStatus enum value
3845	JobStatusInProgress = "InProgress"
3846
3847	// JobStatusComplete is a JobStatus enum value
3848	JobStatusComplete = "Complete"
3849
3850	// JobStatusFailed is a JobStatus enum value
3851	JobStatusFailed = "Failed"
3852)
3853
3854// JobStatus_Values returns all elements of the JobStatus enum
3855func JobStatus_Values() []string {
3856	return []string{
3857		JobStatusQueued,
3858		JobStatusInProgress,
3859		JobStatusComplete,
3860		JobStatusFailed,
3861	}
3862}
3863
3864const (
3865	// MetricNameCpu is a MetricName enum value
3866	MetricNameCpu = "Cpu"
3867
3868	// MetricNameMemory is a MetricName enum value
3869	MetricNameMemory = "Memory"
3870
3871	// MetricNameEbsReadOpsPerSecond is a MetricName enum value
3872	MetricNameEbsReadOpsPerSecond = "EBS_READ_OPS_PER_SECOND"
3873
3874	// MetricNameEbsWriteOpsPerSecond is a MetricName enum value
3875	MetricNameEbsWriteOpsPerSecond = "EBS_WRITE_OPS_PER_SECOND"
3876
3877	// MetricNameEbsReadBytesPerSecond is a MetricName enum value
3878	MetricNameEbsReadBytesPerSecond = "EBS_READ_BYTES_PER_SECOND"
3879
3880	// MetricNameEbsWriteBytesPerSecond is a MetricName enum value
3881	MetricNameEbsWriteBytesPerSecond = "EBS_WRITE_BYTES_PER_SECOND"
3882)
3883
3884// MetricName_Values returns all elements of the MetricName enum
3885func MetricName_Values() []string {
3886	return []string{
3887		MetricNameCpu,
3888		MetricNameMemory,
3889		MetricNameEbsReadOpsPerSecond,
3890		MetricNameEbsWriteOpsPerSecond,
3891		MetricNameEbsReadBytesPerSecond,
3892		MetricNameEbsWriteBytesPerSecond,
3893	}
3894}
3895
3896const (
3897	// MetricStatisticMaximum is a MetricStatistic enum value
3898	MetricStatisticMaximum = "Maximum"
3899
3900	// MetricStatisticAverage is a MetricStatistic enum value
3901	MetricStatisticAverage = "Average"
3902)
3903
3904// MetricStatistic_Values returns all elements of the MetricStatistic enum
3905func MetricStatistic_Values() []string {
3906	return []string{
3907		MetricStatisticMaximum,
3908		MetricStatisticAverage,
3909	}
3910}
3911
3912const (
3913	// RecommendationSourceTypeEc2instance is a RecommendationSourceType enum value
3914	RecommendationSourceTypeEc2instance = "Ec2Instance"
3915
3916	// RecommendationSourceTypeAutoScalingGroup is a RecommendationSourceType enum value
3917	RecommendationSourceTypeAutoScalingGroup = "AutoScalingGroup"
3918)
3919
3920// RecommendationSourceType_Values returns all elements of the RecommendationSourceType enum
3921func RecommendationSourceType_Values() []string {
3922	return []string{
3923		RecommendationSourceTypeEc2instance,
3924		RecommendationSourceTypeAutoScalingGroup,
3925	}
3926}
3927
3928const (
3929	// ResourceTypeEc2instance is a ResourceType enum value
3930	ResourceTypeEc2instance = "Ec2Instance"
3931
3932	// ResourceTypeAutoScalingGroup is a ResourceType enum value
3933	ResourceTypeAutoScalingGroup = "AutoScalingGroup"
3934)
3935
3936// ResourceType_Values returns all elements of the ResourceType enum
3937func ResourceType_Values() []string {
3938	return []string{
3939		ResourceTypeEc2instance,
3940		ResourceTypeAutoScalingGroup,
3941	}
3942}
3943
3944const (
3945	// StatusActive is a Status enum value
3946	StatusActive = "Active"
3947
3948	// StatusInactive is a Status enum value
3949	StatusInactive = "Inactive"
3950
3951	// StatusPending is a Status enum value
3952	StatusPending = "Pending"
3953
3954	// StatusFailed is a Status enum value
3955	StatusFailed = "Failed"
3956)
3957
3958// Status_Values returns all elements of the Status enum
3959func Status_Values() []string {
3960	return []string{
3961		StatusActive,
3962		StatusInactive,
3963		StatusPending,
3964		StatusFailed,
3965	}
3966}
3967