github.com/aavshr/aws-sdk-go@v1.41.3/service/computeoptimizer/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package computeoptimizer
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  )
    14  
    15  const 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
    41  func (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 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  //   The value supplied for the input parameter is out of range or not valid.
    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) Amazon Web Services
    93  //   access key ID or 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
    99  func (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.
   113  func (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  
   120  const 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
   146  func (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) (.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 Amazon
   173  // Web Services Region.
   174  //
   175  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   176  // with awserr.Error's Code and Message methods to get detailed information about
   177  // the error.
   178  //
   179  // See the AWS API reference guide for AWS Compute Optimizer's
   180  // API operation ExportAutoScalingGroupRecommendations for usage and error information.
   181  //
   182  // Returned Error Types:
   183  //   * OptInRequiredException
   184  //   The account is not opted in to Compute Optimizer.
   185  //
   186  //   * InternalServerException
   187  //   An internal error has occurred. Try your call again.
   188  //
   189  //   * ServiceUnavailableException
   190  //   The request has failed due to a temporary failure of the server.
   191  //
   192  //   * AccessDeniedException
   193  //   You do not have sufficient access to perform this action.
   194  //
   195  //   * InvalidParameterValueException
   196  //   The value supplied for the input parameter is out of range or not valid.
   197  //
   198  //   * MissingAuthenticationToken
   199  //   The request must contain either a valid (registered) Amazon Web Services
   200  //   access key ID or X.509 certificate.
   201  //
   202  //   * ThrottlingException
   203  //   The request was denied due to request throttling.
   204  //
   205  //   * LimitExceededException
   206  //   The request exceeds a limit of the service.
   207  //
   208  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportAutoScalingGroupRecommendations
   209  func (c *ComputeOptimizer) ExportAutoScalingGroupRecommendations(input *ExportAutoScalingGroupRecommendationsInput) (*ExportAutoScalingGroupRecommendationsOutput, error) {
   210  	req, out := c.ExportAutoScalingGroupRecommendationsRequest(input)
   211  	return out, req.Send()
   212  }
   213  
   214  // ExportAutoScalingGroupRecommendationsWithContext is the same as ExportAutoScalingGroupRecommendations with the addition of
   215  // the ability to pass a context and additional request options.
   216  //
   217  // See ExportAutoScalingGroupRecommendations for details on how to use this API operation.
   218  //
   219  // The context must be non-nil and will be used for request cancellation. If
   220  // the context is nil a panic will occur. In the future the SDK may create
   221  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   222  // for more information on using Contexts.
   223  func (c *ComputeOptimizer) ExportAutoScalingGroupRecommendationsWithContext(ctx aws.Context, input *ExportAutoScalingGroupRecommendationsInput, opts ...request.Option) (*ExportAutoScalingGroupRecommendationsOutput, error) {
   224  	req, out := c.ExportAutoScalingGroupRecommendationsRequest(input)
   225  	req.SetContext(ctx)
   226  	req.ApplyOptions(opts...)
   227  	return out, req.Send()
   228  }
   229  
   230  const opExportEBSVolumeRecommendations = "ExportEBSVolumeRecommendations"
   231  
   232  // ExportEBSVolumeRecommendationsRequest generates a "aws/request.Request" representing the
   233  // client's request for the ExportEBSVolumeRecommendations operation. The "output" return
   234  // value will be populated with the request's response once the request completes
   235  // successfully.
   236  //
   237  // Use "Send" method on the returned Request to send the API call to the service.
   238  // the "output" return value is not valid until after Send returns without error.
   239  //
   240  // See ExportEBSVolumeRecommendations for more information on using the ExportEBSVolumeRecommendations
   241  // API call, and error handling.
   242  //
   243  // This method is useful when you want to inject custom logic or configuration
   244  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   245  //
   246  //
   247  //    // Example sending a request using the ExportEBSVolumeRecommendationsRequest method.
   248  //    req, resp := client.ExportEBSVolumeRecommendationsRequest(params)
   249  //
   250  //    err := req.Send()
   251  //    if err == nil { // resp is now filled
   252  //        fmt.Println(resp)
   253  //    }
   254  //
   255  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportEBSVolumeRecommendations
   256  func (c *ComputeOptimizer) ExportEBSVolumeRecommendationsRequest(input *ExportEBSVolumeRecommendationsInput) (req *request.Request, output *ExportEBSVolumeRecommendationsOutput) {
   257  	op := &request.Operation{
   258  		Name:       opExportEBSVolumeRecommendations,
   259  		HTTPMethod: "POST",
   260  		HTTPPath:   "/",
   261  	}
   262  
   263  	if input == nil {
   264  		input = &ExportEBSVolumeRecommendationsInput{}
   265  	}
   266  
   267  	output = &ExportEBSVolumeRecommendationsOutput{}
   268  	req = c.newRequest(op, input, output)
   269  	return
   270  }
   271  
   272  // ExportEBSVolumeRecommendations API operation for AWS Compute Optimizer.
   273  //
   274  // Exports optimization recommendations for Amazon EBS volumes.
   275  //
   276  // Recommendations are exported in a comma-separated values (.csv) file, and
   277  // its metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
   278  // Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
   279  // information, see Exporting Recommendations (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
   280  // in the Compute Optimizer User Guide.
   281  //
   282  // You can have only one Amazon EBS volume export job in progress per Amazon
   283  // Web Services Region.
   284  //
   285  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   286  // with awserr.Error's Code and Message methods to get detailed information about
   287  // the error.
   288  //
   289  // See the AWS API reference guide for AWS Compute Optimizer's
   290  // API operation ExportEBSVolumeRecommendations for usage and error information.
   291  //
   292  // Returned Error Types:
   293  //   * OptInRequiredException
   294  //   The account is not opted in to Compute Optimizer.
   295  //
   296  //   * InternalServerException
   297  //   An internal error has occurred. Try your call again.
   298  //
   299  //   * ServiceUnavailableException
   300  //   The request has failed due to a temporary failure of the server.
   301  //
   302  //   * AccessDeniedException
   303  //   You do not have sufficient access to perform this action.
   304  //
   305  //   * InvalidParameterValueException
   306  //   The value supplied for the input parameter is out of range or not valid.
   307  //
   308  //   * MissingAuthenticationToken
   309  //   The request must contain either a valid (registered) Amazon Web Services
   310  //   access key ID or X.509 certificate.
   311  //
   312  //   * ThrottlingException
   313  //   The request was denied due to request throttling.
   314  //
   315  //   * LimitExceededException
   316  //   The request exceeds a limit of the service.
   317  //
   318  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportEBSVolumeRecommendations
   319  func (c *ComputeOptimizer) ExportEBSVolumeRecommendations(input *ExportEBSVolumeRecommendationsInput) (*ExportEBSVolumeRecommendationsOutput, error) {
   320  	req, out := c.ExportEBSVolumeRecommendationsRequest(input)
   321  	return out, req.Send()
   322  }
   323  
   324  // ExportEBSVolumeRecommendationsWithContext is the same as ExportEBSVolumeRecommendations with the addition of
   325  // the ability to pass a context and additional request options.
   326  //
   327  // See ExportEBSVolumeRecommendations for details on how to use this API operation.
   328  //
   329  // The context must be non-nil and will be used for request cancellation. If
   330  // the context is nil a panic will occur. In the future the SDK may create
   331  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   332  // for more information on using Contexts.
   333  func (c *ComputeOptimizer) ExportEBSVolumeRecommendationsWithContext(ctx aws.Context, input *ExportEBSVolumeRecommendationsInput, opts ...request.Option) (*ExportEBSVolumeRecommendationsOutput, error) {
   334  	req, out := c.ExportEBSVolumeRecommendationsRequest(input)
   335  	req.SetContext(ctx)
   336  	req.ApplyOptions(opts...)
   337  	return out, req.Send()
   338  }
   339  
   340  const opExportEC2InstanceRecommendations = "ExportEC2InstanceRecommendations"
   341  
   342  // ExportEC2InstanceRecommendationsRequest generates a "aws/request.Request" representing the
   343  // client's request for the ExportEC2InstanceRecommendations operation. The "output" return
   344  // value will be populated with the request's response once the request completes
   345  // successfully.
   346  //
   347  // Use "Send" method on the returned Request to send the API call to the service.
   348  // the "output" return value is not valid until after Send returns without error.
   349  //
   350  // See ExportEC2InstanceRecommendations for more information on using the ExportEC2InstanceRecommendations
   351  // API call, and error handling.
   352  //
   353  // This method is useful when you want to inject custom logic or configuration
   354  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   355  //
   356  //
   357  //    // Example sending a request using the ExportEC2InstanceRecommendationsRequest method.
   358  //    req, resp := client.ExportEC2InstanceRecommendationsRequest(params)
   359  //
   360  //    err := req.Send()
   361  //    if err == nil { // resp is now filled
   362  //        fmt.Println(resp)
   363  //    }
   364  //
   365  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportEC2InstanceRecommendations
   366  func (c *ComputeOptimizer) ExportEC2InstanceRecommendationsRequest(input *ExportEC2InstanceRecommendationsInput) (req *request.Request, output *ExportEC2InstanceRecommendationsOutput) {
   367  	op := &request.Operation{
   368  		Name:       opExportEC2InstanceRecommendations,
   369  		HTTPMethod: "POST",
   370  		HTTPPath:   "/",
   371  	}
   372  
   373  	if input == nil {
   374  		input = &ExportEC2InstanceRecommendationsInput{}
   375  	}
   376  
   377  	output = &ExportEC2InstanceRecommendationsOutput{}
   378  	req = c.newRequest(op, input, output)
   379  	return
   380  }
   381  
   382  // ExportEC2InstanceRecommendations API operation for AWS Compute Optimizer.
   383  //
   384  // Exports optimization recommendations for Amazon EC2 instances.
   385  //
   386  // Recommendations are exported in a comma-separated values (.csv) file, and
   387  // its metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
   388  // Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
   389  // information, see Exporting Recommendations (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
   390  // in the Compute Optimizer User Guide.
   391  //
   392  // You can have only one Amazon EC2 instance export job in progress per Amazon
   393  // Web Services Region.
   394  //
   395  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   396  // with awserr.Error's Code and Message methods to get detailed information about
   397  // the error.
   398  //
   399  // See the AWS API reference guide for AWS Compute Optimizer's
   400  // API operation ExportEC2InstanceRecommendations for usage and error information.
   401  //
   402  // Returned Error Types:
   403  //   * OptInRequiredException
   404  //   The account is not opted in to Compute Optimizer.
   405  //
   406  //   * InternalServerException
   407  //   An internal error has occurred. Try your call again.
   408  //
   409  //   * ServiceUnavailableException
   410  //   The request has failed due to a temporary failure of the server.
   411  //
   412  //   * AccessDeniedException
   413  //   You do not have sufficient access to perform this action.
   414  //
   415  //   * InvalidParameterValueException
   416  //   The value supplied for the input parameter is out of range or not valid.
   417  //
   418  //   * MissingAuthenticationToken
   419  //   The request must contain either a valid (registered) Amazon Web Services
   420  //   access key ID or X.509 certificate.
   421  //
   422  //   * ThrottlingException
   423  //   The request was denied due to request throttling.
   424  //
   425  //   * LimitExceededException
   426  //   The request exceeds a limit of the service.
   427  //
   428  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportEC2InstanceRecommendations
   429  func (c *ComputeOptimizer) ExportEC2InstanceRecommendations(input *ExportEC2InstanceRecommendationsInput) (*ExportEC2InstanceRecommendationsOutput, error) {
   430  	req, out := c.ExportEC2InstanceRecommendationsRequest(input)
   431  	return out, req.Send()
   432  }
   433  
   434  // ExportEC2InstanceRecommendationsWithContext is the same as ExportEC2InstanceRecommendations with the addition of
   435  // the ability to pass a context and additional request options.
   436  //
   437  // See ExportEC2InstanceRecommendations for details on how to use this API operation.
   438  //
   439  // The context must be non-nil and will be used for request cancellation. If
   440  // the context is nil a panic will occur. In the future the SDK may create
   441  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   442  // for more information on using Contexts.
   443  func (c *ComputeOptimizer) ExportEC2InstanceRecommendationsWithContext(ctx aws.Context, input *ExportEC2InstanceRecommendationsInput, opts ...request.Option) (*ExportEC2InstanceRecommendationsOutput, error) {
   444  	req, out := c.ExportEC2InstanceRecommendationsRequest(input)
   445  	req.SetContext(ctx)
   446  	req.ApplyOptions(opts...)
   447  	return out, req.Send()
   448  }
   449  
   450  const opExportLambdaFunctionRecommendations = "ExportLambdaFunctionRecommendations"
   451  
   452  // ExportLambdaFunctionRecommendationsRequest generates a "aws/request.Request" representing the
   453  // client's request for the ExportLambdaFunctionRecommendations operation. The "output" return
   454  // value will be populated with the request's response once the request completes
   455  // successfully.
   456  //
   457  // Use "Send" method on the returned Request to send the API call to the service.
   458  // the "output" return value is not valid until after Send returns without error.
   459  //
   460  // See ExportLambdaFunctionRecommendations for more information on using the ExportLambdaFunctionRecommendations
   461  // API call, and error handling.
   462  //
   463  // This method is useful when you want to inject custom logic or configuration
   464  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   465  //
   466  //
   467  //    // Example sending a request using the ExportLambdaFunctionRecommendationsRequest method.
   468  //    req, resp := client.ExportLambdaFunctionRecommendationsRequest(params)
   469  //
   470  //    err := req.Send()
   471  //    if err == nil { // resp is now filled
   472  //        fmt.Println(resp)
   473  //    }
   474  //
   475  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportLambdaFunctionRecommendations
   476  func (c *ComputeOptimizer) ExportLambdaFunctionRecommendationsRequest(input *ExportLambdaFunctionRecommendationsInput) (req *request.Request, output *ExportLambdaFunctionRecommendationsOutput) {
   477  	op := &request.Operation{
   478  		Name:       opExportLambdaFunctionRecommendations,
   479  		HTTPMethod: "POST",
   480  		HTTPPath:   "/",
   481  	}
   482  
   483  	if input == nil {
   484  		input = &ExportLambdaFunctionRecommendationsInput{}
   485  	}
   486  
   487  	output = &ExportLambdaFunctionRecommendationsOutput{}
   488  	req = c.newRequest(op, input, output)
   489  	return
   490  }
   491  
   492  // ExportLambdaFunctionRecommendations API operation for AWS Compute Optimizer.
   493  //
   494  // Exports optimization recommendations for Lambda functions.
   495  //
   496  // Recommendations are exported in a comma-separated values (.csv) file, and
   497  // its metadata in a JavaScript Object Notation (JSON) (.json) file, to an existing
   498  // Amazon Simple Storage Service (Amazon S3) bucket that you specify. For more
   499  // information, see Exporting Recommendations (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html)
   500  // in the Compute Optimizer User Guide.
   501  //
   502  // You can have only one Lambda function export job in progress per Amazon Web
   503  // Services Region.
   504  //
   505  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   506  // with awserr.Error's Code and Message methods to get detailed information about
   507  // the error.
   508  //
   509  // See the AWS API reference guide for AWS Compute Optimizer's
   510  // API operation ExportLambdaFunctionRecommendations for usage and error information.
   511  //
   512  // Returned Error Types:
   513  //   * OptInRequiredException
   514  //   The account is not opted in to Compute Optimizer.
   515  //
   516  //   * InternalServerException
   517  //   An internal error has occurred. Try your call again.
   518  //
   519  //   * ServiceUnavailableException
   520  //   The request has failed due to a temporary failure of the server.
   521  //
   522  //   * AccessDeniedException
   523  //   You do not have sufficient access to perform this action.
   524  //
   525  //   * InvalidParameterValueException
   526  //   The value supplied for the input parameter is out of range or not valid.
   527  //
   528  //   * MissingAuthenticationToken
   529  //   The request must contain either a valid (registered) Amazon Web Services
   530  //   access key ID or X.509 certificate.
   531  //
   532  //   * ThrottlingException
   533  //   The request was denied due to request throttling.
   534  //
   535  //   * LimitExceededException
   536  //   The request exceeds a limit of the service.
   537  //
   538  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportLambdaFunctionRecommendations
   539  func (c *ComputeOptimizer) ExportLambdaFunctionRecommendations(input *ExportLambdaFunctionRecommendationsInput) (*ExportLambdaFunctionRecommendationsOutput, error) {
   540  	req, out := c.ExportLambdaFunctionRecommendationsRequest(input)
   541  	return out, req.Send()
   542  }
   543  
   544  // ExportLambdaFunctionRecommendationsWithContext is the same as ExportLambdaFunctionRecommendations with the addition of
   545  // the ability to pass a context and additional request options.
   546  //
   547  // See ExportLambdaFunctionRecommendations for details on how to use this API operation.
   548  //
   549  // The context must be non-nil and will be used for request cancellation. If
   550  // the context is nil a panic will occur. In the future the SDK may create
   551  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   552  // for more information on using Contexts.
   553  func (c *ComputeOptimizer) ExportLambdaFunctionRecommendationsWithContext(ctx aws.Context, input *ExportLambdaFunctionRecommendationsInput, opts ...request.Option) (*ExportLambdaFunctionRecommendationsOutput, error) {
   554  	req, out := c.ExportLambdaFunctionRecommendationsRequest(input)
   555  	req.SetContext(ctx)
   556  	req.ApplyOptions(opts...)
   557  	return out, req.Send()
   558  }
   559  
   560  const opGetAutoScalingGroupRecommendations = "GetAutoScalingGroupRecommendations"
   561  
   562  // GetAutoScalingGroupRecommendationsRequest generates a "aws/request.Request" representing the
   563  // client's request for the GetAutoScalingGroupRecommendations operation. The "output" return
   564  // value will be populated with the request's response once the request completes
   565  // successfully.
   566  //
   567  // Use "Send" method on the returned Request to send the API call to the service.
   568  // the "output" return value is not valid until after Send returns without error.
   569  //
   570  // See GetAutoScalingGroupRecommendations for more information on using the GetAutoScalingGroupRecommendations
   571  // API call, and error handling.
   572  //
   573  // This method is useful when you want to inject custom logic or configuration
   574  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   575  //
   576  //
   577  //    // Example sending a request using the GetAutoScalingGroupRecommendationsRequest method.
   578  //    req, resp := client.GetAutoScalingGroupRecommendationsRequest(params)
   579  //
   580  //    err := req.Send()
   581  //    if err == nil { // resp is now filled
   582  //        fmt.Println(resp)
   583  //    }
   584  //
   585  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetAutoScalingGroupRecommendations
   586  func (c *ComputeOptimizer) GetAutoScalingGroupRecommendationsRequest(input *GetAutoScalingGroupRecommendationsInput) (req *request.Request, output *GetAutoScalingGroupRecommendationsOutput) {
   587  	op := &request.Operation{
   588  		Name:       opGetAutoScalingGroupRecommendations,
   589  		HTTPMethod: "POST",
   590  		HTTPPath:   "/",
   591  	}
   592  
   593  	if input == nil {
   594  		input = &GetAutoScalingGroupRecommendationsInput{}
   595  	}
   596  
   597  	output = &GetAutoScalingGroupRecommendationsOutput{}
   598  	req = c.newRequest(op, input, output)
   599  	return
   600  }
   601  
   602  // GetAutoScalingGroupRecommendations API operation for AWS Compute Optimizer.
   603  //
   604  // Returns Auto Scaling group recommendations.
   605  //
   606  // Compute Optimizer generates recommendations for Amazon EC2 Auto Scaling groups
   607  // that meet a specific set of requirements. For more information, see the Supported
   608  // resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
   609  // in the Compute Optimizer User Guide.
   610  //
   611  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   612  // with awserr.Error's Code and Message methods to get detailed information about
   613  // the error.
   614  //
   615  // See the AWS API reference guide for AWS Compute Optimizer's
   616  // API operation GetAutoScalingGroupRecommendations for usage and error information.
   617  //
   618  // Returned Error Types:
   619  //   * OptInRequiredException
   620  //   The account is not opted in to Compute Optimizer.
   621  //
   622  //   * InternalServerException
   623  //   An internal error has occurred. Try your call again.
   624  //
   625  //   * ServiceUnavailableException
   626  //   The request has failed due to a temporary failure of the server.
   627  //
   628  //   * AccessDeniedException
   629  //   You do not have sufficient access to perform this action.
   630  //
   631  //   * InvalidParameterValueException
   632  //   The value supplied for the input parameter is out of range or not valid.
   633  //
   634  //   * ResourceNotFoundException
   635  //   A resource that is required for the action doesn't exist.
   636  //
   637  //   * MissingAuthenticationToken
   638  //   The request must contain either a valid (registered) Amazon Web Services
   639  //   access key ID or X.509 certificate.
   640  //
   641  //   * ThrottlingException
   642  //   The request was denied due to request throttling.
   643  //
   644  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetAutoScalingGroupRecommendations
   645  func (c *ComputeOptimizer) GetAutoScalingGroupRecommendations(input *GetAutoScalingGroupRecommendationsInput) (*GetAutoScalingGroupRecommendationsOutput, error) {
   646  	req, out := c.GetAutoScalingGroupRecommendationsRequest(input)
   647  	return out, req.Send()
   648  }
   649  
   650  // GetAutoScalingGroupRecommendationsWithContext is the same as GetAutoScalingGroupRecommendations with the addition of
   651  // the ability to pass a context and additional request options.
   652  //
   653  // See GetAutoScalingGroupRecommendations for details on how to use this API operation.
   654  //
   655  // The context must be non-nil and will be used for request cancellation. If
   656  // the context is nil a panic will occur. In the future the SDK may create
   657  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   658  // for more information on using Contexts.
   659  func (c *ComputeOptimizer) GetAutoScalingGroupRecommendationsWithContext(ctx aws.Context, input *GetAutoScalingGroupRecommendationsInput, opts ...request.Option) (*GetAutoScalingGroupRecommendationsOutput, error) {
   660  	req, out := c.GetAutoScalingGroupRecommendationsRequest(input)
   661  	req.SetContext(ctx)
   662  	req.ApplyOptions(opts...)
   663  	return out, req.Send()
   664  }
   665  
   666  const opGetEBSVolumeRecommendations = "GetEBSVolumeRecommendations"
   667  
   668  // GetEBSVolumeRecommendationsRequest generates a "aws/request.Request" representing the
   669  // client's request for the GetEBSVolumeRecommendations operation. The "output" return
   670  // value will be populated with the request's response once the request completes
   671  // successfully.
   672  //
   673  // Use "Send" method on the returned Request to send the API call to the service.
   674  // the "output" return value is not valid until after Send returns without error.
   675  //
   676  // See GetEBSVolumeRecommendations for more information on using the GetEBSVolumeRecommendations
   677  // API call, and error handling.
   678  //
   679  // This method is useful when you want to inject custom logic or configuration
   680  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   681  //
   682  //
   683  //    // Example sending a request using the GetEBSVolumeRecommendationsRequest method.
   684  //    req, resp := client.GetEBSVolumeRecommendationsRequest(params)
   685  //
   686  //    err := req.Send()
   687  //    if err == nil { // resp is now filled
   688  //        fmt.Println(resp)
   689  //    }
   690  //
   691  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEBSVolumeRecommendations
   692  func (c *ComputeOptimizer) GetEBSVolumeRecommendationsRequest(input *GetEBSVolumeRecommendationsInput) (req *request.Request, output *GetEBSVolumeRecommendationsOutput) {
   693  	op := &request.Operation{
   694  		Name:       opGetEBSVolumeRecommendations,
   695  		HTTPMethod: "POST",
   696  		HTTPPath:   "/",
   697  	}
   698  
   699  	if input == nil {
   700  		input = &GetEBSVolumeRecommendationsInput{}
   701  	}
   702  
   703  	output = &GetEBSVolumeRecommendationsOutput{}
   704  	req = c.newRequest(op, input, output)
   705  	return
   706  }
   707  
   708  // GetEBSVolumeRecommendations API operation for AWS Compute Optimizer.
   709  //
   710  // Returns Amazon Elastic Block Store (Amazon EBS) volume recommendations.
   711  //
   712  // Compute Optimizer generates recommendations for Amazon EBS volumes that meet
   713  // a specific set of requirements. For more information, see the Supported resources
   714  // and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
   715  // in the Compute Optimizer User Guide.
   716  //
   717  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   718  // with awserr.Error's Code and Message methods to get detailed information about
   719  // the error.
   720  //
   721  // See the AWS API reference guide for AWS Compute Optimizer's
   722  // API operation GetEBSVolumeRecommendations for usage and error information.
   723  //
   724  // Returned Error Types:
   725  //   * OptInRequiredException
   726  //   The account is not opted in to Compute Optimizer.
   727  //
   728  //   * InternalServerException
   729  //   An internal error has occurred. Try your call again.
   730  //
   731  //   * ServiceUnavailableException
   732  //   The request has failed due to a temporary failure of the server.
   733  //
   734  //   * AccessDeniedException
   735  //   You do not have sufficient access to perform this action.
   736  //
   737  //   * InvalidParameterValueException
   738  //   The value supplied for the input parameter is out of range or not valid.
   739  //
   740  //   * ResourceNotFoundException
   741  //   A resource that is required for the action doesn't exist.
   742  //
   743  //   * MissingAuthenticationToken
   744  //   The request must contain either a valid (registered) Amazon Web Services
   745  //   access key ID or X.509 certificate.
   746  //
   747  //   * ThrottlingException
   748  //   The request was denied due to request throttling.
   749  //
   750  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEBSVolumeRecommendations
   751  func (c *ComputeOptimizer) GetEBSVolumeRecommendations(input *GetEBSVolumeRecommendationsInput) (*GetEBSVolumeRecommendationsOutput, error) {
   752  	req, out := c.GetEBSVolumeRecommendationsRequest(input)
   753  	return out, req.Send()
   754  }
   755  
   756  // GetEBSVolumeRecommendationsWithContext is the same as GetEBSVolumeRecommendations with the addition of
   757  // the ability to pass a context and additional request options.
   758  //
   759  // See GetEBSVolumeRecommendations for details on how to use this API operation.
   760  //
   761  // The context must be non-nil and will be used for request cancellation. If
   762  // the context is nil a panic will occur. In the future the SDK may create
   763  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   764  // for more information on using Contexts.
   765  func (c *ComputeOptimizer) GetEBSVolumeRecommendationsWithContext(ctx aws.Context, input *GetEBSVolumeRecommendationsInput, opts ...request.Option) (*GetEBSVolumeRecommendationsOutput, error) {
   766  	req, out := c.GetEBSVolumeRecommendationsRequest(input)
   767  	req.SetContext(ctx)
   768  	req.ApplyOptions(opts...)
   769  	return out, req.Send()
   770  }
   771  
   772  const opGetEC2InstanceRecommendations = "GetEC2InstanceRecommendations"
   773  
   774  // GetEC2InstanceRecommendationsRequest generates a "aws/request.Request" representing the
   775  // client's request for the GetEC2InstanceRecommendations operation. The "output" return
   776  // value will be populated with the request's response once the request completes
   777  // successfully.
   778  //
   779  // Use "Send" method on the returned Request to send the API call to the service.
   780  // the "output" return value is not valid until after Send returns without error.
   781  //
   782  // See GetEC2InstanceRecommendations for more information on using the GetEC2InstanceRecommendations
   783  // API call, and error handling.
   784  //
   785  // This method is useful when you want to inject custom logic or configuration
   786  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   787  //
   788  //
   789  //    // Example sending a request using the GetEC2InstanceRecommendationsRequest method.
   790  //    req, resp := client.GetEC2InstanceRecommendationsRequest(params)
   791  //
   792  //    err := req.Send()
   793  //    if err == nil { // resp is now filled
   794  //        fmt.Println(resp)
   795  //    }
   796  //
   797  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2InstanceRecommendations
   798  func (c *ComputeOptimizer) GetEC2InstanceRecommendationsRequest(input *GetEC2InstanceRecommendationsInput) (req *request.Request, output *GetEC2InstanceRecommendationsOutput) {
   799  	op := &request.Operation{
   800  		Name:       opGetEC2InstanceRecommendations,
   801  		HTTPMethod: "POST",
   802  		HTTPPath:   "/",
   803  	}
   804  
   805  	if input == nil {
   806  		input = &GetEC2InstanceRecommendationsInput{}
   807  	}
   808  
   809  	output = &GetEC2InstanceRecommendationsOutput{}
   810  	req = c.newRequest(op, input, output)
   811  	return
   812  }
   813  
   814  // GetEC2InstanceRecommendations API operation for AWS Compute Optimizer.
   815  //
   816  // Returns Amazon EC2 instance recommendations.
   817  //
   818  // Compute Optimizer generates recommendations for Amazon Elastic Compute Cloud
   819  // (Amazon EC2) instances that meet a specific set of requirements. For more
   820  // information, see the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
   821  // in the Compute Optimizer User Guide.
   822  //
   823  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   824  // with awserr.Error's Code and Message methods to get detailed information about
   825  // the error.
   826  //
   827  // See the AWS API reference guide for AWS Compute Optimizer's
   828  // API operation GetEC2InstanceRecommendations for usage and error information.
   829  //
   830  // Returned Error Types:
   831  //   * OptInRequiredException
   832  //   The account is not opted in to Compute Optimizer.
   833  //
   834  //   * InternalServerException
   835  //   An internal error has occurred. Try your call again.
   836  //
   837  //   * ServiceUnavailableException
   838  //   The request has failed due to a temporary failure of the server.
   839  //
   840  //   * AccessDeniedException
   841  //   You do not have sufficient access to perform this action.
   842  //
   843  //   * InvalidParameterValueException
   844  //   The value supplied for the input parameter is out of range or not valid.
   845  //
   846  //   * ResourceNotFoundException
   847  //   A resource that is required for the action doesn't exist.
   848  //
   849  //   * MissingAuthenticationToken
   850  //   The request must contain either a valid (registered) Amazon Web Services
   851  //   access key ID or X.509 certificate.
   852  //
   853  //   * ThrottlingException
   854  //   The request was denied due to request throttling.
   855  //
   856  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2InstanceRecommendations
   857  func (c *ComputeOptimizer) GetEC2InstanceRecommendations(input *GetEC2InstanceRecommendationsInput) (*GetEC2InstanceRecommendationsOutput, error) {
   858  	req, out := c.GetEC2InstanceRecommendationsRequest(input)
   859  	return out, req.Send()
   860  }
   861  
   862  // GetEC2InstanceRecommendationsWithContext is the same as GetEC2InstanceRecommendations with the addition of
   863  // the ability to pass a context and additional request options.
   864  //
   865  // See GetEC2InstanceRecommendations for details on how to use this API operation.
   866  //
   867  // The context must be non-nil and will be used for request cancellation. If
   868  // the context is nil a panic will occur. In the future the SDK may create
   869  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   870  // for more information on using Contexts.
   871  func (c *ComputeOptimizer) GetEC2InstanceRecommendationsWithContext(ctx aws.Context, input *GetEC2InstanceRecommendationsInput, opts ...request.Option) (*GetEC2InstanceRecommendationsOutput, error) {
   872  	req, out := c.GetEC2InstanceRecommendationsRequest(input)
   873  	req.SetContext(ctx)
   874  	req.ApplyOptions(opts...)
   875  	return out, req.Send()
   876  }
   877  
   878  const opGetEC2RecommendationProjectedMetrics = "GetEC2RecommendationProjectedMetrics"
   879  
   880  // GetEC2RecommendationProjectedMetricsRequest generates a "aws/request.Request" representing the
   881  // client's request for the GetEC2RecommendationProjectedMetrics operation. The "output" return
   882  // value will be populated with the request's response once the request completes
   883  // successfully.
   884  //
   885  // Use "Send" method on the returned Request to send the API call to the service.
   886  // the "output" return value is not valid until after Send returns without error.
   887  //
   888  // See GetEC2RecommendationProjectedMetrics for more information on using the GetEC2RecommendationProjectedMetrics
   889  // API call, and error handling.
   890  //
   891  // This method is useful when you want to inject custom logic or configuration
   892  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   893  //
   894  //
   895  //    // Example sending a request using the GetEC2RecommendationProjectedMetricsRequest method.
   896  //    req, resp := client.GetEC2RecommendationProjectedMetricsRequest(params)
   897  //
   898  //    err := req.Send()
   899  //    if err == nil { // resp is now filled
   900  //        fmt.Println(resp)
   901  //    }
   902  //
   903  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2RecommendationProjectedMetrics
   904  func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetricsRequest(input *GetEC2RecommendationProjectedMetricsInput) (req *request.Request, output *GetEC2RecommendationProjectedMetricsOutput) {
   905  	op := &request.Operation{
   906  		Name:       opGetEC2RecommendationProjectedMetrics,
   907  		HTTPMethod: "POST",
   908  		HTTPPath:   "/",
   909  	}
   910  
   911  	if input == nil {
   912  		input = &GetEC2RecommendationProjectedMetricsInput{}
   913  	}
   914  
   915  	output = &GetEC2RecommendationProjectedMetricsOutput{}
   916  	req = c.newRequest(op, input, output)
   917  	return
   918  }
   919  
   920  // GetEC2RecommendationProjectedMetrics API operation for AWS Compute Optimizer.
   921  //
   922  // Returns the projected utilization metrics of Amazon EC2 instance recommendations.
   923  //
   924  // The Cpu and Memory metrics are the only projected utilization metrics returned
   925  // when you run this action. Additionally, the Memory metric is returned only
   926  // for resources that have the unified CloudWatch agent installed on them. For
   927  // more information, see Enabling Memory Utilization with the CloudWatch Agent
   928  // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
   929  //
   930  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   931  // with awserr.Error's Code and Message methods to get detailed information about
   932  // the error.
   933  //
   934  // See the AWS API reference guide for AWS Compute Optimizer's
   935  // API operation GetEC2RecommendationProjectedMetrics for usage and error information.
   936  //
   937  // Returned Error Types:
   938  //   * OptInRequiredException
   939  //   The account is not opted in to Compute Optimizer.
   940  //
   941  //   * InternalServerException
   942  //   An internal error has occurred. Try your call again.
   943  //
   944  //   * ServiceUnavailableException
   945  //   The request has failed due to a temporary failure of the server.
   946  //
   947  //   * AccessDeniedException
   948  //   You do not have sufficient access to perform this action.
   949  //
   950  //   * InvalidParameterValueException
   951  //   The value supplied for the input parameter is out of range or not valid.
   952  //
   953  //   * ResourceNotFoundException
   954  //   A resource that is required for the action doesn't exist.
   955  //
   956  //   * MissingAuthenticationToken
   957  //   The request must contain either a valid (registered) Amazon Web Services
   958  //   access key ID or X.509 certificate.
   959  //
   960  //   * ThrottlingException
   961  //   The request was denied due to request throttling.
   962  //
   963  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEC2RecommendationProjectedMetrics
   964  func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetrics(input *GetEC2RecommendationProjectedMetricsInput) (*GetEC2RecommendationProjectedMetricsOutput, error) {
   965  	req, out := c.GetEC2RecommendationProjectedMetricsRequest(input)
   966  	return out, req.Send()
   967  }
   968  
   969  // GetEC2RecommendationProjectedMetricsWithContext is the same as GetEC2RecommendationProjectedMetrics with the addition of
   970  // the ability to pass a context and additional request options.
   971  //
   972  // See GetEC2RecommendationProjectedMetrics for details on how to use this API operation.
   973  //
   974  // The context must be non-nil and will be used for request cancellation. If
   975  // the context is nil a panic will occur. In the future the SDK may create
   976  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   977  // for more information on using Contexts.
   978  func (c *ComputeOptimizer) GetEC2RecommendationProjectedMetricsWithContext(ctx aws.Context, input *GetEC2RecommendationProjectedMetricsInput, opts ...request.Option) (*GetEC2RecommendationProjectedMetricsOutput, error) {
   979  	req, out := c.GetEC2RecommendationProjectedMetricsRequest(input)
   980  	req.SetContext(ctx)
   981  	req.ApplyOptions(opts...)
   982  	return out, req.Send()
   983  }
   984  
   985  const opGetEnrollmentStatus = "GetEnrollmentStatus"
   986  
   987  // GetEnrollmentStatusRequest generates a "aws/request.Request" representing the
   988  // client's request for the GetEnrollmentStatus operation. The "output" return
   989  // value will be populated with the request's response once the request completes
   990  // successfully.
   991  //
   992  // Use "Send" method on the returned Request to send the API call to the service.
   993  // the "output" return value is not valid until after Send returns without error.
   994  //
   995  // See GetEnrollmentStatus for more information on using the GetEnrollmentStatus
   996  // API call, and error handling.
   997  //
   998  // This method is useful when you want to inject custom logic or configuration
   999  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1000  //
  1001  //
  1002  //    // Example sending a request using the GetEnrollmentStatusRequest method.
  1003  //    req, resp := client.GetEnrollmentStatusRequest(params)
  1004  //
  1005  //    err := req.Send()
  1006  //    if err == nil { // resp is now filled
  1007  //        fmt.Println(resp)
  1008  //    }
  1009  //
  1010  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatus
  1011  func (c *ComputeOptimizer) GetEnrollmentStatusRequest(input *GetEnrollmentStatusInput) (req *request.Request, output *GetEnrollmentStatusOutput) {
  1012  	op := &request.Operation{
  1013  		Name:       opGetEnrollmentStatus,
  1014  		HTTPMethod: "POST",
  1015  		HTTPPath:   "/",
  1016  	}
  1017  
  1018  	if input == nil {
  1019  		input = &GetEnrollmentStatusInput{}
  1020  	}
  1021  
  1022  	output = &GetEnrollmentStatusOutput{}
  1023  	req = c.newRequest(op, input, output)
  1024  	return
  1025  }
  1026  
  1027  // GetEnrollmentStatus API operation for AWS Compute Optimizer.
  1028  //
  1029  // Returns the enrollment (opt in) status of an account to the Compute Optimizer
  1030  // service.
  1031  //
  1032  // If the account is the management account of an organization, this action
  1033  // also confirms the enrollment status of member accounts of the organization.
  1034  // Use the GetEnrollmentStatusesForOrganization action to get detailed information
  1035  // about the enrollment status of member accounts of an organization.
  1036  //
  1037  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1038  // with awserr.Error's Code and Message methods to get detailed information about
  1039  // the error.
  1040  //
  1041  // See the AWS API reference guide for AWS Compute Optimizer's
  1042  // API operation GetEnrollmentStatus for usage and error information.
  1043  //
  1044  // Returned Error Types:
  1045  //   * InternalServerException
  1046  //   An internal error has occurred. Try your call again.
  1047  //
  1048  //   * ServiceUnavailableException
  1049  //   The request has failed due to a temporary failure of the server.
  1050  //
  1051  //   * AccessDeniedException
  1052  //   You do not have sufficient access to perform this action.
  1053  //
  1054  //   * InvalidParameterValueException
  1055  //   The value supplied for the input parameter is out of range or not valid.
  1056  //
  1057  //   * MissingAuthenticationToken
  1058  //   The request must contain either a valid (registered) Amazon Web Services
  1059  //   access key ID or X.509 certificate.
  1060  //
  1061  //   * ThrottlingException
  1062  //   The request was denied due to request throttling.
  1063  //
  1064  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatus
  1065  func (c *ComputeOptimizer) GetEnrollmentStatus(input *GetEnrollmentStatusInput) (*GetEnrollmentStatusOutput, error) {
  1066  	req, out := c.GetEnrollmentStatusRequest(input)
  1067  	return out, req.Send()
  1068  }
  1069  
  1070  // GetEnrollmentStatusWithContext is the same as GetEnrollmentStatus with the addition of
  1071  // the ability to pass a context and additional request options.
  1072  //
  1073  // See GetEnrollmentStatus for details on how to use this API operation.
  1074  //
  1075  // The context must be non-nil and will be used for request cancellation. If
  1076  // the context is nil a panic will occur. In the future the SDK may create
  1077  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1078  // for more information on using Contexts.
  1079  func (c *ComputeOptimizer) GetEnrollmentStatusWithContext(ctx aws.Context, input *GetEnrollmentStatusInput, opts ...request.Option) (*GetEnrollmentStatusOutput, error) {
  1080  	req, out := c.GetEnrollmentStatusRequest(input)
  1081  	req.SetContext(ctx)
  1082  	req.ApplyOptions(opts...)
  1083  	return out, req.Send()
  1084  }
  1085  
  1086  const opGetEnrollmentStatusesForOrganization = "GetEnrollmentStatusesForOrganization"
  1087  
  1088  // GetEnrollmentStatusesForOrganizationRequest generates a "aws/request.Request" representing the
  1089  // client's request for the GetEnrollmentStatusesForOrganization operation. The "output" return
  1090  // value will be populated with the request's response once the request completes
  1091  // successfully.
  1092  //
  1093  // Use "Send" method on the returned Request to send the API call to the service.
  1094  // the "output" return value is not valid until after Send returns without error.
  1095  //
  1096  // See GetEnrollmentStatusesForOrganization for more information on using the GetEnrollmentStatusesForOrganization
  1097  // API call, and error handling.
  1098  //
  1099  // This method is useful when you want to inject custom logic or configuration
  1100  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1101  //
  1102  //
  1103  //    // Example sending a request using the GetEnrollmentStatusesForOrganizationRequest method.
  1104  //    req, resp := client.GetEnrollmentStatusesForOrganizationRequest(params)
  1105  //
  1106  //    err := req.Send()
  1107  //    if err == nil { // resp is now filled
  1108  //        fmt.Println(resp)
  1109  //    }
  1110  //
  1111  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatusesForOrganization
  1112  func (c *ComputeOptimizer) GetEnrollmentStatusesForOrganizationRequest(input *GetEnrollmentStatusesForOrganizationInput) (req *request.Request, output *GetEnrollmentStatusesForOrganizationOutput) {
  1113  	op := &request.Operation{
  1114  		Name:       opGetEnrollmentStatusesForOrganization,
  1115  		HTTPMethod: "POST",
  1116  		HTTPPath:   "/",
  1117  	}
  1118  
  1119  	if input == nil {
  1120  		input = &GetEnrollmentStatusesForOrganizationInput{}
  1121  	}
  1122  
  1123  	output = &GetEnrollmentStatusesForOrganizationOutput{}
  1124  	req = c.newRequest(op, input, output)
  1125  	return
  1126  }
  1127  
  1128  // GetEnrollmentStatusesForOrganization API operation for AWS Compute Optimizer.
  1129  //
  1130  // Returns the Compute Optimizer enrollment (opt-in) status of organization
  1131  // member accounts, if your account is an organization management account.
  1132  //
  1133  // To get the enrollment status of standalone accounts, use the GetEnrollmentStatus
  1134  // action.
  1135  //
  1136  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1137  // with awserr.Error's Code and Message methods to get detailed information about
  1138  // the error.
  1139  //
  1140  // See the AWS API reference guide for AWS Compute Optimizer's
  1141  // API operation GetEnrollmentStatusesForOrganization for usage and error information.
  1142  //
  1143  // Returned Error Types:
  1144  //   * InternalServerException
  1145  //   An internal error has occurred. Try your call again.
  1146  //
  1147  //   * ServiceUnavailableException
  1148  //   The request has failed due to a temporary failure of the server.
  1149  //
  1150  //   * AccessDeniedException
  1151  //   You do not have sufficient access to perform this action.
  1152  //
  1153  //   * InvalidParameterValueException
  1154  //   The value supplied for the input parameter is out of range or not valid.
  1155  //
  1156  //   * MissingAuthenticationToken
  1157  //   The request must contain either a valid (registered) Amazon Web Services
  1158  //   access key ID or X.509 certificate.
  1159  //
  1160  //   * ThrottlingException
  1161  //   The request was denied due to request throttling.
  1162  //
  1163  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetEnrollmentStatusesForOrganization
  1164  func (c *ComputeOptimizer) GetEnrollmentStatusesForOrganization(input *GetEnrollmentStatusesForOrganizationInput) (*GetEnrollmentStatusesForOrganizationOutput, error) {
  1165  	req, out := c.GetEnrollmentStatusesForOrganizationRequest(input)
  1166  	return out, req.Send()
  1167  }
  1168  
  1169  // GetEnrollmentStatusesForOrganizationWithContext is the same as GetEnrollmentStatusesForOrganization with the addition of
  1170  // the ability to pass a context and additional request options.
  1171  //
  1172  // See GetEnrollmentStatusesForOrganization for details on how to use this API operation.
  1173  //
  1174  // The context must be non-nil and will be used for request cancellation. If
  1175  // the context is nil a panic will occur. In the future the SDK may create
  1176  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1177  // for more information on using Contexts.
  1178  func (c *ComputeOptimizer) GetEnrollmentStatusesForOrganizationWithContext(ctx aws.Context, input *GetEnrollmentStatusesForOrganizationInput, opts ...request.Option) (*GetEnrollmentStatusesForOrganizationOutput, error) {
  1179  	req, out := c.GetEnrollmentStatusesForOrganizationRequest(input)
  1180  	req.SetContext(ctx)
  1181  	req.ApplyOptions(opts...)
  1182  	return out, req.Send()
  1183  }
  1184  
  1185  const opGetLambdaFunctionRecommendations = "GetLambdaFunctionRecommendations"
  1186  
  1187  // GetLambdaFunctionRecommendationsRequest generates a "aws/request.Request" representing the
  1188  // client's request for the GetLambdaFunctionRecommendations operation. The "output" return
  1189  // value will be populated with the request's response once the request completes
  1190  // successfully.
  1191  //
  1192  // Use "Send" method on the returned Request to send the API call to the service.
  1193  // the "output" return value is not valid until after Send returns without error.
  1194  //
  1195  // See GetLambdaFunctionRecommendations for more information on using the GetLambdaFunctionRecommendations
  1196  // API call, and error handling.
  1197  //
  1198  // This method is useful when you want to inject custom logic or configuration
  1199  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1200  //
  1201  //
  1202  //    // Example sending a request using the GetLambdaFunctionRecommendationsRequest method.
  1203  //    req, resp := client.GetLambdaFunctionRecommendationsRequest(params)
  1204  //
  1205  //    err := req.Send()
  1206  //    if err == nil { // resp is now filled
  1207  //        fmt.Println(resp)
  1208  //    }
  1209  //
  1210  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendations
  1211  func (c *ComputeOptimizer) GetLambdaFunctionRecommendationsRequest(input *GetLambdaFunctionRecommendationsInput) (req *request.Request, output *GetLambdaFunctionRecommendationsOutput) {
  1212  	op := &request.Operation{
  1213  		Name:       opGetLambdaFunctionRecommendations,
  1214  		HTTPMethod: "POST",
  1215  		HTTPPath:   "/",
  1216  	}
  1217  
  1218  	if input == nil {
  1219  		input = &GetLambdaFunctionRecommendationsInput{}
  1220  	}
  1221  
  1222  	output = &GetLambdaFunctionRecommendationsOutput{}
  1223  	req = c.newRequest(op, input, output)
  1224  	return
  1225  }
  1226  
  1227  // GetLambdaFunctionRecommendations API operation for AWS Compute Optimizer.
  1228  //
  1229  // Returns Lambda function recommendations.
  1230  //
  1231  // Compute Optimizer generates recommendations for functions that meet a specific
  1232  // set of requirements. For more information, see the Supported resources and
  1233  // requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
  1234  // in the Compute Optimizer User Guide.
  1235  //
  1236  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1237  // with awserr.Error's Code and Message methods to get detailed information about
  1238  // the error.
  1239  //
  1240  // See the AWS API reference guide for AWS Compute Optimizer's
  1241  // API operation GetLambdaFunctionRecommendations for usage and error information.
  1242  //
  1243  // Returned Error Types:
  1244  //   * OptInRequiredException
  1245  //   The account is not opted in to Compute Optimizer.
  1246  //
  1247  //   * InternalServerException
  1248  //   An internal error has occurred. Try your call again.
  1249  //
  1250  //   * ServiceUnavailableException
  1251  //   The request has failed due to a temporary failure of the server.
  1252  //
  1253  //   * AccessDeniedException
  1254  //   You do not have sufficient access to perform this action.
  1255  //
  1256  //   * InvalidParameterValueException
  1257  //   The value supplied for the input parameter is out of range or not valid.
  1258  //
  1259  //   * MissingAuthenticationToken
  1260  //   The request must contain either a valid (registered) Amazon Web Services
  1261  //   access key ID or X.509 certificate.
  1262  //
  1263  //   * ThrottlingException
  1264  //   The request was denied due to request throttling.
  1265  //
  1266  //   * LimitExceededException
  1267  //   The request exceeds a limit of the service.
  1268  //
  1269  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLambdaFunctionRecommendations
  1270  func (c *ComputeOptimizer) GetLambdaFunctionRecommendations(input *GetLambdaFunctionRecommendationsInput) (*GetLambdaFunctionRecommendationsOutput, error) {
  1271  	req, out := c.GetLambdaFunctionRecommendationsRequest(input)
  1272  	return out, req.Send()
  1273  }
  1274  
  1275  // GetLambdaFunctionRecommendationsWithContext is the same as GetLambdaFunctionRecommendations with the addition of
  1276  // the ability to pass a context and additional request options.
  1277  //
  1278  // See GetLambdaFunctionRecommendations for details on how to use this API operation.
  1279  //
  1280  // The context must be non-nil and will be used for request cancellation. If
  1281  // the context is nil a panic will occur. In the future the SDK may create
  1282  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1283  // for more information on using Contexts.
  1284  func (c *ComputeOptimizer) GetLambdaFunctionRecommendationsWithContext(ctx aws.Context, input *GetLambdaFunctionRecommendationsInput, opts ...request.Option) (*GetLambdaFunctionRecommendationsOutput, error) {
  1285  	req, out := c.GetLambdaFunctionRecommendationsRequest(input)
  1286  	req.SetContext(ctx)
  1287  	req.ApplyOptions(opts...)
  1288  	return out, req.Send()
  1289  }
  1290  
  1291  const opGetRecommendationSummaries = "GetRecommendationSummaries"
  1292  
  1293  // GetRecommendationSummariesRequest generates a "aws/request.Request" representing the
  1294  // client's request for the GetRecommendationSummaries operation. The "output" return
  1295  // value will be populated with the request's response once the request completes
  1296  // successfully.
  1297  //
  1298  // Use "Send" method on the returned Request to send the API call to the service.
  1299  // the "output" return value is not valid until after Send returns without error.
  1300  //
  1301  // See GetRecommendationSummaries for more information on using the GetRecommendationSummaries
  1302  // API call, and error handling.
  1303  //
  1304  // This method is useful when you want to inject custom logic or configuration
  1305  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1306  //
  1307  //
  1308  //    // Example sending a request using the GetRecommendationSummariesRequest method.
  1309  //    req, resp := client.GetRecommendationSummariesRequest(params)
  1310  //
  1311  //    err := req.Send()
  1312  //    if err == nil { // resp is now filled
  1313  //        fmt.Println(resp)
  1314  //    }
  1315  //
  1316  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationSummaries
  1317  func (c *ComputeOptimizer) GetRecommendationSummariesRequest(input *GetRecommendationSummariesInput) (req *request.Request, output *GetRecommendationSummariesOutput) {
  1318  	op := &request.Operation{
  1319  		Name:       opGetRecommendationSummaries,
  1320  		HTTPMethod: "POST",
  1321  		HTTPPath:   "/",
  1322  	}
  1323  
  1324  	if input == nil {
  1325  		input = &GetRecommendationSummariesInput{}
  1326  	}
  1327  
  1328  	output = &GetRecommendationSummariesOutput{}
  1329  	req = c.newRequest(op, input, output)
  1330  	return
  1331  }
  1332  
  1333  // GetRecommendationSummaries API operation for AWS Compute Optimizer.
  1334  //
  1335  // Returns the optimization findings for an account.
  1336  //
  1337  // It returns the number of:
  1338  //
  1339  //    * Amazon EC2 instances in an account that are Underprovisioned, Overprovisioned,
  1340  //    or Optimized.
  1341  //
  1342  //    * Auto Scaling groups in an account that are NotOptimized, or Optimized.
  1343  //
  1344  //    * Amazon EBS volumes in an account that are NotOptimized, or Optimized.
  1345  //
  1346  //    * Lambda functions in an account that are NotOptimized, or Optimized.
  1347  //
  1348  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1349  // with awserr.Error's Code and Message methods to get detailed information about
  1350  // the error.
  1351  //
  1352  // See the AWS API reference guide for AWS Compute Optimizer's
  1353  // API operation GetRecommendationSummaries for usage and error information.
  1354  //
  1355  // Returned Error Types:
  1356  //   * OptInRequiredException
  1357  //   The account is not opted in to Compute Optimizer.
  1358  //
  1359  //   * InternalServerException
  1360  //   An internal error has occurred. Try your call again.
  1361  //
  1362  //   * ServiceUnavailableException
  1363  //   The request has failed due to a temporary failure of the server.
  1364  //
  1365  //   * AccessDeniedException
  1366  //   You do not have sufficient access to perform this action.
  1367  //
  1368  //   * InvalidParameterValueException
  1369  //   The value supplied for the input parameter is out of range or not valid.
  1370  //
  1371  //   * MissingAuthenticationToken
  1372  //   The request must contain either a valid (registered) Amazon Web Services
  1373  //   access key ID or X.509 certificate.
  1374  //
  1375  //   * ThrottlingException
  1376  //   The request was denied due to request throttling.
  1377  //
  1378  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetRecommendationSummaries
  1379  func (c *ComputeOptimizer) GetRecommendationSummaries(input *GetRecommendationSummariesInput) (*GetRecommendationSummariesOutput, error) {
  1380  	req, out := c.GetRecommendationSummariesRequest(input)
  1381  	return out, req.Send()
  1382  }
  1383  
  1384  // GetRecommendationSummariesWithContext is the same as GetRecommendationSummaries with the addition of
  1385  // the ability to pass a context and additional request options.
  1386  //
  1387  // See GetRecommendationSummaries for details on how to use this API operation.
  1388  //
  1389  // The context must be non-nil and will be used for request cancellation. If
  1390  // the context is nil a panic will occur. In the future the SDK may create
  1391  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1392  // for more information on using Contexts.
  1393  func (c *ComputeOptimizer) GetRecommendationSummariesWithContext(ctx aws.Context, input *GetRecommendationSummariesInput, opts ...request.Option) (*GetRecommendationSummariesOutput, error) {
  1394  	req, out := c.GetRecommendationSummariesRequest(input)
  1395  	req.SetContext(ctx)
  1396  	req.ApplyOptions(opts...)
  1397  	return out, req.Send()
  1398  }
  1399  
  1400  const opUpdateEnrollmentStatus = "UpdateEnrollmentStatus"
  1401  
  1402  // UpdateEnrollmentStatusRequest generates a "aws/request.Request" representing the
  1403  // client's request for the UpdateEnrollmentStatus operation. The "output" return
  1404  // value will be populated with the request's response once the request completes
  1405  // successfully.
  1406  //
  1407  // Use "Send" method on the returned Request to send the API call to the service.
  1408  // the "output" return value is not valid until after Send returns without error.
  1409  //
  1410  // See UpdateEnrollmentStatus for more information on using the UpdateEnrollmentStatus
  1411  // API call, and error handling.
  1412  //
  1413  // This method is useful when you want to inject custom logic or configuration
  1414  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1415  //
  1416  //
  1417  //    // Example sending a request using the UpdateEnrollmentStatusRequest method.
  1418  //    req, resp := client.UpdateEnrollmentStatusRequest(params)
  1419  //
  1420  //    err := req.Send()
  1421  //    if err == nil { // resp is now filled
  1422  //        fmt.Println(resp)
  1423  //    }
  1424  //
  1425  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatus
  1426  func (c *ComputeOptimizer) UpdateEnrollmentStatusRequest(input *UpdateEnrollmentStatusInput) (req *request.Request, output *UpdateEnrollmentStatusOutput) {
  1427  	op := &request.Operation{
  1428  		Name:       opUpdateEnrollmentStatus,
  1429  		HTTPMethod: "POST",
  1430  		HTTPPath:   "/",
  1431  	}
  1432  
  1433  	if input == nil {
  1434  		input = &UpdateEnrollmentStatusInput{}
  1435  	}
  1436  
  1437  	output = &UpdateEnrollmentStatusOutput{}
  1438  	req = c.newRequest(op, input, output)
  1439  	return
  1440  }
  1441  
  1442  // UpdateEnrollmentStatus API operation for AWS Compute Optimizer.
  1443  //
  1444  // Updates the enrollment (opt in and opt out) status of an account to the Compute
  1445  // Optimizer service.
  1446  //
  1447  // If the account is a management account of an organization, this action can
  1448  // also be used to enroll member accounts of the organization.
  1449  //
  1450  // You must have the appropriate permissions to opt in to Compute Optimizer,
  1451  // to view its recommendations, and to opt out. For more information, see Controlling
  1452  // access with Amazon Web Services Identity and Access Management (https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html)
  1453  // in the Compute Optimizer User Guide.
  1454  //
  1455  // When you opt in, Compute Optimizer automatically creates a service-linked
  1456  // role in your account to access its data. For more information, see Using
  1457  // Service-Linked Roles for Compute Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/using-service-linked-roles.html)
  1458  // in the Compute Optimizer User Guide.
  1459  //
  1460  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1461  // with awserr.Error's Code and Message methods to get detailed information about
  1462  // the error.
  1463  //
  1464  // See the AWS API reference guide for AWS Compute Optimizer's
  1465  // API operation UpdateEnrollmentStatus for usage and error information.
  1466  //
  1467  // Returned Error Types:
  1468  //   * InternalServerException
  1469  //   An internal error has occurred. Try your call again.
  1470  //
  1471  //   * ServiceUnavailableException
  1472  //   The request has failed due to a temporary failure of the server.
  1473  //
  1474  //   * AccessDeniedException
  1475  //   You do not have sufficient access to perform this action.
  1476  //
  1477  //   * InvalidParameterValueException
  1478  //   The value supplied for the input parameter is out of range or not valid.
  1479  //
  1480  //   * MissingAuthenticationToken
  1481  //   The request must contain either a valid (registered) Amazon Web Services
  1482  //   access key ID or X.509 certificate.
  1483  //
  1484  //   * ThrottlingException
  1485  //   The request was denied due to request throttling.
  1486  //
  1487  // See also, https://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/UpdateEnrollmentStatus
  1488  func (c *ComputeOptimizer) UpdateEnrollmentStatus(input *UpdateEnrollmentStatusInput) (*UpdateEnrollmentStatusOutput, error) {
  1489  	req, out := c.UpdateEnrollmentStatusRequest(input)
  1490  	return out, req.Send()
  1491  }
  1492  
  1493  // UpdateEnrollmentStatusWithContext is the same as UpdateEnrollmentStatus with the addition of
  1494  // the ability to pass a context and additional request options.
  1495  //
  1496  // See UpdateEnrollmentStatus for details on how to use this API operation.
  1497  //
  1498  // The context must be non-nil and will be used for request cancellation. If
  1499  // the context is nil a panic will occur. In the future the SDK may create
  1500  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1501  // for more information on using Contexts.
  1502  func (c *ComputeOptimizer) UpdateEnrollmentStatusWithContext(ctx aws.Context, input *UpdateEnrollmentStatusInput, opts ...request.Option) (*UpdateEnrollmentStatusOutput, error) {
  1503  	req, out := c.UpdateEnrollmentStatusRequest(input)
  1504  	req.SetContext(ctx)
  1505  	req.ApplyOptions(opts...)
  1506  	return out, req.Send()
  1507  }
  1508  
  1509  // You do not have sufficient access to perform this action.
  1510  type AccessDeniedException struct {
  1511  	_            struct{}                  `type:"structure"`
  1512  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1513  
  1514  	Message_ *string `locationName:"message" type:"string"`
  1515  }
  1516  
  1517  // String returns the string representation.
  1518  //
  1519  // API parameter values that are decorated as "sensitive" in the API will not
  1520  // be included in the string output. The member name will be present, but the
  1521  // value will be replaced with "sensitive".
  1522  func (s AccessDeniedException) String() string {
  1523  	return awsutil.Prettify(s)
  1524  }
  1525  
  1526  // GoString returns the string representation.
  1527  //
  1528  // API parameter values that are decorated as "sensitive" in the API will not
  1529  // be included in the string output. The member name will be present, but the
  1530  // value will be replaced with "sensitive".
  1531  func (s AccessDeniedException) GoString() string {
  1532  	return s.String()
  1533  }
  1534  
  1535  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  1536  	return &AccessDeniedException{
  1537  		RespMetadata: v,
  1538  	}
  1539  }
  1540  
  1541  // Code returns the exception type name.
  1542  func (s *AccessDeniedException) Code() string {
  1543  	return "AccessDeniedException"
  1544  }
  1545  
  1546  // Message returns the exception's message.
  1547  func (s *AccessDeniedException) Message() string {
  1548  	if s.Message_ != nil {
  1549  		return *s.Message_
  1550  	}
  1551  	return ""
  1552  }
  1553  
  1554  // OrigErr always returns nil, satisfies awserr.Error interface.
  1555  func (s *AccessDeniedException) OrigErr() error {
  1556  	return nil
  1557  }
  1558  
  1559  func (s *AccessDeniedException) Error() string {
  1560  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  1561  }
  1562  
  1563  // Status code returns the HTTP status code for the request's response error.
  1564  func (s *AccessDeniedException) StatusCode() int {
  1565  	return s.RespMetadata.StatusCode
  1566  }
  1567  
  1568  // RequestID returns the service's response RequestID for request.
  1569  func (s *AccessDeniedException) RequestID() string {
  1570  	return s.RespMetadata.RequestID
  1571  }
  1572  
  1573  // Describes the enrollment status of an organization's member accounts in Compute
  1574  // Optimizer.
  1575  type AccountEnrollmentStatus struct {
  1576  	_ struct{} `type:"structure"`
  1577  
  1578  	// The Amazon Web Services account ID.
  1579  	AccountId *string `locationName:"accountId" type:"string"`
  1580  
  1581  	// The Unix epoch timestamp, in seconds, of when the account enrollment status
  1582  	// was last updated.
  1583  	LastUpdatedTimestamp *time.Time `locationName:"lastUpdatedTimestamp" type:"timestamp"`
  1584  
  1585  	// The account enrollment status.
  1586  	Status *string `locationName:"status" type:"string" enum:"Status"`
  1587  
  1588  	// The reason for the account enrollment status.
  1589  	//
  1590  	// For example, an account might show a status of Pending because member accounts
  1591  	// of an organization require more time to be enrolled in the service.
  1592  	StatusReason *string `locationName:"statusReason" type:"string"`
  1593  }
  1594  
  1595  // String returns the string representation.
  1596  //
  1597  // API parameter values that are decorated as "sensitive" in the API will not
  1598  // be included in the string output. The member name will be present, but the
  1599  // value will be replaced with "sensitive".
  1600  func (s AccountEnrollmentStatus) String() string {
  1601  	return awsutil.Prettify(s)
  1602  }
  1603  
  1604  // GoString returns the string representation.
  1605  //
  1606  // API parameter values that are decorated as "sensitive" in the API will not
  1607  // be included in the string output. The member name will be present, but the
  1608  // value will be replaced with "sensitive".
  1609  func (s AccountEnrollmentStatus) GoString() string {
  1610  	return s.String()
  1611  }
  1612  
  1613  // SetAccountId sets the AccountId field's value.
  1614  func (s *AccountEnrollmentStatus) SetAccountId(v string) *AccountEnrollmentStatus {
  1615  	s.AccountId = &v
  1616  	return s
  1617  }
  1618  
  1619  // SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
  1620  func (s *AccountEnrollmentStatus) SetLastUpdatedTimestamp(v time.Time) *AccountEnrollmentStatus {
  1621  	s.LastUpdatedTimestamp = &v
  1622  	return s
  1623  }
  1624  
  1625  // SetStatus sets the Status field's value.
  1626  func (s *AccountEnrollmentStatus) SetStatus(v string) *AccountEnrollmentStatus {
  1627  	s.Status = &v
  1628  	return s
  1629  }
  1630  
  1631  // SetStatusReason sets the StatusReason field's value.
  1632  func (s *AccountEnrollmentStatus) SetStatusReason(v string) *AccountEnrollmentStatus {
  1633  	s.StatusReason = &v
  1634  	return s
  1635  }
  1636  
  1637  // Describes the configuration of an Auto Scaling group.
  1638  type AutoScalingGroupConfiguration struct {
  1639  	_ struct{} `type:"structure"`
  1640  
  1641  	// The desired capacity, or number of instances, for the Auto Scaling group.
  1642  	DesiredCapacity *int64 `locationName:"desiredCapacity" type:"integer"`
  1643  
  1644  	// The instance type for the Auto Scaling group.
  1645  	InstanceType *string `locationName:"instanceType" type:"string"`
  1646  
  1647  	// The maximum size, or maximum number of instances, for the Auto Scaling group.
  1648  	MaxSize *int64 `locationName:"maxSize" type:"integer"`
  1649  
  1650  	// The minimum size, or minimum number of instances, for the Auto Scaling group.
  1651  	MinSize *int64 `locationName:"minSize" type:"integer"`
  1652  }
  1653  
  1654  // String returns the string representation.
  1655  //
  1656  // API parameter values that are decorated as "sensitive" in the API will not
  1657  // be included in the string output. The member name will be present, but the
  1658  // value will be replaced with "sensitive".
  1659  func (s AutoScalingGroupConfiguration) String() string {
  1660  	return awsutil.Prettify(s)
  1661  }
  1662  
  1663  // GoString returns the string representation.
  1664  //
  1665  // API parameter values that are decorated as "sensitive" in the API will not
  1666  // be included in the string output. The member name will be present, but the
  1667  // value will be replaced with "sensitive".
  1668  func (s AutoScalingGroupConfiguration) GoString() string {
  1669  	return s.String()
  1670  }
  1671  
  1672  // SetDesiredCapacity sets the DesiredCapacity field's value.
  1673  func (s *AutoScalingGroupConfiguration) SetDesiredCapacity(v int64) *AutoScalingGroupConfiguration {
  1674  	s.DesiredCapacity = &v
  1675  	return s
  1676  }
  1677  
  1678  // SetInstanceType sets the InstanceType field's value.
  1679  func (s *AutoScalingGroupConfiguration) SetInstanceType(v string) *AutoScalingGroupConfiguration {
  1680  	s.InstanceType = &v
  1681  	return s
  1682  }
  1683  
  1684  // SetMaxSize sets the MaxSize field's value.
  1685  func (s *AutoScalingGroupConfiguration) SetMaxSize(v int64) *AutoScalingGroupConfiguration {
  1686  	s.MaxSize = &v
  1687  	return s
  1688  }
  1689  
  1690  // SetMinSize sets the MinSize field's value.
  1691  func (s *AutoScalingGroupConfiguration) SetMinSize(v int64) *AutoScalingGroupConfiguration {
  1692  	s.MinSize = &v
  1693  	return s
  1694  }
  1695  
  1696  // Describes an Auto Scaling group recommendation.
  1697  type AutoScalingGroupRecommendation struct {
  1698  	_ struct{} `type:"structure"`
  1699  
  1700  	// The Amazon Web Services account ID of the Auto Scaling group.
  1701  	AccountId *string `locationName:"accountId" type:"string"`
  1702  
  1703  	// The Amazon Resource Name (ARN) of the Auto Scaling group.
  1704  	AutoScalingGroupArn *string `locationName:"autoScalingGroupArn" type:"string"`
  1705  
  1706  	// The name of the Auto Scaling group.
  1707  	AutoScalingGroupName *string `locationName:"autoScalingGroupName" type:"string"`
  1708  
  1709  	// An array of objects that describe the current configuration of the Auto Scaling
  1710  	// group.
  1711  	CurrentConfiguration *AutoScalingGroupConfiguration `locationName:"currentConfiguration" type:"structure"`
  1712  
  1713  	// The finding classification of the Auto Scaling group.
  1714  	//
  1715  	// Findings for Auto Scaling groups include:
  1716  	//
  1717  	//    * NotOptimized —An Auto Scaling group is considered not optimized when
  1718  	//    Compute Optimizer identifies a recommendation that can provide better
  1719  	//    performance for your workload.
  1720  	//
  1721  	//    * Optimized —An Auto Scaling group is considered optimized when Compute
  1722  	//    Optimizer determines that the group is correctly provisioned to run your
  1723  	//    workload based on the chosen instance type. For optimized resources, Compute
  1724  	//    Optimizer might recommend a new generation instance type.
  1725  	Finding *string `locationName:"finding" type:"string" enum:"Finding"`
  1726  
  1727  	// The timestamp of when the Auto Scaling group recommendation was last refreshed.
  1728  	LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"`
  1729  
  1730  	// The number of days for which utilization metrics were analyzed for the Auto
  1731  	// Scaling group.
  1732  	LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"`
  1733  
  1734  	// An array of objects that describe the recommendation options for the Auto
  1735  	// Scaling group.
  1736  	RecommendationOptions []*AutoScalingGroupRecommendationOption `locationName:"recommendationOptions" type:"list"`
  1737  
  1738  	// An array of objects that describe the utilization metrics of the Auto Scaling
  1739  	// group.
  1740  	UtilizationMetrics []*UtilizationMetric `locationName:"utilizationMetrics" type:"list"`
  1741  }
  1742  
  1743  // String returns the string representation.
  1744  //
  1745  // API parameter values that are decorated as "sensitive" in the API will not
  1746  // be included in the string output. The member name will be present, but the
  1747  // value will be replaced with "sensitive".
  1748  func (s AutoScalingGroupRecommendation) String() string {
  1749  	return awsutil.Prettify(s)
  1750  }
  1751  
  1752  // GoString returns the string representation.
  1753  //
  1754  // API parameter values that are decorated as "sensitive" in the API will not
  1755  // be included in the string output. The member name will be present, but the
  1756  // value will be replaced with "sensitive".
  1757  func (s AutoScalingGroupRecommendation) GoString() string {
  1758  	return s.String()
  1759  }
  1760  
  1761  // SetAccountId sets the AccountId field's value.
  1762  func (s *AutoScalingGroupRecommendation) SetAccountId(v string) *AutoScalingGroupRecommendation {
  1763  	s.AccountId = &v
  1764  	return s
  1765  }
  1766  
  1767  // SetAutoScalingGroupArn sets the AutoScalingGroupArn field's value.
  1768  func (s *AutoScalingGroupRecommendation) SetAutoScalingGroupArn(v string) *AutoScalingGroupRecommendation {
  1769  	s.AutoScalingGroupArn = &v
  1770  	return s
  1771  }
  1772  
  1773  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  1774  func (s *AutoScalingGroupRecommendation) SetAutoScalingGroupName(v string) *AutoScalingGroupRecommendation {
  1775  	s.AutoScalingGroupName = &v
  1776  	return s
  1777  }
  1778  
  1779  // SetCurrentConfiguration sets the CurrentConfiguration field's value.
  1780  func (s *AutoScalingGroupRecommendation) SetCurrentConfiguration(v *AutoScalingGroupConfiguration) *AutoScalingGroupRecommendation {
  1781  	s.CurrentConfiguration = v
  1782  	return s
  1783  }
  1784  
  1785  // SetFinding sets the Finding field's value.
  1786  func (s *AutoScalingGroupRecommendation) SetFinding(v string) *AutoScalingGroupRecommendation {
  1787  	s.Finding = &v
  1788  	return s
  1789  }
  1790  
  1791  // SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value.
  1792  func (s *AutoScalingGroupRecommendation) SetLastRefreshTimestamp(v time.Time) *AutoScalingGroupRecommendation {
  1793  	s.LastRefreshTimestamp = &v
  1794  	return s
  1795  }
  1796  
  1797  // SetLookBackPeriodInDays sets the LookBackPeriodInDays field's value.
  1798  func (s *AutoScalingGroupRecommendation) SetLookBackPeriodInDays(v float64) *AutoScalingGroupRecommendation {
  1799  	s.LookBackPeriodInDays = &v
  1800  	return s
  1801  }
  1802  
  1803  // SetRecommendationOptions sets the RecommendationOptions field's value.
  1804  func (s *AutoScalingGroupRecommendation) SetRecommendationOptions(v []*AutoScalingGroupRecommendationOption) *AutoScalingGroupRecommendation {
  1805  	s.RecommendationOptions = v
  1806  	return s
  1807  }
  1808  
  1809  // SetUtilizationMetrics sets the UtilizationMetrics field's value.
  1810  func (s *AutoScalingGroupRecommendation) SetUtilizationMetrics(v []*UtilizationMetric) *AutoScalingGroupRecommendation {
  1811  	s.UtilizationMetrics = v
  1812  	return s
  1813  }
  1814  
  1815  // Describes a recommendation option for an Auto Scaling group.
  1816  type AutoScalingGroupRecommendationOption struct {
  1817  	_ struct{} `type:"structure"`
  1818  
  1819  	// An array of objects that describe an Auto Scaling group configuration.
  1820  	Configuration *AutoScalingGroupConfiguration `locationName:"configuration" type:"structure"`
  1821  
  1822  	// The performance risk of the Auto Scaling group configuration recommendation.
  1823  	//
  1824  	// Performance risk indicates the likelihood of the recommended instance type
  1825  	// not meeting the resource needs of your workload. Compute Optimizer calculates
  1826  	// an individual performance risk score for each specification of the recommended
  1827  	// instance, including CPU, memory, EBS throughput, EBS IOPS, disk throughput,
  1828  	// disk IOPS, network throughput, and network PPS. The performance risk of the
  1829  	// recommended instance is calculated as the maximum performance risk score
  1830  	// across the analyzed resource specifications.
  1831  	//
  1832  	// The value ranges from 0 - 4, with 0 meaning that the recommended resource
  1833  	// is predicted to always provide enough hardware capability. The higher the
  1834  	// performance risk is, the more likely you should validate whether the recommendation
  1835  	// will meet the performance requirements of your workload before migrating
  1836  	// your resource.
  1837  	PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"`
  1838  
  1839  	// An array of objects that describe the projected utilization metrics of the
  1840  	// Auto Scaling group recommendation option.
  1841  	//
  1842  	// The Cpu and Memory metrics are the only projected utilization metrics returned.
  1843  	// Additionally, the Memory metric is returned only for resources that have
  1844  	// the unified CloudWatch agent installed on them. For more information, see
  1845  	// Enabling Memory Utilization with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
  1846  	ProjectedUtilizationMetrics []*UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"`
  1847  
  1848  	// The rank of the Auto Scaling group recommendation option.
  1849  	//
  1850  	// The top recommendation option is ranked as 1.
  1851  	Rank *int64 `locationName:"rank" type:"integer"`
  1852  }
  1853  
  1854  // String returns the string representation.
  1855  //
  1856  // API parameter values that are decorated as "sensitive" in the API will not
  1857  // be included in the string output. The member name will be present, but the
  1858  // value will be replaced with "sensitive".
  1859  func (s AutoScalingGroupRecommendationOption) String() string {
  1860  	return awsutil.Prettify(s)
  1861  }
  1862  
  1863  // GoString returns the string representation.
  1864  //
  1865  // API parameter values that are decorated as "sensitive" in the API will not
  1866  // be included in the string output. The member name will be present, but the
  1867  // value will be replaced with "sensitive".
  1868  func (s AutoScalingGroupRecommendationOption) GoString() string {
  1869  	return s.String()
  1870  }
  1871  
  1872  // SetConfiguration sets the Configuration field's value.
  1873  func (s *AutoScalingGroupRecommendationOption) SetConfiguration(v *AutoScalingGroupConfiguration) *AutoScalingGroupRecommendationOption {
  1874  	s.Configuration = v
  1875  	return s
  1876  }
  1877  
  1878  // SetPerformanceRisk sets the PerformanceRisk field's value.
  1879  func (s *AutoScalingGroupRecommendationOption) SetPerformanceRisk(v float64) *AutoScalingGroupRecommendationOption {
  1880  	s.PerformanceRisk = &v
  1881  	return s
  1882  }
  1883  
  1884  // SetProjectedUtilizationMetrics sets the ProjectedUtilizationMetrics field's value.
  1885  func (s *AutoScalingGroupRecommendationOption) SetProjectedUtilizationMetrics(v []*UtilizationMetric) *AutoScalingGroupRecommendationOption {
  1886  	s.ProjectedUtilizationMetrics = v
  1887  	return s
  1888  }
  1889  
  1890  // SetRank sets the Rank field's value.
  1891  func (s *AutoScalingGroupRecommendationOption) SetRank(v int64) *AutoScalingGroupRecommendationOption {
  1892  	s.Rank = &v
  1893  	return s
  1894  }
  1895  
  1896  type DescribeRecommendationExportJobsInput struct {
  1897  	_ struct{} `type:"structure"`
  1898  
  1899  	// An array of objects to specify a filter that returns a more specific list
  1900  	// of export jobs.
  1901  	Filters []*JobFilter `locationName:"filters" type:"list"`
  1902  
  1903  	// The identification numbers of the export jobs to return.
  1904  	//
  1905  	// An export job ID is returned when you create an export using the ExportAutoScalingGroupRecommendations
  1906  	// or ExportEC2InstanceRecommendations actions.
  1907  	//
  1908  	// All export jobs created in the last seven days are returned if this parameter
  1909  	// is omitted.
  1910  	JobIds []*string `locationName:"jobIds" type:"list"`
  1911  
  1912  	// The maximum number of export jobs to return with a single request.
  1913  	//
  1914  	// To retrieve the remaining results, make another request with the returned
  1915  	// nextToken value.
  1916  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  1917  
  1918  	// The token to advance to the next page of export jobs.
  1919  	NextToken *string `locationName:"nextToken" type:"string"`
  1920  }
  1921  
  1922  // String returns the string representation.
  1923  //
  1924  // API parameter values that are decorated as "sensitive" in the API will not
  1925  // be included in the string output. The member name will be present, but the
  1926  // value will be replaced with "sensitive".
  1927  func (s DescribeRecommendationExportJobsInput) String() string {
  1928  	return awsutil.Prettify(s)
  1929  }
  1930  
  1931  // GoString returns the string representation.
  1932  //
  1933  // API parameter values that are decorated as "sensitive" in the API will not
  1934  // be included in the string output. The member name will be present, but the
  1935  // value will be replaced with "sensitive".
  1936  func (s DescribeRecommendationExportJobsInput) GoString() string {
  1937  	return s.String()
  1938  }
  1939  
  1940  // SetFilters sets the Filters field's value.
  1941  func (s *DescribeRecommendationExportJobsInput) SetFilters(v []*JobFilter) *DescribeRecommendationExportJobsInput {
  1942  	s.Filters = v
  1943  	return s
  1944  }
  1945  
  1946  // SetJobIds sets the JobIds field's value.
  1947  func (s *DescribeRecommendationExportJobsInput) SetJobIds(v []*string) *DescribeRecommendationExportJobsInput {
  1948  	s.JobIds = v
  1949  	return s
  1950  }
  1951  
  1952  // SetMaxResults sets the MaxResults field's value.
  1953  func (s *DescribeRecommendationExportJobsInput) SetMaxResults(v int64) *DescribeRecommendationExportJobsInput {
  1954  	s.MaxResults = &v
  1955  	return s
  1956  }
  1957  
  1958  // SetNextToken sets the NextToken field's value.
  1959  func (s *DescribeRecommendationExportJobsInput) SetNextToken(v string) *DescribeRecommendationExportJobsInput {
  1960  	s.NextToken = &v
  1961  	return s
  1962  }
  1963  
  1964  type DescribeRecommendationExportJobsOutput struct {
  1965  	_ struct{} `type:"structure"`
  1966  
  1967  	// The token to use to advance to the next page of export jobs.
  1968  	//
  1969  	// This value is null when there are no more pages of export jobs to return.
  1970  	NextToken *string `locationName:"nextToken" type:"string"`
  1971  
  1972  	// An array of objects that describe recommendation export jobs.
  1973  	RecommendationExportJobs []*RecommendationExportJob `locationName:"recommendationExportJobs" type:"list"`
  1974  }
  1975  
  1976  // String returns the string representation.
  1977  //
  1978  // API parameter values that are decorated as "sensitive" in the API will not
  1979  // be included in the string output. The member name will be present, but the
  1980  // value will be replaced with "sensitive".
  1981  func (s DescribeRecommendationExportJobsOutput) String() string {
  1982  	return awsutil.Prettify(s)
  1983  }
  1984  
  1985  // GoString returns the string representation.
  1986  //
  1987  // API parameter values that are decorated as "sensitive" in the API will not
  1988  // be included in the string output. The member name will be present, but the
  1989  // value will be replaced with "sensitive".
  1990  func (s DescribeRecommendationExportJobsOutput) GoString() string {
  1991  	return s.String()
  1992  }
  1993  
  1994  // SetNextToken sets the NextToken field's value.
  1995  func (s *DescribeRecommendationExportJobsOutput) SetNextToken(v string) *DescribeRecommendationExportJobsOutput {
  1996  	s.NextToken = &v
  1997  	return s
  1998  }
  1999  
  2000  // SetRecommendationExportJobs sets the RecommendationExportJobs field's value.
  2001  func (s *DescribeRecommendationExportJobsOutput) SetRecommendationExportJobs(v []*RecommendationExportJob) *DescribeRecommendationExportJobsOutput {
  2002  	s.RecommendationExportJobs = v
  2003  	return s
  2004  }
  2005  
  2006  // Describes a filter that returns a more specific list of Amazon Elastic Block
  2007  // Store (Amazon EBS) volume recommendations. Use this filter with the GetEBSVolumeRecommendations
  2008  // action.
  2009  //
  2010  // You can use LambdaFunctionRecommendationFilter with the GetLambdaFunctionRecommendations
  2011  // action, JobFilter with the DescribeRecommendationExportJobs action, and Filter
  2012  // with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations
  2013  // actions.
  2014  type EBSFilter struct {
  2015  	_ struct{} `type:"structure"`
  2016  
  2017  	// The name of the filter.
  2018  	//
  2019  	// Specify Finding to return recommendations with a specific finding classification
  2020  	// (for example, NotOptimized).
  2021  	Name *string `locationName:"name" type:"string" enum:"EBSFilterName"`
  2022  
  2023  	// The value of the filter.
  2024  	//
  2025  	// The valid values are Optimized, or NotOptimized.
  2026  	Values []*string `locationName:"values" type:"list"`
  2027  }
  2028  
  2029  // String returns the string representation.
  2030  //
  2031  // API parameter values that are decorated as "sensitive" in the API will not
  2032  // be included in the string output. The member name will be present, but the
  2033  // value will be replaced with "sensitive".
  2034  func (s EBSFilter) String() string {
  2035  	return awsutil.Prettify(s)
  2036  }
  2037  
  2038  // GoString returns the string representation.
  2039  //
  2040  // API parameter values that are decorated as "sensitive" in the API will not
  2041  // be included in the string output. The member name will be present, but the
  2042  // value will be replaced with "sensitive".
  2043  func (s EBSFilter) GoString() string {
  2044  	return s.String()
  2045  }
  2046  
  2047  // SetName sets the Name field's value.
  2048  func (s *EBSFilter) SetName(v string) *EBSFilter {
  2049  	s.Name = &v
  2050  	return s
  2051  }
  2052  
  2053  // SetValues sets the Values field's value.
  2054  func (s *EBSFilter) SetValues(v []*string) *EBSFilter {
  2055  	s.Values = v
  2056  	return s
  2057  }
  2058  
  2059  // Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS)
  2060  // volume.
  2061  //
  2062  // Compare the utilization metric data of your resource against its projected
  2063  // utilization metric data to determine the performance difference between your
  2064  // current resource and the recommended option.
  2065  type EBSUtilizationMetric struct {
  2066  	_ struct{} `type:"structure"`
  2067  
  2068  	// The name of the utilization metric.
  2069  	//
  2070  	// The following utilization metrics are available:
  2071  	//
  2072  	//    * VolumeReadOpsPerSecond - The completed read operations per second from
  2073  	//    the volume in a specified period of time. Unit: Count
  2074  	//
  2075  	//    * VolumeWriteOpsPerSecond - The completed write operations per second
  2076  	//    to the volume in a specified period of time. Unit: Count
  2077  	//
  2078  	//    * VolumeReadBytesPerSecond - The bytes read per second from the volume
  2079  	//    in a specified period of time. Unit: Bytes
  2080  	//
  2081  	//    * VolumeWriteBytesPerSecond - The bytes written to the volume in a specified
  2082  	//    period of time. Unit: Bytes
  2083  	Name *string `locationName:"name" type:"string" enum:"EBSMetricName"`
  2084  
  2085  	// The statistic of the utilization metric.
  2086  	//
  2087  	// The Compute Optimizer API, Command Line Interface (CLI), and SDKs return
  2088  	// utilization metrics using only the Maximum statistic, which is the highest
  2089  	// value observed during the specified period.
  2090  	//
  2091  	// The Compute Optimizer console displays graphs for some utilization metrics
  2092  	// using the Average statistic, which is the value of Sum / SampleCount during
  2093  	// the specified period. For more information, see Viewing resource recommendations
  2094  	// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html)
  2095  	// in the Compute Optimizer User Guide. You can also get averaged utilization
  2096  	// metric data for your resources using Amazon CloudWatch. For more information,
  2097  	// see the Amazon CloudWatch User Guide (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html).
  2098  	Statistic *string `locationName:"statistic" type:"string" enum:"MetricStatistic"`
  2099  
  2100  	// The value of the utilization metric.
  2101  	Value *float64 `locationName:"value" type:"double"`
  2102  }
  2103  
  2104  // String returns the string representation.
  2105  //
  2106  // API parameter values that are decorated as "sensitive" in the API will not
  2107  // be included in the string output. The member name will be present, but the
  2108  // value will be replaced with "sensitive".
  2109  func (s EBSUtilizationMetric) String() string {
  2110  	return awsutil.Prettify(s)
  2111  }
  2112  
  2113  // GoString returns the string representation.
  2114  //
  2115  // API parameter values that are decorated as "sensitive" in the API will not
  2116  // be included in the string output. The member name will be present, but the
  2117  // value will be replaced with "sensitive".
  2118  func (s EBSUtilizationMetric) GoString() string {
  2119  	return s.String()
  2120  }
  2121  
  2122  // SetName sets the Name field's value.
  2123  func (s *EBSUtilizationMetric) SetName(v string) *EBSUtilizationMetric {
  2124  	s.Name = &v
  2125  	return s
  2126  }
  2127  
  2128  // SetStatistic sets the Statistic field's value.
  2129  func (s *EBSUtilizationMetric) SetStatistic(v string) *EBSUtilizationMetric {
  2130  	s.Statistic = &v
  2131  	return s
  2132  }
  2133  
  2134  // SetValue sets the Value field's value.
  2135  func (s *EBSUtilizationMetric) SetValue(v float64) *EBSUtilizationMetric {
  2136  	s.Value = &v
  2137  	return s
  2138  }
  2139  
  2140  // Describes a filter that returns a more specific list of account enrollment
  2141  // statuses. Use this filter with the GetEnrollmentStatusesForOrganization action.
  2142  type EnrollmentFilter struct {
  2143  	_ struct{} `type:"structure"`
  2144  
  2145  	// The name of the filter.
  2146  	//
  2147  	// Specify Status to return accounts with a specific enrollment status (for
  2148  	// example, Active).
  2149  	Name *string `locationName:"name" type:"string" enum:"EnrollmentFilterName"`
  2150  
  2151  	// The value of the filter.
  2152  	//
  2153  	// The valid values are Active, Inactive, Pending, and Failed.
  2154  	Values []*string `locationName:"values" type:"list"`
  2155  }
  2156  
  2157  // String returns the string representation.
  2158  //
  2159  // API parameter values that are decorated as "sensitive" in the API will not
  2160  // be included in the string output. The member name will be present, but the
  2161  // value will be replaced with "sensitive".
  2162  func (s EnrollmentFilter) String() string {
  2163  	return awsutil.Prettify(s)
  2164  }
  2165  
  2166  // GoString returns the string representation.
  2167  //
  2168  // API parameter values that are decorated as "sensitive" in the API will not
  2169  // be included in the string output. The member name will be present, but the
  2170  // value will be replaced with "sensitive".
  2171  func (s EnrollmentFilter) GoString() string {
  2172  	return s.String()
  2173  }
  2174  
  2175  // SetName sets the Name field's value.
  2176  func (s *EnrollmentFilter) SetName(v string) *EnrollmentFilter {
  2177  	s.Name = &v
  2178  	return s
  2179  }
  2180  
  2181  // SetValues sets the Values field's value.
  2182  func (s *EnrollmentFilter) SetValues(v []*string) *EnrollmentFilter {
  2183  	s.Values = v
  2184  	return s
  2185  }
  2186  
  2187  type ExportAutoScalingGroupRecommendationsInput struct {
  2188  	_ struct{} `type:"structure"`
  2189  
  2190  	// The IDs of the Amazon Web Services accounts for which to export Auto Scaling
  2191  	// group recommendations.
  2192  	//
  2193  	// If your account is the management account of an organization, use this parameter
  2194  	// to specify the member account for which you want to export recommendations.
  2195  	//
  2196  	// This parameter cannot be specified together with the include member accounts
  2197  	// parameter. The parameters are mutually exclusive.
  2198  	//
  2199  	// Recommendations for member accounts are not included in the export if this
  2200  	// parameter, or the include member accounts parameter, is omitted.
  2201  	//
  2202  	// You can specify multiple account IDs per request.
  2203  	AccountIds []*string `locationName:"accountIds" type:"list"`
  2204  
  2205  	// The recommendations data to include in the export file. For more information
  2206  	// about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files)
  2207  	// in the Compute Optimizer User Guide.
  2208  	FieldsToExport []*string `locationName:"fieldsToExport" type:"list"`
  2209  
  2210  	// The format of the export file.
  2211  	//
  2212  	// The only export file format currently supported is Csv.
  2213  	FileFormat *string `locationName:"fileFormat" type:"string" enum:"FileFormat"`
  2214  
  2215  	// An array of objects to specify a filter that exports a more specific set
  2216  	// of Auto Scaling group recommendations.
  2217  	Filters []*Filter `locationName:"filters" type:"list"`
  2218  
  2219  	// Indicates whether to include recommendations for resources in all member
  2220  	// accounts of the organization if your account is the management account of
  2221  	// an organization.
  2222  	//
  2223  	// The member accounts must also be opted in to Compute Optimizer, and trusted
  2224  	// access for Compute Optimizer must be enabled in the organization account.
  2225  	// For more information, see Compute Optimizer and Amazon Web Services Organizations
  2226  	// trusted access (https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access)
  2227  	// in the Compute Optimizer User Guide.
  2228  	//
  2229  	// Recommendations for member accounts of the organization are not included
  2230  	// in the export file if this parameter is omitted.
  2231  	//
  2232  	// This parameter cannot be specified together with the account IDs parameter.
  2233  	// The parameters are mutually exclusive.
  2234  	//
  2235  	// Recommendations for member accounts are not included in the export if this
  2236  	// parameter, or the account IDs parameter, is omitted.
  2237  	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
  2238  
  2239  	// An object to specify the preferences for the Auto Scaling group recommendations
  2240  	// to export.
  2241  	RecommendationPreferences *RecommendationPreferences `locationName:"recommendationPreferences" type:"structure"`
  2242  
  2243  	// An object to specify the destination Amazon Simple Storage Service (Amazon
  2244  	// S3) bucket name and key prefix for the export job.
  2245  	//
  2246  	// You must create the destination Amazon S3 bucket for your recommendations
  2247  	// export before you create the export job. Compute Optimizer does not create
  2248  	// the S3 bucket for you. After you create the S3 bucket, ensure that it has
  2249  	// the required permissions policy to allow Compute Optimizer to write the export
  2250  	// file to it. If you plan to specify an object prefix when you create the export
  2251  	// job, you must include the object prefix in the policy that you add to the
  2252  	// S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
  2253  	// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
  2254  	// in the Compute Optimizer User Guide.
  2255  	//
  2256  	// S3DestinationConfig is a required field
  2257  	S3DestinationConfig *S3DestinationConfig `locationName:"s3DestinationConfig" type:"structure" required:"true"`
  2258  }
  2259  
  2260  // String returns the string representation.
  2261  //
  2262  // API parameter values that are decorated as "sensitive" in the API will not
  2263  // be included in the string output. The member name will be present, but the
  2264  // value will be replaced with "sensitive".
  2265  func (s ExportAutoScalingGroupRecommendationsInput) String() string {
  2266  	return awsutil.Prettify(s)
  2267  }
  2268  
  2269  // GoString returns the string representation.
  2270  //
  2271  // API parameter values that are decorated as "sensitive" in the API will not
  2272  // be included in the string output. The member name will be present, but the
  2273  // value will be replaced with "sensitive".
  2274  func (s ExportAutoScalingGroupRecommendationsInput) GoString() string {
  2275  	return s.String()
  2276  }
  2277  
  2278  // Validate inspects the fields of the type to determine if they are valid.
  2279  func (s *ExportAutoScalingGroupRecommendationsInput) Validate() error {
  2280  	invalidParams := request.ErrInvalidParams{Context: "ExportAutoScalingGroupRecommendationsInput"}
  2281  	if s.S3DestinationConfig == nil {
  2282  		invalidParams.Add(request.NewErrParamRequired("S3DestinationConfig"))
  2283  	}
  2284  
  2285  	if invalidParams.Len() > 0 {
  2286  		return invalidParams
  2287  	}
  2288  	return nil
  2289  }
  2290  
  2291  // SetAccountIds sets the AccountIds field's value.
  2292  func (s *ExportAutoScalingGroupRecommendationsInput) SetAccountIds(v []*string) *ExportAutoScalingGroupRecommendationsInput {
  2293  	s.AccountIds = v
  2294  	return s
  2295  }
  2296  
  2297  // SetFieldsToExport sets the FieldsToExport field's value.
  2298  func (s *ExportAutoScalingGroupRecommendationsInput) SetFieldsToExport(v []*string) *ExportAutoScalingGroupRecommendationsInput {
  2299  	s.FieldsToExport = v
  2300  	return s
  2301  }
  2302  
  2303  // SetFileFormat sets the FileFormat field's value.
  2304  func (s *ExportAutoScalingGroupRecommendationsInput) SetFileFormat(v string) *ExportAutoScalingGroupRecommendationsInput {
  2305  	s.FileFormat = &v
  2306  	return s
  2307  }
  2308  
  2309  // SetFilters sets the Filters field's value.
  2310  func (s *ExportAutoScalingGroupRecommendationsInput) SetFilters(v []*Filter) *ExportAutoScalingGroupRecommendationsInput {
  2311  	s.Filters = v
  2312  	return s
  2313  }
  2314  
  2315  // SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
  2316  func (s *ExportAutoScalingGroupRecommendationsInput) SetIncludeMemberAccounts(v bool) *ExportAutoScalingGroupRecommendationsInput {
  2317  	s.IncludeMemberAccounts = &v
  2318  	return s
  2319  }
  2320  
  2321  // SetRecommendationPreferences sets the RecommendationPreferences field's value.
  2322  func (s *ExportAutoScalingGroupRecommendationsInput) SetRecommendationPreferences(v *RecommendationPreferences) *ExportAutoScalingGroupRecommendationsInput {
  2323  	s.RecommendationPreferences = v
  2324  	return s
  2325  }
  2326  
  2327  // SetS3DestinationConfig sets the S3DestinationConfig field's value.
  2328  func (s *ExportAutoScalingGroupRecommendationsInput) SetS3DestinationConfig(v *S3DestinationConfig) *ExportAutoScalingGroupRecommendationsInput {
  2329  	s.S3DestinationConfig = v
  2330  	return s
  2331  }
  2332  
  2333  type ExportAutoScalingGroupRecommendationsOutput struct {
  2334  	_ struct{} `type:"structure"`
  2335  
  2336  	// The identification number of the export job.
  2337  	//
  2338  	// Use the DescribeRecommendationExportJobs action, and specify the job ID to
  2339  	// view the status of an export job.
  2340  	JobId *string `locationName:"jobId" type:"string"`
  2341  
  2342  	// An object that describes the destination Amazon S3 bucket of a recommendations
  2343  	// export file.
  2344  	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
  2345  }
  2346  
  2347  // String returns the string representation.
  2348  //
  2349  // API parameter values that are decorated as "sensitive" in the API will not
  2350  // be included in the string output. The member name will be present, but the
  2351  // value will be replaced with "sensitive".
  2352  func (s ExportAutoScalingGroupRecommendationsOutput) String() string {
  2353  	return awsutil.Prettify(s)
  2354  }
  2355  
  2356  // GoString returns the string representation.
  2357  //
  2358  // API parameter values that are decorated as "sensitive" in the API will not
  2359  // be included in the string output. The member name will be present, but the
  2360  // value will be replaced with "sensitive".
  2361  func (s ExportAutoScalingGroupRecommendationsOutput) GoString() string {
  2362  	return s.String()
  2363  }
  2364  
  2365  // SetJobId sets the JobId field's value.
  2366  func (s *ExportAutoScalingGroupRecommendationsOutput) SetJobId(v string) *ExportAutoScalingGroupRecommendationsOutput {
  2367  	s.JobId = &v
  2368  	return s
  2369  }
  2370  
  2371  // SetS3Destination sets the S3Destination field's value.
  2372  func (s *ExportAutoScalingGroupRecommendationsOutput) SetS3Destination(v *S3Destination) *ExportAutoScalingGroupRecommendationsOutput {
  2373  	s.S3Destination = v
  2374  	return s
  2375  }
  2376  
  2377  // Describes the destination of the recommendations export and metadata files.
  2378  type ExportDestination struct {
  2379  	_ struct{} `type:"structure"`
  2380  
  2381  	// An object that describes the destination Amazon Simple Storage Service (Amazon
  2382  	// S3) bucket name and object keys of a recommendations export file, and its
  2383  	// associated metadata file.
  2384  	S3 *S3Destination `locationName:"s3" type:"structure"`
  2385  }
  2386  
  2387  // String returns the string representation.
  2388  //
  2389  // API parameter values that are decorated as "sensitive" in the API will not
  2390  // be included in the string output. The member name will be present, but the
  2391  // value will be replaced with "sensitive".
  2392  func (s ExportDestination) String() string {
  2393  	return awsutil.Prettify(s)
  2394  }
  2395  
  2396  // GoString returns the string representation.
  2397  //
  2398  // API parameter values that are decorated as "sensitive" in the API will not
  2399  // be included in the string output. The member name will be present, but the
  2400  // value will be replaced with "sensitive".
  2401  func (s ExportDestination) GoString() string {
  2402  	return s.String()
  2403  }
  2404  
  2405  // SetS3 sets the S3 field's value.
  2406  func (s *ExportDestination) SetS3(v *S3Destination) *ExportDestination {
  2407  	s.S3 = v
  2408  	return s
  2409  }
  2410  
  2411  type ExportEBSVolumeRecommendationsInput struct {
  2412  	_ struct{} `type:"structure"`
  2413  
  2414  	// The IDs of the Amazon Web Services accounts for which to export Amazon EBS
  2415  	// volume recommendations.
  2416  	//
  2417  	// If your account is the management account of an organization, use this parameter
  2418  	// to specify the member account for which you want to export recommendations.
  2419  	//
  2420  	// This parameter cannot be specified together with the include member accounts
  2421  	// parameter. The parameters are mutually exclusive.
  2422  	//
  2423  	// Recommendations for member accounts are not included in the export if this
  2424  	// parameter, or the include member accounts parameter, is omitted.
  2425  	//
  2426  	// You can specify multiple account IDs per request.
  2427  	AccountIds []*string `locationName:"accountIds" type:"list"`
  2428  
  2429  	// The recommendations data to include in the export file. For more information
  2430  	// about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files)
  2431  	// in the Compute Optimizer User Guide.
  2432  	FieldsToExport []*string `locationName:"fieldsToExport" type:"list"`
  2433  
  2434  	// The format of the export file.
  2435  	//
  2436  	// The only export file format currently supported is Csv.
  2437  	FileFormat *string `locationName:"fileFormat" type:"string" enum:"FileFormat"`
  2438  
  2439  	// An array of objects to specify a filter that exports a more specific set
  2440  	// of Amazon EBS volume recommendations.
  2441  	Filters []*EBSFilter `locationName:"filters" type:"list"`
  2442  
  2443  	// Indicates whether to include recommendations for resources in all member
  2444  	// accounts of the organization if your account is the management account of
  2445  	// an organization.
  2446  	//
  2447  	// The member accounts must also be opted in to Compute Optimizer, and trusted
  2448  	// access for Compute Optimizer must be enabled in the organization account.
  2449  	// For more information, see Compute Optimizer and Amazon Web Services Organizations
  2450  	// trusted access (https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access)
  2451  	// in the Compute Optimizer User Guide.
  2452  	//
  2453  	// Recommendations for member accounts of the organization are not included
  2454  	// in the export file if this parameter is omitted.
  2455  	//
  2456  	// This parameter cannot be specified together with the account IDs parameter.
  2457  	// The parameters are mutually exclusive.
  2458  	//
  2459  	// Recommendations for member accounts are not included in the export if this
  2460  	// parameter, or the account IDs parameter, is omitted.
  2461  	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
  2462  
  2463  	// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
  2464  	// name and key prefix for a recommendations export job.
  2465  	//
  2466  	// You must create the destination Amazon S3 bucket for your recommendations
  2467  	// export before you create the export job. Compute Optimizer does not create
  2468  	// the S3 bucket for you. After you create the S3 bucket, ensure that it has
  2469  	// the required permission policy to allow Compute Optimizer to write the export
  2470  	// file to it. If you plan to specify an object prefix when you create the export
  2471  	// job, you must include the object prefix in the policy that you add to the
  2472  	// S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
  2473  	// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
  2474  	// in the Compute Optimizer User Guide.
  2475  	//
  2476  	// S3DestinationConfig is a required field
  2477  	S3DestinationConfig *S3DestinationConfig `locationName:"s3DestinationConfig" type:"structure" required:"true"`
  2478  }
  2479  
  2480  // String returns the string representation.
  2481  //
  2482  // API parameter values that are decorated as "sensitive" in the API will not
  2483  // be included in the string output. The member name will be present, but the
  2484  // value will be replaced with "sensitive".
  2485  func (s ExportEBSVolumeRecommendationsInput) String() string {
  2486  	return awsutil.Prettify(s)
  2487  }
  2488  
  2489  // GoString returns the string representation.
  2490  //
  2491  // API parameter values that are decorated as "sensitive" in the API will not
  2492  // be included in the string output. The member name will be present, but the
  2493  // value will be replaced with "sensitive".
  2494  func (s ExportEBSVolumeRecommendationsInput) GoString() string {
  2495  	return s.String()
  2496  }
  2497  
  2498  // Validate inspects the fields of the type to determine if they are valid.
  2499  func (s *ExportEBSVolumeRecommendationsInput) Validate() error {
  2500  	invalidParams := request.ErrInvalidParams{Context: "ExportEBSVolumeRecommendationsInput"}
  2501  	if s.S3DestinationConfig == nil {
  2502  		invalidParams.Add(request.NewErrParamRequired("S3DestinationConfig"))
  2503  	}
  2504  
  2505  	if invalidParams.Len() > 0 {
  2506  		return invalidParams
  2507  	}
  2508  	return nil
  2509  }
  2510  
  2511  // SetAccountIds sets the AccountIds field's value.
  2512  func (s *ExportEBSVolumeRecommendationsInput) SetAccountIds(v []*string) *ExportEBSVolumeRecommendationsInput {
  2513  	s.AccountIds = v
  2514  	return s
  2515  }
  2516  
  2517  // SetFieldsToExport sets the FieldsToExport field's value.
  2518  func (s *ExportEBSVolumeRecommendationsInput) SetFieldsToExport(v []*string) *ExportEBSVolumeRecommendationsInput {
  2519  	s.FieldsToExport = v
  2520  	return s
  2521  }
  2522  
  2523  // SetFileFormat sets the FileFormat field's value.
  2524  func (s *ExportEBSVolumeRecommendationsInput) SetFileFormat(v string) *ExportEBSVolumeRecommendationsInput {
  2525  	s.FileFormat = &v
  2526  	return s
  2527  }
  2528  
  2529  // SetFilters sets the Filters field's value.
  2530  func (s *ExportEBSVolumeRecommendationsInput) SetFilters(v []*EBSFilter) *ExportEBSVolumeRecommendationsInput {
  2531  	s.Filters = v
  2532  	return s
  2533  }
  2534  
  2535  // SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
  2536  func (s *ExportEBSVolumeRecommendationsInput) SetIncludeMemberAccounts(v bool) *ExportEBSVolumeRecommendationsInput {
  2537  	s.IncludeMemberAccounts = &v
  2538  	return s
  2539  }
  2540  
  2541  // SetS3DestinationConfig sets the S3DestinationConfig field's value.
  2542  func (s *ExportEBSVolumeRecommendationsInput) SetS3DestinationConfig(v *S3DestinationConfig) *ExportEBSVolumeRecommendationsInput {
  2543  	s.S3DestinationConfig = v
  2544  	return s
  2545  }
  2546  
  2547  type ExportEBSVolumeRecommendationsOutput struct {
  2548  	_ struct{} `type:"structure"`
  2549  
  2550  	// The identification number of the export job.
  2551  	//
  2552  	// Use the DescribeRecommendationExportJobs action, and specify the job ID to
  2553  	// view the status of an export job.
  2554  	JobId *string `locationName:"jobId" type:"string"`
  2555  
  2556  	// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
  2557  	// name and object keys of a recommendations export file, and its associated
  2558  	// metadata file.
  2559  	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
  2560  }
  2561  
  2562  // String returns the string representation.
  2563  //
  2564  // API parameter values that are decorated as "sensitive" in the API will not
  2565  // be included in the string output. The member name will be present, but the
  2566  // value will be replaced with "sensitive".
  2567  func (s ExportEBSVolumeRecommendationsOutput) String() string {
  2568  	return awsutil.Prettify(s)
  2569  }
  2570  
  2571  // GoString returns the string representation.
  2572  //
  2573  // API parameter values that are decorated as "sensitive" in the API will not
  2574  // be included in the string output. The member name will be present, but the
  2575  // value will be replaced with "sensitive".
  2576  func (s ExportEBSVolumeRecommendationsOutput) GoString() string {
  2577  	return s.String()
  2578  }
  2579  
  2580  // SetJobId sets the JobId field's value.
  2581  func (s *ExportEBSVolumeRecommendationsOutput) SetJobId(v string) *ExportEBSVolumeRecommendationsOutput {
  2582  	s.JobId = &v
  2583  	return s
  2584  }
  2585  
  2586  // SetS3Destination sets the S3Destination field's value.
  2587  func (s *ExportEBSVolumeRecommendationsOutput) SetS3Destination(v *S3Destination) *ExportEBSVolumeRecommendationsOutput {
  2588  	s.S3Destination = v
  2589  	return s
  2590  }
  2591  
  2592  type ExportEC2InstanceRecommendationsInput struct {
  2593  	_ struct{} `type:"structure"`
  2594  
  2595  	// The IDs of the Amazon Web Services accounts for which to export instance
  2596  	// recommendations.
  2597  	//
  2598  	// If your account is the management account of an organization, use this parameter
  2599  	// to specify the member account for which you want to export recommendations.
  2600  	//
  2601  	// This parameter cannot be specified together with the include member accounts
  2602  	// parameter. The parameters are mutually exclusive.
  2603  	//
  2604  	// Recommendations for member accounts are not included in the export if this
  2605  	// parameter, or the include member accounts parameter, is omitted.
  2606  	//
  2607  	// You can specify multiple account IDs per request.
  2608  	AccountIds []*string `locationName:"accountIds" type:"list"`
  2609  
  2610  	// The recommendations data to include in the export file. For more information
  2611  	// about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files)
  2612  	// in the Compute Optimizer User Guide.
  2613  	FieldsToExport []*string `locationName:"fieldsToExport" type:"list"`
  2614  
  2615  	// The format of the export file.
  2616  	//
  2617  	// The only export file format currently supported is Csv.
  2618  	FileFormat *string `locationName:"fileFormat" type:"string" enum:"FileFormat"`
  2619  
  2620  	// An array of objects to specify a filter that exports a more specific set
  2621  	// of instance recommendations.
  2622  	Filters []*Filter `locationName:"filters" type:"list"`
  2623  
  2624  	// Indicates whether to include recommendations for resources in all member
  2625  	// accounts of the organization if your account is the management account of
  2626  	// an organization.
  2627  	//
  2628  	// The member accounts must also be opted in to Compute Optimizer, and trusted
  2629  	// access for Compute Optimizer must be enabled in the organization account.
  2630  	// For more information, see Compute Optimizer and Amazon Web Services Organizations
  2631  	// trusted access (https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access)
  2632  	// in the Compute Optimizer User Guide.
  2633  	//
  2634  	// Recommendations for member accounts of the organization are not included
  2635  	// in the export file if this parameter is omitted.
  2636  	//
  2637  	// Recommendations for member accounts are not included in the export if this
  2638  	// parameter, or the account IDs parameter, is omitted.
  2639  	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
  2640  
  2641  	// An object to specify the preferences for the Amazon EC2 instance recommendations
  2642  	// to export.
  2643  	RecommendationPreferences *RecommendationPreferences `locationName:"recommendationPreferences" type:"structure"`
  2644  
  2645  	// An object to specify the destination Amazon Simple Storage Service (Amazon
  2646  	// S3) bucket name and key prefix for the export job.
  2647  	//
  2648  	// You must create the destination Amazon S3 bucket for your recommendations
  2649  	// export before you create the export job. Compute Optimizer does not create
  2650  	// the S3 bucket for you. After you create the S3 bucket, ensure that it has
  2651  	// the required permissions policy policy to allow Compute Optimizer to write
  2652  	// the export file to it. If you plan to specify an object prefix when you create
  2653  	// the export job, you must include the object prefix in the that you add to
  2654  	// the S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
  2655  	// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
  2656  	// in the Compute Optimizer User Guide.
  2657  	//
  2658  	// S3DestinationConfig is a required field
  2659  	S3DestinationConfig *S3DestinationConfig `locationName:"s3DestinationConfig" type:"structure" required:"true"`
  2660  }
  2661  
  2662  // String returns the string representation.
  2663  //
  2664  // API parameter values that are decorated as "sensitive" in the API will not
  2665  // be included in the string output. The member name will be present, but the
  2666  // value will be replaced with "sensitive".
  2667  func (s ExportEC2InstanceRecommendationsInput) String() string {
  2668  	return awsutil.Prettify(s)
  2669  }
  2670  
  2671  // GoString returns the string representation.
  2672  //
  2673  // API parameter values that are decorated as "sensitive" in the API will not
  2674  // be included in the string output. The member name will be present, but the
  2675  // value will be replaced with "sensitive".
  2676  func (s ExportEC2InstanceRecommendationsInput) GoString() string {
  2677  	return s.String()
  2678  }
  2679  
  2680  // Validate inspects the fields of the type to determine if they are valid.
  2681  func (s *ExportEC2InstanceRecommendationsInput) Validate() error {
  2682  	invalidParams := request.ErrInvalidParams{Context: "ExportEC2InstanceRecommendationsInput"}
  2683  	if s.S3DestinationConfig == nil {
  2684  		invalidParams.Add(request.NewErrParamRequired("S3DestinationConfig"))
  2685  	}
  2686  
  2687  	if invalidParams.Len() > 0 {
  2688  		return invalidParams
  2689  	}
  2690  	return nil
  2691  }
  2692  
  2693  // SetAccountIds sets the AccountIds field's value.
  2694  func (s *ExportEC2InstanceRecommendationsInput) SetAccountIds(v []*string) *ExportEC2InstanceRecommendationsInput {
  2695  	s.AccountIds = v
  2696  	return s
  2697  }
  2698  
  2699  // SetFieldsToExport sets the FieldsToExport field's value.
  2700  func (s *ExportEC2InstanceRecommendationsInput) SetFieldsToExport(v []*string) *ExportEC2InstanceRecommendationsInput {
  2701  	s.FieldsToExport = v
  2702  	return s
  2703  }
  2704  
  2705  // SetFileFormat sets the FileFormat field's value.
  2706  func (s *ExportEC2InstanceRecommendationsInput) SetFileFormat(v string) *ExportEC2InstanceRecommendationsInput {
  2707  	s.FileFormat = &v
  2708  	return s
  2709  }
  2710  
  2711  // SetFilters sets the Filters field's value.
  2712  func (s *ExportEC2InstanceRecommendationsInput) SetFilters(v []*Filter) *ExportEC2InstanceRecommendationsInput {
  2713  	s.Filters = v
  2714  	return s
  2715  }
  2716  
  2717  // SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
  2718  func (s *ExportEC2InstanceRecommendationsInput) SetIncludeMemberAccounts(v bool) *ExportEC2InstanceRecommendationsInput {
  2719  	s.IncludeMemberAccounts = &v
  2720  	return s
  2721  }
  2722  
  2723  // SetRecommendationPreferences sets the RecommendationPreferences field's value.
  2724  func (s *ExportEC2InstanceRecommendationsInput) SetRecommendationPreferences(v *RecommendationPreferences) *ExportEC2InstanceRecommendationsInput {
  2725  	s.RecommendationPreferences = v
  2726  	return s
  2727  }
  2728  
  2729  // SetS3DestinationConfig sets the S3DestinationConfig field's value.
  2730  func (s *ExportEC2InstanceRecommendationsInput) SetS3DestinationConfig(v *S3DestinationConfig) *ExportEC2InstanceRecommendationsInput {
  2731  	s.S3DestinationConfig = v
  2732  	return s
  2733  }
  2734  
  2735  type ExportEC2InstanceRecommendationsOutput struct {
  2736  	_ struct{} `type:"structure"`
  2737  
  2738  	// The identification number of the export job.
  2739  	//
  2740  	// Use the DescribeRecommendationExportJobs action, and specify the job ID to
  2741  	// view the status of an export job.
  2742  	JobId *string `locationName:"jobId" type:"string"`
  2743  
  2744  	// An object that describes the destination Amazon S3 bucket of a recommendations
  2745  	// export file.
  2746  	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
  2747  }
  2748  
  2749  // String returns the string representation.
  2750  //
  2751  // API parameter values that are decorated as "sensitive" in the API will not
  2752  // be included in the string output. The member name will be present, but the
  2753  // value will be replaced with "sensitive".
  2754  func (s ExportEC2InstanceRecommendationsOutput) String() string {
  2755  	return awsutil.Prettify(s)
  2756  }
  2757  
  2758  // GoString returns the string representation.
  2759  //
  2760  // API parameter values that are decorated as "sensitive" in the API will not
  2761  // be included in the string output. The member name will be present, but the
  2762  // value will be replaced with "sensitive".
  2763  func (s ExportEC2InstanceRecommendationsOutput) GoString() string {
  2764  	return s.String()
  2765  }
  2766  
  2767  // SetJobId sets the JobId field's value.
  2768  func (s *ExportEC2InstanceRecommendationsOutput) SetJobId(v string) *ExportEC2InstanceRecommendationsOutput {
  2769  	s.JobId = &v
  2770  	return s
  2771  }
  2772  
  2773  // SetS3Destination sets the S3Destination field's value.
  2774  func (s *ExportEC2InstanceRecommendationsOutput) SetS3Destination(v *S3Destination) *ExportEC2InstanceRecommendationsOutput {
  2775  	s.S3Destination = v
  2776  	return s
  2777  }
  2778  
  2779  type ExportLambdaFunctionRecommendationsInput struct {
  2780  	_ struct{} `type:"structure"`
  2781  
  2782  	// The IDs of the Amazon Web Services accounts for which to export Lambda function
  2783  	// recommendations.
  2784  	//
  2785  	// If your account is the management account of an organization, use this parameter
  2786  	// to specify the member account for which you want to export recommendations.
  2787  	//
  2788  	// This parameter cannot be specified together with the include member accounts
  2789  	// parameter. The parameters are mutually exclusive.
  2790  	//
  2791  	// Recommendations for member accounts are not included in the export if this
  2792  	// parameter, or the include member accounts parameter, is omitted.
  2793  	//
  2794  	// You can specify multiple account IDs per request.
  2795  	AccountIds []*string `locationName:"accountIds" type:"list"`
  2796  
  2797  	// The recommendations data to include in the export file. For more information
  2798  	// about the fields that can be exported, see Exported files (https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files)
  2799  	// in the Compute Optimizer User Guide.
  2800  	FieldsToExport []*string `locationName:"fieldsToExport" type:"list"`
  2801  
  2802  	// The format of the export file.
  2803  	//
  2804  	// The only export file format currently supported is Csv.
  2805  	FileFormat *string `locationName:"fileFormat" type:"string" enum:"FileFormat"`
  2806  
  2807  	// An array of objects to specify a filter that exports a more specific set
  2808  	// of Lambda function recommendations.
  2809  	Filters []*LambdaFunctionRecommendationFilter `locationName:"filters" type:"list"`
  2810  
  2811  	// Indicates whether to include recommendations for resources in all member
  2812  	// accounts of the organization if your account is the management account of
  2813  	// an organization.
  2814  	//
  2815  	// The member accounts must also be opted in to Compute Optimizer, and trusted
  2816  	// access for Compute Optimizer must be enabled in the organization account.
  2817  	// For more information, see Compute Optimizer and Amazon Web Services Organizations
  2818  	// trusted access (https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access)
  2819  	// in the Compute Optimizer User Guide.
  2820  	//
  2821  	// Recommendations for member accounts of the organization are not included
  2822  	// in the export file if this parameter is omitted.
  2823  	//
  2824  	// This parameter cannot be specified together with the account IDs parameter.
  2825  	// The parameters are mutually exclusive.
  2826  	//
  2827  	// Recommendations for member accounts are not included in the export if this
  2828  	// parameter, or the account IDs parameter, is omitted.
  2829  	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
  2830  
  2831  	// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
  2832  	// name and key prefix for a recommendations export job.
  2833  	//
  2834  	// You must create the destination Amazon S3 bucket for your recommendations
  2835  	// export before you create the export job. Compute Optimizer does not create
  2836  	// the S3 bucket for you. After you create the S3 bucket, ensure that it has
  2837  	// the required permission policy to allow Compute Optimizer to write the export
  2838  	// file to it. If you plan to specify an object prefix when you create the export
  2839  	// job, you must include the object prefix in the policy that you add to the
  2840  	// S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
  2841  	// Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
  2842  	// in the Compute Optimizer User Guide.
  2843  	//
  2844  	// S3DestinationConfig is a required field
  2845  	S3DestinationConfig *S3DestinationConfig `locationName:"s3DestinationConfig" type:"structure" required:"true"`
  2846  }
  2847  
  2848  // String returns the string representation.
  2849  //
  2850  // API parameter values that are decorated as "sensitive" in the API will not
  2851  // be included in the string output. The member name will be present, but the
  2852  // value will be replaced with "sensitive".
  2853  func (s ExportLambdaFunctionRecommendationsInput) String() string {
  2854  	return awsutil.Prettify(s)
  2855  }
  2856  
  2857  // GoString returns the string representation.
  2858  //
  2859  // API parameter values that are decorated as "sensitive" in the API will not
  2860  // be included in the string output. The member name will be present, but the
  2861  // value will be replaced with "sensitive".
  2862  func (s ExportLambdaFunctionRecommendationsInput) GoString() string {
  2863  	return s.String()
  2864  }
  2865  
  2866  // Validate inspects the fields of the type to determine if they are valid.
  2867  func (s *ExportLambdaFunctionRecommendationsInput) Validate() error {
  2868  	invalidParams := request.ErrInvalidParams{Context: "ExportLambdaFunctionRecommendationsInput"}
  2869  	if s.S3DestinationConfig == nil {
  2870  		invalidParams.Add(request.NewErrParamRequired("S3DestinationConfig"))
  2871  	}
  2872  
  2873  	if invalidParams.Len() > 0 {
  2874  		return invalidParams
  2875  	}
  2876  	return nil
  2877  }
  2878  
  2879  // SetAccountIds sets the AccountIds field's value.
  2880  func (s *ExportLambdaFunctionRecommendationsInput) SetAccountIds(v []*string) *ExportLambdaFunctionRecommendationsInput {
  2881  	s.AccountIds = v
  2882  	return s
  2883  }
  2884  
  2885  // SetFieldsToExport sets the FieldsToExport field's value.
  2886  func (s *ExportLambdaFunctionRecommendationsInput) SetFieldsToExport(v []*string) *ExportLambdaFunctionRecommendationsInput {
  2887  	s.FieldsToExport = v
  2888  	return s
  2889  }
  2890  
  2891  // SetFileFormat sets the FileFormat field's value.
  2892  func (s *ExportLambdaFunctionRecommendationsInput) SetFileFormat(v string) *ExportLambdaFunctionRecommendationsInput {
  2893  	s.FileFormat = &v
  2894  	return s
  2895  }
  2896  
  2897  // SetFilters sets the Filters field's value.
  2898  func (s *ExportLambdaFunctionRecommendationsInput) SetFilters(v []*LambdaFunctionRecommendationFilter) *ExportLambdaFunctionRecommendationsInput {
  2899  	s.Filters = v
  2900  	return s
  2901  }
  2902  
  2903  // SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
  2904  func (s *ExportLambdaFunctionRecommendationsInput) SetIncludeMemberAccounts(v bool) *ExportLambdaFunctionRecommendationsInput {
  2905  	s.IncludeMemberAccounts = &v
  2906  	return s
  2907  }
  2908  
  2909  // SetS3DestinationConfig sets the S3DestinationConfig field's value.
  2910  func (s *ExportLambdaFunctionRecommendationsInput) SetS3DestinationConfig(v *S3DestinationConfig) *ExportLambdaFunctionRecommendationsInput {
  2911  	s.S3DestinationConfig = v
  2912  	return s
  2913  }
  2914  
  2915  type ExportLambdaFunctionRecommendationsOutput struct {
  2916  	_ struct{} `type:"structure"`
  2917  
  2918  	// The identification number of the export job.
  2919  	//
  2920  	// Use the DescribeRecommendationExportJobs action, and specify the job ID to
  2921  	// view the status of an export job.
  2922  	JobId *string `locationName:"jobId" type:"string"`
  2923  
  2924  	// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
  2925  	// name and object keys of a recommendations export file, and its associated
  2926  	// metadata file.
  2927  	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
  2928  }
  2929  
  2930  // String returns the string representation.
  2931  //
  2932  // API parameter values that are decorated as "sensitive" in the API will not
  2933  // be included in the string output. The member name will be present, but the
  2934  // value will be replaced with "sensitive".
  2935  func (s ExportLambdaFunctionRecommendationsOutput) String() string {
  2936  	return awsutil.Prettify(s)
  2937  }
  2938  
  2939  // GoString returns the string representation.
  2940  //
  2941  // API parameter values that are decorated as "sensitive" in the API will not
  2942  // be included in the string output. The member name will be present, but the
  2943  // value will be replaced with "sensitive".
  2944  func (s ExportLambdaFunctionRecommendationsOutput) GoString() string {
  2945  	return s.String()
  2946  }
  2947  
  2948  // SetJobId sets the JobId field's value.
  2949  func (s *ExportLambdaFunctionRecommendationsOutput) SetJobId(v string) *ExportLambdaFunctionRecommendationsOutput {
  2950  	s.JobId = &v
  2951  	return s
  2952  }
  2953  
  2954  // SetS3Destination sets the S3Destination field's value.
  2955  func (s *ExportLambdaFunctionRecommendationsOutput) SetS3Destination(v *S3Destination) *ExportLambdaFunctionRecommendationsOutput {
  2956  	s.S3Destination = v
  2957  	return s
  2958  }
  2959  
  2960  // Describes a filter that returns a more specific list of recommendations.
  2961  // Use this filter with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations
  2962  // actions.
  2963  //
  2964  // You can use EBSFilter with the GetEBSVolumeRecommendations action, LambdaFunctionRecommendationFilter
  2965  // with the GetLambdaFunctionRecommendations action, and JobFilter with the
  2966  // DescribeRecommendationExportJobs action.
  2967  type Filter struct {
  2968  	_ struct{} `type:"structure"`
  2969  
  2970  	// The name of the filter.
  2971  	//
  2972  	// Specify Finding to return recommendations with a specific finding classification
  2973  	// (for example, Underprovisioned).
  2974  	//
  2975  	// Specify RecommendationSourceType to return recommendations of a specific
  2976  	// resource type (for example, Ec2Instance).
  2977  	//
  2978  	// Specify FindingReasonCodes to return recommendations with a specific finding
  2979  	// reason code (for example, CPUUnderprovisioned).
  2980  	Name *string `locationName:"name" type:"string" enum:"FilterName"`
  2981  
  2982  	// The value of the filter.
  2983  	//
  2984  	// The valid values for this parameter are as follows, depending on what you
  2985  	// specify for the name parameter and the resource type that you wish to filter
  2986  	// results for:
  2987  	//
  2988  	//    * Specify Optimized or NotOptimized if you specify the name parameter
  2989  	//    as Finding and you want to filter results for Auto Scaling groups.
  2990  	//
  2991  	//    * Specify Underprovisioned, Overprovisioned, or Optimized if you specify
  2992  	//    the name parameter as Finding and you want to filter results for EC2 instances.
  2993  	//
  2994  	//    * Specify Ec2Instance or AutoScalingGroup if you specify the name parameter
  2995  	//    as RecommendationSourceType.
  2996  	//
  2997  	//    * Specify one of the following options if you specify the name parameter
  2998  	//    as FindingReasonCodes: CPUOverprovisioned — The instance’s CPU configuration
  2999  	//    can be sized down while still meeting the performance requirements of
  3000  	//    your workload. CPUUnderprovisioned — The instance’s CPU configuration
  3001  	//    doesn't meet the performance requirements of your workload and there is
  3002  	//    an alternative instance type that provides better CPU performance. MemoryOverprovisioned
  3003  	//    — The instance’s memory configuration can be sized down while still
  3004  	//    meeting the performance requirements of your workload. MemoryUnderprovisioned
  3005  	//    — The instance’s memory configuration doesn't meet the performance
  3006  	//    requirements of your workload and there is an alternative instance type
  3007  	//    that provides better memory performance. EBSThroughputOverprovisioned
  3008  	//    — The instance’s EBS throughput configuration can be sized down while
  3009  	//    still meeting the performance requirements of your workload. EBSThroughputUnderprovisioned
  3010  	//    — The instance’s EBS throughput configuration doesn't meet the performance
  3011  	//    requirements of your workload and there is an alternative instance type
  3012  	//    that provides better EBS throughput performance. EBSIOPSOverprovisioned
  3013  	//    — The instance’s EBS IOPS configuration can be sized down while still
  3014  	//    meeting the performance requirements of your workload. EBSIOPSUnderprovisioned
  3015  	//    — The instance’s EBS IOPS configuration doesn't meet the performance
  3016  	//    requirements of your workload and there is an alternative instance type
  3017  	//    that provides better EBS IOPS performance. NetworkBandwidthOverprovisioned
  3018  	//    — The instance’s network bandwidth configuration can be sized down
  3019  	//    while still meeting the performance requirements of your workload. NetworkBandwidthUnderprovisioned
  3020  	//    — The instance’s network bandwidth configuration doesn't meet the
  3021  	//    performance requirements of your workload and there is an alternative
  3022  	//    instance type that provides better network bandwidth performance. This
  3023  	//    finding reason happens when the NetworkIn or NetworkOut performance of
  3024  	//    an instance is impacted. NetworkPPSOverprovisioned — The instance’s
  3025  	//    network PPS (packets per second) configuration can be sized down while
  3026  	//    still meeting the performance requirements of your workload. NetworkPPSUnderprovisioned
  3027  	//    — The instance’s network PPS (packets per second) configuration doesn't
  3028  	//    meet the performance requirements of your workload and there is an alternative
  3029  	//    instance type that provides better network PPS performance. DiskIOPSOverprovisioned
  3030  	//    — The instance’s disk IOPS configuration can be sized down while still
  3031  	//    meeting the performance requirements of your workload. DiskIOPSUnderprovisioned
  3032  	//    — The instance’s disk IOPS configuration doesn't meet the performance
  3033  	//    requirements of your workload and there is an alternative instance type
  3034  	//    that provides better disk IOPS performance. DiskThroughputOverprovisioned
  3035  	//    — The instance’s disk throughput configuration can be sized down while
  3036  	//    still meeting the performance requirements of your workload. DiskThroughputUnderprovisioned
  3037  	//    — The instance’s disk throughput configuration doesn't meet the performance
  3038  	//    requirements of your workload and there is an alternative instance type
  3039  	//    that provides better disk throughput performance.
  3040  	Values []*string `locationName:"values" type:"list"`
  3041  }
  3042  
  3043  // String returns the string representation.
  3044  //
  3045  // API parameter values that are decorated as "sensitive" in the API will not
  3046  // be included in the string output. The member name will be present, but the
  3047  // value will be replaced with "sensitive".
  3048  func (s Filter) String() string {
  3049  	return awsutil.Prettify(s)
  3050  }
  3051  
  3052  // GoString returns the string representation.
  3053  //
  3054  // API parameter values that are decorated as "sensitive" in the API will not
  3055  // be included in the string output. The member name will be present, but the
  3056  // value will be replaced with "sensitive".
  3057  func (s Filter) GoString() string {
  3058  	return s.String()
  3059  }
  3060  
  3061  // SetName sets the Name field's value.
  3062  func (s *Filter) SetName(v string) *Filter {
  3063  	s.Name = &v
  3064  	return s
  3065  }
  3066  
  3067  // SetValues sets the Values field's value.
  3068  func (s *Filter) SetValues(v []*string) *Filter {
  3069  	s.Values = v
  3070  	return s
  3071  }
  3072  
  3073  type GetAutoScalingGroupRecommendationsInput struct {
  3074  	_ struct{} `type:"structure"`
  3075  
  3076  	// The ID of the Amazon Web Services account for which to return Auto Scaling
  3077  	// group recommendations.
  3078  	//
  3079  	// If your account is the management account of an organization, use this parameter
  3080  	// to specify the member account for which you want to return Auto Scaling group
  3081  	// recommendations.
  3082  	//
  3083  	// Only one account ID can be specified per request.
  3084  	AccountIds []*string `locationName:"accountIds" type:"list"`
  3085  
  3086  	// The Amazon Resource Name (ARN) of the Auto Scaling groups for which to return
  3087  	// recommendations.
  3088  	AutoScalingGroupArns []*string `locationName:"autoScalingGroupArns" type:"list"`
  3089  
  3090  	// An array of objects to specify a filter that returns a more specific list
  3091  	// of Auto Scaling group recommendations.
  3092  	Filters []*Filter `locationName:"filters" type:"list"`
  3093  
  3094  	// The maximum number of Auto Scaling group recommendations to return with a
  3095  	// single request.
  3096  	//
  3097  	// To retrieve the remaining results, make another request with the returned
  3098  	// nextToken value.
  3099  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  3100  
  3101  	// The token to advance to the next page of Auto Scaling group recommendations.
  3102  	NextToken *string `locationName:"nextToken" type:"string"`
  3103  
  3104  	// An object to specify the preferences for the Auto Scaling group recommendations
  3105  	// to return in the response.
  3106  	RecommendationPreferences *RecommendationPreferences `locationName:"recommendationPreferences" type:"structure"`
  3107  }
  3108  
  3109  // String returns the string representation.
  3110  //
  3111  // API parameter values that are decorated as "sensitive" in the API will not
  3112  // be included in the string output. The member name will be present, but the
  3113  // value will be replaced with "sensitive".
  3114  func (s GetAutoScalingGroupRecommendationsInput) String() string {
  3115  	return awsutil.Prettify(s)
  3116  }
  3117  
  3118  // GoString returns the string representation.
  3119  //
  3120  // API parameter values that are decorated as "sensitive" in the API will not
  3121  // be included in the string output. The member name will be present, but the
  3122  // value will be replaced with "sensitive".
  3123  func (s GetAutoScalingGroupRecommendationsInput) GoString() string {
  3124  	return s.String()
  3125  }
  3126  
  3127  // SetAccountIds sets the AccountIds field's value.
  3128  func (s *GetAutoScalingGroupRecommendationsInput) SetAccountIds(v []*string) *GetAutoScalingGroupRecommendationsInput {
  3129  	s.AccountIds = v
  3130  	return s
  3131  }
  3132  
  3133  // SetAutoScalingGroupArns sets the AutoScalingGroupArns field's value.
  3134  func (s *GetAutoScalingGroupRecommendationsInput) SetAutoScalingGroupArns(v []*string) *GetAutoScalingGroupRecommendationsInput {
  3135  	s.AutoScalingGroupArns = v
  3136  	return s
  3137  }
  3138  
  3139  // SetFilters sets the Filters field's value.
  3140  func (s *GetAutoScalingGroupRecommendationsInput) SetFilters(v []*Filter) *GetAutoScalingGroupRecommendationsInput {
  3141  	s.Filters = v
  3142  	return s
  3143  }
  3144  
  3145  // SetMaxResults sets the MaxResults field's value.
  3146  func (s *GetAutoScalingGroupRecommendationsInput) SetMaxResults(v int64) *GetAutoScalingGroupRecommendationsInput {
  3147  	s.MaxResults = &v
  3148  	return s
  3149  }
  3150  
  3151  // SetNextToken sets the NextToken field's value.
  3152  func (s *GetAutoScalingGroupRecommendationsInput) SetNextToken(v string) *GetAutoScalingGroupRecommendationsInput {
  3153  	s.NextToken = &v
  3154  	return s
  3155  }
  3156  
  3157  // SetRecommendationPreferences sets the RecommendationPreferences field's value.
  3158  func (s *GetAutoScalingGroupRecommendationsInput) SetRecommendationPreferences(v *RecommendationPreferences) *GetAutoScalingGroupRecommendationsInput {
  3159  	s.RecommendationPreferences = v
  3160  	return s
  3161  }
  3162  
  3163  type GetAutoScalingGroupRecommendationsOutput struct {
  3164  	_ struct{} `type:"structure"`
  3165  
  3166  	// An array of objects that describe Auto Scaling group recommendations.
  3167  	AutoScalingGroupRecommendations []*AutoScalingGroupRecommendation `locationName:"autoScalingGroupRecommendations" type:"list"`
  3168  
  3169  	// An array of objects that describe errors of the request.
  3170  	//
  3171  	// For example, an error is returned if you request recommendations for an unsupported
  3172  	// Auto Scaling group.
  3173  	Errors []*GetRecommendationError `locationName:"errors" type:"list"`
  3174  
  3175  	// The token to use to advance to the next page of Auto Scaling group recommendations.
  3176  	//
  3177  	// This value is null when there are no more pages of Auto Scaling group recommendations
  3178  	// to return.
  3179  	NextToken *string `locationName:"nextToken" type:"string"`
  3180  }
  3181  
  3182  // String returns the string representation.
  3183  //
  3184  // API parameter values that are decorated as "sensitive" in the API will not
  3185  // be included in the string output. The member name will be present, but the
  3186  // value will be replaced with "sensitive".
  3187  func (s GetAutoScalingGroupRecommendationsOutput) String() string {
  3188  	return awsutil.Prettify(s)
  3189  }
  3190  
  3191  // GoString returns the string representation.
  3192  //
  3193  // API parameter values that are decorated as "sensitive" in the API will not
  3194  // be included in the string output. The member name will be present, but the
  3195  // value will be replaced with "sensitive".
  3196  func (s GetAutoScalingGroupRecommendationsOutput) GoString() string {
  3197  	return s.String()
  3198  }
  3199  
  3200  // SetAutoScalingGroupRecommendations sets the AutoScalingGroupRecommendations field's value.
  3201  func (s *GetAutoScalingGroupRecommendationsOutput) SetAutoScalingGroupRecommendations(v []*AutoScalingGroupRecommendation) *GetAutoScalingGroupRecommendationsOutput {
  3202  	s.AutoScalingGroupRecommendations = v
  3203  	return s
  3204  }
  3205  
  3206  // SetErrors sets the Errors field's value.
  3207  func (s *GetAutoScalingGroupRecommendationsOutput) SetErrors(v []*GetRecommendationError) *GetAutoScalingGroupRecommendationsOutput {
  3208  	s.Errors = v
  3209  	return s
  3210  }
  3211  
  3212  // SetNextToken sets the NextToken field's value.
  3213  func (s *GetAutoScalingGroupRecommendationsOutput) SetNextToken(v string) *GetAutoScalingGroupRecommendationsOutput {
  3214  	s.NextToken = &v
  3215  	return s
  3216  }
  3217  
  3218  type GetEBSVolumeRecommendationsInput struct {
  3219  	_ struct{} `type:"structure"`
  3220  
  3221  	// The ID of the Amazon Web Services account for which to return volume recommendations.
  3222  	//
  3223  	// If your account is the management account of an organization, use this parameter
  3224  	// to specify the member account for which you want to return volume recommendations.
  3225  	//
  3226  	// Only one account ID can be specified per request.
  3227  	AccountIds []*string `locationName:"accountIds" type:"list"`
  3228  
  3229  	// An array of objects to specify a filter that returns a more specific list
  3230  	// of volume recommendations.
  3231  	Filters []*EBSFilter `locationName:"filters" type:"list"`
  3232  
  3233  	// The maximum number of volume recommendations to return with a single request.
  3234  	//
  3235  	// To retrieve the remaining results, make another request with the returned
  3236  	// nextToken value.
  3237  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  3238  
  3239  	// The token to advance to the next page of volume recommendations.
  3240  	NextToken *string `locationName:"nextToken" type:"string"`
  3241  
  3242  	// The Amazon Resource Name (ARN) of the volumes for which to return recommendations.
  3243  	VolumeArns []*string `locationName:"volumeArns" type:"list"`
  3244  }
  3245  
  3246  // String returns the string representation.
  3247  //
  3248  // API parameter values that are decorated as "sensitive" in the API will not
  3249  // be included in the string output. The member name will be present, but the
  3250  // value will be replaced with "sensitive".
  3251  func (s GetEBSVolumeRecommendationsInput) String() string {
  3252  	return awsutil.Prettify(s)
  3253  }
  3254  
  3255  // GoString returns the string representation.
  3256  //
  3257  // API parameter values that are decorated as "sensitive" in the API will not
  3258  // be included in the string output. The member name will be present, but the
  3259  // value will be replaced with "sensitive".
  3260  func (s GetEBSVolumeRecommendationsInput) GoString() string {
  3261  	return s.String()
  3262  }
  3263  
  3264  // SetAccountIds sets the AccountIds field's value.
  3265  func (s *GetEBSVolumeRecommendationsInput) SetAccountIds(v []*string) *GetEBSVolumeRecommendationsInput {
  3266  	s.AccountIds = v
  3267  	return s
  3268  }
  3269  
  3270  // SetFilters sets the Filters field's value.
  3271  func (s *GetEBSVolumeRecommendationsInput) SetFilters(v []*EBSFilter) *GetEBSVolumeRecommendationsInput {
  3272  	s.Filters = v
  3273  	return s
  3274  }
  3275  
  3276  // SetMaxResults sets the MaxResults field's value.
  3277  func (s *GetEBSVolumeRecommendationsInput) SetMaxResults(v int64) *GetEBSVolumeRecommendationsInput {
  3278  	s.MaxResults = &v
  3279  	return s
  3280  }
  3281  
  3282  // SetNextToken sets the NextToken field's value.
  3283  func (s *GetEBSVolumeRecommendationsInput) SetNextToken(v string) *GetEBSVolumeRecommendationsInput {
  3284  	s.NextToken = &v
  3285  	return s
  3286  }
  3287  
  3288  // SetVolumeArns sets the VolumeArns field's value.
  3289  func (s *GetEBSVolumeRecommendationsInput) SetVolumeArns(v []*string) *GetEBSVolumeRecommendationsInput {
  3290  	s.VolumeArns = v
  3291  	return s
  3292  }
  3293  
  3294  type GetEBSVolumeRecommendationsOutput struct {
  3295  	_ struct{} `type:"structure"`
  3296  
  3297  	// An array of objects that describe errors of the request.
  3298  	//
  3299  	// For example, an error is returned if you request recommendations for an unsupported
  3300  	// volume.
  3301  	Errors []*GetRecommendationError `locationName:"errors" type:"list"`
  3302  
  3303  	// The token to use to advance to the next page of volume recommendations.
  3304  	//
  3305  	// This value is null when there are no more pages of volume recommendations
  3306  	// to return.
  3307  	NextToken *string `locationName:"nextToken" type:"string"`
  3308  
  3309  	// An array of objects that describe volume recommendations.
  3310  	VolumeRecommendations []*VolumeRecommendation `locationName:"volumeRecommendations" type:"list"`
  3311  }
  3312  
  3313  // String returns the string representation.
  3314  //
  3315  // API parameter values that are decorated as "sensitive" in the API will not
  3316  // be included in the string output. The member name will be present, but the
  3317  // value will be replaced with "sensitive".
  3318  func (s GetEBSVolumeRecommendationsOutput) String() string {
  3319  	return awsutil.Prettify(s)
  3320  }
  3321  
  3322  // GoString returns the string representation.
  3323  //
  3324  // API parameter values that are decorated as "sensitive" in the API will not
  3325  // be included in the string output. The member name will be present, but the
  3326  // value will be replaced with "sensitive".
  3327  func (s GetEBSVolumeRecommendationsOutput) GoString() string {
  3328  	return s.String()
  3329  }
  3330  
  3331  // SetErrors sets the Errors field's value.
  3332  func (s *GetEBSVolumeRecommendationsOutput) SetErrors(v []*GetRecommendationError) *GetEBSVolumeRecommendationsOutput {
  3333  	s.Errors = v
  3334  	return s
  3335  }
  3336  
  3337  // SetNextToken sets the NextToken field's value.
  3338  func (s *GetEBSVolumeRecommendationsOutput) SetNextToken(v string) *GetEBSVolumeRecommendationsOutput {
  3339  	s.NextToken = &v
  3340  	return s
  3341  }
  3342  
  3343  // SetVolumeRecommendations sets the VolumeRecommendations field's value.
  3344  func (s *GetEBSVolumeRecommendationsOutput) SetVolumeRecommendations(v []*VolumeRecommendation) *GetEBSVolumeRecommendationsOutput {
  3345  	s.VolumeRecommendations = v
  3346  	return s
  3347  }
  3348  
  3349  type GetEC2InstanceRecommendationsInput struct {
  3350  	_ struct{} `type:"structure"`
  3351  
  3352  	// The ID of the Amazon Web Services account for which to return instance recommendations.
  3353  	//
  3354  	// If your account is the management account of an organization, use this parameter
  3355  	// to specify the member account for which you want to return instance recommendations.
  3356  	//
  3357  	// Only one account ID can be specified per request.
  3358  	AccountIds []*string `locationName:"accountIds" type:"list"`
  3359  
  3360  	// An array of objects to specify a filter that returns a more specific list
  3361  	// of instance recommendations.
  3362  	Filters []*Filter `locationName:"filters" type:"list"`
  3363  
  3364  	// The Amazon Resource Name (ARN) of the instances for which to return recommendations.
  3365  	InstanceArns []*string `locationName:"instanceArns" type:"list"`
  3366  
  3367  	// The maximum number of instance recommendations to return with a single request.
  3368  	//
  3369  	// To retrieve the remaining results, make another request with the returned
  3370  	// nextToken value.
  3371  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  3372  
  3373  	// The token to advance to the next page of instance recommendations.
  3374  	NextToken *string `locationName:"nextToken" type:"string"`
  3375  
  3376  	// An object to specify the preferences for the Amazon EC2 instance recommendations
  3377  	// to return in the response.
  3378  	RecommendationPreferences *RecommendationPreferences `locationName:"recommendationPreferences" type:"structure"`
  3379  }
  3380  
  3381  // String returns the string representation.
  3382  //
  3383  // API parameter values that are decorated as "sensitive" in the API will not
  3384  // be included in the string output. The member name will be present, but the
  3385  // value will be replaced with "sensitive".
  3386  func (s GetEC2InstanceRecommendationsInput) String() string {
  3387  	return awsutil.Prettify(s)
  3388  }
  3389  
  3390  // GoString returns the string representation.
  3391  //
  3392  // API parameter values that are decorated as "sensitive" in the API will not
  3393  // be included in the string output. The member name will be present, but the
  3394  // value will be replaced with "sensitive".
  3395  func (s GetEC2InstanceRecommendationsInput) GoString() string {
  3396  	return s.String()
  3397  }
  3398  
  3399  // SetAccountIds sets the AccountIds field's value.
  3400  func (s *GetEC2InstanceRecommendationsInput) SetAccountIds(v []*string) *GetEC2InstanceRecommendationsInput {
  3401  	s.AccountIds = v
  3402  	return s
  3403  }
  3404  
  3405  // SetFilters sets the Filters field's value.
  3406  func (s *GetEC2InstanceRecommendationsInput) SetFilters(v []*Filter) *GetEC2InstanceRecommendationsInput {
  3407  	s.Filters = v
  3408  	return s
  3409  }
  3410  
  3411  // SetInstanceArns sets the InstanceArns field's value.
  3412  func (s *GetEC2InstanceRecommendationsInput) SetInstanceArns(v []*string) *GetEC2InstanceRecommendationsInput {
  3413  	s.InstanceArns = v
  3414  	return s
  3415  }
  3416  
  3417  // SetMaxResults sets the MaxResults field's value.
  3418  func (s *GetEC2InstanceRecommendationsInput) SetMaxResults(v int64) *GetEC2InstanceRecommendationsInput {
  3419  	s.MaxResults = &v
  3420  	return s
  3421  }
  3422  
  3423  // SetNextToken sets the NextToken field's value.
  3424  func (s *GetEC2InstanceRecommendationsInput) SetNextToken(v string) *GetEC2InstanceRecommendationsInput {
  3425  	s.NextToken = &v
  3426  	return s
  3427  }
  3428  
  3429  // SetRecommendationPreferences sets the RecommendationPreferences field's value.
  3430  func (s *GetEC2InstanceRecommendationsInput) SetRecommendationPreferences(v *RecommendationPreferences) *GetEC2InstanceRecommendationsInput {
  3431  	s.RecommendationPreferences = v
  3432  	return s
  3433  }
  3434  
  3435  type GetEC2InstanceRecommendationsOutput struct {
  3436  	_ struct{} `type:"structure"`
  3437  
  3438  	// An array of objects that describe errors of the request.
  3439  	//
  3440  	// For example, an error is returned if you request recommendations for an instance
  3441  	// of an unsupported instance family.
  3442  	Errors []*GetRecommendationError `locationName:"errors" type:"list"`
  3443  
  3444  	// An array of objects that describe instance recommendations.
  3445  	InstanceRecommendations []*InstanceRecommendation `locationName:"instanceRecommendations" type:"list"`
  3446  
  3447  	// The token to use to advance to the next page of instance recommendations.
  3448  	//
  3449  	// This value is null when there are no more pages of instance recommendations
  3450  	// to return.
  3451  	NextToken *string `locationName:"nextToken" type:"string"`
  3452  }
  3453  
  3454  // String returns the string representation.
  3455  //
  3456  // API parameter values that are decorated as "sensitive" in the API will not
  3457  // be included in the string output. The member name will be present, but the
  3458  // value will be replaced with "sensitive".
  3459  func (s GetEC2InstanceRecommendationsOutput) String() string {
  3460  	return awsutil.Prettify(s)
  3461  }
  3462  
  3463  // GoString returns the string representation.
  3464  //
  3465  // API parameter values that are decorated as "sensitive" in the API will not
  3466  // be included in the string output. The member name will be present, but the
  3467  // value will be replaced with "sensitive".
  3468  func (s GetEC2InstanceRecommendationsOutput) GoString() string {
  3469  	return s.String()
  3470  }
  3471  
  3472  // SetErrors sets the Errors field's value.
  3473  func (s *GetEC2InstanceRecommendationsOutput) SetErrors(v []*GetRecommendationError) *GetEC2InstanceRecommendationsOutput {
  3474  	s.Errors = v
  3475  	return s
  3476  }
  3477  
  3478  // SetInstanceRecommendations sets the InstanceRecommendations field's value.
  3479  func (s *GetEC2InstanceRecommendationsOutput) SetInstanceRecommendations(v []*InstanceRecommendation) *GetEC2InstanceRecommendationsOutput {
  3480  	s.InstanceRecommendations = v
  3481  	return s
  3482  }
  3483  
  3484  // SetNextToken sets the NextToken field's value.
  3485  func (s *GetEC2InstanceRecommendationsOutput) SetNextToken(v string) *GetEC2InstanceRecommendationsOutput {
  3486  	s.NextToken = &v
  3487  	return s
  3488  }
  3489  
  3490  type GetEC2RecommendationProjectedMetricsInput struct {
  3491  	_ struct{} `type:"structure"`
  3492  
  3493  	// The timestamp of the last projected metrics data point to return.
  3494  	//
  3495  	// EndTime is a required field
  3496  	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
  3497  
  3498  	// The Amazon Resource Name (ARN) of the instances for which to return recommendation
  3499  	// projected metrics.
  3500  	//
  3501  	// InstanceArn is a required field
  3502  	InstanceArn *string `locationName:"instanceArn" type:"string" required:"true"`
  3503  
  3504  	// The granularity, in seconds, of the projected metrics data points.
  3505  	//
  3506  	// Period is a required field
  3507  	Period *int64 `locationName:"period" type:"integer" required:"true"`
  3508  
  3509  	// An object to specify the preferences for the Amazon EC2 recommendation projected
  3510  	// metrics to return in the response.
  3511  	RecommendationPreferences *RecommendationPreferences `locationName:"recommendationPreferences" type:"structure"`
  3512  
  3513  	// The timestamp of the first projected metrics data point to return.
  3514  	//
  3515  	// StartTime is a required field
  3516  	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
  3517  
  3518  	// The statistic of the projected metrics.
  3519  	//
  3520  	// Stat is a required field
  3521  	Stat *string `locationName:"stat" type:"string" required:"true" enum:"MetricStatistic"`
  3522  }
  3523  
  3524  // String returns the string representation.
  3525  //
  3526  // API parameter values that are decorated as "sensitive" in the API will not
  3527  // be included in the string output. The member name will be present, but the
  3528  // value will be replaced with "sensitive".
  3529  func (s GetEC2RecommendationProjectedMetricsInput) String() string {
  3530  	return awsutil.Prettify(s)
  3531  }
  3532  
  3533  // GoString returns the string representation.
  3534  //
  3535  // API parameter values that are decorated as "sensitive" in the API will not
  3536  // be included in the string output. The member name will be present, but the
  3537  // value will be replaced with "sensitive".
  3538  func (s GetEC2RecommendationProjectedMetricsInput) GoString() string {
  3539  	return s.String()
  3540  }
  3541  
  3542  // Validate inspects the fields of the type to determine if they are valid.
  3543  func (s *GetEC2RecommendationProjectedMetricsInput) Validate() error {
  3544  	invalidParams := request.ErrInvalidParams{Context: "GetEC2RecommendationProjectedMetricsInput"}
  3545  	if s.EndTime == nil {
  3546  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
  3547  	}
  3548  	if s.InstanceArn == nil {
  3549  		invalidParams.Add(request.NewErrParamRequired("InstanceArn"))
  3550  	}
  3551  	if s.Period == nil {
  3552  		invalidParams.Add(request.NewErrParamRequired("Period"))
  3553  	}
  3554  	if s.StartTime == nil {
  3555  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
  3556  	}
  3557  	if s.Stat == nil {
  3558  		invalidParams.Add(request.NewErrParamRequired("Stat"))
  3559  	}
  3560  
  3561  	if invalidParams.Len() > 0 {
  3562  		return invalidParams
  3563  	}
  3564  	return nil
  3565  }
  3566  
  3567  // SetEndTime sets the EndTime field's value.
  3568  func (s *GetEC2RecommendationProjectedMetricsInput) SetEndTime(v time.Time) *GetEC2RecommendationProjectedMetricsInput {
  3569  	s.EndTime = &v
  3570  	return s
  3571  }
  3572  
  3573  // SetInstanceArn sets the InstanceArn field's value.
  3574  func (s *GetEC2RecommendationProjectedMetricsInput) SetInstanceArn(v string) *GetEC2RecommendationProjectedMetricsInput {
  3575  	s.InstanceArn = &v
  3576  	return s
  3577  }
  3578  
  3579  // SetPeriod sets the Period field's value.
  3580  func (s *GetEC2RecommendationProjectedMetricsInput) SetPeriod(v int64) *GetEC2RecommendationProjectedMetricsInput {
  3581  	s.Period = &v
  3582  	return s
  3583  }
  3584  
  3585  // SetRecommendationPreferences sets the RecommendationPreferences field's value.
  3586  func (s *GetEC2RecommendationProjectedMetricsInput) SetRecommendationPreferences(v *RecommendationPreferences) *GetEC2RecommendationProjectedMetricsInput {
  3587  	s.RecommendationPreferences = v
  3588  	return s
  3589  }
  3590  
  3591  // SetStartTime sets the StartTime field's value.
  3592  func (s *GetEC2RecommendationProjectedMetricsInput) SetStartTime(v time.Time) *GetEC2RecommendationProjectedMetricsInput {
  3593  	s.StartTime = &v
  3594  	return s
  3595  }
  3596  
  3597  // SetStat sets the Stat field's value.
  3598  func (s *GetEC2RecommendationProjectedMetricsInput) SetStat(v string) *GetEC2RecommendationProjectedMetricsInput {
  3599  	s.Stat = &v
  3600  	return s
  3601  }
  3602  
  3603  type GetEC2RecommendationProjectedMetricsOutput struct {
  3604  	_ struct{} `type:"structure"`
  3605  
  3606  	// An array of objects that describes projected metrics.
  3607  	RecommendedOptionProjectedMetrics []*RecommendedOptionProjectedMetric `locationName:"recommendedOptionProjectedMetrics" type:"list"`
  3608  }
  3609  
  3610  // String returns the string representation.
  3611  //
  3612  // API parameter values that are decorated as "sensitive" in the API will not
  3613  // be included in the string output. The member name will be present, but the
  3614  // value will be replaced with "sensitive".
  3615  func (s GetEC2RecommendationProjectedMetricsOutput) String() string {
  3616  	return awsutil.Prettify(s)
  3617  }
  3618  
  3619  // GoString returns the string representation.
  3620  //
  3621  // API parameter values that are decorated as "sensitive" in the API will not
  3622  // be included in the string output. The member name will be present, but the
  3623  // value will be replaced with "sensitive".
  3624  func (s GetEC2RecommendationProjectedMetricsOutput) GoString() string {
  3625  	return s.String()
  3626  }
  3627  
  3628  // SetRecommendedOptionProjectedMetrics sets the RecommendedOptionProjectedMetrics field's value.
  3629  func (s *GetEC2RecommendationProjectedMetricsOutput) SetRecommendedOptionProjectedMetrics(v []*RecommendedOptionProjectedMetric) *GetEC2RecommendationProjectedMetricsOutput {
  3630  	s.RecommendedOptionProjectedMetrics = v
  3631  	return s
  3632  }
  3633  
  3634  type GetEnrollmentStatusInput struct {
  3635  	_ struct{} `type:"structure"`
  3636  }
  3637  
  3638  // String returns the string representation.
  3639  //
  3640  // API parameter values that are decorated as "sensitive" in the API will not
  3641  // be included in the string output. The member name will be present, but the
  3642  // value will be replaced with "sensitive".
  3643  func (s GetEnrollmentStatusInput) String() string {
  3644  	return awsutil.Prettify(s)
  3645  }
  3646  
  3647  // GoString returns the string representation.
  3648  //
  3649  // API parameter values that are decorated as "sensitive" in the API will not
  3650  // be included in the string output. The member name will be present, but the
  3651  // value will be replaced with "sensitive".
  3652  func (s GetEnrollmentStatusInput) GoString() string {
  3653  	return s.String()
  3654  }
  3655  
  3656  type GetEnrollmentStatusOutput struct {
  3657  	_ struct{} `type:"structure"`
  3658  
  3659  	// The Unix epoch timestamp, in seconds, of when the account enrollment status
  3660  	// was last updated.
  3661  	LastUpdatedTimestamp *time.Time `locationName:"lastUpdatedTimestamp" type:"timestamp"`
  3662  
  3663  	// Confirms the enrollment status of member accounts of the organization, if
  3664  	// the account is a management account of an organization.
  3665  	MemberAccountsEnrolled *bool `locationName:"memberAccountsEnrolled" type:"boolean"`
  3666  
  3667  	// The count of organization member accounts that are opted in to the service,
  3668  	// if your account is an organization management account.
  3669  	NumberOfMemberAccountsOptedIn *int64 `locationName:"numberOfMemberAccountsOptedIn" type:"integer"`
  3670  
  3671  	// The enrollment status of the account.
  3672  	Status *string `locationName:"status" type:"string" enum:"Status"`
  3673  
  3674  	// The reason for the enrollment status of the account.
  3675  	//
  3676  	// For example, an account might show a status of Pending because member accounts
  3677  	// of an organization require more time to be enrolled in the service.
  3678  	StatusReason *string `locationName:"statusReason" type:"string"`
  3679  }
  3680  
  3681  // String returns the string representation.
  3682  //
  3683  // API parameter values that are decorated as "sensitive" in the API will not
  3684  // be included in the string output. The member name will be present, but the
  3685  // value will be replaced with "sensitive".
  3686  func (s GetEnrollmentStatusOutput) String() string {
  3687  	return awsutil.Prettify(s)
  3688  }
  3689  
  3690  // GoString returns the string representation.
  3691  //
  3692  // API parameter values that are decorated as "sensitive" in the API will not
  3693  // be included in the string output. The member name will be present, but the
  3694  // value will be replaced with "sensitive".
  3695  func (s GetEnrollmentStatusOutput) GoString() string {
  3696  	return s.String()
  3697  }
  3698  
  3699  // SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
  3700  func (s *GetEnrollmentStatusOutput) SetLastUpdatedTimestamp(v time.Time) *GetEnrollmentStatusOutput {
  3701  	s.LastUpdatedTimestamp = &v
  3702  	return s
  3703  }
  3704  
  3705  // SetMemberAccountsEnrolled sets the MemberAccountsEnrolled field's value.
  3706  func (s *GetEnrollmentStatusOutput) SetMemberAccountsEnrolled(v bool) *GetEnrollmentStatusOutput {
  3707  	s.MemberAccountsEnrolled = &v
  3708  	return s
  3709  }
  3710  
  3711  // SetNumberOfMemberAccountsOptedIn sets the NumberOfMemberAccountsOptedIn field's value.
  3712  func (s *GetEnrollmentStatusOutput) SetNumberOfMemberAccountsOptedIn(v int64) *GetEnrollmentStatusOutput {
  3713  	s.NumberOfMemberAccountsOptedIn = &v
  3714  	return s
  3715  }
  3716  
  3717  // SetStatus sets the Status field's value.
  3718  func (s *GetEnrollmentStatusOutput) SetStatus(v string) *GetEnrollmentStatusOutput {
  3719  	s.Status = &v
  3720  	return s
  3721  }
  3722  
  3723  // SetStatusReason sets the StatusReason field's value.
  3724  func (s *GetEnrollmentStatusOutput) SetStatusReason(v string) *GetEnrollmentStatusOutput {
  3725  	s.StatusReason = &v
  3726  	return s
  3727  }
  3728  
  3729  type GetEnrollmentStatusesForOrganizationInput struct {
  3730  	_ struct{} `type:"structure"`
  3731  
  3732  	// An array of objects to specify a filter that returns a more specific list
  3733  	// of account enrollment statuses.
  3734  	Filters []*EnrollmentFilter `locationName:"filters" type:"list"`
  3735  
  3736  	// The maximum number of account enrollment statuses to return with a single
  3737  	// request. You can specify up to 100 statuses to return with each request.
  3738  	//
  3739  	// To retrieve the remaining results, make another request with the returned
  3740  	// nextToken value.
  3741  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  3742  
  3743  	// The token to advance to the next page of account enrollment statuses.
  3744  	NextToken *string `locationName:"nextToken" type:"string"`
  3745  }
  3746  
  3747  // String returns the string representation.
  3748  //
  3749  // API parameter values that are decorated as "sensitive" in the API will not
  3750  // be included in the string output. The member name will be present, but the
  3751  // value will be replaced with "sensitive".
  3752  func (s GetEnrollmentStatusesForOrganizationInput) String() string {
  3753  	return awsutil.Prettify(s)
  3754  }
  3755  
  3756  // GoString returns the string representation.
  3757  //
  3758  // API parameter values that are decorated as "sensitive" in the API will not
  3759  // be included in the string output. The member name will be present, but the
  3760  // value will be replaced with "sensitive".
  3761  func (s GetEnrollmentStatusesForOrganizationInput) GoString() string {
  3762  	return s.String()
  3763  }
  3764  
  3765  // SetFilters sets the Filters field's value.
  3766  func (s *GetEnrollmentStatusesForOrganizationInput) SetFilters(v []*EnrollmentFilter) *GetEnrollmentStatusesForOrganizationInput {
  3767  	s.Filters = v
  3768  	return s
  3769  }
  3770  
  3771  // SetMaxResults sets the MaxResults field's value.
  3772  func (s *GetEnrollmentStatusesForOrganizationInput) SetMaxResults(v int64) *GetEnrollmentStatusesForOrganizationInput {
  3773  	s.MaxResults = &v
  3774  	return s
  3775  }
  3776  
  3777  // SetNextToken sets the NextToken field's value.
  3778  func (s *GetEnrollmentStatusesForOrganizationInput) SetNextToken(v string) *GetEnrollmentStatusesForOrganizationInput {
  3779  	s.NextToken = &v
  3780  	return s
  3781  }
  3782  
  3783  type GetEnrollmentStatusesForOrganizationOutput struct {
  3784  	_ struct{} `type:"structure"`
  3785  
  3786  	// An array of objects that describe the enrollment statuses of organization
  3787  	// member accounts.
  3788  	AccountEnrollmentStatuses []*AccountEnrollmentStatus `locationName:"accountEnrollmentStatuses" type:"list"`
  3789  
  3790  	// The token to use to advance to the next page of account enrollment statuses.
  3791  	//
  3792  	// This value is null when there are no more pages of account enrollment statuses
  3793  	// to return.
  3794  	NextToken *string `locationName:"nextToken" type:"string"`
  3795  }
  3796  
  3797  // String returns the string representation.
  3798  //
  3799  // API parameter values that are decorated as "sensitive" in the API will not
  3800  // be included in the string output. The member name will be present, but the
  3801  // value will be replaced with "sensitive".
  3802  func (s GetEnrollmentStatusesForOrganizationOutput) String() string {
  3803  	return awsutil.Prettify(s)
  3804  }
  3805  
  3806  // GoString returns the string representation.
  3807  //
  3808  // API parameter values that are decorated as "sensitive" in the API will not
  3809  // be included in the string output. The member name will be present, but the
  3810  // value will be replaced with "sensitive".
  3811  func (s GetEnrollmentStatusesForOrganizationOutput) GoString() string {
  3812  	return s.String()
  3813  }
  3814  
  3815  // SetAccountEnrollmentStatuses sets the AccountEnrollmentStatuses field's value.
  3816  func (s *GetEnrollmentStatusesForOrganizationOutput) SetAccountEnrollmentStatuses(v []*AccountEnrollmentStatus) *GetEnrollmentStatusesForOrganizationOutput {
  3817  	s.AccountEnrollmentStatuses = v
  3818  	return s
  3819  }
  3820  
  3821  // SetNextToken sets the NextToken field's value.
  3822  func (s *GetEnrollmentStatusesForOrganizationOutput) SetNextToken(v string) *GetEnrollmentStatusesForOrganizationOutput {
  3823  	s.NextToken = &v
  3824  	return s
  3825  }
  3826  
  3827  type GetLambdaFunctionRecommendationsInput struct {
  3828  	_ struct{} `type:"structure"`
  3829  
  3830  	// The ID of the Amazon Web Services account for which to return function recommendations.
  3831  	//
  3832  	// If your account is the management account of an organization, use this parameter
  3833  	// to specify the member account for which you want to return function recommendations.
  3834  	//
  3835  	// Only one account ID can be specified per request.
  3836  	AccountIds []*string `locationName:"accountIds" type:"list"`
  3837  
  3838  	// An array of objects to specify a filter that returns a more specific list
  3839  	// of function recommendations.
  3840  	Filters []*LambdaFunctionRecommendationFilter `locationName:"filters" type:"list"`
  3841  
  3842  	// The Amazon Resource Name (ARN) of the functions for which to return recommendations.
  3843  	//
  3844  	// You can specify a qualified or unqualified ARN. If you specify an unqualified
  3845  	// ARN without a function version suffix, Compute Optimizer will return recommendations
  3846  	// for the latest ($LATEST) version of the function. If you specify a qualified
  3847  	// ARN with a version suffix, Compute Optimizer will return recommendations
  3848  	// for the specified function version. For more information about using function
  3849  	// versions, see Using versions (https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using)
  3850  	// in the Lambda Developer Guide.
  3851  	FunctionArns []*string `locationName:"functionArns" type:"list"`
  3852  
  3853  	// The maximum number of function recommendations to return with a single request.
  3854  	//
  3855  	// To retrieve the remaining results, make another request with the returned
  3856  	// nextToken value.
  3857  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  3858  
  3859  	// The token to advance to the next page of function recommendations.
  3860  	NextToken *string `locationName:"nextToken" type:"string"`
  3861  }
  3862  
  3863  // String returns the string representation.
  3864  //
  3865  // API parameter values that are decorated as "sensitive" in the API will not
  3866  // be included in the string output. The member name will be present, but the
  3867  // value will be replaced with "sensitive".
  3868  func (s GetLambdaFunctionRecommendationsInput) String() string {
  3869  	return awsutil.Prettify(s)
  3870  }
  3871  
  3872  // GoString returns the string representation.
  3873  //
  3874  // API parameter values that are decorated as "sensitive" in the API will not
  3875  // be included in the string output. The member name will be present, but the
  3876  // value will be replaced with "sensitive".
  3877  func (s GetLambdaFunctionRecommendationsInput) GoString() string {
  3878  	return s.String()
  3879  }
  3880  
  3881  // SetAccountIds sets the AccountIds field's value.
  3882  func (s *GetLambdaFunctionRecommendationsInput) SetAccountIds(v []*string) *GetLambdaFunctionRecommendationsInput {
  3883  	s.AccountIds = v
  3884  	return s
  3885  }
  3886  
  3887  // SetFilters sets the Filters field's value.
  3888  func (s *GetLambdaFunctionRecommendationsInput) SetFilters(v []*LambdaFunctionRecommendationFilter) *GetLambdaFunctionRecommendationsInput {
  3889  	s.Filters = v
  3890  	return s
  3891  }
  3892  
  3893  // SetFunctionArns sets the FunctionArns field's value.
  3894  func (s *GetLambdaFunctionRecommendationsInput) SetFunctionArns(v []*string) *GetLambdaFunctionRecommendationsInput {
  3895  	s.FunctionArns = v
  3896  	return s
  3897  }
  3898  
  3899  // SetMaxResults sets the MaxResults field's value.
  3900  func (s *GetLambdaFunctionRecommendationsInput) SetMaxResults(v int64) *GetLambdaFunctionRecommendationsInput {
  3901  	s.MaxResults = &v
  3902  	return s
  3903  }
  3904  
  3905  // SetNextToken sets the NextToken field's value.
  3906  func (s *GetLambdaFunctionRecommendationsInput) SetNextToken(v string) *GetLambdaFunctionRecommendationsInput {
  3907  	s.NextToken = &v
  3908  	return s
  3909  }
  3910  
  3911  type GetLambdaFunctionRecommendationsOutput struct {
  3912  	_ struct{} `type:"structure"`
  3913  
  3914  	// An array of objects that describe function recommendations.
  3915  	LambdaFunctionRecommendations []*LambdaFunctionRecommendation `locationName:"lambdaFunctionRecommendations" type:"list"`
  3916  
  3917  	// The token to use to advance to the next page of function recommendations.
  3918  	//
  3919  	// This value is null when there are no more pages of function recommendations
  3920  	// to return.
  3921  	NextToken *string `locationName:"nextToken" type:"string"`
  3922  }
  3923  
  3924  // String returns the string representation.
  3925  //
  3926  // API parameter values that are decorated as "sensitive" in the API will not
  3927  // be included in the string output. The member name will be present, but the
  3928  // value will be replaced with "sensitive".
  3929  func (s GetLambdaFunctionRecommendationsOutput) String() string {
  3930  	return awsutil.Prettify(s)
  3931  }
  3932  
  3933  // GoString returns the string representation.
  3934  //
  3935  // API parameter values that are decorated as "sensitive" in the API will not
  3936  // be included in the string output. The member name will be present, but the
  3937  // value will be replaced with "sensitive".
  3938  func (s GetLambdaFunctionRecommendationsOutput) GoString() string {
  3939  	return s.String()
  3940  }
  3941  
  3942  // SetLambdaFunctionRecommendations sets the LambdaFunctionRecommendations field's value.
  3943  func (s *GetLambdaFunctionRecommendationsOutput) SetLambdaFunctionRecommendations(v []*LambdaFunctionRecommendation) *GetLambdaFunctionRecommendationsOutput {
  3944  	s.LambdaFunctionRecommendations = v
  3945  	return s
  3946  }
  3947  
  3948  // SetNextToken sets the NextToken field's value.
  3949  func (s *GetLambdaFunctionRecommendationsOutput) SetNextToken(v string) *GetLambdaFunctionRecommendationsOutput {
  3950  	s.NextToken = &v
  3951  	return s
  3952  }
  3953  
  3954  // Describes an error experienced when getting recommendations.
  3955  //
  3956  // For example, an error is returned if you request recommendations for an unsupported
  3957  // Auto Scaling group, or if you request recommendations for an instance of
  3958  // an unsupported instance family.
  3959  type GetRecommendationError struct {
  3960  	_ struct{} `type:"structure"`
  3961  
  3962  	// The error code.
  3963  	Code *string `locationName:"code" type:"string"`
  3964  
  3965  	// The ID of the error.
  3966  	Identifier *string `locationName:"identifier" type:"string"`
  3967  
  3968  	// The message, or reason, for the error.
  3969  	Message *string `locationName:"message" type:"string"`
  3970  }
  3971  
  3972  // String returns the string representation.
  3973  //
  3974  // API parameter values that are decorated as "sensitive" in the API will not
  3975  // be included in the string output. The member name will be present, but the
  3976  // value will be replaced with "sensitive".
  3977  func (s GetRecommendationError) String() string {
  3978  	return awsutil.Prettify(s)
  3979  }
  3980  
  3981  // GoString returns the string representation.
  3982  //
  3983  // API parameter values that are decorated as "sensitive" in the API will not
  3984  // be included in the string output. The member name will be present, but the
  3985  // value will be replaced with "sensitive".
  3986  func (s GetRecommendationError) GoString() string {
  3987  	return s.String()
  3988  }
  3989  
  3990  // SetCode sets the Code field's value.
  3991  func (s *GetRecommendationError) SetCode(v string) *GetRecommendationError {
  3992  	s.Code = &v
  3993  	return s
  3994  }
  3995  
  3996  // SetIdentifier sets the Identifier field's value.
  3997  func (s *GetRecommendationError) SetIdentifier(v string) *GetRecommendationError {
  3998  	s.Identifier = &v
  3999  	return s
  4000  }
  4001  
  4002  // SetMessage sets the Message field's value.
  4003  func (s *GetRecommendationError) SetMessage(v string) *GetRecommendationError {
  4004  	s.Message = &v
  4005  	return s
  4006  }
  4007  
  4008  type GetRecommendationSummariesInput struct {
  4009  	_ struct{} `type:"structure"`
  4010  
  4011  	// The ID of the Amazon Web Services account for which to return recommendation
  4012  	// summaries.
  4013  	//
  4014  	// If your account is the management account of an organization, use this parameter
  4015  	// to specify the member account for which you want to return recommendation
  4016  	// summaries.
  4017  	//
  4018  	// Only one account ID can be specified per request.
  4019  	AccountIds []*string `locationName:"accountIds" type:"list"`
  4020  
  4021  	// The maximum number of recommendation summaries to return with a single request.
  4022  	//
  4023  	// To retrieve the remaining results, make another request with the returned
  4024  	// nextToken value.
  4025  	MaxResults *int64 `locationName:"maxResults" type:"integer"`
  4026  
  4027  	// The token to advance to the next page of recommendation summaries.
  4028  	NextToken *string `locationName:"nextToken" type:"string"`
  4029  }
  4030  
  4031  // String returns the string representation.
  4032  //
  4033  // API parameter values that are decorated as "sensitive" in the API will not
  4034  // be included in the string output. The member name will be present, but the
  4035  // value will be replaced with "sensitive".
  4036  func (s GetRecommendationSummariesInput) String() string {
  4037  	return awsutil.Prettify(s)
  4038  }
  4039  
  4040  // GoString returns the string representation.
  4041  //
  4042  // API parameter values that are decorated as "sensitive" in the API will not
  4043  // be included in the string output. The member name will be present, but the
  4044  // value will be replaced with "sensitive".
  4045  func (s GetRecommendationSummariesInput) GoString() string {
  4046  	return s.String()
  4047  }
  4048  
  4049  // SetAccountIds sets the AccountIds field's value.
  4050  func (s *GetRecommendationSummariesInput) SetAccountIds(v []*string) *GetRecommendationSummariesInput {
  4051  	s.AccountIds = v
  4052  	return s
  4053  }
  4054  
  4055  // SetMaxResults sets the MaxResults field's value.
  4056  func (s *GetRecommendationSummariesInput) SetMaxResults(v int64) *GetRecommendationSummariesInput {
  4057  	s.MaxResults = &v
  4058  	return s
  4059  }
  4060  
  4061  // SetNextToken sets the NextToken field's value.
  4062  func (s *GetRecommendationSummariesInput) SetNextToken(v string) *GetRecommendationSummariesInput {
  4063  	s.NextToken = &v
  4064  	return s
  4065  }
  4066  
  4067  type GetRecommendationSummariesOutput struct {
  4068  	_ struct{} `type:"structure"`
  4069  
  4070  	// The token to use to advance to the next page of recommendation summaries.
  4071  	//
  4072  	// This value is null when there are no more pages of recommendation summaries
  4073  	// to return.
  4074  	NextToken *string `locationName:"nextToken" type:"string"`
  4075  
  4076  	// An array of objects that summarize a recommendation.
  4077  	RecommendationSummaries []*RecommendationSummary `locationName:"recommendationSummaries" type:"list"`
  4078  }
  4079  
  4080  // String returns the string representation.
  4081  //
  4082  // API parameter values that are decorated as "sensitive" in the API will not
  4083  // be included in the string output. The member name will be present, but the
  4084  // value will be replaced with "sensitive".
  4085  func (s GetRecommendationSummariesOutput) String() string {
  4086  	return awsutil.Prettify(s)
  4087  }
  4088  
  4089  // GoString returns the string representation.
  4090  //
  4091  // API parameter values that are decorated as "sensitive" in the API will not
  4092  // be included in the string output. The member name will be present, but the
  4093  // value will be replaced with "sensitive".
  4094  func (s GetRecommendationSummariesOutput) GoString() string {
  4095  	return s.String()
  4096  }
  4097  
  4098  // SetNextToken sets the NextToken field's value.
  4099  func (s *GetRecommendationSummariesOutput) SetNextToken(v string) *GetRecommendationSummariesOutput {
  4100  	s.NextToken = &v
  4101  	return s
  4102  }
  4103  
  4104  // SetRecommendationSummaries sets the RecommendationSummaries field's value.
  4105  func (s *GetRecommendationSummariesOutput) SetRecommendationSummaries(v []*RecommendationSummary) *GetRecommendationSummariesOutput {
  4106  	s.RecommendationSummaries = v
  4107  	return s
  4108  }
  4109  
  4110  // Describes an Amazon EC2 instance recommendation.
  4111  type InstanceRecommendation struct {
  4112  	_ struct{} `type:"structure"`
  4113  
  4114  	// The Amazon Web Services account ID of the instance.
  4115  	AccountId *string `locationName:"accountId" type:"string"`
  4116  
  4117  	// The instance type of the current instance.
  4118  	CurrentInstanceType *string `locationName:"currentInstanceType" type:"string"`
  4119  
  4120  	// The finding classification of the instance.
  4121  	//
  4122  	// Findings for instances include:
  4123  	//
  4124  	//    * Underprovisioned —An instance is considered under-provisioned when
  4125  	//    at least one specification of your instance, such as CPU, memory, or network,
  4126  	//    does not meet the performance requirements of your workload. Under-provisioned
  4127  	//    instances may lead to poor application performance.
  4128  	//
  4129  	//    * Overprovisioned —An instance is considered over-provisioned when at
  4130  	//    least one specification of your instance, such as CPU, memory, or network,
  4131  	//    can be sized down while still meeting the performance requirements of
  4132  	//    your workload, and no specification is under-provisioned. Over-provisioned
  4133  	//    instances may lead to unnecessary infrastructure cost.
  4134  	//
  4135  	//    * Optimized —An instance is considered optimized when all specifications
  4136  	//    of your instance, such as CPU, memory, and network, meet the performance
  4137  	//    requirements of your workload and is not over provisioned. For optimized
  4138  	//    resources, Compute Optimizer might recommend a new generation instance
  4139  	//    type.
  4140  	Finding *string `locationName:"finding" type:"string" enum:"Finding"`
  4141  
  4142  	// The reason for the finding classification of the instance.
  4143  	//
  4144  	// Finding reason codes for instances include:
  4145  	//
  4146  	//    * CPUOverprovisioned — The instance’s CPU configuration can be sized
  4147  	//    down while still meeting the performance requirements of your workload.
  4148  	//    This is identified by analyzing the CPUUtilization metric of the current
  4149  	//    instance during the look-back period.
  4150  	//
  4151  	//    * CPUUnderprovisioned — The instance’s CPU configuration doesn't meet
  4152  	//    the performance requirements of your workload and there is an alternative
  4153  	//    instance type that provides better CPU performance. This is identified
  4154  	//    by analyzing the CPUUtilization metric of the current instance during
  4155  	//    the look-back period.
  4156  	//
  4157  	//    * MemoryOverprovisioned — The instance’s memory configuration can
  4158  	//    be sized down while still meeting the performance requirements of your
  4159  	//    workload. This is identified by analyzing the memory utilization metric
  4160  	//    of the current instance during the look-back period.
  4161  	//
  4162  	//    * MemoryUnderprovisioned — The instance’s memory configuration doesn't
  4163  	//    meet the performance requirements of your workload and there is an alternative
  4164  	//    instance type that provides better memory performance. This is identified
  4165  	//    by analyzing the memory utilization metric of the current instance during
  4166  	//    the look-back period. Memory utilization is analyzed only for resources
  4167  	//    that have the unified CloudWatch agent installed on them. For more information,
  4168  	//    see Enabling memory utilization with the Amazon CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent)
  4169  	//    in the Compute Optimizer User Guide. On Linux instances, Compute Optimizer
  4170  	//    analyses the mem_used_percent metric in the CWAgent namespace, or the
  4171  	//    legacy MemoryUtilization metric in the System/Linux namespace. On Windows
  4172  	//    instances, Compute Optimizer analyses the Memory % Committed Bytes In
  4173  	//    Use metric in the CWAgent namespace.
  4174  	//
  4175  	//    * EBSThroughputOverprovisioned — The instance’s EBS throughput configuration
  4176  	//    can be sized down while still meeting the performance requirements of
  4177  	//    your workload. This is identified by analyzing the VolumeReadOps and VolumeWriteOps
  4178  	//    metrics of EBS volumes attached to the current instance during the look-back
  4179  	//    period.
  4180  	//
  4181  	//    * EBSThroughputUnderprovisioned — The instance’s EBS throughput configuration
  4182  	//    doesn't meet the performance requirements of your workload and there is
  4183  	//    an alternative instance type that provides better EBS throughput performance.
  4184  	//    This is identified by analyzing the VolumeReadOps and VolumeWriteOps metrics
  4185  	//    of EBS volumes attached to the current instance during the look-back period.
  4186  	//
  4187  	//    * EBSIOPSOverprovisioned — The instance’s EBS IOPS configuration can
  4188  	//    be sized down while still meeting the performance requirements of your
  4189  	//    workload. This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes
  4190  	//    metric of EBS volumes attached to the current instance during the look-back
  4191  	//    period.
  4192  	//
  4193  	//    * EBSIOPSUnderprovisioned — The instance’s EBS IOPS configuration
  4194  	//    doesn't meet the performance requirements of your workload and there is
  4195  	//    an alternative instance type that provides better EBS IOPS performance.
  4196  	//    This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes
  4197  	//    metric of EBS volumes attached to the current instance during the look-back
  4198  	//    period.
  4199  	//
  4200  	//    * NetworkBandwidthOverprovisioned — The instance’s network bandwidth
  4201  	//    configuration can be sized down while still meeting the performance requirements
  4202  	//    of your workload. This is identified by analyzing the NetworkIn and NetworkOut
  4203  	//    metrics of the current instance during the look-back period.
  4204  	//
  4205  	//    * NetworkBandwidthUnderprovisioned — The instance’s network bandwidth
  4206  	//    configuration doesn't meet the performance requirements of your workload
  4207  	//    and there is an alternative instance type that provides better network
  4208  	//    bandwidth performance. This is identified by analyzing the NetworkIn and
  4209  	//    NetworkOut metrics of the current instance during the look-back period.
  4210  	//    This finding reason happens when the NetworkIn or NetworkOut performance
  4211  	//    of an instance is impacted.
  4212  	//
  4213  	//    * NetworkPPSOverprovisioned — The instance’s network PPS (packets
  4214  	//    per second) configuration can be sized down while still meeting the performance
  4215  	//    requirements of your workload. This is identified by analyzing the NetworkPacketsIn
  4216  	//    and NetworkPacketsIn metrics of the current instance during the look-back
  4217  	//    period.
  4218  	//
  4219  	//    * NetworkPPSUnderprovisioned — The instance’s network PPS (packets
  4220  	//    per second) configuration doesn't meet the performance requirements of
  4221  	//    your workload and there is an alternative instance type that provides
  4222  	//    better network PPS performance. This is identified by analyzing the NetworkPacketsIn
  4223  	//    and NetworkPacketsIn metrics of the current instance during the look-back
  4224  	//    period.
  4225  	//
  4226  	//    * DiskIOPSOverprovisioned — The instance’s disk IOPS configuration
  4227  	//    can be sized down while still meeting the performance requirements of
  4228  	//    your workload. This is identified by analyzing the DiskReadOps and DiskWriteOps
  4229  	//    metrics of the current instance during the look-back period.
  4230  	//
  4231  	//    * DiskIOPSUnderprovisioned — The instance’s disk IOPS configuration
  4232  	//    doesn't meet the performance requirements of your workload and there is
  4233  	//    an alternative instance type that provides better disk IOPS performance.
  4234  	//    This is identified by analyzing the DiskReadOps and DiskWriteOps metrics
  4235  	//    of the current instance during the look-back period.
  4236  	//
  4237  	//    * DiskThroughputOverprovisioned — The instance’s disk throughput configuration
  4238  	//    can be sized down while still meeting the performance requirements of
  4239  	//    your workload. This is identified by analyzing the DiskReadBytes and DiskWriteBytes
  4240  	//    metrics of the current instance during the look-back period.
  4241  	//
  4242  	//    * DiskThroughputUnderprovisioned — The instance’s disk throughput
  4243  	//    configuration doesn't meet the performance requirements of your workload
  4244  	//    and there is an alternative instance type that provides better disk throughput
  4245  	//    performance. This is identified by analyzing the DiskReadBytes and DiskWriteBytes
  4246  	//    metrics of the current instance during the look-back period.
  4247  	//
  4248  	// For more information about instance metrics, see List the available CloudWatch
  4249  	// metrics for your instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html)
  4250  	// in the Amazon Elastic Compute Cloud User Guide. For more information about
  4251  	// EBS volume metrics, see Amazon CloudWatch metrics for Amazon EBS (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cloudwatch_ebs.html)
  4252  	// in the Amazon Elastic Compute Cloud User Guide.
  4253  	FindingReasonCodes []*string `locationName:"findingReasonCodes" type:"list"`
  4254  
  4255  	// The Amazon Resource Name (ARN) of the current instance.
  4256  	InstanceArn *string `locationName:"instanceArn" type:"string"`
  4257  
  4258  	// The name of the current instance.
  4259  	InstanceName *string `locationName:"instanceName" type:"string"`
  4260  
  4261  	// The timestamp of when the instance recommendation was last refreshed.
  4262  	LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"`
  4263  
  4264  	// The number of days for which utilization metrics were analyzed for the instance.
  4265  	LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"`
  4266  
  4267  	// An array of objects that describe the recommendation options for the instance.
  4268  	RecommendationOptions []*InstanceRecommendationOption `locationName:"recommendationOptions" type:"list"`
  4269  
  4270  	// An array of objects that describe the source resource of the recommendation.
  4271  	RecommendationSources []*RecommendationSource `locationName:"recommendationSources" type:"list"`
  4272  
  4273  	// An array of objects that describe the utilization metrics of the instance.
  4274  	UtilizationMetrics []*UtilizationMetric `locationName:"utilizationMetrics" type:"list"`
  4275  }
  4276  
  4277  // String returns the string representation.
  4278  //
  4279  // API parameter values that are decorated as "sensitive" in the API will not
  4280  // be included in the string output. The member name will be present, but the
  4281  // value will be replaced with "sensitive".
  4282  func (s InstanceRecommendation) String() string {
  4283  	return awsutil.Prettify(s)
  4284  }
  4285  
  4286  // GoString returns the string representation.
  4287  //
  4288  // API parameter values that are decorated as "sensitive" in the API will not
  4289  // be included in the string output. The member name will be present, but the
  4290  // value will be replaced with "sensitive".
  4291  func (s InstanceRecommendation) GoString() string {
  4292  	return s.String()
  4293  }
  4294  
  4295  // SetAccountId sets the AccountId field's value.
  4296  func (s *InstanceRecommendation) SetAccountId(v string) *InstanceRecommendation {
  4297  	s.AccountId = &v
  4298  	return s
  4299  }
  4300  
  4301  // SetCurrentInstanceType sets the CurrentInstanceType field's value.
  4302  func (s *InstanceRecommendation) SetCurrentInstanceType(v string) *InstanceRecommendation {
  4303  	s.CurrentInstanceType = &v
  4304  	return s
  4305  }
  4306  
  4307  // SetFinding sets the Finding field's value.
  4308  func (s *InstanceRecommendation) SetFinding(v string) *InstanceRecommendation {
  4309  	s.Finding = &v
  4310  	return s
  4311  }
  4312  
  4313  // SetFindingReasonCodes sets the FindingReasonCodes field's value.
  4314  func (s *InstanceRecommendation) SetFindingReasonCodes(v []*string) *InstanceRecommendation {
  4315  	s.FindingReasonCodes = v
  4316  	return s
  4317  }
  4318  
  4319  // SetInstanceArn sets the InstanceArn field's value.
  4320  func (s *InstanceRecommendation) SetInstanceArn(v string) *InstanceRecommendation {
  4321  	s.InstanceArn = &v
  4322  	return s
  4323  }
  4324  
  4325  // SetInstanceName sets the InstanceName field's value.
  4326  func (s *InstanceRecommendation) SetInstanceName(v string) *InstanceRecommendation {
  4327  	s.InstanceName = &v
  4328  	return s
  4329  }
  4330  
  4331  // SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value.
  4332  func (s *InstanceRecommendation) SetLastRefreshTimestamp(v time.Time) *InstanceRecommendation {
  4333  	s.LastRefreshTimestamp = &v
  4334  	return s
  4335  }
  4336  
  4337  // SetLookBackPeriodInDays sets the LookBackPeriodInDays field's value.
  4338  func (s *InstanceRecommendation) SetLookBackPeriodInDays(v float64) *InstanceRecommendation {
  4339  	s.LookBackPeriodInDays = &v
  4340  	return s
  4341  }
  4342  
  4343  // SetRecommendationOptions sets the RecommendationOptions field's value.
  4344  func (s *InstanceRecommendation) SetRecommendationOptions(v []*InstanceRecommendationOption) *InstanceRecommendation {
  4345  	s.RecommendationOptions = v
  4346  	return s
  4347  }
  4348  
  4349  // SetRecommendationSources sets the RecommendationSources field's value.
  4350  func (s *InstanceRecommendation) SetRecommendationSources(v []*RecommendationSource) *InstanceRecommendation {
  4351  	s.RecommendationSources = v
  4352  	return s
  4353  }
  4354  
  4355  // SetUtilizationMetrics sets the UtilizationMetrics field's value.
  4356  func (s *InstanceRecommendation) SetUtilizationMetrics(v []*UtilizationMetric) *InstanceRecommendation {
  4357  	s.UtilizationMetrics = v
  4358  	return s
  4359  }
  4360  
  4361  // Describes a recommendation option for an Amazon EC2 instance.
  4362  type InstanceRecommendationOption struct {
  4363  	_ struct{} `type:"structure"`
  4364  
  4365  	// The instance type of the instance recommendation.
  4366  	InstanceType *string `locationName:"instanceType" type:"string"`
  4367  
  4368  	// The performance risk of the instance recommendation option.
  4369  	//
  4370  	// Performance risk indicates the likelihood of the recommended instance type
  4371  	// not meeting the resource needs of your workload. Compute Optimizer calculates
  4372  	// an individual performance risk score for each specification of the recommended
  4373  	// instance, including CPU, memory, EBS throughput, EBS IOPS, disk throughput,
  4374  	// disk IOPS, network throughput, and network PPS. The performance risk of the
  4375  	// recommended instance is calculated as the maximum performance risk score
  4376  	// across the analyzed resource specifications.
  4377  	//
  4378  	// The value ranges from 0 - 4, with 0 meaning that the recommended resource
  4379  	// is predicted to always provide enough hardware capability. The higher the
  4380  	// performance risk is, the more likely you should validate whether the recommendation
  4381  	// will meet the performance requirements of your workload before migrating
  4382  	// your resource.
  4383  	PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"`
  4384  
  4385  	// Describes the configuration differences between the current instance and
  4386  	// the recommended instance type. You should consider the configuration differences
  4387  	// before migrating your workloads from the current instance to the recommended
  4388  	// instance type. The Change the instance type guide for Linux (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html)
  4389  	// and Change the instance type guide for Windows (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-resize.html)
  4390  	// provide general guidance for getting started with an instance migration.
  4391  	//
  4392  	// Platform differences include:
  4393  	//
  4394  	//    * Hypervisor — The hypervisor of the recommended instance type is different
  4395  	//    than that of the current instance. For example, the recommended instance
  4396  	//    type uses a Nitro hypervisor and the current instance uses a Xen hypervisor.
  4397  	//    The differences that you should consider between these hypervisors are
  4398  	//    covered in the Nitro Hypervisor (http://aws.amazon.com/ec2/faqs/#Nitro_Hypervisor)
  4399  	//    section of the Amazon EC2 frequently asked questions. For more information,
  4400  	//    see Instances built on the Nitro System (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)
  4401  	//    in the Amazon EC2 User Guide for Linux, or Instances built on the Nitro
  4402  	//    System (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#ec2-nitro-instances)
  4403  	//    in the Amazon EC2 User Guide for Windows.
  4404  	//
  4405  	//    * NetworkInterface — The network interface of the recommended instance
  4406  	//    type is different than that of the current instance. For example, the
  4407  	//    recommended instance type supports enhanced networking and the current
  4408  	//    instance might not. To enable enhanced networking for the recommended
  4409  	//    instance type, you must install the Elastic Network Adapter (ENA) driver
  4410  	//    or the Intel 82599 Virtual Function driver. For more information, see
  4411  	//    Networking and storage features (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage)
  4412  	//    and Enhanced networking on Linux (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html)
  4413  	//    in the Amazon EC2 User Guide for Linux, or Networking and storage features
  4414  	//    (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage)
  4415  	//    and Enhanced networking on Windows (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html)
  4416  	//    in the Amazon EC2 User Guide for Windows.
  4417  	//
  4418  	//    * StorageInterface — The storage interface of the recommended instance
  4419  	//    type is different than that of the current instance. For example, the
  4420  	//    recommended instance type uses an NVMe storage interface and the current
  4421  	//    instance does not. To access NVMe volumes for the recommended instance
  4422  	//    type, you will need to install or upgrade the NVMe driver. For more information,
  4423  	//    see Networking and storage features (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage)
  4424  	//    and Amazon EBS and NVMe on Linux instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html)
  4425  	//    in the Amazon EC2 User Guide for Linux, or Networking and storage features
  4426  	//    (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage)
  4427  	//    and Amazon EBS and NVMe on Windows instances (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/nvme-ebs-volumes.html)
  4428  	//    in the Amazon EC2 User Guide for Windows.
  4429  	//
  4430  	//    * InstanceStoreAvailability — The recommended instance type does not
  4431  	//    support instance store volumes and the current instance does. Before migrating,
  4432  	//    you might need to back up the data on your instance store volumes if you
  4433  	//    want to preserve them. For more information, see How do I back up an instance
  4434  	//    store volume on my Amazon EC2 instance to Amazon EBS? (https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/)
  4435  	//    in the Amazon Web Services Premium Support Knowledge Base. For more information,
  4436  	//    see Networking and storage features (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage)
  4437  	//    and Amazon EC2 instance store (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)
  4438  	//    in the Amazon EC2 User Guide for Linux, or see Networking and storage
  4439  	//    features (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage)
  4440  	//    and Amazon EC2 instance store (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/InstanceStorage.html)
  4441  	//    in the Amazon EC2 User Guide for Windows.
  4442  	//
  4443  	//    * VirtualizationType — The recommended instance type uses the hardware
  4444  	//    virtual machine (HVM) virtualization type and the current instance uses
  4445  	//    the paravirtual (PV) virtualization type. For more information about the
  4446  	//    differences between these virtualization types, see Linux AMI virtualization
  4447  	//    types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)
  4448  	//    in the Amazon EC2 User Guide for Linux, or Windows AMI virtualization
  4449  	//    types (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/windows-ami-version-history.html#virtualization-types)
  4450  	//    in the Amazon EC2 User Guide for Windows.
  4451  	//
  4452  	//    * Architecture — The CPU architecture between the recommended instance
  4453  	//    type and the current instance is different. For example, the recommended
  4454  	//    instance type might use an Arm CPU architecture and the current instance
  4455  	//    type might use a different one, such as x86. Before migrating, you should
  4456  	//    consider recompiling the software on your instance for the new architecture.
  4457  	//    Alternatively, you might switch to an Amazon Machine Image (AMI) that
  4458  	//    supports the new architecture. For more information about the CPU architecture
  4459  	//    for each instance type, see Amazon EC2 Instance Types (http://aws.amazon.com/ec2/instance-types/).
  4460  	PlatformDifferences []*string `locationName:"platformDifferences" type:"list"`
  4461  
  4462  	// An array of objects that describe the projected utilization metrics of the
  4463  	// instance recommendation option.
  4464  	//
  4465  	// The Cpu and Memory metrics are the only projected utilization metrics returned.
  4466  	// Additionally, the Memory metric is returned only for resources that have
  4467  	// the unified CloudWatch agent installed on them. For more information, see
  4468  	// Enabling Memory Utilization with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
  4469  	ProjectedUtilizationMetrics []*UtilizationMetric `locationName:"projectedUtilizationMetrics" type:"list"`
  4470  
  4471  	// The rank of the instance recommendation option.
  4472  	//
  4473  	// The top recommendation option is ranked as 1.
  4474  	Rank *int64 `locationName:"rank" type:"integer"`
  4475  }
  4476  
  4477  // String returns the string representation.
  4478  //
  4479  // API parameter values that are decorated as "sensitive" in the API will not
  4480  // be included in the string output. The member name will be present, but the
  4481  // value will be replaced with "sensitive".
  4482  func (s InstanceRecommendationOption) String() string {
  4483  	return awsutil.Prettify(s)
  4484  }
  4485  
  4486  // GoString returns the string representation.
  4487  //
  4488  // API parameter values that are decorated as "sensitive" in the API will not
  4489  // be included in the string output. The member name will be present, but the
  4490  // value will be replaced with "sensitive".
  4491  func (s InstanceRecommendationOption) GoString() string {
  4492  	return s.String()
  4493  }
  4494  
  4495  // SetInstanceType sets the InstanceType field's value.
  4496  func (s *InstanceRecommendationOption) SetInstanceType(v string) *InstanceRecommendationOption {
  4497  	s.InstanceType = &v
  4498  	return s
  4499  }
  4500  
  4501  // SetPerformanceRisk sets the PerformanceRisk field's value.
  4502  func (s *InstanceRecommendationOption) SetPerformanceRisk(v float64) *InstanceRecommendationOption {
  4503  	s.PerformanceRisk = &v
  4504  	return s
  4505  }
  4506  
  4507  // SetPlatformDifferences sets the PlatformDifferences field's value.
  4508  func (s *InstanceRecommendationOption) SetPlatformDifferences(v []*string) *InstanceRecommendationOption {
  4509  	s.PlatformDifferences = v
  4510  	return s
  4511  }
  4512  
  4513  // SetProjectedUtilizationMetrics sets the ProjectedUtilizationMetrics field's value.
  4514  func (s *InstanceRecommendationOption) SetProjectedUtilizationMetrics(v []*UtilizationMetric) *InstanceRecommendationOption {
  4515  	s.ProjectedUtilizationMetrics = v
  4516  	return s
  4517  }
  4518  
  4519  // SetRank sets the Rank field's value.
  4520  func (s *InstanceRecommendationOption) SetRank(v int64) *InstanceRecommendationOption {
  4521  	s.Rank = &v
  4522  	return s
  4523  }
  4524  
  4525  // An internal error has occurred. Try your call again.
  4526  type InternalServerException struct {
  4527  	_            struct{}                  `type:"structure"`
  4528  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4529  
  4530  	Message_ *string `locationName:"message" type:"string"`
  4531  }
  4532  
  4533  // String returns the string representation.
  4534  //
  4535  // API parameter values that are decorated as "sensitive" in the API will not
  4536  // be included in the string output. The member name will be present, but the
  4537  // value will be replaced with "sensitive".
  4538  func (s InternalServerException) String() string {
  4539  	return awsutil.Prettify(s)
  4540  }
  4541  
  4542  // GoString returns the string representation.
  4543  //
  4544  // API parameter values that are decorated as "sensitive" in the API will not
  4545  // be included in the string output. The member name will be present, but the
  4546  // value will be replaced with "sensitive".
  4547  func (s InternalServerException) GoString() string {
  4548  	return s.String()
  4549  }
  4550  
  4551  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
  4552  	return &InternalServerException{
  4553  		RespMetadata: v,
  4554  	}
  4555  }
  4556  
  4557  // Code returns the exception type name.
  4558  func (s *InternalServerException) Code() string {
  4559  	return "InternalServerException"
  4560  }
  4561  
  4562  // Message returns the exception's message.
  4563  func (s *InternalServerException) Message() string {
  4564  	if s.Message_ != nil {
  4565  		return *s.Message_
  4566  	}
  4567  	return ""
  4568  }
  4569  
  4570  // OrigErr always returns nil, satisfies awserr.Error interface.
  4571  func (s *InternalServerException) OrigErr() error {
  4572  	return nil
  4573  }
  4574  
  4575  func (s *InternalServerException) Error() string {
  4576  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4577  }
  4578  
  4579  // Status code returns the HTTP status code for the request's response error.
  4580  func (s *InternalServerException) StatusCode() int {
  4581  	return s.RespMetadata.StatusCode
  4582  }
  4583  
  4584  // RequestID returns the service's response RequestID for request.
  4585  func (s *InternalServerException) RequestID() string {
  4586  	return s.RespMetadata.RequestID
  4587  }
  4588  
  4589  // The value supplied for the input parameter is out of range or not valid.
  4590  type InvalidParameterValueException struct {
  4591  	_            struct{}                  `type:"structure"`
  4592  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4593  
  4594  	Message_ *string `locationName:"message" type:"string"`
  4595  }
  4596  
  4597  // String returns the string representation.
  4598  //
  4599  // API parameter values that are decorated as "sensitive" in the API will not
  4600  // be included in the string output. The member name will be present, but the
  4601  // value will be replaced with "sensitive".
  4602  func (s InvalidParameterValueException) String() string {
  4603  	return awsutil.Prettify(s)
  4604  }
  4605  
  4606  // GoString returns the string representation.
  4607  //
  4608  // API parameter values that are decorated as "sensitive" in the API will not
  4609  // be included in the string output. The member name will be present, but the
  4610  // value will be replaced with "sensitive".
  4611  func (s InvalidParameterValueException) GoString() string {
  4612  	return s.String()
  4613  }
  4614  
  4615  func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
  4616  	return &InvalidParameterValueException{
  4617  		RespMetadata: v,
  4618  	}
  4619  }
  4620  
  4621  // Code returns the exception type name.
  4622  func (s *InvalidParameterValueException) Code() string {
  4623  	return "InvalidParameterValueException"
  4624  }
  4625  
  4626  // Message returns the exception's message.
  4627  func (s *InvalidParameterValueException) Message() string {
  4628  	if s.Message_ != nil {
  4629  		return *s.Message_
  4630  	}
  4631  	return ""
  4632  }
  4633  
  4634  // OrigErr always returns nil, satisfies awserr.Error interface.
  4635  func (s *InvalidParameterValueException) OrigErr() error {
  4636  	return nil
  4637  }
  4638  
  4639  func (s *InvalidParameterValueException) Error() string {
  4640  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4641  }
  4642  
  4643  // Status code returns the HTTP status code for the request's response error.
  4644  func (s *InvalidParameterValueException) StatusCode() int {
  4645  	return s.RespMetadata.StatusCode
  4646  }
  4647  
  4648  // RequestID returns the service's response RequestID for request.
  4649  func (s *InvalidParameterValueException) RequestID() string {
  4650  	return s.RespMetadata.RequestID
  4651  }
  4652  
  4653  // Describes a filter that returns a more specific list of recommendation export
  4654  // jobs. Use this filter with the DescribeRecommendationExportJobs action.
  4655  //
  4656  // You can use EBSFilter with the GetEBSVolumeRecommendations action, LambdaFunctionRecommendationFilter
  4657  // with the GetLambdaFunctionRecommendations action, and Filter with the GetAutoScalingGroupRecommendations
  4658  // and GetEC2InstanceRecommendations actions.
  4659  type JobFilter struct {
  4660  	_ struct{} `type:"structure"`
  4661  
  4662  	// The name of the filter.
  4663  	//
  4664  	// Specify ResourceType to return export jobs of a specific resource type (for
  4665  	// example, Ec2Instance).
  4666  	//
  4667  	// Specify JobStatus to return export jobs with a specific status (e.g, Complete).
  4668  	Name *string `locationName:"name" type:"string" enum:"JobFilterName"`
  4669  
  4670  	// The value of the filter.
  4671  	//
  4672  	// The valid values for this parameter are as follows, depending on what you
  4673  	// specify for the name parameter:
  4674  	//
  4675  	//    * Specify Ec2Instance or AutoScalingGroup if you specify the name parameter
  4676  	//    as ResourceType. There is no filter for EBS volumes because volume recommendations
  4677  	//    cannot be exported at this time.
  4678  	//
  4679  	//    * Specify Queued, InProgress, Complete, or Failed if you specify the name
  4680  	//    parameter as JobStatus.
  4681  	Values []*string `locationName:"values" type:"list"`
  4682  }
  4683  
  4684  // String returns the string representation.
  4685  //
  4686  // API parameter values that are decorated as "sensitive" in the API will not
  4687  // be included in the string output. The member name will be present, but the
  4688  // value will be replaced with "sensitive".
  4689  func (s JobFilter) String() string {
  4690  	return awsutil.Prettify(s)
  4691  }
  4692  
  4693  // GoString returns the string representation.
  4694  //
  4695  // API parameter values that are decorated as "sensitive" in the API will not
  4696  // be included in the string output. The member name will be present, but the
  4697  // value will be replaced with "sensitive".
  4698  func (s JobFilter) GoString() string {
  4699  	return s.String()
  4700  }
  4701  
  4702  // SetName sets the Name field's value.
  4703  func (s *JobFilter) SetName(v string) *JobFilter {
  4704  	s.Name = &v
  4705  	return s
  4706  }
  4707  
  4708  // SetValues sets the Values field's value.
  4709  func (s *JobFilter) SetValues(v []*string) *JobFilter {
  4710  	s.Values = v
  4711  	return s
  4712  }
  4713  
  4714  // Describes a projected utilization metric of an Lambda function recommendation
  4715  // option.
  4716  type LambdaFunctionMemoryProjectedMetric struct {
  4717  	_ struct{} `type:"structure"`
  4718  
  4719  	// The name of the projected utilization metric.
  4720  	Name *string `locationName:"name" type:"string" enum:"LambdaFunctionMemoryMetricName"`
  4721  
  4722  	// The statistic of the projected utilization metric.
  4723  	Statistic *string `locationName:"statistic" type:"string" enum:"LambdaFunctionMemoryMetricStatistic"`
  4724  
  4725  	// The values of the projected utilization metrics.
  4726  	Value *float64 `locationName:"value" type:"double"`
  4727  }
  4728  
  4729  // String returns the string representation.
  4730  //
  4731  // API parameter values that are decorated as "sensitive" in the API will not
  4732  // be included in the string output. The member name will be present, but the
  4733  // value will be replaced with "sensitive".
  4734  func (s LambdaFunctionMemoryProjectedMetric) String() string {
  4735  	return awsutil.Prettify(s)
  4736  }
  4737  
  4738  // GoString returns the string representation.
  4739  //
  4740  // API parameter values that are decorated as "sensitive" in the API will not
  4741  // be included in the string output. The member name will be present, but the
  4742  // value will be replaced with "sensitive".
  4743  func (s LambdaFunctionMemoryProjectedMetric) GoString() string {
  4744  	return s.String()
  4745  }
  4746  
  4747  // SetName sets the Name field's value.
  4748  func (s *LambdaFunctionMemoryProjectedMetric) SetName(v string) *LambdaFunctionMemoryProjectedMetric {
  4749  	s.Name = &v
  4750  	return s
  4751  }
  4752  
  4753  // SetStatistic sets the Statistic field's value.
  4754  func (s *LambdaFunctionMemoryProjectedMetric) SetStatistic(v string) *LambdaFunctionMemoryProjectedMetric {
  4755  	s.Statistic = &v
  4756  	return s
  4757  }
  4758  
  4759  // SetValue sets the Value field's value.
  4760  func (s *LambdaFunctionMemoryProjectedMetric) SetValue(v float64) *LambdaFunctionMemoryProjectedMetric {
  4761  	s.Value = &v
  4762  	return s
  4763  }
  4764  
  4765  // Describes a recommendation option for an Lambda function.
  4766  type LambdaFunctionMemoryRecommendationOption struct {
  4767  	_ struct{} `type:"structure"`
  4768  
  4769  	// The memory size, in MB, of the function recommendation option.
  4770  	MemorySize *int64 `locationName:"memorySize" type:"integer"`
  4771  
  4772  	// An array of objects that describe the projected utilization metrics of the
  4773  	// function recommendation option.
  4774  	ProjectedUtilizationMetrics []*LambdaFunctionMemoryProjectedMetric `locationName:"projectedUtilizationMetrics" type:"list"`
  4775  
  4776  	// The rank of the function recommendation option.
  4777  	//
  4778  	// The top recommendation option is ranked as 1.
  4779  	Rank *int64 `locationName:"rank" type:"integer"`
  4780  }
  4781  
  4782  // String returns the string representation.
  4783  //
  4784  // API parameter values that are decorated as "sensitive" in the API will not
  4785  // be included in the string output. The member name will be present, but the
  4786  // value will be replaced with "sensitive".
  4787  func (s LambdaFunctionMemoryRecommendationOption) String() string {
  4788  	return awsutil.Prettify(s)
  4789  }
  4790  
  4791  // GoString returns the string representation.
  4792  //
  4793  // API parameter values that are decorated as "sensitive" in the API will not
  4794  // be included in the string output. The member name will be present, but the
  4795  // value will be replaced with "sensitive".
  4796  func (s LambdaFunctionMemoryRecommendationOption) GoString() string {
  4797  	return s.String()
  4798  }
  4799  
  4800  // SetMemorySize sets the MemorySize field's value.
  4801  func (s *LambdaFunctionMemoryRecommendationOption) SetMemorySize(v int64) *LambdaFunctionMemoryRecommendationOption {
  4802  	s.MemorySize = &v
  4803  	return s
  4804  }
  4805  
  4806  // SetProjectedUtilizationMetrics sets the ProjectedUtilizationMetrics field's value.
  4807  func (s *LambdaFunctionMemoryRecommendationOption) SetProjectedUtilizationMetrics(v []*LambdaFunctionMemoryProjectedMetric) *LambdaFunctionMemoryRecommendationOption {
  4808  	s.ProjectedUtilizationMetrics = v
  4809  	return s
  4810  }
  4811  
  4812  // SetRank sets the Rank field's value.
  4813  func (s *LambdaFunctionMemoryRecommendationOption) SetRank(v int64) *LambdaFunctionMemoryRecommendationOption {
  4814  	s.Rank = &v
  4815  	return s
  4816  }
  4817  
  4818  // Describes an Lambda function recommendation.
  4819  type LambdaFunctionRecommendation struct {
  4820  	_ struct{} `type:"structure"`
  4821  
  4822  	// The Amazon Web Services account ID of the function.
  4823  	AccountId *string `locationName:"accountId" type:"string"`
  4824  
  4825  	// The amount of memory, in MB, that's allocated to the current function.
  4826  	CurrentMemorySize *int64 `locationName:"currentMemorySize" type:"integer"`
  4827  
  4828  	// The finding classification of the function.
  4829  	//
  4830  	// Findings for functions include:
  4831  	//
  4832  	//    * Optimized — The function is correctly provisioned to run your workload
  4833  	//    based on its current configuration and its utilization history. This finding
  4834  	//    classification does not include finding reason codes.
  4835  	//
  4836  	//    * NotOptimized — The function is performing at a higher level (over-provisioned)
  4837  	//    or at a lower level (under-provisioned) than required for your workload
  4838  	//    because its current configuration is not optimal. Over-provisioned resources
  4839  	//    might lead to unnecessary infrastructure cost, and under-provisioned resources
  4840  	//    might lead to poor application performance. This finding classification
  4841  	//    can include the MemoryUnderprovisioned and MemoryUnderprovisioned finding
  4842  	//    reason codes.
  4843  	//
  4844  	//    * Unavailable — Compute Optimizer was unable to generate a recommendation
  4845  	//    for the function. This could be because the function has not accumulated
  4846  	//    sufficient metric data, or the function does not qualify for a recommendation.
  4847  	//    This finding classification can include the InsufficientData and Inconclusive
  4848  	//    finding reason codes. Functions with a finding of unavailable are not
  4849  	//    returned unless you specify the filter parameter with a value of Unavailable
  4850  	//    in your GetLambdaFunctionRecommendations request.
  4851  	Finding *string `locationName:"finding" type:"string" enum:"LambdaFunctionRecommendationFinding"`
  4852  
  4853  	// The reason for the finding classification of the function.
  4854  	//
  4855  	// Functions that have a finding classification of Optimized don't have a finding
  4856  	// reason code.
  4857  	//
  4858  	// Finding reason codes for functions include:
  4859  	//
  4860  	//    * MemoryOverprovisioned — The function is over-provisioned when its
  4861  	//    memory configuration can be sized down while still meeting the performance
  4862  	//    requirements of your workload. An over-provisioned function might lead
  4863  	//    to unnecessary infrastructure cost. This finding reason code is part of
  4864  	//    the NotOptimized finding classification.
  4865  	//
  4866  	//    * MemoryUnderprovisioned — The function is under-provisioned when its
  4867  	//    memory configuration doesn't meet the performance requirements of the
  4868  	//    workload. An under-provisioned function might lead to poor application
  4869  	//    performance. This finding reason code is part of the NotOptimized finding
  4870  	//    classification.
  4871  	//
  4872  	//    * InsufficientData — The function does not have sufficient metric data
  4873  	//    for Compute Optimizer to generate a recommendation. For more information,
  4874  	//    see the Supported resources and requirements (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html)
  4875  	//    in the Compute Optimizer User Guide. This finding reason code is part
  4876  	//    of the Unavailable finding classification.
  4877  	//
  4878  	//    * Inconclusive — The function does not qualify for a recommendation
  4879  	//    because Compute Optimizer cannot generate a recommendation with a high
  4880  	//    degree of confidence. This finding reason code is part of the Unavailable
  4881  	//    finding classification.
  4882  	FindingReasonCodes []*string `locationName:"findingReasonCodes" type:"list"`
  4883  
  4884  	// The Amazon Resource Name (ARN) of the current function.
  4885  	FunctionArn *string `locationName:"functionArn" type:"string"`
  4886  
  4887  	// The version number of the current function.
  4888  	FunctionVersion *string `locationName:"functionVersion" type:"string"`
  4889  
  4890  	// The timestamp of when the function recommendation was last refreshed.
  4891  	LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"`
  4892  
  4893  	// The number of days for which utilization metrics were analyzed for the function.
  4894  	LookbackPeriodInDays *float64 `locationName:"lookbackPeriodInDays" type:"double"`
  4895  
  4896  	// An array of objects that describe the memory configuration recommendation
  4897  	// options for the function.
  4898  	MemorySizeRecommendationOptions []*LambdaFunctionMemoryRecommendationOption `locationName:"memorySizeRecommendationOptions" type:"list"`
  4899  
  4900  	// The number of times your function code was applied during the look-back period.
  4901  	NumberOfInvocations *int64 `locationName:"numberOfInvocations" type:"long"`
  4902  
  4903  	// An array of objects that describe the utilization metrics of the function.
  4904  	UtilizationMetrics []*LambdaFunctionUtilizationMetric `locationName:"utilizationMetrics" type:"list"`
  4905  }
  4906  
  4907  // String returns the string representation.
  4908  //
  4909  // API parameter values that are decorated as "sensitive" in the API will not
  4910  // be included in the string output. The member name will be present, but the
  4911  // value will be replaced with "sensitive".
  4912  func (s LambdaFunctionRecommendation) String() string {
  4913  	return awsutil.Prettify(s)
  4914  }
  4915  
  4916  // GoString returns the string representation.
  4917  //
  4918  // API parameter values that are decorated as "sensitive" in the API will not
  4919  // be included in the string output. The member name will be present, but the
  4920  // value will be replaced with "sensitive".
  4921  func (s LambdaFunctionRecommendation) GoString() string {
  4922  	return s.String()
  4923  }
  4924  
  4925  // SetAccountId sets the AccountId field's value.
  4926  func (s *LambdaFunctionRecommendation) SetAccountId(v string) *LambdaFunctionRecommendation {
  4927  	s.AccountId = &v
  4928  	return s
  4929  }
  4930  
  4931  // SetCurrentMemorySize sets the CurrentMemorySize field's value.
  4932  func (s *LambdaFunctionRecommendation) SetCurrentMemorySize(v int64) *LambdaFunctionRecommendation {
  4933  	s.CurrentMemorySize = &v
  4934  	return s
  4935  }
  4936  
  4937  // SetFinding sets the Finding field's value.
  4938  func (s *LambdaFunctionRecommendation) SetFinding(v string) *LambdaFunctionRecommendation {
  4939  	s.Finding = &v
  4940  	return s
  4941  }
  4942  
  4943  // SetFindingReasonCodes sets the FindingReasonCodes field's value.
  4944  func (s *LambdaFunctionRecommendation) SetFindingReasonCodes(v []*string) *LambdaFunctionRecommendation {
  4945  	s.FindingReasonCodes = v
  4946  	return s
  4947  }
  4948  
  4949  // SetFunctionArn sets the FunctionArn field's value.
  4950  func (s *LambdaFunctionRecommendation) SetFunctionArn(v string) *LambdaFunctionRecommendation {
  4951  	s.FunctionArn = &v
  4952  	return s
  4953  }
  4954  
  4955  // SetFunctionVersion sets the FunctionVersion field's value.
  4956  func (s *LambdaFunctionRecommendation) SetFunctionVersion(v string) *LambdaFunctionRecommendation {
  4957  	s.FunctionVersion = &v
  4958  	return s
  4959  }
  4960  
  4961  // SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value.
  4962  func (s *LambdaFunctionRecommendation) SetLastRefreshTimestamp(v time.Time) *LambdaFunctionRecommendation {
  4963  	s.LastRefreshTimestamp = &v
  4964  	return s
  4965  }
  4966  
  4967  // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value.
  4968  func (s *LambdaFunctionRecommendation) SetLookbackPeriodInDays(v float64) *LambdaFunctionRecommendation {
  4969  	s.LookbackPeriodInDays = &v
  4970  	return s
  4971  }
  4972  
  4973  // SetMemorySizeRecommendationOptions sets the MemorySizeRecommendationOptions field's value.
  4974  func (s *LambdaFunctionRecommendation) SetMemorySizeRecommendationOptions(v []*LambdaFunctionMemoryRecommendationOption) *LambdaFunctionRecommendation {
  4975  	s.MemorySizeRecommendationOptions = v
  4976  	return s
  4977  }
  4978  
  4979  // SetNumberOfInvocations sets the NumberOfInvocations field's value.
  4980  func (s *LambdaFunctionRecommendation) SetNumberOfInvocations(v int64) *LambdaFunctionRecommendation {
  4981  	s.NumberOfInvocations = &v
  4982  	return s
  4983  }
  4984  
  4985  // SetUtilizationMetrics sets the UtilizationMetrics field's value.
  4986  func (s *LambdaFunctionRecommendation) SetUtilizationMetrics(v []*LambdaFunctionUtilizationMetric) *LambdaFunctionRecommendation {
  4987  	s.UtilizationMetrics = v
  4988  	return s
  4989  }
  4990  
  4991  // Describes a filter that returns a more specific list of Lambda function recommendations.
  4992  // Use this filter with the GetLambdaFunctionRecommendations action.
  4993  //
  4994  // You can use EBSFilter with the GetEBSVolumeRecommendations action, JobFilter
  4995  // with the DescribeRecommendationExportJobs action, and Filter with the GetAutoScalingGroupRecommendations
  4996  // and GetEC2InstanceRecommendations actions.
  4997  type LambdaFunctionRecommendationFilter struct {
  4998  	_ struct{} `type:"structure"`
  4999  
  5000  	// The name of the filter.
  5001  	//
  5002  	// Specify Finding to return recommendations with a specific finding classification
  5003  	// (for example, NotOptimized).
  5004  	//
  5005  	// Specify FindingReasonCode to return recommendations with a specific finding
  5006  	// reason code (for example, MemoryUnderprovisioned).
  5007  	Name *string `locationName:"name" type:"string" enum:"LambdaFunctionRecommendationFilterName"`
  5008  
  5009  	// The value of the filter.
  5010  	//
  5011  	// The valid values for this parameter are as follows, depending on what you
  5012  	// specify for the name parameter:
  5013  	//
  5014  	//    * Specify Optimized, NotOptimized, or Unavailable if you specify the name
  5015  	//    parameter as Finding.
  5016  	//
  5017  	//    * Specify MemoryOverprovisioned, MemoryUnderprovisioned, InsufficientData,
  5018  	//    or Inconclusive if you specify the name parameter as FindingReasonCode.
  5019  	Values []*string `locationName:"values" type:"list"`
  5020  }
  5021  
  5022  // String returns the string representation.
  5023  //
  5024  // API parameter values that are decorated as "sensitive" in the API will not
  5025  // be included in the string output. The member name will be present, but the
  5026  // value will be replaced with "sensitive".
  5027  func (s LambdaFunctionRecommendationFilter) String() string {
  5028  	return awsutil.Prettify(s)
  5029  }
  5030  
  5031  // GoString returns the string representation.
  5032  //
  5033  // API parameter values that are decorated as "sensitive" in the API will not
  5034  // be included in the string output. The member name will be present, but the
  5035  // value will be replaced with "sensitive".
  5036  func (s LambdaFunctionRecommendationFilter) GoString() string {
  5037  	return s.String()
  5038  }
  5039  
  5040  // SetName sets the Name field's value.
  5041  func (s *LambdaFunctionRecommendationFilter) SetName(v string) *LambdaFunctionRecommendationFilter {
  5042  	s.Name = &v
  5043  	return s
  5044  }
  5045  
  5046  // SetValues sets the Values field's value.
  5047  func (s *LambdaFunctionRecommendationFilter) SetValues(v []*string) *LambdaFunctionRecommendationFilter {
  5048  	s.Values = v
  5049  	return s
  5050  }
  5051  
  5052  // Describes a utilization metric of an Lambda function.
  5053  type LambdaFunctionUtilizationMetric struct {
  5054  	_ struct{} `type:"structure"`
  5055  
  5056  	// The name of the utilization metric.
  5057  	//
  5058  	// The following utilization metrics are available:
  5059  	//
  5060  	//    * Duration - The amount of time that your function code spends processing
  5061  	//    an event.
  5062  	//
  5063  	//    * Memory - The amount of memory used per invocation.
  5064  	Name *string `locationName:"name" type:"string" enum:"LambdaFunctionMetricName"`
  5065  
  5066  	// The statistic of the utilization metric.
  5067  	//
  5068  	// The Compute Optimizer API, Command Line Interface (CLI), and SDKs return
  5069  	// utilization metrics using only the Maximum statistic, which is the highest
  5070  	// value observed during the specified period.
  5071  	//
  5072  	// The Compute Optimizer console displays graphs for some utilization metrics
  5073  	// using the Average statistic, which is the value of Sum / SampleCount during
  5074  	// the specified period. For more information, see Viewing resource recommendations
  5075  	// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html)
  5076  	// in the Compute Optimizer User Guide. You can also get averaged utilization
  5077  	// metric data for your resources using Amazon CloudWatch. For more information,
  5078  	// see the Amazon CloudWatch User Guide (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html).
  5079  	Statistic *string `locationName:"statistic" type:"string" enum:"LambdaFunctionMetricStatistic"`
  5080  
  5081  	// The value of the utilization metric.
  5082  	Value *float64 `locationName:"value" type:"double"`
  5083  }
  5084  
  5085  // String returns the string representation.
  5086  //
  5087  // API parameter values that are decorated as "sensitive" in the API will not
  5088  // be included in the string output. The member name will be present, but the
  5089  // value will be replaced with "sensitive".
  5090  func (s LambdaFunctionUtilizationMetric) String() string {
  5091  	return awsutil.Prettify(s)
  5092  }
  5093  
  5094  // GoString returns the string representation.
  5095  //
  5096  // API parameter values that are decorated as "sensitive" in the API will not
  5097  // be included in the string output. The member name will be present, but the
  5098  // value will be replaced with "sensitive".
  5099  func (s LambdaFunctionUtilizationMetric) GoString() string {
  5100  	return s.String()
  5101  }
  5102  
  5103  // SetName sets the Name field's value.
  5104  func (s *LambdaFunctionUtilizationMetric) SetName(v string) *LambdaFunctionUtilizationMetric {
  5105  	s.Name = &v
  5106  	return s
  5107  }
  5108  
  5109  // SetStatistic sets the Statistic field's value.
  5110  func (s *LambdaFunctionUtilizationMetric) SetStatistic(v string) *LambdaFunctionUtilizationMetric {
  5111  	s.Statistic = &v
  5112  	return s
  5113  }
  5114  
  5115  // SetValue sets the Value field's value.
  5116  func (s *LambdaFunctionUtilizationMetric) SetValue(v float64) *LambdaFunctionUtilizationMetric {
  5117  	s.Value = &v
  5118  	return s
  5119  }
  5120  
  5121  // The request exceeds a limit of the service.
  5122  type LimitExceededException struct {
  5123  	_            struct{}                  `type:"structure"`
  5124  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5125  
  5126  	Message_ *string `locationName:"message" type:"string"`
  5127  }
  5128  
  5129  // String returns the string representation.
  5130  //
  5131  // API parameter values that are decorated as "sensitive" in the API will not
  5132  // be included in the string output. The member name will be present, but the
  5133  // value will be replaced with "sensitive".
  5134  func (s LimitExceededException) String() string {
  5135  	return awsutil.Prettify(s)
  5136  }
  5137  
  5138  // GoString returns the string representation.
  5139  //
  5140  // API parameter values that are decorated as "sensitive" in the API will not
  5141  // be included in the string output. The member name will be present, but the
  5142  // value will be replaced with "sensitive".
  5143  func (s LimitExceededException) GoString() string {
  5144  	return s.String()
  5145  }
  5146  
  5147  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  5148  	return &LimitExceededException{
  5149  		RespMetadata: v,
  5150  	}
  5151  }
  5152  
  5153  // Code returns the exception type name.
  5154  func (s *LimitExceededException) Code() string {
  5155  	return "LimitExceededException"
  5156  }
  5157  
  5158  // Message returns the exception's message.
  5159  func (s *LimitExceededException) Message() string {
  5160  	if s.Message_ != nil {
  5161  		return *s.Message_
  5162  	}
  5163  	return ""
  5164  }
  5165  
  5166  // OrigErr always returns nil, satisfies awserr.Error interface.
  5167  func (s *LimitExceededException) OrigErr() error {
  5168  	return nil
  5169  }
  5170  
  5171  func (s *LimitExceededException) Error() string {
  5172  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5173  }
  5174  
  5175  // Status code returns the HTTP status code for the request's response error.
  5176  func (s *LimitExceededException) StatusCode() int {
  5177  	return s.RespMetadata.StatusCode
  5178  }
  5179  
  5180  // RequestID returns the service's response RequestID for request.
  5181  func (s *LimitExceededException) RequestID() string {
  5182  	return s.RespMetadata.RequestID
  5183  }
  5184  
  5185  // The request must contain either a valid (registered) Amazon Web Services
  5186  // access key ID or X.509 certificate.
  5187  type MissingAuthenticationToken struct {
  5188  	_            struct{}                  `type:"structure"`
  5189  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5190  
  5191  	Message_ *string `locationName:"message" type:"string"`
  5192  }
  5193  
  5194  // String returns the string representation.
  5195  //
  5196  // API parameter values that are decorated as "sensitive" in the API will not
  5197  // be included in the string output. The member name will be present, but the
  5198  // value will be replaced with "sensitive".
  5199  func (s MissingAuthenticationToken) String() string {
  5200  	return awsutil.Prettify(s)
  5201  }
  5202  
  5203  // GoString returns the string representation.
  5204  //
  5205  // API parameter values that are decorated as "sensitive" in the API will not
  5206  // be included in the string output. The member name will be present, but the
  5207  // value will be replaced with "sensitive".
  5208  func (s MissingAuthenticationToken) GoString() string {
  5209  	return s.String()
  5210  }
  5211  
  5212  func newErrorMissingAuthenticationToken(v protocol.ResponseMetadata) error {
  5213  	return &MissingAuthenticationToken{
  5214  		RespMetadata: v,
  5215  	}
  5216  }
  5217  
  5218  // Code returns the exception type name.
  5219  func (s *MissingAuthenticationToken) Code() string {
  5220  	return "MissingAuthenticationToken"
  5221  }
  5222  
  5223  // Message returns the exception's message.
  5224  func (s *MissingAuthenticationToken) Message() string {
  5225  	if s.Message_ != nil {
  5226  		return *s.Message_
  5227  	}
  5228  	return ""
  5229  }
  5230  
  5231  // OrigErr always returns nil, satisfies awserr.Error interface.
  5232  func (s *MissingAuthenticationToken) OrigErr() error {
  5233  	return nil
  5234  }
  5235  
  5236  func (s *MissingAuthenticationToken) Error() string {
  5237  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5238  }
  5239  
  5240  // Status code returns the HTTP status code for the request's response error.
  5241  func (s *MissingAuthenticationToken) StatusCode() int {
  5242  	return s.RespMetadata.StatusCode
  5243  }
  5244  
  5245  // RequestID returns the service's response RequestID for request.
  5246  func (s *MissingAuthenticationToken) RequestID() string {
  5247  	return s.RespMetadata.RequestID
  5248  }
  5249  
  5250  // The account is not opted in to Compute Optimizer.
  5251  type OptInRequiredException struct {
  5252  	_            struct{}                  `type:"structure"`
  5253  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5254  
  5255  	Message_ *string `locationName:"message" type:"string"`
  5256  }
  5257  
  5258  // String returns the string representation.
  5259  //
  5260  // API parameter values that are decorated as "sensitive" in the API will not
  5261  // be included in the string output. The member name will be present, but the
  5262  // value will be replaced with "sensitive".
  5263  func (s OptInRequiredException) String() string {
  5264  	return awsutil.Prettify(s)
  5265  }
  5266  
  5267  // GoString returns the string representation.
  5268  //
  5269  // API parameter values that are decorated as "sensitive" in the API will not
  5270  // be included in the string output. The member name will be present, but the
  5271  // value will be replaced with "sensitive".
  5272  func (s OptInRequiredException) GoString() string {
  5273  	return s.String()
  5274  }
  5275  
  5276  func newErrorOptInRequiredException(v protocol.ResponseMetadata) error {
  5277  	return &OptInRequiredException{
  5278  		RespMetadata: v,
  5279  	}
  5280  }
  5281  
  5282  // Code returns the exception type name.
  5283  func (s *OptInRequiredException) Code() string {
  5284  	return "OptInRequiredException"
  5285  }
  5286  
  5287  // Message returns the exception's message.
  5288  func (s *OptInRequiredException) Message() string {
  5289  	if s.Message_ != nil {
  5290  		return *s.Message_
  5291  	}
  5292  	return ""
  5293  }
  5294  
  5295  // OrigErr always returns nil, satisfies awserr.Error interface.
  5296  func (s *OptInRequiredException) OrigErr() error {
  5297  	return nil
  5298  }
  5299  
  5300  func (s *OptInRequiredException) Error() string {
  5301  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5302  }
  5303  
  5304  // Status code returns the HTTP status code for the request's response error.
  5305  func (s *OptInRequiredException) StatusCode() int {
  5306  	return s.RespMetadata.StatusCode
  5307  }
  5308  
  5309  // RequestID returns the service's response RequestID for request.
  5310  func (s *OptInRequiredException) RequestID() string {
  5311  	return s.RespMetadata.RequestID
  5312  }
  5313  
  5314  // Describes a projected utilization metric of a recommendation option, such
  5315  // as an Amazon EC2 instance. This represents the projected utilization of a
  5316  // recommendation option had you used that resource during the analyzed period.
  5317  //
  5318  // Compare the utilization metric data of your resource against its projected
  5319  // utilization metric data to determine the performance difference between your
  5320  // current resource and the recommended option.
  5321  //
  5322  // The Cpu and Memory metrics are the only projected utilization metrics returned
  5323  // when you run the GetEC2RecommendationProjectedMetrics action. Additionally,
  5324  // the Memory metric is returned only for resources that have the unified CloudWatch
  5325  // agent installed on them. For more information, see Enabling Memory Utilization
  5326  // with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
  5327  type ProjectedMetric struct {
  5328  	_ struct{} `type:"structure"`
  5329  
  5330  	// The name of the projected utilization metric.
  5331  	//
  5332  	// The following projected utilization metrics are returned:
  5333  	//
  5334  	//    * Cpu - The projected percentage of allocated EC2 compute units that would
  5335  	//    be in use on the recommendation option had you used that resource during
  5336  	//    the analyzed period. This metric identifies the processing power required
  5337  	//    to run an application on the recommendation option. Depending on the instance
  5338  	//    type, tools in your operating system can show a lower percentage than
  5339  	//    CloudWatch when the instance is not allocated a full processor core. Units:
  5340  	//    Percent
  5341  	//
  5342  	//    * Memory - The percentage of memory that would be in use on the recommendation
  5343  	//    option had you used that resource during the analyzed period. This metric
  5344  	//    identifies the amount of memory required to run an application on the
  5345  	//    recommendation option. Units: Percent The Memory metric is returned only
  5346  	//    for resources that have the unified CloudWatch agent installed on them.
  5347  	//    For more information, see Enabling Memory Utilization with the CloudWatch
  5348  	//    Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
  5349  	Name *string `locationName:"name" type:"string" enum:"MetricName"`
  5350  
  5351  	// The timestamps of the projected utilization metric.
  5352  	Timestamps []*time.Time `locationName:"timestamps" type:"list"`
  5353  
  5354  	// The values of the projected utilization metrics.
  5355  	Values []*float64 `locationName:"values" type:"list"`
  5356  }
  5357  
  5358  // String returns the string representation.
  5359  //
  5360  // API parameter values that are decorated as "sensitive" in the API will not
  5361  // be included in the string output. The member name will be present, but the
  5362  // value will be replaced with "sensitive".
  5363  func (s ProjectedMetric) String() string {
  5364  	return awsutil.Prettify(s)
  5365  }
  5366  
  5367  // GoString returns the string representation.
  5368  //
  5369  // API parameter values that are decorated as "sensitive" in the API will not
  5370  // be included in the string output. The member name will be present, but the
  5371  // value will be replaced with "sensitive".
  5372  func (s ProjectedMetric) GoString() string {
  5373  	return s.String()
  5374  }
  5375  
  5376  // SetName sets the Name field's value.
  5377  func (s *ProjectedMetric) SetName(v string) *ProjectedMetric {
  5378  	s.Name = &v
  5379  	return s
  5380  }
  5381  
  5382  // SetTimestamps sets the Timestamps field's value.
  5383  func (s *ProjectedMetric) SetTimestamps(v []*time.Time) *ProjectedMetric {
  5384  	s.Timestamps = v
  5385  	return s
  5386  }
  5387  
  5388  // SetValues sets the Values field's value.
  5389  func (s *ProjectedMetric) SetValues(v []*float64) *ProjectedMetric {
  5390  	s.Values = v
  5391  	return s
  5392  }
  5393  
  5394  // A summary of a finding reason code.
  5395  type ReasonCodeSummary struct {
  5396  	_ struct{} `type:"structure"`
  5397  
  5398  	// The name of the finding reason code.
  5399  	Name *string `locationName:"name" type:"string" enum:"FindingReasonCode"`
  5400  
  5401  	// The value of the finding reason code summary.
  5402  	Value *float64 `locationName:"value" type:"double"`
  5403  }
  5404  
  5405  // String returns the string representation.
  5406  //
  5407  // API parameter values that are decorated as "sensitive" in the API will not
  5408  // be included in the string output. The member name will be present, but the
  5409  // value will be replaced with "sensitive".
  5410  func (s ReasonCodeSummary) String() string {
  5411  	return awsutil.Prettify(s)
  5412  }
  5413  
  5414  // GoString returns the string representation.
  5415  //
  5416  // API parameter values that are decorated as "sensitive" in the API will not
  5417  // be included in the string output. The member name will be present, but the
  5418  // value will be replaced with "sensitive".
  5419  func (s ReasonCodeSummary) GoString() string {
  5420  	return s.String()
  5421  }
  5422  
  5423  // SetName sets the Name field's value.
  5424  func (s *ReasonCodeSummary) SetName(v string) *ReasonCodeSummary {
  5425  	s.Name = &v
  5426  	return s
  5427  }
  5428  
  5429  // SetValue sets the Value field's value.
  5430  func (s *ReasonCodeSummary) SetValue(v float64) *ReasonCodeSummary {
  5431  	s.Value = &v
  5432  	return s
  5433  }
  5434  
  5435  // Describes a recommendation export job.
  5436  //
  5437  // Use the DescribeRecommendationExportJobs action to view your recommendation
  5438  // export jobs.
  5439  //
  5440  // Use the ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations
  5441  // actions to request an export of your recommendations.
  5442  type RecommendationExportJob struct {
  5443  	_ struct{} `type:"structure"`
  5444  
  5445  	// The timestamp of when the export job was created.
  5446  	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
  5447  
  5448  	// An object that describes the destination of the export file.
  5449  	Destination *ExportDestination `locationName:"destination" type:"structure"`
  5450  
  5451  	// The reason for an export job failure.
  5452  	FailureReason *string `locationName:"failureReason" type:"string"`
  5453  
  5454  	// The identification number of the export job.
  5455  	JobId *string `locationName:"jobId" type:"string"`
  5456  
  5457  	// The timestamp of when the export job was last updated.
  5458  	LastUpdatedTimestamp *time.Time `locationName:"lastUpdatedTimestamp" type:"timestamp"`
  5459  
  5460  	// The resource type of the exported recommendations.
  5461  	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
  5462  
  5463  	// The status of the export job.
  5464  	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
  5465  }
  5466  
  5467  // String returns the string representation.
  5468  //
  5469  // API parameter values that are decorated as "sensitive" in the API will not
  5470  // be included in the string output. The member name will be present, but the
  5471  // value will be replaced with "sensitive".
  5472  func (s RecommendationExportJob) String() string {
  5473  	return awsutil.Prettify(s)
  5474  }
  5475  
  5476  // GoString returns the string representation.
  5477  //
  5478  // API parameter values that are decorated as "sensitive" in the API will not
  5479  // be included in the string output. The member name will be present, but the
  5480  // value will be replaced with "sensitive".
  5481  func (s RecommendationExportJob) GoString() string {
  5482  	return s.String()
  5483  }
  5484  
  5485  // SetCreationTimestamp sets the CreationTimestamp field's value.
  5486  func (s *RecommendationExportJob) SetCreationTimestamp(v time.Time) *RecommendationExportJob {
  5487  	s.CreationTimestamp = &v
  5488  	return s
  5489  }
  5490  
  5491  // SetDestination sets the Destination field's value.
  5492  func (s *RecommendationExportJob) SetDestination(v *ExportDestination) *RecommendationExportJob {
  5493  	s.Destination = v
  5494  	return s
  5495  }
  5496  
  5497  // SetFailureReason sets the FailureReason field's value.
  5498  func (s *RecommendationExportJob) SetFailureReason(v string) *RecommendationExportJob {
  5499  	s.FailureReason = &v
  5500  	return s
  5501  }
  5502  
  5503  // SetJobId sets the JobId field's value.
  5504  func (s *RecommendationExportJob) SetJobId(v string) *RecommendationExportJob {
  5505  	s.JobId = &v
  5506  	return s
  5507  }
  5508  
  5509  // SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
  5510  func (s *RecommendationExportJob) SetLastUpdatedTimestamp(v time.Time) *RecommendationExportJob {
  5511  	s.LastUpdatedTimestamp = &v
  5512  	return s
  5513  }
  5514  
  5515  // SetResourceType sets the ResourceType field's value.
  5516  func (s *RecommendationExportJob) SetResourceType(v string) *RecommendationExportJob {
  5517  	s.ResourceType = &v
  5518  	return s
  5519  }
  5520  
  5521  // SetStatus sets the Status field's value.
  5522  func (s *RecommendationExportJob) SetStatus(v string) *RecommendationExportJob {
  5523  	s.Status = &v
  5524  	return s
  5525  }
  5526  
  5527  // Describes preferences for recommendations.
  5528  type RecommendationPreferences struct {
  5529  	_ struct{} `type:"structure"`
  5530  
  5531  	// Specifies the CPU vendor and architecture for Amazon EC2 instance and Auto
  5532  	// Scaling group recommendations.
  5533  	//
  5534  	// For example, when you specify AWS_ARM64 with:
  5535  	//
  5536  	//    * A GetEC2InstanceRecommendations or GetAutoScalingGroupRecommendations
  5537  	//    request, Compute Optimizer returns recommendations that consist of Graviton2
  5538  	//    instance types only.
  5539  	//
  5540  	//    * A GetEC2RecommendationProjectedMetrics request, Compute Optimizer returns
  5541  	//    projected utilization metrics for Graviton2 instance type recommendations
  5542  	//    only.
  5543  	//
  5544  	//    * A ExportEC2InstanceRecommendations or ExportAutoScalingGroupRecommendations
  5545  	//    request, Compute Optimizer exports recommendations that consist of Graviton2
  5546  	//    instance types only.
  5547  	CpuVendorArchitectures []*string `locationName:"cpuVendorArchitectures" type:"list"`
  5548  }
  5549  
  5550  // String returns the string representation.
  5551  //
  5552  // API parameter values that are decorated as "sensitive" in the API will not
  5553  // be included in the string output. The member name will be present, but the
  5554  // value will be replaced with "sensitive".
  5555  func (s RecommendationPreferences) String() string {
  5556  	return awsutil.Prettify(s)
  5557  }
  5558  
  5559  // GoString returns the string representation.
  5560  //
  5561  // API parameter values that are decorated as "sensitive" in the API will not
  5562  // be included in the string output. The member name will be present, but the
  5563  // value will be replaced with "sensitive".
  5564  func (s RecommendationPreferences) GoString() string {
  5565  	return s.String()
  5566  }
  5567  
  5568  // SetCpuVendorArchitectures sets the CpuVendorArchitectures field's value.
  5569  func (s *RecommendationPreferences) SetCpuVendorArchitectures(v []*string) *RecommendationPreferences {
  5570  	s.CpuVendorArchitectures = v
  5571  	return s
  5572  }
  5573  
  5574  // Describes the source of a recommendation, such as an Amazon EC2 instance
  5575  // or Auto Scaling group.
  5576  type RecommendationSource struct {
  5577  	_ struct{} `type:"structure"`
  5578  
  5579  	// The Amazon Resource Name (ARN) of the recommendation source.
  5580  	RecommendationSourceArn *string `locationName:"recommendationSourceArn" type:"string"`
  5581  
  5582  	// The resource type of the recommendation source.
  5583  	RecommendationSourceType *string `locationName:"recommendationSourceType" type:"string" enum:"RecommendationSourceType"`
  5584  }
  5585  
  5586  // String returns the string representation.
  5587  //
  5588  // API parameter values that are decorated as "sensitive" in the API will not
  5589  // be included in the string output. The member name will be present, but the
  5590  // value will be replaced with "sensitive".
  5591  func (s RecommendationSource) String() string {
  5592  	return awsutil.Prettify(s)
  5593  }
  5594  
  5595  // GoString returns the string representation.
  5596  //
  5597  // API parameter values that are decorated as "sensitive" in the API will not
  5598  // be included in the string output. The member name will be present, but the
  5599  // value will be replaced with "sensitive".
  5600  func (s RecommendationSource) GoString() string {
  5601  	return s.String()
  5602  }
  5603  
  5604  // SetRecommendationSourceArn sets the RecommendationSourceArn field's value.
  5605  func (s *RecommendationSource) SetRecommendationSourceArn(v string) *RecommendationSource {
  5606  	s.RecommendationSourceArn = &v
  5607  	return s
  5608  }
  5609  
  5610  // SetRecommendationSourceType sets the RecommendationSourceType field's value.
  5611  func (s *RecommendationSource) SetRecommendationSourceType(v string) *RecommendationSource {
  5612  	s.RecommendationSourceType = &v
  5613  	return s
  5614  }
  5615  
  5616  // A summary of a recommendation.
  5617  type RecommendationSummary struct {
  5618  	_ struct{} `type:"structure"`
  5619  
  5620  	// The Amazon Web Services account ID of the recommendation summary.
  5621  	AccountId *string `locationName:"accountId" type:"string"`
  5622  
  5623  	// The resource type of the recommendation.
  5624  	RecommendationResourceType *string `locationName:"recommendationResourceType" type:"string" enum:"RecommendationSourceType"`
  5625  
  5626  	// An array of objects that describe a recommendation summary.
  5627  	Summaries []*Summary `locationName:"summaries" type:"list"`
  5628  }
  5629  
  5630  // String returns the string representation.
  5631  //
  5632  // API parameter values that are decorated as "sensitive" in the API will not
  5633  // be included in the string output. The member name will be present, but the
  5634  // value will be replaced with "sensitive".
  5635  func (s RecommendationSummary) String() string {
  5636  	return awsutil.Prettify(s)
  5637  }
  5638  
  5639  // GoString returns the string representation.
  5640  //
  5641  // API parameter values that are decorated as "sensitive" in the API will not
  5642  // be included in the string output. The member name will be present, but the
  5643  // value will be replaced with "sensitive".
  5644  func (s RecommendationSummary) GoString() string {
  5645  	return s.String()
  5646  }
  5647  
  5648  // SetAccountId sets the AccountId field's value.
  5649  func (s *RecommendationSummary) SetAccountId(v string) *RecommendationSummary {
  5650  	s.AccountId = &v
  5651  	return s
  5652  }
  5653  
  5654  // SetRecommendationResourceType sets the RecommendationResourceType field's value.
  5655  func (s *RecommendationSummary) SetRecommendationResourceType(v string) *RecommendationSummary {
  5656  	s.RecommendationResourceType = &v
  5657  	return s
  5658  }
  5659  
  5660  // SetSummaries sets the Summaries field's value.
  5661  func (s *RecommendationSummary) SetSummaries(v []*Summary) *RecommendationSummary {
  5662  	s.Summaries = v
  5663  	return s
  5664  }
  5665  
  5666  // Describes a projected utilization metric of a recommendation option.
  5667  //
  5668  // The Cpu and Memory metrics are the only projected utilization metrics returned
  5669  // when you run the GetEC2RecommendationProjectedMetrics action. Additionally,
  5670  // the Memory metric is returned only for resources that have the unified CloudWatch
  5671  // agent installed on them. For more information, see Enabling Memory Utilization
  5672  // with the CloudWatch Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
  5673  type RecommendedOptionProjectedMetric struct {
  5674  	_ struct{} `type:"structure"`
  5675  
  5676  	// An array of objects that describe a projected utilization metric.
  5677  	ProjectedMetrics []*ProjectedMetric `locationName:"projectedMetrics" type:"list"`
  5678  
  5679  	// The rank of the recommendation option projected metric.
  5680  	//
  5681  	// The top recommendation option is ranked as 1.
  5682  	//
  5683  	// The projected metric rank correlates to the recommendation option rank. For
  5684  	// example, the projected metric ranked as 1 is related to the recommendation
  5685  	// option that is also ranked as 1 in the same response.
  5686  	Rank *int64 `locationName:"rank" type:"integer"`
  5687  
  5688  	// The recommended instance type.
  5689  	RecommendedInstanceType *string `locationName:"recommendedInstanceType" type:"string"`
  5690  }
  5691  
  5692  // String returns the string representation.
  5693  //
  5694  // API parameter values that are decorated as "sensitive" in the API will not
  5695  // be included in the string output. The member name will be present, but the
  5696  // value will be replaced with "sensitive".
  5697  func (s RecommendedOptionProjectedMetric) String() string {
  5698  	return awsutil.Prettify(s)
  5699  }
  5700  
  5701  // GoString returns the string representation.
  5702  //
  5703  // API parameter values that are decorated as "sensitive" in the API will not
  5704  // be included in the string output. The member name will be present, but the
  5705  // value will be replaced with "sensitive".
  5706  func (s RecommendedOptionProjectedMetric) GoString() string {
  5707  	return s.String()
  5708  }
  5709  
  5710  // SetProjectedMetrics sets the ProjectedMetrics field's value.
  5711  func (s *RecommendedOptionProjectedMetric) SetProjectedMetrics(v []*ProjectedMetric) *RecommendedOptionProjectedMetric {
  5712  	s.ProjectedMetrics = v
  5713  	return s
  5714  }
  5715  
  5716  // SetRank sets the Rank field's value.
  5717  func (s *RecommendedOptionProjectedMetric) SetRank(v int64) *RecommendedOptionProjectedMetric {
  5718  	s.Rank = &v
  5719  	return s
  5720  }
  5721  
  5722  // SetRecommendedInstanceType sets the RecommendedInstanceType field's value.
  5723  func (s *RecommendedOptionProjectedMetric) SetRecommendedInstanceType(v string) *RecommendedOptionProjectedMetric {
  5724  	s.RecommendedInstanceType = &v
  5725  	return s
  5726  }
  5727  
  5728  // A resource that is required for the action doesn't exist.
  5729  type ResourceNotFoundException struct {
  5730  	_            struct{}                  `type:"structure"`
  5731  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5732  
  5733  	Message_ *string `locationName:"message" type:"string"`
  5734  }
  5735  
  5736  // String returns the string representation.
  5737  //
  5738  // API parameter values that are decorated as "sensitive" in the API will not
  5739  // be included in the string output. The member name will be present, but the
  5740  // value will be replaced with "sensitive".
  5741  func (s ResourceNotFoundException) String() string {
  5742  	return awsutil.Prettify(s)
  5743  }
  5744  
  5745  // GoString returns the string representation.
  5746  //
  5747  // API parameter values that are decorated as "sensitive" in the API will not
  5748  // be included in the string output. The member name will be present, but the
  5749  // value will be replaced with "sensitive".
  5750  func (s ResourceNotFoundException) GoString() string {
  5751  	return s.String()
  5752  }
  5753  
  5754  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  5755  	return &ResourceNotFoundException{
  5756  		RespMetadata: v,
  5757  	}
  5758  }
  5759  
  5760  // Code returns the exception type name.
  5761  func (s *ResourceNotFoundException) Code() string {
  5762  	return "ResourceNotFoundException"
  5763  }
  5764  
  5765  // Message returns the exception's message.
  5766  func (s *ResourceNotFoundException) Message() string {
  5767  	if s.Message_ != nil {
  5768  		return *s.Message_
  5769  	}
  5770  	return ""
  5771  }
  5772  
  5773  // OrigErr always returns nil, satisfies awserr.Error interface.
  5774  func (s *ResourceNotFoundException) OrigErr() error {
  5775  	return nil
  5776  }
  5777  
  5778  func (s *ResourceNotFoundException) Error() string {
  5779  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5780  }
  5781  
  5782  // Status code returns the HTTP status code for the request's response error.
  5783  func (s *ResourceNotFoundException) StatusCode() int {
  5784  	return s.RespMetadata.StatusCode
  5785  }
  5786  
  5787  // RequestID returns the service's response RequestID for request.
  5788  func (s *ResourceNotFoundException) RequestID() string {
  5789  	return s.RespMetadata.RequestID
  5790  }
  5791  
  5792  // Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
  5793  // name and object keys of a recommendations export file, and its associated
  5794  // metadata file.
  5795  type S3Destination struct {
  5796  	_ struct{} `type:"structure"`
  5797  
  5798  	// The name of the Amazon S3 bucket used as the destination of an export file.
  5799  	Bucket *string `locationName:"bucket" type:"string"`
  5800  
  5801  	// The Amazon S3 bucket key of an export file.
  5802  	//
  5803  	// The key uniquely identifies the object, or export file, in the S3 bucket.
  5804  	Key *string `locationName:"key" type:"string"`
  5805  
  5806  	// The Amazon S3 bucket key of a metadata file.
  5807  	//
  5808  	// The key uniquely identifies the object, or metadata file, in the S3 bucket.
  5809  	MetadataKey *string `locationName:"metadataKey" type:"string"`
  5810  }
  5811  
  5812  // String returns the string representation.
  5813  //
  5814  // API parameter values that are decorated as "sensitive" in the API will not
  5815  // be included in the string output. The member name will be present, but the
  5816  // value will be replaced with "sensitive".
  5817  func (s S3Destination) String() string {
  5818  	return awsutil.Prettify(s)
  5819  }
  5820  
  5821  // GoString returns the string representation.
  5822  //
  5823  // API parameter values that are decorated as "sensitive" in the API will not
  5824  // be included in the string output. The member name will be present, but the
  5825  // value will be replaced with "sensitive".
  5826  func (s S3Destination) GoString() string {
  5827  	return s.String()
  5828  }
  5829  
  5830  // SetBucket sets the Bucket field's value.
  5831  func (s *S3Destination) SetBucket(v string) *S3Destination {
  5832  	s.Bucket = &v
  5833  	return s
  5834  }
  5835  
  5836  // SetKey sets the Key field's value.
  5837  func (s *S3Destination) SetKey(v string) *S3Destination {
  5838  	s.Key = &v
  5839  	return s
  5840  }
  5841  
  5842  // SetMetadataKey sets the MetadataKey field's value.
  5843  func (s *S3Destination) SetMetadataKey(v string) *S3Destination {
  5844  	s.MetadataKey = &v
  5845  	return s
  5846  }
  5847  
  5848  // Describes the destination Amazon Simple Storage Service (Amazon S3) bucket
  5849  // name and key prefix for a recommendations export job.
  5850  //
  5851  // You must create the destination Amazon S3 bucket for your recommendations
  5852  // export before you create the export job. Compute Optimizer does not create
  5853  // the S3 bucket for you. After you create the S3 bucket, ensure that it has
  5854  // the required permission policy to allow Compute Optimizer to write the export
  5855  // file to it. If you plan to specify an object prefix when you create the export
  5856  // job, you must include the object prefix in the policy that you add to the
  5857  // S3 bucket. For more information, see Amazon S3 Bucket Policy for Compute
  5858  // Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html)
  5859  // in the Compute Optimizer User Guide.
  5860  type S3DestinationConfig struct {
  5861  	_ struct{} `type:"structure"`
  5862  
  5863  	// The name of the Amazon S3 bucket to use as the destination for an export
  5864  	// job.
  5865  	Bucket *string `locationName:"bucket" type:"string"`
  5866  
  5867  	// The Amazon S3 bucket prefix for an export job.
  5868  	KeyPrefix *string `locationName:"keyPrefix" type:"string"`
  5869  }
  5870  
  5871  // String returns the string representation.
  5872  //
  5873  // API parameter values that are decorated as "sensitive" in the API will not
  5874  // be included in the string output. The member name will be present, but the
  5875  // value will be replaced with "sensitive".
  5876  func (s S3DestinationConfig) String() string {
  5877  	return awsutil.Prettify(s)
  5878  }
  5879  
  5880  // GoString returns the string representation.
  5881  //
  5882  // API parameter values that are decorated as "sensitive" in the API will not
  5883  // be included in the string output. The member name will be present, but the
  5884  // value will be replaced with "sensitive".
  5885  func (s S3DestinationConfig) GoString() string {
  5886  	return s.String()
  5887  }
  5888  
  5889  // SetBucket sets the Bucket field's value.
  5890  func (s *S3DestinationConfig) SetBucket(v string) *S3DestinationConfig {
  5891  	s.Bucket = &v
  5892  	return s
  5893  }
  5894  
  5895  // SetKeyPrefix sets the KeyPrefix field's value.
  5896  func (s *S3DestinationConfig) SetKeyPrefix(v string) *S3DestinationConfig {
  5897  	s.KeyPrefix = &v
  5898  	return s
  5899  }
  5900  
  5901  // The request has failed due to a temporary failure of the server.
  5902  type ServiceUnavailableException struct {
  5903  	_            struct{}                  `type:"structure"`
  5904  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5905  
  5906  	Message_ *string `locationName:"message" type:"string"`
  5907  }
  5908  
  5909  // String returns the string representation.
  5910  //
  5911  // API parameter values that are decorated as "sensitive" in the API will not
  5912  // be included in the string output. The member name will be present, but the
  5913  // value will be replaced with "sensitive".
  5914  func (s ServiceUnavailableException) String() string {
  5915  	return awsutil.Prettify(s)
  5916  }
  5917  
  5918  // GoString returns the string representation.
  5919  //
  5920  // API parameter values that are decorated as "sensitive" in the API will not
  5921  // be included in the string output. The member name will be present, but the
  5922  // value will be replaced with "sensitive".
  5923  func (s ServiceUnavailableException) GoString() string {
  5924  	return s.String()
  5925  }
  5926  
  5927  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
  5928  	return &ServiceUnavailableException{
  5929  		RespMetadata: v,
  5930  	}
  5931  }
  5932  
  5933  // Code returns the exception type name.
  5934  func (s *ServiceUnavailableException) Code() string {
  5935  	return "ServiceUnavailableException"
  5936  }
  5937  
  5938  // Message returns the exception's message.
  5939  func (s *ServiceUnavailableException) Message() string {
  5940  	if s.Message_ != nil {
  5941  		return *s.Message_
  5942  	}
  5943  	return ""
  5944  }
  5945  
  5946  // OrigErr always returns nil, satisfies awserr.Error interface.
  5947  func (s *ServiceUnavailableException) OrigErr() error {
  5948  	return nil
  5949  }
  5950  
  5951  func (s *ServiceUnavailableException) Error() string {
  5952  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5953  }
  5954  
  5955  // Status code returns the HTTP status code for the request's response error.
  5956  func (s *ServiceUnavailableException) StatusCode() int {
  5957  	return s.RespMetadata.StatusCode
  5958  }
  5959  
  5960  // RequestID returns the service's response RequestID for request.
  5961  func (s *ServiceUnavailableException) RequestID() string {
  5962  	return s.RespMetadata.RequestID
  5963  }
  5964  
  5965  // The summary of a recommendation.
  5966  type Summary struct {
  5967  	_ struct{} `type:"structure"`
  5968  
  5969  	// The finding classification of the recommendation.
  5970  	Name *string `locationName:"name" type:"string" enum:"Finding"`
  5971  
  5972  	// An array of objects that summarize a finding reason code.
  5973  	ReasonCodeSummaries []*ReasonCodeSummary `locationName:"reasonCodeSummaries" type:"list"`
  5974  
  5975  	// The value of the recommendation summary.
  5976  	Value *float64 `locationName:"value" type:"double"`
  5977  }
  5978  
  5979  // String returns the string representation.
  5980  //
  5981  // API parameter values that are decorated as "sensitive" in the API will not
  5982  // be included in the string output. The member name will be present, but the
  5983  // value will be replaced with "sensitive".
  5984  func (s Summary) String() string {
  5985  	return awsutil.Prettify(s)
  5986  }
  5987  
  5988  // GoString returns the string representation.
  5989  //
  5990  // API parameter values that are decorated as "sensitive" in the API will not
  5991  // be included in the string output. The member name will be present, but the
  5992  // value will be replaced with "sensitive".
  5993  func (s Summary) GoString() string {
  5994  	return s.String()
  5995  }
  5996  
  5997  // SetName sets the Name field's value.
  5998  func (s *Summary) SetName(v string) *Summary {
  5999  	s.Name = &v
  6000  	return s
  6001  }
  6002  
  6003  // SetReasonCodeSummaries sets the ReasonCodeSummaries field's value.
  6004  func (s *Summary) SetReasonCodeSummaries(v []*ReasonCodeSummary) *Summary {
  6005  	s.ReasonCodeSummaries = v
  6006  	return s
  6007  }
  6008  
  6009  // SetValue sets the Value field's value.
  6010  func (s *Summary) SetValue(v float64) *Summary {
  6011  	s.Value = &v
  6012  	return s
  6013  }
  6014  
  6015  // The request was denied due to request throttling.
  6016  type ThrottlingException struct {
  6017  	_            struct{}                  `type:"structure"`
  6018  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6019  
  6020  	Message_ *string `locationName:"message" type:"string"`
  6021  }
  6022  
  6023  // String returns the string representation.
  6024  //
  6025  // API parameter values that are decorated as "sensitive" in the API will not
  6026  // be included in the string output. The member name will be present, but the
  6027  // value will be replaced with "sensitive".
  6028  func (s ThrottlingException) String() string {
  6029  	return awsutil.Prettify(s)
  6030  }
  6031  
  6032  // GoString returns the string representation.
  6033  //
  6034  // API parameter values that are decorated as "sensitive" in the API will not
  6035  // be included in the string output. The member name will be present, but the
  6036  // value will be replaced with "sensitive".
  6037  func (s ThrottlingException) GoString() string {
  6038  	return s.String()
  6039  }
  6040  
  6041  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
  6042  	return &ThrottlingException{
  6043  		RespMetadata: v,
  6044  	}
  6045  }
  6046  
  6047  // Code returns the exception type name.
  6048  func (s *ThrottlingException) Code() string {
  6049  	return "ThrottlingException"
  6050  }
  6051  
  6052  // Message returns the exception's message.
  6053  func (s *ThrottlingException) Message() string {
  6054  	if s.Message_ != nil {
  6055  		return *s.Message_
  6056  	}
  6057  	return ""
  6058  }
  6059  
  6060  // OrigErr always returns nil, satisfies awserr.Error interface.
  6061  func (s *ThrottlingException) OrigErr() error {
  6062  	return nil
  6063  }
  6064  
  6065  func (s *ThrottlingException) Error() string {
  6066  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6067  }
  6068  
  6069  // Status code returns the HTTP status code for the request's response error.
  6070  func (s *ThrottlingException) StatusCode() int {
  6071  	return s.RespMetadata.StatusCode
  6072  }
  6073  
  6074  // RequestID returns the service's response RequestID for request.
  6075  func (s *ThrottlingException) RequestID() string {
  6076  	return s.RespMetadata.RequestID
  6077  }
  6078  
  6079  type UpdateEnrollmentStatusInput struct {
  6080  	_ struct{} `type:"structure"`
  6081  
  6082  	// Indicates whether to enroll member accounts of the organization if the account
  6083  	// is the management account of an organization.
  6084  	IncludeMemberAccounts *bool `locationName:"includeMemberAccounts" type:"boolean"`
  6085  
  6086  	// The new enrollment status of the account.
  6087  	//
  6088  	// The following status options are available:
  6089  	//
  6090  	//    * Active - Opts in your account to the Compute Optimizer service. Compute
  6091  	//    Optimizer begins analyzing the configuration and utilization metrics of
  6092  	//    your Amazon Web Services resources after you opt in. For more information,
  6093  	//    see Metrics analyzed by Compute Optimizer (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html)
  6094  	//    in the Compute Optimizer User Guide.
  6095  	//
  6096  	//    * Inactive - Opts out your account from the Compute Optimizer service.
  6097  	//    Your account's recommendations and related metrics data will be deleted
  6098  	//    from Compute Optimizer after you opt out.
  6099  	//
  6100  	// The Pending and Failed options cannot be used to update the enrollment status
  6101  	// of an account. They are returned in the response of a request to update the
  6102  	// enrollment status of an account.
  6103  	//
  6104  	// Status is a required field
  6105  	Status *string `locationName:"status" type:"string" required:"true" enum:"Status"`
  6106  }
  6107  
  6108  // String returns the string representation.
  6109  //
  6110  // API parameter values that are decorated as "sensitive" in the API will not
  6111  // be included in the string output. The member name will be present, but the
  6112  // value will be replaced with "sensitive".
  6113  func (s UpdateEnrollmentStatusInput) String() string {
  6114  	return awsutil.Prettify(s)
  6115  }
  6116  
  6117  // GoString returns the string representation.
  6118  //
  6119  // API parameter values that are decorated as "sensitive" in the API will not
  6120  // be included in the string output. The member name will be present, but the
  6121  // value will be replaced with "sensitive".
  6122  func (s UpdateEnrollmentStatusInput) GoString() string {
  6123  	return s.String()
  6124  }
  6125  
  6126  // Validate inspects the fields of the type to determine if they are valid.
  6127  func (s *UpdateEnrollmentStatusInput) Validate() error {
  6128  	invalidParams := request.ErrInvalidParams{Context: "UpdateEnrollmentStatusInput"}
  6129  	if s.Status == nil {
  6130  		invalidParams.Add(request.NewErrParamRequired("Status"))
  6131  	}
  6132  
  6133  	if invalidParams.Len() > 0 {
  6134  		return invalidParams
  6135  	}
  6136  	return nil
  6137  }
  6138  
  6139  // SetIncludeMemberAccounts sets the IncludeMemberAccounts field's value.
  6140  func (s *UpdateEnrollmentStatusInput) SetIncludeMemberAccounts(v bool) *UpdateEnrollmentStatusInput {
  6141  	s.IncludeMemberAccounts = &v
  6142  	return s
  6143  }
  6144  
  6145  // SetStatus sets the Status field's value.
  6146  func (s *UpdateEnrollmentStatusInput) SetStatus(v string) *UpdateEnrollmentStatusInput {
  6147  	s.Status = &v
  6148  	return s
  6149  }
  6150  
  6151  type UpdateEnrollmentStatusOutput struct {
  6152  	_ struct{} `type:"structure"`
  6153  
  6154  	// The enrollment status of the account.
  6155  	Status *string `locationName:"status" type:"string" enum:"Status"`
  6156  
  6157  	// The reason for the enrollment status of the account. For example, an account
  6158  	// might show a status of Pending because member accounts of an organization
  6159  	// require more time to be enrolled in the service.
  6160  	StatusReason *string `locationName:"statusReason" type:"string"`
  6161  }
  6162  
  6163  // String returns the string representation.
  6164  //
  6165  // API parameter values that are decorated as "sensitive" in the API will not
  6166  // be included in the string output. The member name will be present, but the
  6167  // value will be replaced with "sensitive".
  6168  func (s UpdateEnrollmentStatusOutput) String() string {
  6169  	return awsutil.Prettify(s)
  6170  }
  6171  
  6172  // GoString returns the string representation.
  6173  //
  6174  // API parameter values that are decorated as "sensitive" in the API will not
  6175  // be included in the string output. The member name will be present, but the
  6176  // value will be replaced with "sensitive".
  6177  func (s UpdateEnrollmentStatusOutput) GoString() string {
  6178  	return s.String()
  6179  }
  6180  
  6181  // SetStatus sets the Status field's value.
  6182  func (s *UpdateEnrollmentStatusOutput) SetStatus(v string) *UpdateEnrollmentStatusOutput {
  6183  	s.Status = &v
  6184  	return s
  6185  }
  6186  
  6187  // SetStatusReason sets the StatusReason field's value.
  6188  func (s *UpdateEnrollmentStatusOutput) SetStatusReason(v string) *UpdateEnrollmentStatusOutput {
  6189  	s.StatusReason = &v
  6190  	return s
  6191  }
  6192  
  6193  // Describes a utilization metric of a resource, such as an Amazon EC2 instance.
  6194  //
  6195  // Compare the utilization metric data of your resource against its projected
  6196  // utilization metric data to determine the performance difference between your
  6197  // current resource and the recommended option.
  6198  type UtilizationMetric struct {
  6199  	_ struct{} `type:"structure"`
  6200  
  6201  	// The name of the utilization metric.
  6202  	//
  6203  	// The following utilization metrics are available:
  6204  	//
  6205  	//    * Cpu - The percentage of allocated EC2 compute units that are currently
  6206  	//    in use on the instance. This metric identifies the processing power required
  6207  	//    to run an application on the instance. Depending on the instance type,
  6208  	//    tools in your operating system can show a lower percentage than CloudWatch
  6209  	//    when the instance is not allocated a full processor core. Units: Percent
  6210  	//
  6211  	//    * Memory - The percentage of memory that is currently in use on the instance.
  6212  	//    This metric identifies the amount of memory required to run an application
  6213  	//    on the instance. Units: Percent The Memory metric is returned only for
  6214  	//    resources that have the unified CloudWatch agent installed on them. For
  6215  	//    more information, see Enabling Memory Utilization with the CloudWatch
  6216  	//    Agent (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent).
  6217  	//
  6218  	//    * EBS_READ_OPS_PER_SECOND - The completed read operations from all EBS
  6219  	//    volumes attached to the instance in a specified period of time. Unit:
  6220  	//    Count
  6221  	//
  6222  	//    * EBS_WRITE_OPS_PER_SECOND - The completed write operations to all EBS
  6223  	//    volumes attached to the instance in a specified period of time. Unit:
  6224  	//    Count
  6225  	//
  6226  	//    * EBS_READ_BYTES_PER_SECOND - The bytes read from all EBS volumes attached
  6227  	//    to the instance in a specified period of time. Unit: Bytes
  6228  	//
  6229  	//    * EBS_WRITE_BYTES_PER_SECOND - The bytes written to all EBS volumes attached
  6230  	//    to the instance in a specified period of time. Unit: Bytes
  6231  	//
  6232  	//    * DISK_READ_OPS_PER_SECOND - The completed read operations from all instance
  6233  	//    store volumes available to the instance in a specified period of time.
  6234  	//    If there are no instance store volumes, either the value is 0 or the metric
  6235  	//    is not reported.
  6236  	//
  6237  	//    * DISK_WRITE_OPS_PER_SECOND - The completed write operations from all
  6238  	//    instance store volumes available to the instance in a specified period
  6239  	//    of time. If there are no instance store volumes, either the value is 0
  6240  	//    or the metric is not reported.
  6241  	//
  6242  	//    * DISK_READ_BYTES_PER_SECOND - The bytes read from all instance store
  6243  	//    volumes available to the instance. This metric is used to determine the
  6244  	//    volume of the data the application reads from the disk of the instance.
  6245  	//    This can be used to determine the speed of the application. If there are
  6246  	//    no instance store volumes, either the value is 0 or the metric is not
  6247  	//    reported.
  6248  	//
  6249  	//    * DISK_WRITE_BYTES_PER_SECOND - The bytes written to all instance store
  6250  	//    volumes available to the instance. This metric is used to determine the
  6251  	//    volume of the data the application writes onto the disk of the instance.
  6252  	//    This can be used to determine the speed of the application. If there are
  6253  	//    no instance store volumes, either the value is 0 or the metric is not
  6254  	//    reported.
  6255  	//
  6256  	//    * NETWORK_IN_BYTES_PER_SECOND - The number of bytes received by the instance
  6257  	//    on all network interfaces. This metric identifies the volume of incoming
  6258  	//    network traffic to a single instance.
  6259  	//
  6260  	//    * NETWORK_OUT_BYTES_PER_SECOND - The number of bytes sent out by the instance
  6261  	//    on all network interfaces. This metric identifies the volume of outgoing
  6262  	//    network traffic from a single instance.
  6263  	//
  6264  	//    * NETWORK_PACKETS_IN_PER_SECOND - The number of packets received by the
  6265  	//    instance on all network interfaces. This metric identifies the volume
  6266  	//    of incoming traffic in terms of the number of packets on a single instance.
  6267  	//
  6268  	//    * NETWORK_PACKETS_OUT_PER_SECOND - The number of packets sent out by the
  6269  	//    instance on all network interfaces. This metric identifies the volume
  6270  	//    of outgoing traffic in terms of the number of packets on a single instance.
  6271  	Name *string `locationName:"name" type:"string" enum:"MetricName"`
  6272  
  6273  	// The statistic of the utilization metric.
  6274  	//
  6275  	// The Compute Optimizer API, Command Line Interface (CLI), and SDKs return
  6276  	// utilization metrics using only the Maximum statistic, which is the highest
  6277  	// value observed during the specified period.
  6278  	//
  6279  	// The Compute Optimizer console displays graphs for some utilization metrics
  6280  	// using the Average statistic, which is the value of Sum / SampleCount during
  6281  	// the specified period. For more information, see Viewing resource recommendations
  6282  	// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html)
  6283  	// in the Compute Optimizer User Guide. You can also get averaged utilization
  6284  	// metric data for your resources using Amazon CloudWatch. For more information,
  6285  	// see the Amazon CloudWatch User Guide (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html).
  6286  	Statistic *string `locationName:"statistic" type:"string" enum:"MetricStatistic"`
  6287  
  6288  	// The value of the utilization metric.
  6289  	Value *float64 `locationName:"value" type:"double"`
  6290  }
  6291  
  6292  // String returns the string representation.
  6293  //
  6294  // API parameter values that are decorated as "sensitive" in the API will not
  6295  // be included in the string output. The member name will be present, but the
  6296  // value will be replaced with "sensitive".
  6297  func (s UtilizationMetric) String() string {
  6298  	return awsutil.Prettify(s)
  6299  }
  6300  
  6301  // GoString returns the string representation.
  6302  //
  6303  // API parameter values that are decorated as "sensitive" in the API will not
  6304  // be included in the string output. The member name will be present, but the
  6305  // value will be replaced with "sensitive".
  6306  func (s UtilizationMetric) GoString() string {
  6307  	return s.String()
  6308  }
  6309  
  6310  // SetName sets the Name field's value.
  6311  func (s *UtilizationMetric) SetName(v string) *UtilizationMetric {
  6312  	s.Name = &v
  6313  	return s
  6314  }
  6315  
  6316  // SetStatistic sets the Statistic field's value.
  6317  func (s *UtilizationMetric) SetStatistic(v string) *UtilizationMetric {
  6318  	s.Statistic = &v
  6319  	return s
  6320  }
  6321  
  6322  // SetValue sets the Value field's value.
  6323  func (s *UtilizationMetric) SetValue(v float64) *UtilizationMetric {
  6324  	s.Value = &v
  6325  	return s
  6326  }
  6327  
  6328  // Describes the configuration of an Amazon Elastic Block Store (Amazon EBS)
  6329  // volume.
  6330  type VolumeConfiguration struct {
  6331  	_ struct{} `type:"structure"`
  6332  
  6333  	// The baseline IOPS of the volume.
  6334  	VolumeBaselineIOPS *int64 `locationName:"volumeBaselineIOPS" type:"integer"`
  6335  
  6336  	// The baseline throughput of the volume.
  6337  	VolumeBaselineThroughput *int64 `locationName:"volumeBaselineThroughput" type:"integer"`
  6338  
  6339  	// The burst IOPS of the volume.
  6340  	VolumeBurstIOPS *int64 `locationName:"volumeBurstIOPS" type:"integer"`
  6341  
  6342  	// The burst throughput of the volume.
  6343  	VolumeBurstThroughput *int64 `locationName:"volumeBurstThroughput" type:"integer"`
  6344  
  6345  	// The size of the volume, in GiB.
  6346  	VolumeSize *int64 `locationName:"volumeSize" type:"integer"`
  6347  
  6348  	// The volume type.
  6349  	//
  6350  	// This can be gp2 for General Purpose SSD, io1 or io2 for Provisioned IOPS
  6351  	// SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or standard for
  6352  	// Magnetic volumes.
  6353  	VolumeType *string `locationName:"volumeType" type:"string"`
  6354  }
  6355  
  6356  // String returns the string representation.
  6357  //
  6358  // API parameter values that are decorated as "sensitive" in the API will not
  6359  // be included in the string output. The member name will be present, but the
  6360  // value will be replaced with "sensitive".
  6361  func (s VolumeConfiguration) String() string {
  6362  	return awsutil.Prettify(s)
  6363  }
  6364  
  6365  // GoString returns the string representation.
  6366  //
  6367  // API parameter values that are decorated as "sensitive" in the API will not
  6368  // be included in the string output. The member name will be present, but the
  6369  // value will be replaced with "sensitive".
  6370  func (s VolumeConfiguration) GoString() string {
  6371  	return s.String()
  6372  }
  6373  
  6374  // SetVolumeBaselineIOPS sets the VolumeBaselineIOPS field's value.
  6375  func (s *VolumeConfiguration) SetVolumeBaselineIOPS(v int64) *VolumeConfiguration {
  6376  	s.VolumeBaselineIOPS = &v
  6377  	return s
  6378  }
  6379  
  6380  // SetVolumeBaselineThroughput sets the VolumeBaselineThroughput field's value.
  6381  func (s *VolumeConfiguration) SetVolumeBaselineThroughput(v int64) *VolumeConfiguration {
  6382  	s.VolumeBaselineThroughput = &v
  6383  	return s
  6384  }
  6385  
  6386  // SetVolumeBurstIOPS sets the VolumeBurstIOPS field's value.
  6387  func (s *VolumeConfiguration) SetVolumeBurstIOPS(v int64) *VolumeConfiguration {
  6388  	s.VolumeBurstIOPS = &v
  6389  	return s
  6390  }
  6391  
  6392  // SetVolumeBurstThroughput sets the VolumeBurstThroughput field's value.
  6393  func (s *VolumeConfiguration) SetVolumeBurstThroughput(v int64) *VolumeConfiguration {
  6394  	s.VolumeBurstThroughput = &v
  6395  	return s
  6396  }
  6397  
  6398  // SetVolumeSize sets the VolumeSize field's value.
  6399  func (s *VolumeConfiguration) SetVolumeSize(v int64) *VolumeConfiguration {
  6400  	s.VolumeSize = &v
  6401  	return s
  6402  }
  6403  
  6404  // SetVolumeType sets the VolumeType field's value.
  6405  func (s *VolumeConfiguration) SetVolumeType(v string) *VolumeConfiguration {
  6406  	s.VolumeType = &v
  6407  	return s
  6408  }
  6409  
  6410  // Describes an Amazon Elastic Block Store (Amazon EBS) volume recommendation.
  6411  type VolumeRecommendation struct {
  6412  	_ struct{} `type:"structure"`
  6413  
  6414  	// The Amazon Web Services account ID of the volume.
  6415  	AccountId *string `locationName:"accountId" type:"string"`
  6416  
  6417  	// An array of objects that describe the current configuration of the volume.
  6418  	CurrentConfiguration *VolumeConfiguration `locationName:"currentConfiguration" type:"structure"`
  6419  
  6420  	// The finding classification of the volume.
  6421  	//
  6422  	// Findings for volumes include:
  6423  	//
  6424  	//    * NotOptimized —A volume is considered not optimized when Compute Optimizer
  6425  	//    identifies a recommendation that can provide better performance for your
  6426  	//    workload.
  6427  	//
  6428  	//    * Optimized —An volume is considered optimized when Compute Optimizer
  6429  	//    determines that the volume is correctly provisioned to run your workload
  6430  	//    based on the chosen volume type. For optimized resources, Compute Optimizer
  6431  	//    might recommend a new generation volume type.
  6432  	Finding *string `locationName:"finding" type:"string" enum:"EBSFinding"`
  6433  
  6434  	// The timestamp of when the volume recommendation was last refreshed.
  6435  	LastRefreshTimestamp *time.Time `locationName:"lastRefreshTimestamp" type:"timestamp"`
  6436  
  6437  	// The number of days for which utilization metrics were analyzed for the volume.
  6438  	LookBackPeriodInDays *float64 `locationName:"lookBackPeriodInDays" type:"double"`
  6439  
  6440  	// An array of objects that describe the utilization metrics of the volume.
  6441  	UtilizationMetrics []*EBSUtilizationMetric `locationName:"utilizationMetrics" type:"list"`
  6442  
  6443  	// The Amazon Resource Name (ARN) of the current volume.
  6444  	VolumeArn *string `locationName:"volumeArn" type:"string"`
  6445  
  6446  	// An array of objects that describe the recommendation options for the volume.
  6447  	VolumeRecommendationOptions []*VolumeRecommendationOption `locationName:"volumeRecommendationOptions" type:"list"`
  6448  }
  6449  
  6450  // String returns the string representation.
  6451  //
  6452  // API parameter values that are decorated as "sensitive" in the API will not
  6453  // be included in the string output. The member name will be present, but the
  6454  // value will be replaced with "sensitive".
  6455  func (s VolumeRecommendation) String() string {
  6456  	return awsutil.Prettify(s)
  6457  }
  6458  
  6459  // GoString returns the string representation.
  6460  //
  6461  // API parameter values that are decorated as "sensitive" in the API will not
  6462  // be included in the string output. The member name will be present, but the
  6463  // value will be replaced with "sensitive".
  6464  func (s VolumeRecommendation) GoString() string {
  6465  	return s.String()
  6466  }
  6467  
  6468  // SetAccountId sets the AccountId field's value.
  6469  func (s *VolumeRecommendation) SetAccountId(v string) *VolumeRecommendation {
  6470  	s.AccountId = &v
  6471  	return s
  6472  }
  6473  
  6474  // SetCurrentConfiguration sets the CurrentConfiguration field's value.
  6475  func (s *VolumeRecommendation) SetCurrentConfiguration(v *VolumeConfiguration) *VolumeRecommendation {
  6476  	s.CurrentConfiguration = v
  6477  	return s
  6478  }
  6479  
  6480  // SetFinding sets the Finding field's value.
  6481  func (s *VolumeRecommendation) SetFinding(v string) *VolumeRecommendation {
  6482  	s.Finding = &v
  6483  	return s
  6484  }
  6485  
  6486  // SetLastRefreshTimestamp sets the LastRefreshTimestamp field's value.
  6487  func (s *VolumeRecommendation) SetLastRefreshTimestamp(v time.Time) *VolumeRecommendation {
  6488  	s.LastRefreshTimestamp = &v
  6489  	return s
  6490  }
  6491  
  6492  // SetLookBackPeriodInDays sets the LookBackPeriodInDays field's value.
  6493  func (s *VolumeRecommendation) SetLookBackPeriodInDays(v float64) *VolumeRecommendation {
  6494  	s.LookBackPeriodInDays = &v
  6495  	return s
  6496  }
  6497  
  6498  // SetUtilizationMetrics sets the UtilizationMetrics field's value.
  6499  func (s *VolumeRecommendation) SetUtilizationMetrics(v []*EBSUtilizationMetric) *VolumeRecommendation {
  6500  	s.UtilizationMetrics = v
  6501  	return s
  6502  }
  6503  
  6504  // SetVolumeArn sets the VolumeArn field's value.
  6505  func (s *VolumeRecommendation) SetVolumeArn(v string) *VolumeRecommendation {
  6506  	s.VolumeArn = &v
  6507  	return s
  6508  }
  6509  
  6510  // SetVolumeRecommendationOptions sets the VolumeRecommendationOptions field's value.
  6511  func (s *VolumeRecommendation) SetVolumeRecommendationOptions(v []*VolumeRecommendationOption) *VolumeRecommendation {
  6512  	s.VolumeRecommendationOptions = v
  6513  	return s
  6514  }
  6515  
  6516  // Describes a recommendation option for an Amazon Elastic Block Store (Amazon
  6517  // EBS) instance.
  6518  type VolumeRecommendationOption struct {
  6519  	_ struct{} `type:"structure"`
  6520  
  6521  	// An array of objects that describe a volume configuration.
  6522  	Configuration *VolumeConfiguration `locationName:"configuration" type:"structure"`
  6523  
  6524  	// The performance risk of the volume recommendation option.
  6525  	//
  6526  	// Performance risk is the likelihood of the recommended volume type meeting
  6527  	// the performance requirement of your workload.
  6528  	//
  6529  	// The value ranges from 0 - 4, with 0 meaning that the recommended resource
  6530  	// is predicted to always provide enough hardware capability. The higher the
  6531  	// performance risk is, the more likely you should validate whether the recommendation
  6532  	// will meet the performance requirements of your workload before migrating
  6533  	// your resource.
  6534  	PerformanceRisk *float64 `locationName:"performanceRisk" type:"double"`
  6535  
  6536  	// The rank of the volume recommendation option.
  6537  	//
  6538  	// The top recommendation option is ranked as 1.
  6539  	Rank *int64 `locationName:"rank" type:"integer"`
  6540  }
  6541  
  6542  // String returns the string representation.
  6543  //
  6544  // API parameter values that are decorated as "sensitive" in the API will not
  6545  // be included in the string output. The member name will be present, but the
  6546  // value will be replaced with "sensitive".
  6547  func (s VolumeRecommendationOption) String() string {
  6548  	return awsutil.Prettify(s)
  6549  }
  6550  
  6551  // GoString returns the string representation.
  6552  //
  6553  // API parameter values that are decorated as "sensitive" in the API will not
  6554  // be included in the string output. The member name will be present, but the
  6555  // value will be replaced with "sensitive".
  6556  func (s VolumeRecommendationOption) GoString() string {
  6557  	return s.String()
  6558  }
  6559  
  6560  // SetConfiguration sets the Configuration field's value.
  6561  func (s *VolumeRecommendationOption) SetConfiguration(v *VolumeConfiguration) *VolumeRecommendationOption {
  6562  	s.Configuration = v
  6563  	return s
  6564  }
  6565  
  6566  // SetPerformanceRisk sets the PerformanceRisk field's value.
  6567  func (s *VolumeRecommendationOption) SetPerformanceRisk(v float64) *VolumeRecommendationOption {
  6568  	s.PerformanceRisk = &v
  6569  	return s
  6570  }
  6571  
  6572  // SetRank sets the Rank field's value.
  6573  func (s *VolumeRecommendationOption) SetRank(v int64) *VolumeRecommendationOption {
  6574  	s.Rank = &v
  6575  	return s
  6576  }
  6577  
  6578  const (
  6579  	// CpuVendorArchitectureAwsArm64 is a CpuVendorArchitecture enum value
  6580  	CpuVendorArchitectureAwsArm64 = "AWS_ARM64"
  6581  
  6582  	// CpuVendorArchitectureCurrent is a CpuVendorArchitecture enum value
  6583  	CpuVendorArchitectureCurrent = "CURRENT"
  6584  )
  6585  
  6586  // CpuVendorArchitecture_Values returns all elements of the CpuVendorArchitecture enum
  6587  func CpuVendorArchitecture_Values() []string {
  6588  	return []string{
  6589  		CpuVendorArchitectureAwsArm64,
  6590  		CpuVendorArchitectureCurrent,
  6591  	}
  6592  }
  6593  
  6594  const (
  6595  	// EBSFilterNameFinding is a EBSFilterName enum value
  6596  	EBSFilterNameFinding = "Finding"
  6597  )
  6598  
  6599  // EBSFilterName_Values returns all elements of the EBSFilterName enum
  6600  func EBSFilterName_Values() []string {
  6601  	return []string{
  6602  		EBSFilterNameFinding,
  6603  	}
  6604  }
  6605  
  6606  const (
  6607  	// EBSFindingOptimized is a EBSFinding enum value
  6608  	EBSFindingOptimized = "Optimized"
  6609  
  6610  	// EBSFindingNotOptimized is a EBSFinding enum value
  6611  	EBSFindingNotOptimized = "NotOptimized"
  6612  )
  6613  
  6614  // EBSFinding_Values returns all elements of the EBSFinding enum
  6615  func EBSFinding_Values() []string {
  6616  	return []string{
  6617  		EBSFindingOptimized,
  6618  		EBSFindingNotOptimized,
  6619  	}
  6620  }
  6621  
  6622  const (
  6623  	// EBSMetricNameVolumeReadOpsPerSecond is a EBSMetricName enum value
  6624  	EBSMetricNameVolumeReadOpsPerSecond = "VolumeReadOpsPerSecond"
  6625  
  6626  	// EBSMetricNameVolumeWriteOpsPerSecond is a EBSMetricName enum value
  6627  	EBSMetricNameVolumeWriteOpsPerSecond = "VolumeWriteOpsPerSecond"
  6628  
  6629  	// EBSMetricNameVolumeReadBytesPerSecond is a EBSMetricName enum value
  6630  	EBSMetricNameVolumeReadBytesPerSecond = "VolumeReadBytesPerSecond"
  6631  
  6632  	// EBSMetricNameVolumeWriteBytesPerSecond is a EBSMetricName enum value
  6633  	EBSMetricNameVolumeWriteBytesPerSecond = "VolumeWriteBytesPerSecond"
  6634  )
  6635  
  6636  // EBSMetricName_Values returns all elements of the EBSMetricName enum
  6637  func EBSMetricName_Values() []string {
  6638  	return []string{
  6639  		EBSMetricNameVolumeReadOpsPerSecond,
  6640  		EBSMetricNameVolumeWriteOpsPerSecond,
  6641  		EBSMetricNameVolumeReadBytesPerSecond,
  6642  		EBSMetricNameVolumeWriteBytesPerSecond,
  6643  	}
  6644  }
  6645  
  6646  const (
  6647  	// EnrollmentFilterNameStatus is a EnrollmentFilterName enum value
  6648  	EnrollmentFilterNameStatus = "Status"
  6649  )
  6650  
  6651  // EnrollmentFilterName_Values returns all elements of the EnrollmentFilterName enum
  6652  func EnrollmentFilterName_Values() []string {
  6653  	return []string{
  6654  		EnrollmentFilterNameStatus,
  6655  	}
  6656  }
  6657  
  6658  const (
  6659  	// ExportableAutoScalingGroupFieldAccountId is a ExportableAutoScalingGroupField enum value
  6660  	ExportableAutoScalingGroupFieldAccountId = "AccountId"
  6661  
  6662  	// ExportableAutoScalingGroupFieldAutoScalingGroupArn is a ExportableAutoScalingGroupField enum value
  6663  	ExportableAutoScalingGroupFieldAutoScalingGroupArn = "AutoScalingGroupArn"
  6664  
  6665  	// ExportableAutoScalingGroupFieldAutoScalingGroupName is a ExportableAutoScalingGroupField enum value
  6666  	ExportableAutoScalingGroupFieldAutoScalingGroupName = "AutoScalingGroupName"
  6667  
  6668  	// ExportableAutoScalingGroupFieldFinding is a ExportableAutoScalingGroupField enum value
  6669  	ExportableAutoScalingGroupFieldFinding = "Finding"
  6670  
  6671  	// ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum is a ExportableAutoScalingGroupField enum value
  6672  	ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum = "UtilizationMetricsCpuMaximum"
  6673  
  6674  	// ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum is a ExportableAutoScalingGroupField enum value
  6675  	ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum"
  6676  
  6677  	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6678  	ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum = "UtilizationMetricsEbsReadOpsPerSecondMaximum"
  6679  
  6680  	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6681  	ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum = "UtilizationMetricsEbsWriteOpsPerSecondMaximum"
  6682  
  6683  	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6684  	ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum = "UtilizationMetricsEbsReadBytesPerSecondMaximum"
  6685  
  6686  	// ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6687  	ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum = "UtilizationMetricsEbsWriteBytesPerSecondMaximum"
  6688  
  6689  	// ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6690  	ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadOpsPerSecondMaximum = "UtilizationMetricsDiskReadOpsPerSecondMaximum"
  6691  
  6692  	// ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6693  	ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum = "UtilizationMetricsDiskWriteOpsPerSecondMaximum"
  6694  
  6695  	// ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6696  	ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadBytesPerSecondMaximum = "UtilizationMetricsDiskReadBytesPerSecondMaximum"
  6697  
  6698  	// ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6699  	ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum = "UtilizationMetricsDiskWriteBytesPerSecondMaximum"
  6700  
  6701  	// ExportableAutoScalingGroupFieldUtilizationMetricsNetworkInBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6702  	ExportableAutoScalingGroupFieldUtilizationMetricsNetworkInBytesPerSecondMaximum = "UtilizationMetricsNetworkInBytesPerSecondMaximum"
  6703  
  6704  	// ExportableAutoScalingGroupFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6705  	ExportableAutoScalingGroupFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum = "UtilizationMetricsNetworkOutBytesPerSecondMaximum"
  6706  
  6707  	// ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6708  	ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum = "UtilizationMetricsNetworkPacketsInPerSecondMaximum"
  6709  
  6710  	// ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum is a ExportableAutoScalingGroupField enum value
  6711  	ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum = "UtilizationMetricsNetworkPacketsOutPerSecondMaximum"
  6712  
  6713  	// ExportableAutoScalingGroupFieldLookbackPeriodInDays is a ExportableAutoScalingGroupField enum value
  6714  	ExportableAutoScalingGroupFieldLookbackPeriodInDays = "LookbackPeriodInDays"
  6715  
  6716  	// ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType is a ExportableAutoScalingGroupField enum value
  6717  	ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType = "CurrentConfigurationInstanceType"
  6718  
  6719  	// ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity is a ExportableAutoScalingGroupField enum value
  6720  	ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity = "CurrentConfigurationDesiredCapacity"
  6721  
  6722  	// ExportableAutoScalingGroupFieldCurrentConfigurationMinSize is a ExportableAutoScalingGroupField enum value
  6723  	ExportableAutoScalingGroupFieldCurrentConfigurationMinSize = "CurrentConfigurationMinSize"
  6724  
  6725  	// ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize is a ExportableAutoScalingGroupField enum value
  6726  	ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize = "CurrentConfigurationMaxSize"
  6727  
  6728  	// ExportableAutoScalingGroupFieldCurrentOnDemandPrice is a ExportableAutoScalingGroupField enum value
  6729  	ExportableAutoScalingGroupFieldCurrentOnDemandPrice = "CurrentOnDemandPrice"
  6730  
  6731  	// ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
  6732  	ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice = "CurrentStandardOneYearNoUpfrontReservedPrice"
  6733  
  6734  	// ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
  6735  	ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice = "CurrentStandardThreeYearNoUpfrontReservedPrice"
  6736  
  6737  	// ExportableAutoScalingGroupFieldCurrentVcpus is a ExportableAutoScalingGroupField enum value
  6738  	ExportableAutoScalingGroupFieldCurrentVcpus = "CurrentVCpus"
  6739  
  6740  	// ExportableAutoScalingGroupFieldCurrentMemory is a ExportableAutoScalingGroupField enum value
  6741  	ExportableAutoScalingGroupFieldCurrentMemory = "CurrentMemory"
  6742  
  6743  	// ExportableAutoScalingGroupFieldCurrentStorage is a ExportableAutoScalingGroupField enum value
  6744  	ExportableAutoScalingGroupFieldCurrentStorage = "CurrentStorage"
  6745  
  6746  	// ExportableAutoScalingGroupFieldCurrentNetwork is a ExportableAutoScalingGroupField enum value
  6747  	ExportableAutoScalingGroupFieldCurrentNetwork = "CurrentNetwork"
  6748  
  6749  	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType is a ExportableAutoScalingGroupField enum value
  6750  	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType = "RecommendationOptionsConfigurationInstanceType"
  6751  
  6752  	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity is a ExportableAutoScalingGroupField enum value
  6753  	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity = "RecommendationOptionsConfigurationDesiredCapacity"
  6754  
  6755  	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize is a ExportableAutoScalingGroupField enum value
  6756  	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize = "RecommendationOptionsConfigurationMinSize"
  6757  
  6758  	// ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize is a ExportableAutoScalingGroupField enum value
  6759  	ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize = "RecommendationOptionsConfigurationMaxSize"
  6760  
  6761  	// ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum is a ExportableAutoScalingGroupField enum value
  6762  	ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
  6763  
  6764  	// ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum is a ExportableAutoScalingGroupField enum value
  6765  	ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
  6766  
  6767  	// ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk is a ExportableAutoScalingGroupField enum value
  6768  	ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk = "RecommendationOptionsPerformanceRisk"
  6769  
  6770  	// ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice is a ExportableAutoScalingGroupField enum value
  6771  	ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice = "RecommendationOptionsOnDemandPrice"
  6772  
  6773  	// ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
  6774  	ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice"
  6775  
  6776  	// ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice is a ExportableAutoScalingGroupField enum value
  6777  	ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice"
  6778  
  6779  	// ExportableAutoScalingGroupFieldRecommendationOptionsVcpus is a ExportableAutoScalingGroupField enum value
  6780  	ExportableAutoScalingGroupFieldRecommendationOptionsVcpus = "RecommendationOptionsVcpus"
  6781  
  6782  	// ExportableAutoScalingGroupFieldRecommendationOptionsMemory is a ExportableAutoScalingGroupField enum value
  6783  	ExportableAutoScalingGroupFieldRecommendationOptionsMemory = "RecommendationOptionsMemory"
  6784  
  6785  	// ExportableAutoScalingGroupFieldRecommendationOptionsStorage is a ExportableAutoScalingGroupField enum value
  6786  	ExportableAutoScalingGroupFieldRecommendationOptionsStorage = "RecommendationOptionsStorage"
  6787  
  6788  	// ExportableAutoScalingGroupFieldRecommendationOptionsNetwork is a ExportableAutoScalingGroupField enum value
  6789  	ExportableAutoScalingGroupFieldRecommendationOptionsNetwork = "RecommendationOptionsNetwork"
  6790  
  6791  	// ExportableAutoScalingGroupFieldLastRefreshTimestamp is a ExportableAutoScalingGroupField enum value
  6792  	ExportableAutoScalingGroupFieldLastRefreshTimestamp = "LastRefreshTimestamp"
  6793  )
  6794  
  6795  // ExportableAutoScalingGroupField_Values returns all elements of the ExportableAutoScalingGroupField enum
  6796  func ExportableAutoScalingGroupField_Values() []string {
  6797  	return []string{
  6798  		ExportableAutoScalingGroupFieldAccountId,
  6799  		ExportableAutoScalingGroupFieldAutoScalingGroupArn,
  6800  		ExportableAutoScalingGroupFieldAutoScalingGroupName,
  6801  		ExportableAutoScalingGroupFieldFinding,
  6802  		ExportableAutoScalingGroupFieldUtilizationMetricsCpuMaximum,
  6803  		ExportableAutoScalingGroupFieldUtilizationMetricsMemoryMaximum,
  6804  		ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadOpsPerSecondMaximum,
  6805  		ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum,
  6806  		ExportableAutoScalingGroupFieldUtilizationMetricsEbsReadBytesPerSecondMaximum,
  6807  		ExportableAutoScalingGroupFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum,
  6808  		ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadOpsPerSecondMaximum,
  6809  		ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum,
  6810  		ExportableAutoScalingGroupFieldUtilizationMetricsDiskReadBytesPerSecondMaximum,
  6811  		ExportableAutoScalingGroupFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum,
  6812  		ExportableAutoScalingGroupFieldUtilizationMetricsNetworkInBytesPerSecondMaximum,
  6813  		ExportableAutoScalingGroupFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum,
  6814  		ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum,
  6815  		ExportableAutoScalingGroupFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum,
  6816  		ExportableAutoScalingGroupFieldLookbackPeriodInDays,
  6817  		ExportableAutoScalingGroupFieldCurrentConfigurationInstanceType,
  6818  		ExportableAutoScalingGroupFieldCurrentConfigurationDesiredCapacity,
  6819  		ExportableAutoScalingGroupFieldCurrentConfigurationMinSize,
  6820  		ExportableAutoScalingGroupFieldCurrentConfigurationMaxSize,
  6821  		ExportableAutoScalingGroupFieldCurrentOnDemandPrice,
  6822  		ExportableAutoScalingGroupFieldCurrentStandardOneYearNoUpfrontReservedPrice,
  6823  		ExportableAutoScalingGroupFieldCurrentStandardThreeYearNoUpfrontReservedPrice,
  6824  		ExportableAutoScalingGroupFieldCurrentVcpus,
  6825  		ExportableAutoScalingGroupFieldCurrentMemory,
  6826  		ExportableAutoScalingGroupFieldCurrentStorage,
  6827  		ExportableAutoScalingGroupFieldCurrentNetwork,
  6828  		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationInstanceType,
  6829  		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationDesiredCapacity,
  6830  		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMinSize,
  6831  		ExportableAutoScalingGroupFieldRecommendationOptionsConfigurationMaxSize,
  6832  		ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum,
  6833  		ExportableAutoScalingGroupFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum,
  6834  		ExportableAutoScalingGroupFieldRecommendationOptionsPerformanceRisk,
  6835  		ExportableAutoScalingGroupFieldRecommendationOptionsOnDemandPrice,
  6836  		ExportableAutoScalingGroupFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice,
  6837  		ExportableAutoScalingGroupFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice,
  6838  		ExportableAutoScalingGroupFieldRecommendationOptionsVcpus,
  6839  		ExportableAutoScalingGroupFieldRecommendationOptionsMemory,
  6840  		ExportableAutoScalingGroupFieldRecommendationOptionsStorage,
  6841  		ExportableAutoScalingGroupFieldRecommendationOptionsNetwork,
  6842  		ExportableAutoScalingGroupFieldLastRefreshTimestamp,
  6843  	}
  6844  }
  6845  
  6846  const (
  6847  	// ExportableInstanceFieldAccountId is a ExportableInstanceField enum value
  6848  	ExportableInstanceFieldAccountId = "AccountId"
  6849  
  6850  	// ExportableInstanceFieldInstanceArn is a ExportableInstanceField enum value
  6851  	ExportableInstanceFieldInstanceArn = "InstanceArn"
  6852  
  6853  	// ExportableInstanceFieldInstanceName is a ExportableInstanceField enum value
  6854  	ExportableInstanceFieldInstanceName = "InstanceName"
  6855  
  6856  	// ExportableInstanceFieldFinding is a ExportableInstanceField enum value
  6857  	ExportableInstanceFieldFinding = "Finding"
  6858  
  6859  	// ExportableInstanceFieldFindingReasonCodes is a ExportableInstanceField enum value
  6860  	ExportableInstanceFieldFindingReasonCodes = "FindingReasonCodes"
  6861  
  6862  	// ExportableInstanceFieldLookbackPeriodInDays is a ExportableInstanceField enum value
  6863  	ExportableInstanceFieldLookbackPeriodInDays = "LookbackPeriodInDays"
  6864  
  6865  	// ExportableInstanceFieldCurrentInstanceType is a ExportableInstanceField enum value
  6866  	ExportableInstanceFieldCurrentInstanceType = "CurrentInstanceType"
  6867  
  6868  	// ExportableInstanceFieldUtilizationMetricsCpuMaximum is a ExportableInstanceField enum value
  6869  	ExportableInstanceFieldUtilizationMetricsCpuMaximum = "UtilizationMetricsCpuMaximum"
  6870  
  6871  	// ExportableInstanceFieldUtilizationMetricsMemoryMaximum is a ExportableInstanceField enum value
  6872  	ExportableInstanceFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum"
  6873  
  6874  	// ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum is a ExportableInstanceField enum value
  6875  	ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum = "UtilizationMetricsEbsReadOpsPerSecondMaximum"
  6876  
  6877  	// ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum is a ExportableInstanceField enum value
  6878  	ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum = "UtilizationMetricsEbsWriteOpsPerSecondMaximum"
  6879  
  6880  	// ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum is a ExportableInstanceField enum value
  6881  	ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum = "UtilizationMetricsEbsReadBytesPerSecondMaximum"
  6882  
  6883  	// ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum is a ExportableInstanceField enum value
  6884  	ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum = "UtilizationMetricsEbsWriteBytesPerSecondMaximum"
  6885  
  6886  	// ExportableInstanceFieldUtilizationMetricsDiskReadOpsPerSecondMaximum is a ExportableInstanceField enum value
  6887  	ExportableInstanceFieldUtilizationMetricsDiskReadOpsPerSecondMaximum = "UtilizationMetricsDiskReadOpsPerSecondMaximum"
  6888  
  6889  	// ExportableInstanceFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum is a ExportableInstanceField enum value
  6890  	ExportableInstanceFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum = "UtilizationMetricsDiskWriteOpsPerSecondMaximum"
  6891  
  6892  	// ExportableInstanceFieldUtilizationMetricsDiskReadBytesPerSecondMaximum is a ExportableInstanceField enum value
  6893  	ExportableInstanceFieldUtilizationMetricsDiskReadBytesPerSecondMaximum = "UtilizationMetricsDiskReadBytesPerSecondMaximum"
  6894  
  6895  	// ExportableInstanceFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum is a ExportableInstanceField enum value
  6896  	ExportableInstanceFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum = "UtilizationMetricsDiskWriteBytesPerSecondMaximum"
  6897  
  6898  	// ExportableInstanceFieldUtilizationMetricsNetworkInBytesPerSecondMaximum is a ExportableInstanceField enum value
  6899  	ExportableInstanceFieldUtilizationMetricsNetworkInBytesPerSecondMaximum = "UtilizationMetricsNetworkInBytesPerSecondMaximum"
  6900  
  6901  	// ExportableInstanceFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum is a ExportableInstanceField enum value
  6902  	ExportableInstanceFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum = "UtilizationMetricsNetworkOutBytesPerSecondMaximum"
  6903  
  6904  	// ExportableInstanceFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum is a ExportableInstanceField enum value
  6905  	ExportableInstanceFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum = "UtilizationMetricsNetworkPacketsInPerSecondMaximum"
  6906  
  6907  	// ExportableInstanceFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum is a ExportableInstanceField enum value
  6908  	ExportableInstanceFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum = "UtilizationMetricsNetworkPacketsOutPerSecondMaximum"
  6909  
  6910  	// ExportableInstanceFieldCurrentOnDemandPrice is a ExportableInstanceField enum value
  6911  	ExportableInstanceFieldCurrentOnDemandPrice = "CurrentOnDemandPrice"
  6912  
  6913  	// ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
  6914  	ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice = "CurrentStandardOneYearNoUpfrontReservedPrice"
  6915  
  6916  	// ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
  6917  	ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice = "CurrentStandardThreeYearNoUpfrontReservedPrice"
  6918  
  6919  	// ExportableInstanceFieldCurrentVcpus is a ExportableInstanceField enum value
  6920  	ExportableInstanceFieldCurrentVcpus = "CurrentVCpus"
  6921  
  6922  	// ExportableInstanceFieldCurrentMemory is a ExportableInstanceField enum value
  6923  	ExportableInstanceFieldCurrentMemory = "CurrentMemory"
  6924  
  6925  	// ExportableInstanceFieldCurrentStorage is a ExportableInstanceField enum value
  6926  	ExportableInstanceFieldCurrentStorage = "CurrentStorage"
  6927  
  6928  	// ExportableInstanceFieldCurrentNetwork is a ExportableInstanceField enum value
  6929  	ExportableInstanceFieldCurrentNetwork = "CurrentNetwork"
  6930  
  6931  	// ExportableInstanceFieldRecommendationOptionsInstanceType is a ExportableInstanceField enum value
  6932  	ExportableInstanceFieldRecommendationOptionsInstanceType = "RecommendationOptionsInstanceType"
  6933  
  6934  	// ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum is a ExportableInstanceField enum value
  6935  	ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum = "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum"
  6936  
  6937  	// ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum is a ExportableInstanceField enum value
  6938  	ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum = "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum"
  6939  
  6940  	// ExportableInstanceFieldRecommendationOptionsPlatformDifferences is a ExportableInstanceField enum value
  6941  	ExportableInstanceFieldRecommendationOptionsPlatformDifferences = "RecommendationOptionsPlatformDifferences"
  6942  
  6943  	// ExportableInstanceFieldRecommendationOptionsPerformanceRisk is a ExportableInstanceField enum value
  6944  	ExportableInstanceFieldRecommendationOptionsPerformanceRisk = "RecommendationOptionsPerformanceRisk"
  6945  
  6946  	// ExportableInstanceFieldRecommendationOptionsVcpus is a ExportableInstanceField enum value
  6947  	ExportableInstanceFieldRecommendationOptionsVcpus = "RecommendationOptionsVcpus"
  6948  
  6949  	// ExportableInstanceFieldRecommendationOptionsMemory is a ExportableInstanceField enum value
  6950  	ExportableInstanceFieldRecommendationOptionsMemory = "RecommendationOptionsMemory"
  6951  
  6952  	// ExportableInstanceFieldRecommendationOptionsStorage is a ExportableInstanceField enum value
  6953  	ExportableInstanceFieldRecommendationOptionsStorage = "RecommendationOptionsStorage"
  6954  
  6955  	// ExportableInstanceFieldRecommendationOptionsNetwork is a ExportableInstanceField enum value
  6956  	ExportableInstanceFieldRecommendationOptionsNetwork = "RecommendationOptionsNetwork"
  6957  
  6958  	// ExportableInstanceFieldRecommendationOptionsOnDemandPrice is a ExportableInstanceField enum value
  6959  	ExportableInstanceFieldRecommendationOptionsOnDemandPrice = "RecommendationOptionsOnDemandPrice"
  6960  
  6961  	// ExportableInstanceFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
  6962  	ExportableInstanceFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice = "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice"
  6963  
  6964  	// ExportableInstanceFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice is a ExportableInstanceField enum value
  6965  	ExportableInstanceFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice = "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice"
  6966  
  6967  	// ExportableInstanceFieldRecommendationsSourcesRecommendationSourceArn is a ExportableInstanceField enum value
  6968  	ExportableInstanceFieldRecommendationsSourcesRecommendationSourceArn = "RecommendationsSourcesRecommendationSourceArn"
  6969  
  6970  	// ExportableInstanceFieldRecommendationsSourcesRecommendationSourceType is a ExportableInstanceField enum value
  6971  	ExportableInstanceFieldRecommendationsSourcesRecommendationSourceType = "RecommendationsSourcesRecommendationSourceType"
  6972  
  6973  	// ExportableInstanceFieldLastRefreshTimestamp is a ExportableInstanceField enum value
  6974  	ExportableInstanceFieldLastRefreshTimestamp = "LastRefreshTimestamp"
  6975  )
  6976  
  6977  // ExportableInstanceField_Values returns all elements of the ExportableInstanceField enum
  6978  func ExportableInstanceField_Values() []string {
  6979  	return []string{
  6980  		ExportableInstanceFieldAccountId,
  6981  		ExportableInstanceFieldInstanceArn,
  6982  		ExportableInstanceFieldInstanceName,
  6983  		ExportableInstanceFieldFinding,
  6984  		ExportableInstanceFieldFindingReasonCodes,
  6985  		ExportableInstanceFieldLookbackPeriodInDays,
  6986  		ExportableInstanceFieldCurrentInstanceType,
  6987  		ExportableInstanceFieldUtilizationMetricsCpuMaximum,
  6988  		ExportableInstanceFieldUtilizationMetricsMemoryMaximum,
  6989  		ExportableInstanceFieldUtilizationMetricsEbsReadOpsPerSecondMaximum,
  6990  		ExportableInstanceFieldUtilizationMetricsEbsWriteOpsPerSecondMaximum,
  6991  		ExportableInstanceFieldUtilizationMetricsEbsReadBytesPerSecondMaximum,
  6992  		ExportableInstanceFieldUtilizationMetricsEbsWriteBytesPerSecondMaximum,
  6993  		ExportableInstanceFieldUtilizationMetricsDiskReadOpsPerSecondMaximum,
  6994  		ExportableInstanceFieldUtilizationMetricsDiskWriteOpsPerSecondMaximum,
  6995  		ExportableInstanceFieldUtilizationMetricsDiskReadBytesPerSecondMaximum,
  6996  		ExportableInstanceFieldUtilizationMetricsDiskWriteBytesPerSecondMaximum,
  6997  		ExportableInstanceFieldUtilizationMetricsNetworkInBytesPerSecondMaximum,
  6998  		ExportableInstanceFieldUtilizationMetricsNetworkOutBytesPerSecondMaximum,
  6999  		ExportableInstanceFieldUtilizationMetricsNetworkPacketsInPerSecondMaximum,
  7000  		ExportableInstanceFieldUtilizationMetricsNetworkPacketsOutPerSecondMaximum,
  7001  		ExportableInstanceFieldCurrentOnDemandPrice,
  7002  		ExportableInstanceFieldCurrentStandardOneYearNoUpfrontReservedPrice,
  7003  		ExportableInstanceFieldCurrentStandardThreeYearNoUpfrontReservedPrice,
  7004  		ExportableInstanceFieldCurrentVcpus,
  7005  		ExportableInstanceFieldCurrentMemory,
  7006  		ExportableInstanceFieldCurrentStorage,
  7007  		ExportableInstanceFieldCurrentNetwork,
  7008  		ExportableInstanceFieldRecommendationOptionsInstanceType,
  7009  		ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsCpuMaximum,
  7010  		ExportableInstanceFieldRecommendationOptionsProjectedUtilizationMetricsMemoryMaximum,
  7011  		ExportableInstanceFieldRecommendationOptionsPlatformDifferences,
  7012  		ExportableInstanceFieldRecommendationOptionsPerformanceRisk,
  7013  		ExportableInstanceFieldRecommendationOptionsVcpus,
  7014  		ExportableInstanceFieldRecommendationOptionsMemory,
  7015  		ExportableInstanceFieldRecommendationOptionsStorage,
  7016  		ExportableInstanceFieldRecommendationOptionsNetwork,
  7017  		ExportableInstanceFieldRecommendationOptionsOnDemandPrice,
  7018  		ExportableInstanceFieldRecommendationOptionsStandardOneYearNoUpfrontReservedPrice,
  7019  		ExportableInstanceFieldRecommendationOptionsStandardThreeYearNoUpfrontReservedPrice,
  7020  		ExportableInstanceFieldRecommendationsSourcesRecommendationSourceArn,
  7021  		ExportableInstanceFieldRecommendationsSourcesRecommendationSourceType,
  7022  		ExportableInstanceFieldLastRefreshTimestamp,
  7023  	}
  7024  }
  7025  
  7026  const (
  7027  	// ExportableLambdaFunctionFieldAccountId is a ExportableLambdaFunctionField enum value
  7028  	ExportableLambdaFunctionFieldAccountId = "AccountId"
  7029  
  7030  	// ExportableLambdaFunctionFieldFunctionArn is a ExportableLambdaFunctionField enum value
  7031  	ExportableLambdaFunctionFieldFunctionArn = "FunctionArn"
  7032  
  7033  	// ExportableLambdaFunctionFieldFunctionVersion is a ExportableLambdaFunctionField enum value
  7034  	ExportableLambdaFunctionFieldFunctionVersion = "FunctionVersion"
  7035  
  7036  	// ExportableLambdaFunctionFieldFinding is a ExportableLambdaFunctionField enum value
  7037  	ExportableLambdaFunctionFieldFinding = "Finding"
  7038  
  7039  	// ExportableLambdaFunctionFieldFindingReasonCodes is a ExportableLambdaFunctionField enum value
  7040  	ExportableLambdaFunctionFieldFindingReasonCodes = "FindingReasonCodes"
  7041  
  7042  	// ExportableLambdaFunctionFieldNumberOfInvocations is a ExportableLambdaFunctionField enum value
  7043  	ExportableLambdaFunctionFieldNumberOfInvocations = "NumberOfInvocations"
  7044  
  7045  	// ExportableLambdaFunctionFieldUtilizationMetricsDurationMaximum is a ExportableLambdaFunctionField enum value
  7046  	ExportableLambdaFunctionFieldUtilizationMetricsDurationMaximum = "UtilizationMetricsDurationMaximum"
  7047  
  7048  	// ExportableLambdaFunctionFieldUtilizationMetricsDurationAverage is a ExportableLambdaFunctionField enum value
  7049  	ExportableLambdaFunctionFieldUtilizationMetricsDurationAverage = "UtilizationMetricsDurationAverage"
  7050  
  7051  	// ExportableLambdaFunctionFieldUtilizationMetricsMemoryMaximum is a ExportableLambdaFunctionField enum value
  7052  	ExportableLambdaFunctionFieldUtilizationMetricsMemoryMaximum = "UtilizationMetricsMemoryMaximum"
  7053  
  7054  	// ExportableLambdaFunctionFieldUtilizationMetricsMemoryAverage is a ExportableLambdaFunctionField enum value
  7055  	ExportableLambdaFunctionFieldUtilizationMetricsMemoryAverage = "UtilizationMetricsMemoryAverage"
  7056  
  7057  	// ExportableLambdaFunctionFieldLookbackPeriodInDays is a ExportableLambdaFunctionField enum value
  7058  	ExportableLambdaFunctionFieldLookbackPeriodInDays = "LookbackPeriodInDays"
  7059  
  7060  	// ExportableLambdaFunctionFieldCurrentConfigurationMemorySize is a ExportableLambdaFunctionField enum value
  7061  	ExportableLambdaFunctionFieldCurrentConfigurationMemorySize = "CurrentConfigurationMemorySize"
  7062  
  7063  	// ExportableLambdaFunctionFieldCurrentConfigurationTimeout is a ExportableLambdaFunctionField enum value
  7064  	ExportableLambdaFunctionFieldCurrentConfigurationTimeout = "CurrentConfigurationTimeout"
  7065  
  7066  	// ExportableLambdaFunctionFieldCurrentCostTotal is a ExportableLambdaFunctionField enum value
  7067  	ExportableLambdaFunctionFieldCurrentCostTotal = "CurrentCostTotal"
  7068  
  7069  	// ExportableLambdaFunctionFieldCurrentCostAverage is a ExportableLambdaFunctionField enum value
  7070  	ExportableLambdaFunctionFieldCurrentCostAverage = "CurrentCostAverage"
  7071  
  7072  	// ExportableLambdaFunctionFieldRecommendationOptionsConfigurationMemorySize is a ExportableLambdaFunctionField enum value
  7073  	ExportableLambdaFunctionFieldRecommendationOptionsConfigurationMemorySize = "RecommendationOptionsConfigurationMemorySize"
  7074  
  7075  	// ExportableLambdaFunctionFieldRecommendationOptionsCostLow is a ExportableLambdaFunctionField enum value
  7076  	ExportableLambdaFunctionFieldRecommendationOptionsCostLow = "RecommendationOptionsCostLow"
  7077  
  7078  	// ExportableLambdaFunctionFieldRecommendationOptionsCostHigh is a ExportableLambdaFunctionField enum value
  7079  	ExportableLambdaFunctionFieldRecommendationOptionsCostHigh = "RecommendationOptionsCostHigh"
  7080  
  7081  	// ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationLowerBound is a ExportableLambdaFunctionField enum value
  7082  	ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationLowerBound = "RecommendationOptionsProjectedUtilizationMetricsDurationLowerBound"
  7083  
  7084  	// ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationUpperBound is a ExportableLambdaFunctionField enum value
  7085  	ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationUpperBound = "RecommendationOptionsProjectedUtilizationMetricsDurationUpperBound"
  7086  
  7087  	// ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationExpected is a ExportableLambdaFunctionField enum value
  7088  	ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationExpected = "RecommendationOptionsProjectedUtilizationMetricsDurationExpected"
  7089  
  7090  	// ExportableLambdaFunctionFieldLastRefreshTimestamp is a ExportableLambdaFunctionField enum value
  7091  	ExportableLambdaFunctionFieldLastRefreshTimestamp = "LastRefreshTimestamp"
  7092  )
  7093  
  7094  // ExportableLambdaFunctionField_Values returns all elements of the ExportableLambdaFunctionField enum
  7095  func ExportableLambdaFunctionField_Values() []string {
  7096  	return []string{
  7097  		ExportableLambdaFunctionFieldAccountId,
  7098  		ExportableLambdaFunctionFieldFunctionArn,
  7099  		ExportableLambdaFunctionFieldFunctionVersion,
  7100  		ExportableLambdaFunctionFieldFinding,
  7101  		ExportableLambdaFunctionFieldFindingReasonCodes,
  7102  		ExportableLambdaFunctionFieldNumberOfInvocations,
  7103  		ExportableLambdaFunctionFieldUtilizationMetricsDurationMaximum,
  7104  		ExportableLambdaFunctionFieldUtilizationMetricsDurationAverage,
  7105  		ExportableLambdaFunctionFieldUtilizationMetricsMemoryMaximum,
  7106  		ExportableLambdaFunctionFieldUtilizationMetricsMemoryAverage,
  7107  		ExportableLambdaFunctionFieldLookbackPeriodInDays,
  7108  		ExportableLambdaFunctionFieldCurrentConfigurationMemorySize,
  7109  		ExportableLambdaFunctionFieldCurrentConfigurationTimeout,
  7110  		ExportableLambdaFunctionFieldCurrentCostTotal,
  7111  		ExportableLambdaFunctionFieldCurrentCostAverage,
  7112  		ExportableLambdaFunctionFieldRecommendationOptionsConfigurationMemorySize,
  7113  		ExportableLambdaFunctionFieldRecommendationOptionsCostLow,
  7114  		ExportableLambdaFunctionFieldRecommendationOptionsCostHigh,
  7115  		ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationLowerBound,
  7116  		ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationUpperBound,
  7117  		ExportableLambdaFunctionFieldRecommendationOptionsProjectedUtilizationMetricsDurationExpected,
  7118  		ExportableLambdaFunctionFieldLastRefreshTimestamp,
  7119  	}
  7120  }
  7121  
  7122  const (
  7123  	// ExportableVolumeFieldAccountId is a ExportableVolumeField enum value
  7124  	ExportableVolumeFieldAccountId = "AccountId"
  7125  
  7126  	// ExportableVolumeFieldVolumeArn is a ExportableVolumeField enum value
  7127  	ExportableVolumeFieldVolumeArn = "VolumeArn"
  7128  
  7129  	// ExportableVolumeFieldFinding is a ExportableVolumeField enum value
  7130  	ExportableVolumeFieldFinding = "Finding"
  7131  
  7132  	// ExportableVolumeFieldUtilizationMetricsVolumeReadOpsPerSecondMaximum is a ExportableVolumeField enum value
  7133  	ExportableVolumeFieldUtilizationMetricsVolumeReadOpsPerSecondMaximum = "UtilizationMetricsVolumeReadOpsPerSecondMaximum"
  7134  
  7135  	// ExportableVolumeFieldUtilizationMetricsVolumeWriteOpsPerSecondMaximum is a ExportableVolumeField enum value
  7136  	ExportableVolumeFieldUtilizationMetricsVolumeWriteOpsPerSecondMaximum = "UtilizationMetricsVolumeWriteOpsPerSecondMaximum"
  7137  
  7138  	// ExportableVolumeFieldUtilizationMetricsVolumeReadBytesPerSecondMaximum is a ExportableVolumeField enum value
  7139  	ExportableVolumeFieldUtilizationMetricsVolumeReadBytesPerSecondMaximum = "UtilizationMetricsVolumeReadBytesPerSecondMaximum"
  7140  
  7141  	// ExportableVolumeFieldUtilizationMetricsVolumeWriteBytesPerSecondMaximum is a ExportableVolumeField enum value
  7142  	ExportableVolumeFieldUtilizationMetricsVolumeWriteBytesPerSecondMaximum = "UtilizationMetricsVolumeWriteBytesPerSecondMaximum"
  7143  
  7144  	// ExportableVolumeFieldLookbackPeriodInDays is a ExportableVolumeField enum value
  7145  	ExportableVolumeFieldLookbackPeriodInDays = "LookbackPeriodInDays"
  7146  
  7147  	// ExportableVolumeFieldCurrentConfigurationVolumeType is a ExportableVolumeField enum value
  7148  	ExportableVolumeFieldCurrentConfigurationVolumeType = "CurrentConfigurationVolumeType"
  7149  
  7150  	// ExportableVolumeFieldCurrentConfigurationVolumeBaselineIops is a ExportableVolumeField enum value
  7151  	ExportableVolumeFieldCurrentConfigurationVolumeBaselineIops = "CurrentConfigurationVolumeBaselineIOPS"
  7152  
  7153  	// ExportableVolumeFieldCurrentConfigurationVolumeBaselineThroughput is a ExportableVolumeField enum value
  7154  	ExportableVolumeFieldCurrentConfigurationVolumeBaselineThroughput = "CurrentConfigurationVolumeBaselineThroughput"
  7155  
  7156  	// ExportableVolumeFieldCurrentConfigurationVolumeBurstIops is a ExportableVolumeField enum value
  7157  	ExportableVolumeFieldCurrentConfigurationVolumeBurstIops = "CurrentConfigurationVolumeBurstIOPS"
  7158  
  7159  	// ExportableVolumeFieldCurrentConfigurationVolumeBurstThroughput is a ExportableVolumeField enum value
  7160  	ExportableVolumeFieldCurrentConfigurationVolumeBurstThroughput = "CurrentConfigurationVolumeBurstThroughput"
  7161  
  7162  	// ExportableVolumeFieldCurrentConfigurationVolumeSize is a ExportableVolumeField enum value
  7163  	ExportableVolumeFieldCurrentConfigurationVolumeSize = "CurrentConfigurationVolumeSize"
  7164  
  7165  	// ExportableVolumeFieldCurrentMonthlyPrice is a ExportableVolumeField enum value
  7166  	ExportableVolumeFieldCurrentMonthlyPrice = "CurrentMonthlyPrice"
  7167  
  7168  	// ExportableVolumeFieldRecommendationOptionsConfigurationVolumeType is a ExportableVolumeField enum value
  7169  	ExportableVolumeFieldRecommendationOptionsConfigurationVolumeType = "RecommendationOptionsConfigurationVolumeType"
  7170  
  7171  	// ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBaselineIops is a ExportableVolumeField enum value
  7172  	ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBaselineIops = "RecommendationOptionsConfigurationVolumeBaselineIOPS"
  7173  
  7174  	// ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBaselineThroughput is a ExportableVolumeField enum value
  7175  	ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBaselineThroughput = "RecommendationOptionsConfigurationVolumeBaselineThroughput"
  7176  
  7177  	// ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBurstIops is a ExportableVolumeField enum value
  7178  	ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBurstIops = "RecommendationOptionsConfigurationVolumeBurstIOPS"
  7179  
  7180  	// ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBurstThroughput is a ExportableVolumeField enum value
  7181  	ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBurstThroughput = "RecommendationOptionsConfigurationVolumeBurstThroughput"
  7182  
  7183  	// ExportableVolumeFieldRecommendationOptionsConfigurationVolumeSize is a ExportableVolumeField enum value
  7184  	ExportableVolumeFieldRecommendationOptionsConfigurationVolumeSize = "RecommendationOptionsConfigurationVolumeSize"
  7185  
  7186  	// ExportableVolumeFieldRecommendationOptionsMonthlyPrice is a ExportableVolumeField enum value
  7187  	ExportableVolumeFieldRecommendationOptionsMonthlyPrice = "RecommendationOptionsMonthlyPrice"
  7188  
  7189  	// ExportableVolumeFieldRecommendationOptionsPerformanceRisk is a ExportableVolumeField enum value
  7190  	ExportableVolumeFieldRecommendationOptionsPerformanceRisk = "RecommendationOptionsPerformanceRisk"
  7191  
  7192  	// ExportableVolumeFieldLastRefreshTimestamp is a ExportableVolumeField enum value
  7193  	ExportableVolumeFieldLastRefreshTimestamp = "LastRefreshTimestamp"
  7194  )
  7195  
  7196  // ExportableVolumeField_Values returns all elements of the ExportableVolumeField enum
  7197  func ExportableVolumeField_Values() []string {
  7198  	return []string{
  7199  		ExportableVolumeFieldAccountId,
  7200  		ExportableVolumeFieldVolumeArn,
  7201  		ExportableVolumeFieldFinding,
  7202  		ExportableVolumeFieldUtilizationMetricsVolumeReadOpsPerSecondMaximum,
  7203  		ExportableVolumeFieldUtilizationMetricsVolumeWriteOpsPerSecondMaximum,
  7204  		ExportableVolumeFieldUtilizationMetricsVolumeReadBytesPerSecondMaximum,
  7205  		ExportableVolumeFieldUtilizationMetricsVolumeWriteBytesPerSecondMaximum,
  7206  		ExportableVolumeFieldLookbackPeriodInDays,
  7207  		ExportableVolumeFieldCurrentConfigurationVolumeType,
  7208  		ExportableVolumeFieldCurrentConfigurationVolumeBaselineIops,
  7209  		ExportableVolumeFieldCurrentConfigurationVolumeBaselineThroughput,
  7210  		ExportableVolumeFieldCurrentConfigurationVolumeBurstIops,
  7211  		ExportableVolumeFieldCurrentConfigurationVolumeBurstThroughput,
  7212  		ExportableVolumeFieldCurrentConfigurationVolumeSize,
  7213  		ExportableVolumeFieldCurrentMonthlyPrice,
  7214  		ExportableVolumeFieldRecommendationOptionsConfigurationVolumeType,
  7215  		ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBaselineIops,
  7216  		ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBaselineThroughput,
  7217  		ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBurstIops,
  7218  		ExportableVolumeFieldRecommendationOptionsConfigurationVolumeBurstThroughput,
  7219  		ExportableVolumeFieldRecommendationOptionsConfigurationVolumeSize,
  7220  		ExportableVolumeFieldRecommendationOptionsMonthlyPrice,
  7221  		ExportableVolumeFieldRecommendationOptionsPerformanceRisk,
  7222  		ExportableVolumeFieldLastRefreshTimestamp,
  7223  	}
  7224  }
  7225  
  7226  const (
  7227  	// FileFormatCsv is a FileFormat enum value
  7228  	FileFormatCsv = "Csv"
  7229  )
  7230  
  7231  // FileFormat_Values returns all elements of the FileFormat enum
  7232  func FileFormat_Values() []string {
  7233  	return []string{
  7234  		FileFormatCsv,
  7235  	}
  7236  }
  7237  
  7238  const (
  7239  	// FilterNameFinding is a FilterName enum value
  7240  	FilterNameFinding = "Finding"
  7241  
  7242  	// FilterNameFindingReasonCodes is a FilterName enum value
  7243  	FilterNameFindingReasonCodes = "FindingReasonCodes"
  7244  
  7245  	// FilterNameRecommendationSourceType is a FilterName enum value
  7246  	FilterNameRecommendationSourceType = "RecommendationSourceType"
  7247  )
  7248  
  7249  // FilterName_Values returns all elements of the FilterName enum
  7250  func FilterName_Values() []string {
  7251  	return []string{
  7252  		FilterNameFinding,
  7253  		FilterNameFindingReasonCodes,
  7254  		FilterNameRecommendationSourceType,
  7255  	}
  7256  }
  7257  
  7258  const (
  7259  	// FindingUnderprovisioned is a Finding enum value
  7260  	FindingUnderprovisioned = "Underprovisioned"
  7261  
  7262  	// FindingOverprovisioned is a Finding enum value
  7263  	FindingOverprovisioned = "Overprovisioned"
  7264  
  7265  	// FindingOptimized is a Finding enum value
  7266  	FindingOptimized = "Optimized"
  7267  
  7268  	// FindingNotOptimized is a Finding enum value
  7269  	FindingNotOptimized = "NotOptimized"
  7270  )
  7271  
  7272  // Finding_Values returns all elements of the Finding enum
  7273  func Finding_Values() []string {
  7274  	return []string{
  7275  		FindingUnderprovisioned,
  7276  		FindingOverprovisioned,
  7277  		FindingOptimized,
  7278  		FindingNotOptimized,
  7279  	}
  7280  }
  7281  
  7282  const (
  7283  	// FindingReasonCodeMemoryOverprovisioned is a FindingReasonCode enum value
  7284  	FindingReasonCodeMemoryOverprovisioned = "MemoryOverprovisioned"
  7285  
  7286  	// FindingReasonCodeMemoryUnderprovisioned is a FindingReasonCode enum value
  7287  	FindingReasonCodeMemoryUnderprovisioned = "MemoryUnderprovisioned"
  7288  )
  7289  
  7290  // FindingReasonCode_Values returns all elements of the FindingReasonCode enum
  7291  func FindingReasonCode_Values() []string {
  7292  	return []string{
  7293  		FindingReasonCodeMemoryOverprovisioned,
  7294  		FindingReasonCodeMemoryUnderprovisioned,
  7295  	}
  7296  }
  7297  
  7298  const (
  7299  	// InstanceRecommendationFindingReasonCodeCpuoverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7300  	InstanceRecommendationFindingReasonCodeCpuoverprovisioned = "CPUOverprovisioned"
  7301  
  7302  	// InstanceRecommendationFindingReasonCodeCpuunderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7303  	InstanceRecommendationFindingReasonCodeCpuunderprovisioned = "CPUUnderprovisioned"
  7304  
  7305  	// InstanceRecommendationFindingReasonCodeMemoryOverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7306  	InstanceRecommendationFindingReasonCodeMemoryOverprovisioned = "MemoryOverprovisioned"
  7307  
  7308  	// InstanceRecommendationFindingReasonCodeMemoryUnderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7309  	InstanceRecommendationFindingReasonCodeMemoryUnderprovisioned = "MemoryUnderprovisioned"
  7310  
  7311  	// InstanceRecommendationFindingReasonCodeEbsthroughputOverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7312  	InstanceRecommendationFindingReasonCodeEbsthroughputOverprovisioned = "EBSThroughputOverprovisioned"
  7313  
  7314  	// InstanceRecommendationFindingReasonCodeEbsthroughputUnderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7315  	InstanceRecommendationFindingReasonCodeEbsthroughputUnderprovisioned = "EBSThroughputUnderprovisioned"
  7316  
  7317  	// InstanceRecommendationFindingReasonCodeEbsiopsoverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7318  	InstanceRecommendationFindingReasonCodeEbsiopsoverprovisioned = "EBSIOPSOverprovisioned"
  7319  
  7320  	// InstanceRecommendationFindingReasonCodeEbsiopsunderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7321  	InstanceRecommendationFindingReasonCodeEbsiopsunderprovisioned = "EBSIOPSUnderprovisioned"
  7322  
  7323  	// InstanceRecommendationFindingReasonCodeNetworkBandwidthOverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7324  	InstanceRecommendationFindingReasonCodeNetworkBandwidthOverprovisioned = "NetworkBandwidthOverprovisioned"
  7325  
  7326  	// InstanceRecommendationFindingReasonCodeNetworkBandwidthUnderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7327  	InstanceRecommendationFindingReasonCodeNetworkBandwidthUnderprovisioned = "NetworkBandwidthUnderprovisioned"
  7328  
  7329  	// InstanceRecommendationFindingReasonCodeNetworkPpsoverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7330  	InstanceRecommendationFindingReasonCodeNetworkPpsoverprovisioned = "NetworkPPSOverprovisioned"
  7331  
  7332  	// InstanceRecommendationFindingReasonCodeNetworkPpsunderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7333  	InstanceRecommendationFindingReasonCodeNetworkPpsunderprovisioned = "NetworkPPSUnderprovisioned"
  7334  
  7335  	// InstanceRecommendationFindingReasonCodeDiskIopsoverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7336  	InstanceRecommendationFindingReasonCodeDiskIopsoverprovisioned = "DiskIOPSOverprovisioned"
  7337  
  7338  	// InstanceRecommendationFindingReasonCodeDiskIopsunderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7339  	InstanceRecommendationFindingReasonCodeDiskIopsunderprovisioned = "DiskIOPSUnderprovisioned"
  7340  
  7341  	// InstanceRecommendationFindingReasonCodeDiskThroughputOverprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7342  	InstanceRecommendationFindingReasonCodeDiskThroughputOverprovisioned = "DiskThroughputOverprovisioned"
  7343  
  7344  	// InstanceRecommendationFindingReasonCodeDiskThroughputUnderprovisioned is a InstanceRecommendationFindingReasonCode enum value
  7345  	InstanceRecommendationFindingReasonCodeDiskThroughputUnderprovisioned = "DiskThroughputUnderprovisioned"
  7346  )
  7347  
  7348  // InstanceRecommendationFindingReasonCode_Values returns all elements of the InstanceRecommendationFindingReasonCode enum
  7349  func InstanceRecommendationFindingReasonCode_Values() []string {
  7350  	return []string{
  7351  		InstanceRecommendationFindingReasonCodeCpuoverprovisioned,
  7352  		InstanceRecommendationFindingReasonCodeCpuunderprovisioned,
  7353  		InstanceRecommendationFindingReasonCodeMemoryOverprovisioned,
  7354  		InstanceRecommendationFindingReasonCodeMemoryUnderprovisioned,
  7355  		InstanceRecommendationFindingReasonCodeEbsthroughputOverprovisioned,
  7356  		InstanceRecommendationFindingReasonCodeEbsthroughputUnderprovisioned,
  7357  		InstanceRecommendationFindingReasonCodeEbsiopsoverprovisioned,
  7358  		InstanceRecommendationFindingReasonCodeEbsiopsunderprovisioned,
  7359  		InstanceRecommendationFindingReasonCodeNetworkBandwidthOverprovisioned,
  7360  		InstanceRecommendationFindingReasonCodeNetworkBandwidthUnderprovisioned,
  7361  		InstanceRecommendationFindingReasonCodeNetworkPpsoverprovisioned,
  7362  		InstanceRecommendationFindingReasonCodeNetworkPpsunderprovisioned,
  7363  		InstanceRecommendationFindingReasonCodeDiskIopsoverprovisioned,
  7364  		InstanceRecommendationFindingReasonCodeDiskIopsunderprovisioned,
  7365  		InstanceRecommendationFindingReasonCodeDiskThroughputOverprovisioned,
  7366  		InstanceRecommendationFindingReasonCodeDiskThroughputUnderprovisioned,
  7367  	}
  7368  }
  7369  
  7370  const (
  7371  	// JobFilterNameResourceType is a JobFilterName enum value
  7372  	JobFilterNameResourceType = "ResourceType"
  7373  
  7374  	// JobFilterNameJobStatus is a JobFilterName enum value
  7375  	JobFilterNameJobStatus = "JobStatus"
  7376  )
  7377  
  7378  // JobFilterName_Values returns all elements of the JobFilterName enum
  7379  func JobFilterName_Values() []string {
  7380  	return []string{
  7381  		JobFilterNameResourceType,
  7382  		JobFilterNameJobStatus,
  7383  	}
  7384  }
  7385  
  7386  const (
  7387  	// JobStatusQueued is a JobStatus enum value
  7388  	JobStatusQueued = "Queued"
  7389  
  7390  	// JobStatusInProgress is a JobStatus enum value
  7391  	JobStatusInProgress = "InProgress"
  7392  
  7393  	// JobStatusComplete is a JobStatus enum value
  7394  	JobStatusComplete = "Complete"
  7395  
  7396  	// JobStatusFailed is a JobStatus enum value
  7397  	JobStatusFailed = "Failed"
  7398  )
  7399  
  7400  // JobStatus_Values returns all elements of the JobStatus enum
  7401  func JobStatus_Values() []string {
  7402  	return []string{
  7403  		JobStatusQueued,
  7404  		JobStatusInProgress,
  7405  		JobStatusComplete,
  7406  		JobStatusFailed,
  7407  	}
  7408  }
  7409  
  7410  const (
  7411  	// LambdaFunctionMemoryMetricNameDuration is a LambdaFunctionMemoryMetricName enum value
  7412  	LambdaFunctionMemoryMetricNameDuration = "Duration"
  7413  )
  7414  
  7415  // LambdaFunctionMemoryMetricName_Values returns all elements of the LambdaFunctionMemoryMetricName enum
  7416  func LambdaFunctionMemoryMetricName_Values() []string {
  7417  	return []string{
  7418  		LambdaFunctionMemoryMetricNameDuration,
  7419  	}
  7420  }
  7421  
  7422  const (
  7423  	// LambdaFunctionMemoryMetricStatisticLowerBound is a LambdaFunctionMemoryMetricStatistic enum value
  7424  	LambdaFunctionMemoryMetricStatisticLowerBound = "LowerBound"
  7425  
  7426  	// LambdaFunctionMemoryMetricStatisticUpperBound is a LambdaFunctionMemoryMetricStatistic enum value
  7427  	LambdaFunctionMemoryMetricStatisticUpperBound = "UpperBound"
  7428  
  7429  	// LambdaFunctionMemoryMetricStatisticExpected is a LambdaFunctionMemoryMetricStatistic enum value
  7430  	LambdaFunctionMemoryMetricStatisticExpected = "Expected"
  7431  )
  7432  
  7433  // LambdaFunctionMemoryMetricStatistic_Values returns all elements of the LambdaFunctionMemoryMetricStatistic enum
  7434  func LambdaFunctionMemoryMetricStatistic_Values() []string {
  7435  	return []string{
  7436  		LambdaFunctionMemoryMetricStatisticLowerBound,
  7437  		LambdaFunctionMemoryMetricStatisticUpperBound,
  7438  		LambdaFunctionMemoryMetricStatisticExpected,
  7439  	}
  7440  }
  7441  
  7442  const (
  7443  	// LambdaFunctionMetricNameDuration is a LambdaFunctionMetricName enum value
  7444  	LambdaFunctionMetricNameDuration = "Duration"
  7445  
  7446  	// LambdaFunctionMetricNameMemory is a LambdaFunctionMetricName enum value
  7447  	LambdaFunctionMetricNameMemory = "Memory"
  7448  )
  7449  
  7450  // LambdaFunctionMetricName_Values returns all elements of the LambdaFunctionMetricName enum
  7451  func LambdaFunctionMetricName_Values() []string {
  7452  	return []string{
  7453  		LambdaFunctionMetricNameDuration,
  7454  		LambdaFunctionMetricNameMemory,
  7455  	}
  7456  }
  7457  
  7458  const (
  7459  	// LambdaFunctionMetricStatisticMaximum is a LambdaFunctionMetricStatistic enum value
  7460  	LambdaFunctionMetricStatisticMaximum = "Maximum"
  7461  
  7462  	// LambdaFunctionMetricStatisticAverage is a LambdaFunctionMetricStatistic enum value
  7463  	LambdaFunctionMetricStatisticAverage = "Average"
  7464  )
  7465  
  7466  // LambdaFunctionMetricStatistic_Values returns all elements of the LambdaFunctionMetricStatistic enum
  7467  func LambdaFunctionMetricStatistic_Values() []string {
  7468  	return []string{
  7469  		LambdaFunctionMetricStatisticMaximum,
  7470  		LambdaFunctionMetricStatisticAverage,
  7471  	}
  7472  }
  7473  
  7474  const (
  7475  	// LambdaFunctionRecommendationFilterNameFinding is a LambdaFunctionRecommendationFilterName enum value
  7476  	LambdaFunctionRecommendationFilterNameFinding = "Finding"
  7477  
  7478  	// LambdaFunctionRecommendationFilterNameFindingReasonCode is a LambdaFunctionRecommendationFilterName enum value
  7479  	LambdaFunctionRecommendationFilterNameFindingReasonCode = "FindingReasonCode"
  7480  )
  7481  
  7482  // LambdaFunctionRecommendationFilterName_Values returns all elements of the LambdaFunctionRecommendationFilterName enum
  7483  func LambdaFunctionRecommendationFilterName_Values() []string {
  7484  	return []string{
  7485  		LambdaFunctionRecommendationFilterNameFinding,
  7486  		LambdaFunctionRecommendationFilterNameFindingReasonCode,
  7487  	}
  7488  }
  7489  
  7490  const (
  7491  	// LambdaFunctionRecommendationFindingOptimized is a LambdaFunctionRecommendationFinding enum value
  7492  	LambdaFunctionRecommendationFindingOptimized = "Optimized"
  7493  
  7494  	// LambdaFunctionRecommendationFindingNotOptimized is a LambdaFunctionRecommendationFinding enum value
  7495  	LambdaFunctionRecommendationFindingNotOptimized = "NotOptimized"
  7496  
  7497  	// LambdaFunctionRecommendationFindingUnavailable is a LambdaFunctionRecommendationFinding enum value
  7498  	LambdaFunctionRecommendationFindingUnavailable = "Unavailable"
  7499  )
  7500  
  7501  // LambdaFunctionRecommendationFinding_Values returns all elements of the LambdaFunctionRecommendationFinding enum
  7502  func LambdaFunctionRecommendationFinding_Values() []string {
  7503  	return []string{
  7504  		LambdaFunctionRecommendationFindingOptimized,
  7505  		LambdaFunctionRecommendationFindingNotOptimized,
  7506  		LambdaFunctionRecommendationFindingUnavailable,
  7507  	}
  7508  }
  7509  
  7510  const (
  7511  	// LambdaFunctionRecommendationFindingReasonCodeMemoryOverprovisioned is a LambdaFunctionRecommendationFindingReasonCode enum value
  7512  	LambdaFunctionRecommendationFindingReasonCodeMemoryOverprovisioned = "MemoryOverprovisioned"
  7513  
  7514  	// LambdaFunctionRecommendationFindingReasonCodeMemoryUnderprovisioned is a LambdaFunctionRecommendationFindingReasonCode enum value
  7515  	LambdaFunctionRecommendationFindingReasonCodeMemoryUnderprovisioned = "MemoryUnderprovisioned"
  7516  
  7517  	// LambdaFunctionRecommendationFindingReasonCodeInsufficientData is a LambdaFunctionRecommendationFindingReasonCode enum value
  7518  	LambdaFunctionRecommendationFindingReasonCodeInsufficientData = "InsufficientData"
  7519  
  7520  	// LambdaFunctionRecommendationFindingReasonCodeInconclusive is a LambdaFunctionRecommendationFindingReasonCode enum value
  7521  	LambdaFunctionRecommendationFindingReasonCodeInconclusive = "Inconclusive"
  7522  )
  7523  
  7524  // LambdaFunctionRecommendationFindingReasonCode_Values returns all elements of the LambdaFunctionRecommendationFindingReasonCode enum
  7525  func LambdaFunctionRecommendationFindingReasonCode_Values() []string {
  7526  	return []string{
  7527  		LambdaFunctionRecommendationFindingReasonCodeMemoryOverprovisioned,
  7528  		LambdaFunctionRecommendationFindingReasonCodeMemoryUnderprovisioned,
  7529  		LambdaFunctionRecommendationFindingReasonCodeInsufficientData,
  7530  		LambdaFunctionRecommendationFindingReasonCodeInconclusive,
  7531  	}
  7532  }
  7533  
  7534  const (
  7535  	// MetricNameCpu is a MetricName enum value
  7536  	MetricNameCpu = "Cpu"
  7537  
  7538  	// MetricNameMemory is a MetricName enum value
  7539  	MetricNameMemory = "Memory"
  7540  
  7541  	// MetricNameEbsReadOpsPerSecond is a MetricName enum value
  7542  	MetricNameEbsReadOpsPerSecond = "EBS_READ_OPS_PER_SECOND"
  7543  
  7544  	// MetricNameEbsWriteOpsPerSecond is a MetricName enum value
  7545  	MetricNameEbsWriteOpsPerSecond = "EBS_WRITE_OPS_PER_SECOND"
  7546  
  7547  	// MetricNameEbsReadBytesPerSecond is a MetricName enum value
  7548  	MetricNameEbsReadBytesPerSecond = "EBS_READ_BYTES_PER_SECOND"
  7549  
  7550  	// MetricNameEbsWriteBytesPerSecond is a MetricName enum value
  7551  	MetricNameEbsWriteBytesPerSecond = "EBS_WRITE_BYTES_PER_SECOND"
  7552  
  7553  	// MetricNameDiskReadOpsPerSecond is a MetricName enum value
  7554  	MetricNameDiskReadOpsPerSecond = "DISK_READ_OPS_PER_SECOND"
  7555  
  7556  	// MetricNameDiskWriteOpsPerSecond is a MetricName enum value
  7557  	MetricNameDiskWriteOpsPerSecond = "DISK_WRITE_OPS_PER_SECOND"
  7558  
  7559  	// MetricNameDiskReadBytesPerSecond is a MetricName enum value
  7560  	MetricNameDiskReadBytesPerSecond = "DISK_READ_BYTES_PER_SECOND"
  7561  
  7562  	// MetricNameDiskWriteBytesPerSecond is a MetricName enum value
  7563  	MetricNameDiskWriteBytesPerSecond = "DISK_WRITE_BYTES_PER_SECOND"
  7564  
  7565  	// MetricNameNetworkInBytesPerSecond is a MetricName enum value
  7566  	MetricNameNetworkInBytesPerSecond = "NETWORK_IN_BYTES_PER_SECOND"
  7567  
  7568  	// MetricNameNetworkOutBytesPerSecond is a MetricName enum value
  7569  	MetricNameNetworkOutBytesPerSecond = "NETWORK_OUT_BYTES_PER_SECOND"
  7570  
  7571  	// MetricNameNetworkPacketsInPerSecond is a MetricName enum value
  7572  	MetricNameNetworkPacketsInPerSecond = "NETWORK_PACKETS_IN_PER_SECOND"
  7573  
  7574  	// MetricNameNetworkPacketsOutPerSecond is a MetricName enum value
  7575  	MetricNameNetworkPacketsOutPerSecond = "NETWORK_PACKETS_OUT_PER_SECOND"
  7576  )
  7577  
  7578  // MetricName_Values returns all elements of the MetricName enum
  7579  func MetricName_Values() []string {
  7580  	return []string{
  7581  		MetricNameCpu,
  7582  		MetricNameMemory,
  7583  		MetricNameEbsReadOpsPerSecond,
  7584  		MetricNameEbsWriteOpsPerSecond,
  7585  		MetricNameEbsReadBytesPerSecond,
  7586  		MetricNameEbsWriteBytesPerSecond,
  7587  		MetricNameDiskReadOpsPerSecond,
  7588  		MetricNameDiskWriteOpsPerSecond,
  7589  		MetricNameDiskReadBytesPerSecond,
  7590  		MetricNameDiskWriteBytesPerSecond,
  7591  		MetricNameNetworkInBytesPerSecond,
  7592  		MetricNameNetworkOutBytesPerSecond,
  7593  		MetricNameNetworkPacketsInPerSecond,
  7594  		MetricNameNetworkPacketsOutPerSecond,
  7595  	}
  7596  }
  7597  
  7598  const (
  7599  	// MetricStatisticMaximum is a MetricStatistic enum value
  7600  	MetricStatisticMaximum = "Maximum"
  7601  
  7602  	// MetricStatisticAverage is a MetricStatistic enum value
  7603  	MetricStatisticAverage = "Average"
  7604  )
  7605  
  7606  // MetricStatistic_Values returns all elements of the MetricStatistic enum
  7607  func MetricStatistic_Values() []string {
  7608  	return []string{
  7609  		MetricStatisticMaximum,
  7610  		MetricStatisticAverage,
  7611  	}
  7612  }
  7613  
  7614  const (
  7615  	// PlatformDifferenceHypervisor is a PlatformDifference enum value
  7616  	PlatformDifferenceHypervisor = "Hypervisor"
  7617  
  7618  	// PlatformDifferenceNetworkInterface is a PlatformDifference enum value
  7619  	PlatformDifferenceNetworkInterface = "NetworkInterface"
  7620  
  7621  	// PlatformDifferenceStorageInterface is a PlatformDifference enum value
  7622  	PlatformDifferenceStorageInterface = "StorageInterface"
  7623  
  7624  	// PlatformDifferenceInstanceStoreAvailability is a PlatformDifference enum value
  7625  	PlatformDifferenceInstanceStoreAvailability = "InstanceStoreAvailability"
  7626  
  7627  	// PlatformDifferenceVirtualizationType is a PlatformDifference enum value
  7628  	PlatformDifferenceVirtualizationType = "VirtualizationType"
  7629  
  7630  	// PlatformDifferenceArchitecture is a PlatformDifference enum value
  7631  	PlatformDifferenceArchitecture = "Architecture"
  7632  )
  7633  
  7634  // PlatformDifference_Values returns all elements of the PlatformDifference enum
  7635  func PlatformDifference_Values() []string {
  7636  	return []string{
  7637  		PlatformDifferenceHypervisor,
  7638  		PlatformDifferenceNetworkInterface,
  7639  		PlatformDifferenceStorageInterface,
  7640  		PlatformDifferenceInstanceStoreAvailability,
  7641  		PlatformDifferenceVirtualizationType,
  7642  		PlatformDifferenceArchitecture,
  7643  	}
  7644  }
  7645  
  7646  const (
  7647  	// RecommendationSourceTypeEc2instance is a RecommendationSourceType enum value
  7648  	RecommendationSourceTypeEc2instance = "Ec2Instance"
  7649  
  7650  	// RecommendationSourceTypeAutoScalingGroup is a RecommendationSourceType enum value
  7651  	RecommendationSourceTypeAutoScalingGroup = "AutoScalingGroup"
  7652  
  7653  	// RecommendationSourceTypeEbsVolume is a RecommendationSourceType enum value
  7654  	RecommendationSourceTypeEbsVolume = "EbsVolume"
  7655  
  7656  	// RecommendationSourceTypeLambdaFunction is a RecommendationSourceType enum value
  7657  	RecommendationSourceTypeLambdaFunction = "LambdaFunction"
  7658  )
  7659  
  7660  // RecommendationSourceType_Values returns all elements of the RecommendationSourceType enum
  7661  func RecommendationSourceType_Values() []string {
  7662  	return []string{
  7663  		RecommendationSourceTypeEc2instance,
  7664  		RecommendationSourceTypeAutoScalingGroup,
  7665  		RecommendationSourceTypeEbsVolume,
  7666  		RecommendationSourceTypeLambdaFunction,
  7667  	}
  7668  }
  7669  
  7670  const (
  7671  	// ResourceTypeEc2instance is a ResourceType enum value
  7672  	ResourceTypeEc2instance = "Ec2Instance"
  7673  
  7674  	// ResourceTypeAutoScalingGroup is a ResourceType enum value
  7675  	ResourceTypeAutoScalingGroup = "AutoScalingGroup"
  7676  
  7677  	// ResourceTypeEbsVolume is a ResourceType enum value
  7678  	ResourceTypeEbsVolume = "EbsVolume"
  7679  
  7680  	// ResourceTypeLambdaFunction is a ResourceType enum value
  7681  	ResourceTypeLambdaFunction = "LambdaFunction"
  7682  )
  7683  
  7684  // ResourceType_Values returns all elements of the ResourceType enum
  7685  func ResourceType_Values() []string {
  7686  	return []string{
  7687  		ResourceTypeEc2instance,
  7688  		ResourceTypeAutoScalingGroup,
  7689  		ResourceTypeEbsVolume,
  7690  		ResourceTypeLambdaFunction,
  7691  	}
  7692  }
  7693  
  7694  const (
  7695  	// StatusActive is a Status enum value
  7696  	StatusActive = "Active"
  7697  
  7698  	// StatusInactive is a Status enum value
  7699  	StatusInactive = "Inactive"
  7700  
  7701  	// StatusPending is a Status enum value
  7702  	StatusPending = "Pending"
  7703  
  7704  	// StatusFailed is a Status enum value
  7705  	StatusFailed = "Failed"
  7706  )
  7707  
  7708  // Status_Values returns all elements of the Status enum
  7709  func Status_Values() []string {
  7710  	return []string{
  7711  		StatusActive,
  7712  		StatusInactive,
  7713  		StatusPending,
  7714  		StatusFailed,
  7715  	}
  7716  }