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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package autoscaling
     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  	"github.com/aavshr/aws-sdk-go/private/protocol/query"
    14  )
    15  
    16  const opAttachInstances = "AttachInstances"
    17  
    18  // AttachInstancesRequest generates a "aws/request.Request" representing the
    19  // client's request for the AttachInstances operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See AttachInstances for more information on using the AttachInstances
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the AttachInstancesRequest method.
    34  //    req, resp := client.AttachInstancesRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachInstances
    42  func (c *AutoScaling) AttachInstancesRequest(input *AttachInstancesInput) (req *request.Request, output *AttachInstancesOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAttachInstances,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AttachInstancesInput{}
    51  	}
    52  
    53  	output = &AttachInstancesOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // AttachInstances API operation for Auto Scaling.
    60  //
    61  // Attaches one or more EC2 instances to the specified Auto Scaling group.
    62  //
    63  // When you attach instances, Amazon EC2 Auto Scaling increases the desired
    64  // capacity of the group by the number of instances being attached. If the number
    65  // of instances being attached plus the desired capacity of the group exceeds
    66  // the maximum size of the group, the operation fails.
    67  //
    68  // If there is a Classic Load Balancer attached to your Auto Scaling group,
    69  // the instances are also registered with the load balancer. If there are target
    70  // groups attached to your Auto Scaling group, the instances are also registered
    71  // with the target groups.
    72  //
    73  // For more information, see Attach EC2 instances to your Auto Scaling group
    74  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-instance-asg.html)
    75  // in the Amazon EC2 Auto Scaling User Guide.
    76  //
    77  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    78  // with awserr.Error's Code and Message methods to get detailed information about
    79  // the error.
    80  //
    81  // See the AWS API reference guide for Auto Scaling's
    82  // API operation AttachInstances for usage and error information.
    83  //
    84  // Returned Error Codes:
    85  //   * ErrCodeResourceContentionFault "ResourceContention"
    86  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
    87  //   (for example, an Auto Scaling group, instance, or load balancer).
    88  //
    89  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
    90  //   The service-linked role is not yet ready for use.
    91  //
    92  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachInstances
    93  func (c *AutoScaling) AttachInstances(input *AttachInstancesInput) (*AttachInstancesOutput, error) {
    94  	req, out := c.AttachInstancesRequest(input)
    95  	return out, req.Send()
    96  }
    97  
    98  // AttachInstancesWithContext is the same as AttachInstances with the addition of
    99  // the ability to pass a context and additional request options.
   100  //
   101  // See AttachInstances for details on how to use this API operation.
   102  //
   103  // The context must be non-nil and will be used for request cancellation. If
   104  // the context is nil a panic will occur. In the future the SDK may create
   105  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   106  // for more information on using Contexts.
   107  func (c *AutoScaling) AttachInstancesWithContext(ctx aws.Context, input *AttachInstancesInput, opts ...request.Option) (*AttachInstancesOutput, error) {
   108  	req, out := c.AttachInstancesRequest(input)
   109  	req.SetContext(ctx)
   110  	req.ApplyOptions(opts...)
   111  	return out, req.Send()
   112  }
   113  
   114  const opAttachLoadBalancerTargetGroups = "AttachLoadBalancerTargetGroups"
   115  
   116  // AttachLoadBalancerTargetGroupsRequest generates a "aws/request.Request" representing the
   117  // client's request for the AttachLoadBalancerTargetGroups operation. The "output" return
   118  // value will be populated with the request's response once the request completes
   119  // successfully.
   120  //
   121  // Use "Send" method on the returned Request to send the API call to the service.
   122  // the "output" return value is not valid until after Send returns without error.
   123  //
   124  // See AttachLoadBalancerTargetGroups for more information on using the AttachLoadBalancerTargetGroups
   125  // API call, and error handling.
   126  //
   127  // This method is useful when you want to inject custom logic or configuration
   128  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   129  //
   130  //
   131  //    // Example sending a request using the AttachLoadBalancerTargetGroupsRequest method.
   132  //    req, resp := client.AttachLoadBalancerTargetGroupsRequest(params)
   133  //
   134  //    err := req.Send()
   135  //    if err == nil { // resp is now filled
   136  //        fmt.Println(resp)
   137  //    }
   138  //
   139  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancerTargetGroups
   140  func (c *AutoScaling) AttachLoadBalancerTargetGroupsRequest(input *AttachLoadBalancerTargetGroupsInput) (req *request.Request, output *AttachLoadBalancerTargetGroupsOutput) {
   141  	op := &request.Operation{
   142  		Name:       opAttachLoadBalancerTargetGroups,
   143  		HTTPMethod: "POST",
   144  		HTTPPath:   "/",
   145  	}
   146  
   147  	if input == nil {
   148  		input = &AttachLoadBalancerTargetGroupsInput{}
   149  	}
   150  
   151  	output = &AttachLoadBalancerTargetGroupsOutput{}
   152  	req = c.newRequest(op, input, output)
   153  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   154  	return
   155  }
   156  
   157  // AttachLoadBalancerTargetGroups API operation for Auto Scaling.
   158  //
   159  // Attaches one or more target groups to the specified Auto Scaling group.
   160  //
   161  // This operation is used with the following load balancer types:
   162  //
   163  //    * Application Load Balancer - Operates at the application layer (layer
   164  //    7) and supports HTTP and HTTPS.
   165  //
   166  //    * Network Load Balancer - Operates at the transport layer (layer 4) and
   167  //    supports TCP, TLS, and UDP.
   168  //
   169  //    * Gateway Load Balancer - Operates at the network layer (layer 3).
   170  //
   171  // To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups
   172  // API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups
   173  // API.
   174  //
   175  // For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling
   176  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
   177  // in the Amazon EC2 Auto Scaling User Guide.
   178  //
   179  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   180  // with awserr.Error's Code and Message methods to get detailed information about
   181  // the error.
   182  //
   183  // See the AWS API reference guide for Auto Scaling's
   184  // API operation AttachLoadBalancerTargetGroups for usage and error information.
   185  //
   186  // Returned Error Codes:
   187  //   * ErrCodeResourceContentionFault "ResourceContention"
   188  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   189  //   (for example, an Auto Scaling group, instance, or load balancer).
   190  //
   191  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
   192  //   The service-linked role is not yet ready for use.
   193  //
   194  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancerTargetGroups
   195  func (c *AutoScaling) AttachLoadBalancerTargetGroups(input *AttachLoadBalancerTargetGroupsInput) (*AttachLoadBalancerTargetGroupsOutput, error) {
   196  	req, out := c.AttachLoadBalancerTargetGroupsRequest(input)
   197  	return out, req.Send()
   198  }
   199  
   200  // AttachLoadBalancerTargetGroupsWithContext is the same as AttachLoadBalancerTargetGroups with the addition of
   201  // the ability to pass a context and additional request options.
   202  //
   203  // See AttachLoadBalancerTargetGroups for details on how to use this API operation.
   204  //
   205  // The context must be non-nil and will be used for request cancellation. If
   206  // the context is nil a panic will occur. In the future the SDK may create
   207  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   208  // for more information on using Contexts.
   209  func (c *AutoScaling) AttachLoadBalancerTargetGroupsWithContext(ctx aws.Context, input *AttachLoadBalancerTargetGroupsInput, opts ...request.Option) (*AttachLoadBalancerTargetGroupsOutput, error) {
   210  	req, out := c.AttachLoadBalancerTargetGroupsRequest(input)
   211  	req.SetContext(ctx)
   212  	req.ApplyOptions(opts...)
   213  	return out, req.Send()
   214  }
   215  
   216  const opAttachLoadBalancers = "AttachLoadBalancers"
   217  
   218  // AttachLoadBalancersRequest generates a "aws/request.Request" representing the
   219  // client's request for the AttachLoadBalancers operation. The "output" return
   220  // value will be populated with the request's response once the request completes
   221  // successfully.
   222  //
   223  // Use "Send" method on the returned Request to send the API call to the service.
   224  // the "output" return value is not valid until after Send returns without error.
   225  //
   226  // See AttachLoadBalancers for more information on using the AttachLoadBalancers
   227  // API call, and error handling.
   228  //
   229  // This method is useful when you want to inject custom logic or configuration
   230  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   231  //
   232  //
   233  //    // Example sending a request using the AttachLoadBalancersRequest method.
   234  //    req, resp := client.AttachLoadBalancersRequest(params)
   235  //
   236  //    err := req.Send()
   237  //    if err == nil { // resp is now filled
   238  //        fmt.Println(resp)
   239  //    }
   240  //
   241  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancers
   242  func (c *AutoScaling) AttachLoadBalancersRequest(input *AttachLoadBalancersInput) (req *request.Request, output *AttachLoadBalancersOutput) {
   243  	op := &request.Operation{
   244  		Name:       opAttachLoadBalancers,
   245  		HTTPMethod: "POST",
   246  		HTTPPath:   "/",
   247  	}
   248  
   249  	if input == nil {
   250  		input = &AttachLoadBalancersInput{}
   251  	}
   252  
   253  	output = &AttachLoadBalancersOutput{}
   254  	req = c.newRequest(op, input, output)
   255  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   256  	return
   257  }
   258  
   259  // AttachLoadBalancers API operation for Auto Scaling.
   260  //
   261  //
   262  // To attach an Application Load Balancer, Network Load Balancer, or Gateway
   263  // Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead.
   264  //
   265  // Attaches one or more Classic Load Balancers to the specified Auto Scaling
   266  // group. Amazon EC2 Auto Scaling registers the running instances with these
   267  // Classic Load Balancers.
   268  //
   269  // To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers
   270  // API. To detach the load balancer from the Auto Scaling group, call the DetachLoadBalancers
   271  // API.
   272  //
   273  // For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling
   274  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
   275  // in the Amazon EC2 Auto Scaling User Guide.
   276  //
   277  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   278  // with awserr.Error's Code and Message methods to get detailed information about
   279  // the error.
   280  //
   281  // See the AWS API reference guide for Auto Scaling's
   282  // API operation AttachLoadBalancers for usage and error information.
   283  //
   284  // Returned Error Codes:
   285  //   * ErrCodeResourceContentionFault "ResourceContention"
   286  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   287  //   (for example, an Auto Scaling group, instance, or load balancer).
   288  //
   289  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
   290  //   The service-linked role is not yet ready for use.
   291  //
   292  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancers
   293  func (c *AutoScaling) AttachLoadBalancers(input *AttachLoadBalancersInput) (*AttachLoadBalancersOutput, error) {
   294  	req, out := c.AttachLoadBalancersRequest(input)
   295  	return out, req.Send()
   296  }
   297  
   298  // AttachLoadBalancersWithContext is the same as AttachLoadBalancers with the addition of
   299  // the ability to pass a context and additional request options.
   300  //
   301  // See AttachLoadBalancers for details on how to use this API operation.
   302  //
   303  // The context must be non-nil and will be used for request cancellation. If
   304  // the context is nil a panic will occur. In the future the SDK may create
   305  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   306  // for more information on using Contexts.
   307  func (c *AutoScaling) AttachLoadBalancersWithContext(ctx aws.Context, input *AttachLoadBalancersInput, opts ...request.Option) (*AttachLoadBalancersOutput, error) {
   308  	req, out := c.AttachLoadBalancersRequest(input)
   309  	req.SetContext(ctx)
   310  	req.ApplyOptions(opts...)
   311  	return out, req.Send()
   312  }
   313  
   314  const opBatchDeleteScheduledAction = "BatchDeleteScheduledAction"
   315  
   316  // BatchDeleteScheduledActionRequest generates a "aws/request.Request" representing the
   317  // client's request for the BatchDeleteScheduledAction operation. The "output" return
   318  // value will be populated with the request's response once the request completes
   319  // successfully.
   320  //
   321  // Use "Send" method on the returned Request to send the API call to the service.
   322  // the "output" return value is not valid until after Send returns without error.
   323  //
   324  // See BatchDeleteScheduledAction for more information on using the BatchDeleteScheduledAction
   325  // API call, and error handling.
   326  //
   327  // This method is useful when you want to inject custom logic or configuration
   328  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   329  //
   330  //
   331  //    // Example sending a request using the BatchDeleteScheduledActionRequest method.
   332  //    req, resp := client.BatchDeleteScheduledActionRequest(params)
   333  //
   334  //    err := req.Send()
   335  //    if err == nil { // resp is now filled
   336  //        fmt.Println(resp)
   337  //    }
   338  //
   339  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BatchDeleteScheduledAction
   340  func (c *AutoScaling) BatchDeleteScheduledActionRequest(input *BatchDeleteScheduledActionInput) (req *request.Request, output *BatchDeleteScheduledActionOutput) {
   341  	op := &request.Operation{
   342  		Name:       opBatchDeleteScheduledAction,
   343  		HTTPMethod: "POST",
   344  		HTTPPath:   "/",
   345  	}
   346  
   347  	if input == nil {
   348  		input = &BatchDeleteScheduledActionInput{}
   349  	}
   350  
   351  	output = &BatchDeleteScheduledActionOutput{}
   352  	req = c.newRequest(op, input, output)
   353  	return
   354  }
   355  
   356  // BatchDeleteScheduledAction API operation for Auto Scaling.
   357  //
   358  // Deletes one or more scheduled actions for the specified Auto Scaling group.
   359  //
   360  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   361  // with awserr.Error's Code and Message methods to get detailed information about
   362  // the error.
   363  //
   364  // See the AWS API reference guide for Auto Scaling's
   365  // API operation BatchDeleteScheduledAction for usage and error information.
   366  //
   367  // Returned Error Codes:
   368  //   * ErrCodeResourceContentionFault "ResourceContention"
   369  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   370  //   (for example, an Auto Scaling group, instance, or load balancer).
   371  //
   372  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BatchDeleteScheduledAction
   373  func (c *AutoScaling) BatchDeleteScheduledAction(input *BatchDeleteScheduledActionInput) (*BatchDeleteScheduledActionOutput, error) {
   374  	req, out := c.BatchDeleteScheduledActionRequest(input)
   375  	return out, req.Send()
   376  }
   377  
   378  // BatchDeleteScheduledActionWithContext is the same as BatchDeleteScheduledAction with the addition of
   379  // the ability to pass a context and additional request options.
   380  //
   381  // See BatchDeleteScheduledAction for details on how to use this API operation.
   382  //
   383  // The context must be non-nil and will be used for request cancellation. If
   384  // the context is nil a panic will occur. In the future the SDK may create
   385  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   386  // for more information on using Contexts.
   387  func (c *AutoScaling) BatchDeleteScheduledActionWithContext(ctx aws.Context, input *BatchDeleteScheduledActionInput, opts ...request.Option) (*BatchDeleteScheduledActionOutput, error) {
   388  	req, out := c.BatchDeleteScheduledActionRequest(input)
   389  	req.SetContext(ctx)
   390  	req.ApplyOptions(opts...)
   391  	return out, req.Send()
   392  }
   393  
   394  const opBatchPutScheduledUpdateGroupAction = "BatchPutScheduledUpdateGroupAction"
   395  
   396  // BatchPutScheduledUpdateGroupActionRequest generates a "aws/request.Request" representing the
   397  // client's request for the BatchPutScheduledUpdateGroupAction operation. The "output" return
   398  // value will be populated with the request's response once the request completes
   399  // successfully.
   400  //
   401  // Use "Send" method on the returned Request to send the API call to the service.
   402  // the "output" return value is not valid until after Send returns without error.
   403  //
   404  // See BatchPutScheduledUpdateGroupAction for more information on using the BatchPutScheduledUpdateGroupAction
   405  // API call, and error handling.
   406  //
   407  // This method is useful when you want to inject custom logic or configuration
   408  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   409  //
   410  //
   411  //    // Example sending a request using the BatchPutScheduledUpdateGroupActionRequest method.
   412  //    req, resp := client.BatchPutScheduledUpdateGroupActionRequest(params)
   413  //
   414  //    err := req.Send()
   415  //    if err == nil { // resp is now filled
   416  //        fmt.Println(resp)
   417  //    }
   418  //
   419  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BatchPutScheduledUpdateGroupAction
   420  func (c *AutoScaling) BatchPutScheduledUpdateGroupActionRequest(input *BatchPutScheduledUpdateGroupActionInput) (req *request.Request, output *BatchPutScheduledUpdateGroupActionOutput) {
   421  	op := &request.Operation{
   422  		Name:       opBatchPutScheduledUpdateGroupAction,
   423  		HTTPMethod: "POST",
   424  		HTTPPath:   "/",
   425  	}
   426  
   427  	if input == nil {
   428  		input = &BatchPutScheduledUpdateGroupActionInput{}
   429  	}
   430  
   431  	output = &BatchPutScheduledUpdateGroupActionOutput{}
   432  	req = c.newRequest(op, input, output)
   433  	return
   434  }
   435  
   436  // BatchPutScheduledUpdateGroupAction API operation for Auto Scaling.
   437  //
   438  // Creates or updates one or more scheduled scaling actions for an Auto Scaling
   439  // group.
   440  //
   441  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   442  // with awserr.Error's Code and Message methods to get detailed information about
   443  // the error.
   444  //
   445  // See the AWS API reference guide for Auto Scaling's
   446  // API operation BatchPutScheduledUpdateGroupAction for usage and error information.
   447  //
   448  // Returned Error Codes:
   449  //   * ErrCodeAlreadyExistsFault "AlreadyExists"
   450  //   You already have an Auto Scaling group or launch configuration with this
   451  //   name.
   452  //
   453  //   * ErrCodeLimitExceededFault "LimitExceeded"
   454  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
   455  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
   456  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
   457  //   in the Amazon EC2 Auto Scaling API Reference.
   458  //
   459  //   * ErrCodeResourceContentionFault "ResourceContention"
   460  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   461  //   (for example, an Auto Scaling group, instance, or load balancer).
   462  //
   463  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BatchPutScheduledUpdateGroupAction
   464  func (c *AutoScaling) BatchPutScheduledUpdateGroupAction(input *BatchPutScheduledUpdateGroupActionInput) (*BatchPutScheduledUpdateGroupActionOutput, error) {
   465  	req, out := c.BatchPutScheduledUpdateGroupActionRequest(input)
   466  	return out, req.Send()
   467  }
   468  
   469  // BatchPutScheduledUpdateGroupActionWithContext is the same as BatchPutScheduledUpdateGroupAction with the addition of
   470  // the ability to pass a context and additional request options.
   471  //
   472  // See BatchPutScheduledUpdateGroupAction for details on how to use this API operation.
   473  //
   474  // The context must be non-nil and will be used for request cancellation. If
   475  // the context is nil a panic will occur. In the future the SDK may create
   476  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   477  // for more information on using Contexts.
   478  func (c *AutoScaling) BatchPutScheduledUpdateGroupActionWithContext(ctx aws.Context, input *BatchPutScheduledUpdateGroupActionInput, opts ...request.Option) (*BatchPutScheduledUpdateGroupActionOutput, error) {
   479  	req, out := c.BatchPutScheduledUpdateGroupActionRequest(input)
   480  	req.SetContext(ctx)
   481  	req.ApplyOptions(opts...)
   482  	return out, req.Send()
   483  }
   484  
   485  const opCancelInstanceRefresh = "CancelInstanceRefresh"
   486  
   487  // CancelInstanceRefreshRequest generates a "aws/request.Request" representing the
   488  // client's request for the CancelInstanceRefresh operation. The "output" return
   489  // value will be populated with the request's response once the request completes
   490  // successfully.
   491  //
   492  // Use "Send" method on the returned Request to send the API call to the service.
   493  // the "output" return value is not valid until after Send returns without error.
   494  //
   495  // See CancelInstanceRefresh for more information on using the CancelInstanceRefresh
   496  // API call, and error handling.
   497  //
   498  // This method is useful when you want to inject custom logic or configuration
   499  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   500  //
   501  //
   502  //    // Example sending a request using the CancelInstanceRefreshRequest method.
   503  //    req, resp := client.CancelInstanceRefreshRequest(params)
   504  //
   505  //    err := req.Send()
   506  //    if err == nil { // resp is now filled
   507  //        fmt.Println(resp)
   508  //    }
   509  //
   510  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CancelInstanceRefresh
   511  func (c *AutoScaling) CancelInstanceRefreshRequest(input *CancelInstanceRefreshInput) (req *request.Request, output *CancelInstanceRefreshOutput) {
   512  	op := &request.Operation{
   513  		Name:       opCancelInstanceRefresh,
   514  		HTTPMethod: "POST",
   515  		HTTPPath:   "/",
   516  	}
   517  
   518  	if input == nil {
   519  		input = &CancelInstanceRefreshInput{}
   520  	}
   521  
   522  	output = &CancelInstanceRefreshOutput{}
   523  	req = c.newRequest(op, input, output)
   524  	return
   525  }
   526  
   527  // CancelInstanceRefresh API operation for Auto Scaling.
   528  //
   529  // Cancels an instance refresh operation in progress. Cancellation does not
   530  // roll back any replacements that have already been completed, but it prevents
   531  // new replacements from being started.
   532  //
   533  // This operation is part of the instance refresh feature (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html)
   534  // in Amazon EC2 Auto Scaling, which helps you update instances in your Auto
   535  // Scaling group after you make configuration changes.
   536  //
   537  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   538  // with awserr.Error's Code and Message methods to get detailed information about
   539  // the error.
   540  //
   541  // See the AWS API reference guide for Auto Scaling's
   542  // API operation CancelInstanceRefresh for usage and error information.
   543  //
   544  // Returned Error Codes:
   545  //   * ErrCodeLimitExceededFault "LimitExceeded"
   546  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
   547  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
   548  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
   549  //   in the Amazon EC2 Auto Scaling API Reference.
   550  //
   551  //   * ErrCodeResourceContentionFault "ResourceContention"
   552  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   553  //   (for example, an Auto Scaling group, instance, or load balancer).
   554  //
   555  //   * ErrCodeActiveInstanceRefreshNotFoundFault "ActiveInstanceRefreshNotFound"
   556  //   The request failed because an active instance refresh for the specified Auto
   557  //   Scaling group was not found.
   558  //
   559  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CancelInstanceRefresh
   560  func (c *AutoScaling) CancelInstanceRefresh(input *CancelInstanceRefreshInput) (*CancelInstanceRefreshOutput, error) {
   561  	req, out := c.CancelInstanceRefreshRequest(input)
   562  	return out, req.Send()
   563  }
   564  
   565  // CancelInstanceRefreshWithContext is the same as CancelInstanceRefresh with the addition of
   566  // the ability to pass a context and additional request options.
   567  //
   568  // See CancelInstanceRefresh for details on how to use this API operation.
   569  //
   570  // The context must be non-nil and will be used for request cancellation. If
   571  // the context is nil a panic will occur. In the future the SDK may create
   572  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   573  // for more information on using Contexts.
   574  func (c *AutoScaling) CancelInstanceRefreshWithContext(ctx aws.Context, input *CancelInstanceRefreshInput, opts ...request.Option) (*CancelInstanceRefreshOutput, error) {
   575  	req, out := c.CancelInstanceRefreshRequest(input)
   576  	req.SetContext(ctx)
   577  	req.ApplyOptions(opts...)
   578  	return out, req.Send()
   579  }
   580  
   581  const opCompleteLifecycleAction = "CompleteLifecycleAction"
   582  
   583  // CompleteLifecycleActionRequest generates a "aws/request.Request" representing the
   584  // client's request for the CompleteLifecycleAction operation. The "output" return
   585  // value will be populated with the request's response once the request completes
   586  // successfully.
   587  //
   588  // Use "Send" method on the returned Request to send the API call to the service.
   589  // the "output" return value is not valid until after Send returns without error.
   590  //
   591  // See CompleteLifecycleAction for more information on using the CompleteLifecycleAction
   592  // API call, and error handling.
   593  //
   594  // This method is useful when you want to inject custom logic or configuration
   595  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   596  //
   597  //
   598  //    // Example sending a request using the CompleteLifecycleActionRequest method.
   599  //    req, resp := client.CompleteLifecycleActionRequest(params)
   600  //
   601  //    err := req.Send()
   602  //    if err == nil { // resp is now filled
   603  //        fmt.Println(resp)
   604  //    }
   605  //
   606  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CompleteLifecycleAction
   607  func (c *AutoScaling) CompleteLifecycleActionRequest(input *CompleteLifecycleActionInput) (req *request.Request, output *CompleteLifecycleActionOutput) {
   608  	op := &request.Operation{
   609  		Name:       opCompleteLifecycleAction,
   610  		HTTPMethod: "POST",
   611  		HTTPPath:   "/",
   612  	}
   613  
   614  	if input == nil {
   615  		input = &CompleteLifecycleActionInput{}
   616  	}
   617  
   618  	output = &CompleteLifecycleActionOutput{}
   619  	req = c.newRequest(op, input, output)
   620  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   621  	return
   622  }
   623  
   624  // CompleteLifecycleAction API operation for Auto Scaling.
   625  //
   626  // Completes the lifecycle action for the specified token or instance with the
   627  // specified result.
   628  //
   629  // This step is a part of the procedure for adding a lifecycle hook to an Auto
   630  // Scaling group:
   631  //
   632  // (Optional) Create a Lambda function and a rule that allows CloudWatch Events
   633  // to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates
   634  // instances.
   635  //
   636  // (Optional) Create a notification target and an IAM role. The target can be
   637  // either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon
   638  // EC2 Auto Scaling to publish lifecycle notifications to the target.
   639  //
   640  // Create the lifecycle hook. Specify whether the hook is used when the instances
   641  // launch or terminate.
   642  //
   643  // If you need more time, record the lifecycle action heartbeat to keep the
   644  // instance in a pending state.
   645  //
   646  // If you finish before the timeout period ends, complete the lifecycle action.
   647  //
   648  // For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
   649  // in the Amazon EC2 Auto Scaling User Guide.
   650  //
   651  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   652  // with awserr.Error's Code and Message methods to get detailed information about
   653  // the error.
   654  //
   655  // See the AWS API reference guide for Auto Scaling's
   656  // API operation CompleteLifecycleAction for usage and error information.
   657  //
   658  // Returned Error Codes:
   659  //   * ErrCodeResourceContentionFault "ResourceContention"
   660  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   661  //   (for example, an Auto Scaling group, instance, or load balancer).
   662  //
   663  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CompleteLifecycleAction
   664  func (c *AutoScaling) CompleteLifecycleAction(input *CompleteLifecycleActionInput) (*CompleteLifecycleActionOutput, error) {
   665  	req, out := c.CompleteLifecycleActionRequest(input)
   666  	return out, req.Send()
   667  }
   668  
   669  // CompleteLifecycleActionWithContext is the same as CompleteLifecycleAction with the addition of
   670  // the ability to pass a context and additional request options.
   671  //
   672  // See CompleteLifecycleAction for details on how to use this API operation.
   673  //
   674  // The context must be non-nil and will be used for request cancellation. If
   675  // the context is nil a panic will occur. In the future the SDK may create
   676  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   677  // for more information on using Contexts.
   678  func (c *AutoScaling) CompleteLifecycleActionWithContext(ctx aws.Context, input *CompleteLifecycleActionInput, opts ...request.Option) (*CompleteLifecycleActionOutput, error) {
   679  	req, out := c.CompleteLifecycleActionRequest(input)
   680  	req.SetContext(ctx)
   681  	req.ApplyOptions(opts...)
   682  	return out, req.Send()
   683  }
   684  
   685  const opCreateAutoScalingGroup = "CreateAutoScalingGroup"
   686  
   687  // CreateAutoScalingGroupRequest generates a "aws/request.Request" representing the
   688  // client's request for the CreateAutoScalingGroup operation. The "output" return
   689  // value will be populated with the request's response once the request completes
   690  // successfully.
   691  //
   692  // Use "Send" method on the returned Request to send the API call to the service.
   693  // the "output" return value is not valid until after Send returns without error.
   694  //
   695  // See CreateAutoScalingGroup for more information on using the CreateAutoScalingGroup
   696  // API call, and error handling.
   697  //
   698  // This method is useful when you want to inject custom logic or configuration
   699  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   700  //
   701  //
   702  //    // Example sending a request using the CreateAutoScalingGroupRequest method.
   703  //    req, resp := client.CreateAutoScalingGroupRequest(params)
   704  //
   705  //    err := req.Send()
   706  //    if err == nil { // resp is now filled
   707  //        fmt.Println(resp)
   708  //    }
   709  //
   710  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroup
   711  func (c *AutoScaling) CreateAutoScalingGroupRequest(input *CreateAutoScalingGroupInput) (req *request.Request, output *CreateAutoScalingGroupOutput) {
   712  	op := &request.Operation{
   713  		Name:       opCreateAutoScalingGroup,
   714  		HTTPMethod: "POST",
   715  		HTTPPath:   "/",
   716  	}
   717  
   718  	if input == nil {
   719  		input = &CreateAutoScalingGroupInput{}
   720  	}
   721  
   722  	output = &CreateAutoScalingGroupOutput{}
   723  	req = c.newRequest(op, input, output)
   724  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   725  	return
   726  }
   727  
   728  // CreateAutoScalingGroup API operation for Auto Scaling.
   729  //
   730  // We strongly recommend using a launch template when calling this operation
   731  // to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.
   732  //
   733  // Creates an Auto Scaling group with the specified name and attributes.
   734  //
   735  // If you exceed your maximum limit of Auto Scaling groups, the call fails.
   736  // To query this limit, call the DescribeAccountLimits API. For information
   737  // about updating this limit, see Amazon EC2 Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
   738  // in the Amazon EC2 Auto Scaling User Guide.
   739  //
   740  // For introductory exercises for creating an Auto Scaling group, see Getting
   741  // started with Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html)
   742  // and Tutorial: Set up a scaled and load-balanced application (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-register-lbs-with-asg.html)
   743  // in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto
   744  // Scaling groups (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html)
   745  // in the Amazon EC2 Auto Scaling User Guide.
   746  //
   747  // Every Auto Scaling group has three size parameters (DesiredCapacity, MaxSize,
   748  // and MinSize). Usually, you set these sizes based on a specific number of
   749  // instances. However, if you configure a mixed instances policy that defines
   750  // weights for the instance types, you must specify these sizes with the same
   751  // units that you use for weighting instances.
   752  //
   753  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   754  // with awserr.Error's Code and Message methods to get detailed information about
   755  // the error.
   756  //
   757  // See the AWS API reference guide for Auto Scaling's
   758  // API operation CreateAutoScalingGroup for usage and error information.
   759  //
   760  // Returned Error Codes:
   761  //   * ErrCodeAlreadyExistsFault "AlreadyExists"
   762  //   You already have an Auto Scaling group or launch configuration with this
   763  //   name.
   764  //
   765  //   * ErrCodeLimitExceededFault "LimitExceeded"
   766  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
   767  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
   768  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
   769  //   in the Amazon EC2 Auto Scaling API Reference.
   770  //
   771  //   * ErrCodeResourceContentionFault "ResourceContention"
   772  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   773  //   (for example, an Auto Scaling group, instance, or load balancer).
   774  //
   775  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
   776  //   The service-linked role is not yet ready for use.
   777  //
   778  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroup
   779  func (c *AutoScaling) CreateAutoScalingGroup(input *CreateAutoScalingGroupInput) (*CreateAutoScalingGroupOutput, error) {
   780  	req, out := c.CreateAutoScalingGroupRequest(input)
   781  	return out, req.Send()
   782  }
   783  
   784  // CreateAutoScalingGroupWithContext is the same as CreateAutoScalingGroup with the addition of
   785  // the ability to pass a context and additional request options.
   786  //
   787  // See CreateAutoScalingGroup for details on how to use this API operation.
   788  //
   789  // The context must be non-nil and will be used for request cancellation. If
   790  // the context is nil a panic will occur. In the future the SDK may create
   791  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   792  // for more information on using Contexts.
   793  func (c *AutoScaling) CreateAutoScalingGroupWithContext(ctx aws.Context, input *CreateAutoScalingGroupInput, opts ...request.Option) (*CreateAutoScalingGroupOutput, error) {
   794  	req, out := c.CreateAutoScalingGroupRequest(input)
   795  	req.SetContext(ctx)
   796  	req.ApplyOptions(opts...)
   797  	return out, req.Send()
   798  }
   799  
   800  const opCreateLaunchConfiguration = "CreateLaunchConfiguration"
   801  
   802  // CreateLaunchConfigurationRequest generates a "aws/request.Request" representing the
   803  // client's request for the CreateLaunchConfiguration operation. The "output" return
   804  // value will be populated with the request's response once the request completes
   805  // successfully.
   806  //
   807  // Use "Send" method on the returned Request to send the API call to the service.
   808  // the "output" return value is not valid until after Send returns without error.
   809  //
   810  // See CreateLaunchConfiguration for more information on using the CreateLaunchConfiguration
   811  // API call, and error handling.
   812  //
   813  // This method is useful when you want to inject custom logic or configuration
   814  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   815  //
   816  //
   817  //    // Example sending a request using the CreateLaunchConfigurationRequest method.
   818  //    req, resp := client.CreateLaunchConfigurationRequest(params)
   819  //
   820  //    err := req.Send()
   821  //    if err == nil { // resp is now filled
   822  //        fmt.Println(resp)
   823  //    }
   824  //
   825  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateLaunchConfiguration
   826  func (c *AutoScaling) CreateLaunchConfigurationRequest(input *CreateLaunchConfigurationInput) (req *request.Request, output *CreateLaunchConfigurationOutput) {
   827  	op := &request.Operation{
   828  		Name:       opCreateLaunchConfiguration,
   829  		HTTPMethod: "POST",
   830  		HTTPPath:   "/",
   831  	}
   832  
   833  	if input == nil {
   834  		input = &CreateLaunchConfigurationInput{}
   835  	}
   836  
   837  	output = &CreateLaunchConfigurationOutput{}
   838  	req = c.newRequest(op, input, output)
   839  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   840  	return
   841  }
   842  
   843  // CreateLaunchConfiguration API operation for Auto Scaling.
   844  //
   845  // Creates a launch configuration.
   846  //
   847  // If you exceed your maximum limit of launch configurations, the call fails.
   848  // To query this limit, call the DescribeAccountLimits API. For information
   849  // about updating this limit, see Amazon EC2 Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
   850  // in the Amazon EC2 Auto Scaling User Guide.
   851  //
   852  // For more information, see Launch configurations (https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html)
   853  // in the Amazon EC2 Auto Scaling User Guide.
   854  //
   855  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   856  // with awserr.Error's Code and Message methods to get detailed information about
   857  // the error.
   858  //
   859  // See the AWS API reference guide for Auto Scaling's
   860  // API operation CreateLaunchConfiguration for usage and error information.
   861  //
   862  // Returned Error Codes:
   863  //   * ErrCodeAlreadyExistsFault "AlreadyExists"
   864  //   You already have an Auto Scaling group or launch configuration with this
   865  //   name.
   866  //
   867  //   * ErrCodeLimitExceededFault "LimitExceeded"
   868  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
   869  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
   870  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
   871  //   in the Amazon EC2 Auto Scaling API Reference.
   872  //
   873  //   * ErrCodeResourceContentionFault "ResourceContention"
   874  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   875  //   (for example, an Auto Scaling group, instance, or load balancer).
   876  //
   877  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateLaunchConfiguration
   878  func (c *AutoScaling) CreateLaunchConfiguration(input *CreateLaunchConfigurationInput) (*CreateLaunchConfigurationOutput, error) {
   879  	req, out := c.CreateLaunchConfigurationRequest(input)
   880  	return out, req.Send()
   881  }
   882  
   883  // CreateLaunchConfigurationWithContext is the same as CreateLaunchConfiguration with the addition of
   884  // the ability to pass a context and additional request options.
   885  //
   886  // See CreateLaunchConfiguration for details on how to use this API operation.
   887  //
   888  // The context must be non-nil and will be used for request cancellation. If
   889  // the context is nil a panic will occur. In the future the SDK may create
   890  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   891  // for more information on using Contexts.
   892  func (c *AutoScaling) CreateLaunchConfigurationWithContext(ctx aws.Context, input *CreateLaunchConfigurationInput, opts ...request.Option) (*CreateLaunchConfigurationOutput, error) {
   893  	req, out := c.CreateLaunchConfigurationRequest(input)
   894  	req.SetContext(ctx)
   895  	req.ApplyOptions(opts...)
   896  	return out, req.Send()
   897  }
   898  
   899  const opCreateOrUpdateTags = "CreateOrUpdateTags"
   900  
   901  // CreateOrUpdateTagsRequest generates a "aws/request.Request" representing the
   902  // client's request for the CreateOrUpdateTags operation. The "output" return
   903  // value will be populated with the request's response once the request completes
   904  // successfully.
   905  //
   906  // Use "Send" method on the returned Request to send the API call to the service.
   907  // the "output" return value is not valid until after Send returns without error.
   908  //
   909  // See CreateOrUpdateTags for more information on using the CreateOrUpdateTags
   910  // API call, and error handling.
   911  //
   912  // This method is useful when you want to inject custom logic or configuration
   913  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   914  //
   915  //
   916  //    // Example sending a request using the CreateOrUpdateTagsRequest method.
   917  //    req, resp := client.CreateOrUpdateTagsRequest(params)
   918  //
   919  //    err := req.Send()
   920  //    if err == nil { // resp is now filled
   921  //        fmt.Println(resp)
   922  //    }
   923  //
   924  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateOrUpdateTags
   925  func (c *AutoScaling) CreateOrUpdateTagsRequest(input *CreateOrUpdateTagsInput) (req *request.Request, output *CreateOrUpdateTagsOutput) {
   926  	op := &request.Operation{
   927  		Name:       opCreateOrUpdateTags,
   928  		HTTPMethod: "POST",
   929  		HTTPPath:   "/",
   930  	}
   931  
   932  	if input == nil {
   933  		input = &CreateOrUpdateTagsInput{}
   934  	}
   935  
   936  	output = &CreateOrUpdateTagsOutput{}
   937  	req = c.newRequest(op, input, output)
   938  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   939  	return
   940  }
   941  
   942  // CreateOrUpdateTags API operation for Auto Scaling.
   943  //
   944  // Creates or updates tags for the specified Auto Scaling group.
   945  //
   946  // When you specify a tag with a key that already exists, the operation overwrites
   947  // the previous tag definition, and you do not get an error message.
   948  //
   949  // For more information, see Tagging Auto Scaling groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html)
   950  // in the Amazon EC2 Auto Scaling User Guide.
   951  //
   952  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   953  // with awserr.Error's Code and Message methods to get detailed information about
   954  // the error.
   955  //
   956  // See the AWS API reference guide for Auto Scaling's
   957  // API operation CreateOrUpdateTags for usage and error information.
   958  //
   959  // Returned Error Codes:
   960  //   * ErrCodeLimitExceededFault "LimitExceeded"
   961  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
   962  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
   963  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
   964  //   in the Amazon EC2 Auto Scaling API Reference.
   965  //
   966  //   * ErrCodeAlreadyExistsFault "AlreadyExists"
   967  //   You already have an Auto Scaling group or launch configuration with this
   968  //   name.
   969  //
   970  //   * ErrCodeResourceContentionFault "ResourceContention"
   971  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
   972  //   (for example, an Auto Scaling group, instance, or load balancer).
   973  //
   974  //   * ErrCodeResourceInUseFault "ResourceInUse"
   975  //   The operation can't be performed because the resource is in use.
   976  //
   977  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateOrUpdateTags
   978  func (c *AutoScaling) CreateOrUpdateTags(input *CreateOrUpdateTagsInput) (*CreateOrUpdateTagsOutput, error) {
   979  	req, out := c.CreateOrUpdateTagsRequest(input)
   980  	return out, req.Send()
   981  }
   982  
   983  // CreateOrUpdateTagsWithContext is the same as CreateOrUpdateTags with the addition of
   984  // the ability to pass a context and additional request options.
   985  //
   986  // See CreateOrUpdateTags for details on how to use this API operation.
   987  //
   988  // The context must be non-nil and will be used for request cancellation. If
   989  // the context is nil a panic will occur. In the future the SDK may create
   990  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   991  // for more information on using Contexts.
   992  func (c *AutoScaling) CreateOrUpdateTagsWithContext(ctx aws.Context, input *CreateOrUpdateTagsInput, opts ...request.Option) (*CreateOrUpdateTagsOutput, error) {
   993  	req, out := c.CreateOrUpdateTagsRequest(input)
   994  	req.SetContext(ctx)
   995  	req.ApplyOptions(opts...)
   996  	return out, req.Send()
   997  }
   998  
   999  const opDeleteAutoScalingGroup = "DeleteAutoScalingGroup"
  1000  
  1001  // DeleteAutoScalingGroupRequest generates a "aws/request.Request" representing the
  1002  // client's request for the DeleteAutoScalingGroup operation. The "output" return
  1003  // value will be populated with the request's response once the request completes
  1004  // successfully.
  1005  //
  1006  // Use "Send" method on the returned Request to send the API call to the service.
  1007  // the "output" return value is not valid until after Send returns without error.
  1008  //
  1009  // See DeleteAutoScalingGroup for more information on using the DeleteAutoScalingGroup
  1010  // API call, and error handling.
  1011  //
  1012  // This method is useful when you want to inject custom logic or configuration
  1013  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1014  //
  1015  //
  1016  //    // Example sending a request using the DeleteAutoScalingGroupRequest method.
  1017  //    req, resp := client.DeleteAutoScalingGroupRequest(params)
  1018  //
  1019  //    err := req.Send()
  1020  //    if err == nil { // resp is now filled
  1021  //        fmt.Println(resp)
  1022  //    }
  1023  //
  1024  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteAutoScalingGroup
  1025  func (c *AutoScaling) DeleteAutoScalingGroupRequest(input *DeleteAutoScalingGroupInput) (req *request.Request, output *DeleteAutoScalingGroupOutput) {
  1026  	op := &request.Operation{
  1027  		Name:       opDeleteAutoScalingGroup,
  1028  		HTTPMethod: "POST",
  1029  		HTTPPath:   "/",
  1030  	}
  1031  
  1032  	if input == nil {
  1033  		input = &DeleteAutoScalingGroupInput{}
  1034  	}
  1035  
  1036  	output = &DeleteAutoScalingGroupOutput{}
  1037  	req = c.newRequest(op, input, output)
  1038  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1039  	return
  1040  }
  1041  
  1042  // DeleteAutoScalingGroup API operation for Auto Scaling.
  1043  //
  1044  // Deletes the specified Auto Scaling group.
  1045  //
  1046  // If the group has instances or scaling activities in progress, you must specify
  1047  // the option to force the deletion in order for it to succeed.
  1048  //
  1049  // If the group has policies, deleting the group deletes the policies, the underlying
  1050  // alarm actions, and any alarm that no longer has an associated action.
  1051  //
  1052  // To remove instances from the Auto Scaling group before deleting it, call
  1053  // the DetachInstances API with the list of instances and the option to decrement
  1054  // the desired capacity. This ensures that Amazon EC2 Auto Scaling does not
  1055  // launch replacement instances.
  1056  //
  1057  // To terminate all instances before deleting the Auto Scaling group, call the
  1058  // UpdateAutoScalingGroup API and set the minimum size and desired capacity
  1059  // of the Auto Scaling group to zero.
  1060  //
  1061  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1062  // with awserr.Error's Code and Message methods to get detailed information about
  1063  // the error.
  1064  //
  1065  // See the AWS API reference guide for Auto Scaling's
  1066  // API operation DeleteAutoScalingGroup for usage and error information.
  1067  //
  1068  // Returned Error Codes:
  1069  //   * ErrCodeScalingActivityInProgressFault "ScalingActivityInProgress"
  1070  //   The operation can't be performed because there are scaling activities in
  1071  //   progress.
  1072  //
  1073  //   * ErrCodeResourceInUseFault "ResourceInUse"
  1074  //   The operation can't be performed because the resource is in use.
  1075  //
  1076  //   * ErrCodeResourceContentionFault "ResourceContention"
  1077  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1078  //   (for example, an Auto Scaling group, instance, or load balancer).
  1079  //
  1080  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteAutoScalingGroup
  1081  func (c *AutoScaling) DeleteAutoScalingGroup(input *DeleteAutoScalingGroupInput) (*DeleteAutoScalingGroupOutput, error) {
  1082  	req, out := c.DeleteAutoScalingGroupRequest(input)
  1083  	return out, req.Send()
  1084  }
  1085  
  1086  // DeleteAutoScalingGroupWithContext is the same as DeleteAutoScalingGroup with the addition of
  1087  // the ability to pass a context and additional request options.
  1088  //
  1089  // See DeleteAutoScalingGroup for details on how to use this API operation.
  1090  //
  1091  // The context must be non-nil and will be used for request cancellation. If
  1092  // the context is nil a panic will occur. In the future the SDK may create
  1093  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1094  // for more information on using Contexts.
  1095  func (c *AutoScaling) DeleteAutoScalingGroupWithContext(ctx aws.Context, input *DeleteAutoScalingGroupInput, opts ...request.Option) (*DeleteAutoScalingGroupOutput, error) {
  1096  	req, out := c.DeleteAutoScalingGroupRequest(input)
  1097  	req.SetContext(ctx)
  1098  	req.ApplyOptions(opts...)
  1099  	return out, req.Send()
  1100  }
  1101  
  1102  const opDeleteLaunchConfiguration = "DeleteLaunchConfiguration"
  1103  
  1104  // DeleteLaunchConfigurationRequest generates a "aws/request.Request" representing the
  1105  // client's request for the DeleteLaunchConfiguration operation. The "output" return
  1106  // value will be populated with the request's response once the request completes
  1107  // successfully.
  1108  //
  1109  // Use "Send" method on the returned Request to send the API call to the service.
  1110  // the "output" return value is not valid until after Send returns without error.
  1111  //
  1112  // See DeleteLaunchConfiguration for more information on using the DeleteLaunchConfiguration
  1113  // API call, and error handling.
  1114  //
  1115  // This method is useful when you want to inject custom logic or configuration
  1116  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1117  //
  1118  //
  1119  //    // Example sending a request using the DeleteLaunchConfigurationRequest method.
  1120  //    req, resp := client.DeleteLaunchConfigurationRequest(params)
  1121  //
  1122  //    err := req.Send()
  1123  //    if err == nil { // resp is now filled
  1124  //        fmt.Println(resp)
  1125  //    }
  1126  //
  1127  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLaunchConfiguration
  1128  func (c *AutoScaling) DeleteLaunchConfigurationRequest(input *DeleteLaunchConfigurationInput) (req *request.Request, output *DeleteLaunchConfigurationOutput) {
  1129  	op := &request.Operation{
  1130  		Name:       opDeleteLaunchConfiguration,
  1131  		HTTPMethod: "POST",
  1132  		HTTPPath:   "/",
  1133  	}
  1134  
  1135  	if input == nil {
  1136  		input = &DeleteLaunchConfigurationInput{}
  1137  	}
  1138  
  1139  	output = &DeleteLaunchConfigurationOutput{}
  1140  	req = c.newRequest(op, input, output)
  1141  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1142  	return
  1143  }
  1144  
  1145  // DeleteLaunchConfiguration API operation for Auto Scaling.
  1146  //
  1147  // Deletes the specified launch configuration.
  1148  //
  1149  // The launch configuration must not be attached to an Auto Scaling group. When
  1150  // this call completes, the launch configuration is no longer available for
  1151  // use.
  1152  //
  1153  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1154  // with awserr.Error's Code and Message methods to get detailed information about
  1155  // the error.
  1156  //
  1157  // See the AWS API reference guide for Auto Scaling's
  1158  // API operation DeleteLaunchConfiguration for usage and error information.
  1159  //
  1160  // Returned Error Codes:
  1161  //   * ErrCodeResourceInUseFault "ResourceInUse"
  1162  //   The operation can't be performed because the resource is in use.
  1163  //
  1164  //   * ErrCodeResourceContentionFault "ResourceContention"
  1165  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1166  //   (for example, an Auto Scaling group, instance, or load balancer).
  1167  //
  1168  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLaunchConfiguration
  1169  func (c *AutoScaling) DeleteLaunchConfiguration(input *DeleteLaunchConfigurationInput) (*DeleteLaunchConfigurationOutput, error) {
  1170  	req, out := c.DeleteLaunchConfigurationRequest(input)
  1171  	return out, req.Send()
  1172  }
  1173  
  1174  // DeleteLaunchConfigurationWithContext is the same as DeleteLaunchConfiguration with the addition of
  1175  // the ability to pass a context and additional request options.
  1176  //
  1177  // See DeleteLaunchConfiguration for details on how to use this API operation.
  1178  //
  1179  // The context must be non-nil and will be used for request cancellation. If
  1180  // the context is nil a panic will occur. In the future the SDK may create
  1181  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1182  // for more information on using Contexts.
  1183  func (c *AutoScaling) DeleteLaunchConfigurationWithContext(ctx aws.Context, input *DeleteLaunchConfigurationInput, opts ...request.Option) (*DeleteLaunchConfigurationOutput, error) {
  1184  	req, out := c.DeleteLaunchConfigurationRequest(input)
  1185  	req.SetContext(ctx)
  1186  	req.ApplyOptions(opts...)
  1187  	return out, req.Send()
  1188  }
  1189  
  1190  const opDeleteLifecycleHook = "DeleteLifecycleHook"
  1191  
  1192  // DeleteLifecycleHookRequest generates a "aws/request.Request" representing the
  1193  // client's request for the DeleteLifecycleHook operation. The "output" return
  1194  // value will be populated with the request's response once the request completes
  1195  // successfully.
  1196  //
  1197  // Use "Send" method on the returned Request to send the API call to the service.
  1198  // the "output" return value is not valid until after Send returns without error.
  1199  //
  1200  // See DeleteLifecycleHook for more information on using the DeleteLifecycleHook
  1201  // API call, and error handling.
  1202  //
  1203  // This method is useful when you want to inject custom logic or configuration
  1204  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1205  //
  1206  //
  1207  //    // Example sending a request using the DeleteLifecycleHookRequest method.
  1208  //    req, resp := client.DeleteLifecycleHookRequest(params)
  1209  //
  1210  //    err := req.Send()
  1211  //    if err == nil { // resp is now filled
  1212  //        fmt.Println(resp)
  1213  //    }
  1214  //
  1215  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLifecycleHook
  1216  func (c *AutoScaling) DeleteLifecycleHookRequest(input *DeleteLifecycleHookInput) (req *request.Request, output *DeleteLifecycleHookOutput) {
  1217  	op := &request.Operation{
  1218  		Name:       opDeleteLifecycleHook,
  1219  		HTTPMethod: "POST",
  1220  		HTTPPath:   "/",
  1221  	}
  1222  
  1223  	if input == nil {
  1224  		input = &DeleteLifecycleHookInput{}
  1225  	}
  1226  
  1227  	output = &DeleteLifecycleHookOutput{}
  1228  	req = c.newRequest(op, input, output)
  1229  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1230  	return
  1231  }
  1232  
  1233  // DeleteLifecycleHook API operation for Auto Scaling.
  1234  //
  1235  // Deletes the specified lifecycle hook.
  1236  //
  1237  // If there are any outstanding lifecycle actions, they are completed first
  1238  // (ABANDON for launching instances, CONTINUE for terminating instances).
  1239  //
  1240  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1241  // with awserr.Error's Code and Message methods to get detailed information about
  1242  // the error.
  1243  //
  1244  // See the AWS API reference guide for Auto Scaling's
  1245  // API operation DeleteLifecycleHook for usage and error information.
  1246  //
  1247  // Returned Error Codes:
  1248  //   * ErrCodeResourceContentionFault "ResourceContention"
  1249  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1250  //   (for example, an Auto Scaling group, instance, or load balancer).
  1251  //
  1252  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLifecycleHook
  1253  func (c *AutoScaling) DeleteLifecycleHook(input *DeleteLifecycleHookInput) (*DeleteLifecycleHookOutput, error) {
  1254  	req, out := c.DeleteLifecycleHookRequest(input)
  1255  	return out, req.Send()
  1256  }
  1257  
  1258  // DeleteLifecycleHookWithContext is the same as DeleteLifecycleHook with the addition of
  1259  // the ability to pass a context and additional request options.
  1260  //
  1261  // See DeleteLifecycleHook for details on how to use this API operation.
  1262  //
  1263  // The context must be non-nil and will be used for request cancellation. If
  1264  // the context is nil a panic will occur. In the future the SDK may create
  1265  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1266  // for more information on using Contexts.
  1267  func (c *AutoScaling) DeleteLifecycleHookWithContext(ctx aws.Context, input *DeleteLifecycleHookInput, opts ...request.Option) (*DeleteLifecycleHookOutput, error) {
  1268  	req, out := c.DeleteLifecycleHookRequest(input)
  1269  	req.SetContext(ctx)
  1270  	req.ApplyOptions(opts...)
  1271  	return out, req.Send()
  1272  }
  1273  
  1274  const opDeleteNotificationConfiguration = "DeleteNotificationConfiguration"
  1275  
  1276  // DeleteNotificationConfigurationRequest generates a "aws/request.Request" representing the
  1277  // client's request for the DeleteNotificationConfiguration operation. The "output" return
  1278  // value will be populated with the request's response once the request completes
  1279  // successfully.
  1280  //
  1281  // Use "Send" method on the returned Request to send the API call to the service.
  1282  // the "output" return value is not valid until after Send returns without error.
  1283  //
  1284  // See DeleteNotificationConfiguration for more information on using the DeleteNotificationConfiguration
  1285  // API call, and error handling.
  1286  //
  1287  // This method is useful when you want to inject custom logic or configuration
  1288  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1289  //
  1290  //
  1291  //    // Example sending a request using the DeleteNotificationConfigurationRequest method.
  1292  //    req, resp := client.DeleteNotificationConfigurationRequest(params)
  1293  //
  1294  //    err := req.Send()
  1295  //    if err == nil { // resp is now filled
  1296  //        fmt.Println(resp)
  1297  //    }
  1298  //
  1299  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteNotificationConfiguration
  1300  func (c *AutoScaling) DeleteNotificationConfigurationRequest(input *DeleteNotificationConfigurationInput) (req *request.Request, output *DeleteNotificationConfigurationOutput) {
  1301  	op := &request.Operation{
  1302  		Name:       opDeleteNotificationConfiguration,
  1303  		HTTPMethod: "POST",
  1304  		HTTPPath:   "/",
  1305  	}
  1306  
  1307  	if input == nil {
  1308  		input = &DeleteNotificationConfigurationInput{}
  1309  	}
  1310  
  1311  	output = &DeleteNotificationConfigurationOutput{}
  1312  	req = c.newRequest(op, input, output)
  1313  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1314  	return
  1315  }
  1316  
  1317  // DeleteNotificationConfiguration API operation for Auto Scaling.
  1318  //
  1319  // Deletes the specified notification.
  1320  //
  1321  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1322  // with awserr.Error's Code and Message methods to get detailed information about
  1323  // the error.
  1324  //
  1325  // See the AWS API reference guide for Auto Scaling's
  1326  // API operation DeleteNotificationConfiguration for usage and error information.
  1327  //
  1328  // Returned Error Codes:
  1329  //   * ErrCodeResourceContentionFault "ResourceContention"
  1330  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1331  //   (for example, an Auto Scaling group, instance, or load balancer).
  1332  //
  1333  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteNotificationConfiguration
  1334  func (c *AutoScaling) DeleteNotificationConfiguration(input *DeleteNotificationConfigurationInput) (*DeleteNotificationConfigurationOutput, error) {
  1335  	req, out := c.DeleteNotificationConfigurationRequest(input)
  1336  	return out, req.Send()
  1337  }
  1338  
  1339  // DeleteNotificationConfigurationWithContext is the same as DeleteNotificationConfiguration with the addition of
  1340  // the ability to pass a context and additional request options.
  1341  //
  1342  // See DeleteNotificationConfiguration for details on how to use this API operation.
  1343  //
  1344  // The context must be non-nil and will be used for request cancellation. If
  1345  // the context is nil a panic will occur. In the future the SDK may create
  1346  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1347  // for more information on using Contexts.
  1348  func (c *AutoScaling) DeleteNotificationConfigurationWithContext(ctx aws.Context, input *DeleteNotificationConfigurationInput, opts ...request.Option) (*DeleteNotificationConfigurationOutput, error) {
  1349  	req, out := c.DeleteNotificationConfigurationRequest(input)
  1350  	req.SetContext(ctx)
  1351  	req.ApplyOptions(opts...)
  1352  	return out, req.Send()
  1353  }
  1354  
  1355  const opDeletePolicy = "DeletePolicy"
  1356  
  1357  // DeletePolicyRequest generates a "aws/request.Request" representing the
  1358  // client's request for the DeletePolicy operation. The "output" return
  1359  // value will be populated with the request's response once the request completes
  1360  // successfully.
  1361  //
  1362  // Use "Send" method on the returned Request to send the API call to the service.
  1363  // the "output" return value is not valid until after Send returns without error.
  1364  //
  1365  // See DeletePolicy for more information on using the DeletePolicy
  1366  // API call, and error handling.
  1367  //
  1368  // This method is useful when you want to inject custom logic or configuration
  1369  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1370  //
  1371  //
  1372  //    // Example sending a request using the DeletePolicyRequest method.
  1373  //    req, resp := client.DeletePolicyRequest(params)
  1374  //
  1375  //    err := req.Send()
  1376  //    if err == nil { // resp is now filled
  1377  //        fmt.Println(resp)
  1378  //    }
  1379  //
  1380  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeletePolicy
  1381  func (c *AutoScaling) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
  1382  	op := &request.Operation{
  1383  		Name:       opDeletePolicy,
  1384  		HTTPMethod: "POST",
  1385  		HTTPPath:   "/",
  1386  	}
  1387  
  1388  	if input == nil {
  1389  		input = &DeletePolicyInput{}
  1390  	}
  1391  
  1392  	output = &DeletePolicyOutput{}
  1393  	req = c.newRequest(op, input, output)
  1394  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1395  	return
  1396  }
  1397  
  1398  // DeletePolicy API operation for Auto Scaling.
  1399  //
  1400  // Deletes the specified scaling policy.
  1401  //
  1402  // Deleting either a step scaling policy or a simple scaling policy deletes
  1403  // the underlying alarm action, but does not delete the alarm, even if it no
  1404  // longer has an associated action.
  1405  //
  1406  // For more information, see Deleting a scaling policy (https://docs.aws.amazon.com/autoscaling/ec2/userguide/deleting-scaling-policy.html)
  1407  // in the Amazon EC2 Auto Scaling User Guide.
  1408  //
  1409  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1410  // with awserr.Error's Code and Message methods to get detailed information about
  1411  // the error.
  1412  //
  1413  // See the AWS API reference guide for Auto Scaling's
  1414  // API operation DeletePolicy for usage and error information.
  1415  //
  1416  // Returned Error Codes:
  1417  //   * ErrCodeResourceContentionFault "ResourceContention"
  1418  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1419  //   (for example, an Auto Scaling group, instance, or load balancer).
  1420  //
  1421  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
  1422  //   The service-linked role is not yet ready for use.
  1423  //
  1424  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeletePolicy
  1425  func (c *AutoScaling) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
  1426  	req, out := c.DeletePolicyRequest(input)
  1427  	return out, req.Send()
  1428  }
  1429  
  1430  // DeletePolicyWithContext is the same as DeletePolicy with the addition of
  1431  // the ability to pass a context and additional request options.
  1432  //
  1433  // See DeletePolicy for details on how to use this API operation.
  1434  //
  1435  // The context must be non-nil and will be used for request cancellation. If
  1436  // the context is nil a panic will occur. In the future the SDK may create
  1437  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1438  // for more information on using Contexts.
  1439  func (c *AutoScaling) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
  1440  	req, out := c.DeletePolicyRequest(input)
  1441  	req.SetContext(ctx)
  1442  	req.ApplyOptions(opts...)
  1443  	return out, req.Send()
  1444  }
  1445  
  1446  const opDeleteScheduledAction = "DeleteScheduledAction"
  1447  
  1448  // DeleteScheduledActionRequest generates a "aws/request.Request" representing the
  1449  // client's request for the DeleteScheduledAction operation. The "output" return
  1450  // value will be populated with the request's response once the request completes
  1451  // successfully.
  1452  //
  1453  // Use "Send" method on the returned Request to send the API call to the service.
  1454  // the "output" return value is not valid until after Send returns without error.
  1455  //
  1456  // See DeleteScheduledAction for more information on using the DeleteScheduledAction
  1457  // API call, and error handling.
  1458  //
  1459  // This method is useful when you want to inject custom logic or configuration
  1460  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1461  //
  1462  //
  1463  //    // Example sending a request using the DeleteScheduledActionRequest method.
  1464  //    req, resp := client.DeleteScheduledActionRequest(params)
  1465  //
  1466  //    err := req.Send()
  1467  //    if err == nil { // resp is now filled
  1468  //        fmt.Println(resp)
  1469  //    }
  1470  //
  1471  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteScheduledAction
  1472  func (c *AutoScaling) DeleteScheduledActionRequest(input *DeleteScheduledActionInput) (req *request.Request, output *DeleteScheduledActionOutput) {
  1473  	op := &request.Operation{
  1474  		Name:       opDeleteScheduledAction,
  1475  		HTTPMethod: "POST",
  1476  		HTTPPath:   "/",
  1477  	}
  1478  
  1479  	if input == nil {
  1480  		input = &DeleteScheduledActionInput{}
  1481  	}
  1482  
  1483  	output = &DeleteScheduledActionOutput{}
  1484  	req = c.newRequest(op, input, output)
  1485  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1486  	return
  1487  }
  1488  
  1489  // DeleteScheduledAction API operation for Auto Scaling.
  1490  //
  1491  // Deletes the specified scheduled action.
  1492  //
  1493  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1494  // with awserr.Error's Code and Message methods to get detailed information about
  1495  // the error.
  1496  //
  1497  // See the AWS API reference guide for Auto Scaling's
  1498  // API operation DeleteScheduledAction for usage and error information.
  1499  //
  1500  // Returned Error Codes:
  1501  //   * ErrCodeResourceContentionFault "ResourceContention"
  1502  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1503  //   (for example, an Auto Scaling group, instance, or load balancer).
  1504  //
  1505  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteScheduledAction
  1506  func (c *AutoScaling) DeleteScheduledAction(input *DeleteScheduledActionInput) (*DeleteScheduledActionOutput, error) {
  1507  	req, out := c.DeleteScheduledActionRequest(input)
  1508  	return out, req.Send()
  1509  }
  1510  
  1511  // DeleteScheduledActionWithContext is the same as DeleteScheduledAction with the addition of
  1512  // the ability to pass a context and additional request options.
  1513  //
  1514  // See DeleteScheduledAction for details on how to use this API operation.
  1515  //
  1516  // The context must be non-nil and will be used for request cancellation. If
  1517  // the context is nil a panic will occur. In the future the SDK may create
  1518  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1519  // for more information on using Contexts.
  1520  func (c *AutoScaling) DeleteScheduledActionWithContext(ctx aws.Context, input *DeleteScheduledActionInput, opts ...request.Option) (*DeleteScheduledActionOutput, error) {
  1521  	req, out := c.DeleteScheduledActionRequest(input)
  1522  	req.SetContext(ctx)
  1523  	req.ApplyOptions(opts...)
  1524  	return out, req.Send()
  1525  }
  1526  
  1527  const opDeleteTags = "DeleteTags"
  1528  
  1529  // DeleteTagsRequest generates a "aws/request.Request" representing the
  1530  // client's request for the DeleteTags operation. The "output" return
  1531  // value will be populated with the request's response once the request completes
  1532  // successfully.
  1533  //
  1534  // Use "Send" method on the returned Request to send the API call to the service.
  1535  // the "output" return value is not valid until after Send returns without error.
  1536  //
  1537  // See DeleteTags for more information on using the DeleteTags
  1538  // API call, and error handling.
  1539  //
  1540  // This method is useful when you want to inject custom logic or configuration
  1541  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1542  //
  1543  //
  1544  //    // Example sending a request using the DeleteTagsRequest method.
  1545  //    req, resp := client.DeleteTagsRequest(params)
  1546  //
  1547  //    err := req.Send()
  1548  //    if err == nil { // resp is now filled
  1549  //        fmt.Println(resp)
  1550  //    }
  1551  //
  1552  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteTags
  1553  func (c *AutoScaling) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
  1554  	op := &request.Operation{
  1555  		Name:       opDeleteTags,
  1556  		HTTPMethod: "POST",
  1557  		HTTPPath:   "/",
  1558  	}
  1559  
  1560  	if input == nil {
  1561  		input = &DeleteTagsInput{}
  1562  	}
  1563  
  1564  	output = &DeleteTagsOutput{}
  1565  	req = c.newRequest(op, input, output)
  1566  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1567  	return
  1568  }
  1569  
  1570  // DeleteTags API operation for Auto Scaling.
  1571  //
  1572  // Deletes the specified tags.
  1573  //
  1574  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1575  // with awserr.Error's Code and Message methods to get detailed information about
  1576  // the error.
  1577  //
  1578  // See the AWS API reference guide for Auto Scaling's
  1579  // API operation DeleteTags for usage and error information.
  1580  //
  1581  // Returned Error Codes:
  1582  //   * ErrCodeResourceContentionFault "ResourceContention"
  1583  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1584  //   (for example, an Auto Scaling group, instance, or load balancer).
  1585  //
  1586  //   * ErrCodeResourceInUseFault "ResourceInUse"
  1587  //   The operation can't be performed because the resource is in use.
  1588  //
  1589  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteTags
  1590  func (c *AutoScaling) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
  1591  	req, out := c.DeleteTagsRequest(input)
  1592  	return out, req.Send()
  1593  }
  1594  
  1595  // DeleteTagsWithContext is the same as DeleteTags with the addition of
  1596  // the ability to pass a context and additional request options.
  1597  //
  1598  // See DeleteTags for details on how to use this API operation.
  1599  //
  1600  // The context must be non-nil and will be used for request cancellation. If
  1601  // the context is nil a panic will occur. In the future the SDK may create
  1602  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1603  // for more information on using Contexts.
  1604  func (c *AutoScaling) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
  1605  	req, out := c.DeleteTagsRequest(input)
  1606  	req.SetContext(ctx)
  1607  	req.ApplyOptions(opts...)
  1608  	return out, req.Send()
  1609  }
  1610  
  1611  const opDeleteWarmPool = "DeleteWarmPool"
  1612  
  1613  // DeleteWarmPoolRequest generates a "aws/request.Request" representing the
  1614  // client's request for the DeleteWarmPool operation. The "output" return
  1615  // value will be populated with the request's response once the request completes
  1616  // successfully.
  1617  //
  1618  // Use "Send" method on the returned Request to send the API call to the service.
  1619  // the "output" return value is not valid until after Send returns without error.
  1620  //
  1621  // See DeleteWarmPool for more information on using the DeleteWarmPool
  1622  // API call, and error handling.
  1623  //
  1624  // This method is useful when you want to inject custom logic or configuration
  1625  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1626  //
  1627  //
  1628  //    // Example sending a request using the DeleteWarmPoolRequest method.
  1629  //    req, resp := client.DeleteWarmPoolRequest(params)
  1630  //
  1631  //    err := req.Send()
  1632  //    if err == nil { // resp is now filled
  1633  //        fmt.Println(resp)
  1634  //    }
  1635  //
  1636  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteWarmPool
  1637  func (c *AutoScaling) DeleteWarmPoolRequest(input *DeleteWarmPoolInput) (req *request.Request, output *DeleteWarmPoolOutput) {
  1638  	op := &request.Operation{
  1639  		Name:       opDeleteWarmPool,
  1640  		HTTPMethod: "POST",
  1641  		HTTPPath:   "/",
  1642  	}
  1643  
  1644  	if input == nil {
  1645  		input = &DeleteWarmPoolInput{}
  1646  	}
  1647  
  1648  	output = &DeleteWarmPoolOutput{}
  1649  	req = c.newRequest(op, input, output)
  1650  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1651  	return
  1652  }
  1653  
  1654  // DeleteWarmPool API operation for Auto Scaling.
  1655  //
  1656  // Deletes the warm pool for the specified Auto Scaling group.
  1657  //
  1658  // For more information, see Warm pools for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)
  1659  // in the Amazon EC2 Auto Scaling User Guide.
  1660  //
  1661  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1662  // with awserr.Error's Code and Message methods to get detailed information about
  1663  // the error.
  1664  //
  1665  // See the AWS API reference guide for Auto Scaling's
  1666  // API operation DeleteWarmPool for usage and error information.
  1667  //
  1668  // Returned Error Codes:
  1669  //   * ErrCodeLimitExceededFault "LimitExceeded"
  1670  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  1671  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  1672  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  1673  //   in the Amazon EC2 Auto Scaling API Reference.
  1674  //
  1675  //   * ErrCodeResourceContentionFault "ResourceContention"
  1676  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1677  //   (for example, an Auto Scaling group, instance, or load balancer).
  1678  //
  1679  //   * ErrCodeScalingActivityInProgressFault "ScalingActivityInProgress"
  1680  //   The operation can't be performed because there are scaling activities in
  1681  //   progress.
  1682  //
  1683  //   * ErrCodeResourceInUseFault "ResourceInUse"
  1684  //   The operation can't be performed because the resource is in use.
  1685  //
  1686  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteWarmPool
  1687  func (c *AutoScaling) DeleteWarmPool(input *DeleteWarmPoolInput) (*DeleteWarmPoolOutput, error) {
  1688  	req, out := c.DeleteWarmPoolRequest(input)
  1689  	return out, req.Send()
  1690  }
  1691  
  1692  // DeleteWarmPoolWithContext is the same as DeleteWarmPool with the addition of
  1693  // the ability to pass a context and additional request options.
  1694  //
  1695  // See DeleteWarmPool for details on how to use this API operation.
  1696  //
  1697  // The context must be non-nil and will be used for request cancellation. If
  1698  // the context is nil a panic will occur. In the future the SDK may create
  1699  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1700  // for more information on using Contexts.
  1701  func (c *AutoScaling) DeleteWarmPoolWithContext(ctx aws.Context, input *DeleteWarmPoolInput, opts ...request.Option) (*DeleteWarmPoolOutput, error) {
  1702  	req, out := c.DeleteWarmPoolRequest(input)
  1703  	req.SetContext(ctx)
  1704  	req.ApplyOptions(opts...)
  1705  	return out, req.Send()
  1706  }
  1707  
  1708  const opDescribeAccountLimits = "DescribeAccountLimits"
  1709  
  1710  // DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
  1711  // client's request for the DescribeAccountLimits operation. The "output" return
  1712  // value will be populated with the request's response once the request completes
  1713  // successfully.
  1714  //
  1715  // Use "Send" method on the returned Request to send the API call to the service.
  1716  // the "output" return value is not valid until after Send returns without error.
  1717  //
  1718  // See DescribeAccountLimits for more information on using the DescribeAccountLimits
  1719  // API call, and error handling.
  1720  //
  1721  // This method is useful when you want to inject custom logic or configuration
  1722  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1723  //
  1724  //
  1725  //    // Example sending a request using the DescribeAccountLimitsRequest method.
  1726  //    req, resp := client.DescribeAccountLimitsRequest(params)
  1727  //
  1728  //    err := req.Send()
  1729  //    if err == nil { // resp is now filled
  1730  //        fmt.Println(resp)
  1731  //    }
  1732  //
  1733  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAccountLimits
  1734  func (c *AutoScaling) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
  1735  	op := &request.Operation{
  1736  		Name:       opDescribeAccountLimits,
  1737  		HTTPMethod: "POST",
  1738  		HTTPPath:   "/",
  1739  	}
  1740  
  1741  	if input == nil {
  1742  		input = &DescribeAccountLimitsInput{}
  1743  	}
  1744  
  1745  	output = &DescribeAccountLimitsOutput{}
  1746  	req = c.newRequest(op, input, output)
  1747  	return
  1748  }
  1749  
  1750  // DescribeAccountLimits API operation for Auto Scaling.
  1751  //
  1752  // Describes the current Amazon EC2 Auto Scaling resource quotas for your account.
  1753  //
  1754  // When you establish an account, the account has initial quotas on the maximum
  1755  // number of Auto Scaling groups and launch configurations that you can create
  1756  // in a given Region. For more information, see Amazon EC2 Auto Scaling service
  1757  // quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html)
  1758  // in the Amazon EC2 Auto Scaling User Guide.
  1759  //
  1760  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1761  // with awserr.Error's Code and Message methods to get detailed information about
  1762  // the error.
  1763  //
  1764  // See the AWS API reference guide for Auto Scaling's
  1765  // API operation DescribeAccountLimits for usage and error information.
  1766  //
  1767  // Returned Error Codes:
  1768  //   * ErrCodeResourceContentionFault "ResourceContention"
  1769  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1770  //   (for example, an Auto Scaling group, instance, or load balancer).
  1771  //
  1772  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAccountLimits
  1773  func (c *AutoScaling) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
  1774  	req, out := c.DescribeAccountLimitsRequest(input)
  1775  	return out, req.Send()
  1776  }
  1777  
  1778  // DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
  1779  // the ability to pass a context and additional request options.
  1780  //
  1781  // See DescribeAccountLimits for details on how to use this API operation.
  1782  //
  1783  // The context must be non-nil and will be used for request cancellation. If
  1784  // the context is nil a panic will occur. In the future the SDK may create
  1785  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1786  // for more information on using Contexts.
  1787  func (c *AutoScaling) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
  1788  	req, out := c.DescribeAccountLimitsRequest(input)
  1789  	req.SetContext(ctx)
  1790  	req.ApplyOptions(opts...)
  1791  	return out, req.Send()
  1792  }
  1793  
  1794  const opDescribeAdjustmentTypes = "DescribeAdjustmentTypes"
  1795  
  1796  // DescribeAdjustmentTypesRequest generates a "aws/request.Request" representing the
  1797  // client's request for the DescribeAdjustmentTypes operation. The "output" return
  1798  // value will be populated with the request's response once the request completes
  1799  // successfully.
  1800  //
  1801  // Use "Send" method on the returned Request to send the API call to the service.
  1802  // the "output" return value is not valid until after Send returns without error.
  1803  //
  1804  // See DescribeAdjustmentTypes for more information on using the DescribeAdjustmentTypes
  1805  // API call, and error handling.
  1806  //
  1807  // This method is useful when you want to inject custom logic or configuration
  1808  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1809  //
  1810  //
  1811  //    // Example sending a request using the DescribeAdjustmentTypesRequest method.
  1812  //    req, resp := client.DescribeAdjustmentTypesRequest(params)
  1813  //
  1814  //    err := req.Send()
  1815  //    if err == nil { // resp is now filled
  1816  //        fmt.Println(resp)
  1817  //    }
  1818  //
  1819  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAdjustmentTypes
  1820  func (c *AutoScaling) DescribeAdjustmentTypesRequest(input *DescribeAdjustmentTypesInput) (req *request.Request, output *DescribeAdjustmentTypesOutput) {
  1821  	op := &request.Operation{
  1822  		Name:       opDescribeAdjustmentTypes,
  1823  		HTTPMethod: "POST",
  1824  		HTTPPath:   "/",
  1825  	}
  1826  
  1827  	if input == nil {
  1828  		input = &DescribeAdjustmentTypesInput{}
  1829  	}
  1830  
  1831  	output = &DescribeAdjustmentTypesOutput{}
  1832  	req = c.newRequest(op, input, output)
  1833  	return
  1834  }
  1835  
  1836  // DescribeAdjustmentTypes API operation for Auto Scaling.
  1837  //
  1838  // Describes the available adjustment types for step scaling and simple scaling
  1839  // policies.
  1840  //
  1841  // The following adjustment types are supported:
  1842  //
  1843  //    * ChangeInCapacity
  1844  //
  1845  //    * ExactCapacity
  1846  //
  1847  //    * PercentChangeInCapacity
  1848  //
  1849  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1850  // with awserr.Error's Code and Message methods to get detailed information about
  1851  // the error.
  1852  //
  1853  // See the AWS API reference guide for Auto Scaling's
  1854  // API operation DescribeAdjustmentTypes for usage and error information.
  1855  //
  1856  // Returned Error Codes:
  1857  //   * ErrCodeResourceContentionFault "ResourceContention"
  1858  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1859  //   (for example, an Auto Scaling group, instance, or load balancer).
  1860  //
  1861  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAdjustmentTypes
  1862  func (c *AutoScaling) DescribeAdjustmentTypes(input *DescribeAdjustmentTypesInput) (*DescribeAdjustmentTypesOutput, error) {
  1863  	req, out := c.DescribeAdjustmentTypesRequest(input)
  1864  	return out, req.Send()
  1865  }
  1866  
  1867  // DescribeAdjustmentTypesWithContext is the same as DescribeAdjustmentTypes with the addition of
  1868  // the ability to pass a context and additional request options.
  1869  //
  1870  // See DescribeAdjustmentTypes for details on how to use this API operation.
  1871  //
  1872  // The context must be non-nil and will be used for request cancellation. If
  1873  // the context is nil a panic will occur. In the future the SDK may create
  1874  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1875  // for more information on using Contexts.
  1876  func (c *AutoScaling) DescribeAdjustmentTypesWithContext(ctx aws.Context, input *DescribeAdjustmentTypesInput, opts ...request.Option) (*DescribeAdjustmentTypesOutput, error) {
  1877  	req, out := c.DescribeAdjustmentTypesRequest(input)
  1878  	req.SetContext(ctx)
  1879  	req.ApplyOptions(opts...)
  1880  	return out, req.Send()
  1881  }
  1882  
  1883  const opDescribeAutoScalingGroups = "DescribeAutoScalingGroups"
  1884  
  1885  // DescribeAutoScalingGroupsRequest generates a "aws/request.Request" representing the
  1886  // client's request for the DescribeAutoScalingGroups operation. The "output" return
  1887  // value will be populated with the request's response once the request completes
  1888  // successfully.
  1889  //
  1890  // Use "Send" method on the returned Request to send the API call to the service.
  1891  // the "output" return value is not valid until after Send returns without error.
  1892  //
  1893  // See DescribeAutoScalingGroups for more information on using the DescribeAutoScalingGroups
  1894  // API call, and error handling.
  1895  //
  1896  // This method is useful when you want to inject custom logic or configuration
  1897  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1898  //
  1899  //
  1900  //    // Example sending a request using the DescribeAutoScalingGroupsRequest method.
  1901  //    req, resp := client.DescribeAutoScalingGroupsRequest(params)
  1902  //
  1903  //    err := req.Send()
  1904  //    if err == nil { // resp is now filled
  1905  //        fmt.Println(resp)
  1906  //    }
  1907  //
  1908  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingGroups
  1909  func (c *AutoScaling) DescribeAutoScalingGroupsRequest(input *DescribeAutoScalingGroupsInput) (req *request.Request, output *DescribeAutoScalingGroupsOutput) {
  1910  	op := &request.Operation{
  1911  		Name:       opDescribeAutoScalingGroups,
  1912  		HTTPMethod: "POST",
  1913  		HTTPPath:   "/",
  1914  		Paginator: &request.Paginator{
  1915  			InputTokens:     []string{"NextToken"},
  1916  			OutputTokens:    []string{"NextToken"},
  1917  			LimitToken:      "MaxRecords",
  1918  			TruncationToken: "",
  1919  		},
  1920  	}
  1921  
  1922  	if input == nil {
  1923  		input = &DescribeAutoScalingGroupsInput{}
  1924  	}
  1925  
  1926  	output = &DescribeAutoScalingGroupsOutput{}
  1927  	req = c.newRequest(op, input, output)
  1928  	return
  1929  }
  1930  
  1931  // DescribeAutoScalingGroups API operation for Auto Scaling.
  1932  //
  1933  // Gets information about the Auto Scaling groups in the account and Region.
  1934  //
  1935  // This operation returns information about instances in Auto Scaling groups.
  1936  // To retrieve information about the instances in a warm pool, you must call
  1937  // the DescribeWarmPool API.
  1938  //
  1939  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1940  // with awserr.Error's Code and Message methods to get detailed information about
  1941  // the error.
  1942  //
  1943  // See the AWS API reference guide for Auto Scaling's
  1944  // API operation DescribeAutoScalingGroups for usage and error information.
  1945  //
  1946  // Returned Error Codes:
  1947  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  1948  //   The NextToken value is not valid.
  1949  //
  1950  //   * ErrCodeResourceContentionFault "ResourceContention"
  1951  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  1952  //   (for example, an Auto Scaling group, instance, or load balancer).
  1953  //
  1954  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingGroups
  1955  func (c *AutoScaling) DescribeAutoScalingGroups(input *DescribeAutoScalingGroupsInput) (*DescribeAutoScalingGroupsOutput, error) {
  1956  	req, out := c.DescribeAutoScalingGroupsRequest(input)
  1957  	return out, req.Send()
  1958  }
  1959  
  1960  // DescribeAutoScalingGroupsWithContext is the same as DescribeAutoScalingGroups with the addition of
  1961  // the ability to pass a context and additional request options.
  1962  //
  1963  // See DescribeAutoScalingGroups for details on how to use this API operation.
  1964  //
  1965  // The context must be non-nil and will be used for request cancellation. If
  1966  // the context is nil a panic will occur. In the future the SDK may create
  1967  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1968  // for more information on using Contexts.
  1969  func (c *AutoScaling) DescribeAutoScalingGroupsWithContext(ctx aws.Context, input *DescribeAutoScalingGroupsInput, opts ...request.Option) (*DescribeAutoScalingGroupsOutput, error) {
  1970  	req, out := c.DescribeAutoScalingGroupsRequest(input)
  1971  	req.SetContext(ctx)
  1972  	req.ApplyOptions(opts...)
  1973  	return out, req.Send()
  1974  }
  1975  
  1976  // DescribeAutoScalingGroupsPages iterates over the pages of a DescribeAutoScalingGroups operation,
  1977  // calling the "fn" function with the response data for each page. To stop
  1978  // iterating, return false from the fn function.
  1979  //
  1980  // See DescribeAutoScalingGroups method for more information on how to use this operation.
  1981  //
  1982  // Note: This operation can generate multiple requests to a service.
  1983  //
  1984  //    // Example iterating over at most 3 pages of a DescribeAutoScalingGroups operation.
  1985  //    pageNum := 0
  1986  //    err := client.DescribeAutoScalingGroupsPages(params,
  1987  //        func(page *autoscaling.DescribeAutoScalingGroupsOutput, lastPage bool) bool {
  1988  //            pageNum++
  1989  //            fmt.Println(page)
  1990  //            return pageNum <= 3
  1991  //        })
  1992  //
  1993  func (c *AutoScaling) DescribeAutoScalingGroupsPages(input *DescribeAutoScalingGroupsInput, fn func(*DescribeAutoScalingGroupsOutput, bool) bool) error {
  1994  	return c.DescribeAutoScalingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  1995  }
  1996  
  1997  // DescribeAutoScalingGroupsPagesWithContext same as DescribeAutoScalingGroupsPages except
  1998  // it takes a Context and allows setting request options on the pages.
  1999  //
  2000  // The context must be non-nil and will be used for request cancellation. If
  2001  // the context is nil a panic will occur. In the future the SDK may create
  2002  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2003  // for more information on using Contexts.
  2004  func (c *AutoScaling) DescribeAutoScalingGroupsPagesWithContext(ctx aws.Context, input *DescribeAutoScalingGroupsInput, fn func(*DescribeAutoScalingGroupsOutput, bool) bool, opts ...request.Option) error {
  2005  	p := request.Pagination{
  2006  		NewRequest: func() (*request.Request, error) {
  2007  			var inCpy *DescribeAutoScalingGroupsInput
  2008  			if input != nil {
  2009  				tmp := *input
  2010  				inCpy = &tmp
  2011  			}
  2012  			req, _ := c.DescribeAutoScalingGroupsRequest(inCpy)
  2013  			req.SetContext(ctx)
  2014  			req.ApplyOptions(opts...)
  2015  			return req, nil
  2016  		},
  2017  	}
  2018  
  2019  	for p.Next() {
  2020  		if !fn(p.Page().(*DescribeAutoScalingGroupsOutput), !p.HasNextPage()) {
  2021  			break
  2022  		}
  2023  	}
  2024  
  2025  	return p.Err()
  2026  }
  2027  
  2028  const opDescribeAutoScalingInstances = "DescribeAutoScalingInstances"
  2029  
  2030  // DescribeAutoScalingInstancesRequest generates a "aws/request.Request" representing the
  2031  // client's request for the DescribeAutoScalingInstances operation. The "output" return
  2032  // value will be populated with the request's response once the request completes
  2033  // successfully.
  2034  //
  2035  // Use "Send" method on the returned Request to send the API call to the service.
  2036  // the "output" return value is not valid until after Send returns without error.
  2037  //
  2038  // See DescribeAutoScalingInstances for more information on using the DescribeAutoScalingInstances
  2039  // API call, and error handling.
  2040  //
  2041  // This method is useful when you want to inject custom logic or configuration
  2042  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2043  //
  2044  //
  2045  //    // Example sending a request using the DescribeAutoScalingInstancesRequest method.
  2046  //    req, resp := client.DescribeAutoScalingInstancesRequest(params)
  2047  //
  2048  //    err := req.Send()
  2049  //    if err == nil { // resp is now filled
  2050  //        fmt.Println(resp)
  2051  //    }
  2052  //
  2053  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingInstances
  2054  func (c *AutoScaling) DescribeAutoScalingInstancesRequest(input *DescribeAutoScalingInstancesInput) (req *request.Request, output *DescribeAutoScalingInstancesOutput) {
  2055  	op := &request.Operation{
  2056  		Name:       opDescribeAutoScalingInstances,
  2057  		HTTPMethod: "POST",
  2058  		HTTPPath:   "/",
  2059  		Paginator: &request.Paginator{
  2060  			InputTokens:     []string{"NextToken"},
  2061  			OutputTokens:    []string{"NextToken"},
  2062  			LimitToken:      "MaxRecords",
  2063  			TruncationToken: "",
  2064  		},
  2065  	}
  2066  
  2067  	if input == nil {
  2068  		input = &DescribeAutoScalingInstancesInput{}
  2069  	}
  2070  
  2071  	output = &DescribeAutoScalingInstancesOutput{}
  2072  	req = c.newRequest(op, input, output)
  2073  	return
  2074  }
  2075  
  2076  // DescribeAutoScalingInstances API operation for Auto Scaling.
  2077  //
  2078  // Gets information about the Auto Scaling instances in the account and Region.
  2079  //
  2080  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2081  // with awserr.Error's Code and Message methods to get detailed information about
  2082  // the error.
  2083  //
  2084  // See the AWS API reference guide for Auto Scaling's
  2085  // API operation DescribeAutoScalingInstances for usage and error information.
  2086  //
  2087  // Returned Error Codes:
  2088  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  2089  //   The NextToken value is not valid.
  2090  //
  2091  //   * ErrCodeResourceContentionFault "ResourceContention"
  2092  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2093  //   (for example, an Auto Scaling group, instance, or load balancer).
  2094  //
  2095  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingInstances
  2096  func (c *AutoScaling) DescribeAutoScalingInstances(input *DescribeAutoScalingInstancesInput) (*DescribeAutoScalingInstancesOutput, error) {
  2097  	req, out := c.DescribeAutoScalingInstancesRequest(input)
  2098  	return out, req.Send()
  2099  }
  2100  
  2101  // DescribeAutoScalingInstancesWithContext is the same as DescribeAutoScalingInstances with the addition of
  2102  // the ability to pass a context and additional request options.
  2103  //
  2104  // See DescribeAutoScalingInstances for details on how to use this API operation.
  2105  //
  2106  // The context must be non-nil and will be used for request cancellation. If
  2107  // the context is nil a panic will occur. In the future the SDK may create
  2108  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2109  // for more information on using Contexts.
  2110  func (c *AutoScaling) DescribeAutoScalingInstancesWithContext(ctx aws.Context, input *DescribeAutoScalingInstancesInput, opts ...request.Option) (*DescribeAutoScalingInstancesOutput, error) {
  2111  	req, out := c.DescribeAutoScalingInstancesRequest(input)
  2112  	req.SetContext(ctx)
  2113  	req.ApplyOptions(opts...)
  2114  	return out, req.Send()
  2115  }
  2116  
  2117  // DescribeAutoScalingInstancesPages iterates over the pages of a DescribeAutoScalingInstances operation,
  2118  // calling the "fn" function with the response data for each page. To stop
  2119  // iterating, return false from the fn function.
  2120  //
  2121  // See DescribeAutoScalingInstances method for more information on how to use this operation.
  2122  //
  2123  // Note: This operation can generate multiple requests to a service.
  2124  //
  2125  //    // Example iterating over at most 3 pages of a DescribeAutoScalingInstances operation.
  2126  //    pageNum := 0
  2127  //    err := client.DescribeAutoScalingInstancesPages(params,
  2128  //        func(page *autoscaling.DescribeAutoScalingInstancesOutput, lastPage bool) bool {
  2129  //            pageNum++
  2130  //            fmt.Println(page)
  2131  //            return pageNum <= 3
  2132  //        })
  2133  //
  2134  func (c *AutoScaling) DescribeAutoScalingInstancesPages(input *DescribeAutoScalingInstancesInput, fn func(*DescribeAutoScalingInstancesOutput, bool) bool) error {
  2135  	return c.DescribeAutoScalingInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
  2136  }
  2137  
  2138  // DescribeAutoScalingInstancesPagesWithContext same as DescribeAutoScalingInstancesPages except
  2139  // it takes a Context and allows setting request options on the pages.
  2140  //
  2141  // The context must be non-nil and will be used for request cancellation. If
  2142  // the context is nil a panic will occur. In the future the SDK may create
  2143  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2144  // for more information on using Contexts.
  2145  func (c *AutoScaling) DescribeAutoScalingInstancesPagesWithContext(ctx aws.Context, input *DescribeAutoScalingInstancesInput, fn func(*DescribeAutoScalingInstancesOutput, bool) bool, opts ...request.Option) error {
  2146  	p := request.Pagination{
  2147  		NewRequest: func() (*request.Request, error) {
  2148  			var inCpy *DescribeAutoScalingInstancesInput
  2149  			if input != nil {
  2150  				tmp := *input
  2151  				inCpy = &tmp
  2152  			}
  2153  			req, _ := c.DescribeAutoScalingInstancesRequest(inCpy)
  2154  			req.SetContext(ctx)
  2155  			req.ApplyOptions(opts...)
  2156  			return req, nil
  2157  		},
  2158  	}
  2159  
  2160  	for p.Next() {
  2161  		if !fn(p.Page().(*DescribeAutoScalingInstancesOutput), !p.HasNextPage()) {
  2162  			break
  2163  		}
  2164  	}
  2165  
  2166  	return p.Err()
  2167  }
  2168  
  2169  const opDescribeAutoScalingNotificationTypes = "DescribeAutoScalingNotificationTypes"
  2170  
  2171  // DescribeAutoScalingNotificationTypesRequest generates a "aws/request.Request" representing the
  2172  // client's request for the DescribeAutoScalingNotificationTypes operation. The "output" return
  2173  // value will be populated with the request's response once the request completes
  2174  // successfully.
  2175  //
  2176  // Use "Send" method on the returned Request to send the API call to the service.
  2177  // the "output" return value is not valid until after Send returns without error.
  2178  //
  2179  // See DescribeAutoScalingNotificationTypes for more information on using the DescribeAutoScalingNotificationTypes
  2180  // API call, and error handling.
  2181  //
  2182  // This method is useful when you want to inject custom logic or configuration
  2183  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2184  //
  2185  //
  2186  //    // Example sending a request using the DescribeAutoScalingNotificationTypesRequest method.
  2187  //    req, resp := client.DescribeAutoScalingNotificationTypesRequest(params)
  2188  //
  2189  //    err := req.Send()
  2190  //    if err == nil { // resp is now filled
  2191  //        fmt.Println(resp)
  2192  //    }
  2193  //
  2194  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingNotificationTypes
  2195  func (c *AutoScaling) DescribeAutoScalingNotificationTypesRequest(input *DescribeAutoScalingNotificationTypesInput) (req *request.Request, output *DescribeAutoScalingNotificationTypesOutput) {
  2196  	op := &request.Operation{
  2197  		Name:       opDescribeAutoScalingNotificationTypes,
  2198  		HTTPMethod: "POST",
  2199  		HTTPPath:   "/",
  2200  	}
  2201  
  2202  	if input == nil {
  2203  		input = &DescribeAutoScalingNotificationTypesInput{}
  2204  	}
  2205  
  2206  	output = &DescribeAutoScalingNotificationTypesOutput{}
  2207  	req = c.newRequest(op, input, output)
  2208  	return
  2209  }
  2210  
  2211  // DescribeAutoScalingNotificationTypes API operation for Auto Scaling.
  2212  //
  2213  // Describes the notification types that are supported by Amazon EC2 Auto Scaling.
  2214  //
  2215  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2216  // with awserr.Error's Code and Message methods to get detailed information about
  2217  // the error.
  2218  //
  2219  // See the AWS API reference guide for Auto Scaling's
  2220  // API operation DescribeAutoScalingNotificationTypes for usage and error information.
  2221  //
  2222  // Returned Error Codes:
  2223  //   * ErrCodeResourceContentionFault "ResourceContention"
  2224  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2225  //   (for example, an Auto Scaling group, instance, or load balancer).
  2226  //
  2227  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingNotificationTypes
  2228  func (c *AutoScaling) DescribeAutoScalingNotificationTypes(input *DescribeAutoScalingNotificationTypesInput) (*DescribeAutoScalingNotificationTypesOutput, error) {
  2229  	req, out := c.DescribeAutoScalingNotificationTypesRequest(input)
  2230  	return out, req.Send()
  2231  }
  2232  
  2233  // DescribeAutoScalingNotificationTypesWithContext is the same as DescribeAutoScalingNotificationTypes with the addition of
  2234  // the ability to pass a context and additional request options.
  2235  //
  2236  // See DescribeAutoScalingNotificationTypes for details on how to use this API operation.
  2237  //
  2238  // The context must be non-nil and will be used for request cancellation. If
  2239  // the context is nil a panic will occur. In the future the SDK may create
  2240  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2241  // for more information on using Contexts.
  2242  func (c *AutoScaling) DescribeAutoScalingNotificationTypesWithContext(ctx aws.Context, input *DescribeAutoScalingNotificationTypesInput, opts ...request.Option) (*DescribeAutoScalingNotificationTypesOutput, error) {
  2243  	req, out := c.DescribeAutoScalingNotificationTypesRequest(input)
  2244  	req.SetContext(ctx)
  2245  	req.ApplyOptions(opts...)
  2246  	return out, req.Send()
  2247  }
  2248  
  2249  const opDescribeInstanceRefreshes = "DescribeInstanceRefreshes"
  2250  
  2251  // DescribeInstanceRefreshesRequest generates a "aws/request.Request" representing the
  2252  // client's request for the DescribeInstanceRefreshes operation. The "output" return
  2253  // value will be populated with the request's response once the request completes
  2254  // successfully.
  2255  //
  2256  // Use "Send" method on the returned Request to send the API call to the service.
  2257  // the "output" return value is not valid until after Send returns without error.
  2258  //
  2259  // See DescribeInstanceRefreshes for more information on using the DescribeInstanceRefreshes
  2260  // API call, and error handling.
  2261  //
  2262  // This method is useful when you want to inject custom logic or configuration
  2263  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2264  //
  2265  //
  2266  //    // Example sending a request using the DescribeInstanceRefreshesRequest method.
  2267  //    req, resp := client.DescribeInstanceRefreshesRequest(params)
  2268  //
  2269  //    err := req.Send()
  2270  //    if err == nil { // resp is now filled
  2271  //        fmt.Println(resp)
  2272  //    }
  2273  //
  2274  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeInstanceRefreshes
  2275  func (c *AutoScaling) DescribeInstanceRefreshesRequest(input *DescribeInstanceRefreshesInput) (req *request.Request, output *DescribeInstanceRefreshesOutput) {
  2276  	op := &request.Operation{
  2277  		Name:       opDescribeInstanceRefreshes,
  2278  		HTTPMethod: "POST",
  2279  		HTTPPath:   "/",
  2280  	}
  2281  
  2282  	if input == nil {
  2283  		input = &DescribeInstanceRefreshesInput{}
  2284  	}
  2285  
  2286  	output = &DescribeInstanceRefreshesOutput{}
  2287  	req = c.newRequest(op, input, output)
  2288  	return
  2289  }
  2290  
  2291  // DescribeInstanceRefreshes API operation for Auto Scaling.
  2292  //
  2293  // Gets information about the instance refreshes for the specified Auto Scaling
  2294  // group.
  2295  //
  2296  // This operation is part of the instance refresh feature (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html)
  2297  // in Amazon EC2 Auto Scaling, which helps you update instances in your Auto
  2298  // Scaling group after you make configuration changes.
  2299  //
  2300  // To help you determine the status of an instance refresh, this operation returns
  2301  // information about the instance refreshes you previously initiated, including
  2302  // their status, end time, the percentage of the instance refresh that is complete,
  2303  // and the number of instances remaining to update before the instance refresh
  2304  // is complete.
  2305  //
  2306  // The following are the possible statuses:
  2307  //
  2308  //    * Pending - The request was created, but the operation has not started.
  2309  //
  2310  //    * InProgress - The operation is in progress.
  2311  //
  2312  //    * Successful - The operation completed successfully.
  2313  //
  2314  //    * Failed - The operation failed to complete. You can troubleshoot using
  2315  //    the status reason and the scaling activities.
  2316  //
  2317  //    * Cancelling - An ongoing operation is being cancelled. Cancellation does
  2318  //    not roll back any replacements that have already been completed, but it
  2319  //    prevents new replacements from being started.
  2320  //
  2321  //    * Cancelled - The operation is cancelled.
  2322  //
  2323  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2324  // with awserr.Error's Code and Message methods to get detailed information about
  2325  // the error.
  2326  //
  2327  // See the AWS API reference guide for Auto Scaling's
  2328  // API operation DescribeInstanceRefreshes for usage and error information.
  2329  //
  2330  // Returned Error Codes:
  2331  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  2332  //   The NextToken value is not valid.
  2333  //
  2334  //   * ErrCodeResourceContentionFault "ResourceContention"
  2335  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2336  //   (for example, an Auto Scaling group, instance, or load balancer).
  2337  //
  2338  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeInstanceRefreshes
  2339  func (c *AutoScaling) DescribeInstanceRefreshes(input *DescribeInstanceRefreshesInput) (*DescribeInstanceRefreshesOutput, error) {
  2340  	req, out := c.DescribeInstanceRefreshesRequest(input)
  2341  	return out, req.Send()
  2342  }
  2343  
  2344  // DescribeInstanceRefreshesWithContext is the same as DescribeInstanceRefreshes with the addition of
  2345  // the ability to pass a context and additional request options.
  2346  //
  2347  // See DescribeInstanceRefreshes for details on how to use this API operation.
  2348  //
  2349  // The context must be non-nil and will be used for request cancellation. If
  2350  // the context is nil a panic will occur. In the future the SDK may create
  2351  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2352  // for more information on using Contexts.
  2353  func (c *AutoScaling) DescribeInstanceRefreshesWithContext(ctx aws.Context, input *DescribeInstanceRefreshesInput, opts ...request.Option) (*DescribeInstanceRefreshesOutput, error) {
  2354  	req, out := c.DescribeInstanceRefreshesRequest(input)
  2355  	req.SetContext(ctx)
  2356  	req.ApplyOptions(opts...)
  2357  	return out, req.Send()
  2358  }
  2359  
  2360  const opDescribeLaunchConfigurations = "DescribeLaunchConfigurations"
  2361  
  2362  // DescribeLaunchConfigurationsRequest generates a "aws/request.Request" representing the
  2363  // client's request for the DescribeLaunchConfigurations operation. The "output" return
  2364  // value will be populated with the request's response once the request completes
  2365  // successfully.
  2366  //
  2367  // Use "Send" method on the returned Request to send the API call to the service.
  2368  // the "output" return value is not valid until after Send returns without error.
  2369  //
  2370  // See DescribeLaunchConfigurations for more information on using the DescribeLaunchConfigurations
  2371  // API call, and error handling.
  2372  //
  2373  // This method is useful when you want to inject custom logic or configuration
  2374  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2375  //
  2376  //
  2377  //    // Example sending a request using the DescribeLaunchConfigurationsRequest method.
  2378  //    req, resp := client.DescribeLaunchConfigurationsRequest(params)
  2379  //
  2380  //    err := req.Send()
  2381  //    if err == nil { // resp is now filled
  2382  //        fmt.Println(resp)
  2383  //    }
  2384  //
  2385  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLaunchConfigurations
  2386  func (c *AutoScaling) DescribeLaunchConfigurationsRequest(input *DescribeLaunchConfigurationsInput) (req *request.Request, output *DescribeLaunchConfigurationsOutput) {
  2387  	op := &request.Operation{
  2388  		Name:       opDescribeLaunchConfigurations,
  2389  		HTTPMethod: "POST",
  2390  		HTTPPath:   "/",
  2391  		Paginator: &request.Paginator{
  2392  			InputTokens:     []string{"NextToken"},
  2393  			OutputTokens:    []string{"NextToken"},
  2394  			LimitToken:      "MaxRecords",
  2395  			TruncationToken: "",
  2396  		},
  2397  	}
  2398  
  2399  	if input == nil {
  2400  		input = &DescribeLaunchConfigurationsInput{}
  2401  	}
  2402  
  2403  	output = &DescribeLaunchConfigurationsOutput{}
  2404  	req = c.newRequest(op, input, output)
  2405  	return
  2406  }
  2407  
  2408  // DescribeLaunchConfigurations API operation for Auto Scaling.
  2409  //
  2410  // Gets information about the launch configurations in the account and Region.
  2411  //
  2412  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2413  // with awserr.Error's Code and Message methods to get detailed information about
  2414  // the error.
  2415  //
  2416  // See the AWS API reference guide for Auto Scaling's
  2417  // API operation DescribeLaunchConfigurations for usage and error information.
  2418  //
  2419  // Returned Error Codes:
  2420  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  2421  //   The NextToken value is not valid.
  2422  //
  2423  //   * ErrCodeResourceContentionFault "ResourceContention"
  2424  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2425  //   (for example, an Auto Scaling group, instance, or load balancer).
  2426  //
  2427  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLaunchConfigurations
  2428  func (c *AutoScaling) DescribeLaunchConfigurations(input *DescribeLaunchConfigurationsInput) (*DescribeLaunchConfigurationsOutput, error) {
  2429  	req, out := c.DescribeLaunchConfigurationsRequest(input)
  2430  	return out, req.Send()
  2431  }
  2432  
  2433  // DescribeLaunchConfigurationsWithContext is the same as DescribeLaunchConfigurations with the addition of
  2434  // the ability to pass a context and additional request options.
  2435  //
  2436  // See DescribeLaunchConfigurations for details on how to use this API operation.
  2437  //
  2438  // The context must be non-nil and will be used for request cancellation. If
  2439  // the context is nil a panic will occur. In the future the SDK may create
  2440  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2441  // for more information on using Contexts.
  2442  func (c *AutoScaling) DescribeLaunchConfigurationsWithContext(ctx aws.Context, input *DescribeLaunchConfigurationsInput, opts ...request.Option) (*DescribeLaunchConfigurationsOutput, error) {
  2443  	req, out := c.DescribeLaunchConfigurationsRequest(input)
  2444  	req.SetContext(ctx)
  2445  	req.ApplyOptions(opts...)
  2446  	return out, req.Send()
  2447  }
  2448  
  2449  // DescribeLaunchConfigurationsPages iterates over the pages of a DescribeLaunchConfigurations operation,
  2450  // calling the "fn" function with the response data for each page. To stop
  2451  // iterating, return false from the fn function.
  2452  //
  2453  // See DescribeLaunchConfigurations method for more information on how to use this operation.
  2454  //
  2455  // Note: This operation can generate multiple requests to a service.
  2456  //
  2457  //    // Example iterating over at most 3 pages of a DescribeLaunchConfigurations operation.
  2458  //    pageNum := 0
  2459  //    err := client.DescribeLaunchConfigurationsPages(params,
  2460  //        func(page *autoscaling.DescribeLaunchConfigurationsOutput, lastPage bool) bool {
  2461  //            pageNum++
  2462  //            fmt.Println(page)
  2463  //            return pageNum <= 3
  2464  //        })
  2465  //
  2466  func (c *AutoScaling) DescribeLaunchConfigurationsPages(input *DescribeLaunchConfigurationsInput, fn func(*DescribeLaunchConfigurationsOutput, bool) bool) error {
  2467  	return c.DescribeLaunchConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
  2468  }
  2469  
  2470  // DescribeLaunchConfigurationsPagesWithContext same as DescribeLaunchConfigurationsPages except
  2471  // it takes a Context and allows setting request options on the pages.
  2472  //
  2473  // The context must be non-nil and will be used for request cancellation. If
  2474  // the context is nil a panic will occur. In the future the SDK may create
  2475  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2476  // for more information on using Contexts.
  2477  func (c *AutoScaling) DescribeLaunchConfigurationsPagesWithContext(ctx aws.Context, input *DescribeLaunchConfigurationsInput, fn func(*DescribeLaunchConfigurationsOutput, bool) bool, opts ...request.Option) error {
  2478  	p := request.Pagination{
  2479  		NewRequest: func() (*request.Request, error) {
  2480  			var inCpy *DescribeLaunchConfigurationsInput
  2481  			if input != nil {
  2482  				tmp := *input
  2483  				inCpy = &tmp
  2484  			}
  2485  			req, _ := c.DescribeLaunchConfigurationsRequest(inCpy)
  2486  			req.SetContext(ctx)
  2487  			req.ApplyOptions(opts...)
  2488  			return req, nil
  2489  		},
  2490  	}
  2491  
  2492  	for p.Next() {
  2493  		if !fn(p.Page().(*DescribeLaunchConfigurationsOutput), !p.HasNextPage()) {
  2494  			break
  2495  		}
  2496  	}
  2497  
  2498  	return p.Err()
  2499  }
  2500  
  2501  const opDescribeLifecycleHookTypes = "DescribeLifecycleHookTypes"
  2502  
  2503  // DescribeLifecycleHookTypesRequest generates a "aws/request.Request" representing the
  2504  // client's request for the DescribeLifecycleHookTypes operation. The "output" return
  2505  // value will be populated with the request's response once the request completes
  2506  // successfully.
  2507  //
  2508  // Use "Send" method on the returned Request to send the API call to the service.
  2509  // the "output" return value is not valid until after Send returns without error.
  2510  //
  2511  // See DescribeLifecycleHookTypes for more information on using the DescribeLifecycleHookTypes
  2512  // API call, and error handling.
  2513  //
  2514  // This method is useful when you want to inject custom logic or configuration
  2515  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2516  //
  2517  //
  2518  //    // Example sending a request using the DescribeLifecycleHookTypesRequest method.
  2519  //    req, resp := client.DescribeLifecycleHookTypesRequest(params)
  2520  //
  2521  //    err := req.Send()
  2522  //    if err == nil { // resp is now filled
  2523  //        fmt.Println(resp)
  2524  //    }
  2525  //
  2526  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHookTypes
  2527  func (c *AutoScaling) DescribeLifecycleHookTypesRequest(input *DescribeLifecycleHookTypesInput) (req *request.Request, output *DescribeLifecycleHookTypesOutput) {
  2528  	op := &request.Operation{
  2529  		Name:       opDescribeLifecycleHookTypes,
  2530  		HTTPMethod: "POST",
  2531  		HTTPPath:   "/",
  2532  	}
  2533  
  2534  	if input == nil {
  2535  		input = &DescribeLifecycleHookTypesInput{}
  2536  	}
  2537  
  2538  	output = &DescribeLifecycleHookTypesOutput{}
  2539  	req = c.newRequest(op, input, output)
  2540  	return
  2541  }
  2542  
  2543  // DescribeLifecycleHookTypes API operation for Auto Scaling.
  2544  //
  2545  // Describes the available types of lifecycle hooks.
  2546  //
  2547  // The following hook types are supported:
  2548  //
  2549  //    * autoscaling:EC2_INSTANCE_LAUNCHING
  2550  //
  2551  //    * autoscaling:EC2_INSTANCE_TERMINATING
  2552  //
  2553  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2554  // with awserr.Error's Code and Message methods to get detailed information about
  2555  // the error.
  2556  //
  2557  // See the AWS API reference guide for Auto Scaling's
  2558  // API operation DescribeLifecycleHookTypes for usage and error information.
  2559  //
  2560  // Returned Error Codes:
  2561  //   * ErrCodeResourceContentionFault "ResourceContention"
  2562  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2563  //   (for example, an Auto Scaling group, instance, or load balancer).
  2564  //
  2565  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHookTypes
  2566  func (c *AutoScaling) DescribeLifecycleHookTypes(input *DescribeLifecycleHookTypesInput) (*DescribeLifecycleHookTypesOutput, error) {
  2567  	req, out := c.DescribeLifecycleHookTypesRequest(input)
  2568  	return out, req.Send()
  2569  }
  2570  
  2571  // DescribeLifecycleHookTypesWithContext is the same as DescribeLifecycleHookTypes with the addition of
  2572  // the ability to pass a context and additional request options.
  2573  //
  2574  // See DescribeLifecycleHookTypes for details on how to use this API operation.
  2575  //
  2576  // The context must be non-nil and will be used for request cancellation. If
  2577  // the context is nil a panic will occur. In the future the SDK may create
  2578  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2579  // for more information on using Contexts.
  2580  func (c *AutoScaling) DescribeLifecycleHookTypesWithContext(ctx aws.Context, input *DescribeLifecycleHookTypesInput, opts ...request.Option) (*DescribeLifecycleHookTypesOutput, error) {
  2581  	req, out := c.DescribeLifecycleHookTypesRequest(input)
  2582  	req.SetContext(ctx)
  2583  	req.ApplyOptions(opts...)
  2584  	return out, req.Send()
  2585  }
  2586  
  2587  const opDescribeLifecycleHooks = "DescribeLifecycleHooks"
  2588  
  2589  // DescribeLifecycleHooksRequest generates a "aws/request.Request" representing the
  2590  // client's request for the DescribeLifecycleHooks operation. The "output" return
  2591  // value will be populated with the request's response once the request completes
  2592  // successfully.
  2593  //
  2594  // Use "Send" method on the returned Request to send the API call to the service.
  2595  // the "output" return value is not valid until after Send returns without error.
  2596  //
  2597  // See DescribeLifecycleHooks for more information on using the DescribeLifecycleHooks
  2598  // API call, and error handling.
  2599  //
  2600  // This method is useful when you want to inject custom logic or configuration
  2601  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2602  //
  2603  //
  2604  //    // Example sending a request using the DescribeLifecycleHooksRequest method.
  2605  //    req, resp := client.DescribeLifecycleHooksRequest(params)
  2606  //
  2607  //    err := req.Send()
  2608  //    if err == nil { // resp is now filled
  2609  //        fmt.Println(resp)
  2610  //    }
  2611  //
  2612  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHooks
  2613  func (c *AutoScaling) DescribeLifecycleHooksRequest(input *DescribeLifecycleHooksInput) (req *request.Request, output *DescribeLifecycleHooksOutput) {
  2614  	op := &request.Operation{
  2615  		Name:       opDescribeLifecycleHooks,
  2616  		HTTPMethod: "POST",
  2617  		HTTPPath:   "/",
  2618  	}
  2619  
  2620  	if input == nil {
  2621  		input = &DescribeLifecycleHooksInput{}
  2622  	}
  2623  
  2624  	output = &DescribeLifecycleHooksOutput{}
  2625  	req = c.newRequest(op, input, output)
  2626  	return
  2627  }
  2628  
  2629  // DescribeLifecycleHooks API operation for Auto Scaling.
  2630  //
  2631  // Gets information about the lifecycle hooks for the specified Auto Scaling
  2632  // group.
  2633  //
  2634  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2635  // with awserr.Error's Code and Message methods to get detailed information about
  2636  // the error.
  2637  //
  2638  // See the AWS API reference guide for Auto Scaling's
  2639  // API operation DescribeLifecycleHooks for usage and error information.
  2640  //
  2641  // Returned Error Codes:
  2642  //   * ErrCodeResourceContentionFault "ResourceContention"
  2643  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2644  //   (for example, an Auto Scaling group, instance, or load balancer).
  2645  //
  2646  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHooks
  2647  func (c *AutoScaling) DescribeLifecycleHooks(input *DescribeLifecycleHooksInput) (*DescribeLifecycleHooksOutput, error) {
  2648  	req, out := c.DescribeLifecycleHooksRequest(input)
  2649  	return out, req.Send()
  2650  }
  2651  
  2652  // DescribeLifecycleHooksWithContext is the same as DescribeLifecycleHooks with the addition of
  2653  // the ability to pass a context and additional request options.
  2654  //
  2655  // See DescribeLifecycleHooks for details on how to use this API operation.
  2656  //
  2657  // The context must be non-nil and will be used for request cancellation. If
  2658  // the context is nil a panic will occur. In the future the SDK may create
  2659  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2660  // for more information on using Contexts.
  2661  func (c *AutoScaling) DescribeLifecycleHooksWithContext(ctx aws.Context, input *DescribeLifecycleHooksInput, opts ...request.Option) (*DescribeLifecycleHooksOutput, error) {
  2662  	req, out := c.DescribeLifecycleHooksRequest(input)
  2663  	req.SetContext(ctx)
  2664  	req.ApplyOptions(opts...)
  2665  	return out, req.Send()
  2666  }
  2667  
  2668  const opDescribeLoadBalancerTargetGroups = "DescribeLoadBalancerTargetGroups"
  2669  
  2670  // DescribeLoadBalancerTargetGroupsRequest generates a "aws/request.Request" representing the
  2671  // client's request for the DescribeLoadBalancerTargetGroups operation. The "output" return
  2672  // value will be populated with the request's response once the request completes
  2673  // successfully.
  2674  //
  2675  // Use "Send" method on the returned Request to send the API call to the service.
  2676  // the "output" return value is not valid until after Send returns without error.
  2677  //
  2678  // See DescribeLoadBalancerTargetGroups for more information on using the DescribeLoadBalancerTargetGroups
  2679  // API call, and error handling.
  2680  //
  2681  // This method is useful when you want to inject custom logic or configuration
  2682  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2683  //
  2684  //
  2685  //    // Example sending a request using the DescribeLoadBalancerTargetGroupsRequest method.
  2686  //    req, resp := client.DescribeLoadBalancerTargetGroupsRequest(params)
  2687  //
  2688  //    err := req.Send()
  2689  //    if err == nil { // resp is now filled
  2690  //        fmt.Println(resp)
  2691  //    }
  2692  //
  2693  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancerTargetGroups
  2694  func (c *AutoScaling) DescribeLoadBalancerTargetGroupsRequest(input *DescribeLoadBalancerTargetGroupsInput) (req *request.Request, output *DescribeLoadBalancerTargetGroupsOutput) {
  2695  	op := &request.Operation{
  2696  		Name:       opDescribeLoadBalancerTargetGroups,
  2697  		HTTPMethod: "POST",
  2698  		HTTPPath:   "/",
  2699  	}
  2700  
  2701  	if input == nil {
  2702  		input = &DescribeLoadBalancerTargetGroupsInput{}
  2703  	}
  2704  
  2705  	output = &DescribeLoadBalancerTargetGroupsOutput{}
  2706  	req = c.newRequest(op, input, output)
  2707  	return
  2708  }
  2709  
  2710  // DescribeLoadBalancerTargetGroups API operation for Auto Scaling.
  2711  //
  2712  // Gets information about the load balancer target groups for the specified
  2713  // Auto Scaling group.
  2714  //
  2715  // To determine the availability of registered instances, use the State element
  2716  // in the response. When you attach a target group to an Auto Scaling group,
  2717  // the initial State value is Adding. The state transitions to Added after all
  2718  // Auto Scaling instances are registered with the target group. If Elastic Load
  2719  // Balancing health checks are enabled for the Auto Scaling group, the state
  2720  // transitions to InService after at least one Auto Scaling instance passes
  2721  // the health check. When the target group is in the InService state, Amazon
  2722  // EC2 Auto Scaling can terminate and replace any instances that are reported
  2723  // as unhealthy. If no registered instances pass the health checks, the target
  2724  // group doesn't enter the InService state.
  2725  //
  2726  // Target groups also have an InService state if you attach them in the CreateAutoScalingGroup
  2727  // API call. If your target group state is InService, but it is not working
  2728  // properly, check the scaling activities by calling DescribeScalingActivities
  2729  // and take any corrective actions necessary.
  2730  //
  2731  // For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling:
  2732  // Health checks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html)
  2733  // in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic
  2734  // Load Balancing and Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
  2735  // in the Amazon EC2 Auto Scaling User Guide.
  2736  //
  2737  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2738  // with awserr.Error's Code and Message methods to get detailed information about
  2739  // the error.
  2740  //
  2741  // See the AWS API reference guide for Auto Scaling's
  2742  // API operation DescribeLoadBalancerTargetGroups for usage and error information.
  2743  //
  2744  // Returned Error Codes:
  2745  //   * ErrCodeResourceContentionFault "ResourceContention"
  2746  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2747  //   (for example, an Auto Scaling group, instance, or load balancer).
  2748  //
  2749  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancerTargetGroups
  2750  func (c *AutoScaling) DescribeLoadBalancerTargetGroups(input *DescribeLoadBalancerTargetGroupsInput) (*DescribeLoadBalancerTargetGroupsOutput, error) {
  2751  	req, out := c.DescribeLoadBalancerTargetGroupsRequest(input)
  2752  	return out, req.Send()
  2753  }
  2754  
  2755  // DescribeLoadBalancerTargetGroupsWithContext is the same as DescribeLoadBalancerTargetGroups with the addition of
  2756  // the ability to pass a context and additional request options.
  2757  //
  2758  // See DescribeLoadBalancerTargetGroups for details on how to use this API operation.
  2759  //
  2760  // The context must be non-nil and will be used for request cancellation. If
  2761  // the context is nil a panic will occur. In the future the SDK may create
  2762  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2763  // for more information on using Contexts.
  2764  func (c *AutoScaling) DescribeLoadBalancerTargetGroupsWithContext(ctx aws.Context, input *DescribeLoadBalancerTargetGroupsInput, opts ...request.Option) (*DescribeLoadBalancerTargetGroupsOutput, error) {
  2765  	req, out := c.DescribeLoadBalancerTargetGroupsRequest(input)
  2766  	req.SetContext(ctx)
  2767  	req.ApplyOptions(opts...)
  2768  	return out, req.Send()
  2769  }
  2770  
  2771  const opDescribeLoadBalancers = "DescribeLoadBalancers"
  2772  
  2773  // DescribeLoadBalancersRequest generates a "aws/request.Request" representing the
  2774  // client's request for the DescribeLoadBalancers operation. The "output" return
  2775  // value will be populated with the request's response once the request completes
  2776  // successfully.
  2777  //
  2778  // Use "Send" method on the returned Request to send the API call to the service.
  2779  // the "output" return value is not valid until after Send returns without error.
  2780  //
  2781  // See DescribeLoadBalancers for more information on using the DescribeLoadBalancers
  2782  // API call, and error handling.
  2783  //
  2784  // This method is useful when you want to inject custom logic or configuration
  2785  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2786  //
  2787  //
  2788  //    // Example sending a request using the DescribeLoadBalancersRequest method.
  2789  //    req, resp := client.DescribeLoadBalancersRequest(params)
  2790  //
  2791  //    err := req.Send()
  2792  //    if err == nil { // resp is now filled
  2793  //        fmt.Println(resp)
  2794  //    }
  2795  //
  2796  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancers
  2797  func (c *AutoScaling) DescribeLoadBalancersRequest(input *DescribeLoadBalancersInput) (req *request.Request, output *DescribeLoadBalancersOutput) {
  2798  	op := &request.Operation{
  2799  		Name:       opDescribeLoadBalancers,
  2800  		HTTPMethod: "POST",
  2801  		HTTPPath:   "/",
  2802  	}
  2803  
  2804  	if input == nil {
  2805  		input = &DescribeLoadBalancersInput{}
  2806  	}
  2807  
  2808  	output = &DescribeLoadBalancersOutput{}
  2809  	req = c.newRequest(op, input, output)
  2810  	return
  2811  }
  2812  
  2813  // DescribeLoadBalancers API operation for Auto Scaling.
  2814  //
  2815  // Gets information about the load balancers for the specified Auto Scaling
  2816  // group.
  2817  //
  2818  // This operation describes only Classic Load Balancers. If you have Application
  2819  // Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the
  2820  // DescribeLoadBalancerTargetGroups API instead.
  2821  //
  2822  // To determine the availability of registered instances, use the State element
  2823  // in the response. When you attach a load balancer to an Auto Scaling group,
  2824  // the initial State value is Adding. The state transitions to Added after all
  2825  // Auto Scaling instances are registered with the load balancer. If Elastic
  2826  // Load Balancing health checks are enabled for the Auto Scaling group, the
  2827  // state transitions to InService after at least one Auto Scaling instance passes
  2828  // the health check. When the load balancer is in the InService state, Amazon
  2829  // EC2 Auto Scaling can terminate and replace any instances that are reported
  2830  // as unhealthy. If no registered instances pass the health checks, the load
  2831  // balancer doesn't enter the InService state.
  2832  //
  2833  // Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup
  2834  // API call. If your load balancer state is InService, but it is not working
  2835  // properly, check the scaling activities by calling DescribeScalingActivities
  2836  // and take any corrective actions necessary.
  2837  //
  2838  // For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling:
  2839  // Health checks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ts-as-healthchecks.html)
  2840  // in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic
  2841  // Load Balancing and Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
  2842  // in the Amazon EC2 Auto Scaling User Guide.
  2843  //
  2844  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2845  // with awserr.Error's Code and Message methods to get detailed information about
  2846  // the error.
  2847  //
  2848  // See the AWS API reference guide for Auto Scaling's
  2849  // API operation DescribeLoadBalancers for usage and error information.
  2850  //
  2851  // Returned Error Codes:
  2852  //   * ErrCodeResourceContentionFault "ResourceContention"
  2853  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2854  //   (for example, an Auto Scaling group, instance, or load balancer).
  2855  //
  2856  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancers
  2857  func (c *AutoScaling) DescribeLoadBalancers(input *DescribeLoadBalancersInput) (*DescribeLoadBalancersOutput, error) {
  2858  	req, out := c.DescribeLoadBalancersRequest(input)
  2859  	return out, req.Send()
  2860  }
  2861  
  2862  // DescribeLoadBalancersWithContext is the same as DescribeLoadBalancers with the addition of
  2863  // the ability to pass a context and additional request options.
  2864  //
  2865  // See DescribeLoadBalancers for details on how to use this API operation.
  2866  //
  2867  // The context must be non-nil and will be used for request cancellation. If
  2868  // the context is nil a panic will occur. In the future the SDK may create
  2869  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2870  // for more information on using Contexts.
  2871  func (c *AutoScaling) DescribeLoadBalancersWithContext(ctx aws.Context, input *DescribeLoadBalancersInput, opts ...request.Option) (*DescribeLoadBalancersOutput, error) {
  2872  	req, out := c.DescribeLoadBalancersRequest(input)
  2873  	req.SetContext(ctx)
  2874  	req.ApplyOptions(opts...)
  2875  	return out, req.Send()
  2876  }
  2877  
  2878  const opDescribeMetricCollectionTypes = "DescribeMetricCollectionTypes"
  2879  
  2880  // DescribeMetricCollectionTypesRequest generates a "aws/request.Request" representing the
  2881  // client's request for the DescribeMetricCollectionTypes operation. The "output" return
  2882  // value will be populated with the request's response once the request completes
  2883  // successfully.
  2884  //
  2885  // Use "Send" method on the returned Request to send the API call to the service.
  2886  // the "output" return value is not valid until after Send returns without error.
  2887  //
  2888  // See DescribeMetricCollectionTypes for more information on using the DescribeMetricCollectionTypes
  2889  // API call, and error handling.
  2890  //
  2891  // This method is useful when you want to inject custom logic or configuration
  2892  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2893  //
  2894  //
  2895  //    // Example sending a request using the DescribeMetricCollectionTypesRequest method.
  2896  //    req, resp := client.DescribeMetricCollectionTypesRequest(params)
  2897  //
  2898  //    err := req.Send()
  2899  //    if err == nil { // resp is now filled
  2900  //        fmt.Println(resp)
  2901  //    }
  2902  //
  2903  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeMetricCollectionTypes
  2904  func (c *AutoScaling) DescribeMetricCollectionTypesRequest(input *DescribeMetricCollectionTypesInput) (req *request.Request, output *DescribeMetricCollectionTypesOutput) {
  2905  	op := &request.Operation{
  2906  		Name:       opDescribeMetricCollectionTypes,
  2907  		HTTPMethod: "POST",
  2908  		HTTPPath:   "/",
  2909  	}
  2910  
  2911  	if input == nil {
  2912  		input = &DescribeMetricCollectionTypesInput{}
  2913  	}
  2914  
  2915  	output = &DescribeMetricCollectionTypesOutput{}
  2916  	req = c.newRequest(op, input, output)
  2917  	return
  2918  }
  2919  
  2920  // DescribeMetricCollectionTypes API operation for Auto Scaling.
  2921  //
  2922  // Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.
  2923  //
  2924  // The GroupStandbyInstances metric is not returned by default. You must explicitly
  2925  // request this metric when calling the EnableMetricsCollection API.
  2926  //
  2927  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2928  // with awserr.Error's Code and Message methods to get detailed information about
  2929  // the error.
  2930  //
  2931  // See the AWS API reference guide for Auto Scaling's
  2932  // API operation DescribeMetricCollectionTypes for usage and error information.
  2933  //
  2934  // Returned Error Codes:
  2935  //   * ErrCodeResourceContentionFault "ResourceContention"
  2936  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  2937  //   (for example, an Auto Scaling group, instance, or load balancer).
  2938  //
  2939  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeMetricCollectionTypes
  2940  func (c *AutoScaling) DescribeMetricCollectionTypes(input *DescribeMetricCollectionTypesInput) (*DescribeMetricCollectionTypesOutput, error) {
  2941  	req, out := c.DescribeMetricCollectionTypesRequest(input)
  2942  	return out, req.Send()
  2943  }
  2944  
  2945  // DescribeMetricCollectionTypesWithContext is the same as DescribeMetricCollectionTypes with the addition of
  2946  // the ability to pass a context and additional request options.
  2947  //
  2948  // See DescribeMetricCollectionTypes for details on how to use this API operation.
  2949  //
  2950  // The context must be non-nil and will be used for request cancellation. If
  2951  // the context is nil a panic will occur. In the future the SDK may create
  2952  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2953  // for more information on using Contexts.
  2954  func (c *AutoScaling) DescribeMetricCollectionTypesWithContext(ctx aws.Context, input *DescribeMetricCollectionTypesInput, opts ...request.Option) (*DescribeMetricCollectionTypesOutput, error) {
  2955  	req, out := c.DescribeMetricCollectionTypesRequest(input)
  2956  	req.SetContext(ctx)
  2957  	req.ApplyOptions(opts...)
  2958  	return out, req.Send()
  2959  }
  2960  
  2961  const opDescribeNotificationConfigurations = "DescribeNotificationConfigurations"
  2962  
  2963  // DescribeNotificationConfigurationsRequest generates a "aws/request.Request" representing the
  2964  // client's request for the DescribeNotificationConfigurations operation. The "output" return
  2965  // value will be populated with the request's response once the request completes
  2966  // successfully.
  2967  //
  2968  // Use "Send" method on the returned Request to send the API call to the service.
  2969  // the "output" return value is not valid until after Send returns without error.
  2970  //
  2971  // See DescribeNotificationConfigurations for more information on using the DescribeNotificationConfigurations
  2972  // API call, and error handling.
  2973  //
  2974  // This method is useful when you want to inject custom logic or configuration
  2975  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2976  //
  2977  //
  2978  //    // Example sending a request using the DescribeNotificationConfigurationsRequest method.
  2979  //    req, resp := client.DescribeNotificationConfigurationsRequest(params)
  2980  //
  2981  //    err := req.Send()
  2982  //    if err == nil { // resp is now filled
  2983  //        fmt.Println(resp)
  2984  //    }
  2985  //
  2986  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeNotificationConfigurations
  2987  func (c *AutoScaling) DescribeNotificationConfigurationsRequest(input *DescribeNotificationConfigurationsInput) (req *request.Request, output *DescribeNotificationConfigurationsOutput) {
  2988  	op := &request.Operation{
  2989  		Name:       opDescribeNotificationConfigurations,
  2990  		HTTPMethod: "POST",
  2991  		HTTPPath:   "/",
  2992  		Paginator: &request.Paginator{
  2993  			InputTokens:     []string{"NextToken"},
  2994  			OutputTokens:    []string{"NextToken"},
  2995  			LimitToken:      "MaxRecords",
  2996  			TruncationToken: "",
  2997  		},
  2998  	}
  2999  
  3000  	if input == nil {
  3001  		input = &DescribeNotificationConfigurationsInput{}
  3002  	}
  3003  
  3004  	output = &DescribeNotificationConfigurationsOutput{}
  3005  	req = c.newRequest(op, input, output)
  3006  	return
  3007  }
  3008  
  3009  // DescribeNotificationConfigurations API operation for Auto Scaling.
  3010  //
  3011  // Gets information about the Amazon SNS notifications that are configured for
  3012  // one or more Auto Scaling groups.
  3013  //
  3014  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3015  // with awserr.Error's Code and Message methods to get detailed information about
  3016  // the error.
  3017  //
  3018  // See the AWS API reference guide for Auto Scaling's
  3019  // API operation DescribeNotificationConfigurations for usage and error information.
  3020  //
  3021  // Returned Error Codes:
  3022  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  3023  //   The NextToken value is not valid.
  3024  //
  3025  //   * ErrCodeResourceContentionFault "ResourceContention"
  3026  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3027  //   (for example, an Auto Scaling group, instance, or load balancer).
  3028  //
  3029  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeNotificationConfigurations
  3030  func (c *AutoScaling) DescribeNotificationConfigurations(input *DescribeNotificationConfigurationsInput) (*DescribeNotificationConfigurationsOutput, error) {
  3031  	req, out := c.DescribeNotificationConfigurationsRequest(input)
  3032  	return out, req.Send()
  3033  }
  3034  
  3035  // DescribeNotificationConfigurationsWithContext is the same as DescribeNotificationConfigurations with the addition of
  3036  // the ability to pass a context and additional request options.
  3037  //
  3038  // See DescribeNotificationConfigurations for details on how to use this API operation.
  3039  //
  3040  // The context must be non-nil and will be used for request cancellation. If
  3041  // the context is nil a panic will occur. In the future the SDK may create
  3042  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3043  // for more information on using Contexts.
  3044  func (c *AutoScaling) DescribeNotificationConfigurationsWithContext(ctx aws.Context, input *DescribeNotificationConfigurationsInput, opts ...request.Option) (*DescribeNotificationConfigurationsOutput, error) {
  3045  	req, out := c.DescribeNotificationConfigurationsRequest(input)
  3046  	req.SetContext(ctx)
  3047  	req.ApplyOptions(opts...)
  3048  	return out, req.Send()
  3049  }
  3050  
  3051  // DescribeNotificationConfigurationsPages iterates over the pages of a DescribeNotificationConfigurations operation,
  3052  // calling the "fn" function with the response data for each page. To stop
  3053  // iterating, return false from the fn function.
  3054  //
  3055  // See DescribeNotificationConfigurations method for more information on how to use this operation.
  3056  //
  3057  // Note: This operation can generate multiple requests to a service.
  3058  //
  3059  //    // Example iterating over at most 3 pages of a DescribeNotificationConfigurations operation.
  3060  //    pageNum := 0
  3061  //    err := client.DescribeNotificationConfigurationsPages(params,
  3062  //        func(page *autoscaling.DescribeNotificationConfigurationsOutput, lastPage bool) bool {
  3063  //            pageNum++
  3064  //            fmt.Println(page)
  3065  //            return pageNum <= 3
  3066  //        })
  3067  //
  3068  func (c *AutoScaling) DescribeNotificationConfigurationsPages(input *DescribeNotificationConfigurationsInput, fn func(*DescribeNotificationConfigurationsOutput, bool) bool) error {
  3069  	return c.DescribeNotificationConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
  3070  }
  3071  
  3072  // DescribeNotificationConfigurationsPagesWithContext same as DescribeNotificationConfigurationsPages except
  3073  // it takes a Context and allows setting request options on the pages.
  3074  //
  3075  // The context must be non-nil and will be used for request cancellation. If
  3076  // the context is nil a panic will occur. In the future the SDK may create
  3077  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3078  // for more information on using Contexts.
  3079  func (c *AutoScaling) DescribeNotificationConfigurationsPagesWithContext(ctx aws.Context, input *DescribeNotificationConfigurationsInput, fn func(*DescribeNotificationConfigurationsOutput, bool) bool, opts ...request.Option) error {
  3080  	p := request.Pagination{
  3081  		NewRequest: func() (*request.Request, error) {
  3082  			var inCpy *DescribeNotificationConfigurationsInput
  3083  			if input != nil {
  3084  				tmp := *input
  3085  				inCpy = &tmp
  3086  			}
  3087  			req, _ := c.DescribeNotificationConfigurationsRequest(inCpy)
  3088  			req.SetContext(ctx)
  3089  			req.ApplyOptions(opts...)
  3090  			return req, nil
  3091  		},
  3092  	}
  3093  
  3094  	for p.Next() {
  3095  		if !fn(p.Page().(*DescribeNotificationConfigurationsOutput), !p.HasNextPage()) {
  3096  			break
  3097  		}
  3098  	}
  3099  
  3100  	return p.Err()
  3101  }
  3102  
  3103  const opDescribePolicies = "DescribePolicies"
  3104  
  3105  // DescribePoliciesRequest generates a "aws/request.Request" representing the
  3106  // client's request for the DescribePolicies operation. The "output" return
  3107  // value will be populated with the request's response once the request completes
  3108  // successfully.
  3109  //
  3110  // Use "Send" method on the returned Request to send the API call to the service.
  3111  // the "output" return value is not valid until after Send returns without error.
  3112  //
  3113  // See DescribePolicies for more information on using the DescribePolicies
  3114  // API call, and error handling.
  3115  //
  3116  // This method is useful when you want to inject custom logic or configuration
  3117  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3118  //
  3119  //
  3120  //    // Example sending a request using the DescribePoliciesRequest method.
  3121  //    req, resp := client.DescribePoliciesRequest(params)
  3122  //
  3123  //    err := req.Send()
  3124  //    if err == nil { // resp is now filled
  3125  //        fmt.Println(resp)
  3126  //    }
  3127  //
  3128  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribePolicies
  3129  func (c *AutoScaling) DescribePoliciesRequest(input *DescribePoliciesInput) (req *request.Request, output *DescribePoliciesOutput) {
  3130  	op := &request.Operation{
  3131  		Name:       opDescribePolicies,
  3132  		HTTPMethod: "POST",
  3133  		HTTPPath:   "/",
  3134  		Paginator: &request.Paginator{
  3135  			InputTokens:     []string{"NextToken"},
  3136  			OutputTokens:    []string{"NextToken"},
  3137  			LimitToken:      "MaxRecords",
  3138  			TruncationToken: "",
  3139  		},
  3140  	}
  3141  
  3142  	if input == nil {
  3143  		input = &DescribePoliciesInput{}
  3144  	}
  3145  
  3146  	output = &DescribePoliciesOutput{}
  3147  	req = c.newRequest(op, input, output)
  3148  	return
  3149  }
  3150  
  3151  // DescribePolicies API operation for Auto Scaling.
  3152  //
  3153  // Gets information about the scaling policies in the account and Region.
  3154  //
  3155  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3156  // with awserr.Error's Code and Message methods to get detailed information about
  3157  // the error.
  3158  //
  3159  // See the AWS API reference guide for Auto Scaling's
  3160  // API operation DescribePolicies for usage and error information.
  3161  //
  3162  // Returned Error Codes:
  3163  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  3164  //   The NextToken value is not valid.
  3165  //
  3166  //   * ErrCodeResourceContentionFault "ResourceContention"
  3167  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3168  //   (for example, an Auto Scaling group, instance, or load balancer).
  3169  //
  3170  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
  3171  //   The service-linked role is not yet ready for use.
  3172  //
  3173  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribePolicies
  3174  func (c *AutoScaling) DescribePolicies(input *DescribePoliciesInput) (*DescribePoliciesOutput, error) {
  3175  	req, out := c.DescribePoliciesRequest(input)
  3176  	return out, req.Send()
  3177  }
  3178  
  3179  // DescribePoliciesWithContext is the same as DescribePolicies with the addition of
  3180  // the ability to pass a context and additional request options.
  3181  //
  3182  // See DescribePolicies for details on how to use this API operation.
  3183  //
  3184  // The context must be non-nil and will be used for request cancellation. If
  3185  // the context is nil a panic will occur. In the future the SDK may create
  3186  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3187  // for more information on using Contexts.
  3188  func (c *AutoScaling) DescribePoliciesWithContext(ctx aws.Context, input *DescribePoliciesInput, opts ...request.Option) (*DescribePoliciesOutput, error) {
  3189  	req, out := c.DescribePoliciesRequest(input)
  3190  	req.SetContext(ctx)
  3191  	req.ApplyOptions(opts...)
  3192  	return out, req.Send()
  3193  }
  3194  
  3195  // DescribePoliciesPages iterates over the pages of a DescribePolicies operation,
  3196  // calling the "fn" function with the response data for each page. To stop
  3197  // iterating, return false from the fn function.
  3198  //
  3199  // See DescribePolicies method for more information on how to use this operation.
  3200  //
  3201  // Note: This operation can generate multiple requests to a service.
  3202  //
  3203  //    // Example iterating over at most 3 pages of a DescribePolicies operation.
  3204  //    pageNum := 0
  3205  //    err := client.DescribePoliciesPages(params,
  3206  //        func(page *autoscaling.DescribePoliciesOutput, lastPage bool) bool {
  3207  //            pageNum++
  3208  //            fmt.Println(page)
  3209  //            return pageNum <= 3
  3210  //        })
  3211  //
  3212  func (c *AutoScaling) DescribePoliciesPages(input *DescribePoliciesInput, fn func(*DescribePoliciesOutput, bool) bool) error {
  3213  	return c.DescribePoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
  3214  }
  3215  
  3216  // DescribePoliciesPagesWithContext same as DescribePoliciesPages except
  3217  // it takes a Context and allows setting request options on the pages.
  3218  //
  3219  // The context must be non-nil and will be used for request cancellation. If
  3220  // the context is nil a panic will occur. In the future the SDK may create
  3221  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3222  // for more information on using Contexts.
  3223  func (c *AutoScaling) DescribePoliciesPagesWithContext(ctx aws.Context, input *DescribePoliciesInput, fn func(*DescribePoliciesOutput, bool) bool, opts ...request.Option) error {
  3224  	p := request.Pagination{
  3225  		NewRequest: func() (*request.Request, error) {
  3226  			var inCpy *DescribePoliciesInput
  3227  			if input != nil {
  3228  				tmp := *input
  3229  				inCpy = &tmp
  3230  			}
  3231  			req, _ := c.DescribePoliciesRequest(inCpy)
  3232  			req.SetContext(ctx)
  3233  			req.ApplyOptions(opts...)
  3234  			return req, nil
  3235  		},
  3236  	}
  3237  
  3238  	for p.Next() {
  3239  		if !fn(p.Page().(*DescribePoliciesOutput), !p.HasNextPage()) {
  3240  			break
  3241  		}
  3242  	}
  3243  
  3244  	return p.Err()
  3245  }
  3246  
  3247  const opDescribeScalingActivities = "DescribeScalingActivities"
  3248  
  3249  // DescribeScalingActivitiesRequest generates a "aws/request.Request" representing the
  3250  // client's request for the DescribeScalingActivities operation. The "output" return
  3251  // value will be populated with the request's response once the request completes
  3252  // successfully.
  3253  //
  3254  // Use "Send" method on the returned Request to send the API call to the service.
  3255  // the "output" return value is not valid until after Send returns without error.
  3256  //
  3257  // See DescribeScalingActivities for more information on using the DescribeScalingActivities
  3258  // API call, and error handling.
  3259  //
  3260  // This method is useful when you want to inject custom logic or configuration
  3261  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3262  //
  3263  //
  3264  //    // Example sending a request using the DescribeScalingActivitiesRequest method.
  3265  //    req, resp := client.DescribeScalingActivitiesRequest(params)
  3266  //
  3267  //    err := req.Send()
  3268  //    if err == nil { // resp is now filled
  3269  //        fmt.Println(resp)
  3270  //    }
  3271  //
  3272  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScalingActivities
  3273  func (c *AutoScaling) DescribeScalingActivitiesRequest(input *DescribeScalingActivitiesInput) (req *request.Request, output *DescribeScalingActivitiesOutput) {
  3274  	op := &request.Operation{
  3275  		Name:       opDescribeScalingActivities,
  3276  		HTTPMethod: "POST",
  3277  		HTTPPath:   "/",
  3278  		Paginator: &request.Paginator{
  3279  			InputTokens:     []string{"NextToken"},
  3280  			OutputTokens:    []string{"NextToken"},
  3281  			LimitToken:      "MaxRecords",
  3282  			TruncationToken: "",
  3283  		},
  3284  	}
  3285  
  3286  	if input == nil {
  3287  		input = &DescribeScalingActivitiesInput{}
  3288  	}
  3289  
  3290  	output = &DescribeScalingActivitiesOutput{}
  3291  	req = c.newRequest(op, input, output)
  3292  	return
  3293  }
  3294  
  3295  // DescribeScalingActivities API operation for Auto Scaling.
  3296  //
  3297  // Gets information about the scaling activities in the account and Region.
  3298  //
  3299  // When scaling events occur, you see a record of the scaling activity in the
  3300  // scaling activities. For more information, see Verifying a scaling activity
  3301  // for an Auto Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-verify-scaling-activity.html)
  3302  // in the Amazon EC2 Auto Scaling User Guide.
  3303  //
  3304  // If the scaling event succeeds, the value of the StatusCode element in the
  3305  // response is Successful. If an attempt to launch instances failed, the StatusCode
  3306  // value is Failed or Cancelled and the StatusMessage element in the response
  3307  // indicates the cause of the failure. For help interpreting the StatusMessage,
  3308  // see Troubleshooting Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/CHAP_Troubleshooting.html)
  3309  // in the Amazon EC2 Auto Scaling User Guide.
  3310  //
  3311  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3312  // with awserr.Error's Code and Message methods to get detailed information about
  3313  // the error.
  3314  //
  3315  // See the AWS API reference guide for Auto Scaling's
  3316  // API operation DescribeScalingActivities for usage and error information.
  3317  //
  3318  // Returned Error Codes:
  3319  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  3320  //   The NextToken value is not valid.
  3321  //
  3322  //   * ErrCodeResourceContentionFault "ResourceContention"
  3323  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3324  //   (for example, an Auto Scaling group, instance, or load balancer).
  3325  //
  3326  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScalingActivities
  3327  func (c *AutoScaling) DescribeScalingActivities(input *DescribeScalingActivitiesInput) (*DescribeScalingActivitiesOutput, error) {
  3328  	req, out := c.DescribeScalingActivitiesRequest(input)
  3329  	return out, req.Send()
  3330  }
  3331  
  3332  // DescribeScalingActivitiesWithContext is the same as DescribeScalingActivities with the addition of
  3333  // the ability to pass a context and additional request options.
  3334  //
  3335  // See DescribeScalingActivities for details on how to use this API operation.
  3336  //
  3337  // The context must be non-nil and will be used for request cancellation. If
  3338  // the context is nil a panic will occur. In the future the SDK may create
  3339  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3340  // for more information on using Contexts.
  3341  func (c *AutoScaling) DescribeScalingActivitiesWithContext(ctx aws.Context, input *DescribeScalingActivitiesInput, opts ...request.Option) (*DescribeScalingActivitiesOutput, error) {
  3342  	req, out := c.DescribeScalingActivitiesRequest(input)
  3343  	req.SetContext(ctx)
  3344  	req.ApplyOptions(opts...)
  3345  	return out, req.Send()
  3346  }
  3347  
  3348  // DescribeScalingActivitiesPages iterates over the pages of a DescribeScalingActivities operation,
  3349  // calling the "fn" function with the response data for each page. To stop
  3350  // iterating, return false from the fn function.
  3351  //
  3352  // See DescribeScalingActivities method for more information on how to use this operation.
  3353  //
  3354  // Note: This operation can generate multiple requests to a service.
  3355  //
  3356  //    // Example iterating over at most 3 pages of a DescribeScalingActivities operation.
  3357  //    pageNum := 0
  3358  //    err := client.DescribeScalingActivitiesPages(params,
  3359  //        func(page *autoscaling.DescribeScalingActivitiesOutput, lastPage bool) bool {
  3360  //            pageNum++
  3361  //            fmt.Println(page)
  3362  //            return pageNum <= 3
  3363  //        })
  3364  //
  3365  func (c *AutoScaling) DescribeScalingActivitiesPages(input *DescribeScalingActivitiesInput, fn func(*DescribeScalingActivitiesOutput, bool) bool) error {
  3366  	return c.DescribeScalingActivitiesPagesWithContext(aws.BackgroundContext(), input, fn)
  3367  }
  3368  
  3369  // DescribeScalingActivitiesPagesWithContext same as DescribeScalingActivitiesPages except
  3370  // it takes a Context and allows setting request options on the pages.
  3371  //
  3372  // The context must be non-nil and will be used for request cancellation. If
  3373  // the context is nil a panic will occur. In the future the SDK may create
  3374  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3375  // for more information on using Contexts.
  3376  func (c *AutoScaling) DescribeScalingActivitiesPagesWithContext(ctx aws.Context, input *DescribeScalingActivitiesInput, fn func(*DescribeScalingActivitiesOutput, bool) bool, opts ...request.Option) error {
  3377  	p := request.Pagination{
  3378  		NewRequest: func() (*request.Request, error) {
  3379  			var inCpy *DescribeScalingActivitiesInput
  3380  			if input != nil {
  3381  				tmp := *input
  3382  				inCpy = &tmp
  3383  			}
  3384  			req, _ := c.DescribeScalingActivitiesRequest(inCpy)
  3385  			req.SetContext(ctx)
  3386  			req.ApplyOptions(opts...)
  3387  			return req, nil
  3388  		},
  3389  	}
  3390  
  3391  	for p.Next() {
  3392  		if !fn(p.Page().(*DescribeScalingActivitiesOutput), !p.HasNextPage()) {
  3393  			break
  3394  		}
  3395  	}
  3396  
  3397  	return p.Err()
  3398  }
  3399  
  3400  const opDescribeScalingProcessTypes = "DescribeScalingProcessTypes"
  3401  
  3402  // DescribeScalingProcessTypesRequest generates a "aws/request.Request" representing the
  3403  // client's request for the DescribeScalingProcessTypes operation. The "output" return
  3404  // value will be populated with the request's response once the request completes
  3405  // successfully.
  3406  //
  3407  // Use "Send" method on the returned Request to send the API call to the service.
  3408  // the "output" return value is not valid until after Send returns without error.
  3409  //
  3410  // See DescribeScalingProcessTypes for more information on using the DescribeScalingProcessTypes
  3411  // API call, and error handling.
  3412  //
  3413  // This method is useful when you want to inject custom logic or configuration
  3414  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3415  //
  3416  //
  3417  //    // Example sending a request using the DescribeScalingProcessTypesRequest method.
  3418  //    req, resp := client.DescribeScalingProcessTypesRequest(params)
  3419  //
  3420  //    err := req.Send()
  3421  //    if err == nil { // resp is now filled
  3422  //        fmt.Println(resp)
  3423  //    }
  3424  //
  3425  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScalingProcessTypes
  3426  func (c *AutoScaling) DescribeScalingProcessTypesRequest(input *DescribeScalingProcessTypesInput) (req *request.Request, output *DescribeScalingProcessTypesOutput) {
  3427  	op := &request.Operation{
  3428  		Name:       opDescribeScalingProcessTypes,
  3429  		HTTPMethod: "POST",
  3430  		HTTPPath:   "/",
  3431  	}
  3432  
  3433  	if input == nil {
  3434  		input = &DescribeScalingProcessTypesInput{}
  3435  	}
  3436  
  3437  	output = &DescribeScalingProcessTypesOutput{}
  3438  	req = c.newRequest(op, input, output)
  3439  	return
  3440  }
  3441  
  3442  // DescribeScalingProcessTypes API operation for Auto Scaling.
  3443  //
  3444  // Describes the scaling process types for use with the ResumeProcesses and
  3445  // SuspendProcesses APIs.
  3446  //
  3447  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3448  // with awserr.Error's Code and Message methods to get detailed information about
  3449  // the error.
  3450  //
  3451  // See the AWS API reference guide for Auto Scaling's
  3452  // API operation DescribeScalingProcessTypes for usage and error information.
  3453  //
  3454  // Returned Error Codes:
  3455  //   * ErrCodeResourceContentionFault "ResourceContention"
  3456  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3457  //   (for example, an Auto Scaling group, instance, or load balancer).
  3458  //
  3459  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScalingProcessTypes
  3460  func (c *AutoScaling) DescribeScalingProcessTypes(input *DescribeScalingProcessTypesInput) (*DescribeScalingProcessTypesOutput, error) {
  3461  	req, out := c.DescribeScalingProcessTypesRequest(input)
  3462  	return out, req.Send()
  3463  }
  3464  
  3465  // DescribeScalingProcessTypesWithContext is the same as DescribeScalingProcessTypes with the addition of
  3466  // the ability to pass a context and additional request options.
  3467  //
  3468  // See DescribeScalingProcessTypes for details on how to use this API operation.
  3469  //
  3470  // The context must be non-nil and will be used for request cancellation. If
  3471  // the context is nil a panic will occur. In the future the SDK may create
  3472  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3473  // for more information on using Contexts.
  3474  func (c *AutoScaling) DescribeScalingProcessTypesWithContext(ctx aws.Context, input *DescribeScalingProcessTypesInput, opts ...request.Option) (*DescribeScalingProcessTypesOutput, error) {
  3475  	req, out := c.DescribeScalingProcessTypesRequest(input)
  3476  	req.SetContext(ctx)
  3477  	req.ApplyOptions(opts...)
  3478  	return out, req.Send()
  3479  }
  3480  
  3481  const opDescribeScheduledActions = "DescribeScheduledActions"
  3482  
  3483  // DescribeScheduledActionsRequest generates a "aws/request.Request" representing the
  3484  // client's request for the DescribeScheduledActions operation. The "output" return
  3485  // value will be populated with the request's response once the request completes
  3486  // successfully.
  3487  //
  3488  // Use "Send" method on the returned Request to send the API call to the service.
  3489  // the "output" return value is not valid until after Send returns without error.
  3490  //
  3491  // See DescribeScheduledActions for more information on using the DescribeScheduledActions
  3492  // API call, and error handling.
  3493  //
  3494  // This method is useful when you want to inject custom logic or configuration
  3495  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3496  //
  3497  //
  3498  //    // Example sending a request using the DescribeScheduledActionsRequest method.
  3499  //    req, resp := client.DescribeScheduledActionsRequest(params)
  3500  //
  3501  //    err := req.Send()
  3502  //    if err == nil { // resp is now filled
  3503  //        fmt.Println(resp)
  3504  //    }
  3505  //
  3506  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScheduledActions
  3507  func (c *AutoScaling) DescribeScheduledActionsRequest(input *DescribeScheduledActionsInput) (req *request.Request, output *DescribeScheduledActionsOutput) {
  3508  	op := &request.Operation{
  3509  		Name:       opDescribeScheduledActions,
  3510  		HTTPMethod: "POST",
  3511  		HTTPPath:   "/",
  3512  		Paginator: &request.Paginator{
  3513  			InputTokens:     []string{"NextToken"},
  3514  			OutputTokens:    []string{"NextToken"},
  3515  			LimitToken:      "MaxRecords",
  3516  			TruncationToken: "",
  3517  		},
  3518  	}
  3519  
  3520  	if input == nil {
  3521  		input = &DescribeScheduledActionsInput{}
  3522  	}
  3523  
  3524  	output = &DescribeScheduledActionsOutput{}
  3525  	req = c.newRequest(op, input, output)
  3526  	return
  3527  }
  3528  
  3529  // DescribeScheduledActions API operation for Auto Scaling.
  3530  //
  3531  // Gets information about the scheduled actions that haven't run or that have
  3532  // not reached their end time.
  3533  //
  3534  // To describe the scaling activities for scheduled actions that have already
  3535  // run, call the DescribeScalingActivities API.
  3536  //
  3537  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3538  // with awserr.Error's Code and Message methods to get detailed information about
  3539  // the error.
  3540  //
  3541  // See the AWS API reference guide for Auto Scaling's
  3542  // API operation DescribeScheduledActions for usage and error information.
  3543  //
  3544  // Returned Error Codes:
  3545  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  3546  //   The NextToken value is not valid.
  3547  //
  3548  //   * ErrCodeResourceContentionFault "ResourceContention"
  3549  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3550  //   (for example, an Auto Scaling group, instance, or load balancer).
  3551  //
  3552  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScheduledActions
  3553  func (c *AutoScaling) DescribeScheduledActions(input *DescribeScheduledActionsInput) (*DescribeScheduledActionsOutput, error) {
  3554  	req, out := c.DescribeScheduledActionsRequest(input)
  3555  	return out, req.Send()
  3556  }
  3557  
  3558  // DescribeScheduledActionsWithContext is the same as DescribeScheduledActions with the addition of
  3559  // the ability to pass a context and additional request options.
  3560  //
  3561  // See DescribeScheduledActions for details on how to use this API operation.
  3562  //
  3563  // The context must be non-nil and will be used for request cancellation. If
  3564  // the context is nil a panic will occur. In the future the SDK may create
  3565  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3566  // for more information on using Contexts.
  3567  func (c *AutoScaling) DescribeScheduledActionsWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, opts ...request.Option) (*DescribeScheduledActionsOutput, error) {
  3568  	req, out := c.DescribeScheduledActionsRequest(input)
  3569  	req.SetContext(ctx)
  3570  	req.ApplyOptions(opts...)
  3571  	return out, req.Send()
  3572  }
  3573  
  3574  // DescribeScheduledActionsPages iterates over the pages of a DescribeScheduledActions operation,
  3575  // calling the "fn" function with the response data for each page. To stop
  3576  // iterating, return false from the fn function.
  3577  //
  3578  // See DescribeScheduledActions method for more information on how to use this operation.
  3579  //
  3580  // Note: This operation can generate multiple requests to a service.
  3581  //
  3582  //    // Example iterating over at most 3 pages of a DescribeScheduledActions operation.
  3583  //    pageNum := 0
  3584  //    err := client.DescribeScheduledActionsPages(params,
  3585  //        func(page *autoscaling.DescribeScheduledActionsOutput, lastPage bool) bool {
  3586  //            pageNum++
  3587  //            fmt.Println(page)
  3588  //            return pageNum <= 3
  3589  //        })
  3590  //
  3591  func (c *AutoScaling) DescribeScheduledActionsPages(input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool) error {
  3592  	return c.DescribeScheduledActionsPagesWithContext(aws.BackgroundContext(), input, fn)
  3593  }
  3594  
  3595  // DescribeScheduledActionsPagesWithContext same as DescribeScheduledActionsPages except
  3596  // it takes a Context and allows setting request options on the pages.
  3597  //
  3598  // The context must be non-nil and will be used for request cancellation. If
  3599  // the context is nil a panic will occur. In the future the SDK may create
  3600  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3601  // for more information on using Contexts.
  3602  func (c *AutoScaling) DescribeScheduledActionsPagesWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool, opts ...request.Option) error {
  3603  	p := request.Pagination{
  3604  		NewRequest: func() (*request.Request, error) {
  3605  			var inCpy *DescribeScheduledActionsInput
  3606  			if input != nil {
  3607  				tmp := *input
  3608  				inCpy = &tmp
  3609  			}
  3610  			req, _ := c.DescribeScheduledActionsRequest(inCpy)
  3611  			req.SetContext(ctx)
  3612  			req.ApplyOptions(opts...)
  3613  			return req, nil
  3614  		},
  3615  	}
  3616  
  3617  	for p.Next() {
  3618  		if !fn(p.Page().(*DescribeScheduledActionsOutput), !p.HasNextPage()) {
  3619  			break
  3620  		}
  3621  	}
  3622  
  3623  	return p.Err()
  3624  }
  3625  
  3626  const opDescribeTags = "DescribeTags"
  3627  
  3628  // DescribeTagsRequest generates a "aws/request.Request" representing the
  3629  // client's request for the DescribeTags operation. The "output" return
  3630  // value will be populated with the request's response once the request completes
  3631  // successfully.
  3632  //
  3633  // Use "Send" method on the returned Request to send the API call to the service.
  3634  // the "output" return value is not valid until after Send returns without error.
  3635  //
  3636  // See DescribeTags for more information on using the DescribeTags
  3637  // API call, and error handling.
  3638  //
  3639  // This method is useful when you want to inject custom logic or configuration
  3640  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3641  //
  3642  //
  3643  //    // Example sending a request using the DescribeTagsRequest method.
  3644  //    req, resp := client.DescribeTagsRequest(params)
  3645  //
  3646  //    err := req.Send()
  3647  //    if err == nil { // resp is now filled
  3648  //        fmt.Println(resp)
  3649  //    }
  3650  //
  3651  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTags
  3652  func (c *AutoScaling) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
  3653  	op := &request.Operation{
  3654  		Name:       opDescribeTags,
  3655  		HTTPMethod: "POST",
  3656  		HTTPPath:   "/",
  3657  		Paginator: &request.Paginator{
  3658  			InputTokens:     []string{"NextToken"},
  3659  			OutputTokens:    []string{"NextToken"},
  3660  			LimitToken:      "MaxRecords",
  3661  			TruncationToken: "",
  3662  		},
  3663  	}
  3664  
  3665  	if input == nil {
  3666  		input = &DescribeTagsInput{}
  3667  	}
  3668  
  3669  	output = &DescribeTagsOutput{}
  3670  	req = c.newRequest(op, input, output)
  3671  	return
  3672  }
  3673  
  3674  // DescribeTags API operation for Auto Scaling.
  3675  //
  3676  // Describes the specified tags.
  3677  //
  3678  // You can use filters to limit the results. For example, you can query for
  3679  // the tags for a specific Auto Scaling group. You can specify multiple values
  3680  // for a filter. A tag must match at least one of the specified values for it
  3681  // to be included in the results.
  3682  //
  3683  // You can also specify multiple filters. The result includes information for
  3684  // a particular tag only if it matches all the filters. If there's no match,
  3685  // no special message is returned.
  3686  //
  3687  // For more information, see Tagging Auto Scaling groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html)
  3688  // in the Amazon EC2 Auto Scaling User Guide.
  3689  //
  3690  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3691  // with awserr.Error's Code and Message methods to get detailed information about
  3692  // the error.
  3693  //
  3694  // See the AWS API reference guide for Auto Scaling's
  3695  // API operation DescribeTags for usage and error information.
  3696  //
  3697  // Returned Error Codes:
  3698  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  3699  //   The NextToken value is not valid.
  3700  //
  3701  //   * ErrCodeResourceContentionFault "ResourceContention"
  3702  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3703  //   (for example, an Auto Scaling group, instance, or load balancer).
  3704  //
  3705  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTags
  3706  func (c *AutoScaling) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
  3707  	req, out := c.DescribeTagsRequest(input)
  3708  	return out, req.Send()
  3709  }
  3710  
  3711  // DescribeTagsWithContext is the same as DescribeTags with the addition of
  3712  // the ability to pass a context and additional request options.
  3713  //
  3714  // See DescribeTags for details on how to use this API operation.
  3715  //
  3716  // The context must be non-nil and will be used for request cancellation. If
  3717  // the context is nil a panic will occur. In the future the SDK may create
  3718  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3719  // for more information on using Contexts.
  3720  func (c *AutoScaling) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
  3721  	req, out := c.DescribeTagsRequest(input)
  3722  	req.SetContext(ctx)
  3723  	req.ApplyOptions(opts...)
  3724  	return out, req.Send()
  3725  }
  3726  
  3727  // DescribeTagsPages iterates over the pages of a DescribeTags operation,
  3728  // calling the "fn" function with the response data for each page. To stop
  3729  // iterating, return false from the fn function.
  3730  //
  3731  // See DescribeTags method for more information on how to use this operation.
  3732  //
  3733  // Note: This operation can generate multiple requests to a service.
  3734  //
  3735  //    // Example iterating over at most 3 pages of a DescribeTags operation.
  3736  //    pageNum := 0
  3737  //    err := client.DescribeTagsPages(params,
  3738  //        func(page *autoscaling.DescribeTagsOutput, lastPage bool) bool {
  3739  //            pageNum++
  3740  //            fmt.Println(page)
  3741  //            return pageNum <= 3
  3742  //        })
  3743  //
  3744  func (c *AutoScaling) DescribeTagsPages(input *DescribeTagsInput, fn func(*DescribeTagsOutput, bool) bool) error {
  3745  	return c.DescribeTagsPagesWithContext(aws.BackgroundContext(), input, fn)
  3746  }
  3747  
  3748  // DescribeTagsPagesWithContext same as DescribeTagsPages except
  3749  // it takes a Context and allows setting request options on the pages.
  3750  //
  3751  // The context must be non-nil and will be used for request cancellation. If
  3752  // the context is nil a panic will occur. In the future the SDK may create
  3753  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3754  // for more information on using Contexts.
  3755  func (c *AutoScaling) DescribeTagsPagesWithContext(ctx aws.Context, input *DescribeTagsInput, fn func(*DescribeTagsOutput, bool) bool, opts ...request.Option) error {
  3756  	p := request.Pagination{
  3757  		NewRequest: func() (*request.Request, error) {
  3758  			var inCpy *DescribeTagsInput
  3759  			if input != nil {
  3760  				tmp := *input
  3761  				inCpy = &tmp
  3762  			}
  3763  			req, _ := c.DescribeTagsRequest(inCpy)
  3764  			req.SetContext(ctx)
  3765  			req.ApplyOptions(opts...)
  3766  			return req, nil
  3767  		},
  3768  	}
  3769  
  3770  	for p.Next() {
  3771  		if !fn(p.Page().(*DescribeTagsOutput), !p.HasNextPage()) {
  3772  			break
  3773  		}
  3774  	}
  3775  
  3776  	return p.Err()
  3777  }
  3778  
  3779  const opDescribeTerminationPolicyTypes = "DescribeTerminationPolicyTypes"
  3780  
  3781  // DescribeTerminationPolicyTypesRequest generates a "aws/request.Request" representing the
  3782  // client's request for the DescribeTerminationPolicyTypes operation. The "output" return
  3783  // value will be populated with the request's response once the request completes
  3784  // successfully.
  3785  //
  3786  // Use "Send" method on the returned Request to send the API call to the service.
  3787  // the "output" return value is not valid until after Send returns without error.
  3788  //
  3789  // See DescribeTerminationPolicyTypes for more information on using the DescribeTerminationPolicyTypes
  3790  // API call, and error handling.
  3791  //
  3792  // This method is useful when you want to inject custom logic or configuration
  3793  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3794  //
  3795  //
  3796  //    // Example sending a request using the DescribeTerminationPolicyTypesRequest method.
  3797  //    req, resp := client.DescribeTerminationPolicyTypesRequest(params)
  3798  //
  3799  //    err := req.Send()
  3800  //    if err == nil { // resp is now filled
  3801  //        fmt.Println(resp)
  3802  //    }
  3803  //
  3804  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTerminationPolicyTypes
  3805  func (c *AutoScaling) DescribeTerminationPolicyTypesRequest(input *DescribeTerminationPolicyTypesInput) (req *request.Request, output *DescribeTerminationPolicyTypesOutput) {
  3806  	op := &request.Operation{
  3807  		Name:       opDescribeTerminationPolicyTypes,
  3808  		HTTPMethod: "POST",
  3809  		HTTPPath:   "/",
  3810  	}
  3811  
  3812  	if input == nil {
  3813  		input = &DescribeTerminationPolicyTypesInput{}
  3814  	}
  3815  
  3816  	output = &DescribeTerminationPolicyTypesOutput{}
  3817  	req = c.newRequest(op, input, output)
  3818  	return
  3819  }
  3820  
  3821  // DescribeTerminationPolicyTypes API operation for Auto Scaling.
  3822  //
  3823  // Describes the termination policies supported by Amazon EC2 Auto Scaling.
  3824  //
  3825  // For more information, see Controlling which Auto Scaling instances terminate
  3826  // during scale in (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html)
  3827  // in the Amazon EC2 Auto Scaling User Guide.
  3828  //
  3829  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3830  // with awserr.Error's Code and Message methods to get detailed information about
  3831  // the error.
  3832  //
  3833  // See the AWS API reference guide for Auto Scaling's
  3834  // API operation DescribeTerminationPolicyTypes for usage and error information.
  3835  //
  3836  // Returned Error Codes:
  3837  //   * ErrCodeResourceContentionFault "ResourceContention"
  3838  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3839  //   (for example, an Auto Scaling group, instance, or load balancer).
  3840  //
  3841  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTerminationPolicyTypes
  3842  func (c *AutoScaling) DescribeTerminationPolicyTypes(input *DescribeTerminationPolicyTypesInput) (*DescribeTerminationPolicyTypesOutput, error) {
  3843  	req, out := c.DescribeTerminationPolicyTypesRequest(input)
  3844  	return out, req.Send()
  3845  }
  3846  
  3847  // DescribeTerminationPolicyTypesWithContext is the same as DescribeTerminationPolicyTypes with the addition of
  3848  // the ability to pass a context and additional request options.
  3849  //
  3850  // See DescribeTerminationPolicyTypes for details on how to use this API operation.
  3851  //
  3852  // The context must be non-nil and will be used for request cancellation. If
  3853  // the context is nil a panic will occur. In the future the SDK may create
  3854  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3855  // for more information on using Contexts.
  3856  func (c *AutoScaling) DescribeTerminationPolicyTypesWithContext(ctx aws.Context, input *DescribeTerminationPolicyTypesInput, opts ...request.Option) (*DescribeTerminationPolicyTypesOutput, error) {
  3857  	req, out := c.DescribeTerminationPolicyTypesRequest(input)
  3858  	req.SetContext(ctx)
  3859  	req.ApplyOptions(opts...)
  3860  	return out, req.Send()
  3861  }
  3862  
  3863  const opDescribeWarmPool = "DescribeWarmPool"
  3864  
  3865  // DescribeWarmPoolRequest generates a "aws/request.Request" representing the
  3866  // client's request for the DescribeWarmPool operation. The "output" return
  3867  // value will be populated with the request's response once the request completes
  3868  // successfully.
  3869  //
  3870  // Use "Send" method on the returned Request to send the API call to the service.
  3871  // the "output" return value is not valid until after Send returns without error.
  3872  //
  3873  // See DescribeWarmPool for more information on using the DescribeWarmPool
  3874  // API call, and error handling.
  3875  //
  3876  // This method is useful when you want to inject custom logic or configuration
  3877  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3878  //
  3879  //
  3880  //    // Example sending a request using the DescribeWarmPoolRequest method.
  3881  //    req, resp := client.DescribeWarmPoolRequest(params)
  3882  //
  3883  //    err := req.Send()
  3884  //    if err == nil { // resp is now filled
  3885  //        fmt.Println(resp)
  3886  //    }
  3887  //
  3888  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeWarmPool
  3889  func (c *AutoScaling) DescribeWarmPoolRequest(input *DescribeWarmPoolInput) (req *request.Request, output *DescribeWarmPoolOutput) {
  3890  	op := &request.Operation{
  3891  		Name:       opDescribeWarmPool,
  3892  		HTTPMethod: "POST",
  3893  		HTTPPath:   "/",
  3894  	}
  3895  
  3896  	if input == nil {
  3897  		input = &DescribeWarmPoolInput{}
  3898  	}
  3899  
  3900  	output = &DescribeWarmPoolOutput{}
  3901  	req = c.newRequest(op, input, output)
  3902  	return
  3903  }
  3904  
  3905  // DescribeWarmPool API operation for Auto Scaling.
  3906  //
  3907  // Gets information about a warm pool and its instances.
  3908  //
  3909  // For more information, see Warm pools for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)
  3910  // in the Amazon EC2 Auto Scaling User Guide.
  3911  //
  3912  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3913  // with awserr.Error's Code and Message methods to get detailed information about
  3914  // the error.
  3915  //
  3916  // See the AWS API reference guide for Auto Scaling's
  3917  // API operation DescribeWarmPool for usage and error information.
  3918  //
  3919  // Returned Error Codes:
  3920  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  3921  //   The NextToken value is not valid.
  3922  //
  3923  //   * ErrCodeLimitExceededFault "LimitExceeded"
  3924  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  3925  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  3926  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  3927  //   in the Amazon EC2 Auto Scaling API Reference.
  3928  //
  3929  //   * ErrCodeResourceContentionFault "ResourceContention"
  3930  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  3931  //   (for example, an Auto Scaling group, instance, or load balancer).
  3932  //
  3933  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeWarmPool
  3934  func (c *AutoScaling) DescribeWarmPool(input *DescribeWarmPoolInput) (*DescribeWarmPoolOutput, error) {
  3935  	req, out := c.DescribeWarmPoolRequest(input)
  3936  	return out, req.Send()
  3937  }
  3938  
  3939  // DescribeWarmPoolWithContext is the same as DescribeWarmPool with the addition of
  3940  // the ability to pass a context and additional request options.
  3941  //
  3942  // See DescribeWarmPool for details on how to use this API operation.
  3943  //
  3944  // The context must be non-nil and will be used for request cancellation. If
  3945  // the context is nil a panic will occur. In the future the SDK may create
  3946  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3947  // for more information on using Contexts.
  3948  func (c *AutoScaling) DescribeWarmPoolWithContext(ctx aws.Context, input *DescribeWarmPoolInput, opts ...request.Option) (*DescribeWarmPoolOutput, error) {
  3949  	req, out := c.DescribeWarmPoolRequest(input)
  3950  	req.SetContext(ctx)
  3951  	req.ApplyOptions(opts...)
  3952  	return out, req.Send()
  3953  }
  3954  
  3955  const opDetachInstances = "DetachInstances"
  3956  
  3957  // DetachInstancesRequest generates a "aws/request.Request" representing the
  3958  // client's request for the DetachInstances operation. The "output" return
  3959  // value will be populated with the request's response once the request completes
  3960  // successfully.
  3961  //
  3962  // Use "Send" method on the returned Request to send the API call to the service.
  3963  // the "output" return value is not valid until after Send returns without error.
  3964  //
  3965  // See DetachInstances for more information on using the DetachInstances
  3966  // API call, and error handling.
  3967  //
  3968  // This method is useful when you want to inject custom logic or configuration
  3969  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3970  //
  3971  //
  3972  //    // Example sending a request using the DetachInstancesRequest method.
  3973  //    req, resp := client.DetachInstancesRequest(params)
  3974  //
  3975  //    err := req.Send()
  3976  //    if err == nil { // resp is now filled
  3977  //        fmt.Println(resp)
  3978  //    }
  3979  //
  3980  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachInstances
  3981  func (c *AutoScaling) DetachInstancesRequest(input *DetachInstancesInput) (req *request.Request, output *DetachInstancesOutput) {
  3982  	op := &request.Operation{
  3983  		Name:       opDetachInstances,
  3984  		HTTPMethod: "POST",
  3985  		HTTPPath:   "/",
  3986  	}
  3987  
  3988  	if input == nil {
  3989  		input = &DetachInstancesInput{}
  3990  	}
  3991  
  3992  	output = &DetachInstancesOutput{}
  3993  	req = c.newRequest(op, input, output)
  3994  	return
  3995  }
  3996  
  3997  // DetachInstances API operation for Auto Scaling.
  3998  //
  3999  // Removes one or more instances from the specified Auto Scaling group.
  4000  //
  4001  // After the instances are detached, you can manage them independent of the
  4002  // Auto Scaling group.
  4003  //
  4004  // If you do not specify the option to decrement the desired capacity, Amazon
  4005  // EC2 Auto Scaling launches instances to replace the ones that are detached.
  4006  //
  4007  // If there is a Classic Load Balancer attached to the Auto Scaling group, the
  4008  // instances are deregistered from the load balancer. If there are target groups
  4009  // attached to the Auto Scaling group, the instances are deregistered from the
  4010  // target groups.
  4011  //
  4012  // For more information, see Detach EC2 instances from your Auto Scaling group
  4013  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/detach-instance-asg.html)
  4014  // in the Amazon EC2 Auto Scaling User Guide.
  4015  //
  4016  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4017  // with awserr.Error's Code and Message methods to get detailed information about
  4018  // the error.
  4019  //
  4020  // See the AWS API reference guide for Auto Scaling's
  4021  // API operation DetachInstances for usage and error information.
  4022  //
  4023  // Returned Error Codes:
  4024  //   * ErrCodeResourceContentionFault "ResourceContention"
  4025  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4026  //   (for example, an Auto Scaling group, instance, or load balancer).
  4027  //
  4028  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachInstances
  4029  func (c *AutoScaling) DetachInstances(input *DetachInstancesInput) (*DetachInstancesOutput, error) {
  4030  	req, out := c.DetachInstancesRequest(input)
  4031  	return out, req.Send()
  4032  }
  4033  
  4034  // DetachInstancesWithContext is the same as DetachInstances with the addition of
  4035  // the ability to pass a context and additional request options.
  4036  //
  4037  // See DetachInstances for details on how to use this API operation.
  4038  //
  4039  // The context must be non-nil and will be used for request cancellation. If
  4040  // the context is nil a panic will occur. In the future the SDK may create
  4041  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4042  // for more information on using Contexts.
  4043  func (c *AutoScaling) DetachInstancesWithContext(ctx aws.Context, input *DetachInstancesInput, opts ...request.Option) (*DetachInstancesOutput, error) {
  4044  	req, out := c.DetachInstancesRequest(input)
  4045  	req.SetContext(ctx)
  4046  	req.ApplyOptions(opts...)
  4047  	return out, req.Send()
  4048  }
  4049  
  4050  const opDetachLoadBalancerTargetGroups = "DetachLoadBalancerTargetGroups"
  4051  
  4052  // DetachLoadBalancerTargetGroupsRequest generates a "aws/request.Request" representing the
  4053  // client's request for the DetachLoadBalancerTargetGroups operation. The "output" return
  4054  // value will be populated with the request's response once the request completes
  4055  // successfully.
  4056  //
  4057  // Use "Send" method on the returned Request to send the API call to the service.
  4058  // the "output" return value is not valid until after Send returns without error.
  4059  //
  4060  // See DetachLoadBalancerTargetGroups for more information on using the DetachLoadBalancerTargetGroups
  4061  // API call, and error handling.
  4062  //
  4063  // This method is useful when you want to inject custom logic or configuration
  4064  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4065  //
  4066  //
  4067  //    // Example sending a request using the DetachLoadBalancerTargetGroupsRequest method.
  4068  //    req, resp := client.DetachLoadBalancerTargetGroupsRequest(params)
  4069  //
  4070  //    err := req.Send()
  4071  //    if err == nil { // resp is now filled
  4072  //        fmt.Println(resp)
  4073  //    }
  4074  //
  4075  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancerTargetGroups
  4076  func (c *AutoScaling) DetachLoadBalancerTargetGroupsRequest(input *DetachLoadBalancerTargetGroupsInput) (req *request.Request, output *DetachLoadBalancerTargetGroupsOutput) {
  4077  	op := &request.Operation{
  4078  		Name:       opDetachLoadBalancerTargetGroups,
  4079  		HTTPMethod: "POST",
  4080  		HTTPPath:   "/",
  4081  	}
  4082  
  4083  	if input == nil {
  4084  		input = &DetachLoadBalancerTargetGroupsInput{}
  4085  	}
  4086  
  4087  	output = &DetachLoadBalancerTargetGroupsOutput{}
  4088  	req = c.newRequest(op, input, output)
  4089  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4090  	return
  4091  }
  4092  
  4093  // DetachLoadBalancerTargetGroups API operation for Auto Scaling.
  4094  //
  4095  // Detaches one or more target groups from the specified Auto Scaling group.
  4096  //
  4097  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4098  // with awserr.Error's Code and Message methods to get detailed information about
  4099  // the error.
  4100  //
  4101  // See the AWS API reference guide for Auto Scaling's
  4102  // API operation DetachLoadBalancerTargetGroups for usage and error information.
  4103  //
  4104  // Returned Error Codes:
  4105  //   * ErrCodeResourceContentionFault "ResourceContention"
  4106  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4107  //   (for example, an Auto Scaling group, instance, or load balancer).
  4108  //
  4109  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancerTargetGroups
  4110  func (c *AutoScaling) DetachLoadBalancerTargetGroups(input *DetachLoadBalancerTargetGroupsInput) (*DetachLoadBalancerTargetGroupsOutput, error) {
  4111  	req, out := c.DetachLoadBalancerTargetGroupsRequest(input)
  4112  	return out, req.Send()
  4113  }
  4114  
  4115  // DetachLoadBalancerTargetGroupsWithContext is the same as DetachLoadBalancerTargetGroups with the addition of
  4116  // the ability to pass a context and additional request options.
  4117  //
  4118  // See DetachLoadBalancerTargetGroups for details on how to use this API operation.
  4119  //
  4120  // The context must be non-nil and will be used for request cancellation. If
  4121  // the context is nil a panic will occur. In the future the SDK may create
  4122  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4123  // for more information on using Contexts.
  4124  func (c *AutoScaling) DetachLoadBalancerTargetGroupsWithContext(ctx aws.Context, input *DetachLoadBalancerTargetGroupsInput, opts ...request.Option) (*DetachLoadBalancerTargetGroupsOutput, error) {
  4125  	req, out := c.DetachLoadBalancerTargetGroupsRequest(input)
  4126  	req.SetContext(ctx)
  4127  	req.ApplyOptions(opts...)
  4128  	return out, req.Send()
  4129  }
  4130  
  4131  const opDetachLoadBalancers = "DetachLoadBalancers"
  4132  
  4133  // DetachLoadBalancersRequest generates a "aws/request.Request" representing the
  4134  // client's request for the DetachLoadBalancers operation. The "output" return
  4135  // value will be populated with the request's response once the request completes
  4136  // successfully.
  4137  //
  4138  // Use "Send" method on the returned Request to send the API call to the service.
  4139  // the "output" return value is not valid until after Send returns without error.
  4140  //
  4141  // See DetachLoadBalancers for more information on using the DetachLoadBalancers
  4142  // API call, and error handling.
  4143  //
  4144  // This method is useful when you want to inject custom logic or configuration
  4145  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4146  //
  4147  //
  4148  //    // Example sending a request using the DetachLoadBalancersRequest method.
  4149  //    req, resp := client.DetachLoadBalancersRequest(params)
  4150  //
  4151  //    err := req.Send()
  4152  //    if err == nil { // resp is now filled
  4153  //        fmt.Println(resp)
  4154  //    }
  4155  //
  4156  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancers
  4157  func (c *AutoScaling) DetachLoadBalancersRequest(input *DetachLoadBalancersInput) (req *request.Request, output *DetachLoadBalancersOutput) {
  4158  	op := &request.Operation{
  4159  		Name:       opDetachLoadBalancers,
  4160  		HTTPMethod: "POST",
  4161  		HTTPPath:   "/",
  4162  	}
  4163  
  4164  	if input == nil {
  4165  		input = &DetachLoadBalancersInput{}
  4166  	}
  4167  
  4168  	output = &DetachLoadBalancersOutput{}
  4169  	req = c.newRequest(op, input, output)
  4170  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4171  	return
  4172  }
  4173  
  4174  // DetachLoadBalancers API operation for Auto Scaling.
  4175  //
  4176  // Detaches one or more Classic Load Balancers from the specified Auto Scaling
  4177  // group.
  4178  //
  4179  // This operation detaches only Classic Load Balancers. If you have Application
  4180  // Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the
  4181  // DetachLoadBalancerTargetGroups API instead.
  4182  //
  4183  // When you detach a load balancer, it enters the Removing state while deregistering
  4184  // the instances in the group. When all instances are deregistered, then you
  4185  // can no longer describe the load balancer using the DescribeLoadBalancers
  4186  // API call. The instances remain running.
  4187  //
  4188  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4189  // with awserr.Error's Code and Message methods to get detailed information about
  4190  // the error.
  4191  //
  4192  // See the AWS API reference guide for Auto Scaling's
  4193  // API operation DetachLoadBalancers for usage and error information.
  4194  //
  4195  // Returned Error Codes:
  4196  //   * ErrCodeResourceContentionFault "ResourceContention"
  4197  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4198  //   (for example, an Auto Scaling group, instance, or load balancer).
  4199  //
  4200  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancers
  4201  func (c *AutoScaling) DetachLoadBalancers(input *DetachLoadBalancersInput) (*DetachLoadBalancersOutput, error) {
  4202  	req, out := c.DetachLoadBalancersRequest(input)
  4203  	return out, req.Send()
  4204  }
  4205  
  4206  // DetachLoadBalancersWithContext is the same as DetachLoadBalancers with the addition of
  4207  // the ability to pass a context and additional request options.
  4208  //
  4209  // See DetachLoadBalancers for details on how to use this API operation.
  4210  //
  4211  // The context must be non-nil and will be used for request cancellation. If
  4212  // the context is nil a panic will occur. In the future the SDK may create
  4213  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4214  // for more information on using Contexts.
  4215  func (c *AutoScaling) DetachLoadBalancersWithContext(ctx aws.Context, input *DetachLoadBalancersInput, opts ...request.Option) (*DetachLoadBalancersOutput, error) {
  4216  	req, out := c.DetachLoadBalancersRequest(input)
  4217  	req.SetContext(ctx)
  4218  	req.ApplyOptions(opts...)
  4219  	return out, req.Send()
  4220  }
  4221  
  4222  const opDisableMetricsCollection = "DisableMetricsCollection"
  4223  
  4224  // DisableMetricsCollectionRequest generates a "aws/request.Request" representing the
  4225  // client's request for the DisableMetricsCollection operation. The "output" return
  4226  // value will be populated with the request's response once the request completes
  4227  // successfully.
  4228  //
  4229  // Use "Send" method on the returned Request to send the API call to the service.
  4230  // the "output" return value is not valid until after Send returns without error.
  4231  //
  4232  // See DisableMetricsCollection for more information on using the DisableMetricsCollection
  4233  // API call, and error handling.
  4234  //
  4235  // This method is useful when you want to inject custom logic or configuration
  4236  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4237  //
  4238  //
  4239  //    // Example sending a request using the DisableMetricsCollectionRequest method.
  4240  //    req, resp := client.DisableMetricsCollectionRequest(params)
  4241  //
  4242  //    err := req.Send()
  4243  //    if err == nil { // resp is now filled
  4244  //        fmt.Println(resp)
  4245  //    }
  4246  //
  4247  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DisableMetricsCollection
  4248  func (c *AutoScaling) DisableMetricsCollectionRequest(input *DisableMetricsCollectionInput) (req *request.Request, output *DisableMetricsCollectionOutput) {
  4249  	op := &request.Operation{
  4250  		Name:       opDisableMetricsCollection,
  4251  		HTTPMethod: "POST",
  4252  		HTTPPath:   "/",
  4253  	}
  4254  
  4255  	if input == nil {
  4256  		input = &DisableMetricsCollectionInput{}
  4257  	}
  4258  
  4259  	output = &DisableMetricsCollectionOutput{}
  4260  	req = c.newRequest(op, input, output)
  4261  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4262  	return
  4263  }
  4264  
  4265  // DisableMetricsCollection API operation for Auto Scaling.
  4266  //
  4267  // Disables group metrics for the specified Auto Scaling group.
  4268  //
  4269  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4270  // with awserr.Error's Code and Message methods to get detailed information about
  4271  // the error.
  4272  //
  4273  // See the AWS API reference guide for Auto Scaling's
  4274  // API operation DisableMetricsCollection for usage and error information.
  4275  //
  4276  // Returned Error Codes:
  4277  //   * ErrCodeResourceContentionFault "ResourceContention"
  4278  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4279  //   (for example, an Auto Scaling group, instance, or load balancer).
  4280  //
  4281  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DisableMetricsCollection
  4282  func (c *AutoScaling) DisableMetricsCollection(input *DisableMetricsCollectionInput) (*DisableMetricsCollectionOutput, error) {
  4283  	req, out := c.DisableMetricsCollectionRequest(input)
  4284  	return out, req.Send()
  4285  }
  4286  
  4287  // DisableMetricsCollectionWithContext is the same as DisableMetricsCollection with the addition of
  4288  // the ability to pass a context and additional request options.
  4289  //
  4290  // See DisableMetricsCollection for details on how to use this API operation.
  4291  //
  4292  // The context must be non-nil and will be used for request cancellation. If
  4293  // the context is nil a panic will occur. In the future the SDK may create
  4294  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4295  // for more information on using Contexts.
  4296  func (c *AutoScaling) DisableMetricsCollectionWithContext(ctx aws.Context, input *DisableMetricsCollectionInput, opts ...request.Option) (*DisableMetricsCollectionOutput, error) {
  4297  	req, out := c.DisableMetricsCollectionRequest(input)
  4298  	req.SetContext(ctx)
  4299  	req.ApplyOptions(opts...)
  4300  	return out, req.Send()
  4301  }
  4302  
  4303  const opEnableMetricsCollection = "EnableMetricsCollection"
  4304  
  4305  // EnableMetricsCollectionRequest generates a "aws/request.Request" representing the
  4306  // client's request for the EnableMetricsCollection operation. The "output" return
  4307  // value will be populated with the request's response once the request completes
  4308  // successfully.
  4309  //
  4310  // Use "Send" method on the returned Request to send the API call to the service.
  4311  // the "output" return value is not valid until after Send returns without error.
  4312  //
  4313  // See EnableMetricsCollection for more information on using the EnableMetricsCollection
  4314  // API call, and error handling.
  4315  //
  4316  // This method is useful when you want to inject custom logic or configuration
  4317  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4318  //
  4319  //
  4320  //    // Example sending a request using the EnableMetricsCollectionRequest method.
  4321  //    req, resp := client.EnableMetricsCollectionRequest(params)
  4322  //
  4323  //    err := req.Send()
  4324  //    if err == nil { // resp is now filled
  4325  //        fmt.Println(resp)
  4326  //    }
  4327  //
  4328  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnableMetricsCollection
  4329  func (c *AutoScaling) EnableMetricsCollectionRequest(input *EnableMetricsCollectionInput) (req *request.Request, output *EnableMetricsCollectionOutput) {
  4330  	op := &request.Operation{
  4331  		Name:       opEnableMetricsCollection,
  4332  		HTTPMethod: "POST",
  4333  		HTTPPath:   "/",
  4334  	}
  4335  
  4336  	if input == nil {
  4337  		input = &EnableMetricsCollectionInput{}
  4338  	}
  4339  
  4340  	output = &EnableMetricsCollectionOutput{}
  4341  	req = c.newRequest(op, input, output)
  4342  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4343  	return
  4344  }
  4345  
  4346  // EnableMetricsCollection API operation for Auto Scaling.
  4347  //
  4348  // Enables group metrics for the specified Auto Scaling group. For more information,
  4349  // see Monitoring CloudWatch metrics for your Auto Scaling groups and instances
  4350  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-monitoring.html)
  4351  // in the Amazon EC2 Auto Scaling User Guide.
  4352  //
  4353  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4354  // with awserr.Error's Code and Message methods to get detailed information about
  4355  // the error.
  4356  //
  4357  // See the AWS API reference guide for Auto Scaling's
  4358  // API operation EnableMetricsCollection for usage and error information.
  4359  //
  4360  // Returned Error Codes:
  4361  //   * ErrCodeResourceContentionFault "ResourceContention"
  4362  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4363  //   (for example, an Auto Scaling group, instance, or load balancer).
  4364  //
  4365  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnableMetricsCollection
  4366  func (c *AutoScaling) EnableMetricsCollection(input *EnableMetricsCollectionInput) (*EnableMetricsCollectionOutput, error) {
  4367  	req, out := c.EnableMetricsCollectionRequest(input)
  4368  	return out, req.Send()
  4369  }
  4370  
  4371  // EnableMetricsCollectionWithContext is the same as EnableMetricsCollection with the addition of
  4372  // the ability to pass a context and additional request options.
  4373  //
  4374  // See EnableMetricsCollection for details on how to use this API operation.
  4375  //
  4376  // The context must be non-nil and will be used for request cancellation. If
  4377  // the context is nil a panic will occur. In the future the SDK may create
  4378  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4379  // for more information on using Contexts.
  4380  func (c *AutoScaling) EnableMetricsCollectionWithContext(ctx aws.Context, input *EnableMetricsCollectionInput, opts ...request.Option) (*EnableMetricsCollectionOutput, error) {
  4381  	req, out := c.EnableMetricsCollectionRequest(input)
  4382  	req.SetContext(ctx)
  4383  	req.ApplyOptions(opts...)
  4384  	return out, req.Send()
  4385  }
  4386  
  4387  const opEnterStandby = "EnterStandby"
  4388  
  4389  // EnterStandbyRequest generates a "aws/request.Request" representing the
  4390  // client's request for the EnterStandby operation. The "output" return
  4391  // value will be populated with the request's response once the request completes
  4392  // successfully.
  4393  //
  4394  // Use "Send" method on the returned Request to send the API call to the service.
  4395  // the "output" return value is not valid until after Send returns without error.
  4396  //
  4397  // See EnterStandby for more information on using the EnterStandby
  4398  // API call, and error handling.
  4399  //
  4400  // This method is useful when you want to inject custom logic or configuration
  4401  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4402  //
  4403  //
  4404  //    // Example sending a request using the EnterStandbyRequest method.
  4405  //    req, resp := client.EnterStandbyRequest(params)
  4406  //
  4407  //    err := req.Send()
  4408  //    if err == nil { // resp is now filled
  4409  //        fmt.Println(resp)
  4410  //    }
  4411  //
  4412  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnterStandby
  4413  func (c *AutoScaling) EnterStandbyRequest(input *EnterStandbyInput) (req *request.Request, output *EnterStandbyOutput) {
  4414  	op := &request.Operation{
  4415  		Name:       opEnterStandby,
  4416  		HTTPMethod: "POST",
  4417  		HTTPPath:   "/",
  4418  	}
  4419  
  4420  	if input == nil {
  4421  		input = &EnterStandbyInput{}
  4422  	}
  4423  
  4424  	output = &EnterStandbyOutput{}
  4425  	req = c.newRequest(op, input, output)
  4426  	return
  4427  }
  4428  
  4429  // EnterStandby API operation for Auto Scaling.
  4430  //
  4431  // Moves the specified instances into the standby state.
  4432  //
  4433  // If you choose to decrement the desired capacity of the Auto Scaling group,
  4434  // the instances can enter standby as long as the desired capacity of the Auto
  4435  // Scaling group after the instances are placed into standby is equal to or
  4436  // greater than the minimum capacity of the group.
  4437  //
  4438  // If you choose not to decrement the desired capacity of the Auto Scaling group,
  4439  // the Auto Scaling group launches new instances to replace the instances on
  4440  // standby.
  4441  //
  4442  // For more information, see Temporarily removing instances from your Auto Scaling
  4443  // group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html)
  4444  // in the Amazon EC2 Auto Scaling User Guide.
  4445  //
  4446  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4447  // with awserr.Error's Code and Message methods to get detailed information about
  4448  // the error.
  4449  //
  4450  // See the AWS API reference guide for Auto Scaling's
  4451  // API operation EnterStandby for usage and error information.
  4452  //
  4453  // Returned Error Codes:
  4454  //   * ErrCodeResourceContentionFault "ResourceContention"
  4455  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4456  //   (for example, an Auto Scaling group, instance, or load balancer).
  4457  //
  4458  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnterStandby
  4459  func (c *AutoScaling) EnterStandby(input *EnterStandbyInput) (*EnterStandbyOutput, error) {
  4460  	req, out := c.EnterStandbyRequest(input)
  4461  	return out, req.Send()
  4462  }
  4463  
  4464  // EnterStandbyWithContext is the same as EnterStandby with the addition of
  4465  // the ability to pass a context and additional request options.
  4466  //
  4467  // See EnterStandby for details on how to use this API operation.
  4468  //
  4469  // The context must be non-nil and will be used for request cancellation. If
  4470  // the context is nil a panic will occur. In the future the SDK may create
  4471  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4472  // for more information on using Contexts.
  4473  func (c *AutoScaling) EnterStandbyWithContext(ctx aws.Context, input *EnterStandbyInput, opts ...request.Option) (*EnterStandbyOutput, error) {
  4474  	req, out := c.EnterStandbyRequest(input)
  4475  	req.SetContext(ctx)
  4476  	req.ApplyOptions(opts...)
  4477  	return out, req.Send()
  4478  }
  4479  
  4480  const opExecutePolicy = "ExecutePolicy"
  4481  
  4482  // ExecutePolicyRequest generates a "aws/request.Request" representing the
  4483  // client's request for the ExecutePolicy operation. The "output" return
  4484  // value will be populated with the request's response once the request completes
  4485  // successfully.
  4486  //
  4487  // Use "Send" method on the returned Request to send the API call to the service.
  4488  // the "output" return value is not valid until after Send returns without error.
  4489  //
  4490  // See ExecutePolicy for more information on using the ExecutePolicy
  4491  // API call, and error handling.
  4492  //
  4493  // This method is useful when you want to inject custom logic or configuration
  4494  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4495  //
  4496  //
  4497  //    // Example sending a request using the ExecutePolicyRequest method.
  4498  //    req, resp := client.ExecutePolicyRequest(params)
  4499  //
  4500  //    err := req.Send()
  4501  //    if err == nil { // resp is now filled
  4502  //        fmt.Println(resp)
  4503  //    }
  4504  //
  4505  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExecutePolicy
  4506  func (c *AutoScaling) ExecutePolicyRequest(input *ExecutePolicyInput) (req *request.Request, output *ExecutePolicyOutput) {
  4507  	op := &request.Operation{
  4508  		Name:       opExecutePolicy,
  4509  		HTTPMethod: "POST",
  4510  		HTTPPath:   "/",
  4511  	}
  4512  
  4513  	if input == nil {
  4514  		input = &ExecutePolicyInput{}
  4515  	}
  4516  
  4517  	output = &ExecutePolicyOutput{}
  4518  	req = c.newRequest(op, input, output)
  4519  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4520  	return
  4521  }
  4522  
  4523  // ExecutePolicy API operation for Auto Scaling.
  4524  //
  4525  // Executes the specified policy. This can be useful for testing the design
  4526  // of your scaling policy.
  4527  //
  4528  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4529  // with awserr.Error's Code and Message methods to get detailed information about
  4530  // the error.
  4531  //
  4532  // See the AWS API reference guide for Auto Scaling's
  4533  // API operation ExecutePolicy for usage and error information.
  4534  //
  4535  // Returned Error Codes:
  4536  //   * ErrCodeScalingActivityInProgressFault "ScalingActivityInProgress"
  4537  //   The operation can't be performed because there are scaling activities in
  4538  //   progress.
  4539  //
  4540  //   * ErrCodeResourceContentionFault "ResourceContention"
  4541  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4542  //   (for example, an Auto Scaling group, instance, or load balancer).
  4543  //
  4544  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExecutePolicy
  4545  func (c *AutoScaling) ExecutePolicy(input *ExecutePolicyInput) (*ExecutePolicyOutput, error) {
  4546  	req, out := c.ExecutePolicyRequest(input)
  4547  	return out, req.Send()
  4548  }
  4549  
  4550  // ExecutePolicyWithContext is the same as ExecutePolicy with the addition of
  4551  // the ability to pass a context and additional request options.
  4552  //
  4553  // See ExecutePolicy for details on how to use this API operation.
  4554  //
  4555  // The context must be non-nil and will be used for request cancellation. If
  4556  // the context is nil a panic will occur. In the future the SDK may create
  4557  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4558  // for more information on using Contexts.
  4559  func (c *AutoScaling) ExecutePolicyWithContext(ctx aws.Context, input *ExecutePolicyInput, opts ...request.Option) (*ExecutePolicyOutput, error) {
  4560  	req, out := c.ExecutePolicyRequest(input)
  4561  	req.SetContext(ctx)
  4562  	req.ApplyOptions(opts...)
  4563  	return out, req.Send()
  4564  }
  4565  
  4566  const opExitStandby = "ExitStandby"
  4567  
  4568  // ExitStandbyRequest generates a "aws/request.Request" representing the
  4569  // client's request for the ExitStandby operation. The "output" return
  4570  // value will be populated with the request's response once the request completes
  4571  // successfully.
  4572  //
  4573  // Use "Send" method on the returned Request to send the API call to the service.
  4574  // the "output" return value is not valid until after Send returns without error.
  4575  //
  4576  // See ExitStandby for more information on using the ExitStandby
  4577  // API call, and error handling.
  4578  //
  4579  // This method is useful when you want to inject custom logic or configuration
  4580  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4581  //
  4582  //
  4583  //    // Example sending a request using the ExitStandbyRequest method.
  4584  //    req, resp := client.ExitStandbyRequest(params)
  4585  //
  4586  //    err := req.Send()
  4587  //    if err == nil { // resp is now filled
  4588  //        fmt.Println(resp)
  4589  //    }
  4590  //
  4591  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExitStandby
  4592  func (c *AutoScaling) ExitStandbyRequest(input *ExitStandbyInput) (req *request.Request, output *ExitStandbyOutput) {
  4593  	op := &request.Operation{
  4594  		Name:       opExitStandby,
  4595  		HTTPMethod: "POST",
  4596  		HTTPPath:   "/",
  4597  	}
  4598  
  4599  	if input == nil {
  4600  		input = &ExitStandbyInput{}
  4601  	}
  4602  
  4603  	output = &ExitStandbyOutput{}
  4604  	req = c.newRequest(op, input, output)
  4605  	return
  4606  }
  4607  
  4608  // ExitStandby API operation for Auto Scaling.
  4609  //
  4610  // Moves the specified instances out of the standby state.
  4611  //
  4612  // After you put the instances back in service, the desired capacity is incremented.
  4613  //
  4614  // For more information, see Temporarily removing instances from your Auto Scaling
  4615  // group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html)
  4616  // in the Amazon EC2 Auto Scaling User Guide.
  4617  //
  4618  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4619  // with awserr.Error's Code and Message methods to get detailed information about
  4620  // the error.
  4621  //
  4622  // See the AWS API reference guide for Auto Scaling's
  4623  // API operation ExitStandby for usage and error information.
  4624  //
  4625  // Returned Error Codes:
  4626  //   * ErrCodeResourceContentionFault "ResourceContention"
  4627  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4628  //   (for example, an Auto Scaling group, instance, or load balancer).
  4629  //
  4630  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExitStandby
  4631  func (c *AutoScaling) ExitStandby(input *ExitStandbyInput) (*ExitStandbyOutput, error) {
  4632  	req, out := c.ExitStandbyRequest(input)
  4633  	return out, req.Send()
  4634  }
  4635  
  4636  // ExitStandbyWithContext is the same as ExitStandby with the addition of
  4637  // the ability to pass a context and additional request options.
  4638  //
  4639  // See ExitStandby for details on how to use this API operation.
  4640  //
  4641  // The context must be non-nil and will be used for request cancellation. If
  4642  // the context is nil a panic will occur. In the future the SDK may create
  4643  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4644  // for more information on using Contexts.
  4645  func (c *AutoScaling) ExitStandbyWithContext(ctx aws.Context, input *ExitStandbyInput, opts ...request.Option) (*ExitStandbyOutput, error) {
  4646  	req, out := c.ExitStandbyRequest(input)
  4647  	req.SetContext(ctx)
  4648  	req.ApplyOptions(opts...)
  4649  	return out, req.Send()
  4650  }
  4651  
  4652  const opGetPredictiveScalingForecast = "GetPredictiveScalingForecast"
  4653  
  4654  // GetPredictiveScalingForecastRequest generates a "aws/request.Request" representing the
  4655  // client's request for the GetPredictiveScalingForecast operation. The "output" return
  4656  // value will be populated with the request's response once the request completes
  4657  // successfully.
  4658  //
  4659  // Use "Send" method on the returned Request to send the API call to the service.
  4660  // the "output" return value is not valid until after Send returns without error.
  4661  //
  4662  // See GetPredictiveScalingForecast for more information on using the GetPredictiveScalingForecast
  4663  // API call, and error handling.
  4664  //
  4665  // This method is useful when you want to inject custom logic or configuration
  4666  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4667  //
  4668  //
  4669  //    // Example sending a request using the GetPredictiveScalingForecastRequest method.
  4670  //    req, resp := client.GetPredictiveScalingForecastRequest(params)
  4671  //
  4672  //    err := req.Send()
  4673  //    if err == nil { // resp is now filled
  4674  //        fmt.Println(resp)
  4675  //    }
  4676  //
  4677  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/GetPredictiveScalingForecast
  4678  func (c *AutoScaling) GetPredictiveScalingForecastRequest(input *GetPredictiveScalingForecastInput) (req *request.Request, output *GetPredictiveScalingForecastOutput) {
  4679  	op := &request.Operation{
  4680  		Name:       opGetPredictiveScalingForecast,
  4681  		HTTPMethod: "POST",
  4682  		HTTPPath:   "/",
  4683  	}
  4684  
  4685  	if input == nil {
  4686  		input = &GetPredictiveScalingForecastInput{}
  4687  	}
  4688  
  4689  	output = &GetPredictiveScalingForecastOutput{}
  4690  	req = c.newRequest(op, input, output)
  4691  	return
  4692  }
  4693  
  4694  // GetPredictiveScalingForecast API operation for Auto Scaling.
  4695  //
  4696  // Retrieves the forecast data for a predictive scaling policy.
  4697  //
  4698  // Load forecasts are predictions of the hourly load values using historical
  4699  // load data from CloudWatch and an analysis of historical trends. Capacity
  4700  // forecasts are represented as predicted values for the minimum capacity that
  4701  // is needed on an hourly basis, based on the hourly load forecast.
  4702  //
  4703  // A minimum of 24 hours of data is required to create the initial forecasts.
  4704  // However, having a full 14 days of historical data results in more accurate
  4705  // forecasts.
  4706  //
  4707  // For more information, see Predictive scaling for Amazon EC2 Auto Scaling
  4708  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html)
  4709  // in the Amazon EC2 Auto Scaling User Guide.
  4710  //
  4711  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4712  // with awserr.Error's Code and Message methods to get detailed information about
  4713  // the error.
  4714  //
  4715  // See the AWS API reference guide for Auto Scaling's
  4716  // API operation GetPredictiveScalingForecast for usage and error information.
  4717  //
  4718  // Returned Error Codes:
  4719  //   * ErrCodeResourceContentionFault "ResourceContention"
  4720  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4721  //   (for example, an Auto Scaling group, instance, or load balancer).
  4722  //
  4723  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/GetPredictiveScalingForecast
  4724  func (c *AutoScaling) GetPredictiveScalingForecast(input *GetPredictiveScalingForecastInput) (*GetPredictiveScalingForecastOutput, error) {
  4725  	req, out := c.GetPredictiveScalingForecastRequest(input)
  4726  	return out, req.Send()
  4727  }
  4728  
  4729  // GetPredictiveScalingForecastWithContext is the same as GetPredictiveScalingForecast with the addition of
  4730  // the ability to pass a context and additional request options.
  4731  //
  4732  // See GetPredictiveScalingForecast for details on how to use this API operation.
  4733  //
  4734  // The context must be non-nil and will be used for request cancellation. If
  4735  // the context is nil a panic will occur. In the future the SDK may create
  4736  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4737  // for more information on using Contexts.
  4738  func (c *AutoScaling) GetPredictiveScalingForecastWithContext(ctx aws.Context, input *GetPredictiveScalingForecastInput, opts ...request.Option) (*GetPredictiveScalingForecastOutput, error) {
  4739  	req, out := c.GetPredictiveScalingForecastRequest(input)
  4740  	req.SetContext(ctx)
  4741  	req.ApplyOptions(opts...)
  4742  	return out, req.Send()
  4743  }
  4744  
  4745  const opPutLifecycleHook = "PutLifecycleHook"
  4746  
  4747  // PutLifecycleHookRequest generates a "aws/request.Request" representing the
  4748  // client's request for the PutLifecycleHook operation. The "output" return
  4749  // value will be populated with the request's response once the request completes
  4750  // successfully.
  4751  //
  4752  // Use "Send" method on the returned Request to send the API call to the service.
  4753  // the "output" return value is not valid until after Send returns without error.
  4754  //
  4755  // See PutLifecycleHook for more information on using the PutLifecycleHook
  4756  // API call, and error handling.
  4757  //
  4758  // This method is useful when you want to inject custom logic or configuration
  4759  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4760  //
  4761  //
  4762  //    // Example sending a request using the PutLifecycleHookRequest method.
  4763  //    req, resp := client.PutLifecycleHookRequest(params)
  4764  //
  4765  //    err := req.Send()
  4766  //    if err == nil { // resp is now filled
  4767  //        fmt.Println(resp)
  4768  //    }
  4769  //
  4770  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutLifecycleHook
  4771  func (c *AutoScaling) PutLifecycleHookRequest(input *PutLifecycleHookInput) (req *request.Request, output *PutLifecycleHookOutput) {
  4772  	op := &request.Operation{
  4773  		Name:       opPutLifecycleHook,
  4774  		HTTPMethod: "POST",
  4775  		HTTPPath:   "/",
  4776  	}
  4777  
  4778  	if input == nil {
  4779  		input = &PutLifecycleHookInput{}
  4780  	}
  4781  
  4782  	output = &PutLifecycleHookOutput{}
  4783  	req = c.newRequest(op, input, output)
  4784  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4785  	return
  4786  }
  4787  
  4788  // PutLifecycleHook API operation for Auto Scaling.
  4789  //
  4790  // Creates or updates a lifecycle hook for the specified Auto Scaling group.
  4791  //
  4792  // A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an
  4793  // instance when the instance launches (before it is put into service) or as
  4794  // the instance terminates (before it is fully terminated).
  4795  //
  4796  // This step is a part of the procedure for adding a lifecycle hook to an Auto
  4797  // Scaling group:
  4798  //
  4799  // (Optional) Create a Lambda function and a rule that allows CloudWatch Events
  4800  // to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates
  4801  // instances.
  4802  //
  4803  // (Optional) Create a notification target and an IAM role. The target can be
  4804  // either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon
  4805  // EC2 Auto Scaling to publish lifecycle notifications to the target.
  4806  //
  4807  // Create the lifecycle hook. Specify whether the hook is used when the instances
  4808  // launch or terminate.
  4809  //
  4810  // If you need more time, record the lifecycle action heartbeat to keep the
  4811  // instance in a pending state using the RecordLifecycleActionHeartbeat API
  4812  // call.
  4813  //
  4814  // If you finish before the timeout period ends, complete the lifecycle action
  4815  // using the CompleteLifecycleAction API call.
  4816  //
  4817  // For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
  4818  // in the Amazon EC2 Auto Scaling User Guide.
  4819  //
  4820  // If you exceed your maximum limit of lifecycle hooks, which by default is
  4821  // 50 per Auto Scaling group, the call fails.
  4822  //
  4823  // You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks
  4824  // API call. If you are no longer using a lifecycle hook, you can delete it
  4825  // by calling the DeleteLifecycleHook API.
  4826  //
  4827  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4828  // with awserr.Error's Code and Message methods to get detailed information about
  4829  // the error.
  4830  //
  4831  // See the AWS API reference guide for Auto Scaling's
  4832  // API operation PutLifecycleHook for usage and error information.
  4833  //
  4834  // Returned Error Codes:
  4835  //   * ErrCodeLimitExceededFault "LimitExceeded"
  4836  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  4837  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  4838  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  4839  //   in the Amazon EC2 Auto Scaling API Reference.
  4840  //
  4841  //   * ErrCodeResourceContentionFault "ResourceContention"
  4842  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4843  //   (for example, an Auto Scaling group, instance, or load balancer).
  4844  //
  4845  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutLifecycleHook
  4846  func (c *AutoScaling) PutLifecycleHook(input *PutLifecycleHookInput) (*PutLifecycleHookOutput, error) {
  4847  	req, out := c.PutLifecycleHookRequest(input)
  4848  	return out, req.Send()
  4849  }
  4850  
  4851  // PutLifecycleHookWithContext is the same as PutLifecycleHook with the addition of
  4852  // the ability to pass a context and additional request options.
  4853  //
  4854  // See PutLifecycleHook for details on how to use this API operation.
  4855  //
  4856  // The context must be non-nil and will be used for request cancellation. If
  4857  // the context is nil a panic will occur. In the future the SDK may create
  4858  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4859  // for more information on using Contexts.
  4860  func (c *AutoScaling) PutLifecycleHookWithContext(ctx aws.Context, input *PutLifecycleHookInput, opts ...request.Option) (*PutLifecycleHookOutput, error) {
  4861  	req, out := c.PutLifecycleHookRequest(input)
  4862  	req.SetContext(ctx)
  4863  	req.ApplyOptions(opts...)
  4864  	return out, req.Send()
  4865  }
  4866  
  4867  const opPutNotificationConfiguration = "PutNotificationConfiguration"
  4868  
  4869  // PutNotificationConfigurationRequest generates a "aws/request.Request" representing the
  4870  // client's request for the PutNotificationConfiguration operation. The "output" return
  4871  // value will be populated with the request's response once the request completes
  4872  // successfully.
  4873  //
  4874  // Use "Send" method on the returned Request to send the API call to the service.
  4875  // the "output" return value is not valid until after Send returns without error.
  4876  //
  4877  // See PutNotificationConfiguration for more information on using the PutNotificationConfiguration
  4878  // API call, and error handling.
  4879  //
  4880  // This method is useful when you want to inject custom logic or configuration
  4881  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4882  //
  4883  //
  4884  //    // Example sending a request using the PutNotificationConfigurationRequest method.
  4885  //    req, resp := client.PutNotificationConfigurationRequest(params)
  4886  //
  4887  //    err := req.Send()
  4888  //    if err == nil { // resp is now filled
  4889  //        fmt.Println(resp)
  4890  //    }
  4891  //
  4892  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutNotificationConfiguration
  4893  func (c *AutoScaling) PutNotificationConfigurationRequest(input *PutNotificationConfigurationInput) (req *request.Request, output *PutNotificationConfigurationOutput) {
  4894  	op := &request.Operation{
  4895  		Name:       opPutNotificationConfiguration,
  4896  		HTTPMethod: "POST",
  4897  		HTTPPath:   "/",
  4898  	}
  4899  
  4900  	if input == nil {
  4901  		input = &PutNotificationConfigurationInput{}
  4902  	}
  4903  
  4904  	output = &PutNotificationConfigurationOutput{}
  4905  	req = c.newRequest(op, input, output)
  4906  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4907  	return
  4908  }
  4909  
  4910  // PutNotificationConfiguration API operation for Auto Scaling.
  4911  //
  4912  // Configures an Auto Scaling group to send notifications when specified events
  4913  // take place. Subscribers to the specified topic can have messages delivered
  4914  // to an endpoint such as a web server or an email address.
  4915  //
  4916  // This configuration overwrites any existing configuration.
  4917  //
  4918  // For more information, see Getting Amazon SNS notifications when your Auto
  4919  // Scaling group scales (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html)
  4920  // in the Amazon EC2 Auto Scaling User Guide.
  4921  //
  4922  // If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling
  4923  // group, the call fails.
  4924  //
  4925  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4926  // with awserr.Error's Code and Message methods to get detailed information about
  4927  // the error.
  4928  //
  4929  // See the AWS API reference guide for Auto Scaling's
  4930  // API operation PutNotificationConfiguration for usage and error information.
  4931  //
  4932  // Returned Error Codes:
  4933  //   * ErrCodeLimitExceededFault "LimitExceeded"
  4934  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  4935  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  4936  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  4937  //   in the Amazon EC2 Auto Scaling API Reference.
  4938  //
  4939  //   * ErrCodeResourceContentionFault "ResourceContention"
  4940  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  4941  //   (for example, an Auto Scaling group, instance, or load balancer).
  4942  //
  4943  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
  4944  //   The service-linked role is not yet ready for use.
  4945  //
  4946  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutNotificationConfiguration
  4947  func (c *AutoScaling) PutNotificationConfiguration(input *PutNotificationConfigurationInput) (*PutNotificationConfigurationOutput, error) {
  4948  	req, out := c.PutNotificationConfigurationRequest(input)
  4949  	return out, req.Send()
  4950  }
  4951  
  4952  // PutNotificationConfigurationWithContext is the same as PutNotificationConfiguration with the addition of
  4953  // the ability to pass a context and additional request options.
  4954  //
  4955  // See PutNotificationConfiguration for details on how to use this API operation.
  4956  //
  4957  // The context must be non-nil and will be used for request cancellation. If
  4958  // the context is nil a panic will occur. In the future the SDK may create
  4959  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4960  // for more information on using Contexts.
  4961  func (c *AutoScaling) PutNotificationConfigurationWithContext(ctx aws.Context, input *PutNotificationConfigurationInput, opts ...request.Option) (*PutNotificationConfigurationOutput, error) {
  4962  	req, out := c.PutNotificationConfigurationRequest(input)
  4963  	req.SetContext(ctx)
  4964  	req.ApplyOptions(opts...)
  4965  	return out, req.Send()
  4966  }
  4967  
  4968  const opPutScalingPolicy = "PutScalingPolicy"
  4969  
  4970  // PutScalingPolicyRequest generates a "aws/request.Request" representing the
  4971  // client's request for the PutScalingPolicy operation. The "output" return
  4972  // value will be populated with the request's response once the request completes
  4973  // successfully.
  4974  //
  4975  // Use "Send" method on the returned Request to send the API call to the service.
  4976  // the "output" return value is not valid until after Send returns without error.
  4977  //
  4978  // See PutScalingPolicy for more information on using the PutScalingPolicy
  4979  // API call, and error handling.
  4980  //
  4981  // This method is useful when you want to inject custom logic or configuration
  4982  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4983  //
  4984  //
  4985  //    // Example sending a request using the PutScalingPolicyRequest method.
  4986  //    req, resp := client.PutScalingPolicyRequest(params)
  4987  //
  4988  //    err := req.Send()
  4989  //    if err == nil { // resp is now filled
  4990  //        fmt.Println(resp)
  4991  //    }
  4992  //
  4993  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScalingPolicy
  4994  func (c *AutoScaling) PutScalingPolicyRequest(input *PutScalingPolicyInput) (req *request.Request, output *PutScalingPolicyOutput) {
  4995  	op := &request.Operation{
  4996  		Name:       opPutScalingPolicy,
  4997  		HTTPMethod: "POST",
  4998  		HTTPPath:   "/",
  4999  	}
  5000  
  5001  	if input == nil {
  5002  		input = &PutScalingPolicyInput{}
  5003  	}
  5004  
  5005  	output = &PutScalingPolicyOutput{}
  5006  	req = c.newRequest(op, input, output)
  5007  	return
  5008  }
  5009  
  5010  // PutScalingPolicy API operation for Auto Scaling.
  5011  //
  5012  // Creates or updates a scaling policy for an Auto Scaling group. Scaling policies
  5013  // are used to scale an Auto Scaling group based on configurable metrics. If
  5014  // no policies are defined, the dynamic scaling and predictive scaling features
  5015  // are not used.
  5016  //
  5017  // For more information about using dynamic scaling, see Target tracking scaling
  5018  // policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html)
  5019  // and Step and simple scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html)
  5020  // in the Amazon EC2 Auto Scaling User Guide.
  5021  //
  5022  // For more information about using predictive scaling, see Predictive scaling
  5023  // for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html)
  5024  // in the Amazon EC2 Auto Scaling User Guide.
  5025  //
  5026  // You can view the scaling policies for an Auto Scaling group using the DescribePolicies
  5027  // API call. If you are no longer using a scaling policy, you can delete it
  5028  // by calling the DeletePolicy API.
  5029  //
  5030  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5031  // with awserr.Error's Code and Message methods to get detailed information about
  5032  // the error.
  5033  //
  5034  // See the AWS API reference guide for Auto Scaling's
  5035  // API operation PutScalingPolicy for usage and error information.
  5036  //
  5037  // Returned Error Codes:
  5038  //   * ErrCodeLimitExceededFault "LimitExceeded"
  5039  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  5040  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  5041  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  5042  //   in the Amazon EC2 Auto Scaling API Reference.
  5043  //
  5044  //   * ErrCodeResourceContentionFault "ResourceContention"
  5045  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5046  //   (for example, an Auto Scaling group, instance, or load balancer).
  5047  //
  5048  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
  5049  //   The service-linked role is not yet ready for use.
  5050  //
  5051  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScalingPolicy
  5052  func (c *AutoScaling) PutScalingPolicy(input *PutScalingPolicyInput) (*PutScalingPolicyOutput, error) {
  5053  	req, out := c.PutScalingPolicyRequest(input)
  5054  	return out, req.Send()
  5055  }
  5056  
  5057  // PutScalingPolicyWithContext is the same as PutScalingPolicy with the addition of
  5058  // the ability to pass a context and additional request options.
  5059  //
  5060  // See PutScalingPolicy for details on how to use this API operation.
  5061  //
  5062  // The context must be non-nil and will be used for request cancellation. If
  5063  // the context is nil a panic will occur. In the future the SDK may create
  5064  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5065  // for more information on using Contexts.
  5066  func (c *AutoScaling) PutScalingPolicyWithContext(ctx aws.Context, input *PutScalingPolicyInput, opts ...request.Option) (*PutScalingPolicyOutput, error) {
  5067  	req, out := c.PutScalingPolicyRequest(input)
  5068  	req.SetContext(ctx)
  5069  	req.ApplyOptions(opts...)
  5070  	return out, req.Send()
  5071  }
  5072  
  5073  const opPutScheduledUpdateGroupAction = "PutScheduledUpdateGroupAction"
  5074  
  5075  // PutScheduledUpdateGroupActionRequest generates a "aws/request.Request" representing the
  5076  // client's request for the PutScheduledUpdateGroupAction operation. The "output" return
  5077  // value will be populated with the request's response once the request completes
  5078  // successfully.
  5079  //
  5080  // Use "Send" method on the returned Request to send the API call to the service.
  5081  // the "output" return value is not valid until after Send returns without error.
  5082  //
  5083  // See PutScheduledUpdateGroupAction for more information on using the PutScheduledUpdateGroupAction
  5084  // API call, and error handling.
  5085  //
  5086  // This method is useful when you want to inject custom logic or configuration
  5087  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5088  //
  5089  //
  5090  //    // Example sending a request using the PutScheduledUpdateGroupActionRequest method.
  5091  //    req, resp := client.PutScheduledUpdateGroupActionRequest(params)
  5092  //
  5093  //    err := req.Send()
  5094  //    if err == nil { // resp is now filled
  5095  //        fmt.Println(resp)
  5096  //    }
  5097  //
  5098  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScheduledUpdateGroupAction
  5099  func (c *AutoScaling) PutScheduledUpdateGroupActionRequest(input *PutScheduledUpdateGroupActionInput) (req *request.Request, output *PutScheduledUpdateGroupActionOutput) {
  5100  	op := &request.Operation{
  5101  		Name:       opPutScheduledUpdateGroupAction,
  5102  		HTTPMethod: "POST",
  5103  		HTTPPath:   "/",
  5104  	}
  5105  
  5106  	if input == nil {
  5107  		input = &PutScheduledUpdateGroupActionInput{}
  5108  	}
  5109  
  5110  	output = &PutScheduledUpdateGroupActionOutput{}
  5111  	req = c.newRequest(op, input, output)
  5112  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5113  	return
  5114  }
  5115  
  5116  // PutScheduledUpdateGroupAction API operation for Auto Scaling.
  5117  //
  5118  // Creates or updates a scheduled scaling action for an Auto Scaling group.
  5119  //
  5120  // For more information, see Scheduled scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html)
  5121  // in the Amazon EC2 Auto Scaling User Guide.
  5122  //
  5123  // You can view the scheduled actions for an Auto Scaling group using the DescribeScheduledActions
  5124  // API call. If you are no longer using a scheduled action, you can delete it
  5125  // by calling the DeleteScheduledAction API.
  5126  //
  5127  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5128  // with awserr.Error's Code and Message methods to get detailed information about
  5129  // the error.
  5130  //
  5131  // See the AWS API reference guide for Auto Scaling's
  5132  // API operation PutScheduledUpdateGroupAction for usage and error information.
  5133  //
  5134  // Returned Error Codes:
  5135  //   * ErrCodeAlreadyExistsFault "AlreadyExists"
  5136  //   You already have an Auto Scaling group or launch configuration with this
  5137  //   name.
  5138  //
  5139  //   * ErrCodeLimitExceededFault "LimitExceeded"
  5140  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  5141  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  5142  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  5143  //   in the Amazon EC2 Auto Scaling API Reference.
  5144  //
  5145  //   * ErrCodeResourceContentionFault "ResourceContention"
  5146  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5147  //   (for example, an Auto Scaling group, instance, or load balancer).
  5148  //
  5149  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScheduledUpdateGroupAction
  5150  func (c *AutoScaling) PutScheduledUpdateGroupAction(input *PutScheduledUpdateGroupActionInput) (*PutScheduledUpdateGroupActionOutput, error) {
  5151  	req, out := c.PutScheduledUpdateGroupActionRequest(input)
  5152  	return out, req.Send()
  5153  }
  5154  
  5155  // PutScheduledUpdateGroupActionWithContext is the same as PutScheduledUpdateGroupAction with the addition of
  5156  // the ability to pass a context and additional request options.
  5157  //
  5158  // See PutScheduledUpdateGroupAction for details on how to use this API operation.
  5159  //
  5160  // The context must be non-nil and will be used for request cancellation. If
  5161  // the context is nil a panic will occur. In the future the SDK may create
  5162  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5163  // for more information on using Contexts.
  5164  func (c *AutoScaling) PutScheduledUpdateGroupActionWithContext(ctx aws.Context, input *PutScheduledUpdateGroupActionInput, opts ...request.Option) (*PutScheduledUpdateGroupActionOutput, error) {
  5165  	req, out := c.PutScheduledUpdateGroupActionRequest(input)
  5166  	req.SetContext(ctx)
  5167  	req.ApplyOptions(opts...)
  5168  	return out, req.Send()
  5169  }
  5170  
  5171  const opPutWarmPool = "PutWarmPool"
  5172  
  5173  // PutWarmPoolRequest generates a "aws/request.Request" representing the
  5174  // client's request for the PutWarmPool operation. The "output" return
  5175  // value will be populated with the request's response once the request completes
  5176  // successfully.
  5177  //
  5178  // Use "Send" method on the returned Request to send the API call to the service.
  5179  // the "output" return value is not valid until after Send returns without error.
  5180  //
  5181  // See PutWarmPool for more information on using the PutWarmPool
  5182  // API call, and error handling.
  5183  //
  5184  // This method is useful when you want to inject custom logic or configuration
  5185  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5186  //
  5187  //
  5188  //    // Example sending a request using the PutWarmPoolRequest method.
  5189  //    req, resp := client.PutWarmPoolRequest(params)
  5190  //
  5191  //    err := req.Send()
  5192  //    if err == nil { // resp is now filled
  5193  //        fmt.Println(resp)
  5194  //    }
  5195  //
  5196  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutWarmPool
  5197  func (c *AutoScaling) PutWarmPoolRequest(input *PutWarmPoolInput) (req *request.Request, output *PutWarmPoolOutput) {
  5198  	op := &request.Operation{
  5199  		Name:       opPutWarmPool,
  5200  		HTTPMethod: "POST",
  5201  		HTTPPath:   "/",
  5202  	}
  5203  
  5204  	if input == nil {
  5205  		input = &PutWarmPoolInput{}
  5206  	}
  5207  
  5208  	output = &PutWarmPoolOutput{}
  5209  	req = c.newRequest(op, input, output)
  5210  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5211  	return
  5212  }
  5213  
  5214  // PutWarmPool API operation for Auto Scaling.
  5215  //
  5216  // Creates or updates a warm pool for the specified Auto Scaling group. A warm
  5217  // pool is a pool of pre-initialized EC2 instances that sits alongside the Auto
  5218  // Scaling group. Whenever your application needs to scale out, the Auto Scaling
  5219  // group can draw on the warm pool to meet its new desired capacity. For more
  5220  // information and example configurations, see Warm pools for Amazon EC2 Auto
  5221  // Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html)
  5222  // in the Amazon EC2 Auto Scaling User Guide.
  5223  //
  5224  // This operation must be called from the Region in which the Auto Scaling group
  5225  // was created. This operation cannot be called on an Auto Scaling group that
  5226  // has a mixed instances policy or a launch template or launch configuration
  5227  // that requests Spot Instances.
  5228  //
  5229  // You can view the instances in the warm pool using the DescribeWarmPool API
  5230  // call. If you are no longer using a warm pool, you can delete it by calling
  5231  // the DeleteWarmPool API.
  5232  //
  5233  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5234  // with awserr.Error's Code and Message methods to get detailed information about
  5235  // the error.
  5236  //
  5237  // See the AWS API reference guide for Auto Scaling's
  5238  // API operation PutWarmPool for usage and error information.
  5239  //
  5240  // Returned Error Codes:
  5241  //   * ErrCodeLimitExceededFault "LimitExceeded"
  5242  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  5243  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  5244  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  5245  //   in the Amazon EC2 Auto Scaling API Reference.
  5246  //
  5247  //   * ErrCodeResourceContentionFault "ResourceContention"
  5248  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5249  //   (for example, an Auto Scaling group, instance, or load balancer).
  5250  //
  5251  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutWarmPool
  5252  func (c *AutoScaling) PutWarmPool(input *PutWarmPoolInput) (*PutWarmPoolOutput, error) {
  5253  	req, out := c.PutWarmPoolRequest(input)
  5254  	return out, req.Send()
  5255  }
  5256  
  5257  // PutWarmPoolWithContext is the same as PutWarmPool with the addition of
  5258  // the ability to pass a context and additional request options.
  5259  //
  5260  // See PutWarmPool for details on how to use this API operation.
  5261  //
  5262  // The context must be non-nil and will be used for request cancellation. If
  5263  // the context is nil a panic will occur. In the future the SDK may create
  5264  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5265  // for more information on using Contexts.
  5266  func (c *AutoScaling) PutWarmPoolWithContext(ctx aws.Context, input *PutWarmPoolInput, opts ...request.Option) (*PutWarmPoolOutput, error) {
  5267  	req, out := c.PutWarmPoolRequest(input)
  5268  	req.SetContext(ctx)
  5269  	req.ApplyOptions(opts...)
  5270  	return out, req.Send()
  5271  }
  5272  
  5273  const opRecordLifecycleActionHeartbeat = "RecordLifecycleActionHeartbeat"
  5274  
  5275  // RecordLifecycleActionHeartbeatRequest generates a "aws/request.Request" representing the
  5276  // client's request for the RecordLifecycleActionHeartbeat operation. The "output" return
  5277  // value will be populated with the request's response once the request completes
  5278  // successfully.
  5279  //
  5280  // Use "Send" method on the returned Request to send the API call to the service.
  5281  // the "output" return value is not valid until after Send returns without error.
  5282  //
  5283  // See RecordLifecycleActionHeartbeat for more information on using the RecordLifecycleActionHeartbeat
  5284  // API call, and error handling.
  5285  //
  5286  // This method is useful when you want to inject custom logic or configuration
  5287  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5288  //
  5289  //
  5290  //    // Example sending a request using the RecordLifecycleActionHeartbeatRequest method.
  5291  //    req, resp := client.RecordLifecycleActionHeartbeatRequest(params)
  5292  //
  5293  //    err := req.Send()
  5294  //    if err == nil { // resp is now filled
  5295  //        fmt.Println(resp)
  5296  //    }
  5297  //
  5298  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/RecordLifecycleActionHeartbeat
  5299  func (c *AutoScaling) RecordLifecycleActionHeartbeatRequest(input *RecordLifecycleActionHeartbeatInput) (req *request.Request, output *RecordLifecycleActionHeartbeatOutput) {
  5300  	op := &request.Operation{
  5301  		Name:       opRecordLifecycleActionHeartbeat,
  5302  		HTTPMethod: "POST",
  5303  		HTTPPath:   "/",
  5304  	}
  5305  
  5306  	if input == nil {
  5307  		input = &RecordLifecycleActionHeartbeatInput{}
  5308  	}
  5309  
  5310  	output = &RecordLifecycleActionHeartbeatOutput{}
  5311  	req = c.newRequest(op, input, output)
  5312  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5313  	return
  5314  }
  5315  
  5316  // RecordLifecycleActionHeartbeat API operation for Auto Scaling.
  5317  //
  5318  // Records a heartbeat for the lifecycle action associated with the specified
  5319  // token or instance. This extends the timeout by the length of time defined
  5320  // using the PutLifecycleHook API call.
  5321  //
  5322  // This step is a part of the procedure for adding a lifecycle hook to an Auto
  5323  // Scaling group:
  5324  //
  5325  // (Optional) Create a Lambda function and a rule that allows CloudWatch Events
  5326  // to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates
  5327  // instances.
  5328  //
  5329  // (Optional) Create a notification target and an IAM role. The target can be
  5330  // either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon
  5331  // EC2 Auto Scaling to publish lifecycle notifications to the target.
  5332  //
  5333  // Create the lifecycle hook. Specify whether the hook is used when the instances
  5334  // launch or terminate.
  5335  //
  5336  // If you need more time, record the lifecycle action heartbeat to keep the
  5337  // instance in a pending state.
  5338  //
  5339  // If you finish before the timeout period ends, complete the lifecycle action.
  5340  //
  5341  // For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
  5342  // in the Amazon EC2 Auto Scaling User Guide.
  5343  //
  5344  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5345  // with awserr.Error's Code and Message methods to get detailed information about
  5346  // the error.
  5347  //
  5348  // See the AWS API reference guide for Auto Scaling's
  5349  // API operation RecordLifecycleActionHeartbeat for usage and error information.
  5350  //
  5351  // Returned Error Codes:
  5352  //   * ErrCodeResourceContentionFault "ResourceContention"
  5353  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5354  //   (for example, an Auto Scaling group, instance, or load balancer).
  5355  //
  5356  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/RecordLifecycleActionHeartbeat
  5357  func (c *AutoScaling) RecordLifecycleActionHeartbeat(input *RecordLifecycleActionHeartbeatInput) (*RecordLifecycleActionHeartbeatOutput, error) {
  5358  	req, out := c.RecordLifecycleActionHeartbeatRequest(input)
  5359  	return out, req.Send()
  5360  }
  5361  
  5362  // RecordLifecycleActionHeartbeatWithContext is the same as RecordLifecycleActionHeartbeat with the addition of
  5363  // the ability to pass a context and additional request options.
  5364  //
  5365  // See RecordLifecycleActionHeartbeat for details on how to use this API operation.
  5366  //
  5367  // The context must be non-nil and will be used for request cancellation. If
  5368  // the context is nil a panic will occur. In the future the SDK may create
  5369  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5370  // for more information on using Contexts.
  5371  func (c *AutoScaling) RecordLifecycleActionHeartbeatWithContext(ctx aws.Context, input *RecordLifecycleActionHeartbeatInput, opts ...request.Option) (*RecordLifecycleActionHeartbeatOutput, error) {
  5372  	req, out := c.RecordLifecycleActionHeartbeatRequest(input)
  5373  	req.SetContext(ctx)
  5374  	req.ApplyOptions(opts...)
  5375  	return out, req.Send()
  5376  }
  5377  
  5378  const opResumeProcesses = "ResumeProcesses"
  5379  
  5380  // ResumeProcessesRequest generates a "aws/request.Request" representing the
  5381  // client's request for the ResumeProcesses operation. The "output" return
  5382  // value will be populated with the request's response once the request completes
  5383  // successfully.
  5384  //
  5385  // Use "Send" method on the returned Request to send the API call to the service.
  5386  // the "output" return value is not valid until after Send returns without error.
  5387  //
  5388  // See ResumeProcesses for more information on using the ResumeProcesses
  5389  // API call, and error handling.
  5390  //
  5391  // This method is useful when you want to inject custom logic or configuration
  5392  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5393  //
  5394  //
  5395  //    // Example sending a request using the ResumeProcessesRequest method.
  5396  //    req, resp := client.ResumeProcessesRequest(params)
  5397  //
  5398  //    err := req.Send()
  5399  //    if err == nil { // resp is now filled
  5400  //        fmt.Println(resp)
  5401  //    }
  5402  //
  5403  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ResumeProcesses
  5404  func (c *AutoScaling) ResumeProcessesRequest(input *ScalingProcessQuery) (req *request.Request, output *ResumeProcessesOutput) {
  5405  	op := &request.Operation{
  5406  		Name:       opResumeProcesses,
  5407  		HTTPMethod: "POST",
  5408  		HTTPPath:   "/",
  5409  	}
  5410  
  5411  	if input == nil {
  5412  		input = &ScalingProcessQuery{}
  5413  	}
  5414  
  5415  	output = &ResumeProcessesOutput{}
  5416  	req = c.newRequest(op, input, output)
  5417  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5418  	return
  5419  }
  5420  
  5421  // ResumeProcesses API operation for Auto Scaling.
  5422  //
  5423  // Resumes the specified suspended auto scaling processes, or all suspended
  5424  // process, for the specified Auto Scaling group.
  5425  //
  5426  // For more information, see Suspending and resuming scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html)
  5427  // in the Amazon EC2 Auto Scaling User Guide.
  5428  //
  5429  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5430  // with awserr.Error's Code and Message methods to get detailed information about
  5431  // the error.
  5432  //
  5433  // See the AWS API reference guide for Auto Scaling's
  5434  // API operation ResumeProcesses for usage and error information.
  5435  //
  5436  // Returned Error Codes:
  5437  //   * ErrCodeResourceInUseFault "ResourceInUse"
  5438  //   The operation can't be performed because the resource is in use.
  5439  //
  5440  //   * ErrCodeResourceContentionFault "ResourceContention"
  5441  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5442  //   (for example, an Auto Scaling group, instance, or load balancer).
  5443  //
  5444  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ResumeProcesses
  5445  func (c *AutoScaling) ResumeProcesses(input *ScalingProcessQuery) (*ResumeProcessesOutput, error) {
  5446  	req, out := c.ResumeProcessesRequest(input)
  5447  	return out, req.Send()
  5448  }
  5449  
  5450  // ResumeProcessesWithContext is the same as ResumeProcesses with the addition of
  5451  // the ability to pass a context and additional request options.
  5452  //
  5453  // See ResumeProcesses for details on how to use this API operation.
  5454  //
  5455  // The context must be non-nil and will be used for request cancellation. If
  5456  // the context is nil a panic will occur. In the future the SDK may create
  5457  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5458  // for more information on using Contexts.
  5459  func (c *AutoScaling) ResumeProcessesWithContext(ctx aws.Context, input *ScalingProcessQuery, opts ...request.Option) (*ResumeProcessesOutput, error) {
  5460  	req, out := c.ResumeProcessesRequest(input)
  5461  	req.SetContext(ctx)
  5462  	req.ApplyOptions(opts...)
  5463  	return out, req.Send()
  5464  }
  5465  
  5466  const opSetDesiredCapacity = "SetDesiredCapacity"
  5467  
  5468  // SetDesiredCapacityRequest generates a "aws/request.Request" representing the
  5469  // client's request for the SetDesiredCapacity operation. The "output" return
  5470  // value will be populated with the request's response once the request completes
  5471  // successfully.
  5472  //
  5473  // Use "Send" method on the returned Request to send the API call to the service.
  5474  // the "output" return value is not valid until after Send returns without error.
  5475  //
  5476  // See SetDesiredCapacity for more information on using the SetDesiredCapacity
  5477  // API call, and error handling.
  5478  //
  5479  // This method is useful when you want to inject custom logic or configuration
  5480  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5481  //
  5482  //
  5483  //    // Example sending a request using the SetDesiredCapacityRequest method.
  5484  //    req, resp := client.SetDesiredCapacityRequest(params)
  5485  //
  5486  //    err := req.Send()
  5487  //    if err == nil { // resp is now filled
  5488  //        fmt.Println(resp)
  5489  //    }
  5490  //
  5491  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetDesiredCapacity
  5492  func (c *AutoScaling) SetDesiredCapacityRequest(input *SetDesiredCapacityInput) (req *request.Request, output *SetDesiredCapacityOutput) {
  5493  	op := &request.Operation{
  5494  		Name:       opSetDesiredCapacity,
  5495  		HTTPMethod: "POST",
  5496  		HTTPPath:   "/",
  5497  	}
  5498  
  5499  	if input == nil {
  5500  		input = &SetDesiredCapacityInput{}
  5501  	}
  5502  
  5503  	output = &SetDesiredCapacityOutput{}
  5504  	req = c.newRequest(op, input, output)
  5505  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5506  	return
  5507  }
  5508  
  5509  // SetDesiredCapacity API operation for Auto Scaling.
  5510  //
  5511  // Sets the size of the specified Auto Scaling group.
  5512  //
  5513  // If a scale-in activity occurs as a result of a new DesiredCapacity value
  5514  // that is lower than the current size of the group, the Auto Scaling group
  5515  // uses its termination policy to determine which instances to terminate.
  5516  //
  5517  // For more information, see Manual scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html)
  5518  // in the Amazon EC2 Auto Scaling User Guide.
  5519  //
  5520  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5521  // with awserr.Error's Code and Message methods to get detailed information about
  5522  // the error.
  5523  //
  5524  // See the AWS API reference guide for Auto Scaling's
  5525  // API operation SetDesiredCapacity for usage and error information.
  5526  //
  5527  // Returned Error Codes:
  5528  //   * ErrCodeScalingActivityInProgressFault "ScalingActivityInProgress"
  5529  //   The operation can't be performed because there are scaling activities in
  5530  //   progress.
  5531  //
  5532  //   * ErrCodeResourceContentionFault "ResourceContention"
  5533  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5534  //   (for example, an Auto Scaling group, instance, or load balancer).
  5535  //
  5536  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetDesiredCapacity
  5537  func (c *AutoScaling) SetDesiredCapacity(input *SetDesiredCapacityInput) (*SetDesiredCapacityOutput, error) {
  5538  	req, out := c.SetDesiredCapacityRequest(input)
  5539  	return out, req.Send()
  5540  }
  5541  
  5542  // SetDesiredCapacityWithContext is the same as SetDesiredCapacity with the addition of
  5543  // the ability to pass a context and additional request options.
  5544  //
  5545  // See SetDesiredCapacity for details on how to use this API operation.
  5546  //
  5547  // The context must be non-nil and will be used for request cancellation. If
  5548  // the context is nil a panic will occur. In the future the SDK may create
  5549  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5550  // for more information on using Contexts.
  5551  func (c *AutoScaling) SetDesiredCapacityWithContext(ctx aws.Context, input *SetDesiredCapacityInput, opts ...request.Option) (*SetDesiredCapacityOutput, error) {
  5552  	req, out := c.SetDesiredCapacityRequest(input)
  5553  	req.SetContext(ctx)
  5554  	req.ApplyOptions(opts...)
  5555  	return out, req.Send()
  5556  }
  5557  
  5558  const opSetInstanceHealth = "SetInstanceHealth"
  5559  
  5560  // SetInstanceHealthRequest generates a "aws/request.Request" representing the
  5561  // client's request for the SetInstanceHealth operation. The "output" return
  5562  // value will be populated with the request's response once the request completes
  5563  // successfully.
  5564  //
  5565  // Use "Send" method on the returned Request to send the API call to the service.
  5566  // the "output" return value is not valid until after Send returns without error.
  5567  //
  5568  // See SetInstanceHealth for more information on using the SetInstanceHealth
  5569  // API call, and error handling.
  5570  //
  5571  // This method is useful when you want to inject custom logic or configuration
  5572  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5573  //
  5574  //
  5575  //    // Example sending a request using the SetInstanceHealthRequest method.
  5576  //    req, resp := client.SetInstanceHealthRequest(params)
  5577  //
  5578  //    err := req.Send()
  5579  //    if err == nil { // resp is now filled
  5580  //        fmt.Println(resp)
  5581  //    }
  5582  //
  5583  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceHealth
  5584  func (c *AutoScaling) SetInstanceHealthRequest(input *SetInstanceHealthInput) (req *request.Request, output *SetInstanceHealthOutput) {
  5585  	op := &request.Operation{
  5586  		Name:       opSetInstanceHealth,
  5587  		HTTPMethod: "POST",
  5588  		HTTPPath:   "/",
  5589  	}
  5590  
  5591  	if input == nil {
  5592  		input = &SetInstanceHealthInput{}
  5593  	}
  5594  
  5595  	output = &SetInstanceHealthOutput{}
  5596  	req = c.newRequest(op, input, output)
  5597  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5598  	return
  5599  }
  5600  
  5601  // SetInstanceHealth API operation for Auto Scaling.
  5602  //
  5603  // Sets the health status of the specified instance.
  5604  //
  5605  // For more information, see Health checks for Auto Scaling instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html)
  5606  // in the Amazon EC2 Auto Scaling User Guide.
  5607  //
  5608  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5609  // with awserr.Error's Code and Message methods to get detailed information about
  5610  // the error.
  5611  //
  5612  // See the AWS API reference guide for Auto Scaling's
  5613  // API operation SetInstanceHealth for usage and error information.
  5614  //
  5615  // Returned Error Codes:
  5616  //   * ErrCodeResourceContentionFault "ResourceContention"
  5617  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5618  //   (for example, an Auto Scaling group, instance, or load balancer).
  5619  //
  5620  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceHealth
  5621  func (c *AutoScaling) SetInstanceHealth(input *SetInstanceHealthInput) (*SetInstanceHealthOutput, error) {
  5622  	req, out := c.SetInstanceHealthRequest(input)
  5623  	return out, req.Send()
  5624  }
  5625  
  5626  // SetInstanceHealthWithContext is the same as SetInstanceHealth with the addition of
  5627  // the ability to pass a context and additional request options.
  5628  //
  5629  // See SetInstanceHealth for details on how to use this API operation.
  5630  //
  5631  // The context must be non-nil and will be used for request cancellation. If
  5632  // the context is nil a panic will occur. In the future the SDK may create
  5633  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5634  // for more information on using Contexts.
  5635  func (c *AutoScaling) SetInstanceHealthWithContext(ctx aws.Context, input *SetInstanceHealthInput, opts ...request.Option) (*SetInstanceHealthOutput, error) {
  5636  	req, out := c.SetInstanceHealthRequest(input)
  5637  	req.SetContext(ctx)
  5638  	req.ApplyOptions(opts...)
  5639  	return out, req.Send()
  5640  }
  5641  
  5642  const opSetInstanceProtection = "SetInstanceProtection"
  5643  
  5644  // SetInstanceProtectionRequest generates a "aws/request.Request" representing the
  5645  // client's request for the SetInstanceProtection operation. The "output" return
  5646  // value will be populated with the request's response once the request completes
  5647  // successfully.
  5648  //
  5649  // Use "Send" method on the returned Request to send the API call to the service.
  5650  // the "output" return value is not valid until after Send returns without error.
  5651  //
  5652  // See SetInstanceProtection for more information on using the SetInstanceProtection
  5653  // API call, and error handling.
  5654  //
  5655  // This method is useful when you want to inject custom logic or configuration
  5656  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5657  //
  5658  //
  5659  //    // Example sending a request using the SetInstanceProtectionRequest method.
  5660  //    req, resp := client.SetInstanceProtectionRequest(params)
  5661  //
  5662  //    err := req.Send()
  5663  //    if err == nil { // resp is now filled
  5664  //        fmt.Println(resp)
  5665  //    }
  5666  //
  5667  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceProtection
  5668  func (c *AutoScaling) SetInstanceProtectionRequest(input *SetInstanceProtectionInput) (req *request.Request, output *SetInstanceProtectionOutput) {
  5669  	op := &request.Operation{
  5670  		Name:       opSetInstanceProtection,
  5671  		HTTPMethod: "POST",
  5672  		HTTPPath:   "/",
  5673  	}
  5674  
  5675  	if input == nil {
  5676  		input = &SetInstanceProtectionInput{}
  5677  	}
  5678  
  5679  	output = &SetInstanceProtectionOutput{}
  5680  	req = c.newRequest(op, input, output)
  5681  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5682  	return
  5683  }
  5684  
  5685  // SetInstanceProtection API operation for Auto Scaling.
  5686  //
  5687  // Updates the instance protection settings of the specified instances. This
  5688  // operation cannot be called on instances in a warm pool.
  5689  //
  5690  // For more information about preventing instances that are part of an Auto
  5691  // Scaling group from terminating on scale in, see Instance scale-in protection
  5692  // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
  5693  // in the Amazon EC2 Auto Scaling User Guide.
  5694  //
  5695  // If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling
  5696  // group, the call fails.
  5697  //
  5698  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5699  // with awserr.Error's Code and Message methods to get detailed information about
  5700  // the error.
  5701  //
  5702  // See the AWS API reference guide for Auto Scaling's
  5703  // API operation SetInstanceProtection for usage and error information.
  5704  //
  5705  // Returned Error Codes:
  5706  //   * ErrCodeLimitExceededFault "LimitExceeded"
  5707  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  5708  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  5709  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  5710  //   in the Amazon EC2 Auto Scaling API Reference.
  5711  //
  5712  //   * ErrCodeResourceContentionFault "ResourceContention"
  5713  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5714  //   (for example, an Auto Scaling group, instance, or load balancer).
  5715  //
  5716  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceProtection
  5717  func (c *AutoScaling) SetInstanceProtection(input *SetInstanceProtectionInput) (*SetInstanceProtectionOutput, error) {
  5718  	req, out := c.SetInstanceProtectionRequest(input)
  5719  	return out, req.Send()
  5720  }
  5721  
  5722  // SetInstanceProtectionWithContext is the same as SetInstanceProtection with the addition of
  5723  // the ability to pass a context and additional request options.
  5724  //
  5725  // See SetInstanceProtection for details on how to use this API operation.
  5726  //
  5727  // The context must be non-nil and will be used for request cancellation. If
  5728  // the context is nil a panic will occur. In the future the SDK may create
  5729  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5730  // for more information on using Contexts.
  5731  func (c *AutoScaling) SetInstanceProtectionWithContext(ctx aws.Context, input *SetInstanceProtectionInput, opts ...request.Option) (*SetInstanceProtectionOutput, error) {
  5732  	req, out := c.SetInstanceProtectionRequest(input)
  5733  	req.SetContext(ctx)
  5734  	req.ApplyOptions(opts...)
  5735  	return out, req.Send()
  5736  }
  5737  
  5738  const opStartInstanceRefresh = "StartInstanceRefresh"
  5739  
  5740  // StartInstanceRefreshRequest generates a "aws/request.Request" representing the
  5741  // client's request for the StartInstanceRefresh operation. The "output" return
  5742  // value will be populated with the request's response once the request completes
  5743  // successfully.
  5744  //
  5745  // Use "Send" method on the returned Request to send the API call to the service.
  5746  // the "output" return value is not valid until after Send returns without error.
  5747  //
  5748  // See StartInstanceRefresh for more information on using the StartInstanceRefresh
  5749  // API call, and error handling.
  5750  //
  5751  // This method is useful when you want to inject custom logic or configuration
  5752  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5753  //
  5754  //
  5755  //    // Example sending a request using the StartInstanceRefreshRequest method.
  5756  //    req, resp := client.StartInstanceRefreshRequest(params)
  5757  //
  5758  //    err := req.Send()
  5759  //    if err == nil { // resp is now filled
  5760  //        fmt.Println(resp)
  5761  //    }
  5762  //
  5763  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/StartInstanceRefresh
  5764  func (c *AutoScaling) StartInstanceRefreshRequest(input *StartInstanceRefreshInput) (req *request.Request, output *StartInstanceRefreshOutput) {
  5765  	op := &request.Operation{
  5766  		Name:       opStartInstanceRefresh,
  5767  		HTTPMethod: "POST",
  5768  		HTTPPath:   "/",
  5769  	}
  5770  
  5771  	if input == nil {
  5772  		input = &StartInstanceRefreshInput{}
  5773  	}
  5774  
  5775  	output = &StartInstanceRefreshOutput{}
  5776  	req = c.newRequest(op, input, output)
  5777  	return
  5778  }
  5779  
  5780  // StartInstanceRefresh API operation for Auto Scaling.
  5781  //
  5782  // Starts a new instance refresh operation. An instance refresh performs a rolling
  5783  // replacement of all or some instances in an Auto Scaling group. Each instance
  5784  // is terminated first and then replaced, which temporarily reduces the capacity
  5785  // available within your Auto Scaling group.
  5786  //
  5787  // This operation is part of the instance refresh feature (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-refresh.html)
  5788  // in Amazon EC2 Auto Scaling, which helps you update instances in your Auto
  5789  // Scaling group. This feature is helpful, for example, when you have a new
  5790  // AMI or a new user data script. You just need to create a new launch template
  5791  // that specifies the new AMI or user data script. Then start an instance refresh
  5792  // to immediately begin the process of updating instances in the group.
  5793  //
  5794  // If the call succeeds, it creates a new instance refresh request with a unique
  5795  // ID that you can use to track its progress. To query its status, call the
  5796  // DescribeInstanceRefreshes API. To describe the instance refreshes that have
  5797  // already run, call the DescribeInstanceRefreshes API. To cancel an instance
  5798  // refresh operation in progress, use the CancelInstanceRefresh API.
  5799  //
  5800  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5801  // with awserr.Error's Code and Message methods to get detailed information about
  5802  // the error.
  5803  //
  5804  // See the AWS API reference guide for Auto Scaling's
  5805  // API operation StartInstanceRefresh for usage and error information.
  5806  //
  5807  // Returned Error Codes:
  5808  //   * ErrCodeLimitExceededFault "LimitExceeded"
  5809  //   You have already reached a limit for your Amazon EC2 Auto Scaling resources
  5810  //   (for example, Auto Scaling groups, launch configurations, or lifecycle hooks).
  5811  //   For more information, see DescribeAccountLimits (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeAccountLimits.html)
  5812  //   in the Amazon EC2 Auto Scaling API Reference.
  5813  //
  5814  //   * ErrCodeResourceContentionFault "ResourceContention"
  5815  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5816  //   (for example, an Auto Scaling group, instance, or load balancer).
  5817  //
  5818  //   * ErrCodeInstanceRefreshInProgressFault "InstanceRefreshInProgress"
  5819  //   The request failed because an active instance refresh operation already exists
  5820  //   for the specified Auto Scaling group.
  5821  //
  5822  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/StartInstanceRefresh
  5823  func (c *AutoScaling) StartInstanceRefresh(input *StartInstanceRefreshInput) (*StartInstanceRefreshOutput, error) {
  5824  	req, out := c.StartInstanceRefreshRequest(input)
  5825  	return out, req.Send()
  5826  }
  5827  
  5828  // StartInstanceRefreshWithContext is the same as StartInstanceRefresh with the addition of
  5829  // the ability to pass a context and additional request options.
  5830  //
  5831  // See StartInstanceRefresh for details on how to use this API operation.
  5832  //
  5833  // The context must be non-nil and will be used for request cancellation. If
  5834  // the context is nil a panic will occur. In the future the SDK may create
  5835  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5836  // for more information on using Contexts.
  5837  func (c *AutoScaling) StartInstanceRefreshWithContext(ctx aws.Context, input *StartInstanceRefreshInput, opts ...request.Option) (*StartInstanceRefreshOutput, error) {
  5838  	req, out := c.StartInstanceRefreshRequest(input)
  5839  	req.SetContext(ctx)
  5840  	req.ApplyOptions(opts...)
  5841  	return out, req.Send()
  5842  }
  5843  
  5844  const opSuspendProcesses = "SuspendProcesses"
  5845  
  5846  // SuspendProcessesRequest generates a "aws/request.Request" representing the
  5847  // client's request for the SuspendProcesses operation. The "output" return
  5848  // value will be populated with the request's response once the request completes
  5849  // successfully.
  5850  //
  5851  // Use "Send" method on the returned Request to send the API call to the service.
  5852  // the "output" return value is not valid until after Send returns without error.
  5853  //
  5854  // See SuspendProcesses for more information on using the SuspendProcesses
  5855  // API call, and error handling.
  5856  //
  5857  // This method is useful when you want to inject custom logic or configuration
  5858  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5859  //
  5860  //
  5861  //    // Example sending a request using the SuspendProcessesRequest method.
  5862  //    req, resp := client.SuspendProcessesRequest(params)
  5863  //
  5864  //    err := req.Send()
  5865  //    if err == nil { // resp is now filled
  5866  //        fmt.Println(resp)
  5867  //    }
  5868  //
  5869  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SuspendProcesses
  5870  func (c *AutoScaling) SuspendProcessesRequest(input *ScalingProcessQuery) (req *request.Request, output *SuspendProcessesOutput) {
  5871  	op := &request.Operation{
  5872  		Name:       opSuspendProcesses,
  5873  		HTTPMethod: "POST",
  5874  		HTTPPath:   "/",
  5875  	}
  5876  
  5877  	if input == nil {
  5878  		input = &ScalingProcessQuery{}
  5879  	}
  5880  
  5881  	output = &SuspendProcessesOutput{}
  5882  	req = c.newRequest(op, input, output)
  5883  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5884  	return
  5885  }
  5886  
  5887  // SuspendProcesses API operation for Auto Scaling.
  5888  //
  5889  // Suspends the specified auto scaling processes, or all processes, for the
  5890  // specified Auto Scaling group.
  5891  //
  5892  // If you suspend either the Launch or Terminate process types, it can prevent
  5893  // other process types from functioning properly. For more information, see
  5894  // Suspending and resuming scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html)
  5895  // in the Amazon EC2 Auto Scaling User Guide.
  5896  //
  5897  // To resume processes that have been suspended, call the ResumeProcesses API.
  5898  //
  5899  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5900  // with awserr.Error's Code and Message methods to get detailed information about
  5901  // the error.
  5902  //
  5903  // See the AWS API reference guide for Auto Scaling's
  5904  // API operation SuspendProcesses for usage and error information.
  5905  //
  5906  // Returned Error Codes:
  5907  //   * ErrCodeResourceInUseFault "ResourceInUse"
  5908  //   The operation can't be performed because the resource is in use.
  5909  //
  5910  //   * ErrCodeResourceContentionFault "ResourceContention"
  5911  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  5912  //   (for example, an Auto Scaling group, instance, or load balancer).
  5913  //
  5914  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SuspendProcesses
  5915  func (c *AutoScaling) SuspendProcesses(input *ScalingProcessQuery) (*SuspendProcessesOutput, error) {
  5916  	req, out := c.SuspendProcessesRequest(input)
  5917  	return out, req.Send()
  5918  }
  5919  
  5920  // SuspendProcessesWithContext is the same as SuspendProcesses with the addition of
  5921  // the ability to pass a context and additional request options.
  5922  //
  5923  // See SuspendProcesses for details on how to use this API operation.
  5924  //
  5925  // The context must be non-nil and will be used for request cancellation. If
  5926  // the context is nil a panic will occur. In the future the SDK may create
  5927  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5928  // for more information on using Contexts.
  5929  func (c *AutoScaling) SuspendProcessesWithContext(ctx aws.Context, input *ScalingProcessQuery, opts ...request.Option) (*SuspendProcessesOutput, error) {
  5930  	req, out := c.SuspendProcessesRequest(input)
  5931  	req.SetContext(ctx)
  5932  	req.ApplyOptions(opts...)
  5933  	return out, req.Send()
  5934  }
  5935  
  5936  const opTerminateInstanceInAutoScalingGroup = "TerminateInstanceInAutoScalingGroup"
  5937  
  5938  // TerminateInstanceInAutoScalingGroupRequest generates a "aws/request.Request" representing the
  5939  // client's request for the TerminateInstanceInAutoScalingGroup operation. The "output" return
  5940  // value will be populated with the request's response once the request completes
  5941  // successfully.
  5942  //
  5943  // Use "Send" method on the returned Request to send the API call to the service.
  5944  // the "output" return value is not valid until after Send returns without error.
  5945  //
  5946  // See TerminateInstanceInAutoScalingGroup for more information on using the TerminateInstanceInAutoScalingGroup
  5947  // API call, and error handling.
  5948  //
  5949  // This method is useful when you want to inject custom logic or configuration
  5950  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5951  //
  5952  //
  5953  //    // Example sending a request using the TerminateInstanceInAutoScalingGroupRequest method.
  5954  //    req, resp := client.TerminateInstanceInAutoScalingGroupRequest(params)
  5955  //
  5956  //    err := req.Send()
  5957  //    if err == nil { // resp is now filled
  5958  //        fmt.Println(resp)
  5959  //    }
  5960  //
  5961  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TerminateInstanceInAutoScalingGroup
  5962  func (c *AutoScaling) TerminateInstanceInAutoScalingGroupRequest(input *TerminateInstanceInAutoScalingGroupInput) (req *request.Request, output *TerminateInstanceInAutoScalingGroupOutput) {
  5963  	op := &request.Operation{
  5964  		Name:       opTerminateInstanceInAutoScalingGroup,
  5965  		HTTPMethod: "POST",
  5966  		HTTPPath:   "/",
  5967  	}
  5968  
  5969  	if input == nil {
  5970  		input = &TerminateInstanceInAutoScalingGroupInput{}
  5971  	}
  5972  
  5973  	output = &TerminateInstanceInAutoScalingGroupOutput{}
  5974  	req = c.newRequest(op, input, output)
  5975  	return
  5976  }
  5977  
  5978  // TerminateInstanceInAutoScalingGroup API operation for Auto Scaling.
  5979  //
  5980  // Terminates the specified instance and optionally adjusts the desired group
  5981  // size. This operation cannot be called on instances in a warm pool.
  5982  //
  5983  // This call simply makes a termination request. The instance is not terminated
  5984  // immediately. When an instance is terminated, the instance status changes
  5985  // to terminated. You can't connect to or start an instance after you've terminated
  5986  // it.
  5987  //
  5988  // If you do not specify the option to decrement the desired capacity, Amazon
  5989  // EC2 Auto Scaling launches instances to replace the ones that are terminated.
  5990  //
  5991  // By default, Amazon EC2 Auto Scaling balances instances across all Availability
  5992  // Zones. If you decrement the desired capacity, your Auto Scaling group can
  5993  // become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries
  5994  // to rebalance the group, and rebalancing might terminate instances in other
  5995  // zones. For more information, see Rebalancing activities (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage)
  5996  // in the Amazon EC2 Auto Scaling User Guide.
  5997  //
  5998  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5999  // with awserr.Error's Code and Message methods to get detailed information about
  6000  // the error.
  6001  //
  6002  // See the AWS API reference guide for Auto Scaling's
  6003  // API operation TerminateInstanceInAutoScalingGroup for usage and error information.
  6004  //
  6005  // Returned Error Codes:
  6006  //   * ErrCodeScalingActivityInProgressFault "ScalingActivityInProgress"
  6007  //   The operation can't be performed because there are scaling activities in
  6008  //   progress.
  6009  //
  6010  //   * ErrCodeResourceContentionFault "ResourceContention"
  6011  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  6012  //   (for example, an Auto Scaling group, instance, or load balancer).
  6013  //
  6014  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TerminateInstanceInAutoScalingGroup
  6015  func (c *AutoScaling) TerminateInstanceInAutoScalingGroup(input *TerminateInstanceInAutoScalingGroupInput) (*TerminateInstanceInAutoScalingGroupOutput, error) {
  6016  	req, out := c.TerminateInstanceInAutoScalingGroupRequest(input)
  6017  	return out, req.Send()
  6018  }
  6019  
  6020  // TerminateInstanceInAutoScalingGroupWithContext is the same as TerminateInstanceInAutoScalingGroup with the addition of
  6021  // the ability to pass a context and additional request options.
  6022  //
  6023  // See TerminateInstanceInAutoScalingGroup for details on how to use this API operation.
  6024  //
  6025  // The context must be non-nil and will be used for request cancellation. If
  6026  // the context is nil a panic will occur. In the future the SDK may create
  6027  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6028  // for more information on using Contexts.
  6029  func (c *AutoScaling) TerminateInstanceInAutoScalingGroupWithContext(ctx aws.Context, input *TerminateInstanceInAutoScalingGroupInput, opts ...request.Option) (*TerminateInstanceInAutoScalingGroupOutput, error) {
  6030  	req, out := c.TerminateInstanceInAutoScalingGroupRequest(input)
  6031  	req.SetContext(ctx)
  6032  	req.ApplyOptions(opts...)
  6033  	return out, req.Send()
  6034  }
  6035  
  6036  const opUpdateAutoScalingGroup = "UpdateAutoScalingGroup"
  6037  
  6038  // UpdateAutoScalingGroupRequest generates a "aws/request.Request" representing the
  6039  // client's request for the UpdateAutoScalingGroup operation. The "output" return
  6040  // value will be populated with the request's response once the request completes
  6041  // successfully.
  6042  //
  6043  // Use "Send" method on the returned Request to send the API call to the service.
  6044  // the "output" return value is not valid until after Send returns without error.
  6045  //
  6046  // See UpdateAutoScalingGroup for more information on using the UpdateAutoScalingGroup
  6047  // API call, and error handling.
  6048  //
  6049  // This method is useful when you want to inject custom logic or configuration
  6050  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6051  //
  6052  //
  6053  //    // Example sending a request using the UpdateAutoScalingGroupRequest method.
  6054  //    req, resp := client.UpdateAutoScalingGroupRequest(params)
  6055  //
  6056  //    err := req.Send()
  6057  //    if err == nil { // resp is now filled
  6058  //        fmt.Println(resp)
  6059  //    }
  6060  //
  6061  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroup
  6062  func (c *AutoScaling) UpdateAutoScalingGroupRequest(input *UpdateAutoScalingGroupInput) (req *request.Request, output *UpdateAutoScalingGroupOutput) {
  6063  	op := &request.Operation{
  6064  		Name:       opUpdateAutoScalingGroup,
  6065  		HTTPMethod: "POST",
  6066  		HTTPPath:   "/",
  6067  	}
  6068  
  6069  	if input == nil {
  6070  		input = &UpdateAutoScalingGroupInput{}
  6071  	}
  6072  
  6073  	output = &UpdateAutoScalingGroupOutput{}
  6074  	req = c.newRequest(op, input, output)
  6075  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6076  	return
  6077  }
  6078  
  6079  // UpdateAutoScalingGroup API operation for Auto Scaling.
  6080  //
  6081  // We strongly recommend that all Auto Scaling groups use launch templates to
  6082  // ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.
  6083  //
  6084  // Updates the configuration for the specified Auto Scaling group.
  6085  //
  6086  // To update an Auto Scaling group, specify the name of the group and the parameter
  6087  // that you want to change. Any parameters that you don't specify are not changed
  6088  // by this update request. The new settings take effect on any scaling activities
  6089  // after this call returns.
  6090  //
  6091  // If you associate a new launch configuration or template with an Auto Scaling
  6092  // group, all new instances will get the updated configuration. Existing instances
  6093  // continue to run with the configuration that they were originally launched
  6094  // with. When you update a group to specify a mixed instances policy instead
  6095  // of a launch configuration or template, existing instances may be replaced
  6096  // to match the new purchasing options that you specified in the policy. For
  6097  // example, if the group currently has 100% On-Demand capacity and the policy
  6098  // specifies 50% Spot capacity, this means that half of your instances will
  6099  // be gradually terminated and relaunched as Spot Instances. When replacing
  6100  // instances, Amazon EC2 Auto Scaling launches new instances before terminating
  6101  // the old ones, so that updating your group does not compromise the performance
  6102  // or availability of your application.
  6103  //
  6104  // Note the following about changing DesiredCapacity, MaxSize, or MinSize:
  6105  //
  6106  //    * If a scale-in activity occurs as a result of a new DesiredCapacity value
  6107  //    that is lower than the current size of the group, the Auto Scaling group
  6108  //    uses its termination policy to determine which instances to terminate.
  6109  //
  6110  //    * If you specify a new value for MinSize without specifying a value for
  6111  //    DesiredCapacity, and the new MinSize is larger than the current size of
  6112  //    the group, this sets the group's DesiredCapacity to the new MinSize value.
  6113  //
  6114  //    * If you specify a new value for MaxSize without specifying a value for
  6115  //    DesiredCapacity, and the new MaxSize is smaller than the current size
  6116  //    of the group, this sets the group's DesiredCapacity to the new MaxSize
  6117  //    value.
  6118  //
  6119  // To see which parameters have been set, call the DescribeAutoScalingGroups
  6120  // API. To view the scaling policies for an Auto Scaling group, call the DescribePolicies
  6121  // API. If the group has scaling policies, you can update them by calling the
  6122  // PutScalingPolicy API.
  6123  //
  6124  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6125  // with awserr.Error's Code and Message methods to get detailed information about
  6126  // the error.
  6127  //
  6128  // See the AWS API reference guide for Auto Scaling's
  6129  // API operation UpdateAutoScalingGroup for usage and error information.
  6130  //
  6131  // Returned Error Codes:
  6132  //   * ErrCodeScalingActivityInProgressFault "ScalingActivityInProgress"
  6133  //   The operation can't be performed because there are scaling activities in
  6134  //   progress.
  6135  //
  6136  //   * ErrCodeResourceContentionFault "ResourceContention"
  6137  //   You already have a pending update to an Amazon EC2 Auto Scaling resource
  6138  //   (for example, an Auto Scaling group, instance, or load balancer).
  6139  //
  6140  //   * ErrCodeServiceLinkedRoleFailure "ServiceLinkedRoleFailure"
  6141  //   The service-linked role is not yet ready for use.
  6142  //
  6143  // See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroup
  6144  func (c *AutoScaling) UpdateAutoScalingGroup(input *UpdateAutoScalingGroupInput) (*UpdateAutoScalingGroupOutput, error) {
  6145  	req, out := c.UpdateAutoScalingGroupRequest(input)
  6146  	return out, req.Send()
  6147  }
  6148  
  6149  // UpdateAutoScalingGroupWithContext is the same as UpdateAutoScalingGroup with the addition of
  6150  // the ability to pass a context and additional request options.
  6151  //
  6152  // See UpdateAutoScalingGroup for details on how to use this API operation.
  6153  //
  6154  // The context must be non-nil and will be used for request cancellation. If
  6155  // the context is nil a panic will occur. In the future the SDK may create
  6156  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6157  // for more information on using Contexts.
  6158  func (c *AutoScaling) UpdateAutoScalingGroupWithContext(ctx aws.Context, input *UpdateAutoScalingGroupInput, opts ...request.Option) (*UpdateAutoScalingGroupOutput, error) {
  6159  	req, out := c.UpdateAutoScalingGroupRequest(input)
  6160  	req.SetContext(ctx)
  6161  	req.ApplyOptions(opts...)
  6162  	return out, req.Send()
  6163  }
  6164  
  6165  // Describes scaling activity, which is a long-running process that represents
  6166  // a change to your Auto Scaling group, such as changing its size or replacing
  6167  // an instance.
  6168  type Activity struct {
  6169  	_ struct{} `type:"structure"`
  6170  
  6171  	// The ID of the activity.
  6172  	//
  6173  	// ActivityId is a required field
  6174  	ActivityId *string `type:"string" required:"true"`
  6175  
  6176  	// The Amazon Resource Name (ARN) of the Auto Scaling group.
  6177  	AutoScalingGroupARN *string `min:"1" type:"string"`
  6178  
  6179  	// The name of the Auto Scaling group.
  6180  	//
  6181  	// AutoScalingGroupName is a required field
  6182  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6183  
  6184  	// The state of the Auto Scaling group, which is either InService or Deleted.
  6185  	AutoScalingGroupState *string `min:"1" type:"string"`
  6186  
  6187  	// The reason the activity began.
  6188  	//
  6189  	// Cause is a required field
  6190  	Cause *string `min:"1" type:"string" required:"true"`
  6191  
  6192  	// A friendly, more verbose description of the activity.
  6193  	Description *string `type:"string"`
  6194  
  6195  	// The details about the activity.
  6196  	Details *string `type:"string"`
  6197  
  6198  	// The end time of the activity.
  6199  	EndTime *time.Time `type:"timestamp"`
  6200  
  6201  	// A value between 0 and 100 that indicates the progress of the activity.
  6202  	Progress *int64 `type:"integer"`
  6203  
  6204  	// The start time of the activity.
  6205  	//
  6206  	// StartTime is a required field
  6207  	StartTime *time.Time `type:"timestamp" required:"true"`
  6208  
  6209  	// The current status of the activity.
  6210  	//
  6211  	// StatusCode is a required field
  6212  	StatusCode *string `type:"string" required:"true" enum:"ScalingActivityStatusCode"`
  6213  
  6214  	// A friendly, more verbose description of the activity status.
  6215  	StatusMessage *string `min:"1" type:"string"`
  6216  }
  6217  
  6218  // String returns the string representation.
  6219  //
  6220  // API parameter values that are decorated as "sensitive" in the API will not
  6221  // be included in the string output. The member name will be present, but the
  6222  // value will be replaced with "sensitive".
  6223  func (s Activity) String() string {
  6224  	return awsutil.Prettify(s)
  6225  }
  6226  
  6227  // GoString returns the string representation.
  6228  //
  6229  // API parameter values that are decorated as "sensitive" in the API will not
  6230  // be included in the string output. The member name will be present, but the
  6231  // value will be replaced with "sensitive".
  6232  func (s Activity) GoString() string {
  6233  	return s.String()
  6234  }
  6235  
  6236  // SetActivityId sets the ActivityId field's value.
  6237  func (s *Activity) SetActivityId(v string) *Activity {
  6238  	s.ActivityId = &v
  6239  	return s
  6240  }
  6241  
  6242  // SetAutoScalingGroupARN sets the AutoScalingGroupARN field's value.
  6243  func (s *Activity) SetAutoScalingGroupARN(v string) *Activity {
  6244  	s.AutoScalingGroupARN = &v
  6245  	return s
  6246  }
  6247  
  6248  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6249  func (s *Activity) SetAutoScalingGroupName(v string) *Activity {
  6250  	s.AutoScalingGroupName = &v
  6251  	return s
  6252  }
  6253  
  6254  // SetAutoScalingGroupState sets the AutoScalingGroupState field's value.
  6255  func (s *Activity) SetAutoScalingGroupState(v string) *Activity {
  6256  	s.AutoScalingGroupState = &v
  6257  	return s
  6258  }
  6259  
  6260  // SetCause sets the Cause field's value.
  6261  func (s *Activity) SetCause(v string) *Activity {
  6262  	s.Cause = &v
  6263  	return s
  6264  }
  6265  
  6266  // SetDescription sets the Description field's value.
  6267  func (s *Activity) SetDescription(v string) *Activity {
  6268  	s.Description = &v
  6269  	return s
  6270  }
  6271  
  6272  // SetDetails sets the Details field's value.
  6273  func (s *Activity) SetDetails(v string) *Activity {
  6274  	s.Details = &v
  6275  	return s
  6276  }
  6277  
  6278  // SetEndTime sets the EndTime field's value.
  6279  func (s *Activity) SetEndTime(v time.Time) *Activity {
  6280  	s.EndTime = &v
  6281  	return s
  6282  }
  6283  
  6284  // SetProgress sets the Progress field's value.
  6285  func (s *Activity) SetProgress(v int64) *Activity {
  6286  	s.Progress = &v
  6287  	return s
  6288  }
  6289  
  6290  // SetStartTime sets the StartTime field's value.
  6291  func (s *Activity) SetStartTime(v time.Time) *Activity {
  6292  	s.StartTime = &v
  6293  	return s
  6294  }
  6295  
  6296  // SetStatusCode sets the StatusCode field's value.
  6297  func (s *Activity) SetStatusCode(v string) *Activity {
  6298  	s.StatusCode = &v
  6299  	return s
  6300  }
  6301  
  6302  // SetStatusMessage sets the StatusMessage field's value.
  6303  func (s *Activity) SetStatusMessage(v string) *Activity {
  6304  	s.StatusMessage = &v
  6305  	return s
  6306  }
  6307  
  6308  // Describes a policy adjustment type.
  6309  type AdjustmentType struct {
  6310  	_ struct{} `type:"structure"`
  6311  
  6312  	// The policy adjustment type. The valid values are ChangeInCapacity, ExactCapacity,
  6313  	// and PercentChangeInCapacity.
  6314  	AdjustmentType *string `min:"1" type:"string"`
  6315  }
  6316  
  6317  // String returns the string representation.
  6318  //
  6319  // API parameter values that are decorated as "sensitive" in the API will not
  6320  // be included in the string output. The member name will be present, but the
  6321  // value will be replaced with "sensitive".
  6322  func (s AdjustmentType) String() string {
  6323  	return awsutil.Prettify(s)
  6324  }
  6325  
  6326  // GoString returns the string representation.
  6327  //
  6328  // API parameter values that are decorated as "sensitive" in the API will not
  6329  // be included in the string output. The member name will be present, but the
  6330  // value will be replaced with "sensitive".
  6331  func (s AdjustmentType) GoString() string {
  6332  	return s.String()
  6333  }
  6334  
  6335  // SetAdjustmentType sets the AdjustmentType field's value.
  6336  func (s *AdjustmentType) SetAdjustmentType(v string) *AdjustmentType {
  6337  	s.AdjustmentType = &v
  6338  	return s
  6339  }
  6340  
  6341  // Describes an alarm.
  6342  type Alarm struct {
  6343  	_ struct{} `type:"structure"`
  6344  
  6345  	// The Amazon Resource Name (ARN) of the alarm.
  6346  	AlarmARN *string `min:"1" type:"string"`
  6347  
  6348  	// The name of the alarm.
  6349  	AlarmName *string `min:"1" type:"string"`
  6350  }
  6351  
  6352  // String returns the string representation.
  6353  //
  6354  // API parameter values that are decorated as "sensitive" in the API will not
  6355  // be included in the string output. The member name will be present, but the
  6356  // value will be replaced with "sensitive".
  6357  func (s Alarm) String() string {
  6358  	return awsutil.Prettify(s)
  6359  }
  6360  
  6361  // GoString returns the string representation.
  6362  //
  6363  // API parameter values that are decorated as "sensitive" in the API will not
  6364  // be included in the string output. The member name will be present, but the
  6365  // value will be replaced with "sensitive".
  6366  func (s Alarm) GoString() string {
  6367  	return s.String()
  6368  }
  6369  
  6370  // SetAlarmARN sets the AlarmARN field's value.
  6371  func (s *Alarm) SetAlarmARN(v string) *Alarm {
  6372  	s.AlarmARN = &v
  6373  	return s
  6374  }
  6375  
  6376  // SetAlarmName sets the AlarmName field's value.
  6377  func (s *Alarm) SetAlarmName(v string) *Alarm {
  6378  	s.AlarmName = &v
  6379  	return s
  6380  }
  6381  
  6382  type AttachInstancesInput struct {
  6383  	_ struct{} `type:"structure"`
  6384  
  6385  	// The name of the Auto Scaling group.
  6386  	//
  6387  	// AutoScalingGroupName is a required field
  6388  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6389  
  6390  	// The IDs of the instances. You can specify up to 20 instances.
  6391  	InstanceIds []*string `type:"list"`
  6392  }
  6393  
  6394  // String returns the string representation.
  6395  //
  6396  // API parameter values that are decorated as "sensitive" in the API will not
  6397  // be included in the string output. The member name will be present, but the
  6398  // value will be replaced with "sensitive".
  6399  func (s AttachInstancesInput) String() string {
  6400  	return awsutil.Prettify(s)
  6401  }
  6402  
  6403  // GoString returns the string representation.
  6404  //
  6405  // API parameter values that are decorated as "sensitive" in the API will not
  6406  // be included in the string output. The member name will be present, but the
  6407  // value will be replaced with "sensitive".
  6408  func (s AttachInstancesInput) GoString() string {
  6409  	return s.String()
  6410  }
  6411  
  6412  // Validate inspects the fields of the type to determine if they are valid.
  6413  func (s *AttachInstancesInput) Validate() error {
  6414  	invalidParams := request.ErrInvalidParams{Context: "AttachInstancesInput"}
  6415  	if s.AutoScalingGroupName == nil {
  6416  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  6417  	}
  6418  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  6419  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  6420  	}
  6421  
  6422  	if invalidParams.Len() > 0 {
  6423  		return invalidParams
  6424  	}
  6425  	return nil
  6426  }
  6427  
  6428  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6429  func (s *AttachInstancesInput) SetAutoScalingGroupName(v string) *AttachInstancesInput {
  6430  	s.AutoScalingGroupName = &v
  6431  	return s
  6432  }
  6433  
  6434  // SetInstanceIds sets the InstanceIds field's value.
  6435  func (s *AttachInstancesInput) SetInstanceIds(v []*string) *AttachInstancesInput {
  6436  	s.InstanceIds = v
  6437  	return s
  6438  }
  6439  
  6440  type AttachInstancesOutput struct {
  6441  	_ struct{} `type:"structure"`
  6442  }
  6443  
  6444  // String returns the string representation.
  6445  //
  6446  // API parameter values that are decorated as "sensitive" in the API will not
  6447  // be included in the string output. The member name will be present, but the
  6448  // value will be replaced with "sensitive".
  6449  func (s AttachInstancesOutput) String() string {
  6450  	return awsutil.Prettify(s)
  6451  }
  6452  
  6453  // GoString returns the string representation.
  6454  //
  6455  // API parameter values that are decorated as "sensitive" in the API will not
  6456  // be included in the string output. The member name will be present, but the
  6457  // value will be replaced with "sensitive".
  6458  func (s AttachInstancesOutput) GoString() string {
  6459  	return s.String()
  6460  }
  6461  
  6462  type AttachLoadBalancerTargetGroupsInput struct {
  6463  	_ struct{} `type:"structure"`
  6464  
  6465  	// The name of the Auto Scaling group.
  6466  	//
  6467  	// AutoScalingGroupName is a required field
  6468  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6469  
  6470  	// The Amazon Resource Names (ARN) of the target groups. You can specify up
  6471  	// to 10 target groups. To get the ARN of a target group, use the Elastic Load
  6472  	// Balancing DescribeTargetGroups (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)
  6473  	// API operation.
  6474  	//
  6475  	// TargetGroupARNs is a required field
  6476  	TargetGroupARNs []*string `type:"list" required:"true"`
  6477  }
  6478  
  6479  // String returns the string representation.
  6480  //
  6481  // API parameter values that are decorated as "sensitive" in the API will not
  6482  // be included in the string output. The member name will be present, but the
  6483  // value will be replaced with "sensitive".
  6484  func (s AttachLoadBalancerTargetGroupsInput) String() string {
  6485  	return awsutil.Prettify(s)
  6486  }
  6487  
  6488  // GoString returns the string representation.
  6489  //
  6490  // API parameter values that are decorated as "sensitive" in the API will not
  6491  // be included in the string output. The member name will be present, but the
  6492  // value will be replaced with "sensitive".
  6493  func (s AttachLoadBalancerTargetGroupsInput) GoString() string {
  6494  	return s.String()
  6495  }
  6496  
  6497  // Validate inspects the fields of the type to determine if they are valid.
  6498  func (s *AttachLoadBalancerTargetGroupsInput) Validate() error {
  6499  	invalidParams := request.ErrInvalidParams{Context: "AttachLoadBalancerTargetGroupsInput"}
  6500  	if s.AutoScalingGroupName == nil {
  6501  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  6502  	}
  6503  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  6504  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  6505  	}
  6506  	if s.TargetGroupARNs == nil {
  6507  		invalidParams.Add(request.NewErrParamRequired("TargetGroupARNs"))
  6508  	}
  6509  
  6510  	if invalidParams.Len() > 0 {
  6511  		return invalidParams
  6512  	}
  6513  	return nil
  6514  }
  6515  
  6516  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6517  func (s *AttachLoadBalancerTargetGroupsInput) SetAutoScalingGroupName(v string) *AttachLoadBalancerTargetGroupsInput {
  6518  	s.AutoScalingGroupName = &v
  6519  	return s
  6520  }
  6521  
  6522  // SetTargetGroupARNs sets the TargetGroupARNs field's value.
  6523  func (s *AttachLoadBalancerTargetGroupsInput) SetTargetGroupARNs(v []*string) *AttachLoadBalancerTargetGroupsInput {
  6524  	s.TargetGroupARNs = v
  6525  	return s
  6526  }
  6527  
  6528  type AttachLoadBalancerTargetGroupsOutput struct {
  6529  	_ struct{} `type:"structure"`
  6530  }
  6531  
  6532  // String returns the string representation.
  6533  //
  6534  // API parameter values that are decorated as "sensitive" in the API will not
  6535  // be included in the string output. The member name will be present, but the
  6536  // value will be replaced with "sensitive".
  6537  func (s AttachLoadBalancerTargetGroupsOutput) String() string {
  6538  	return awsutil.Prettify(s)
  6539  }
  6540  
  6541  // GoString returns the string representation.
  6542  //
  6543  // API parameter values that are decorated as "sensitive" in the API will not
  6544  // be included in the string output. The member name will be present, but the
  6545  // value will be replaced with "sensitive".
  6546  func (s AttachLoadBalancerTargetGroupsOutput) GoString() string {
  6547  	return s.String()
  6548  }
  6549  
  6550  type AttachLoadBalancersInput struct {
  6551  	_ struct{} `type:"structure"`
  6552  
  6553  	// The name of the Auto Scaling group.
  6554  	//
  6555  	// AutoScalingGroupName is a required field
  6556  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6557  
  6558  	// The names of the load balancers. You can specify up to 10 load balancers.
  6559  	//
  6560  	// LoadBalancerNames is a required field
  6561  	LoadBalancerNames []*string `type:"list" required:"true"`
  6562  }
  6563  
  6564  // String returns the string representation.
  6565  //
  6566  // API parameter values that are decorated as "sensitive" in the API will not
  6567  // be included in the string output. The member name will be present, but the
  6568  // value will be replaced with "sensitive".
  6569  func (s AttachLoadBalancersInput) String() string {
  6570  	return awsutil.Prettify(s)
  6571  }
  6572  
  6573  // GoString returns the string representation.
  6574  //
  6575  // API parameter values that are decorated as "sensitive" in the API will not
  6576  // be included in the string output. The member name will be present, but the
  6577  // value will be replaced with "sensitive".
  6578  func (s AttachLoadBalancersInput) GoString() string {
  6579  	return s.String()
  6580  }
  6581  
  6582  // Validate inspects the fields of the type to determine if they are valid.
  6583  func (s *AttachLoadBalancersInput) Validate() error {
  6584  	invalidParams := request.ErrInvalidParams{Context: "AttachLoadBalancersInput"}
  6585  	if s.AutoScalingGroupName == nil {
  6586  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  6587  	}
  6588  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  6589  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  6590  	}
  6591  	if s.LoadBalancerNames == nil {
  6592  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerNames"))
  6593  	}
  6594  
  6595  	if invalidParams.Len() > 0 {
  6596  		return invalidParams
  6597  	}
  6598  	return nil
  6599  }
  6600  
  6601  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6602  func (s *AttachLoadBalancersInput) SetAutoScalingGroupName(v string) *AttachLoadBalancersInput {
  6603  	s.AutoScalingGroupName = &v
  6604  	return s
  6605  }
  6606  
  6607  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
  6608  func (s *AttachLoadBalancersInput) SetLoadBalancerNames(v []*string) *AttachLoadBalancersInput {
  6609  	s.LoadBalancerNames = v
  6610  	return s
  6611  }
  6612  
  6613  type AttachLoadBalancersOutput struct {
  6614  	_ struct{} `type:"structure"`
  6615  }
  6616  
  6617  // String returns the string representation.
  6618  //
  6619  // API parameter values that are decorated as "sensitive" in the API will not
  6620  // be included in the string output. The member name will be present, but the
  6621  // value will be replaced with "sensitive".
  6622  func (s AttachLoadBalancersOutput) String() string {
  6623  	return awsutil.Prettify(s)
  6624  }
  6625  
  6626  // GoString returns the string representation.
  6627  //
  6628  // API parameter values that are decorated as "sensitive" in the API will not
  6629  // be included in the string output. The member name will be present, but the
  6630  // value will be replaced with "sensitive".
  6631  func (s AttachLoadBalancersOutput) GoString() string {
  6632  	return s.String()
  6633  }
  6634  
  6635  type BatchDeleteScheduledActionInput struct {
  6636  	_ struct{} `type:"structure"`
  6637  
  6638  	// The name of the Auto Scaling group.
  6639  	//
  6640  	// AutoScalingGroupName is a required field
  6641  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6642  
  6643  	// The names of the scheduled actions to delete. The maximum number allowed
  6644  	// is 50.
  6645  	//
  6646  	// ScheduledActionNames is a required field
  6647  	ScheduledActionNames []*string `type:"list" required:"true"`
  6648  }
  6649  
  6650  // String returns the string representation.
  6651  //
  6652  // API parameter values that are decorated as "sensitive" in the API will not
  6653  // be included in the string output. The member name will be present, but the
  6654  // value will be replaced with "sensitive".
  6655  func (s BatchDeleteScheduledActionInput) String() string {
  6656  	return awsutil.Prettify(s)
  6657  }
  6658  
  6659  // GoString returns the string representation.
  6660  //
  6661  // API parameter values that are decorated as "sensitive" in the API will not
  6662  // be included in the string output. The member name will be present, but the
  6663  // value will be replaced with "sensitive".
  6664  func (s BatchDeleteScheduledActionInput) GoString() string {
  6665  	return s.String()
  6666  }
  6667  
  6668  // Validate inspects the fields of the type to determine if they are valid.
  6669  func (s *BatchDeleteScheduledActionInput) Validate() error {
  6670  	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteScheduledActionInput"}
  6671  	if s.AutoScalingGroupName == nil {
  6672  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  6673  	}
  6674  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  6675  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  6676  	}
  6677  	if s.ScheduledActionNames == nil {
  6678  		invalidParams.Add(request.NewErrParamRequired("ScheduledActionNames"))
  6679  	}
  6680  
  6681  	if invalidParams.Len() > 0 {
  6682  		return invalidParams
  6683  	}
  6684  	return nil
  6685  }
  6686  
  6687  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6688  func (s *BatchDeleteScheduledActionInput) SetAutoScalingGroupName(v string) *BatchDeleteScheduledActionInput {
  6689  	s.AutoScalingGroupName = &v
  6690  	return s
  6691  }
  6692  
  6693  // SetScheduledActionNames sets the ScheduledActionNames field's value.
  6694  func (s *BatchDeleteScheduledActionInput) SetScheduledActionNames(v []*string) *BatchDeleteScheduledActionInput {
  6695  	s.ScheduledActionNames = v
  6696  	return s
  6697  }
  6698  
  6699  type BatchDeleteScheduledActionOutput struct {
  6700  	_ struct{} `type:"structure"`
  6701  
  6702  	// The names of the scheduled actions that could not be deleted, including an
  6703  	// error message.
  6704  	FailedScheduledActions []*FailedScheduledUpdateGroupActionRequest `type:"list"`
  6705  }
  6706  
  6707  // String returns the string representation.
  6708  //
  6709  // API parameter values that are decorated as "sensitive" in the API will not
  6710  // be included in the string output. The member name will be present, but the
  6711  // value will be replaced with "sensitive".
  6712  func (s BatchDeleteScheduledActionOutput) String() string {
  6713  	return awsutil.Prettify(s)
  6714  }
  6715  
  6716  // GoString returns the string representation.
  6717  //
  6718  // API parameter values that are decorated as "sensitive" in the API will not
  6719  // be included in the string output. The member name will be present, but the
  6720  // value will be replaced with "sensitive".
  6721  func (s BatchDeleteScheduledActionOutput) GoString() string {
  6722  	return s.String()
  6723  }
  6724  
  6725  // SetFailedScheduledActions sets the FailedScheduledActions field's value.
  6726  func (s *BatchDeleteScheduledActionOutput) SetFailedScheduledActions(v []*FailedScheduledUpdateGroupActionRequest) *BatchDeleteScheduledActionOutput {
  6727  	s.FailedScheduledActions = v
  6728  	return s
  6729  }
  6730  
  6731  type BatchPutScheduledUpdateGroupActionInput struct {
  6732  	_ struct{} `type:"structure"`
  6733  
  6734  	// The name of the Auto Scaling group.
  6735  	//
  6736  	// AutoScalingGroupName is a required field
  6737  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6738  
  6739  	// One or more scheduled actions. The maximum number allowed is 50.
  6740  	//
  6741  	// ScheduledUpdateGroupActions is a required field
  6742  	ScheduledUpdateGroupActions []*ScheduledUpdateGroupActionRequest `type:"list" required:"true"`
  6743  }
  6744  
  6745  // String returns the string representation.
  6746  //
  6747  // API parameter values that are decorated as "sensitive" in the API will not
  6748  // be included in the string output. The member name will be present, but the
  6749  // value will be replaced with "sensitive".
  6750  func (s BatchPutScheduledUpdateGroupActionInput) String() string {
  6751  	return awsutil.Prettify(s)
  6752  }
  6753  
  6754  // GoString returns the string representation.
  6755  //
  6756  // API parameter values that are decorated as "sensitive" in the API will not
  6757  // be included in the string output. The member name will be present, but the
  6758  // value will be replaced with "sensitive".
  6759  func (s BatchPutScheduledUpdateGroupActionInput) GoString() string {
  6760  	return s.String()
  6761  }
  6762  
  6763  // Validate inspects the fields of the type to determine if they are valid.
  6764  func (s *BatchPutScheduledUpdateGroupActionInput) Validate() error {
  6765  	invalidParams := request.ErrInvalidParams{Context: "BatchPutScheduledUpdateGroupActionInput"}
  6766  	if s.AutoScalingGroupName == nil {
  6767  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  6768  	}
  6769  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  6770  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  6771  	}
  6772  	if s.ScheduledUpdateGroupActions == nil {
  6773  		invalidParams.Add(request.NewErrParamRequired("ScheduledUpdateGroupActions"))
  6774  	}
  6775  	if s.ScheduledUpdateGroupActions != nil {
  6776  		for i, v := range s.ScheduledUpdateGroupActions {
  6777  			if v == nil {
  6778  				continue
  6779  			}
  6780  			if err := v.Validate(); err != nil {
  6781  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ScheduledUpdateGroupActions", i), err.(request.ErrInvalidParams))
  6782  			}
  6783  		}
  6784  	}
  6785  
  6786  	if invalidParams.Len() > 0 {
  6787  		return invalidParams
  6788  	}
  6789  	return nil
  6790  }
  6791  
  6792  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6793  func (s *BatchPutScheduledUpdateGroupActionInput) SetAutoScalingGroupName(v string) *BatchPutScheduledUpdateGroupActionInput {
  6794  	s.AutoScalingGroupName = &v
  6795  	return s
  6796  }
  6797  
  6798  // SetScheduledUpdateGroupActions sets the ScheduledUpdateGroupActions field's value.
  6799  func (s *BatchPutScheduledUpdateGroupActionInput) SetScheduledUpdateGroupActions(v []*ScheduledUpdateGroupActionRequest) *BatchPutScheduledUpdateGroupActionInput {
  6800  	s.ScheduledUpdateGroupActions = v
  6801  	return s
  6802  }
  6803  
  6804  type BatchPutScheduledUpdateGroupActionOutput struct {
  6805  	_ struct{} `type:"structure"`
  6806  
  6807  	// The names of the scheduled actions that could not be created or updated,
  6808  	// including an error message.
  6809  	FailedScheduledUpdateGroupActions []*FailedScheduledUpdateGroupActionRequest `type:"list"`
  6810  }
  6811  
  6812  // String returns the string representation.
  6813  //
  6814  // API parameter values that are decorated as "sensitive" in the API will not
  6815  // be included in the string output. The member name will be present, but the
  6816  // value will be replaced with "sensitive".
  6817  func (s BatchPutScheduledUpdateGroupActionOutput) String() string {
  6818  	return awsutil.Prettify(s)
  6819  }
  6820  
  6821  // GoString returns the string representation.
  6822  //
  6823  // API parameter values that are decorated as "sensitive" in the API will not
  6824  // be included in the string output. The member name will be present, but the
  6825  // value will be replaced with "sensitive".
  6826  func (s BatchPutScheduledUpdateGroupActionOutput) GoString() string {
  6827  	return s.String()
  6828  }
  6829  
  6830  // SetFailedScheduledUpdateGroupActions sets the FailedScheduledUpdateGroupActions field's value.
  6831  func (s *BatchPutScheduledUpdateGroupActionOutput) SetFailedScheduledUpdateGroupActions(v []*FailedScheduledUpdateGroupActionRequest) *BatchPutScheduledUpdateGroupActionOutput {
  6832  	s.FailedScheduledUpdateGroupActions = v
  6833  	return s
  6834  }
  6835  
  6836  // Describes a block device mapping.
  6837  type BlockDeviceMapping struct {
  6838  	_ struct{} `type:"structure"`
  6839  
  6840  	// The device name exposed to the EC2 instance (for example, /dev/sdh or xvdh).
  6841  	// For more information, see Device Naming on Linux Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html)
  6842  	// in the Amazon EC2 User Guide for Linux Instances.
  6843  	//
  6844  	// DeviceName is a required field
  6845  	DeviceName *string `min:"1" type:"string" required:"true"`
  6846  
  6847  	// Parameters used to automatically set up EBS volumes when an instance is launched.
  6848  	//
  6849  	// You can specify either VirtualName or Ebs, but not both.
  6850  	Ebs *Ebs `type:"structure"`
  6851  
  6852  	// Setting this value to true suppresses the specified device included in the
  6853  	// block device mapping of the AMI.
  6854  	//
  6855  	// If NoDevice is true for the root device, instances might fail the EC2 health
  6856  	// check. In that case, Amazon EC2 Auto Scaling launches replacement instances.
  6857  	//
  6858  	// If you specify NoDevice, you cannot specify Ebs.
  6859  	NoDevice *bool `type:"boolean"`
  6860  
  6861  	// The name of the virtual device (for example, ephemeral0).
  6862  	//
  6863  	// You can specify either VirtualName or Ebs, but not both.
  6864  	VirtualName *string `min:"1" type:"string"`
  6865  }
  6866  
  6867  // String returns the string representation.
  6868  //
  6869  // API parameter values that are decorated as "sensitive" in the API will not
  6870  // be included in the string output. The member name will be present, but the
  6871  // value will be replaced with "sensitive".
  6872  func (s BlockDeviceMapping) String() string {
  6873  	return awsutil.Prettify(s)
  6874  }
  6875  
  6876  // GoString returns the string representation.
  6877  //
  6878  // API parameter values that are decorated as "sensitive" in the API will not
  6879  // be included in the string output. The member name will be present, but the
  6880  // value will be replaced with "sensitive".
  6881  func (s BlockDeviceMapping) GoString() string {
  6882  	return s.String()
  6883  }
  6884  
  6885  // Validate inspects the fields of the type to determine if they are valid.
  6886  func (s *BlockDeviceMapping) Validate() error {
  6887  	invalidParams := request.ErrInvalidParams{Context: "BlockDeviceMapping"}
  6888  	if s.DeviceName == nil {
  6889  		invalidParams.Add(request.NewErrParamRequired("DeviceName"))
  6890  	}
  6891  	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
  6892  		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
  6893  	}
  6894  	if s.VirtualName != nil && len(*s.VirtualName) < 1 {
  6895  		invalidParams.Add(request.NewErrParamMinLen("VirtualName", 1))
  6896  	}
  6897  	if s.Ebs != nil {
  6898  		if err := s.Ebs.Validate(); err != nil {
  6899  			invalidParams.AddNested("Ebs", err.(request.ErrInvalidParams))
  6900  		}
  6901  	}
  6902  
  6903  	if invalidParams.Len() > 0 {
  6904  		return invalidParams
  6905  	}
  6906  	return nil
  6907  }
  6908  
  6909  // SetDeviceName sets the DeviceName field's value.
  6910  func (s *BlockDeviceMapping) SetDeviceName(v string) *BlockDeviceMapping {
  6911  	s.DeviceName = &v
  6912  	return s
  6913  }
  6914  
  6915  // SetEbs sets the Ebs field's value.
  6916  func (s *BlockDeviceMapping) SetEbs(v *Ebs) *BlockDeviceMapping {
  6917  	s.Ebs = v
  6918  	return s
  6919  }
  6920  
  6921  // SetNoDevice sets the NoDevice field's value.
  6922  func (s *BlockDeviceMapping) SetNoDevice(v bool) *BlockDeviceMapping {
  6923  	s.NoDevice = &v
  6924  	return s
  6925  }
  6926  
  6927  // SetVirtualName sets the VirtualName field's value.
  6928  func (s *BlockDeviceMapping) SetVirtualName(v string) *BlockDeviceMapping {
  6929  	s.VirtualName = &v
  6930  	return s
  6931  }
  6932  
  6933  type CancelInstanceRefreshInput struct {
  6934  	_ struct{} `type:"structure"`
  6935  
  6936  	// The name of the Auto Scaling group.
  6937  	//
  6938  	// AutoScalingGroupName is a required field
  6939  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  6940  }
  6941  
  6942  // String returns the string representation.
  6943  //
  6944  // API parameter values that are decorated as "sensitive" in the API will not
  6945  // be included in the string output. The member name will be present, but the
  6946  // value will be replaced with "sensitive".
  6947  func (s CancelInstanceRefreshInput) String() string {
  6948  	return awsutil.Prettify(s)
  6949  }
  6950  
  6951  // GoString returns the string representation.
  6952  //
  6953  // API parameter values that are decorated as "sensitive" in the API will not
  6954  // be included in the string output. The member name will be present, but the
  6955  // value will be replaced with "sensitive".
  6956  func (s CancelInstanceRefreshInput) GoString() string {
  6957  	return s.String()
  6958  }
  6959  
  6960  // Validate inspects the fields of the type to determine if they are valid.
  6961  func (s *CancelInstanceRefreshInput) Validate() error {
  6962  	invalidParams := request.ErrInvalidParams{Context: "CancelInstanceRefreshInput"}
  6963  	if s.AutoScalingGroupName == nil {
  6964  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  6965  	}
  6966  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  6967  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  6968  	}
  6969  
  6970  	if invalidParams.Len() > 0 {
  6971  		return invalidParams
  6972  	}
  6973  	return nil
  6974  }
  6975  
  6976  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  6977  func (s *CancelInstanceRefreshInput) SetAutoScalingGroupName(v string) *CancelInstanceRefreshInput {
  6978  	s.AutoScalingGroupName = &v
  6979  	return s
  6980  }
  6981  
  6982  type CancelInstanceRefreshOutput struct {
  6983  	_ struct{} `type:"structure"`
  6984  
  6985  	// The instance refresh ID.
  6986  	InstanceRefreshId *string `min:"1" type:"string"`
  6987  }
  6988  
  6989  // String returns the string representation.
  6990  //
  6991  // API parameter values that are decorated as "sensitive" in the API will not
  6992  // be included in the string output. The member name will be present, but the
  6993  // value will be replaced with "sensitive".
  6994  func (s CancelInstanceRefreshOutput) String() string {
  6995  	return awsutil.Prettify(s)
  6996  }
  6997  
  6998  // GoString returns the string representation.
  6999  //
  7000  // API parameter values that are decorated as "sensitive" in the API will not
  7001  // be included in the string output. The member name will be present, but the
  7002  // value will be replaced with "sensitive".
  7003  func (s CancelInstanceRefreshOutput) GoString() string {
  7004  	return s.String()
  7005  }
  7006  
  7007  // SetInstanceRefreshId sets the InstanceRefreshId field's value.
  7008  func (s *CancelInstanceRefreshOutput) SetInstanceRefreshId(v string) *CancelInstanceRefreshOutput {
  7009  	s.InstanceRefreshId = &v
  7010  	return s
  7011  }
  7012  
  7013  // A GetPredictiveScalingForecast call returns the capacity forecast for a predictive
  7014  // scaling policy. This structure includes the data points for that capacity
  7015  // forecast, along with the timestamps of those data points.
  7016  type CapacityForecast struct {
  7017  	_ struct{} `type:"structure"`
  7018  
  7019  	// The time stamps for the data points, in UTC format.
  7020  	//
  7021  	// Timestamps is a required field
  7022  	Timestamps []*time.Time `type:"list" required:"true"`
  7023  
  7024  	// The values of the data points.
  7025  	//
  7026  	// Values is a required field
  7027  	Values []*float64 `type:"list" required:"true"`
  7028  }
  7029  
  7030  // String returns the string representation.
  7031  //
  7032  // API parameter values that are decorated as "sensitive" in the API will not
  7033  // be included in the string output. The member name will be present, but the
  7034  // value will be replaced with "sensitive".
  7035  func (s CapacityForecast) String() string {
  7036  	return awsutil.Prettify(s)
  7037  }
  7038  
  7039  // GoString returns the string representation.
  7040  //
  7041  // API parameter values that are decorated as "sensitive" in the API will not
  7042  // be included in the string output. The member name will be present, but the
  7043  // value will be replaced with "sensitive".
  7044  func (s CapacityForecast) GoString() string {
  7045  	return s.String()
  7046  }
  7047  
  7048  // SetTimestamps sets the Timestamps field's value.
  7049  func (s *CapacityForecast) SetTimestamps(v []*time.Time) *CapacityForecast {
  7050  	s.Timestamps = v
  7051  	return s
  7052  }
  7053  
  7054  // SetValues sets the Values field's value.
  7055  func (s *CapacityForecast) SetValues(v []*float64) *CapacityForecast {
  7056  	s.Values = v
  7057  	return s
  7058  }
  7059  
  7060  type CompleteLifecycleActionInput struct {
  7061  	_ struct{} `type:"structure"`
  7062  
  7063  	// The name of the Auto Scaling group.
  7064  	//
  7065  	// AutoScalingGroupName is a required field
  7066  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  7067  
  7068  	// The ID of the instance.
  7069  	InstanceId *string `min:"1" type:"string"`
  7070  
  7071  	// The action for the group to take. This parameter can be either CONTINUE or
  7072  	// ABANDON.
  7073  	//
  7074  	// LifecycleActionResult is a required field
  7075  	LifecycleActionResult *string `type:"string" required:"true"`
  7076  
  7077  	// A universally unique identifier (UUID) that identifies a specific lifecycle
  7078  	// action associated with an instance. Amazon EC2 Auto Scaling sends this token
  7079  	// to the notification target you specified when you created the lifecycle hook.
  7080  	LifecycleActionToken *string `min:"36" type:"string"`
  7081  
  7082  	// The name of the lifecycle hook.
  7083  	//
  7084  	// LifecycleHookName is a required field
  7085  	LifecycleHookName *string `min:"1" type:"string" required:"true"`
  7086  }
  7087  
  7088  // String returns the string representation.
  7089  //
  7090  // API parameter values that are decorated as "sensitive" in the API will not
  7091  // be included in the string output. The member name will be present, but the
  7092  // value will be replaced with "sensitive".
  7093  func (s CompleteLifecycleActionInput) String() string {
  7094  	return awsutil.Prettify(s)
  7095  }
  7096  
  7097  // GoString returns the string representation.
  7098  //
  7099  // API parameter values that are decorated as "sensitive" in the API will not
  7100  // be included in the string output. The member name will be present, but the
  7101  // value will be replaced with "sensitive".
  7102  func (s CompleteLifecycleActionInput) GoString() string {
  7103  	return s.String()
  7104  }
  7105  
  7106  // Validate inspects the fields of the type to determine if they are valid.
  7107  func (s *CompleteLifecycleActionInput) Validate() error {
  7108  	invalidParams := request.ErrInvalidParams{Context: "CompleteLifecycleActionInput"}
  7109  	if s.AutoScalingGroupName == nil {
  7110  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  7111  	}
  7112  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  7113  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  7114  	}
  7115  	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
  7116  		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
  7117  	}
  7118  	if s.LifecycleActionResult == nil {
  7119  		invalidParams.Add(request.NewErrParamRequired("LifecycleActionResult"))
  7120  	}
  7121  	if s.LifecycleActionToken != nil && len(*s.LifecycleActionToken) < 36 {
  7122  		invalidParams.Add(request.NewErrParamMinLen("LifecycleActionToken", 36))
  7123  	}
  7124  	if s.LifecycleHookName == nil {
  7125  		invalidParams.Add(request.NewErrParamRequired("LifecycleHookName"))
  7126  	}
  7127  	if s.LifecycleHookName != nil && len(*s.LifecycleHookName) < 1 {
  7128  		invalidParams.Add(request.NewErrParamMinLen("LifecycleHookName", 1))
  7129  	}
  7130  
  7131  	if invalidParams.Len() > 0 {
  7132  		return invalidParams
  7133  	}
  7134  	return nil
  7135  }
  7136  
  7137  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  7138  func (s *CompleteLifecycleActionInput) SetAutoScalingGroupName(v string) *CompleteLifecycleActionInput {
  7139  	s.AutoScalingGroupName = &v
  7140  	return s
  7141  }
  7142  
  7143  // SetInstanceId sets the InstanceId field's value.
  7144  func (s *CompleteLifecycleActionInput) SetInstanceId(v string) *CompleteLifecycleActionInput {
  7145  	s.InstanceId = &v
  7146  	return s
  7147  }
  7148  
  7149  // SetLifecycleActionResult sets the LifecycleActionResult field's value.
  7150  func (s *CompleteLifecycleActionInput) SetLifecycleActionResult(v string) *CompleteLifecycleActionInput {
  7151  	s.LifecycleActionResult = &v
  7152  	return s
  7153  }
  7154  
  7155  // SetLifecycleActionToken sets the LifecycleActionToken field's value.
  7156  func (s *CompleteLifecycleActionInput) SetLifecycleActionToken(v string) *CompleteLifecycleActionInput {
  7157  	s.LifecycleActionToken = &v
  7158  	return s
  7159  }
  7160  
  7161  // SetLifecycleHookName sets the LifecycleHookName field's value.
  7162  func (s *CompleteLifecycleActionInput) SetLifecycleHookName(v string) *CompleteLifecycleActionInput {
  7163  	s.LifecycleHookName = &v
  7164  	return s
  7165  }
  7166  
  7167  type CompleteLifecycleActionOutput struct {
  7168  	_ struct{} `type:"structure"`
  7169  }
  7170  
  7171  // String returns the string representation.
  7172  //
  7173  // API parameter values that are decorated as "sensitive" in the API will not
  7174  // be included in the string output. The member name will be present, but the
  7175  // value will be replaced with "sensitive".
  7176  func (s CompleteLifecycleActionOutput) String() string {
  7177  	return awsutil.Prettify(s)
  7178  }
  7179  
  7180  // GoString returns the string representation.
  7181  //
  7182  // API parameter values that are decorated as "sensitive" in the API will not
  7183  // be included in the string output. The member name will be present, but the
  7184  // value will be replaced with "sensitive".
  7185  func (s CompleteLifecycleActionOutput) GoString() string {
  7186  	return s.String()
  7187  }
  7188  
  7189  type CreateAutoScalingGroupInput struct {
  7190  	_ struct{} `type:"structure"`
  7191  
  7192  	// The name of the Auto Scaling group. This name must be unique per Region per
  7193  	// account.
  7194  	//
  7195  	// AutoScalingGroupName is a required field
  7196  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  7197  
  7198  	// A list of Availability Zones where instances in the Auto Scaling group can
  7199  	// be created. This parameter is optional if you specify one or more subnets
  7200  	// for VPCZoneIdentifier.
  7201  	//
  7202  	// Conditional: If your account supports EC2-Classic and VPC, this parameter
  7203  	// is required to launch instances into EC2-Classic.
  7204  	AvailabilityZones []*string `type:"list"`
  7205  
  7206  	// Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing
  7207  	// is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling
  7208  	// attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot
  7209  	// Instance is at an elevated risk of interruption. After launching a new instance,
  7210  	// it then terminates an old instance. For more information, see Amazon EC2
  7211  	// Auto Scaling Capacity Rebalancing (https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)
  7212  	// in the Amazon EC2 Auto Scaling User Guide.
  7213  	CapacityRebalance *bool `type:"boolean"`
  7214  
  7215  	// Reserved.
  7216  	Context *string `type:"string"`
  7217  
  7218  	// The amount of time, in seconds, after a scaling activity completes before
  7219  	// another scaling activity can start. The default value is 300. This setting
  7220  	// applies when using simple scaling policies, but not when using other scaling
  7221  	// policies or scheduled scaling. For more information, see Scaling cooldowns
  7222  	// for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)
  7223  	// in the Amazon EC2 Auto Scaling User Guide.
  7224  	DefaultCooldown *int64 `type:"integer"`
  7225  
  7226  	// The desired capacity is the initial capacity of the Auto Scaling group at
  7227  	// the time of its creation and the capacity it attempts to maintain. It can
  7228  	// scale beyond this capacity if you configure auto scaling. This number must
  7229  	// be greater than or equal to the minimum size of the group and less than or
  7230  	// equal to the maximum size of the group. If you do not specify a desired capacity,
  7231  	// the default is the minimum size of the group.
  7232  	DesiredCapacity *int64 `type:"integer"`
  7233  
  7234  	// The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before
  7235  	// checking the health status of an EC2 instance that has come into service.
  7236  	// During this time, any health check failures for the instance are ignored.
  7237  	// The default value is 0. For more information, see Health check grace period
  7238  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period)
  7239  	// in the Amazon EC2 Auto Scaling User Guide.
  7240  	//
  7241  	// Conditional: Required if you are adding an ELB health check.
  7242  	HealthCheckGracePeriod *int64 `type:"integer"`
  7243  
  7244  	// The service to use for the health checks. The valid values are EC2 (default)
  7245  	// and ELB. If you configure an Auto Scaling group to use load balancer (ELB)
  7246  	// health checks, it considers the instance unhealthy if it fails either the
  7247  	// EC2 status checks or the load balancer health checks. For more information,
  7248  	// see Health checks for Auto Scaling instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html)
  7249  	// in the Amazon EC2 Auto Scaling User Guide.
  7250  	HealthCheckType *string `min:"1" type:"string"`
  7251  
  7252  	// The ID of the instance used to base the launch configuration on. If specified,
  7253  	// Amazon EC2 Auto Scaling uses the configuration values from the specified
  7254  	// instance to create a new launch configuration. To get the instance ID, use
  7255  	// the Amazon EC2 DescribeInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html)
  7256  	// API operation. For more information, see Creating an Auto Scaling group using
  7257  	// an EC2 instance (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html)
  7258  	// in the Amazon EC2 Auto Scaling User Guide.
  7259  	InstanceId *string `min:"1" type:"string"`
  7260  
  7261  	// The name of the launch configuration to use to launch instances.
  7262  	//
  7263  	// Conditional: You must specify either a launch template (LaunchTemplate or
  7264  	// MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName
  7265  	// or InstanceId).
  7266  	LaunchConfigurationName *string `min:"1" type:"string"`
  7267  
  7268  	// Parameters used to specify the launch template and version to use to launch
  7269  	// instances.
  7270  	//
  7271  	// Conditional: You must specify either a launch template (LaunchTemplate or
  7272  	// MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName
  7273  	// or InstanceId).
  7274  	//
  7275  	// The launch template that is specified must be configured for use with an
  7276  	// Auto Scaling group. For more information, see Creating a launch template
  7277  	// for an Auto Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html)
  7278  	// in the Amazon EC2 Auto Scaling User Guide.
  7279  	LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
  7280  
  7281  	// One or more lifecycle hooks for the group, which specify actions to perform
  7282  	// when Amazon EC2 Auto Scaling launches or terminates instances.
  7283  	LifecycleHookSpecificationList []*LifecycleHookSpecification `type:"list"`
  7284  
  7285  	// A list of Classic Load Balancers associated with this Auto Scaling group.
  7286  	// For Application Load Balancers, Network Load Balancers, and Gateway Load
  7287  	// Balancers, specify the TargetGroupARNs property instead.
  7288  	LoadBalancerNames []*string `type:"list"`
  7289  
  7290  	// The maximum amount of time, in seconds, that an instance can be in service.
  7291  	// The default is null. If specified, the value must be either 0 or a number
  7292  	// equal to or greater than 86,400 seconds (1 day). For more information, see
  7293  	// Replacing Auto Scaling instances based on maximum instance lifetime (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html)
  7294  	// in the Amazon EC2 Auto Scaling User Guide.
  7295  	MaxInstanceLifetime *int64 `type:"integer"`
  7296  
  7297  	// The maximum size of the group.
  7298  	//
  7299  	// With a mixed instances policy that uses instance weighting, Amazon EC2 Auto
  7300  	// Scaling may need to go above MaxSize to meet your capacity requirements.
  7301  	// In this event, Amazon EC2 Auto Scaling will never go above MaxSize by more
  7302  	// than your largest instance weight (weights that define how many units each
  7303  	// instance contributes to the desired capacity of the group).
  7304  	//
  7305  	// MaxSize is a required field
  7306  	MaxSize *int64 `type:"integer" required:"true"`
  7307  
  7308  	// The minimum size of the group.
  7309  	//
  7310  	// MinSize is a required field
  7311  	MinSize *int64 `type:"integer" required:"true"`
  7312  
  7313  	// An embedded object that specifies a mixed instances policy. The required
  7314  	// properties must be specified. If optional properties are unspecified, their
  7315  	// default values are used.
  7316  	//
  7317  	// The policy includes properties that not only define the distribution of On-Demand
  7318  	// Instances and Spot Instances, the maximum price to pay for Spot Instances,
  7319  	// and how the Auto Scaling group allocates instance types to fulfill On-Demand
  7320  	// and Spot capacities, but also the properties that specify the instance configuration
  7321  	// information—the launch template and instance types. The policy can also
  7322  	// include a weight for each instance type and different launch templates for
  7323  	// individual instance types. For more information, see Auto Scaling groups
  7324  	// with multiple instance types and purchase options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html)
  7325  	// in the Amazon EC2 Auto Scaling User Guide.
  7326  	MixedInstancesPolicy *MixedInstancesPolicy `type:"structure"`
  7327  
  7328  	// Indicates whether newly launched instances are protected from termination
  7329  	// by Amazon EC2 Auto Scaling when scaling in. For more information about preventing
  7330  	// instances from terminating on scale in, see Instance scale-in protection
  7331  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
  7332  	// in the Amazon EC2 Auto Scaling User Guide.
  7333  	NewInstancesProtectedFromScaleIn *bool `type:"boolean"`
  7334  
  7335  	// The name of an existing placement group into which to launch your instances,
  7336  	// if any. A placement group is a logical grouping of instances within a single
  7337  	// Availability Zone. You cannot specify multiple Availability Zones and a placement
  7338  	// group. For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
  7339  	// in the Amazon EC2 User Guide for Linux Instances.
  7340  	PlacementGroup *string `min:"1" type:"string"`
  7341  
  7342  	// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling
  7343  	// group uses to call other Amazon Web Services on your behalf. By default,
  7344  	// Amazon EC2 Auto Scaling uses a service-linked role named AWSServiceRoleForAutoScaling,
  7345  	// which it creates if it does not exist. For more information, see Service-linked
  7346  	// roles (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html)
  7347  	// in the Amazon EC2 Auto Scaling User Guide.
  7348  	ServiceLinkedRoleARN *string `min:"1" type:"string"`
  7349  
  7350  	// One or more tags. You can tag your Auto Scaling group and propagate the tags
  7351  	// to the Amazon EC2 instances it launches. Tags are not propagated to Amazon
  7352  	// EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch
  7353  	// template but use caution. If the launch template specifies an instance tag
  7354  	// with a key that is also specified for the Auto Scaling group, Amazon EC2
  7355  	// Auto Scaling overrides the value of that instance tag with the value specified
  7356  	// by the Auto Scaling group. For more information, see Tagging Auto Scaling
  7357  	// groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html)
  7358  	// in the Amazon EC2 Auto Scaling User Guide.
  7359  	Tags []*Tag `type:"list"`
  7360  
  7361  	// The Amazon Resource Names (ARN) of the target groups to associate with the
  7362  	// Auto Scaling group. Instances are registered as targets in a target group,
  7363  	// and traffic is routed to the target group. For more information, see Elastic
  7364  	// Load Balancing and Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html)
  7365  	// in the Amazon EC2 Auto Scaling User Guide.
  7366  	TargetGroupARNs []*string `type:"list"`
  7367  
  7368  	// A policy or a list of policies that are used to select the instance to terminate.
  7369  	// These policies are executed in the order that you list them. For more information,
  7370  	// see Controlling which Auto Scaling instances terminate during scale in (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html)
  7371  	// in the Amazon EC2 Auto Scaling User Guide.
  7372  	TerminationPolicies []*string `type:"list"`
  7373  
  7374  	// A comma-separated list of subnet IDs for a virtual private cloud (VPC) where
  7375  	// instances in the Auto Scaling group can be created. If you specify VPCZoneIdentifier
  7376  	// with AvailabilityZones, the subnets that you specify for this parameter must
  7377  	// reside in those Availability Zones.
  7378  	//
  7379  	// Conditional: If your account supports EC2-Classic and VPC, this parameter
  7380  	// is required to launch instances into a VPC.
  7381  	VPCZoneIdentifier *string `min:"1" type:"string"`
  7382  }
  7383  
  7384  // String returns the string representation.
  7385  //
  7386  // API parameter values that are decorated as "sensitive" in the API will not
  7387  // be included in the string output. The member name will be present, but the
  7388  // value will be replaced with "sensitive".
  7389  func (s CreateAutoScalingGroupInput) String() string {
  7390  	return awsutil.Prettify(s)
  7391  }
  7392  
  7393  // GoString returns the string representation.
  7394  //
  7395  // API parameter values that are decorated as "sensitive" in the API will not
  7396  // be included in the string output. The member name will be present, but the
  7397  // value will be replaced with "sensitive".
  7398  func (s CreateAutoScalingGroupInput) GoString() string {
  7399  	return s.String()
  7400  }
  7401  
  7402  // Validate inspects the fields of the type to determine if they are valid.
  7403  func (s *CreateAutoScalingGroupInput) Validate() error {
  7404  	invalidParams := request.ErrInvalidParams{Context: "CreateAutoScalingGroupInput"}
  7405  	if s.AutoScalingGroupName == nil {
  7406  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  7407  	}
  7408  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  7409  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  7410  	}
  7411  	if s.HealthCheckType != nil && len(*s.HealthCheckType) < 1 {
  7412  		invalidParams.Add(request.NewErrParamMinLen("HealthCheckType", 1))
  7413  	}
  7414  	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
  7415  		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
  7416  	}
  7417  	if s.LaunchConfigurationName != nil && len(*s.LaunchConfigurationName) < 1 {
  7418  		invalidParams.Add(request.NewErrParamMinLen("LaunchConfigurationName", 1))
  7419  	}
  7420  	if s.MaxSize == nil {
  7421  		invalidParams.Add(request.NewErrParamRequired("MaxSize"))
  7422  	}
  7423  	if s.MinSize == nil {
  7424  		invalidParams.Add(request.NewErrParamRequired("MinSize"))
  7425  	}
  7426  	if s.PlacementGroup != nil && len(*s.PlacementGroup) < 1 {
  7427  		invalidParams.Add(request.NewErrParamMinLen("PlacementGroup", 1))
  7428  	}
  7429  	if s.ServiceLinkedRoleARN != nil && len(*s.ServiceLinkedRoleARN) < 1 {
  7430  		invalidParams.Add(request.NewErrParamMinLen("ServiceLinkedRoleARN", 1))
  7431  	}
  7432  	if s.VPCZoneIdentifier != nil && len(*s.VPCZoneIdentifier) < 1 {
  7433  		invalidParams.Add(request.NewErrParamMinLen("VPCZoneIdentifier", 1))
  7434  	}
  7435  	if s.LaunchTemplate != nil {
  7436  		if err := s.LaunchTemplate.Validate(); err != nil {
  7437  			invalidParams.AddNested("LaunchTemplate", err.(request.ErrInvalidParams))
  7438  		}
  7439  	}
  7440  	if s.LifecycleHookSpecificationList != nil {
  7441  		for i, v := range s.LifecycleHookSpecificationList {
  7442  			if v == nil {
  7443  				continue
  7444  			}
  7445  			if err := v.Validate(); err != nil {
  7446  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LifecycleHookSpecificationList", i), err.(request.ErrInvalidParams))
  7447  			}
  7448  		}
  7449  	}
  7450  	if s.MixedInstancesPolicy != nil {
  7451  		if err := s.MixedInstancesPolicy.Validate(); err != nil {
  7452  			invalidParams.AddNested("MixedInstancesPolicy", err.(request.ErrInvalidParams))
  7453  		}
  7454  	}
  7455  	if s.Tags != nil {
  7456  		for i, v := range s.Tags {
  7457  			if v == nil {
  7458  				continue
  7459  			}
  7460  			if err := v.Validate(); err != nil {
  7461  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7462  			}
  7463  		}
  7464  	}
  7465  
  7466  	if invalidParams.Len() > 0 {
  7467  		return invalidParams
  7468  	}
  7469  	return nil
  7470  }
  7471  
  7472  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  7473  func (s *CreateAutoScalingGroupInput) SetAutoScalingGroupName(v string) *CreateAutoScalingGroupInput {
  7474  	s.AutoScalingGroupName = &v
  7475  	return s
  7476  }
  7477  
  7478  // SetAvailabilityZones sets the AvailabilityZones field's value.
  7479  func (s *CreateAutoScalingGroupInput) SetAvailabilityZones(v []*string) *CreateAutoScalingGroupInput {
  7480  	s.AvailabilityZones = v
  7481  	return s
  7482  }
  7483  
  7484  // SetCapacityRebalance sets the CapacityRebalance field's value.
  7485  func (s *CreateAutoScalingGroupInput) SetCapacityRebalance(v bool) *CreateAutoScalingGroupInput {
  7486  	s.CapacityRebalance = &v
  7487  	return s
  7488  }
  7489  
  7490  // SetContext sets the Context field's value.
  7491  func (s *CreateAutoScalingGroupInput) SetContext(v string) *CreateAutoScalingGroupInput {
  7492  	s.Context = &v
  7493  	return s
  7494  }
  7495  
  7496  // SetDefaultCooldown sets the DefaultCooldown field's value.
  7497  func (s *CreateAutoScalingGroupInput) SetDefaultCooldown(v int64) *CreateAutoScalingGroupInput {
  7498  	s.DefaultCooldown = &v
  7499  	return s
  7500  }
  7501  
  7502  // SetDesiredCapacity sets the DesiredCapacity field's value.
  7503  func (s *CreateAutoScalingGroupInput) SetDesiredCapacity(v int64) *CreateAutoScalingGroupInput {
  7504  	s.DesiredCapacity = &v
  7505  	return s
  7506  }
  7507  
  7508  // SetHealthCheckGracePeriod sets the HealthCheckGracePeriod field's value.
  7509  func (s *CreateAutoScalingGroupInput) SetHealthCheckGracePeriod(v int64) *CreateAutoScalingGroupInput {
  7510  	s.HealthCheckGracePeriod = &v
  7511  	return s
  7512  }
  7513  
  7514  // SetHealthCheckType sets the HealthCheckType field's value.
  7515  func (s *CreateAutoScalingGroupInput) SetHealthCheckType(v string) *CreateAutoScalingGroupInput {
  7516  	s.HealthCheckType = &v
  7517  	return s
  7518  }
  7519  
  7520  // SetInstanceId sets the InstanceId field's value.
  7521  func (s *CreateAutoScalingGroupInput) SetInstanceId(v string) *CreateAutoScalingGroupInput {
  7522  	s.InstanceId = &v
  7523  	return s
  7524  }
  7525  
  7526  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
  7527  func (s *CreateAutoScalingGroupInput) SetLaunchConfigurationName(v string) *CreateAutoScalingGroupInput {
  7528  	s.LaunchConfigurationName = &v
  7529  	return s
  7530  }
  7531  
  7532  // SetLaunchTemplate sets the LaunchTemplate field's value.
  7533  func (s *CreateAutoScalingGroupInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *CreateAutoScalingGroupInput {
  7534  	s.LaunchTemplate = v
  7535  	return s
  7536  }
  7537  
  7538  // SetLifecycleHookSpecificationList sets the LifecycleHookSpecificationList field's value.
  7539  func (s *CreateAutoScalingGroupInput) SetLifecycleHookSpecificationList(v []*LifecycleHookSpecification) *CreateAutoScalingGroupInput {
  7540  	s.LifecycleHookSpecificationList = v
  7541  	return s
  7542  }
  7543  
  7544  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
  7545  func (s *CreateAutoScalingGroupInput) SetLoadBalancerNames(v []*string) *CreateAutoScalingGroupInput {
  7546  	s.LoadBalancerNames = v
  7547  	return s
  7548  }
  7549  
  7550  // SetMaxInstanceLifetime sets the MaxInstanceLifetime field's value.
  7551  func (s *CreateAutoScalingGroupInput) SetMaxInstanceLifetime(v int64) *CreateAutoScalingGroupInput {
  7552  	s.MaxInstanceLifetime = &v
  7553  	return s
  7554  }
  7555  
  7556  // SetMaxSize sets the MaxSize field's value.
  7557  func (s *CreateAutoScalingGroupInput) SetMaxSize(v int64) *CreateAutoScalingGroupInput {
  7558  	s.MaxSize = &v
  7559  	return s
  7560  }
  7561  
  7562  // SetMinSize sets the MinSize field's value.
  7563  func (s *CreateAutoScalingGroupInput) SetMinSize(v int64) *CreateAutoScalingGroupInput {
  7564  	s.MinSize = &v
  7565  	return s
  7566  }
  7567  
  7568  // SetMixedInstancesPolicy sets the MixedInstancesPolicy field's value.
  7569  func (s *CreateAutoScalingGroupInput) SetMixedInstancesPolicy(v *MixedInstancesPolicy) *CreateAutoScalingGroupInput {
  7570  	s.MixedInstancesPolicy = v
  7571  	return s
  7572  }
  7573  
  7574  // SetNewInstancesProtectedFromScaleIn sets the NewInstancesProtectedFromScaleIn field's value.
  7575  func (s *CreateAutoScalingGroupInput) SetNewInstancesProtectedFromScaleIn(v bool) *CreateAutoScalingGroupInput {
  7576  	s.NewInstancesProtectedFromScaleIn = &v
  7577  	return s
  7578  }
  7579  
  7580  // SetPlacementGroup sets the PlacementGroup field's value.
  7581  func (s *CreateAutoScalingGroupInput) SetPlacementGroup(v string) *CreateAutoScalingGroupInput {
  7582  	s.PlacementGroup = &v
  7583  	return s
  7584  }
  7585  
  7586  // SetServiceLinkedRoleARN sets the ServiceLinkedRoleARN field's value.
  7587  func (s *CreateAutoScalingGroupInput) SetServiceLinkedRoleARN(v string) *CreateAutoScalingGroupInput {
  7588  	s.ServiceLinkedRoleARN = &v
  7589  	return s
  7590  }
  7591  
  7592  // SetTags sets the Tags field's value.
  7593  func (s *CreateAutoScalingGroupInput) SetTags(v []*Tag) *CreateAutoScalingGroupInput {
  7594  	s.Tags = v
  7595  	return s
  7596  }
  7597  
  7598  // SetTargetGroupARNs sets the TargetGroupARNs field's value.
  7599  func (s *CreateAutoScalingGroupInput) SetTargetGroupARNs(v []*string) *CreateAutoScalingGroupInput {
  7600  	s.TargetGroupARNs = v
  7601  	return s
  7602  }
  7603  
  7604  // SetTerminationPolicies sets the TerminationPolicies field's value.
  7605  func (s *CreateAutoScalingGroupInput) SetTerminationPolicies(v []*string) *CreateAutoScalingGroupInput {
  7606  	s.TerminationPolicies = v
  7607  	return s
  7608  }
  7609  
  7610  // SetVPCZoneIdentifier sets the VPCZoneIdentifier field's value.
  7611  func (s *CreateAutoScalingGroupInput) SetVPCZoneIdentifier(v string) *CreateAutoScalingGroupInput {
  7612  	s.VPCZoneIdentifier = &v
  7613  	return s
  7614  }
  7615  
  7616  type CreateAutoScalingGroupOutput struct {
  7617  	_ struct{} `type:"structure"`
  7618  }
  7619  
  7620  // String returns the string representation.
  7621  //
  7622  // API parameter values that are decorated as "sensitive" in the API will not
  7623  // be included in the string output. The member name will be present, but the
  7624  // value will be replaced with "sensitive".
  7625  func (s CreateAutoScalingGroupOutput) String() string {
  7626  	return awsutil.Prettify(s)
  7627  }
  7628  
  7629  // GoString returns the string representation.
  7630  //
  7631  // API parameter values that are decorated as "sensitive" in the API will not
  7632  // be included in the string output. The member name will be present, but the
  7633  // value will be replaced with "sensitive".
  7634  func (s CreateAutoScalingGroupOutput) GoString() string {
  7635  	return s.String()
  7636  }
  7637  
  7638  type CreateLaunchConfigurationInput struct {
  7639  	_ struct{} `type:"structure"`
  7640  
  7641  	// For Auto Scaling groups that are running in a virtual private cloud (VPC),
  7642  	// specifies whether to assign a public IP address to the group's instances.
  7643  	// If you specify true, each instance in the Auto Scaling group receives a unique
  7644  	// public IP address. For more information, see Launching Auto Scaling instances
  7645  	// in a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html)
  7646  	// in the Amazon EC2 Auto Scaling User Guide.
  7647  	//
  7648  	// If you specify this parameter, you must specify at least one subnet for VPCZoneIdentifier
  7649  	// when you create your group.
  7650  	//
  7651  	// If the instance is launched into a default subnet, the default is to assign
  7652  	// a public IP address, unless you disabled the option to assign a public IP
  7653  	// address on the subnet. If the instance is launched into a nondefault subnet,
  7654  	// the default is not to assign a public IP address, unless you enabled the
  7655  	// option to assign a public IP address on the subnet.
  7656  	AssociatePublicIpAddress *bool `type:"boolean"`
  7657  
  7658  	// A block device mapping, which specifies the block devices for the instance.
  7659  	// You can specify virtual devices and EBS volumes. For more information, see
  7660  	// Block Device Mapping (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)
  7661  	// in the Amazon EC2 User Guide for Linux Instances.
  7662  	BlockDeviceMappings []*BlockDeviceMapping `type:"list"`
  7663  
  7664  	// The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.
  7665  	// For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
  7666  	// in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
  7667  	// instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
  7668  	// in the Amazon EC2 Auto Scaling User Guide.
  7669  	//
  7670  	// This parameter can only be used if you are launching EC2-Classic instances.
  7671  	ClassicLinkVPCId *string `min:"1" type:"string"`
  7672  
  7673  	// The IDs of one or more security groups for the specified ClassicLink-enabled
  7674  	// VPC. For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
  7675  	// in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
  7676  	// instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
  7677  	// in the Amazon EC2 Auto Scaling User Guide.
  7678  	//
  7679  	// If you specify the ClassicLinkVPCId parameter, you must specify this parameter.
  7680  	ClassicLinkVPCSecurityGroups []*string `type:"list"`
  7681  
  7682  	// Specifies whether the launch configuration is optimized for EBS I/O (true)
  7683  	// or not (false). The optimization provides dedicated throughput to Amazon
  7684  	// EBS and an optimized configuration stack to provide optimal I/O performance.
  7685  	// This optimization is not available with all instance types. Additional fees
  7686  	// are incurred when you enable EBS optimization for an instance type that is
  7687  	// not EBS-optimized by default. For more information, see Amazon EBS-Optimized
  7688  	// Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html)
  7689  	// in the Amazon EC2 User Guide for Linux Instances.
  7690  	//
  7691  	// The default value is false.
  7692  	EbsOptimized *bool `type:"boolean"`
  7693  
  7694  	// The name or the Amazon Resource Name (ARN) of the instance profile associated
  7695  	// with the IAM role for the instance. The instance profile contains the IAM
  7696  	// role.
  7697  	//
  7698  	// For more information, see IAM role for applications that run on Amazon EC2
  7699  	// instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html)
  7700  	// in the Amazon EC2 Auto Scaling User Guide.
  7701  	IamInstanceProfile *string `min:"1" type:"string"`
  7702  
  7703  	// The ID of the Amazon Machine Image (AMI) that was assigned during registration.
  7704  	// For more information, see Finding an AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)
  7705  	// in the Amazon EC2 User Guide for Linux Instances.
  7706  	//
  7707  	// If you do not specify InstanceId, you must specify ImageId.
  7708  	ImageId *string `min:"1" type:"string"`
  7709  
  7710  	// The ID of the instance to use to create the launch configuration. The new
  7711  	// launch configuration derives attributes from the instance, except for the
  7712  	// block device mapping.
  7713  	//
  7714  	// To create a launch configuration with a block device mapping or override
  7715  	// any other instance attributes, specify them as part of the same request.
  7716  	//
  7717  	// For more information, see Creating a launch configuration using an EC2 instance
  7718  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-lc-with-instanceID.html)
  7719  	// in the Amazon EC2 Auto Scaling User Guide.
  7720  	//
  7721  	// If you do not specify InstanceId, you must specify both ImageId and InstanceType.
  7722  	InstanceId *string `min:"1" type:"string"`
  7723  
  7724  	// Controls whether instances in this group are launched with detailed (true)
  7725  	// or basic (false) monitoring.
  7726  	//
  7727  	// The default value is true (enabled).
  7728  	//
  7729  	// When detailed monitoring is enabled, Amazon CloudWatch generates metrics
  7730  	// every minute and your account is charged a fee. When you disable detailed
  7731  	// monitoring, CloudWatch generates metrics every 5 minutes. For more information,
  7732  	// see Configure Monitoring for Auto Scaling Instances (https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html)
  7733  	// in the Amazon EC2 Auto Scaling User Guide.
  7734  	InstanceMonitoring *InstanceMonitoring `type:"structure"`
  7735  
  7736  	// Specifies the instance type of the EC2 instance.
  7737  	//
  7738  	// For information about available instance types, see Available Instance Types
  7739  	// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes)
  7740  	// in the Amazon EC2 User Guide for Linux Instances.
  7741  	//
  7742  	// If you do not specify InstanceId, you must specify InstanceType.
  7743  	InstanceType *string `min:"1" type:"string"`
  7744  
  7745  	// The ID of the kernel associated with the AMI.
  7746  	KernelId *string `min:"1" type:"string"`
  7747  
  7748  	// The name of the key pair. For more information, see Amazon EC2 Key Pairs
  7749  	// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)
  7750  	// in the Amazon EC2 User Guide for Linux Instances.
  7751  	KeyName *string `min:"1" type:"string"`
  7752  
  7753  	// The name of the launch configuration. This name must be unique per Region
  7754  	// per account.
  7755  	//
  7756  	// LaunchConfigurationName is a required field
  7757  	LaunchConfigurationName *string `min:"1" type:"string" required:"true"`
  7758  
  7759  	// The metadata options for the instances. For more information, see Configuring
  7760  	// the Instance Metadata Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds)
  7761  	// in the Amazon EC2 Auto Scaling User Guide.
  7762  	MetadataOptions *InstanceMetadataOptions `type:"structure"`
  7763  
  7764  	// The tenancy of the instance. An instance with dedicated tenancy runs on isolated,
  7765  	// single-tenant hardware and can only be launched into a VPC.
  7766  	//
  7767  	// To launch dedicated instances into a shared tenancy VPC (a VPC with the instance
  7768  	// placement tenancy attribute set to default), you must set the value of this
  7769  	// parameter to dedicated.
  7770  	//
  7771  	// If you specify PlacementTenancy, you must specify at least one subnet for
  7772  	// VPCZoneIdentifier when you create your group.
  7773  	//
  7774  	// For more information, see Configuring instance tenancy with Amazon EC2 Auto
  7775  	// Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html)
  7776  	// in the Amazon EC2 Auto Scaling User Guide.
  7777  	//
  7778  	// Valid Values: default | dedicated
  7779  	PlacementTenancy *string `min:"1" type:"string"`
  7780  
  7781  	// The ID of the RAM disk to select.
  7782  	RamdiskId *string `min:"1" type:"string"`
  7783  
  7784  	// A list that contains the security groups to assign to the instances in the
  7785  	// Auto Scaling group.
  7786  	//
  7787  	// [EC2-VPC] Specify the security group IDs. For more information, see Security
  7788  	// Groups for Your VPC (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)
  7789  	// in the Amazon Virtual Private Cloud User Guide.
  7790  	//
  7791  	// [EC2-Classic] Specify either the security group names or the security group
  7792  	// IDs. For more information, see Amazon EC2 Security Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)
  7793  	// in the Amazon EC2 User Guide for Linux Instances.
  7794  	SecurityGroups []*string `type:"list"`
  7795  
  7796  	// The maximum hourly price to be paid for any Spot Instance launched to fulfill
  7797  	// the request. Spot Instances are launched when the price you specify exceeds
  7798  	// the current Spot price. For more information, see Requesting Spot Instances
  7799  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html)
  7800  	// in the Amazon EC2 Auto Scaling User Guide.
  7801  	//
  7802  	// When you change your maximum price by creating a new launch configuration,
  7803  	// running instances will continue to run as long as the maximum price for those
  7804  	// running instances is higher than the current Spot price.
  7805  	SpotPrice *string `min:"1" type:"string"`
  7806  
  7807  	// The user data to make available to the launched EC2 instances. For more information,
  7808  	// see Instance metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
  7809  	// (Linux) and Instance metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html)
  7810  	// (Windows). If you are using a command line tool, base64-encoding is performed
  7811  	// for you, and you can load the text from a file. Otherwise, you must provide
  7812  	// base64-encoded text. User data is limited to 16 KB.
  7813  	UserData *string `type:"string"`
  7814  }
  7815  
  7816  // String returns the string representation.
  7817  //
  7818  // API parameter values that are decorated as "sensitive" in the API will not
  7819  // be included in the string output. The member name will be present, but the
  7820  // value will be replaced with "sensitive".
  7821  func (s CreateLaunchConfigurationInput) String() string {
  7822  	return awsutil.Prettify(s)
  7823  }
  7824  
  7825  // GoString returns the string representation.
  7826  //
  7827  // API parameter values that are decorated as "sensitive" in the API will not
  7828  // be included in the string output. The member name will be present, but the
  7829  // value will be replaced with "sensitive".
  7830  func (s CreateLaunchConfigurationInput) GoString() string {
  7831  	return s.String()
  7832  }
  7833  
  7834  // Validate inspects the fields of the type to determine if they are valid.
  7835  func (s *CreateLaunchConfigurationInput) Validate() error {
  7836  	invalidParams := request.ErrInvalidParams{Context: "CreateLaunchConfigurationInput"}
  7837  	if s.ClassicLinkVPCId != nil && len(*s.ClassicLinkVPCId) < 1 {
  7838  		invalidParams.Add(request.NewErrParamMinLen("ClassicLinkVPCId", 1))
  7839  	}
  7840  	if s.IamInstanceProfile != nil && len(*s.IamInstanceProfile) < 1 {
  7841  		invalidParams.Add(request.NewErrParamMinLen("IamInstanceProfile", 1))
  7842  	}
  7843  	if s.ImageId != nil && len(*s.ImageId) < 1 {
  7844  		invalidParams.Add(request.NewErrParamMinLen("ImageId", 1))
  7845  	}
  7846  	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
  7847  		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
  7848  	}
  7849  	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
  7850  		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
  7851  	}
  7852  	if s.KernelId != nil && len(*s.KernelId) < 1 {
  7853  		invalidParams.Add(request.NewErrParamMinLen("KernelId", 1))
  7854  	}
  7855  	if s.KeyName != nil && len(*s.KeyName) < 1 {
  7856  		invalidParams.Add(request.NewErrParamMinLen("KeyName", 1))
  7857  	}
  7858  	if s.LaunchConfigurationName == nil {
  7859  		invalidParams.Add(request.NewErrParamRequired("LaunchConfigurationName"))
  7860  	}
  7861  	if s.LaunchConfigurationName != nil && len(*s.LaunchConfigurationName) < 1 {
  7862  		invalidParams.Add(request.NewErrParamMinLen("LaunchConfigurationName", 1))
  7863  	}
  7864  	if s.PlacementTenancy != nil && len(*s.PlacementTenancy) < 1 {
  7865  		invalidParams.Add(request.NewErrParamMinLen("PlacementTenancy", 1))
  7866  	}
  7867  	if s.RamdiskId != nil && len(*s.RamdiskId) < 1 {
  7868  		invalidParams.Add(request.NewErrParamMinLen("RamdiskId", 1))
  7869  	}
  7870  	if s.SpotPrice != nil && len(*s.SpotPrice) < 1 {
  7871  		invalidParams.Add(request.NewErrParamMinLen("SpotPrice", 1))
  7872  	}
  7873  	if s.BlockDeviceMappings != nil {
  7874  		for i, v := range s.BlockDeviceMappings {
  7875  			if v == nil {
  7876  				continue
  7877  			}
  7878  			if err := v.Validate(); err != nil {
  7879  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BlockDeviceMappings", i), err.(request.ErrInvalidParams))
  7880  			}
  7881  		}
  7882  	}
  7883  	if s.MetadataOptions != nil {
  7884  		if err := s.MetadataOptions.Validate(); err != nil {
  7885  			invalidParams.AddNested("MetadataOptions", err.(request.ErrInvalidParams))
  7886  		}
  7887  	}
  7888  
  7889  	if invalidParams.Len() > 0 {
  7890  		return invalidParams
  7891  	}
  7892  	return nil
  7893  }
  7894  
  7895  // SetAssociatePublicIpAddress sets the AssociatePublicIpAddress field's value.
  7896  func (s *CreateLaunchConfigurationInput) SetAssociatePublicIpAddress(v bool) *CreateLaunchConfigurationInput {
  7897  	s.AssociatePublicIpAddress = &v
  7898  	return s
  7899  }
  7900  
  7901  // SetBlockDeviceMappings sets the BlockDeviceMappings field's value.
  7902  func (s *CreateLaunchConfigurationInput) SetBlockDeviceMappings(v []*BlockDeviceMapping) *CreateLaunchConfigurationInput {
  7903  	s.BlockDeviceMappings = v
  7904  	return s
  7905  }
  7906  
  7907  // SetClassicLinkVPCId sets the ClassicLinkVPCId field's value.
  7908  func (s *CreateLaunchConfigurationInput) SetClassicLinkVPCId(v string) *CreateLaunchConfigurationInput {
  7909  	s.ClassicLinkVPCId = &v
  7910  	return s
  7911  }
  7912  
  7913  // SetClassicLinkVPCSecurityGroups sets the ClassicLinkVPCSecurityGroups field's value.
  7914  func (s *CreateLaunchConfigurationInput) SetClassicLinkVPCSecurityGroups(v []*string) *CreateLaunchConfigurationInput {
  7915  	s.ClassicLinkVPCSecurityGroups = v
  7916  	return s
  7917  }
  7918  
  7919  // SetEbsOptimized sets the EbsOptimized field's value.
  7920  func (s *CreateLaunchConfigurationInput) SetEbsOptimized(v bool) *CreateLaunchConfigurationInput {
  7921  	s.EbsOptimized = &v
  7922  	return s
  7923  }
  7924  
  7925  // SetIamInstanceProfile sets the IamInstanceProfile field's value.
  7926  func (s *CreateLaunchConfigurationInput) SetIamInstanceProfile(v string) *CreateLaunchConfigurationInput {
  7927  	s.IamInstanceProfile = &v
  7928  	return s
  7929  }
  7930  
  7931  // SetImageId sets the ImageId field's value.
  7932  func (s *CreateLaunchConfigurationInput) SetImageId(v string) *CreateLaunchConfigurationInput {
  7933  	s.ImageId = &v
  7934  	return s
  7935  }
  7936  
  7937  // SetInstanceId sets the InstanceId field's value.
  7938  func (s *CreateLaunchConfigurationInput) SetInstanceId(v string) *CreateLaunchConfigurationInput {
  7939  	s.InstanceId = &v
  7940  	return s
  7941  }
  7942  
  7943  // SetInstanceMonitoring sets the InstanceMonitoring field's value.
  7944  func (s *CreateLaunchConfigurationInput) SetInstanceMonitoring(v *InstanceMonitoring) *CreateLaunchConfigurationInput {
  7945  	s.InstanceMonitoring = v
  7946  	return s
  7947  }
  7948  
  7949  // SetInstanceType sets the InstanceType field's value.
  7950  func (s *CreateLaunchConfigurationInput) SetInstanceType(v string) *CreateLaunchConfigurationInput {
  7951  	s.InstanceType = &v
  7952  	return s
  7953  }
  7954  
  7955  // SetKernelId sets the KernelId field's value.
  7956  func (s *CreateLaunchConfigurationInput) SetKernelId(v string) *CreateLaunchConfigurationInput {
  7957  	s.KernelId = &v
  7958  	return s
  7959  }
  7960  
  7961  // SetKeyName sets the KeyName field's value.
  7962  func (s *CreateLaunchConfigurationInput) SetKeyName(v string) *CreateLaunchConfigurationInput {
  7963  	s.KeyName = &v
  7964  	return s
  7965  }
  7966  
  7967  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
  7968  func (s *CreateLaunchConfigurationInput) SetLaunchConfigurationName(v string) *CreateLaunchConfigurationInput {
  7969  	s.LaunchConfigurationName = &v
  7970  	return s
  7971  }
  7972  
  7973  // SetMetadataOptions sets the MetadataOptions field's value.
  7974  func (s *CreateLaunchConfigurationInput) SetMetadataOptions(v *InstanceMetadataOptions) *CreateLaunchConfigurationInput {
  7975  	s.MetadataOptions = v
  7976  	return s
  7977  }
  7978  
  7979  // SetPlacementTenancy sets the PlacementTenancy field's value.
  7980  func (s *CreateLaunchConfigurationInput) SetPlacementTenancy(v string) *CreateLaunchConfigurationInput {
  7981  	s.PlacementTenancy = &v
  7982  	return s
  7983  }
  7984  
  7985  // SetRamdiskId sets the RamdiskId field's value.
  7986  func (s *CreateLaunchConfigurationInput) SetRamdiskId(v string) *CreateLaunchConfigurationInput {
  7987  	s.RamdiskId = &v
  7988  	return s
  7989  }
  7990  
  7991  // SetSecurityGroups sets the SecurityGroups field's value.
  7992  func (s *CreateLaunchConfigurationInput) SetSecurityGroups(v []*string) *CreateLaunchConfigurationInput {
  7993  	s.SecurityGroups = v
  7994  	return s
  7995  }
  7996  
  7997  // SetSpotPrice sets the SpotPrice field's value.
  7998  func (s *CreateLaunchConfigurationInput) SetSpotPrice(v string) *CreateLaunchConfigurationInput {
  7999  	s.SpotPrice = &v
  8000  	return s
  8001  }
  8002  
  8003  // SetUserData sets the UserData field's value.
  8004  func (s *CreateLaunchConfigurationInput) SetUserData(v string) *CreateLaunchConfigurationInput {
  8005  	s.UserData = &v
  8006  	return s
  8007  }
  8008  
  8009  type CreateLaunchConfigurationOutput struct {
  8010  	_ struct{} `type:"structure"`
  8011  }
  8012  
  8013  // String returns the string representation.
  8014  //
  8015  // API parameter values that are decorated as "sensitive" in the API will not
  8016  // be included in the string output. The member name will be present, but the
  8017  // value will be replaced with "sensitive".
  8018  func (s CreateLaunchConfigurationOutput) String() string {
  8019  	return awsutil.Prettify(s)
  8020  }
  8021  
  8022  // GoString returns the string representation.
  8023  //
  8024  // API parameter values that are decorated as "sensitive" in the API will not
  8025  // be included in the string output. The member name will be present, but the
  8026  // value will be replaced with "sensitive".
  8027  func (s CreateLaunchConfigurationOutput) GoString() string {
  8028  	return s.String()
  8029  }
  8030  
  8031  type CreateOrUpdateTagsInput struct {
  8032  	_ struct{} `type:"structure"`
  8033  
  8034  	// One or more tags.
  8035  	//
  8036  	// Tags is a required field
  8037  	Tags []*Tag `type:"list" required:"true"`
  8038  }
  8039  
  8040  // String returns the string representation.
  8041  //
  8042  // API parameter values that are decorated as "sensitive" in the API will not
  8043  // be included in the string output. The member name will be present, but the
  8044  // value will be replaced with "sensitive".
  8045  func (s CreateOrUpdateTagsInput) String() string {
  8046  	return awsutil.Prettify(s)
  8047  }
  8048  
  8049  // GoString returns the string representation.
  8050  //
  8051  // API parameter values that are decorated as "sensitive" in the API will not
  8052  // be included in the string output. The member name will be present, but the
  8053  // value will be replaced with "sensitive".
  8054  func (s CreateOrUpdateTagsInput) GoString() string {
  8055  	return s.String()
  8056  }
  8057  
  8058  // Validate inspects the fields of the type to determine if they are valid.
  8059  func (s *CreateOrUpdateTagsInput) Validate() error {
  8060  	invalidParams := request.ErrInvalidParams{Context: "CreateOrUpdateTagsInput"}
  8061  	if s.Tags == nil {
  8062  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8063  	}
  8064  	if s.Tags != nil {
  8065  		for i, v := range s.Tags {
  8066  			if v == nil {
  8067  				continue
  8068  			}
  8069  			if err := v.Validate(); err != nil {
  8070  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8071  			}
  8072  		}
  8073  	}
  8074  
  8075  	if invalidParams.Len() > 0 {
  8076  		return invalidParams
  8077  	}
  8078  	return nil
  8079  }
  8080  
  8081  // SetTags sets the Tags field's value.
  8082  func (s *CreateOrUpdateTagsInput) SetTags(v []*Tag) *CreateOrUpdateTagsInput {
  8083  	s.Tags = v
  8084  	return s
  8085  }
  8086  
  8087  type CreateOrUpdateTagsOutput struct {
  8088  	_ struct{} `type:"structure"`
  8089  }
  8090  
  8091  // String returns the string representation.
  8092  //
  8093  // API parameter values that are decorated as "sensitive" in the API will not
  8094  // be included in the string output. The member name will be present, but the
  8095  // value will be replaced with "sensitive".
  8096  func (s CreateOrUpdateTagsOutput) String() string {
  8097  	return awsutil.Prettify(s)
  8098  }
  8099  
  8100  // GoString returns the string representation.
  8101  //
  8102  // API parameter values that are decorated as "sensitive" in the API will not
  8103  // be included in the string output. The member name will be present, but the
  8104  // value will be replaced with "sensitive".
  8105  func (s CreateOrUpdateTagsOutput) GoString() string {
  8106  	return s.String()
  8107  }
  8108  
  8109  // Represents a CloudWatch metric of your choosing for a target tracking scaling
  8110  // policy to use with Amazon EC2 Auto Scaling.
  8111  //
  8112  // To create your customized metric specification:
  8113  //
  8114  //    * Add values for each required parameter from CloudWatch. You can use
  8115  //    an existing metric, or a new metric that you create. To use your own metric,
  8116  //    you must first publish the metric to CloudWatch. For more information,
  8117  //    see Publish Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
  8118  //    in the Amazon CloudWatch User Guide.
  8119  //
  8120  //    * Choose a metric that changes proportionally with capacity. The value
  8121  //    of the metric should increase or decrease in inverse proportion to the
  8122  //    number of capacity units. That is, the value of the metric should decrease
  8123  //    when capacity increases.
  8124  //
  8125  // For more information about CloudWatch, see Amazon CloudWatch Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html).
  8126  type CustomizedMetricSpecification struct {
  8127  	_ struct{} `type:"structure"`
  8128  
  8129  	// The dimensions of the metric.
  8130  	//
  8131  	// Conditional: If you published your metric with dimensions, you must specify
  8132  	// the same dimensions in your scaling policy.
  8133  	Dimensions []*MetricDimension `type:"list"`
  8134  
  8135  	// The name of the metric.
  8136  	//
  8137  	// MetricName is a required field
  8138  	MetricName *string `type:"string" required:"true"`
  8139  
  8140  	// The namespace of the metric.
  8141  	//
  8142  	// Namespace is a required field
  8143  	Namespace *string `type:"string" required:"true"`
  8144  
  8145  	// The statistic of the metric.
  8146  	//
  8147  	// Statistic is a required field
  8148  	Statistic *string `type:"string" required:"true" enum:"MetricStatistic"`
  8149  
  8150  	// The unit of the metric.
  8151  	Unit *string `type:"string"`
  8152  }
  8153  
  8154  // String returns the string representation.
  8155  //
  8156  // API parameter values that are decorated as "sensitive" in the API will not
  8157  // be included in the string output. The member name will be present, but the
  8158  // value will be replaced with "sensitive".
  8159  func (s CustomizedMetricSpecification) String() string {
  8160  	return awsutil.Prettify(s)
  8161  }
  8162  
  8163  // GoString returns the string representation.
  8164  //
  8165  // API parameter values that are decorated as "sensitive" in the API will not
  8166  // be included in the string output. The member name will be present, but the
  8167  // value will be replaced with "sensitive".
  8168  func (s CustomizedMetricSpecification) GoString() string {
  8169  	return s.String()
  8170  }
  8171  
  8172  // Validate inspects the fields of the type to determine if they are valid.
  8173  func (s *CustomizedMetricSpecification) Validate() error {
  8174  	invalidParams := request.ErrInvalidParams{Context: "CustomizedMetricSpecification"}
  8175  	if s.MetricName == nil {
  8176  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  8177  	}
  8178  	if s.Namespace == nil {
  8179  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  8180  	}
  8181  	if s.Statistic == nil {
  8182  		invalidParams.Add(request.NewErrParamRequired("Statistic"))
  8183  	}
  8184  	if s.Dimensions != nil {
  8185  		for i, v := range s.Dimensions {
  8186  			if v == nil {
  8187  				continue
  8188  			}
  8189  			if err := v.Validate(); err != nil {
  8190  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  8191  			}
  8192  		}
  8193  	}
  8194  
  8195  	if invalidParams.Len() > 0 {
  8196  		return invalidParams
  8197  	}
  8198  	return nil
  8199  }
  8200  
  8201  // SetDimensions sets the Dimensions field's value.
  8202  func (s *CustomizedMetricSpecification) SetDimensions(v []*MetricDimension) *CustomizedMetricSpecification {
  8203  	s.Dimensions = v
  8204  	return s
  8205  }
  8206  
  8207  // SetMetricName sets the MetricName field's value.
  8208  func (s *CustomizedMetricSpecification) SetMetricName(v string) *CustomizedMetricSpecification {
  8209  	s.MetricName = &v
  8210  	return s
  8211  }
  8212  
  8213  // SetNamespace sets the Namespace field's value.
  8214  func (s *CustomizedMetricSpecification) SetNamespace(v string) *CustomizedMetricSpecification {
  8215  	s.Namespace = &v
  8216  	return s
  8217  }
  8218  
  8219  // SetStatistic sets the Statistic field's value.
  8220  func (s *CustomizedMetricSpecification) SetStatistic(v string) *CustomizedMetricSpecification {
  8221  	s.Statistic = &v
  8222  	return s
  8223  }
  8224  
  8225  // SetUnit sets the Unit field's value.
  8226  func (s *CustomizedMetricSpecification) SetUnit(v string) *CustomizedMetricSpecification {
  8227  	s.Unit = &v
  8228  	return s
  8229  }
  8230  
  8231  type DeleteAutoScalingGroupInput struct {
  8232  	_ struct{} `type:"structure"`
  8233  
  8234  	// The name of the Auto Scaling group.
  8235  	//
  8236  	// AutoScalingGroupName is a required field
  8237  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  8238  
  8239  	// Specifies that the group is to be deleted along with all instances associated
  8240  	// with the group, without waiting for all instances to be terminated. This
  8241  	// parameter also deletes any outstanding lifecycle actions associated with
  8242  	// the group.
  8243  	ForceDelete *bool `type:"boolean"`
  8244  }
  8245  
  8246  // String returns the string representation.
  8247  //
  8248  // API parameter values that are decorated as "sensitive" in the API will not
  8249  // be included in the string output. The member name will be present, but the
  8250  // value will be replaced with "sensitive".
  8251  func (s DeleteAutoScalingGroupInput) String() string {
  8252  	return awsutil.Prettify(s)
  8253  }
  8254  
  8255  // GoString returns the string representation.
  8256  //
  8257  // API parameter values that are decorated as "sensitive" in the API will not
  8258  // be included in the string output. The member name will be present, but the
  8259  // value will be replaced with "sensitive".
  8260  func (s DeleteAutoScalingGroupInput) GoString() string {
  8261  	return s.String()
  8262  }
  8263  
  8264  // Validate inspects the fields of the type to determine if they are valid.
  8265  func (s *DeleteAutoScalingGroupInput) Validate() error {
  8266  	invalidParams := request.ErrInvalidParams{Context: "DeleteAutoScalingGroupInput"}
  8267  	if s.AutoScalingGroupName == nil {
  8268  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  8269  	}
  8270  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  8271  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  8272  	}
  8273  
  8274  	if invalidParams.Len() > 0 {
  8275  		return invalidParams
  8276  	}
  8277  	return nil
  8278  }
  8279  
  8280  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  8281  func (s *DeleteAutoScalingGroupInput) SetAutoScalingGroupName(v string) *DeleteAutoScalingGroupInput {
  8282  	s.AutoScalingGroupName = &v
  8283  	return s
  8284  }
  8285  
  8286  // SetForceDelete sets the ForceDelete field's value.
  8287  func (s *DeleteAutoScalingGroupInput) SetForceDelete(v bool) *DeleteAutoScalingGroupInput {
  8288  	s.ForceDelete = &v
  8289  	return s
  8290  }
  8291  
  8292  type DeleteAutoScalingGroupOutput struct {
  8293  	_ struct{} `type:"structure"`
  8294  }
  8295  
  8296  // String returns the string representation.
  8297  //
  8298  // API parameter values that are decorated as "sensitive" in the API will not
  8299  // be included in the string output. The member name will be present, but the
  8300  // value will be replaced with "sensitive".
  8301  func (s DeleteAutoScalingGroupOutput) String() string {
  8302  	return awsutil.Prettify(s)
  8303  }
  8304  
  8305  // GoString returns the string representation.
  8306  //
  8307  // API parameter values that are decorated as "sensitive" in the API will not
  8308  // be included in the string output. The member name will be present, but the
  8309  // value will be replaced with "sensitive".
  8310  func (s DeleteAutoScalingGroupOutput) GoString() string {
  8311  	return s.String()
  8312  }
  8313  
  8314  type DeleteLaunchConfigurationInput struct {
  8315  	_ struct{} `type:"structure"`
  8316  
  8317  	// The name of the launch configuration.
  8318  	//
  8319  	// LaunchConfigurationName is a required field
  8320  	LaunchConfigurationName *string `min:"1" type:"string" required:"true"`
  8321  }
  8322  
  8323  // String returns the string representation.
  8324  //
  8325  // API parameter values that are decorated as "sensitive" in the API will not
  8326  // be included in the string output. The member name will be present, but the
  8327  // value will be replaced with "sensitive".
  8328  func (s DeleteLaunchConfigurationInput) String() string {
  8329  	return awsutil.Prettify(s)
  8330  }
  8331  
  8332  // GoString returns the string representation.
  8333  //
  8334  // API parameter values that are decorated as "sensitive" in the API will not
  8335  // be included in the string output. The member name will be present, but the
  8336  // value will be replaced with "sensitive".
  8337  func (s DeleteLaunchConfigurationInput) GoString() string {
  8338  	return s.String()
  8339  }
  8340  
  8341  // Validate inspects the fields of the type to determine if they are valid.
  8342  func (s *DeleteLaunchConfigurationInput) Validate() error {
  8343  	invalidParams := request.ErrInvalidParams{Context: "DeleteLaunchConfigurationInput"}
  8344  	if s.LaunchConfigurationName == nil {
  8345  		invalidParams.Add(request.NewErrParamRequired("LaunchConfigurationName"))
  8346  	}
  8347  	if s.LaunchConfigurationName != nil && len(*s.LaunchConfigurationName) < 1 {
  8348  		invalidParams.Add(request.NewErrParamMinLen("LaunchConfigurationName", 1))
  8349  	}
  8350  
  8351  	if invalidParams.Len() > 0 {
  8352  		return invalidParams
  8353  	}
  8354  	return nil
  8355  }
  8356  
  8357  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
  8358  func (s *DeleteLaunchConfigurationInput) SetLaunchConfigurationName(v string) *DeleteLaunchConfigurationInput {
  8359  	s.LaunchConfigurationName = &v
  8360  	return s
  8361  }
  8362  
  8363  type DeleteLaunchConfigurationOutput struct {
  8364  	_ struct{} `type:"structure"`
  8365  }
  8366  
  8367  // String returns the string representation.
  8368  //
  8369  // API parameter values that are decorated as "sensitive" in the API will not
  8370  // be included in the string output. The member name will be present, but the
  8371  // value will be replaced with "sensitive".
  8372  func (s DeleteLaunchConfigurationOutput) String() string {
  8373  	return awsutil.Prettify(s)
  8374  }
  8375  
  8376  // GoString returns the string representation.
  8377  //
  8378  // API parameter values that are decorated as "sensitive" in the API will not
  8379  // be included in the string output. The member name will be present, but the
  8380  // value will be replaced with "sensitive".
  8381  func (s DeleteLaunchConfigurationOutput) GoString() string {
  8382  	return s.String()
  8383  }
  8384  
  8385  type DeleteLifecycleHookInput struct {
  8386  	_ struct{} `type:"structure"`
  8387  
  8388  	// The name of the Auto Scaling group.
  8389  	//
  8390  	// AutoScalingGroupName is a required field
  8391  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  8392  
  8393  	// The name of the lifecycle hook.
  8394  	//
  8395  	// LifecycleHookName is a required field
  8396  	LifecycleHookName *string `min:"1" type:"string" required:"true"`
  8397  }
  8398  
  8399  // String returns the string representation.
  8400  //
  8401  // API parameter values that are decorated as "sensitive" in the API will not
  8402  // be included in the string output. The member name will be present, but the
  8403  // value will be replaced with "sensitive".
  8404  func (s DeleteLifecycleHookInput) String() string {
  8405  	return awsutil.Prettify(s)
  8406  }
  8407  
  8408  // GoString returns the string representation.
  8409  //
  8410  // API parameter values that are decorated as "sensitive" in the API will not
  8411  // be included in the string output. The member name will be present, but the
  8412  // value will be replaced with "sensitive".
  8413  func (s DeleteLifecycleHookInput) GoString() string {
  8414  	return s.String()
  8415  }
  8416  
  8417  // Validate inspects the fields of the type to determine if they are valid.
  8418  func (s *DeleteLifecycleHookInput) Validate() error {
  8419  	invalidParams := request.ErrInvalidParams{Context: "DeleteLifecycleHookInput"}
  8420  	if s.AutoScalingGroupName == nil {
  8421  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  8422  	}
  8423  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  8424  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  8425  	}
  8426  	if s.LifecycleHookName == nil {
  8427  		invalidParams.Add(request.NewErrParamRequired("LifecycleHookName"))
  8428  	}
  8429  	if s.LifecycleHookName != nil && len(*s.LifecycleHookName) < 1 {
  8430  		invalidParams.Add(request.NewErrParamMinLen("LifecycleHookName", 1))
  8431  	}
  8432  
  8433  	if invalidParams.Len() > 0 {
  8434  		return invalidParams
  8435  	}
  8436  	return nil
  8437  }
  8438  
  8439  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  8440  func (s *DeleteLifecycleHookInput) SetAutoScalingGroupName(v string) *DeleteLifecycleHookInput {
  8441  	s.AutoScalingGroupName = &v
  8442  	return s
  8443  }
  8444  
  8445  // SetLifecycleHookName sets the LifecycleHookName field's value.
  8446  func (s *DeleteLifecycleHookInput) SetLifecycleHookName(v string) *DeleteLifecycleHookInput {
  8447  	s.LifecycleHookName = &v
  8448  	return s
  8449  }
  8450  
  8451  type DeleteLifecycleHookOutput struct {
  8452  	_ struct{} `type:"structure"`
  8453  }
  8454  
  8455  // String returns the string representation.
  8456  //
  8457  // API parameter values that are decorated as "sensitive" in the API will not
  8458  // be included in the string output. The member name will be present, but the
  8459  // value will be replaced with "sensitive".
  8460  func (s DeleteLifecycleHookOutput) String() string {
  8461  	return awsutil.Prettify(s)
  8462  }
  8463  
  8464  // GoString returns the string representation.
  8465  //
  8466  // API parameter values that are decorated as "sensitive" in the API will not
  8467  // be included in the string output. The member name will be present, but the
  8468  // value will be replaced with "sensitive".
  8469  func (s DeleteLifecycleHookOutput) GoString() string {
  8470  	return s.String()
  8471  }
  8472  
  8473  type DeleteNotificationConfigurationInput struct {
  8474  	_ struct{} `type:"structure"`
  8475  
  8476  	// The name of the Auto Scaling group.
  8477  	//
  8478  	// AutoScalingGroupName is a required field
  8479  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  8480  
  8481  	// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
  8482  	// (Amazon SNS) topic.
  8483  	//
  8484  	// TopicARN is a required field
  8485  	TopicARN *string `min:"1" type:"string" required:"true"`
  8486  }
  8487  
  8488  // String returns the string representation.
  8489  //
  8490  // API parameter values that are decorated as "sensitive" in the API will not
  8491  // be included in the string output. The member name will be present, but the
  8492  // value will be replaced with "sensitive".
  8493  func (s DeleteNotificationConfigurationInput) String() string {
  8494  	return awsutil.Prettify(s)
  8495  }
  8496  
  8497  // GoString returns the string representation.
  8498  //
  8499  // API parameter values that are decorated as "sensitive" in the API will not
  8500  // be included in the string output. The member name will be present, but the
  8501  // value will be replaced with "sensitive".
  8502  func (s DeleteNotificationConfigurationInput) GoString() string {
  8503  	return s.String()
  8504  }
  8505  
  8506  // Validate inspects the fields of the type to determine if they are valid.
  8507  func (s *DeleteNotificationConfigurationInput) Validate() error {
  8508  	invalidParams := request.ErrInvalidParams{Context: "DeleteNotificationConfigurationInput"}
  8509  	if s.AutoScalingGroupName == nil {
  8510  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  8511  	}
  8512  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  8513  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  8514  	}
  8515  	if s.TopicARN == nil {
  8516  		invalidParams.Add(request.NewErrParamRequired("TopicARN"))
  8517  	}
  8518  	if s.TopicARN != nil && len(*s.TopicARN) < 1 {
  8519  		invalidParams.Add(request.NewErrParamMinLen("TopicARN", 1))
  8520  	}
  8521  
  8522  	if invalidParams.Len() > 0 {
  8523  		return invalidParams
  8524  	}
  8525  	return nil
  8526  }
  8527  
  8528  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  8529  func (s *DeleteNotificationConfigurationInput) SetAutoScalingGroupName(v string) *DeleteNotificationConfigurationInput {
  8530  	s.AutoScalingGroupName = &v
  8531  	return s
  8532  }
  8533  
  8534  // SetTopicARN sets the TopicARN field's value.
  8535  func (s *DeleteNotificationConfigurationInput) SetTopicARN(v string) *DeleteNotificationConfigurationInput {
  8536  	s.TopicARN = &v
  8537  	return s
  8538  }
  8539  
  8540  type DeleteNotificationConfigurationOutput struct {
  8541  	_ struct{} `type:"structure"`
  8542  }
  8543  
  8544  // String returns the string representation.
  8545  //
  8546  // API parameter values that are decorated as "sensitive" in the API will not
  8547  // be included in the string output. The member name will be present, but the
  8548  // value will be replaced with "sensitive".
  8549  func (s DeleteNotificationConfigurationOutput) String() string {
  8550  	return awsutil.Prettify(s)
  8551  }
  8552  
  8553  // GoString returns the string representation.
  8554  //
  8555  // API parameter values that are decorated as "sensitive" in the API will not
  8556  // be included in the string output. The member name will be present, but the
  8557  // value will be replaced with "sensitive".
  8558  func (s DeleteNotificationConfigurationOutput) GoString() string {
  8559  	return s.String()
  8560  }
  8561  
  8562  type DeletePolicyInput struct {
  8563  	_ struct{} `type:"structure"`
  8564  
  8565  	// The name of the Auto Scaling group.
  8566  	AutoScalingGroupName *string `min:"1" type:"string"`
  8567  
  8568  	// The name or Amazon Resource Name (ARN) of the policy.
  8569  	//
  8570  	// PolicyName is a required field
  8571  	PolicyName *string `min:"1" type:"string" required:"true"`
  8572  }
  8573  
  8574  // String returns the string representation.
  8575  //
  8576  // API parameter values that are decorated as "sensitive" in the API will not
  8577  // be included in the string output. The member name will be present, but the
  8578  // value will be replaced with "sensitive".
  8579  func (s DeletePolicyInput) String() string {
  8580  	return awsutil.Prettify(s)
  8581  }
  8582  
  8583  // GoString returns the string representation.
  8584  //
  8585  // API parameter values that are decorated as "sensitive" in the API will not
  8586  // be included in the string output. The member name will be present, but the
  8587  // value will be replaced with "sensitive".
  8588  func (s DeletePolicyInput) GoString() string {
  8589  	return s.String()
  8590  }
  8591  
  8592  // Validate inspects the fields of the type to determine if they are valid.
  8593  func (s *DeletePolicyInput) Validate() error {
  8594  	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
  8595  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  8596  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  8597  	}
  8598  	if s.PolicyName == nil {
  8599  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  8600  	}
  8601  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  8602  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  8603  	}
  8604  
  8605  	if invalidParams.Len() > 0 {
  8606  		return invalidParams
  8607  	}
  8608  	return nil
  8609  }
  8610  
  8611  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  8612  func (s *DeletePolicyInput) SetAutoScalingGroupName(v string) *DeletePolicyInput {
  8613  	s.AutoScalingGroupName = &v
  8614  	return s
  8615  }
  8616  
  8617  // SetPolicyName sets the PolicyName field's value.
  8618  func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
  8619  	s.PolicyName = &v
  8620  	return s
  8621  }
  8622  
  8623  type DeletePolicyOutput struct {
  8624  	_ struct{} `type:"structure"`
  8625  }
  8626  
  8627  // String returns the string representation.
  8628  //
  8629  // API parameter values that are decorated as "sensitive" in the API will not
  8630  // be included in the string output. The member name will be present, but the
  8631  // value will be replaced with "sensitive".
  8632  func (s DeletePolicyOutput) String() string {
  8633  	return awsutil.Prettify(s)
  8634  }
  8635  
  8636  // GoString returns the string representation.
  8637  //
  8638  // API parameter values that are decorated as "sensitive" in the API will not
  8639  // be included in the string output. The member name will be present, but the
  8640  // value will be replaced with "sensitive".
  8641  func (s DeletePolicyOutput) GoString() string {
  8642  	return s.String()
  8643  }
  8644  
  8645  type DeleteScheduledActionInput struct {
  8646  	_ struct{} `type:"structure"`
  8647  
  8648  	// The name of the Auto Scaling group.
  8649  	//
  8650  	// AutoScalingGroupName is a required field
  8651  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  8652  
  8653  	// The name of the action to delete.
  8654  	//
  8655  	// ScheduledActionName is a required field
  8656  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
  8657  }
  8658  
  8659  // String returns the string representation.
  8660  //
  8661  // API parameter values that are decorated as "sensitive" in the API will not
  8662  // be included in the string output. The member name will be present, but the
  8663  // value will be replaced with "sensitive".
  8664  func (s DeleteScheduledActionInput) String() string {
  8665  	return awsutil.Prettify(s)
  8666  }
  8667  
  8668  // GoString returns the string representation.
  8669  //
  8670  // API parameter values that are decorated as "sensitive" in the API will not
  8671  // be included in the string output. The member name will be present, but the
  8672  // value will be replaced with "sensitive".
  8673  func (s DeleteScheduledActionInput) GoString() string {
  8674  	return s.String()
  8675  }
  8676  
  8677  // Validate inspects the fields of the type to determine if they are valid.
  8678  func (s *DeleteScheduledActionInput) Validate() error {
  8679  	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledActionInput"}
  8680  	if s.AutoScalingGroupName == nil {
  8681  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  8682  	}
  8683  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  8684  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  8685  	}
  8686  	if s.ScheduledActionName == nil {
  8687  		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
  8688  	}
  8689  	if s.ScheduledActionName != nil && len(*s.ScheduledActionName) < 1 {
  8690  		invalidParams.Add(request.NewErrParamMinLen("ScheduledActionName", 1))
  8691  	}
  8692  
  8693  	if invalidParams.Len() > 0 {
  8694  		return invalidParams
  8695  	}
  8696  	return nil
  8697  }
  8698  
  8699  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  8700  func (s *DeleteScheduledActionInput) SetAutoScalingGroupName(v string) *DeleteScheduledActionInput {
  8701  	s.AutoScalingGroupName = &v
  8702  	return s
  8703  }
  8704  
  8705  // SetScheduledActionName sets the ScheduledActionName field's value.
  8706  func (s *DeleteScheduledActionInput) SetScheduledActionName(v string) *DeleteScheduledActionInput {
  8707  	s.ScheduledActionName = &v
  8708  	return s
  8709  }
  8710  
  8711  type DeleteScheduledActionOutput struct {
  8712  	_ struct{} `type:"structure"`
  8713  }
  8714  
  8715  // String returns the string representation.
  8716  //
  8717  // API parameter values that are decorated as "sensitive" in the API will not
  8718  // be included in the string output. The member name will be present, but the
  8719  // value will be replaced with "sensitive".
  8720  func (s DeleteScheduledActionOutput) String() string {
  8721  	return awsutil.Prettify(s)
  8722  }
  8723  
  8724  // GoString returns the string representation.
  8725  //
  8726  // API parameter values that are decorated as "sensitive" in the API will not
  8727  // be included in the string output. The member name will be present, but the
  8728  // value will be replaced with "sensitive".
  8729  func (s DeleteScheduledActionOutput) GoString() string {
  8730  	return s.String()
  8731  }
  8732  
  8733  type DeleteTagsInput struct {
  8734  	_ struct{} `type:"structure"`
  8735  
  8736  	// One or more tags.
  8737  	//
  8738  	// Tags is a required field
  8739  	Tags []*Tag `type:"list" required:"true"`
  8740  }
  8741  
  8742  // String returns the string representation.
  8743  //
  8744  // API parameter values that are decorated as "sensitive" in the API will not
  8745  // be included in the string output. The member name will be present, but the
  8746  // value will be replaced with "sensitive".
  8747  func (s DeleteTagsInput) String() string {
  8748  	return awsutil.Prettify(s)
  8749  }
  8750  
  8751  // GoString returns the string representation.
  8752  //
  8753  // API parameter values that are decorated as "sensitive" in the API will not
  8754  // be included in the string output. The member name will be present, but the
  8755  // value will be replaced with "sensitive".
  8756  func (s DeleteTagsInput) GoString() string {
  8757  	return s.String()
  8758  }
  8759  
  8760  // Validate inspects the fields of the type to determine if they are valid.
  8761  func (s *DeleteTagsInput) Validate() error {
  8762  	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
  8763  	if s.Tags == nil {
  8764  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8765  	}
  8766  	if s.Tags != nil {
  8767  		for i, v := range s.Tags {
  8768  			if v == nil {
  8769  				continue
  8770  			}
  8771  			if err := v.Validate(); err != nil {
  8772  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8773  			}
  8774  		}
  8775  	}
  8776  
  8777  	if invalidParams.Len() > 0 {
  8778  		return invalidParams
  8779  	}
  8780  	return nil
  8781  }
  8782  
  8783  // SetTags sets the Tags field's value.
  8784  func (s *DeleteTagsInput) SetTags(v []*Tag) *DeleteTagsInput {
  8785  	s.Tags = v
  8786  	return s
  8787  }
  8788  
  8789  type DeleteTagsOutput struct {
  8790  	_ struct{} `type:"structure"`
  8791  }
  8792  
  8793  // String returns the string representation.
  8794  //
  8795  // API parameter values that are decorated as "sensitive" in the API will not
  8796  // be included in the string output. The member name will be present, but the
  8797  // value will be replaced with "sensitive".
  8798  func (s DeleteTagsOutput) String() string {
  8799  	return awsutil.Prettify(s)
  8800  }
  8801  
  8802  // GoString returns the string representation.
  8803  //
  8804  // API parameter values that are decorated as "sensitive" in the API will not
  8805  // be included in the string output. The member name will be present, but the
  8806  // value will be replaced with "sensitive".
  8807  func (s DeleteTagsOutput) GoString() string {
  8808  	return s.String()
  8809  }
  8810  
  8811  type DeleteWarmPoolInput struct {
  8812  	_ struct{} `type:"structure"`
  8813  
  8814  	// The name of the Auto Scaling group.
  8815  	//
  8816  	// AutoScalingGroupName is a required field
  8817  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  8818  
  8819  	// Specifies that the warm pool is to be deleted along with all of its associated
  8820  	// instances, without waiting for all instances to be terminated. This parameter
  8821  	// also deletes any outstanding lifecycle actions associated with the warm pool
  8822  	// instances.
  8823  	ForceDelete *bool `type:"boolean"`
  8824  }
  8825  
  8826  // String returns the string representation.
  8827  //
  8828  // API parameter values that are decorated as "sensitive" in the API will not
  8829  // be included in the string output. The member name will be present, but the
  8830  // value will be replaced with "sensitive".
  8831  func (s DeleteWarmPoolInput) String() string {
  8832  	return awsutil.Prettify(s)
  8833  }
  8834  
  8835  // GoString returns the string representation.
  8836  //
  8837  // API parameter values that are decorated as "sensitive" in the API will not
  8838  // be included in the string output. The member name will be present, but the
  8839  // value will be replaced with "sensitive".
  8840  func (s DeleteWarmPoolInput) GoString() string {
  8841  	return s.String()
  8842  }
  8843  
  8844  // Validate inspects the fields of the type to determine if they are valid.
  8845  func (s *DeleteWarmPoolInput) Validate() error {
  8846  	invalidParams := request.ErrInvalidParams{Context: "DeleteWarmPoolInput"}
  8847  	if s.AutoScalingGroupName == nil {
  8848  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  8849  	}
  8850  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  8851  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  8852  	}
  8853  
  8854  	if invalidParams.Len() > 0 {
  8855  		return invalidParams
  8856  	}
  8857  	return nil
  8858  }
  8859  
  8860  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  8861  func (s *DeleteWarmPoolInput) SetAutoScalingGroupName(v string) *DeleteWarmPoolInput {
  8862  	s.AutoScalingGroupName = &v
  8863  	return s
  8864  }
  8865  
  8866  // SetForceDelete sets the ForceDelete field's value.
  8867  func (s *DeleteWarmPoolInput) SetForceDelete(v bool) *DeleteWarmPoolInput {
  8868  	s.ForceDelete = &v
  8869  	return s
  8870  }
  8871  
  8872  type DeleteWarmPoolOutput struct {
  8873  	_ struct{} `type:"structure"`
  8874  }
  8875  
  8876  // String returns the string representation.
  8877  //
  8878  // API parameter values that are decorated as "sensitive" in the API will not
  8879  // be included in the string output. The member name will be present, but the
  8880  // value will be replaced with "sensitive".
  8881  func (s DeleteWarmPoolOutput) String() string {
  8882  	return awsutil.Prettify(s)
  8883  }
  8884  
  8885  // GoString returns the string representation.
  8886  //
  8887  // API parameter values that are decorated as "sensitive" in the API will not
  8888  // be included in the string output. The member name will be present, but the
  8889  // value will be replaced with "sensitive".
  8890  func (s DeleteWarmPoolOutput) GoString() string {
  8891  	return s.String()
  8892  }
  8893  
  8894  type DescribeAccountLimitsInput struct {
  8895  	_ struct{} `type:"structure"`
  8896  }
  8897  
  8898  // String returns the string representation.
  8899  //
  8900  // API parameter values that are decorated as "sensitive" in the API will not
  8901  // be included in the string output. The member name will be present, but the
  8902  // value will be replaced with "sensitive".
  8903  func (s DescribeAccountLimitsInput) String() string {
  8904  	return awsutil.Prettify(s)
  8905  }
  8906  
  8907  // GoString returns the string representation.
  8908  //
  8909  // API parameter values that are decorated as "sensitive" in the API will not
  8910  // be included in the string output. The member name will be present, but the
  8911  // value will be replaced with "sensitive".
  8912  func (s DescribeAccountLimitsInput) GoString() string {
  8913  	return s.String()
  8914  }
  8915  
  8916  type DescribeAccountLimitsOutput struct {
  8917  	_ struct{} `type:"structure"`
  8918  
  8919  	// The maximum number of groups allowed for your account. The default is 200
  8920  	// groups per Region.
  8921  	MaxNumberOfAutoScalingGroups *int64 `type:"integer"`
  8922  
  8923  	// The maximum number of launch configurations allowed for your account. The
  8924  	// default is 200 launch configurations per Region.
  8925  	MaxNumberOfLaunchConfigurations *int64 `type:"integer"`
  8926  
  8927  	// The current number of groups for your account.
  8928  	NumberOfAutoScalingGroups *int64 `type:"integer"`
  8929  
  8930  	// The current number of launch configurations for your account.
  8931  	NumberOfLaunchConfigurations *int64 `type:"integer"`
  8932  }
  8933  
  8934  // String returns the string representation.
  8935  //
  8936  // API parameter values that are decorated as "sensitive" in the API will not
  8937  // be included in the string output. The member name will be present, but the
  8938  // value will be replaced with "sensitive".
  8939  func (s DescribeAccountLimitsOutput) String() string {
  8940  	return awsutil.Prettify(s)
  8941  }
  8942  
  8943  // GoString returns the string representation.
  8944  //
  8945  // API parameter values that are decorated as "sensitive" in the API will not
  8946  // be included in the string output. The member name will be present, but the
  8947  // value will be replaced with "sensitive".
  8948  func (s DescribeAccountLimitsOutput) GoString() string {
  8949  	return s.String()
  8950  }
  8951  
  8952  // SetMaxNumberOfAutoScalingGroups sets the MaxNumberOfAutoScalingGroups field's value.
  8953  func (s *DescribeAccountLimitsOutput) SetMaxNumberOfAutoScalingGroups(v int64) *DescribeAccountLimitsOutput {
  8954  	s.MaxNumberOfAutoScalingGroups = &v
  8955  	return s
  8956  }
  8957  
  8958  // SetMaxNumberOfLaunchConfigurations sets the MaxNumberOfLaunchConfigurations field's value.
  8959  func (s *DescribeAccountLimitsOutput) SetMaxNumberOfLaunchConfigurations(v int64) *DescribeAccountLimitsOutput {
  8960  	s.MaxNumberOfLaunchConfigurations = &v
  8961  	return s
  8962  }
  8963  
  8964  // SetNumberOfAutoScalingGroups sets the NumberOfAutoScalingGroups field's value.
  8965  func (s *DescribeAccountLimitsOutput) SetNumberOfAutoScalingGroups(v int64) *DescribeAccountLimitsOutput {
  8966  	s.NumberOfAutoScalingGroups = &v
  8967  	return s
  8968  }
  8969  
  8970  // SetNumberOfLaunchConfigurations sets the NumberOfLaunchConfigurations field's value.
  8971  func (s *DescribeAccountLimitsOutput) SetNumberOfLaunchConfigurations(v int64) *DescribeAccountLimitsOutput {
  8972  	s.NumberOfLaunchConfigurations = &v
  8973  	return s
  8974  }
  8975  
  8976  type DescribeAdjustmentTypesInput struct {
  8977  	_ struct{} `type:"structure"`
  8978  }
  8979  
  8980  // String returns the string representation.
  8981  //
  8982  // API parameter values that are decorated as "sensitive" in the API will not
  8983  // be included in the string output. The member name will be present, but the
  8984  // value will be replaced with "sensitive".
  8985  func (s DescribeAdjustmentTypesInput) String() string {
  8986  	return awsutil.Prettify(s)
  8987  }
  8988  
  8989  // GoString returns the string representation.
  8990  //
  8991  // API parameter values that are decorated as "sensitive" in the API will not
  8992  // be included in the string output. The member name will be present, but the
  8993  // value will be replaced with "sensitive".
  8994  func (s DescribeAdjustmentTypesInput) GoString() string {
  8995  	return s.String()
  8996  }
  8997  
  8998  type DescribeAdjustmentTypesOutput struct {
  8999  	_ struct{} `type:"structure"`
  9000  
  9001  	// The policy adjustment types.
  9002  	AdjustmentTypes []*AdjustmentType `type:"list"`
  9003  }
  9004  
  9005  // String returns the string representation.
  9006  //
  9007  // API parameter values that are decorated as "sensitive" in the API will not
  9008  // be included in the string output. The member name will be present, but the
  9009  // value will be replaced with "sensitive".
  9010  func (s DescribeAdjustmentTypesOutput) String() string {
  9011  	return awsutil.Prettify(s)
  9012  }
  9013  
  9014  // GoString returns the string representation.
  9015  //
  9016  // API parameter values that are decorated as "sensitive" in the API will not
  9017  // be included in the string output. The member name will be present, but the
  9018  // value will be replaced with "sensitive".
  9019  func (s DescribeAdjustmentTypesOutput) GoString() string {
  9020  	return s.String()
  9021  }
  9022  
  9023  // SetAdjustmentTypes sets the AdjustmentTypes field's value.
  9024  func (s *DescribeAdjustmentTypesOutput) SetAdjustmentTypes(v []*AdjustmentType) *DescribeAdjustmentTypesOutput {
  9025  	s.AdjustmentTypes = v
  9026  	return s
  9027  }
  9028  
  9029  type DescribeAutoScalingGroupsInput struct {
  9030  	_ struct{} `type:"structure"`
  9031  
  9032  	// The names of the Auto Scaling groups. By default, you can only specify up
  9033  	// to 50 names. You can optionally increase this limit using the MaxRecords
  9034  	// parameter.
  9035  	//
  9036  	// If you omit this parameter, all Auto Scaling groups are described.
  9037  	AutoScalingGroupNames []*string `type:"list"`
  9038  
  9039  	// The maximum number of items to return with this call. The default value is
  9040  	// 50 and the maximum value is 100.
  9041  	MaxRecords *int64 `type:"integer"`
  9042  
  9043  	// The token for the next set of items to return. (You received this token from
  9044  	// a previous call.)
  9045  	NextToken *string `type:"string"`
  9046  }
  9047  
  9048  // String returns the string representation.
  9049  //
  9050  // API parameter values that are decorated as "sensitive" in the API will not
  9051  // be included in the string output. The member name will be present, but the
  9052  // value will be replaced with "sensitive".
  9053  func (s DescribeAutoScalingGroupsInput) String() string {
  9054  	return awsutil.Prettify(s)
  9055  }
  9056  
  9057  // GoString returns the string representation.
  9058  //
  9059  // API parameter values that are decorated as "sensitive" in the API will not
  9060  // be included in the string output. The member name will be present, but the
  9061  // value will be replaced with "sensitive".
  9062  func (s DescribeAutoScalingGroupsInput) GoString() string {
  9063  	return s.String()
  9064  }
  9065  
  9066  // SetAutoScalingGroupNames sets the AutoScalingGroupNames field's value.
  9067  func (s *DescribeAutoScalingGroupsInput) SetAutoScalingGroupNames(v []*string) *DescribeAutoScalingGroupsInput {
  9068  	s.AutoScalingGroupNames = v
  9069  	return s
  9070  }
  9071  
  9072  // SetMaxRecords sets the MaxRecords field's value.
  9073  func (s *DescribeAutoScalingGroupsInput) SetMaxRecords(v int64) *DescribeAutoScalingGroupsInput {
  9074  	s.MaxRecords = &v
  9075  	return s
  9076  }
  9077  
  9078  // SetNextToken sets the NextToken field's value.
  9079  func (s *DescribeAutoScalingGroupsInput) SetNextToken(v string) *DescribeAutoScalingGroupsInput {
  9080  	s.NextToken = &v
  9081  	return s
  9082  }
  9083  
  9084  type DescribeAutoScalingGroupsOutput struct {
  9085  	_ struct{} `type:"structure"`
  9086  
  9087  	// The groups.
  9088  	//
  9089  	// AutoScalingGroups is a required field
  9090  	AutoScalingGroups []*Group `type:"list" required:"true"`
  9091  
  9092  	// A string that indicates that the response contains more items than can be
  9093  	// returned in a single response. To receive additional items, specify this
  9094  	// string for the NextToken value when requesting the next set of items. This
  9095  	// value is null when there are no more items to return.
  9096  	NextToken *string `type:"string"`
  9097  }
  9098  
  9099  // String returns the string representation.
  9100  //
  9101  // API parameter values that are decorated as "sensitive" in the API will not
  9102  // be included in the string output. The member name will be present, but the
  9103  // value will be replaced with "sensitive".
  9104  func (s DescribeAutoScalingGroupsOutput) String() string {
  9105  	return awsutil.Prettify(s)
  9106  }
  9107  
  9108  // GoString returns the string representation.
  9109  //
  9110  // API parameter values that are decorated as "sensitive" in the API will not
  9111  // be included in the string output. The member name will be present, but the
  9112  // value will be replaced with "sensitive".
  9113  func (s DescribeAutoScalingGroupsOutput) GoString() string {
  9114  	return s.String()
  9115  }
  9116  
  9117  // SetAutoScalingGroups sets the AutoScalingGroups field's value.
  9118  func (s *DescribeAutoScalingGroupsOutput) SetAutoScalingGroups(v []*Group) *DescribeAutoScalingGroupsOutput {
  9119  	s.AutoScalingGroups = v
  9120  	return s
  9121  }
  9122  
  9123  // SetNextToken sets the NextToken field's value.
  9124  func (s *DescribeAutoScalingGroupsOutput) SetNextToken(v string) *DescribeAutoScalingGroupsOutput {
  9125  	s.NextToken = &v
  9126  	return s
  9127  }
  9128  
  9129  type DescribeAutoScalingInstancesInput struct {
  9130  	_ struct{} `type:"structure"`
  9131  
  9132  	// The IDs of the instances. If you omit this parameter, all Auto Scaling instances
  9133  	// are described. If you specify an ID that does not exist, it is ignored with
  9134  	// no error.
  9135  	//
  9136  	// Array Members: Maximum number of 50 items.
  9137  	InstanceIds []*string `type:"list"`
  9138  
  9139  	// The maximum number of items to return with this call. The default value is
  9140  	// 50 and the maximum value is 50.
  9141  	MaxRecords *int64 `type:"integer"`
  9142  
  9143  	// The token for the next set of items to return. (You received this token from
  9144  	// a previous call.)
  9145  	NextToken *string `type:"string"`
  9146  }
  9147  
  9148  // String returns the string representation.
  9149  //
  9150  // API parameter values that are decorated as "sensitive" in the API will not
  9151  // be included in the string output. The member name will be present, but the
  9152  // value will be replaced with "sensitive".
  9153  func (s DescribeAutoScalingInstancesInput) String() string {
  9154  	return awsutil.Prettify(s)
  9155  }
  9156  
  9157  // GoString returns the string representation.
  9158  //
  9159  // API parameter values that are decorated as "sensitive" in the API will not
  9160  // be included in the string output. The member name will be present, but the
  9161  // value will be replaced with "sensitive".
  9162  func (s DescribeAutoScalingInstancesInput) GoString() string {
  9163  	return s.String()
  9164  }
  9165  
  9166  // SetInstanceIds sets the InstanceIds field's value.
  9167  func (s *DescribeAutoScalingInstancesInput) SetInstanceIds(v []*string) *DescribeAutoScalingInstancesInput {
  9168  	s.InstanceIds = v
  9169  	return s
  9170  }
  9171  
  9172  // SetMaxRecords sets the MaxRecords field's value.
  9173  func (s *DescribeAutoScalingInstancesInput) SetMaxRecords(v int64) *DescribeAutoScalingInstancesInput {
  9174  	s.MaxRecords = &v
  9175  	return s
  9176  }
  9177  
  9178  // SetNextToken sets the NextToken field's value.
  9179  func (s *DescribeAutoScalingInstancesInput) SetNextToken(v string) *DescribeAutoScalingInstancesInput {
  9180  	s.NextToken = &v
  9181  	return s
  9182  }
  9183  
  9184  type DescribeAutoScalingInstancesOutput struct {
  9185  	_ struct{} `type:"structure"`
  9186  
  9187  	// The instances.
  9188  	AutoScalingInstances []*InstanceDetails `type:"list"`
  9189  
  9190  	// A string that indicates that the response contains more items than can be
  9191  	// returned in a single response. To receive additional items, specify this
  9192  	// string for the NextToken value when requesting the next set of items. This
  9193  	// value is null when there are no more items to return.
  9194  	NextToken *string `type:"string"`
  9195  }
  9196  
  9197  // String returns the string representation.
  9198  //
  9199  // API parameter values that are decorated as "sensitive" in the API will not
  9200  // be included in the string output. The member name will be present, but the
  9201  // value will be replaced with "sensitive".
  9202  func (s DescribeAutoScalingInstancesOutput) String() string {
  9203  	return awsutil.Prettify(s)
  9204  }
  9205  
  9206  // GoString returns the string representation.
  9207  //
  9208  // API parameter values that are decorated as "sensitive" in the API will not
  9209  // be included in the string output. The member name will be present, but the
  9210  // value will be replaced with "sensitive".
  9211  func (s DescribeAutoScalingInstancesOutput) GoString() string {
  9212  	return s.String()
  9213  }
  9214  
  9215  // SetAutoScalingInstances sets the AutoScalingInstances field's value.
  9216  func (s *DescribeAutoScalingInstancesOutput) SetAutoScalingInstances(v []*InstanceDetails) *DescribeAutoScalingInstancesOutput {
  9217  	s.AutoScalingInstances = v
  9218  	return s
  9219  }
  9220  
  9221  // SetNextToken sets the NextToken field's value.
  9222  func (s *DescribeAutoScalingInstancesOutput) SetNextToken(v string) *DescribeAutoScalingInstancesOutput {
  9223  	s.NextToken = &v
  9224  	return s
  9225  }
  9226  
  9227  type DescribeAutoScalingNotificationTypesInput struct {
  9228  	_ struct{} `type:"structure"`
  9229  }
  9230  
  9231  // String returns the string representation.
  9232  //
  9233  // API parameter values that are decorated as "sensitive" in the API will not
  9234  // be included in the string output. The member name will be present, but the
  9235  // value will be replaced with "sensitive".
  9236  func (s DescribeAutoScalingNotificationTypesInput) String() string {
  9237  	return awsutil.Prettify(s)
  9238  }
  9239  
  9240  // GoString returns the string representation.
  9241  //
  9242  // API parameter values that are decorated as "sensitive" in the API will not
  9243  // be included in the string output. The member name will be present, but the
  9244  // value will be replaced with "sensitive".
  9245  func (s DescribeAutoScalingNotificationTypesInput) GoString() string {
  9246  	return s.String()
  9247  }
  9248  
  9249  type DescribeAutoScalingNotificationTypesOutput struct {
  9250  	_ struct{} `type:"structure"`
  9251  
  9252  	// The notification types.
  9253  	AutoScalingNotificationTypes []*string `type:"list"`
  9254  }
  9255  
  9256  // String returns the string representation.
  9257  //
  9258  // API parameter values that are decorated as "sensitive" in the API will not
  9259  // be included in the string output. The member name will be present, but the
  9260  // value will be replaced with "sensitive".
  9261  func (s DescribeAutoScalingNotificationTypesOutput) String() string {
  9262  	return awsutil.Prettify(s)
  9263  }
  9264  
  9265  // GoString returns the string representation.
  9266  //
  9267  // API parameter values that are decorated as "sensitive" in the API will not
  9268  // be included in the string output. The member name will be present, but the
  9269  // value will be replaced with "sensitive".
  9270  func (s DescribeAutoScalingNotificationTypesOutput) GoString() string {
  9271  	return s.String()
  9272  }
  9273  
  9274  // SetAutoScalingNotificationTypes sets the AutoScalingNotificationTypes field's value.
  9275  func (s *DescribeAutoScalingNotificationTypesOutput) SetAutoScalingNotificationTypes(v []*string) *DescribeAutoScalingNotificationTypesOutput {
  9276  	s.AutoScalingNotificationTypes = v
  9277  	return s
  9278  }
  9279  
  9280  type DescribeInstanceRefreshesInput struct {
  9281  	_ struct{} `type:"structure"`
  9282  
  9283  	// The name of the Auto Scaling group.
  9284  	//
  9285  	// AutoScalingGroupName is a required field
  9286  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  9287  
  9288  	// One or more instance refresh IDs.
  9289  	InstanceRefreshIds []*string `type:"list"`
  9290  
  9291  	// The maximum number of items to return with this call. The default value is
  9292  	// 50 and the maximum value is 100.
  9293  	MaxRecords *int64 `type:"integer"`
  9294  
  9295  	// The token for the next set of items to return. (You received this token from
  9296  	// a previous call.)
  9297  	NextToken *string `type:"string"`
  9298  }
  9299  
  9300  // String returns the string representation.
  9301  //
  9302  // API parameter values that are decorated as "sensitive" in the API will not
  9303  // be included in the string output. The member name will be present, but the
  9304  // value will be replaced with "sensitive".
  9305  func (s DescribeInstanceRefreshesInput) String() string {
  9306  	return awsutil.Prettify(s)
  9307  }
  9308  
  9309  // GoString returns the string representation.
  9310  //
  9311  // API parameter values that are decorated as "sensitive" in the API will not
  9312  // be included in the string output. The member name will be present, but the
  9313  // value will be replaced with "sensitive".
  9314  func (s DescribeInstanceRefreshesInput) GoString() string {
  9315  	return s.String()
  9316  }
  9317  
  9318  // Validate inspects the fields of the type to determine if they are valid.
  9319  func (s *DescribeInstanceRefreshesInput) Validate() error {
  9320  	invalidParams := request.ErrInvalidParams{Context: "DescribeInstanceRefreshesInput"}
  9321  	if s.AutoScalingGroupName == nil {
  9322  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  9323  	}
  9324  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  9325  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  9326  	}
  9327  
  9328  	if invalidParams.Len() > 0 {
  9329  		return invalidParams
  9330  	}
  9331  	return nil
  9332  }
  9333  
  9334  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  9335  func (s *DescribeInstanceRefreshesInput) SetAutoScalingGroupName(v string) *DescribeInstanceRefreshesInput {
  9336  	s.AutoScalingGroupName = &v
  9337  	return s
  9338  }
  9339  
  9340  // SetInstanceRefreshIds sets the InstanceRefreshIds field's value.
  9341  func (s *DescribeInstanceRefreshesInput) SetInstanceRefreshIds(v []*string) *DescribeInstanceRefreshesInput {
  9342  	s.InstanceRefreshIds = v
  9343  	return s
  9344  }
  9345  
  9346  // SetMaxRecords sets the MaxRecords field's value.
  9347  func (s *DescribeInstanceRefreshesInput) SetMaxRecords(v int64) *DescribeInstanceRefreshesInput {
  9348  	s.MaxRecords = &v
  9349  	return s
  9350  }
  9351  
  9352  // SetNextToken sets the NextToken field's value.
  9353  func (s *DescribeInstanceRefreshesInput) SetNextToken(v string) *DescribeInstanceRefreshesInput {
  9354  	s.NextToken = &v
  9355  	return s
  9356  }
  9357  
  9358  type DescribeInstanceRefreshesOutput struct {
  9359  	_ struct{} `type:"structure"`
  9360  
  9361  	// The instance refreshes for the specified group.
  9362  	InstanceRefreshes []*InstanceRefresh `type:"list"`
  9363  
  9364  	// A string that indicates that the response contains more items than can be
  9365  	// returned in a single response. To receive additional items, specify this
  9366  	// string for the NextToken value when requesting the next set of items. This
  9367  	// value is null when there are no more items to return.
  9368  	NextToken *string `type:"string"`
  9369  }
  9370  
  9371  // String returns the string representation.
  9372  //
  9373  // API parameter values that are decorated as "sensitive" in the API will not
  9374  // be included in the string output. The member name will be present, but the
  9375  // value will be replaced with "sensitive".
  9376  func (s DescribeInstanceRefreshesOutput) String() string {
  9377  	return awsutil.Prettify(s)
  9378  }
  9379  
  9380  // GoString returns the string representation.
  9381  //
  9382  // API parameter values that are decorated as "sensitive" in the API will not
  9383  // be included in the string output. The member name will be present, but the
  9384  // value will be replaced with "sensitive".
  9385  func (s DescribeInstanceRefreshesOutput) GoString() string {
  9386  	return s.String()
  9387  }
  9388  
  9389  // SetInstanceRefreshes sets the InstanceRefreshes field's value.
  9390  func (s *DescribeInstanceRefreshesOutput) SetInstanceRefreshes(v []*InstanceRefresh) *DescribeInstanceRefreshesOutput {
  9391  	s.InstanceRefreshes = v
  9392  	return s
  9393  }
  9394  
  9395  // SetNextToken sets the NextToken field's value.
  9396  func (s *DescribeInstanceRefreshesOutput) SetNextToken(v string) *DescribeInstanceRefreshesOutput {
  9397  	s.NextToken = &v
  9398  	return s
  9399  }
  9400  
  9401  type DescribeLaunchConfigurationsInput struct {
  9402  	_ struct{} `type:"structure"`
  9403  
  9404  	// The launch configuration names. If you omit this parameter, all launch configurations
  9405  	// are described.
  9406  	//
  9407  	// Array Members: Maximum number of 50 items.
  9408  	LaunchConfigurationNames []*string `type:"list"`
  9409  
  9410  	// The maximum number of items to return with this call. The default value is
  9411  	// 50 and the maximum value is 100.
  9412  	MaxRecords *int64 `type:"integer"`
  9413  
  9414  	// The token for the next set of items to return. (You received this token from
  9415  	// a previous call.)
  9416  	NextToken *string `type:"string"`
  9417  }
  9418  
  9419  // String returns the string representation.
  9420  //
  9421  // API parameter values that are decorated as "sensitive" in the API will not
  9422  // be included in the string output. The member name will be present, but the
  9423  // value will be replaced with "sensitive".
  9424  func (s DescribeLaunchConfigurationsInput) String() string {
  9425  	return awsutil.Prettify(s)
  9426  }
  9427  
  9428  // GoString returns the string representation.
  9429  //
  9430  // API parameter values that are decorated as "sensitive" in the API will not
  9431  // be included in the string output. The member name will be present, but the
  9432  // value will be replaced with "sensitive".
  9433  func (s DescribeLaunchConfigurationsInput) GoString() string {
  9434  	return s.String()
  9435  }
  9436  
  9437  // SetLaunchConfigurationNames sets the LaunchConfigurationNames field's value.
  9438  func (s *DescribeLaunchConfigurationsInput) SetLaunchConfigurationNames(v []*string) *DescribeLaunchConfigurationsInput {
  9439  	s.LaunchConfigurationNames = v
  9440  	return s
  9441  }
  9442  
  9443  // SetMaxRecords sets the MaxRecords field's value.
  9444  func (s *DescribeLaunchConfigurationsInput) SetMaxRecords(v int64) *DescribeLaunchConfigurationsInput {
  9445  	s.MaxRecords = &v
  9446  	return s
  9447  }
  9448  
  9449  // SetNextToken sets the NextToken field's value.
  9450  func (s *DescribeLaunchConfigurationsInput) SetNextToken(v string) *DescribeLaunchConfigurationsInput {
  9451  	s.NextToken = &v
  9452  	return s
  9453  }
  9454  
  9455  type DescribeLaunchConfigurationsOutput struct {
  9456  	_ struct{} `type:"structure"`
  9457  
  9458  	// The launch configurations.
  9459  	//
  9460  	// LaunchConfigurations is a required field
  9461  	LaunchConfigurations []*LaunchConfiguration `type:"list" required:"true"`
  9462  
  9463  	// A string that indicates that the response contains more items than can be
  9464  	// returned in a single response. To receive additional items, specify this
  9465  	// string for the NextToken value when requesting the next set of items. This
  9466  	// value is null when there are no more items to return.
  9467  	NextToken *string `type:"string"`
  9468  }
  9469  
  9470  // String returns the string representation.
  9471  //
  9472  // API parameter values that are decorated as "sensitive" in the API will not
  9473  // be included in the string output. The member name will be present, but the
  9474  // value will be replaced with "sensitive".
  9475  func (s DescribeLaunchConfigurationsOutput) String() string {
  9476  	return awsutil.Prettify(s)
  9477  }
  9478  
  9479  // GoString returns the string representation.
  9480  //
  9481  // API parameter values that are decorated as "sensitive" in the API will not
  9482  // be included in the string output. The member name will be present, but the
  9483  // value will be replaced with "sensitive".
  9484  func (s DescribeLaunchConfigurationsOutput) GoString() string {
  9485  	return s.String()
  9486  }
  9487  
  9488  // SetLaunchConfigurations sets the LaunchConfigurations field's value.
  9489  func (s *DescribeLaunchConfigurationsOutput) SetLaunchConfigurations(v []*LaunchConfiguration) *DescribeLaunchConfigurationsOutput {
  9490  	s.LaunchConfigurations = v
  9491  	return s
  9492  }
  9493  
  9494  // SetNextToken sets the NextToken field's value.
  9495  func (s *DescribeLaunchConfigurationsOutput) SetNextToken(v string) *DescribeLaunchConfigurationsOutput {
  9496  	s.NextToken = &v
  9497  	return s
  9498  }
  9499  
  9500  type DescribeLifecycleHookTypesInput struct {
  9501  	_ struct{} `type:"structure"`
  9502  }
  9503  
  9504  // String returns the string representation.
  9505  //
  9506  // API parameter values that are decorated as "sensitive" in the API will not
  9507  // be included in the string output. The member name will be present, but the
  9508  // value will be replaced with "sensitive".
  9509  func (s DescribeLifecycleHookTypesInput) String() string {
  9510  	return awsutil.Prettify(s)
  9511  }
  9512  
  9513  // GoString returns the string representation.
  9514  //
  9515  // API parameter values that are decorated as "sensitive" in the API will not
  9516  // be included in the string output. The member name will be present, but the
  9517  // value will be replaced with "sensitive".
  9518  func (s DescribeLifecycleHookTypesInput) GoString() string {
  9519  	return s.String()
  9520  }
  9521  
  9522  type DescribeLifecycleHookTypesOutput struct {
  9523  	_ struct{} `type:"structure"`
  9524  
  9525  	// The lifecycle hook types.
  9526  	LifecycleHookTypes []*string `type:"list"`
  9527  }
  9528  
  9529  // String returns the string representation.
  9530  //
  9531  // API parameter values that are decorated as "sensitive" in the API will not
  9532  // be included in the string output. The member name will be present, but the
  9533  // value will be replaced with "sensitive".
  9534  func (s DescribeLifecycleHookTypesOutput) String() string {
  9535  	return awsutil.Prettify(s)
  9536  }
  9537  
  9538  // GoString returns the string representation.
  9539  //
  9540  // API parameter values that are decorated as "sensitive" in the API will not
  9541  // be included in the string output. The member name will be present, but the
  9542  // value will be replaced with "sensitive".
  9543  func (s DescribeLifecycleHookTypesOutput) GoString() string {
  9544  	return s.String()
  9545  }
  9546  
  9547  // SetLifecycleHookTypes sets the LifecycleHookTypes field's value.
  9548  func (s *DescribeLifecycleHookTypesOutput) SetLifecycleHookTypes(v []*string) *DescribeLifecycleHookTypesOutput {
  9549  	s.LifecycleHookTypes = v
  9550  	return s
  9551  }
  9552  
  9553  type DescribeLifecycleHooksInput struct {
  9554  	_ struct{} `type:"structure"`
  9555  
  9556  	// The name of the Auto Scaling group.
  9557  	//
  9558  	// AutoScalingGroupName is a required field
  9559  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  9560  
  9561  	// The names of one or more lifecycle hooks. If you omit this parameter, all
  9562  	// lifecycle hooks are described.
  9563  	LifecycleHookNames []*string `type:"list"`
  9564  }
  9565  
  9566  // String returns the string representation.
  9567  //
  9568  // API parameter values that are decorated as "sensitive" in the API will not
  9569  // be included in the string output. The member name will be present, but the
  9570  // value will be replaced with "sensitive".
  9571  func (s DescribeLifecycleHooksInput) String() string {
  9572  	return awsutil.Prettify(s)
  9573  }
  9574  
  9575  // GoString returns the string representation.
  9576  //
  9577  // API parameter values that are decorated as "sensitive" in the API will not
  9578  // be included in the string output. The member name will be present, but the
  9579  // value will be replaced with "sensitive".
  9580  func (s DescribeLifecycleHooksInput) GoString() string {
  9581  	return s.String()
  9582  }
  9583  
  9584  // Validate inspects the fields of the type to determine if they are valid.
  9585  func (s *DescribeLifecycleHooksInput) Validate() error {
  9586  	invalidParams := request.ErrInvalidParams{Context: "DescribeLifecycleHooksInput"}
  9587  	if s.AutoScalingGroupName == nil {
  9588  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  9589  	}
  9590  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  9591  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  9592  	}
  9593  
  9594  	if invalidParams.Len() > 0 {
  9595  		return invalidParams
  9596  	}
  9597  	return nil
  9598  }
  9599  
  9600  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  9601  func (s *DescribeLifecycleHooksInput) SetAutoScalingGroupName(v string) *DescribeLifecycleHooksInput {
  9602  	s.AutoScalingGroupName = &v
  9603  	return s
  9604  }
  9605  
  9606  // SetLifecycleHookNames sets the LifecycleHookNames field's value.
  9607  func (s *DescribeLifecycleHooksInput) SetLifecycleHookNames(v []*string) *DescribeLifecycleHooksInput {
  9608  	s.LifecycleHookNames = v
  9609  	return s
  9610  }
  9611  
  9612  type DescribeLifecycleHooksOutput struct {
  9613  	_ struct{} `type:"structure"`
  9614  
  9615  	// The lifecycle hooks for the specified group.
  9616  	LifecycleHooks []*LifecycleHook `type:"list"`
  9617  }
  9618  
  9619  // String returns the string representation.
  9620  //
  9621  // API parameter values that are decorated as "sensitive" in the API will not
  9622  // be included in the string output. The member name will be present, but the
  9623  // value will be replaced with "sensitive".
  9624  func (s DescribeLifecycleHooksOutput) String() string {
  9625  	return awsutil.Prettify(s)
  9626  }
  9627  
  9628  // GoString returns the string representation.
  9629  //
  9630  // API parameter values that are decorated as "sensitive" in the API will not
  9631  // be included in the string output. The member name will be present, but the
  9632  // value will be replaced with "sensitive".
  9633  func (s DescribeLifecycleHooksOutput) GoString() string {
  9634  	return s.String()
  9635  }
  9636  
  9637  // SetLifecycleHooks sets the LifecycleHooks field's value.
  9638  func (s *DescribeLifecycleHooksOutput) SetLifecycleHooks(v []*LifecycleHook) *DescribeLifecycleHooksOutput {
  9639  	s.LifecycleHooks = v
  9640  	return s
  9641  }
  9642  
  9643  type DescribeLoadBalancerTargetGroupsInput struct {
  9644  	_ struct{} `type:"structure"`
  9645  
  9646  	// The name of the Auto Scaling group.
  9647  	//
  9648  	// AutoScalingGroupName is a required field
  9649  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  9650  
  9651  	// The maximum number of items to return with this call. The default value is
  9652  	// 100 and the maximum value is 100.
  9653  	MaxRecords *int64 `type:"integer"`
  9654  
  9655  	// The token for the next set of items to return. (You received this token from
  9656  	// a previous call.)
  9657  	NextToken *string `type:"string"`
  9658  }
  9659  
  9660  // String returns the string representation.
  9661  //
  9662  // API parameter values that are decorated as "sensitive" in the API will not
  9663  // be included in the string output. The member name will be present, but the
  9664  // value will be replaced with "sensitive".
  9665  func (s DescribeLoadBalancerTargetGroupsInput) String() string {
  9666  	return awsutil.Prettify(s)
  9667  }
  9668  
  9669  // GoString returns the string representation.
  9670  //
  9671  // API parameter values that are decorated as "sensitive" in the API will not
  9672  // be included in the string output. The member name will be present, but the
  9673  // value will be replaced with "sensitive".
  9674  func (s DescribeLoadBalancerTargetGroupsInput) GoString() string {
  9675  	return s.String()
  9676  }
  9677  
  9678  // Validate inspects the fields of the type to determine if they are valid.
  9679  func (s *DescribeLoadBalancerTargetGroupsInput) Validate() error {
  9680  	invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancerTargetGroupsInput"}
  9681  	if s.AutoScalingGroupName == nil {
  9682  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  9683  	}
  9684  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  9685  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  9686  	}
  9687  
  9688  	if invalidParams.Len() > 0 {
  9689  		return invalidParams
  9690  	}
  9691  	return nil
  9692  }
  9693  
  9694  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  9695  func (s *DescribeLoadBalancerTargetGroupsInput) SetAutoScalingGroupName(v string) *DescribeLoadBalancerTargetGroupsInput {
  9696  	s.AutoScalingGroupName = &v
  9697  	return s
  9698  }
  9699  
  9700  // SetMaxRecords sets the MaxRecords field's value.
  9701  func (s *DescribeLoadBalancerTargetGroupsInput) SetMaxRecords(v int64) *DescribeLoadBalancerTargetGroupsInput {
  9702  	s.MaxRecords = &v
  9703  	return s
  9704  }
  9705  
  9706  // SetNextToken sets the NextToken field's value.
  9707  func (s *DescribeLoadBalancerTargetGroupsInput) SetNextToken(v string) *DescribeLoadBalancerTargetGroupsInput {
  9708  	s.NextToken = &v
  9709  	return s
  9710  }
  9711  
  9712  type DescribeLoadBalancerTargetGroupsOutput struct {
  9713  	_ struct{} `type:"structure"`
  9714  
  9715  	// Information about the target groups.
  9716  	LoadBalancerTargetGroups []*LoadBalancerTargetGroupState `type:"list"`
  9717  
  9718  	// A string that indicates that the response contains more items than can be
  9719  	// returned in a single response. To receive additional items, specify this
  9720  	// string for the NextToken value when requesting the next set of items. This
  9721  	// value is null when there are no more items to return.
  9722  	NextToken *string `type:"string"`
  9723  }
  9724  
  9725  // String returns the string representation.
  9726  //
  9727  // API parameter values that are decorated as "sensitive" in the API will not
  9728  // be included in the string output. The member name will be present, but the
  9729  // value will be replaced with "sensitive".
  9730  func (s DescribeLoadBalancerTargetGroupsOutput) String() string {
  9731  	return awsutil.Prettify(s)
  9732  }
  9733  
  9734  // GoString returns the string representation.
  9735  //
  9736  // API parameter values that are decorated as "sensitive" in the API will not
  9737  // be included in the string output. The member name will be present, but the
  9738  // value will be replaced with "sensitive".
  9739  func (s DescribeLoadBalancerTargetGroupsOutput) GoString() string {
  9740  	return s.String()
  9741  }
  9742  
  9743  // SetLoadBalancerTargetGroups sets the LoadBalancerTargetGroups field's value.
  9744  func (s *DescribeLoadBalancerTargetGroupsOutput) SetLoadBalancerTargetGroups(v []*LoadBalancerTargetGroupState) *DescribeLoadBalancerTargetGroupsOutput {
  9745  	s.LoadBalancerTargetGroups = v
  9746  	return s
  9747  }
  9748  
  9749  // SetNextToken sets the NextToken field's value.
  9750  func (s *DescribeLoadBalancerTargetGroupsOutput) SetNextToken(v string) *DescribeLoadBalancerTargetGroupsOutput {
  9751  	s.NextToken = &v
  9752  	return s
  9753  }
  9754  
  9755  type DescribeLoadBalancersInput struct {
  9756  	_ struct{} `type:"structure"`
  9757  
  9758  	// The name of the Auto Scaling group.
  9759  	//
  9760  	// AutoScalingGroupName is a required field
  9761  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
  9762  
  9763  	// The maximum number of items to return with this call. The default value is
  9764  	// 100 and the maximum value is 100.
  9765  	MaxRecords *int64 `type:"integer"`
  9766  
  9767  	// The token for the next set of items to return. (You received this token from
  9768  	// a previous call.)
  9769  	NextToken *string `type:"string"`
  9770  }
  9771  
  9772  // String returns the string representation.
  9773  //
  9774  // API parameter values that are decorated as "sensitive" in the API will not
  9775  // be included in the string output. The member name will be present, but the
  9776  // value will be replaced with "sensitive".
  9777  func (s DescribeLoadBalancersInput) String() string {
  9778  	return awsutil.Prettify(s)
  9779  }
  9780  
  9781  // GoString returns the string representation.
  9782  //
  9783  // API parameter values that are decorated as "sensitive" in the API will not
  9784  // be included in the string output. The member name will be present, but the
  9785  // value will be replaced with "sensitive".
  9786  func (s DescribeLoadBalancersInput) GoString() string {
  9787  	return s.String()
  9788  }
  9789  
  9790  // Validate inspects the fields of the type to determine if they are valid.
  9791  func (s *DescribeLoadBalancersInput) Validate() error {
  9792  	invalidParams := request.ErrInvalidParams{Context: "DescribeLoadBalancersInput"}
  9793  	if s.AutoScalingGroupName == nil {
  9794  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
  9795  	}
  9796  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
  9797  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
  9798  	}
  9799  
  9800  	if invalidParams.Len() > 0 {
  9801  		return invalidParams
  9802  	}
  9803  	return nil
  9804  }
  9805  
  9806  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
  9807  func (s *DescribeLoadBalancersInput) SetAutoScalingGroupName(v string) *DescribeLoadBalancersInput {
  9808  	s.AutoScalingGroupName = &v
  9809  	return s
  9810  }
  9811  
  9812  // SetMaxRecords sets the MaxRecords field's value.
  9813  func (s *DescribeLoadBalancersInput) SetMaxRecords(v int64) *DescribeLoadBalancersInput {
  9814  	s.MaxRecords = &v
  9815  	return s
  9816  }
  9817  
  9818  // SetNextToken sets the NextToken field's value.
  9819  func (s *DescribeLoadBalancersInput) SetNextToken(v string) *DescribeLoadBalancersInput {
  9820  	s.NextToken = &v
  9821  	return s
  9822  }
  9823  
  9824  type DescribeLoadBalancersOutput struct {
  9825  	_ struct{} `type:"structure"`
  9826  
  9827  	// The load balancers.
  9828  	LoadBalancers []*LoadBalancerState `type:"list"`
  9829  
  9830  	// A string that indicates that the response contains more items than can be
  9831  	// returned in a single response. To receive additional items, specify this
  9832  	// string for the NextToken value when requesting the next set of items. This
  9833  	// value is null when there are no more items to return.
  9834  	NextToken *string `type:"string"`
  9835  }
  9836  
  9837  // String returns the string representation.
  9838  //
  9839  // API parameter values that are decorated as "sensitive" in the API will not
  9840  // be included in the string output. The member name will be present, but the
  9841  // value will be replaced with "sensitive".
  9842  func (s DescribeLoadBalancersOutput) String() string {
  9843  	return awsutil.Prettify(s)
  9844  }
  9845  
  9846  // GoString returns the string representation.
  9847  //
  9848  // API parameter values that are decorated as "sensitive" in the API will not
  9849  // be included in the string output. The member name will be present, but the
  9850  // value will be replaced with "sensitive".
  9851  func (s DescribeLoadBalancersOutput) GoString() string {
  9852  	return s.String()
  9853  }
  9854  
  9855  // SetLoadBalancers sets the LoadBalancers field's value.
  9856  func (s *DescribeLoadBalancersOutput) SetLoadBalancers(v []*LoadBalancerState) *DescribeLoadBalancersOutput {
  9857  	s.LoadBalancers = v
  9858  	return s
  9859  }
  9860  
  9861  // SetNextToken sets the NextToken field's value.
  9862  func (s *DescribeLoadBalancersOutput) SetNextToken(v string) *DescribeLoadBalancersOutput {
  9863  	s.NextToken = &v
  9864  	return s
  9865  }
  9866  
  9867  type DescribeMetricCollectionTypesInput struct {
  9868  	_ struct{} `type:"structure"`
  9869  }
  9870  
  9871  // String returns the string representation.
  9872  //
  9873  // API parameter values that are decorated as "sensitive" in the API will not
  9874  // be included in the string output. The member name will be present, but the
  9875  // value will be replaced with "sensitive".
  9876  func (s DescribeMetricCollectionTypesInput) String() string {
  9877  	return awsutil.Prettify(s)
  9878  }
  9879  
  9880  // GoString returns the string representation.
  9881  //
  9882  // API parameter values that are decorated as "sensitive" in the API will not
  9883  // be included in the string output. The member name will be present, but the
  9884  // value will be replaced with "sensitive".
  9885  func (s DescribeMetricCollectionTypesInput) GoString() string {
  9886  	return s.String()
  9887  }
  9888  
  9889  type DescribeMetricCollectionTypesOutput struct {
  9890  	_ struct{} `type:"structure"`
  9891  
  9892  	// The granularities for the metrics.
  9893  	Granularities []*MetricGranularityType `type:"list"`
  9894  
  9895  	// One or more metrics.
  9896  	Metrics []*MetricCollectionType `type:"list"`
  9897  }
  9898  
  9899  // String returns the string representation.
  9900  //
  9901  // API parameter values that are decorated as "sensitive" in the API will not
  9902  // be included in the string output. The member name will be present, but the
  9903  // value will be replaced with "sensitive".
  9904  func (s DescribeMetricCollectionTypesOutput) String() string {
  9905  	return awsutil.Prettify(s)
  9906  }
  9907  
  9908  // GoString returns the string representation.
  9909  //
  9910  // API parameter values that are decorated as "sensitive" in the API will not
  9911  // be included in the string output. The member name will be present, but the
  9912  // value will be replaced with "sensitive".
  9913  func (s DescribeMetricCollectionTypesOutput) GoString() string {
  9914  	return s.String()
  9915  }
  9916  
  9917  // SetGranularities sets the Granularities field's value.
  9918  func (s *DescribeMetricCollectionTypesOutput) SetGranularities(v []*MetricGranularityType) *DescribeMetricCollectionTypesOutput {
  9919  	s.Granularities = v
  9920  	return s
  9921  }
  9922  
  9923  // SetMetrics sets the Metrics field's value.
  9924  func (s *DescribeMetricCollectionTypesOutput) SetMetrics(v []*MetricCollectionType) *DescribeMetricCollectionTypesOutput {
  9925  	s.Metrics = v
  9926  	return s
  9927  }
  9928  
  9929  type DescribeNotificationConfigurationsInput struct {
  9930  	_ struct{} `type:"structure"`
  9931  
  9932  	// The name of the Auto Scaling group.
  9933  	AutoScalingGroupNames []*string `type:"list"`
  9934  
  9935  	// The maximum number of items to return with this call. The default value is
  9936  	// 50 and the maximum value is 100.
  9937  	MaxRecords *int64 `type:"integer"`
  9938  
  9939  	// The token for the next set of items to return. (You received this token from
  9940  	// a previous call.)
  9941  	NextToken *string `type:"string"`
  9942  }
  9943  
  9944  // String returns the string representation.
  9945  //
  9946  // API parameter values that are decorated as "sensitive" in the API will not
  9947  // be included in the string output. The member name will be present, but the
  9948  // value will be replaced with "sensitive".
  9949  func (s DescribeNotificationConfigurationsInput) String() string {
  9950  	return awsutil.Prettify(s)
  9951  }
  9952  
  9953  // GoString returns the string representation.
  9954  //
  9955  // API parameter values that are decorated as "sensitive" in the API will not
  9956  // be included in the string output. The member name will be present, but the
  9957  // value will be replaced with "sensitive".
  9958  func (s DescribeNotificationConfigurationsInput) GoString() string {
  9959  	return s.String()
  9960  }
  9961  
  9962  // SetAutoScalingGroupNames sets the AutoScalingGroupNames field's value.
  9963  func (s *DescribeNotificationConfigurationsInput) SetAutoScalingGroupNames(v []*string) *DescribeNotificationConfigurationsInput {
  9964  	s.AutoScalingGroupNames = v
  9965  	return s
  9966  }
  9967  
  9968  // SetMaxRecords sets the MaxRecords field's value.
  9969  func (s *DescribeNotificationConfigurationsInput) SetMaxRecords(v int64) *DescribeNotificationConfigurationsInput {
  9970  	s.MaxRecords = &v
  9971  	return s
  9972  }
  9973  
  9974  // SetNextToken sets the NextToken field's value.
  9975  func (s *DescribeNotificationConfigurationsInput) SetNextToken(v string) *DescribeNotificationConfigurationsInput {
  9976  	s.NextToken = &v
  9977  	return s
  9978  }
  9979  
  9980  type DescribeNotificationConfigurationsOutput struct {
  9981  	_ struct{} `type:"structure"`
  9982  
  9983  	// A string that indicates that the response contains more items than can be
  9984  	// returned in a single response. To receive additional items, specify this
  9985  	// string for the NextToken value when requesting the next set of items. This
  9986  	// value is null when there are no more items to return.
  9987  	NextToken *string `type:"string"`
  9988  
  9989  	// The notification configurations.
  9990  	//
  9991  	// NotificationConfigurations is a required field
  9992  	NotificationConfigurations []*NotificationConfiguration `type:"list" required:"true"`
  9993  }
  9994  
  9995  // String returns the string representation.
  9996  //
  9997  // API parameter values that are decorated as "sensitive" in the API will not
  9998  // be included in the string output. The member name will be present, but the
  9999  // value will be replaced with "sensitive".
 10000  func (s DescribeNotificationConfigurationsOutput) String() string {
 10001  	return awsutil.Prettify(s)
 10002  }
 10003  
 10004  // GoString returns the string representation.
 10005  //
 10006  // API parameter values that are decorated as "sensitive" in the API will not
 10007  // be included in the string output. The member name will be present, but the
 10008  // value will be replaced with "sensitive".
 10009  func (s DescribeNotificationConfigurationsOutput) GoString() string {
 10010  	return s.String()
 10011  }
 10012  
 10013  // SetNextToken sets the NextToken field's value.
 10014  func (s *DescribeNotificationConfigurationsOutput) SetNextToken(v string) *DescribeNotificationConfigurationsOutput {
 10015  	s.NextToken = &v
 10016  	return s
 10017  }
 10018  
 10019  // SetNotificationConfigurations sets the NotificationConfigurations field's value.
 10020  func (s *DescribeNotificationConfigurationsOutput) SetNotificationConfigurations(v []*NotificationConfiguration) *DescribeNotificationConfigurationsOutput {
 10021  	s.NotificationConfigurations = v
 10022  	return s
 10023  }
 10024  
 10025  type DescribePoliciesInput struct {
 10026  	_ struct{} `type:"structure"`
 10027  
 10028  	// The name of the Auto Scaling group.
 10029  	AutoScalingGroupName *string `min:"1" type:"string"`
 10030  
 10031  	// The maximum number of items to be returned with each call. The default value
 10032  	// is 50 and the maximum value is 100.
 10033  	MaxRecords *int64 `type:"integer"`
 10034  
 10035  	// The token for the next set of items to return. (You received this token from
 10036  	// a previous call.)
 10037  	NextToken *string `type:"string"`
 10038  
 10039  	// The names of one or more policies. If you omit this parameter, all policies
 10040  	// are described. If a group name is provided, the results are limited to that
 10041  	// group. If you specify an unknown policy name, it is ignored with no error.
 10042  	//
 10043  	// Array Members: Maximum number of 50 items.
 10044  	PolicyNames []*string `type:"list"`
 10045  
 10046  	// One or more policy types. The valid values are SimpleScaling, StepScaling,
 10047  	// TargetTrackingScaling, and PredictiveScaling.
 10048  	PolicyTypes []*string `type:"list"`
 10049  }
 10050  
 10051  // String returns the string representation.
 10052  //
 10053  // API parameter values that are decorated as "sensitive" in the API will not
 10054  // be included in the string output. The member name will be present, but the
 10055  // value will be replaced with "sensitive".
 10056  func (s DescribePoliciesInput) String() string {
 10057  	return awsutil.Prettify(s)
 10058  }
 10059  
 10060  // GoString returns the string representation.
 10061  //
 10062  // API parameter values that are decorated as "sensitive" in the API will not
 10063  // be included in the string output. The member name will be present, but the
 10064  // value will be replaced with "sensitive".
 10065  func (s DescribePoliciesInput) GoString() string {
 10066  	return s.String()
 10067  }
 10068  
 10069  // Validate inspects the fields of the type to determine if they are valid.
 10070  func (s *DescribePoliciesInput) Validate() error {
 10071  	invalidParams := request.ErrInvalidParams{Context: "DescribePoliciesInput"}
 10072  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 10073  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 10074  	}
 10075  
 10076  	if invalidParams.Len() > 0 {
 10077  		return invalidParams
 10078  	}
 10079  	return nil
 10080  }
 10081  
 10082  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 10083  func (s *DescribePoliciesInput) SetAutoScalingGroupName(v string) *DescribePoliciesInput {
 10084  	s.AutoScalingGroupName = &v
 10085  	return s
 10086  }
 10087  
 10088  // SetMaxRecords sets the MaxRecords field's value.
 10089  func (s *DescribePoliciesInput) SetMaxRecords(v int64) *DescribePoliciesInput {
 10090  	s.MaxRecords = &v
 10091  	return s
 10092  }
 10093  
 10094  // SetNextToken sets the NextToken field's value.
 10095  func (s *DescribePoliciesInput) SetNextToken(v string) *DescribePoliciesInput {
 10096  	s.NextToken = &v
 10097  	return s
 10098  }
 10099  
 10100  // SetPolicyNames sets the PolicyNames field's value.
 10101  func (s *DescribePoliciesInput) SetPolicyNames(v []*string) *DescribePoliciesInput {
 10102  	s.PolicyNames = v
 10103  	return s
 10104  }
 10105  
 10106  // SetPolicyTypes sets the PolicyTypes field's value.
 10107  func (s *DescribePoliciesInput) SetPolicyTypes(v []*string) *DescribePoliciesInput {
 10108  	s.PolicyTypes = v
 10109  	return s
 10110  }
 10111  
 10112  type DescribePoliciesOutput struct {
 10113  	_ struct{} `type:"structure"`
 10114  
 10115  	// A string that indicates that the response contains more items than can be
 10116  	// returned in a single response. To receive additional items, specify this
 10117  	// string for the NextToken value when requesting the next set of items. This
 10118  	// value is null when there are no more items to return.
 10119  	NextToken *string `type:"string"`
 10120  
 10121  	// The scaling policies.
 10122  	ScalingPolicies []*ScalingPolicy `type:"list"`
 10123  }
 10124  
 10125  // String returns the string representation.
 10126  //
 10127  // API parameter values that are decorated as "sensitive" in the API will not
 10128  // be included in the string output. The member name will be present, but the
 10129  // value will be replaced with "sensitive".
 10130  func (s DescribePoliciesOutput) String() string {
 10131  	return awsutil.Prettify(s)
 10132  }
 10133  
 10134  // GoString returns the string representation.
 10135  //
 10136  // API parameter values that are decorated as "sensitive" in the API will not
 10137  // be included in the string output. The member name will be present, but the
 10138  // value will be replaced with "sensitive".
 10139  func (s DescribePoliciesOutput) GoString() string {
 10140  	return s.String()
 10141  }
 10142  
 10143  // SetNextToken sets the NextToken field's value.
 10144  func (s *DescribePoliciesOutput) SetNextToken(v string) *DescribePoliciesOutput {
 10145  	s.NextToken = &v
 10146  	return s
 10147  }
 10148  
 10149  // SetScalingPolicies sets the ScalingPolicies field's value.
 10150  func (s *DescribePoliciesOutput) SetScalingPolicies(v []*ScalingPolicy) *DescribePoliciesOutput {
 10151  	s.ScalingPolicies = v
 10152  	return s
 10153  }
 10154  
 10155  type DescribeScalingActivitiesInput struct {
 10156  	_ struct{} `type:"structure"`
 10157  
 10158  	// The activity IDs of the desired scaling activities. If you omit this parameter,
 10159  	// all activities for the past six weeks are described. If unknown activities
 10160  	// are requested, they are ignored with no error. If you specify an Auto Scaling
 10161  	// group, the results are limited to that group.
 10162  	//
 10163  	// Array Members: Maximum number of 50 IDs.
 10164  	ActivityIds []*string `type:"list"`
 10165  
 10166  	// The name of the Auto Scaling group.
 10167  	AutoScalingGroupName *string `min:"1" type:"string"`
 10168  
 10169  	// Indicates whether to include scaling activity from deleted Auto Scaling groups.
 10170  	IncludeDeletedGroups *bool `type:"boolean"`
 10171  
 10172  	// The maximum number of items to return with this call. The default value is
 10173  	// 100 and the maximum value is 100.
 10174  	MaxRecords *int64 `type:"integer"`
 10175  
 10176  	// The token for the next set of items to return. (You received this token from
 10177  	// a previous call.)
 10178  	NextToken *string `type:"string"`
 10179  }
 10180  
 10181  // String returns the string representation.
 10182  //
 10183  // API parameter values that are decorated as "sensitive" in the API will not
 10184  // be included in the string output. The member name will be present, but the
 10185  // value will be replaced with "sensitive".
 10186  func (s DescribeScalingActivitiesInput) String() string {
 10187  	return awsutil.Prettify(s)
 10188  }
 10189  
 10190  // GoString returns the string representation.
 10191  //
 10192  // API parameter values that are decorated as "sensitive" in the API will not
 10193  // be included in the string output. The member name will be present, but the
 10194  // value will be replaced with "sensitive".
 10195  func (s DescribeScalingActivitiesInput) GoString() string {
 10196  	return s.String()
 10197  }
 10198  
 10199  // Validate inspects the fields of the type to determine if they are valid.
 10200  func (s *DescribeScalingActivitiesInput) Validate() error {
 10201  	invalidParams := request.ErrInvalidParams{Context: "DescribeScalingActivitiesInput"}
 10202  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 10203  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 10204  	}
 10205  
 10206  	if invalidParams.Len() > 0 {
 10207  		return invalidParams
 10208  	}
 10209  	return nil
 10210  }
 10211  
 10212  // SetActivityIds sets the ActivityIds field's value.
 10213  func (s *DescribeScalingActivitiesInput) SetActivityIds(v []*string) *DescribeScalingActivitiesInput {
 10214  	s.ActivityIds = v
 10215  	return s
 10216  }
 10217  
 10218  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 10219  func (s *DescribeScalingActivitiesInput) SetAutoScalingGroupName(v string) *DescribeScalingActivitiesInput {
 10220  	s.AutoScalingGroupName = &v
 10221  	return s
 10222  }
 10223  
 10224  // SetIncludeDeletedGroups sets the IncludeDeletedGroups field's value.
 10225  func (s *DescribeScalingActivitiesInput) SetIncludeDeletedGroups(v bool) *DescribeScalingActivitiesInput {
 10226  	s.IncludeDeletedGroups = &v
 10227  	return s
 10228  }
 10229  
 10230  // SetMaxRecords sets the MaxRecords field's value.
 10231  func (s *DescribeScalingActivitiesInput) SetMaxRecords(v int64) *DescribeScalingActivitiesInput {
 10232  	s.MaxRecords = &v
 10233  	return s
 10234  }
 10235  
 10236  // SetNextToken sets the NextToken field's value.
 10237  func (s *DescribeScalingActivitiesInput) SetNextToken(v string) *DescribeScalingActivitiesInput {
 10238  	s.NextToken = &v
 10239  	return s
 10240  }
 10241  
 10242  type DescribeScalingActivitiesOutput struct {
 10243  	_ struct{} `type:"structure"`
 10244  
 10245  	// The scaling activities. Activities are sorted by start time. Activities still
 10246  	// in progress are described first.
 10247  	//
 10248  	// Activities is a required field
 10249  	Activities []*Activity `type:"list" required:"true"`
 10250  
 10251  	// A string that indicates that the response contains more items than can be
 10252  	// returned in a single response. To receive additional items, specify this
 10253  	// string for the NextToken value when requesting the next set of items. This
 10254  	// value is null when there are no more items to return.
 10255  	NextToken *string `type:"string"`
 10256  }
 10257  
 10258  // String returns the string representation.
 10259  //
 10260  // API parameter values that are decorated as "sensitive" in the API will not
 10261  // be included in the string output. The member name will be present, but the
 10262  // value will be replaced with "sensitive".
 10263  func (s DescribeScalingActivitiesOutput) String() string {
 10264  	return awsutil.Prettify(s)
 10265  }
 10266  
 10267  // GoString returns the string representation.
 10268  //
 10269  // API parameter values that are decorated as "sensitive" in the API will not
 10270  // be included in the string output. The member name will be present, but the
 10271  // value will be replaced with "sensitive".
 10272  func (s DescribeScalingActivitiesOutput) GoString() string {
 10273  	return s.String()
 10274  }
 10275  
 10276  // SetActivities sets the Activities field's value.
 10277  func (s *DescribeScalingActivitiesOutput) SetActivities(v []*Activity) *DescribeScalingActivitiesOutput {
 10278  	s.Activities = v
 10279  	return s
 10280  }
 10281  
 10282  // SetNextToken sets the NextToken field's value.
 10283  func (s *DescribeScalingActivitiesOutput) SetNextToken(v string) *DescribeScalingActivitiesOutput {
 10284  	s.NextToken = &v
 10285  	return s
 10286  }
 10287  
 10288  type DescribeScalingProcessTypesInput struct {
 10289  	_ struct{} `type:"structure"`
 10290  }
 10291  
 10292  // String returns the string representation.
 10293  //
 10294  // API parameter values that are decorated as "sensitive" in the API will not
 10295  // be included in the string output. The member name will be present, but the
 10296  // value will be replaced with "sensitive".
 10297  func (s DescribeScalingProcessTypesInput) String() string {
 10298  	return awsutil.Prettify(s)
 10299  }
 10300  
 10301  // GoString returns the string representation.
 10302  //
 10303  // API parameter values that are decorated as "sensitive" in the API will not
 10304  // be included in the string output. The member name will be present, but the
 10305  // value will be replaced with "sensitive".
 10306  func (s DescribeScalingProcessTypesInput) GoString() string {
 10307  	return s.String()
 10308  }
 10309  
 10310  type DescribeScalingProcessTypesOutput struct {
 10311  	_ struct{} `type:"structure"`
 10312  
 10313  	// The names of the process types.
 10314  	Processes []*ProcessType `type:"list"`
 10315  }
 10316  
 10317  // String returns the string representation.
 10318  //
 10319  // API parameter values that are decorated as "sensitive" in the API will not
 10320  // be included in the string output. The member name will be present, but the
 10321  // value will be replaced with "sensitive".
 10322  func (s DescribeScalingProcessTypesOutput) String() string {
 10323  	return awsutil.Prettify(s)
 10324  }
 10325  
 10326  // GoString returns the string representation.
 10327  //
 10328  // API parameter values that are decorated as "sensitive" in the API will not
 10329  // be included in the string output. The member name will be present, but the
 10330  // value will be replaced with "sensitive".
 10331  func (s DescribeScalingProcessTypesOutput) GoString() string {
 10332  	return s.String()
 10333  }
 10334  
 10335  // SetProcesses sets the Processes field's value.
 10336  func (s *DescribeScalingProcessTypesOutput) SetProcesses(v []*ProcessType) *DescribeScalingProcessTypesOutput {
 10337  	s.Processes = v
 10338  	return s
 10339  }
 10340  
 10341  type DescribeScheduledActionsInput struct {
 10342  	_ struct{} `type:"structure"`
 10343  
 10344  	// The name of the Auto Scaling group.
 10345  	AutoScalingGroupName *string `min:"1" type:"string"`
 10346  
 10347  	// The latest scheduled start time to return. If scheduled action names are
 10348  	// provided, this parameter is ignored.
 10349  	EndTime *time.Time `type:"timestamp"`
 10350  
 10351  	// The maximum number of items to return with this call. The default value is
 10352  	// 50 and the maximum value is 100.
 10353  	MaxRecords *int64 `type:"integer"`
 10354  
 10355  	// The token for the next set of items to return. (You received this token from
 10356  	// a previous call.)
 10357  	NextToken *string `type:"string"`
 10358  
 10359  	// The names of one or more scheduled actions. If you omit this parameter, all
 10360  	// scheduled actions are described. If you specify an unknown scheduled action,
 10361  	// it is ignored with no error.
 10362  	//
 10363  	// Array Members: Maximum number of 50 actions.
 10364  	ScheduledActionNames []*string `type:"list"`
 10365  
 10366  	// The earliest scheduled start time to return. If scheduled action names are
 10367  	// provided, this parameter is ignored.
 10368  	StartTime *time.Time `type:"timestamp"`
 10369  }
 10370  
 10371  // String returns the string representation.
 10372  //
 10373  // API parameter values that are decorated as "sensitive" in the API will not
 10374  // be included in the string output. The member name will be present, but the
 10375  // value will be replaced with "sensitive".
 10376  func (s DescribeScheduledActionsInput) String() string {
 10377  	return awsutil.Prettify(s)
 10378  }
 10379  
 10380  // GoString returns the string representation.
 10381  //
 10382  // API parameter values that are decorated as "sensitive" in the API will not
 10383  // be included in the string output. The member name will be present, but the
 10384  // value will be replaced with "sensitive".
 10385  func (s DescribeScheduledActionsInput) GoString() string {
 10386  	return s.String()
 10387  }
 10388  
 10389  // Validate inspects the fields of the type to determine if they are valid.
 10390  func (s *DescribeScheduledActionsInput) Validate() error {
 10391  	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledActionsInput"}
 10392  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 10393  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 10394  	}
 10395  
 10396  	if invalidParams.Len() > 0 {
 10397  		return invalidParams
 10398  	}
 10399  	return nil
 10400  }
 10401  
 10402  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 10403  func (s *DescribeScheduledActionsInput) SetAutoScalingGroupName(v string) *DescribeScheduledActionsInput {
 10404  	s.AutoScalingGroupName = &v
 10405  	return s
 10406  }
 10407  
 10408  // SetEndTime sets the EndTime field's value.
 10409  func (s *DescribeScheduledActionsInput) SetEndTime(v time.Time) *DescribeScheduledActionsInput {
 10410  	s.EndTime = &v
 10411  	return s
 10412  }
 10413  
 10414  // SetMaxRecords sets the MaxRecords field's value.
 10415  func (s *DescribeScheduledActionsInput) SetMaxRecords(v int64) *DescribeScheduledActionsInput {
 10416  	s.MaxRecords = &v
 10417  	return s
 10418  }
 10419  
 10420  // SetNextToken sets the NextToken field's value.
 10421  func (s *DescribeScheduledActionsInput) SetNextToken(v string) *DescribeScheduledActionsInput {
 10422  	s.NextToken = &v
 10423  	return s
 10424  }
 10425  
 10426  // SetScheduledActionNames sets the ScheduledActionNames field's value.
 10427  func (s *DescribeScheduledActionsInput) SetScheduledActionNames(v []*string) *DescribeScheduledActionsInput {
 10428  	s.ScheduledActionNames = v
 10429  	return s
 10430  }
 10431  
 10432  // SetStartTime sets the StartTime field's value.
 10433  func (s *DescribeScheduledActionsInput) SetStartTime(v time.Time) *DescribeScheduledActionsInput {
 10434  	s.StartTime = &v
 10435  	return s
 10436  }
 10437  
 10438  type DescribeScheduledActionsOutput struct {
 10439  	_ struct{} `type:"structure"`
 10440  
 10441  	// A string that indicates that the response contains more items than can be
 10442  	// returned in a single response. To receive additional items, specify this
 10443  	// string for the NextToken value when requesting the next set of items. This
 10444  	// value is null when there are no more items to return.
 10445  	NextToken *string `type:"string"`
 10446  
 10447  	// The scheduled actions.
 10448  	ScheduledUpdateGroupActions []*ScheduledUpdateGroupAction `type:"list"`
 10449  }
 10450  
 10451  // String returns the string representation.
 10452  //
 10453  // API parameter values that are decorated as "sensitive" in the API will not
 10454  // be included in the string output. The member name will be present, but the
 10455  // value will be replaced with "sensitive".
 10456  func (s DescribeScheduledActionsOutput) String() string {
 10457  	return awsutil.Prettify(s)
 10458  }
 10459  
 10460  // GoString returns the string representation.
 10461  //
 10462  // API parameter values that are decorated as "sensitive" in the API will not
 10463  // be included in the string output. The member name will be present, but the
 10464  // value will be replaced with "sensitive".
 10465  func (s DescribeScheduledActionsOutput) GoString() string {
 10466  	return s.String()
 10467  }
 10468  
 10469  // SetNextToken sets the NextToken field's value.
 10470  func (s *DescribeScheduledActionsOutput) SetNextToken(v string) *DescribeScheduledActionsOutput {
 10471  	s.NextToken = &v
 10472  	return s
 10473  }
 10474  
 10475  // SetScheduledUpdateGroupActions sets the ScheduledUpdateGroupActions field's value.
 10476  func (s *DescribeScheduledActionsOutput) SetScheduledUpdateGroupActions(v []*ScheduledUpdateGroupAction) *DescribeScheduledActionsOutput {
 10477  	s.ScheduledUpdateGroupActions = v
 10478  	return s
 10479  }
 10480  
 10481  type DescribeTagsInput struct {
 10482  	_ struct{} `type:"structure"`
 10483  
 10484  	// One or more filters to scope the tags to return. The maximum number of filters
 10485  	// per filter type (for example, auto-scaling-group) is 1000.
 10486  	Filters []*Filter `type:"list"`
 10487  
 10488  	// The maximum number of items to return with this call. The default value is
 10489  	// 50 and the maximum value is 100.
 10490  	MaxRecords *int64 `type:"integer"`
 10491  
 10492  	// The token for the next set of items to return. (You received this token from
 10493  	// a previous call.)
 10494  	NextToken *string `type:"string"`
 10495  }
 10496  
 10497  // String returns the string representation.
 10498  //
 10499  // API parameter values that are decorated as "sensitive" in the API will not
 10500  // be included in the string output. The member name will be present, but the
 10501  // value will be replaced with "sensitive".
 10502  func (s DescribeTagsInput) String() string {
 10503  	return awsutil.Prettify(s)
 10504  }
 10505  
 10506  // GoString returns the string representation.
 10507  //
 10508  // API parameter values that are decorated as "sensitive" in the API will not
 10509  // be included in the string output. The member name will be present, but the
 10510  // value will be replaced with "sensitive".
 10511  func (s DescribeTagsInput) GoString() string {
 10512  	return s.String()
 10513  }
 10514  
 10515  // SetFilters sets the Filters field's value.
 10516  func (s *DescribeTagsInput) SetFilters(v []*Filter) *DescribeTagsInput {
 10517  	s.Filters = v
 10518  	return s
 10519  }
 10520  
 10521  // SetMaxRecords sets the MaxRecords field's value.
 10522  func (s *DescribeTagsInput) SetMaxRecords(v int64) *DescribeTagsInput {
 10523  	s.MaxRecords = &v
 10524  	return s
 10525  }
 10526  
 10527  // SetNextToken sets the NextToken field's value.
 10528  func (s *DescribeTagsInput) SetNextToken(v string) *DescribeTagsInput {
 10529  	s.NextToken = &v
 10530  	return s
 10531  }
 10532  
 10533  type DescribeTagsOutput struct {
 10534  	_ struct{} `type:"structure"`
 10535  
 10536  	// A string that indicates that the response contains more items than can be
 10537  	// returned in a single response. To receive additional items, specify this
 10538  	// string for the NextToken value when requesting the next set of items. This
 10539  	// value is null when there are no more items to return.
 10540  	NextToken *string `type:"string"`
 10541  
 10542  	// One or more tags.
 10543  	Tags []*TagDescription `type:"list"`
 10544  }
 10545  
 10546  // String returns the string representation.
 10547  //
 10548  // API parameter values that are decorated as "sensitive" in the API will not
 10549  // be included in the string output. The member name will be present, but the
 10550  // value will be replaced with "sensitive".
 10551  func (s DescribeTagsOutput) String() string {
 10552  	return awsutil.Prettify(s)
 10553  }
 10554  
 10555  // GoString returns the string representation.
 10556  //
 10557  // API parameter values that are decorated as "sensitive" in the API will not
 10558  // be included in the string output. The member name will be present, but the
 10559  // value will be replaced with "sensitive".
 10560  func (s DescribeTagsOutput) GoString() string {
 10561  	return s.String()
 10562  }
 10563  
 10564  // SetNextToken sets the NextToken field's value.
 10565  func (s *DescribeTagsOutput) SetNextToken(v string) *DescribeTagsOutput {
 10566  	s.NextToken = &v
 10567  	return s
 10568  }
 10569  
 10570  // SetTags sets the Tags field's value.
 10571  func (s *DescribeTagsOutput) SetTags(v []*TagDescription) *DescribeTagsOutput {
 10572  	s.Tags = v
 10573  	return s
 10574  }
 10575  
 10576  type DescribeTerminationPolicyTypesInput struct {
 10577  	_ struct{} `type:"structure"`
 10578  }
 10579  
 10580  // String returns the string representation.
 10581  //
 10582  // API parameter values that are decorated as "sensitive" in the API will not
 10583  // be included in the string output. The member name will be present, but the
 10584  // value will be replaced with "sensitive".
 10585  func (s DescribeTerminationPolicyTypesInput) String() string {
 10586  	return awsutil.Prettify(s)
 10587  }
 10588  
 10589  // GoString returns the string representation.
 10590  //
 10591  // API parameter values that are decorated as "sensitive" in the API will not
 10592  // be included in the string output. The member name will be present, but the
 10593  // value will be replaced with "sensitive".
 10594  func (s DescribeTerminationPolicyTypesInput) GoString() string {
 10595  	return s.String()
 10596  }
 10597  
 10598  type DescribeTerminationPolicyTypesOutput struct {
 10599  	_ struct{} `type:"structure"`
 10600  
 10601  	// The termination policies supported by Amazon EC2 Auto Scaling: OldestInstance,
 10602  	// OldestLaunchConfiguration, NewestInstance, ClosestToNextInstanceHour, Default,
 10603  	// OldestLaunchTemplate, and AllocationStrategy.
 10604  	TerminationPolicyTypes []*string `type:"list"`
 10605  }
 10606  
 10607  // String returns the string representation.
 10608  //
 10609  // API parameter values that are decorated as "sensitive" in the API will not
 10610  // be included in the string output. The member name will be present, but the
 10611  // value will be replaced with "sensitive".
 10612  func (s DescribeTerminationPolicyTypesOutput) String() string {
 10613  	return awsutil.Prettify(s)
 10614  }
 10615  
 10616  // GoString returns the string representation.
 10617  //
 10618  // API parameter values that are decorated as "sensitive" in the API will not
 10619  // be included in the string output. The member name will be present, but the
 10620  // value will be replaced with "sensitive".
 10621  func (s DescribeTerminationPolicyTypesOutput) GoString() string {
 10622  	return s.String()
 10623  }
 10624  
 10625  // SetTerminationPolicyTypes sets the TerminationPolicyTypes field's value.
 10626  func (s *DescribeTerminationPolicyTypesOutput) SetTerminationPolicyTypes(v []*string) *DescribeTerminationPolicyTypesOutput {
 10627  	s.TerminationPolicyTypes = v
 10628  	return s
 10629  }
 10630  
 10631  type DescribeWarmPoolInput struct {
 10632  	_ struct{} `type:"structure"`
 10633  
 10634  	// The name of the Auto Scaling group.
 10635  	//
 10636  	// AutoScalingGroupName is a required field
 10637  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 10638  
 10639  	// The maximum number of instances to return with this call. The maximum value
 10640  	// is 50.
 10641  	MaxRecords *int64 `type:"integer"`
 10642  
 10643  	// The token for the next set of instances to return. (You received this token
 10644  	// from a previous call.)
 10645  	NextToken *string `type:"string"`
 10646  }
 10647  
 10648  // String returns the string representation.
 10649  //
 10650  // API parameter values that are decorated as "sensitive" in the API will not
 10651  // be included in the string output. The member name will be present, but the
 10652  // value will be replaced with "sensitive".
 10653  func (s DescribeWarmPoolInput) String() string {
 10654  	return awsutil.Prettify(s)
 10655  }
 10656  
 10657  // GoString returns the string representation.
 10658  //
 10659  // API parameter values that are decorated as "sensitive" in the API will not
 10660  // be included in the string output. The member name will be present, but the
 10661  // value will be replaced with "sensitive".
 10662  func (s DescribeWarmPoolInput) GoString() string {
 10663  	return s.String()
 10664  }
 10665  
 10666  // Validate inspects the fields of the type to determine if they are valid.
 10667  func (s *DescribeWarmPoolInput) Validate() error {
 10668  	invalidParams := request.ErrInvalidParams{Context: "DescribeWarmPoolInput"}
 10669  	if s.AutoScalingGroupName == nil {
 10670  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 10671  	}
 10672  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 10673  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 10674  	}
 10675  
 10676  	if invalidParams.Len() > 0 {
 10677  		return invalidParams
 10678  	}
 10679  	return nil
 10680  }
 10681  
 10682  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 10683  func (s *DescribeWarmPoolInput) SetAutoScalingGroupName(v string) *DescribeWarmPoolInput {
 10684  	s.AutoScalingGroupName = &v
 10685  	return s
 10686  }
 10687  
 10688  // SetMaxRecords sets the MaxRecords field's value.
 10689  func (s *DescribeWarmPoolInput) SetMaxRecords(v int64) *DescribeWarmPoolInput {
 10690  	s.MaxRecords = &v
 10691  	return s
 10692  }
 10693  
 10694  // SetNextToken sets the NextToken field's value.
 10695  func (s *DescribeWarmPoolInput) SetNextToken(v string) *DescribeWarmPoolInput {
 10696  	s.NextToken = &v
 10697  	return s
 10698  }
 10699  
 10700  type DescribeWarmPoolOutput struct {
 10701  	_ struct{} `type:"structure"`
 10702  
 10703  	// The instances that are currently in the warm pool.
 10704  	Instances []*Instance `type:"list"`
 10705  
 10706  	// The token for the next set of items to return. (You received this token from
 10707  	// a previous call.)
 10708  	NextToken *string `type:"string"`
 10709  
 10710  	// The warm pool configuration details.
 10711  	WarmPoolConfiguration *WarmPoolConfiguration `type:"structure"`
 10712  }
 10713  
 10714  // String returns the string representation.
 10715  //
 10716  // API parameter values that are decorated as "sensitive" in the API will not
 10717  // be included in the string output. The member name will be present, but the
 10718  // value will be replaced with "sensitive".
 10719  func (s DescribeWarmPoolOutput) String() string {
 10720  	return awsutil.Prettify(s)
 10721  }
 10722  
 10723  // GoString returns the string representation.
 10724  //
 10725  // API parameter values that are decorated as "sensitive" in the API will not
 10726  // be included in the string output. The member name will be present, but the
 10727  // value will be replaced with "sensitive".
 10728  func (s DescribeWarmPoolOutput) GoString() string {
 10729  	return s.String()
 10730  }
 10731  
 10732  // SetInstances sets the Instances field's value.
 10733  func (s *DescribeWarmPoolOutput) SetInstances(v []*Instance) *DescribeWarmPoolOutput {
 10734  	s.Instances = v
 10735  	return s
 10736  }
 10737  
 10738  // SetNextToken sets the NextToken field's value.
 10739  func (s *DescribeWarmPoolOutput) SetNextToken(v string) *DescribeWarmPoolOutput {
 10740  	s.NextToken = &v
 10741  	return s
 10742  }
 10743  
 10744  // SetWarmPoolConfiguration sets the WarmPoolConfiguration field's value.
 10745  func (s *DescribeWarmPoolOutput) SetWarmPoolConfiguration(v *WarmPoolConfiguration) *DescribeWarmPoolOutput {
 10746  	s.WarmPoolConfiguration = v
 10747  	return s
 10748  }
 10749  
 10750  // Describes the desired configuration for an instance refresh.
 10751  //
 10752  // If you specify a desired configuration, you must specify either a LaunchTemplate
 10753  // or a MixedInstancesPolicy.
 10754  type DesiredConfiguration struct {
 10755  	_ struct{} `type:"structure"`
 10756  
 10757  	// Describes the launch template and the version of the launch template that
 10758  	// Amazon EC2 Auto Scaling uses to launch Amazon EC2 instances. For more information
 10759  	// about launch templates, see Launch templates (https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchTemplates.html)
 10760  	// in the Amazon EC2 Auto Scaling User Guide.
 10761  	LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
 10762  
 10763  	// Describes a mixed instances policy. A mixed instances policy contains the
 10764  	// instance types Amazon EC2 Auto Scaling can launch, and other information
 10765  	// Amazon EC2 Auto Scaling can use to launch instances to help you optimize
 10766  	// your costs. For more information, see Auto Scaling groups with multiple instance
 10767  	// types and purchase options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html)
 10768  	// in the Amazon EC2 Auto Scaling User Guide.
 10769  	MixedInstancesPolicy *MixedInstancesPolicy `type:"structure"`
 10770  }
 10771  
 10772  // String returns the string representation.
 10773  //
 10774  // API parameter values that are decorated as "sensitive" in the API will not
 10775  // be included in the string output. The member name will be present, but the
 10776  // value will be replaced with "sensitive".
 10777  func (s DesiredConfiguration) String() string {
 10778  	return awsutil.Prettify(s)
 10779  }
 10780  
 10781  // GoString returns the string representation.
 10782  //
 10783  // API parameter values that are decorated as "sensitive" in the API will not
 10784  // be included in the string output. The member name will be present, but the
 10785  // value will be replaced with "sensitive".
 10786  func (s DesiredConfiguration) GoString() string {
 10787  	return s.String()
 10788  }
 10789  
 10790  // Validate inspects the fields of the type to determine if they are valid.
 10791  func (s *DesiredConfiguration) Validate() error {
 10792  	invalidParams := request.ErrInvalidParams{Context: "DesiredConfiguration"}
 10793  	if s.LaunchTemplate != nil {
 10794  		if err := s.LaunchTemplate.Validate(); err != nil {
 10795  			invalidParams.AddNested("LaunchTemplate", err.(request.ErrInvalidParams))
 10796  		}
 10797  	}
 10798  	if s.MixedInstancesPolicy != nil {
 10799  		if err := s.MixedInstancesPolicy.Validate(); err != nil {
 10800  			invalidParams.AddNested("MixedInstancesPolicy", err.(request.ErrInvalidParams))
 10801  		}
 10802  	}
 10803  
 10804  	if invalidParams.Len() > 0 {
 10805  		return invalidParams
 10806  	}
 10807  	return nil
 10808  }
 10809  
 10810  // SetLaunchTemplate sets the LaunchTemplate field's value.
 10811  func (s *DesiredConfiguration) SetLaunchTemplate(v *LaunchTemplateSpecification) *DesiredConfiguration {
 10812  	s.LaunchTemplate = v
 10813  	return s
 10814  }
 10815  
 10816  // SetMixedInstancesPolicy sets the MixedInstancesPolicy field's value.
 10817  func (s *DesiredConfiguration) SetMixedInstancesPolicy(v *MixedInstancesPolicy) *DesiredConfiguration {
 10818  	s.MixedInstancesPolicy = v
 10819  	return s
 10820  }
 10821  
 10822  type DetachInstancesInput struct {
 10823  	_ struct{} `type:"structure"`
 10824  
 10825  	// The name of the Auto Scaling group.
 10826  	//
 10827  	// AutoScalingGroupName is a required field
 10828  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 10829  
 10830  	// The IDs of the instances. You can specify up to 20 instances.
 10831  	InstanceIds []*string `type:"list"`
 10832  
 10833  	// Indicates whether the Auto Scaling group decrements the desired capacity
 10834  	// value by the number of instances detached.
 10835  	//
 10836  	// ShouldDecrementDesiredCapacity is a required field
 10837  	ShouldDecrementDesiredCapacity *bool `type:"boolean" required:"true"`
 10838  }
 10839  
 10840  // String returns the string representation.
 10841  //
 10842  // API parameter values that are decorated as "sensitive" in the API will not
 10843  // be included in the string output. The member name will be present, but the
 10844  // value will be replaced with "sensitive".
 10845  func (s DetachInstancesInput) String() string {
 10846  	return awsutil.Prettify(s)
 10847  }
 10848  
 10849  // GoString returns the string representation.
 10850  //
 10851  // API parameter values that are decorated as "sensitive" in the API will not
 10852  // be included in the string output. The member name will be present, but the
 10853  // value will be replaced with "sensitive".
 10854  func (s DetachInstancesInput) GoString() string {
 10855  	return s.String()
 10856  }
 10857  
 10858  // Validate inspects the fields of the type to determine if they are valid.
 10859  func (s *DetachInstancesInput) Validate() error {
 10860  	invalidParams := request.ErrInvalidParams{Context: "DetachInstancesInput"}
 10861  	if s.AutoScalingGroupName == nil {
 10862  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 10863  	}
 10864  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 10865  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 10866  	}
 10867  	if s.ShouldDecrementDesiredCapacity == nil {
 10868  		invalidParams.Add(request.NewErrParamRequired("ShouldDecrementDesiredCapacity"))
 10869  	}
 10870  
 10871  	if invalidParams.Len() > 0 {
 10872  		return invalidParams
 10873  	}
 10874  	return nil
 10875  }
 10876  
 10877  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 10878  func (s *DetachInstancesInput) SetAutoScalingGroupName(v string) *DetachInstancesInput {
 10879  	s.AutoScalingGroupName = &v
 10880  	return s
 10881  }
 10882  
 10883  // SetInstanceIds sets the InstanceIds field's value.
 10884  func (s *DetachInstancesInput) SetInstanceIds(v []*string) *DetachInstancesInput {
 10885  	s.InstanceIds = v
 10886  	return s
 10887  }
 10888  
 10889  // SetShouldDecrementDesiredCapacity sets the ShouldDecrementDesiredCapacity field's value.
 10890  func (s *DetachInstancesInput) SetShouldDecrementDesiredCapacity(v bool) *DetachInstancesInput {
 10891  	s.ShouldDecrementDesiredCapacity = &v
 10892  	return s
 10893  }
 10894  
 10895  type DetachInstancesOutput struct {
 10896  	_ struct{} `type:"structure"`
 10897  
 10898  	// The activities related to detaching the instances from the Auto Scaling group.
 10899  	Activities []*Activity `type:"list"`
 10900  }
 10901  
 10902  // String returns the string representation.
 10903  //
 10904  // API parameter values that are decorated as "sensitive" in the API will not
 10905  // be included in the string output. The member name will be present, but the
 10906  // value will be replaced with "sensitive".
 10907  func (s DetachInstancesOutput) String() string {
 10908  	return awsutil.Prettify(s)
 10909  }
 10910  
 10911  // GoString returns the string representation.
 10912  //
 10913  // API parameter values that are decorated as "sensitive" in the API will not
 10914  // be included in the string output. The member name will be present, but the
 10915  // value will be replaced with "sensitive".
 10916  func (s DetachInstancesOutput) GoString() string {
 10917  	return s.String()
 10918  }
 10919  
 10920  // SetActivities sets the Activities field's value.
 10921  func (s *DetachInstancesOutput) SetActivities(v []*Activity) *DetachInstancesOutput {
 10922  	s.Activities = v
 10923  	return s
 10924  }
 10925  
 10926  type DetachLoadBalancerTargetGroupsInput struct {
 10927  	_ struct{} `type:"structure"`
 10928  
 10929  	// The name of the Auto Scaling group.
 10930  	//
 10931  	// AutoScalingGroupName is a required field
 10932  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 10933  
 10934  	// The Amazon Resource Names (ARN) of the target groups. You can specify up
 10935  	// to 10 target groups.
 10936  	//
 10937  	// TargetGroupARNs is a required field
 10938  	TargetGroupARNs []*string `type:"list" required:"true"`
 10939  }
 10940  
 10941  // String returns the string representation.
 10942  //
 10943  // API parameter values that are decorated as "sensitive" in the API will not
 10944  // be included in the string output. The member name will be present, but the
 10945  // value will be replaced with "sensitive".
 10946  func (s DetachLoadBalancerTargetGroupsInput) String() string {
 10947  	return awsutil.Prettify(s)
 10948  }
 10949  
 10950  // GoString returns the string representation.
 10951  //
 10952  // API parameter values that are decorated as "sensitive" in the API will not
 10953  // be included in the string output. The member name will be present, but the
 10954  // value will be replaced with "sensitive".
 10955  func (s DetachLoadBalancerTargetGroupsInput) GoString() string {
 10956  	return s.String()
 10957  }
 10958  
 10959  // Validate inspects the fields of the type to determine if they are valid.
 10960  func (s *DetachLoadBalancerTargetGroupsInput) Validate() error {
 10961  	invalidParams := request.ErrInvalidParams{Context: "DetachLoadBalancerTargetGroupsInput"}
 10962  	if s.AutoScalingGroupName == nil {
 10963  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 10964  	}
 10965  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 10966  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 10967  	}
 10968  	if s.TargetGroupARNs == nil {
 10969  		invalidParams.Add(request.NewErrParamRequired("TargetGroupARNs"))
 10970  	}
 10971  
 10972  	if invalidParams.Len() > 0 {
 10973  		return invalidParams
 10974  	}
 10975  	return nil
 10976  }
 10977  
 10978  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 10979  func (s *DetachLoadBalancerTargetGroupsInput) SetAutoScalingGroupName(v string) *DetachLoadBalancerTargetGroupsInput {
 10980  	s.AutoScalingGroupName = &v
 10981  	return s
 10982  }
 10983  
 10984  // SetTargetGroupARNs sets the TargetGroupARNs field's value.
 10985  func (s *DetachLoadBalancerTargetGroupsInput) SetTargetGroupARNs(v []*string) *DetachLoadBalancerTargetGroupsInput {
 10986  	s.TargetGroupARNs = v
 10987  	return s
 10988  }
 10989  
 10990  type DetachLoadBalancerTargetGroupsOutput struct {
 10991  	_ struct{} `type:"structure"`
 10992  }
 10993  
 10994  // String returns the string representation.
 10995  //
 10996  // API parameter values that are decorated as "sensitive" in the API will not
 10997  // be included in the string output. The member name will be present, but the
 10998  // value will be replaced with "sensitive".
 10999  func (s DetachLoadBalancerTargetGroupsOutput) String() string {
 11000  	return awsutil.Prettify(s)
 11001  }
 11002  
 11003  // GoString returns the string representation.
 11004  //
 11005  // API parameter values that are decorated as "sensitive" in the API will not
 11006  // be included in the string output. The member name will be present, but the
 11007  // value will be replaced with "sensitive".
 11008  func (s DetachLoadBalancerTargetGroupsOutput) GoString() string {
 11009  	return s.String()
 11010  }
 11011  
 11012  type DetachLoadBalancersInput struct {
 11013  	_ struct{} `type:"structure"`
 11014  
 11015  	// The name of the Auto Scaling group.
 11016  	//
 11017  	// AutoScalingGroupName is a required field
 11018  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 11019  
 11020  	// The names of the load balancers. You can specify up to 10 load balancers.
 11021  	//
 11022  	// LoadBalancerNames is a required field
 11023  	LoadBalancerNames []*string `type:"list" required:"true"`
 11024  }
 11025  
 11026  // String returns the string representation.
 11027  //
 11028  // API parameter values that are decorated as "sensitive" in the API will not
 11029  // be included in the string output. The member name will be present, but the
 11030  // value will be replaced with "sensitive".
 11031  func (s DetachLoadBalancersInput) String() string {
 11032  	return awsutil.Prettify(s)
 11033  }
 11034  
 11035  // GoString returns the string representation.
 11036  //
 11037  // API parameter values that are decorated as "sensitive" in the API will not
 11038  // be included in the string output. The member name will be present, but the
 11039  // value will be replaced with "sensitive".
 11040  func (s DetachLoadBalancersInput) GoString() string {
 11041  	return s.String()
 11042  }
 11043  
 11044  // Validate inspects the fields of the type to determine if they are valid.
 11045  func (s *DetachLoadBalancersInput) Validate() error {
 11046  	invalidParams := request.ErrInvalidParams{Context: "DetachLoadBalancersInput"}
 11047  	if s.AutoScalingGroupName == nil {
 11048  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 11049  	}
 11050  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 11051  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 11052  	}
 11053  	if s.LoadBalancerNames == nil {
 11054  		invalidParams.Add(request.NewErrParamRequired("LoadBalancerNames"))
 11055  	}
 11056  
 11057  	if invalidParams.Len() > 0 {
 11058  		return invalidParams
 11059  	}
 11060  	return nil
 11061  }
 11062  
 11063  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 11064  func (s *DetachLoadBalancersInput) SetAutoScalingGroupName(v string) *DetachLoadBalancersInput {
 11065  	s.AutoScalingGroupName = &v
 11066  	return s
 11067  }
 11068  
 11069  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
 11070  func (s *DetachLoadBalancersInput) SetLoadBalancerNames(v []*string) *DetachLoadBalancersInput {
 11071  	s.LoadBalancerNames = v
 11072  	return s
 11073  }
 11074  
 11075  type DetachLoadBalancersOutput struct {
 11076  	_ struct{} `type:"structure"`
 11077  }
 11078  
 11079  // String returns the string representation.
 11080  //
 11081  // API parameter values that are decorated as "sensitive" in the API will not
 11082  // be included in the string output. The member name will be present, but the
 11083  // value will be replaced with "sensitive".
 11084  func (s DetachLoadBalancersOutput) String() string {
 11085  	return awsutil.Prettify(s)
 11086  }
 11087  
 11088  // GoString returns the string representation.
 11089  //
 11090  // API parameter values that are decorated as "sensitive" in the API will not
 11091  // be included in the string output. The member name will be present, but the
 11092  // value will be replaced with "sensitive".
 11093  func (s DetachLoadBalancersOutput) GoString() string {
 11094  	return s.String()
 11095  }
 11096  
 11097  type DisableMetricsCollectionInput struct {
 11098  	_ struct{} `type:"structure"`
 11099  
 11100  	// The name of the Auto Scaling group.
 11101  	//
 11102  	// AutoScalingGroupName is a required field
 11103  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 11104  
 11105  	// Specifies one or more of the following metrics:
 11106  	//
 11107  	//    * GroupMinSize
 11108  	//
 11109  	//    * GroupMaxSize
 11110  	//
 11111  	//    * GroupDesiredCapacity
 11112  	//
 11113  	//    * GroupInServiceInstances
 11114  	//
 11115  	//    * GroupPendingInstances
 11116  	//
 11117  	//    * GroupStandbyInstances
 11118  	//
 11119  	//    * GroupTerminatingInstances
 11120  	//
 11121  	//    * GroupTotalInstances
 11122  	//
 11123  	//    * GroupInServiceCapacity
 11124  	//
 11125  	//    * GroupPendingCapacity
 11126  	//
 11127  	//    * GroupStandbyCapacity
 11128  	//
 11129  	//    * GroupTerminatingCapacity
 11130  	//
 11131  	//    * GroupTotalCapacity
 11132  	//
 11133  	//    * WarmPoolDesiredCapacity
 11134  	//
 11135  	//    * WarmPoolWarmedCapacity
 11136  	//
 11137  	//    * WarmPoolPendingCapacity
 11138  	//
 11139  	//    * WarmPoolTerminatingCapacity
 11140  	//
 11141  	//    * WarmPoolTotalCapacity
 11142  	//
 11143  	//    * GroupAndWarmPoolDesiredCapacity
 11144  	//
 11145  	//    * GroupAndWarmPoolTotalCapacity
 11146  	//
 11147  	// If you omit this parameter, all metrics are disabled.
 11148  	Metrics []*string `type:"list"`
 11149  }
 11150  
 11151  // String returns the string representation.
 11152  //
 11153  // API parameter values that are decorated as "sensitive" in the API will not
 11154  // be included in the string output. The member name will be present, but the
 11155  // value will be replaced with "sensitive".
 11156  func (s DisableMetricsCollectionInput) String() string {
 11157  	return awsutil.Prettify(s)
 11158  }
 11159  
 11160  // GoString returns the string representation.
 11161  //
 11162  // API parameter values that are decorated as "sensitive" in the API will not
 11163  // be included in the string output. The member name will be present, but the
 11164  // value will be replaced with "sensitive".
 11165  func (s DisableMetricsCollectionInput) GoString() string {
 11166  	return s.String()
 11167  }
 11168  
 11169  // Validate inspects the fields of the type to determine if they are valid.
 11170  func (s *DisableMetricsCollectionInput) Validate() error {
 11171  	invalidParams := request.ErrInvalidParams{Context: "DisableMetricsCollectionInput"}
 11172  	if s.AutoScalingGroupName == nil {
 11173  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 11174  	}
 11175  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 11176  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 11177  	}
 11178  
 11179  	if invalidParams.Len() > 0 {
 11180  		return invalidParams
 11181  	}
 11182  	return nil
 11183  }
 11184  
 11185  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 11186  func (s *DisableMetricsCollectionInput) SetAutoScalingGroupName(v string) *DisableMetricsCollectionInput {
 11187  	s.AutoScalingGroupName = &v
 11188  	return s
 11189  }
 11190  
 11191  // SetMetrics sets the Metrics field's value.
 11192  func (s *DisableMetricsCollectionInput) SetMetrics(v []*string) *DisableMetricsCollectionInput {
 11193  	s.Metrics = v
 11194  	return s
 11195  }
 11196  
 11197  type DisableMetricsCollectionOutput struct {
 11198  	_ struct{} `type:"structure"`
 11199  }
 11200  
 11201  // String returns the string representation.
 11202  //
 11203  // API parameter values that are decorated as "sensitive" in the API will not
 11204  // be included in the string output. The member name will be present, but the
 11205  // value will be replaced with "sensitive".
 11206  func (s DisableMetricsCollectionOutput) String() string {
 11207  	return awsutil.Prettify(s)
 11208  }
 11209  
 11210  // GoString returns the string representation.
 11211  //
 11212  // API parameter values that are decorated as "sensitive" in the API will not
 11213  // be included in the string output. The member name will be present, but the
 11214  // value will be replaced with "sensitive".
 11215  func (s DisableMetricsCollectionOutput) GoString() string {
 11216  	return s.String()
 11217  }
 11218  
 11219  // Describes information used to set up an Amazon EBS volume specified in a
 11220  // block device mapping.
 11221  type Ebs struct {
 11222  	_ struct{} `type:"structure"`
 11223  
 11224  	// Indicates whether the volume is deleted on instance termination. For Amazon
 11225  	// EC2 Auto Scaling, the default value is true.
 11226  	DeleteOnTermination *bool `type:"boolean"`
 11227  
 11228  	// Specifies whether the volume should be encrypted. Encrypted EBS volumes can
 11229  	// only be attached to instances that support Amazon EBS encryption. For more
 11230  	// information, see Supported Instance Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances).
 11231  	// If your AMI uses encrypted volumes, you can also only launch it on supported
 11232  	// instance types.
 11233  	//
 11234  	// If you are creating a volume from a snapshot, you cannot specify an encryption
 11235  	// value. Volumes that are created from encrypted snapshots are automatically
 11236  	// encrypted, and volumes that are created from unencrypted snapshots are automatically
 11237  	// unencrypted. By default, encrypted snapshots use the Amazon Web Services
 11238  	// managed CMK that is used for EBS encryption, but you can specify a custom
 11239  	// CMK when you create the snapshot. The ability to encrypt a snapshot during
 11240  	// copying also allows you to apply a new CMK to an already-encrypted snapshot.
 11241  	// Volumes restored from the resulting copy are only accessible using the new
 11242  	// CMK.
 11243  	//
 11244  	// Enabling encryption by default (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default)
 11245  	// results in all EBS volumes being encrypted with the Amazon Web Services managed
 11246  	// CMK or a customer managed CMK, whether or not the snapshot was encrypted.
 11247  	//
 11248  	// For more information, see Using Encryption with EBS-Backed AMIs (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html)
 11249  	// in the Amazon EC2 User Guide for Linux Instances and Required CMK key policy
 11250  	// for use with encrypted volumes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html)
 11251  	// in the Amazon EC2 Auto Scaling User Guide.
 11252  	Encrypted *bool `type:"boolean"`
 11253  
 11254  	// The number of input/output (I/O) operations per second (IOPS) to provision
 11255  	// for the volume. For gp3 and io1 volumes, this represents the number of IOPS
 11256  	// that are provisioned for the volume. For gp2 volumes, this represents the
 11257  	// baseline performance of the volume and the rate at which the volume accumulates
 11258  	// I/O credits for bursting.
 11259  	//
 11260  	// The following are the supported values for each volume type:
 11261  	//
 11262  	//    * gp3: 3,000-16,000 IOPS
 11263  	//
 11264  	//    * io1: 100-64,000 IOPS
 11265  	//
 11266  	// For io1 volumes, we guarantee 64,000 IOPS only for Instances built on the
 11267  	// Nitro System (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
 11268  	// Other instance families guarantee performance up to 32,000 IOPS.
 11269  	//
 11270  	// Iops is supported when the volume type is gp3 or io1 and required only when
 11271  	// the volume type is io1. (Not used with standard, gp2, st1, or sc1 volumes.)
 11272  	Iops *int64 `min:"100" type:"integer"`
 11273  
 11274  	// The snapshot ID of the volume to use.
 11275  	//
 11276  	// You must specify either a VolumeSize or a SnapshotId.
 11277  	SnapshotId *string `min:"1" type:"string"`
 11278  
 11279  	// The throughput (MiBps) to provision for a gp3 volume.
 11280  	Throughput *int64 `min:"125" type:"integer"`
 11281  
 11282  	// The volume size, in GiBs. The following are the supported volumes sizes for
 11283  	// each volume type:
 11284  	//
 11285  	//    * gp2 and gp3: 1-16,384
 11286  	//
 11287  	//    * io1: 4-16,384
 11288  	//
 11289  	//    * st1 and sc1: 125-16,384
 11290  	//
 11291  	//    * standard: 1-1,024
 11292  	//
 11293  	// You must specify either a SnapshotId or a VolumeSize. If you specify both
 11294  	// SnapshotId and VolumeSize, the volume size must be equal or greater than
 11295  	// the size of the snapshot.
 11296  	VolumeSize *int64 `min:"1" type:"integer"`
 11297  
 11298  	// The volume type. For more information, see Amazon EBS Volume Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
 11299  	// in the Amazon EC2 User Guide for Linux Instances.
 11300  	//
 11301  	// Valid Values: standard | io1 | gp2 | st1 | sc1 | gp3
 11302  	VolumeType *string `min:"1" type:"string"`
 11303  }
 11304  
 11305  // String returns the string representation.
 11306  //
 11307  // API parameter values that are decorated as "sensitive" in the API will not
 11308  // be included in the string output. The member name will be present, but the
 11309  // value will be replaced with "sensitive".
 11310  func (s Ebs) String() string {
 11311  	return awsutil.Prettify(s)
 11312  }
 11313  
 11314  // GoString returns the string representation.
 11315  //
 11316  // API parameter values that are decorated as "sensitive" in the API will not
 11317  // be included in the string output. The member name will be present, but the
 11318  // value will be replaced with "sensitive".
 11319  func (s Ebs) GoString() string {
 11320  	return s.String()
 11321  }
 11322  
 11323  // Validate inspects the fields of the type to determine if they are valid.
 11324  func (s *Ebs) Validate() error {
 11325  	invalidParams := request.ErrInvalidParams{Context: "Ebs"}
 11326  	if s.Iops != nil && *s.Iops < 100 {
 11327  		invalidParams.Add(request.NewErrParamMinValue("Iops", 100))
 11328  	}
 11329  	if s.SnapshotId != nil && len(*s.SnapshotId) < 1 {
 11330  		invalidParams.Add(request.NewErrParamMinLen("SnapshotId", 1))
 11331  	}
 11332  	if s.Throughput != nil && *s.Throughput < 125 {
 11333  		invalidParams.Add(request.NewErrParamMinValue("Throughput", 125))
 11334  	}
 11335  	if s.VolumeSize != nil && *s.VolumeSize < 1 {
 11336  		invalidParams.Add(request.NewErrParamMinValue("VolumeSize", 1))
 11337  	}
 11338  	if s.VolumeType != nil && len(*s.VolumeType) < 1 {
 11339  		invalidParams.Add(request.NewErrParamMinLen("VolumeType", 1))
 11340  	}
 11341  
 11342  	if invalidParams.Len() > 0 {
 11343  		return invalidParams
 11344  	}
 11345  	return nil
 11346  }
 11347  
 11348  // SetDeleteOnTermination sets the DeleteOnTermination field's value.
 11349  func (s *Ebs) SetDeleteOnTermination(v bool) *Ebs {
 11350  	s.DeleteOnTermination = &v
 11351  	return s
 11352  }
 11353  
 11354  // SetEncrypted sets the Encrypted field's value.
 11355  func (s *Ebs) SetEncrypted(v bool) *Ebs {
 11356  	s.Encrypted = &v
 11357  	return s
 11358  }
 11359  
 11360  // SetIops sets the Iops field's value.
 11361  func (s *Ebs) SetIops(v int64) *Ebs {
 11362  	s.Iops = &v
 11363  	return s
 11364  }
 11365  
 11366  // SetSnapshotId sets the SnapshotId field's value.
 11367  func (s *Ebs) SetSnapshotId(v string) *Ebs {
 11368  	s.SnapshotId = &v
 11369  	return s
 11370  }
 11371  
 11372  // SetThroughput sets the Throughput field's value.
 11373  func (s *Ebs) SetThroughput(v int64) *Ebs {
 11374  	s.Throughput = &v
 11375  	return s
 11376  }
 11377  
 11378  // SetVolumeSize sets the VolumeSize field's value.
 11379  func (s *Ebs) SetVolumeSize(v int64) *Ebs {
 11380  	s.VolumeSize = &v
 11381  	return s
 11382  }
 11383  
 11384  // SetVolumeType sets the VolumeType field's value.
 11385  func (s *Ebs) SetVolumeType(v string) *Ebs {
 11386  	s.VolumeType = &v
 11387  	return s
 11388  }
 11389  
 11390  type EnableMetricsCollectionInput struct {
 11391  	_ struct{} `type:"structure"`
 11392  
 11393  	// The name of the Auto Scaling group.
 11394  	//
 11395  	// AutoScalingGroupName is a required field
 11396  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 11397  
 11398  	// The granularity to associate with the metrics to collect. The only valid
 11399  	// value is 1Minute.
 11400  	//
 11401  	// Granularity is a required field
 11402  	Granularity *string `min:"1" type:"string" required:"true"`
 11403  
 11404  	// Specifies which group-level metrics to start collecting. You can specify
 11405  	// one or more of the following metrics:
 11406  	//
 11407  	//    * GroupMinSize
 11408  	//
 11409  	//    * GroupMaxSize
 11410  	//
 11411  	//    * GroupDesiredCapacity
 11412  	//
 11413  	//    * GroupInServiceInstances
 11414  	//
 11415  	//    * GroupPendingInstances
 11416  	//
 11417  	//    * GroupStandbyInstances
 11418  	//
 11419  	//    * GroupTerminatingInstances
 11420  	//
 11421  	//    * GroupTotalInstances
 11422  	//
 11423  	// The instance weighting feature supports the following additional metrics:
 11424  	//
 11425  	//    * GroupInServiceCapacity
 11426  	//
 11427  	//    * GroupPendingCapacity
 11428  	//
 11429  	//    * GroupStandbyCapacity
 11430  	//
 11431  	//    * GroupTerminatingCapacity
 11432  	//
 11433  	//    * GroupTotalCapacity
 11434  	//
 11435  	// The warm pools feature supports the following additional metrics:
 11436  	//
 11437  	//    * WarmPoolDesiredCapacity
 11438  	//
 11439  	//    * WarmPoolWarmedCapacity
 11440  	//
 11441  	//    * WarmPoolPendingCapacity
 11442  	//
 11443  	//    * WarmPoolTerminatingCapacity
 11444  	//
 11445  	//    * WarmPoolTotalCapacity
 11446  	//
 11447  	//    * GroupAndWarmPoolDesiredCapacity
 11448  	//
 11449  	//    * GroupAndWarmPoolTotalCapacity
 11450  	//
 11451  	// If you omit this parameter, all metrics are enabled.
 11452  	Metrics []*string `type:"list"`
 11453  }
 11454  
 11455  // String returns the string representation.
 11456  //
 11457  // API parameter values that are decorated as "sensitive" in the API will not
 11458  // be included in the string output. The member name will be present, but the
 11459  // value will be replaced with "sensitive".
 11460  func (s EnableMetricsCollectionInput) String() string {
 11461  	return awsutil.Prettify(s)
 11462  }
 11463  
 11464  // GoString returns the string representation.
 11465  //
 11466  // API parameter values that are decorated as "sensitive" in the API will not
 11467  // be included in the string output. The member name will be present, but the
 11468  // value will be replaced with "sensitive".
 11469  func (s EnableMetricsCollectionInput) GoString() string {
 11470  	return s.String()
 11471  }
 11472  
 11473  // Validate inspects the fields of the type to determine if they are valid.
 11474  func (s *EnableMetricsCollectionInput) Validate() error {
 11475  	invalidParams := request.ErrInvalidParams{Context: "EnableMetricsCollectionInput"}
 11476  	if s.AutoScalingGroupName == nil {
 11477  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 11478  	}
 11479  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 11480  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 11481  	}
 11482  	if s.Granularity == nil {
 11483  		invalidParams.Add(request.NewErrParamRequired("Granularity"))
 11484  	}
 11485  	if s.Granularity != nil && len(*s.Granularity) < 1 {
 11486  		invalidParams.Add(request.NewErrParamMinLen("Granularity", 1))
 11487  	}
 11488  
 11489  	if invalidParams.Len() > 0 {
 11490  		return invalidParams
 11491  	}
 11492  	return nil
 11493  }
 11494  
 11495  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 11496  func (s *EnableMetricsCollectionInput) SetAutoScalingGroupName(v string) *EnableMetricsCollectionInput {
 11497  	s.AutoScalingGroupName = &v
 11498  	return s
 11499  }
 11500  
 11501  // SetGranularity sets the Granularity field's value.
 11502  func (s *EnableMetricsCollectionInput) SetGranularity(v string) *EnableMetricsCollectionInput {
 11503  	s.Granularity = &v
 11504  	return s
 11505  }
 11506  
 11507  // SetMetrics sets the Metrics field's value.
 11508  func (s *EnableMetricsCollectionInput) SetMetrics(v []*string) *EnableMetricsCollectionInput {
 11509  	s.Metrics = v
 11510  	return s
 11511  }
 11512  
 11513  type EnableMetricsCollectionOutput struct {
 11514  	_ struct{} `type:"structure"`
 11515  }
 11516  
 11517  // String returns the string representation.
 11518  //
 11519  // API parameter values that are decorated as "sensitive" in the API will not
 11520  // be included in the string output. The member name will be present, but the
 11521  // value will be replaced with "sensitive".
 11522  func (s EnableMetricsCollectionOutput) String() string {
 11523  	return awsutil.Prettify(s)
 11524  }
 11525  
 11526  // GoString returns the string representation.
 11527  //
 11528  // API parameter values that are decorated as "sensitive" in the API will not
 11529  // be included in the string output. The member name will be present, but the
 11530  // value will be replaced with "sensitive".
 11531  func (s EnableMetricsCollectionOutput) GoString() string {
 11532  	return s.String()
 11533  }
 11534  
 11535  // Describes an enabled metric.
 11536  type EnabledMetric struct {
 11537  	_ struct{} `type:"structure"`
 11538  
 11539  	// The granularity of the metric. The only valid value is 1Minute.
 11540  	Granularity *string `min:"1" type:"string"`
 11541  
 11542  	// One of the following metrics:
 11543  	//
 11544  	//    * GroupMinSize
 11545  	//
 11546  	//    * GroupMaxSize
 11547  	//
 11548  	//    * GroupDesiredCapacity
 11549  	//
 11550  	//    * GroupInServiceInstances
 11551  	//
 11552  	//    * GroupPendingInstances
 11553  	//
 11554  	//    * GroupStandbyInstances
 11555  	//
 11556  	//    * GroupTerminatingInstances
 11557  	//
 11558  	//    * GroupTotalInstances
 11559  	//
 11560  	//    * GroupInServiceCapacity
 11561  	//
 11562  	//    * GroupPendingCapacity
 11563  	//
 11564  	//    * GroupStandbyCapacity
 11565  	//
 11566  	//    * GroupTerminatingCapacity
 11567  	//
 11568  	//    * GroupTotalCapacity
 11569  	//
 11570  	//    * WarmPoolDesiredCapacity
 11571  	//
 11572  	//    * WarmPoolWarmedCapacity
 11573  	//
 11574  	//    * WarmPoolPendingCapacity
 11575  	//
 11576  	//    * WarmPoolTerminatingCapacity
 11577  	//
 11578  	//    * WarmPoolTotalCapacity
 11579  	//
 11580  	//    * GroupAndWarmPoolDesiredCapacity
 11581  	//
 11582  	//    * GroupAndWarmPoolTotalCapacity
 11583  	Metric *string `min:"1" type:"string"`
 11584  }
 11585  
 11586  // String returns the string representation.
 11587  //
 11588  // API parameter values that are decorated as "sensitive" in the API will not
 11589  // be included in the string output. The member name will be present, but the
 11590  // value will be replaced with "sensitive".
 11591  func (s EnabledMetric) String() string {
 11592  	return awsutil.Prettify(s)
 11593  }
 11594  
 11595  // GoString returns the string representation.
 11596  //
 11597  // API parameter values that are decorated as "sensitive" in the API will not
 11598  // be included in the string output. The member name will be present, but the
 11599  // value will be replaced with "sensitive".
 11600  func (s EnabledMetric) GoString() string {
 11601  	return s.String()
 11602  }
 11603  
 11604  // SetGranularity sets the Granularity field's value.
 11605  func (s *EnabledMetric) SetGranularity(v string) *EnabledMetric {
 11606  	s.Granularity = &v
 11607  	return s
 11608  }
 11609  
 11610  // SetMetric sets the Metric field's value.
 11611  func (s *EnabledMetric) SetMetric(v string) *EnabledMetric {
 11612  	s.Metric = &v
 11613  	return s
 11614  }
 11615  
 11616  type EnterStandbyInput struct {
 11617  	_ struct{} `type:"structure"`
 11618  
 11619  	// The name of the Auto Scaling group.
 11620  	//
 11621  	// AutoScalingGroupName is a required field
 11622  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 11623  
 11624  	// The IDs of the instances. You can specify up to 20 instances.
 11625  	InstanceIds []*string `type:"list"`
 11626  
 11627  	// Indicates whether to decrement the desired capacity of the Auto Scaling group
 11628  	// by the number of instances moved to Standby mode.
 11629  	//
 11630  	// ShouldDecrementDesiredCapacity is a required field
 11631  	ShouldDecrementDesiredCapacity *bool `type:"boolean" required:"true"`
 11632  }
 11633  
 11634  // String returns the string representation.
 11635  //
 11636  // API parameter values that are decorated as "sensitive" in the API will not
 11637  // be included in the string output. The member name will be present, but the
 11638  // value will be replaced with "sensitive".
 11639  func (s EnterStandbyInput) String() string {
 11640  	return awsutil.Prettify(s)
 11641  }
 11642  
 11643  // GoString returns the string representation.
 11644  //
 11645  // API parameter values that are decorated as "sensitive" in the API will not
 11646  // be included in the string output. The member name will be present, but the
 11647  // value will be replaced with "sensitive".
 11648  func (s EnterStandbyInput) GoString() string {
 11649  	return s.String()
 11650  }
 11651  
 11652  // Validate inspects the fields of the type to determine if they are valid.
 11653  func (s *EnterStandbyInput) Validate() error {
 11654  	invalidParams := request.ErrInvalidParams{Context: "EnterStandbyInput"}
 11655  	if s.AutoScalingGroupName == nil {
 11656  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 11657  	}
 11658  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 11659  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 11660  	}
 11661  	if s.ShouldDecrementDesiredCapacity == nil {
 11662  		invalidParams.Add(request.NewErrParamRequired("ShouldDecrementDesiredCapacity"))
 11663  	}
 11664  
 11665  	if invalidParams.Len() > 0 {
 11666  		return invalidParams
 11667  	}
 11668  	return nil
 11669  }
 11670  
 11671  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 11672  func (s *EnterStandbyInput) SetAutoScalingGroupName(v string) *EnterStandbyInput {
 11673  	s.AutoScalingGroupName = &v
 11674  	return s
 11675  }
 11676  
 11677  // SetInstanceIds sets the InstanceIds field's value.
 11678  func (s *EnterStandbyInput) SetInstanceIds(v []*string) *EnterStandbyInput {
 11679  	s.InstanceIds = v
 11680  	return s
 11681  }
 11682  
 11683  // SetShouldDecrementDesiredCapacity sets the ShouldDecrementDesiredCapacity field's value.
 11684  func (s *EnterStandbyInput) SetShouldDecrementDesiredCapacity(v bool) *EnterStandbyInput {
 11685  	s.ShouldDecrementDesiredCapacity = &v
 11686  	return s
 11687  }
 11688  
 11689  type EnterStandbyOutput struct {
 11690  	_ struct{} `type:"structure"`
 11691  
 11692  	// The activities related to moving instances into Standby mode.
 11693  	Activities []*Activity `type:"list"`
 11694  }
 11695  
 11696  // String returns the string representation.
 11697  //
 11698  // API parameter values that are decorated as "sensitive" in the API will not
 11699  // be included in the string output. The member name will be present, but the
 11700  // value will be replaced with "sensitive".
 11701  func (s EnterStandbyOutput) String() string {
 11702  	return awsutil.Prettify(s)
 11703  }
 11704  
 11705  // GoString returns the string representation.
 11706  //
 11707  // API parameter values that are decorated as "sensitive" in the API will not
 11708  // be included in the string output. The member name will be present, but the
 11709  // value will be replaced with "sensitive".
 11710  func (s EnterStandbyOutput) GoString() string {
 11711  	return s.String()
 11712  }
 11713  
 11714  // SetActivities sets the Activities field's value.
 11715  func (s *EnterStandbyOutput) SetActivities(v []*Activity) *EnterStandbyOutput {
 11716  	s.Activities = v
 11717  	return s
 11718  }
 11719  
 11720  type ExecutePolicyInput struct {
 11721  	_ struct{} `type:"structure"`
 11722  
 11723  	// The name of the Auto Scaling group.
 11724  	AutoScalingGroupName *string `min:"1" type:"string"`
 11725  
 11726  	// The breach threshold for the alarm.
 11727  	//
 11728  	// Required if the policy type is StepScaling and not supported otherwise.
 11729  	BreachThreshold *float64 `type:"double"`
 11730  
 11731  	// Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to
 11732  	// complete before executing the policy.
 11733  	//
 11734  	// Valid only if the policy type is SimpleScaling. For more information, see
 11735  	// Scaling cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)
 11736  	// in the Amazon EC2 Auto Scaling User Guide.
 11737  	HonorCooldown *bool `type:"boolean"`
 11738  
 11739  	// The metric value to compare to BreachThreshold. This enables you to execute
 11740  	// a policy of type StepScaling and determine which step adjustment to use.
 11741  	// For example, if the breach threshold is 50 and you want to use a step adjustment
 11742  	// with a lower bound of 0 and an upper bound of 10, you can set the metric
 11743  	// value to 59.
 11744  	//
 11745  	// If you specify a metric value that doesn't correspond to a step adjustment
 11746  	// for the policy, the call returns an error.
 11747  	//
 11748  	// Required if the policy type is StepScaling and not supported otherwise.
 11749  	MetricValue *float64 `type:"double"`
 11750  
 11751  	// The name or ARN of the policy.
 11752  	//
 11753  	// PolicyName is a required field
 11754  	PolicyName *string `min:"1" type:"string" required:"true"`
 11755  }
 11756  
 11757  // String returns the string representation.
 11758  //
 11759  // API parameter values that are decorated as "sensitive" in the API will not
 11760  // be included in the string output. The member name will be present, but the
 11761  // value will be replaced with "sensitive".
 11762  func (s ExecutePolicyInput) String() string {
 11763  	return awsutil.Prettify(s)
 11764  }
 11765  
 11766  // GoString returns the string representation.
 11767  //
 11768  // API parameter values that are decorated as "sensitive" in the API will not
 11769  // be included in the string output. The member name will be present, but the
 11770  // value will be replaced with "sensitive".
 11771  func (s ExecutePolicyInput) GoString() string {
 11772  	return s.String()
 11773  }
 11774  
 11775  // Validate inspects the fields of the type to determine if they are valid.
 11776  func (s *ExecutePolicyInput) Validate() error {
 11777  	invalidParams := request.ErrInvalidParams{Context: "ExecutePolicyInput"}
 11778  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 11779  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 11780  	}
 11781  	if s.PolicyName == nil {
 11782  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 11783  	}
 11784  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 11785  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 11786  	}
 11787  
 11788  	if invalidParams.Len() > 0 {
 11789  		return invalidParams
 11790  	}
 11791  	return nil
 11792  }
 11793  
 11794  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 11795  func (s *ExecutePolicyInput) SetAutoScalingGroupName(v string) *ExecutePolicyInput {
 11796  	s.AutoScalingGroupName = &v
 11797  	return s
 11798  }
 11799  
 11800  // SetBreachThreshold sets the BreachThreshold field's value.
 11801  func (s *ExecutePolicyInput) SetBreachThreshold(v float64) *ExecutePolicyInput {
 11802  	s.BreachThreshold = &v
 11803  	return s
 11804  }
 11805  
 11806  // SetHonorCooldown sets the HonorCooldown field's value.
 11807  func (s *ExecutePolicyInput) SetHonorCooldown(v bool) *ExecutePolicyInput {
 11808  	s.HonorCooldown = &v
 11809  	return s
 11810  }
 11811  
 11812  // SetMetricValue sets the MetricValue field's value.
 11813  func (s *ExecutePolicyInput) SetMetricValue(v float64) *ExecutePolicyInput {
 11814  	s.MetricValue = &v
 11815  	return s
 11816  }
 11817  
 11818  // SetPolicyName sets the PolicyName field's value.
 11819  func (s *ExecutePolicyInput) SetPolicyName(v string) *ExecutePolicyInput {
 11820  	s.PolicyName = &v
 11821  	return s
 11822  }
 11823  
 11824  type ExecutePolicyOutput struct {
 11825  	_ struct{} `type:"structure"`
 11826  }
 11827  
 11828  // String returns the string representation.
 11829  //
 11830  // API parameter values that are decorated as "sensitive" in the API will not
 11831  // be included in the string output. The member name will be present, but the
 11832  // value will be replaced with "sensitive".
 11833  func (s ExecutePolicyOutput) String() string {
 11834  	return awsutil.Prettify(s)
 11835  }
 11836  
 11837  // GoString returns the string representation.
 11838  //
 11839  // API parameter values that are decorated as "sensitive" in the API will not
 11840  // be included in the string output. The member name will be present, but the
 11841  // value will be replaced with "sensitive".
 11842  func (s ExecutePolicyOutput) GoString() string {
 11843  	return s.String()
 11844  }
 11845  
 11846  type ExitStandbyInput struct {
 11847  	_ struct{} `type:"structure"`
 11848  
 11849  	// The name of the Auto Scaling group.
 11850  	//
 11851  	// AutoScalingGroupName is a required field
 11852  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 11853  
 11854  	// The IDs of the instances. You can specify up to 20 instances.
 11855  	InstanceIds []*string `type:"list"`
 11856  }
 11857  
 11858  // String returns the string representation.
 11859  //
 11860  // API parameter values that are decorated as "sensitive" in the API will not
 11861  // be included in the string output. The member name will be present, but the
 11862  // value will be replaced with "sensitive".
 11863  func (s ExitStandbyInput) String() string {
 11864  	return awsutil.Prettify(s)
 11865  }
 11866  
 11867  // GoString returns the string representation.
 11868  //
 11869  // API parameter values that are decorated as "sensitive" in the API will not
 11870  // be included in the string output. The member name will be present, but the
 11871  // value will be replaced with "sensitive".
 11872  func (s ExitStandbyInput) GoString() string {
 11873  	return s.String()
 11874  }
 11875  
 11876  // Validate inspects the fields of the type to determine if they are valid.
 11877  func (s *ExitStandbyInput) Validate() error {
 11878  	invalidParams := request.ErrInvalidParams{Context: "ExitStandbyInput"}
 11879  	if s.AutoScalingGroupName == nil {
 11880  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 11881  	}
 11882  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 11883  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 11884  	}
 11885  
 11886  	if invalidParams.Len() > 0 {
 11887  		return invalidParams
 11888  	}
 11889  	return nil
 11890  }
 11891  
 11892  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 11893  func (s *ExitStandbyInput) SetAutoScalingGroupName(v string) *ExitStandbyInput {
 11894  	s.AutoScalingGroupName = &v
 11895  	return s
 11896  }
 11897  
 11898  // SetInstanceIds sets the InstanceIds field's value.
 11899  func (s *ExitStandbyInput) SetInstanceIds(v []*string) *ExitStandbyInput {
 11900  	s.InstanceIds = v
 11901  	return s
 11902  }
 11903  
 11904  type ExitStandbyOutput struct {
 11905  	_ struct{} `type:"structure"`
 11906  
 11907  	// The activities related to moving instances out of Standby mode.
 11908  	Activities []*Activity `type:"list"`
 11909  }
 11910  
 11911  // String returns the string representation.
 11912  //
 11913  // API parameter values that are decorated as "sensitive" in the API will not
 11914  // be included in the string output. The member name will be present, but the
 11915  // value will be replaced with "sensitive".
 11916  func (s ExitStandbyOutput) String() string {
 11917  	return awsutil.Prettify(s)
 11918  }
 11919  
 11920  // GoString returns the string representation.
 11921  //
 11922  // API parameter values that are decorated as "sensitive" in the API will not
 11923  // be included in the string output. The member name will be present, but the
 11924  // value will be replaced with "sensitive".
 11925  func (s ExitStandbyOutput) GoString() string {
 11926  	return s.String()
 11927  }
 11928  
 11929  // SetActivities sets the Activities field's value.
 11930  func (s *ExitStandbyOutput) SetActivities(v []*Activity) *ExitStandbyOutput {
 11931  	s.Activities = v
 11932  	return s
 11933  }
 11934  
 11935  // Describes a scheduled action that could not be created, updated, or deleted.
 11936  type FailedScheduledUpdateGroupActionRequest struct {
 11937  	_ struct{} `type:"structure"`
 11938  
 11939  	// The error code.
 11940  	ErrorCode *string `min:"1" type:"string"`
 11941  
 11942  	// The error message accompanying the error code.
 11943  	ErrorMessage *string `type:"string"`
 11944  
 11945  	// The name of the scheduled action.
 11946  	//
 11947  	// ScheduledActionName is a required field
 11948  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
 11949  }
 11950  
 11951  // String returns the string representation.
 11952  //
 11953  // API parameter values that are decorated as "sensitive" in the API will not
 11954  // be included in the string output. The member name will be present, but the
 11955  // value will be replaced with "sensitive".
 11956  func (s FailedScheduledUpdateGroupActionRequest) String() string {
 11957  	return awsutil.Prettify(s)
 11958  }
 11959  
 11960  // GoString returns the string representation.
 11961  //
 11962  // API parameter values that are decorated as "sensitive" in the API will not
 11963  // be included in the string output. The member name will be present, but the
 11964  // value will be replaced with "sensitive".
 11965  func (s FailedScheduledUpdateGroupActionRequest) GoString() string {
 11966  	return s.String()
 11967  }
 11968  
 11969  // SetErrorCode sets the ErrorCode field's value.
 11970  func (s *FailedScheduledUpdateGroupActionRequest) SetErrorCode(v string) *FailedScheduledUpdateGroupActionRequest {
 11971  	s.ErrorCode = &v
 11972  	return s
 11973  }
 11974  
 11975  // SetErrorMessage sets the ErrorMessage field's value.
 11976  func (s *FailedScheduledUpdateGroupActionRequest) SetErrorMessage(v string) *FailedScheduledUpdateGroupActionRequest {
 11977  	s.ErrorMessage = &v
 11978  	return s
 11979  }
 11980  
 11981  // SetScheduledActionName sets the ScheduledActionName field's value.
 11982  func (s *FailedScheduledUpdateGroupActionRequest) SetScheduledActionName(v string) *FailedScheduledUpdateGroupActionRequest {
 11983  	s.ScheduledActionName = &v
 11984  	return s
 11985  }
 11986  
 11987  // Describes a filter that is used to return a more specific list of results
 11988  // when describing tags.
 11989  //
 11990  // For more information, see Tagging Auto Scaling groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html)
 11991  // in the Amazon EC2 Auto Scaling User Guide.
 11992  type Filter struct {
 11993  	_ struct{} `type:"structure"`
 11994  
 11995  	// The name of the filter. The valid values are: auto-scaling-group, key, value,
 11996  	// and propagate-at-launch.
 11997  	Name *string `type:"string"`
 11998  
 11999  	// One or more filter values. Filter values are case-sensitive.
 12000  	Values []*string `type:"list"`
 12001  }
 12002  
 12003  // String returns the string representation.
 12004  //
 12005  // API parameter values that are decorated as "sensitive" in the API will not
 12006  // be included in the string output. The member name will be present, but the
 12007  // value will be replaced with "sensitive".
 12008  func (s Filter) String() string {
 12009  	return awsutil.Prettify(s)
 12010  }
 12011  
 12012  // GoString returns the string representation.
 12013  //
 12014  // API parameter values that are decorated as "sensitive" in the API will not
 12015  // be included in the string output. The member name will be present, but the
 12016  // value will be replaced with "sensitive".
 12017  func (s Filter) GoString() string {
 12018  	return s.String()
 12019  }
 12020  
 12021  // SetName sets the Name field's value.
 12022  func (s *Filter) SetName(v string) *Filter {
 12023  	s.Name = &v
 12024  	return s
 12025  }
 12026  
 12027  // SetValues sets the Values field's value.
 12028  func (s *Filter) SetValues(v []*string) *Filter {
 12029  	s.Values = v
 12030  	return s
 12031  }
 12032  
 12033  type GetPredictiveScalingForecastInput struct {
 12034  	_ struct{} `type:"structure"`
 12035  
 12036  	// The name of the Auto Scaling group.
 12037  	//
 12038  	// AutoScalingGroupName is a required field
 12039  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 12040  
 12041  	// The exclusive end time of the time range for the forecast data to get. The
 12042  	// maximum time duration between the start and end time is 30 days.
 12043  	//
 12044  	// Although this parameter can accept a date and time that is more than two
 12045  	// days in the future, the availability of forecast data has limits. Amazon
 12046  	// EC2 Auto Scaling only issues forecasts for periods of two days in advance.
 12047  	//
 12048  	// EndTime is a required field
 12049  	EndTime *time.Time `type:"timestamp" required:"true"`
 12050  
 12051  	// The name of the policy.
 12052  	//
 12053  	// PolicyName is a required field
 12054  	PolicyName *string `min:"1" type:"string" required:"true"`
 12055  
 12056  	// The inclusive start time of the time range for the forecast data to get.
 12057  	// At most, the date and time can be one year before the current date and time.
 12058  	//
 12059  	// StartTime is a required field
 12060  	StartTime *time.Time `type:"timestamp" required:"true"`
 12061  }
 12062  
 12063  // String returns the string representation.
 12064  //
 12065  // API parameter values that are decorated as "sensitive" in the API will not
 12066  // be included in the string output. The member name will be present, but the
 12067  // value will be replaced with "sensitive".
 12068  func (s GetPredictiveScalingForecastInput) String() string {
 12069  	return awsutil.Prettify(s)
 12070  }
 12071  
 12072  // GoString returns the string representation.
 12073  //
 12074  // API parameter values that are decorated as "sensitive" in the API will not
 12075  // be included in the string output. The member name will be present, but the
 12076  // value will be replaced with "sensitive".
 12077  func (s GetPredictiveScalingForecastInput) GoString() string {
 12078  	return s.String()
 12079  }
 12080  
 12081  // Validate inspects the fields of the type to determine if they are valid.
 12082  func (s *GetPredictiveScalingForecastInput) Validate() error {
 12083  	invalidParams := request.ErrInvalidParams{Context: "GetPredictiveScalingForecastInput"}
 12084  	if s.AutoScalingGroupName == nil {
 12085  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 12086  	}
 12087  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 12088  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 12089  	}
 12090  	if s.EndTime == nil {
 12091  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 12092  	}
 12093  	if s.PolicyName == nil {
 12094  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 12095  	}
 12096  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 12097  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 12098  	}
 12099  	if s.StartTime == nil {
 12100  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 12101  	}
 12102  
 12103  	if invalidParams.Len() > 0 {
 12104  		return invalidParams
 12105  	}
 12106  	return nil
 12107  }
 12108  
 12109  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 12110  func (s *GetPredictiveScalingForecastInput) SetAutoScalingGroupName(v string) *GetPredictiveScalingForecastInput {
 12111  	s.AutoScalingGroupName = &v
 12112  	return s
 12113  }
 12114  
 12115  // SetEndTime sets the EndTime field's value.
 12116  func (s *GetPredictiveScalingForecastInput) SetEndTime(v time.Time) *GetPredictiveScalingForecastInput {
 12117  	s.EndTime = &v
 12118  	return s
 12119  }
 12120  
 12121  // SetPolicyName sets the PolicyName field's value.
 12122  func (s *GetPredictiveScalingForecastInput) SetPolicyName(v string) *GetPredictiveScalingForecastInput {
 12123  	s.PolicyName = &v
 12124  	return s
 12125  }
 12126  
 12127  // SetStartTime sets the StartTime field's value.
 12128  func (s *GetPredictiveScalingForecastInput) SetStartTime(v time.Time) *GetPredictiveScalingForecastInput {
 12129  	s.StartTime = &v
 12130  	return s
 12131  }
 12132  
 12133  type GetPredictiveScalingForecastOutput struct {
 12134  	_ struct{} `type:"structure"`
 12135  
 12136  	// The capacity forecast.
 12137  	//
 12138  	// CapacityForecast is a required field
 12139  	CapacityForecast *CapacityForecast `type:"structure" required:"true"`
 12140  
 12141  	// The load forecast.
 12142  	//
 12143  	// LoadForecast is a required field
 12144  	LoadForecast []*LoadForecast `type:"list" required:"true"`
 12145  
 12146  	// The time the forecast was made.
 12147  	//
 12148  	// UpdateTime is a required field
 12149  	UpdateTime *time.Time `type:"timestamp" required:"true"`
 12150  }
 12151  
 12152  // String returns the string representation.
 12153  //
 12154  // API parameter values that are decorated as "sensitive" in the API will not
 12155  // be included in the string output. The member name will be present, but the
 12156  // value will be replaced with "sensitive".
 12157  func (s GetPredictiveScalingForecastOutput) String() string {
 12158  	return awsutil.Prettify(s)
 12159  }
 12160  
 12161  // GoString returns the string representation.
 12162  //
 12163  // API parameter values that are decorated as "sensitive" in the API will not
 12164  // be included in the string output. The member name will be present, but the
 12165  // value will be replaced with "sensitive".
 12166  func (s GetPredictiveScalingForecastOutput) GoString() string {
 12167  	return s.String()
 12168  }
 12169  
 12170  // SetCapacityForecast sets the CapacityForecast field's value.
 12171  func (s *GetPredictiveScalingForecastOutput) SetCapacityForecast(v *CapacityForecast) *GetPredictiveScalingForecastOutput {
 12172  	s.CapacityForecast = v
 12173  	return s
 12174  }
 12175  
 12176  // SetLoadForecast sets the LoadForecast field's value.
 12177  func (s *GetPredictiveScalingForecastOutput) SetLoadForecast(v []*LoadForecast) *GetPredictiveScalingForecastOutput {
 12178  	s.LoadForecast = v
 12179  	return s
 12180  }
 12181  
 12182  // SetUpdateTime sets the UpdateTime field's value.
 12183  func (s *GetPredictiveScalingForecastOutput) SetUpdateTime(v time.Time) *GetPredictiveScalingForecastOutput {
 12184  	s.UpdateTime = &v
 12185  	return s
 12186  }
 12187  
 12188  // Describes an Auto Scaling group.
 12189  type Group struct {
 12190  	_ struct{} `type:"structure"`
 12191  
 12192  	// The Amazon Resource Name (ARN) of the Auto Scaling group.
 12193  	AutoScalingGroupARN *string `min:"1" type:"string"`
 12194  
 12195  	// The name of the Auto Scaling group.
 12196  	//
 12197  	// AutoScalingGroupName is a required field
 12198  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 12199  
 12200  	// One or more Availability Zones for the group.
 12201  	//
 12202  	// AvailabilityZones is a required field
 12203  	AvailabilityZones []*string `type:"list" required:"true"`
 12204  
 12205  	// Indicates whether Capacity Rebalancing is enabled.
 12206  	CapacityRebalance *bool `type:"boolean"`
 12207  
 12208  	// Reserved.
 12209  	Context *string `type:"string"`
 12210  
 12211  	// The date and time the group was created.
 12212  	//
 12213  	// CreatedTime is a required field
 12214  	CreatedTime *time.Time `type:"timestamp" required:"true"`
 12215  
 12216  	// The duration of the default cooldown period, in seconds.
 12217  	//
 12218  	// DefaultCooldown is a required field
 12219  	DefaultCooldown *int64 `type:"integer" required:"true"`
 12220  
 12221  	// The desired size of the group.
 12222  	//
 12223  	// DesiredCapacity is a required field
 12224  	DesiredCapacity *int64 `type:"integer" required:"true"`
 12225  
 12226  	// The metrics enabled for the group.
 12227  	EnabledMetrics []*EnabledMetric `type:"list"`
 12228  
 12229  	// The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before
 12230  	// checking the health status of an EC2 instance that has come into service.
 12231  	HealthCheckGracePeriod *int64 `type:"integer"`
 12232  
 12233  	// The service to use for the health checks. The valid values are EC2 and ELB.
 12234  	// If you configure an Auto Scaling group to use ELB health checks, it considers
 12235  	// the instance unhealthy if it fails either the EC2 status checks or the load
 12236  	// balancer health checks.
 12237  	//
 12238  	// HealthCheckType is a required field
 12239  	HealthCheckType *string `min:"1" type:"string" required:"true"`
 12240  
 12241  	// The EC2 instances associated with the group.
 12242  	Instances []*Instance `type:"list"`
 12243  
 12244  	// The name of the associated launch configuration.
 12245  	LaunchConfigurationName *string `min:"1" type:"string"`
 12246  
 12247  	// The launch template for the group.
 12248  	LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
 12249  
 12250  	// One or more load balancers associated with the group.
 12251  	LoadBalancerNames []*string `type:"list"`
 12252  
 12253  	// The maximum amount of time, in seconds, that an instance can be in service.
 12254  	//
 12255  	// Valid Range: Minimum value of 0.
 12256  	MaxInstanceLifetime *int64 `type:"integer"`
 12257  
 12258  	// The maximum size of the group.
 12259  	//
 12260  	// MaxSize is a required field
 12261  	MaxSize *int64 `type:"integer" required:"true"`
 12262  
 12263  	// The minimum size of the group.
 12264  	//
 12265  	// MinSize is a required field
 12266  	MinSize *int64 `type:"integer" required:"true"`
 12267  
 12268  	// The mixed instances policy for the group.
 12269  	MixedInstancesPolicy *MixedInstancesPolicy `type:"structure"`
 12270  
 12271  	// Indicates whether newly launched instances are protected from termination
 12272  	// by Amazon EC2 Auto Scaling when scaling in.
 12273  	NewInstancesProtectedFromScaleIn *bool `type:"boolean"`
 12274  
 12275  	// The name of the placement group into which to launch your instances, if any.
 12276  	PlacementGroup *string `min:"1" type:"string"`
 12277  
 12278  	// The predicted capacity of the group when it has a predictive scaling policy.
 12279  	PredictedCapacity *int64 `type:"integer"`
 12280  
 12281  	// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling
 12282  	// group uses to call other Amazon Web Services on your behalf.
 12283  	ServiceLinkedRoleARN *string `min:"1" type:"string"`
 12284  
 12285  	// The current state of the group when the DeleteAutoScalingGroup operation
 12286  	// is in progress.
 12287  	Status *string `min:"1" type:"string"`
 12288  
 12289  	// The suspended processes associated with the group.
 12290  	SuspendedProcesses []*SuspendedProcess `type:"list"`
 12291  
 12292  	// The tags for the group.
 12293  	Tags []*TagDescription `type:"list"`
 12294  
 12295  	// The Amazon Resource Names (ARN) of the target groups for your load balancer.
 12296  	TargetGroupARNs []*string `type:"list"`
 12297  
 12298  	// The termination policies for the group.
 12299  	TerminationPolicies []*string `type:"list"`
 12300  
 12301  	// One or more subnet IDs, if applicable, separated by commas.
 12302  	VPCZoneIdentifier *string `min:"1" type:"string"`
 12303  
 12304  	// The warm pool for the group.
 12305  	WarmPoolConfiguration *WarmPoolConfiguration `type:"structure"`
 12306  
 12307  	// The current size of the warm pool.
 12308  	WarmPoolSize *int64 `type:"integer"`
 12309  }
 12310  
 12311  // String returns the string representation.
 12312  //
 12313  // API parameter values that are decorated as "sensitive" in the API will not
 12314  // be included in the string output. The member name will be present, but the
 12315  // value will be replaced with "sensitive".
 12316  func (s Group) String() string {
 12317  	return awsutil.Prettify(s)
 12318  }
 12319  
 12320  // GoString returns the string representation.
 12321  //
 12322  // API parameter values that are decorated as "sensitive" in the API will not
 12323  // be included in the string output. The member name will be present, but the
 12324  // value will be replaced with "sensitive".
 12325  func (s Group) GoString() string {
 12326  	return s.String()
 12327  }
 12328  
 12329  // SetAutoScalingGroupARN sets the AutoScalingGroupARN field's value.
 12330  func (s *Group) SetAutoScalingGroupARN(v string) *Group {
 12331  	s.AutoScalingGroupARN = &v
 12332  	return s
 12333  }
 12334  
 12335  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 12336  func (s *Group) SetAutoScalingGroupName(v string) *Group {
 12337  	s.AutoScalingGroupName = &v
 12338  	return s
 12339  }
 12340  
 12341  // SetAvailabilityZones sets the AvailabilityZones field's value.
 12342  func (s *Group) SetAvailabilityZones(v []*string) *Group {
 12343  	s.AvailabilityZones = v
 12344  	return s
 12345  }
 12346  
 12347  // SetCapacityRebalance sets the CapacityRebalance field's value.
 12348  func (s *Group) SetCapacityRebalance(v bool) *Group {
 12349  	s.CapacityRebalance = &v
 12350  	return s
 12351  }
 12352  
 12353  // SetContext sets the Context field's value.
 12354  func (s *Group) SetContext(v string) *Group {
 12355  	s.Context = &v
 12356  	return s
 12357  }
 12358  
 12359  // SetCreatedTime sets the CreatedTime field's value.
 12360  func (s *Group) SetCreatedTime(v time.Time) *Group {
 12361  	s.CreatedTime = &v
 12362  	return s
 12363  }
 12364  
 12365  // SetDefaultCooldown sets the DefaultCooldown field's value.
 12366  func (s *Group) SetDefaultCooldown(v int64) *Group {
 12367  	s.DefaultCooldown = &v
 12368  	return s
 12369  }
 12370  
 12371  // SetDesiredCapacity sets the DesiredCapacity field's value.
 12372  func (s *Group) SetDesiredCapacity(v int64) *Group {
 12373  	s.DesiredCapacity = &v
 12374  	return s
 12375  }
 12376  
 12377  // SetEnabledMetrics sets the EnabledMetrics field's value.
 12378  func (s *Group) SetEnabledMetrics(v []*EnabledMetric) *Group {
 12379  	s.EnabledMetrics = v
 12380  	return s
 12381  }
 12382  
 12383  // SetHealthCheckGracePeriod sets the HealthCheckGracePeriod field's value.
 12384  func (s *Group) SetHealthCheckGracePeriod(v int64) *Group {
 12385  	s.HealthCheckGracePeriod = &v
 12386  	return s
 12387  }
 12388  
 12389  // SetHealthCheckType sets the HealthCheckType field's value.
 12390  func (s *Group) SetHealthCheckType(v string) *Group {
 12391  	s.HealthCheckType = &v
 12392  	return s
 12393  }
 12394  
 12395  // SetInstances sets the Instances field's value.
 12396  func (s *Group) SetInstances(v []*Instance) *Group {
 12397  	s.Instances = v
 12398  	return s
 12399  }
 12400  
 12401  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
 12402  func (s *Group) SetLaunchConfigurationName(v string) *Group {
 12403  	s.LaunchConfigurationName = &v
 12404  	return s
 12405  }
 12406  
 12407  // SetLaunchTemplate sets the LaunchTemplate field's value.
 12408  func (s *Group) SetLaunchTemplate(v *LaunchTemplateSpecification) *Group {
 12409  	s.LaunchTemplate = v
 12410  	return s
 12411  }
 12412  
 12413  // SetLoadBalancerNames sets the LoadBalancerNames field's value.
 12414  func (s *Group) SetLoadBalancerNames(v []*string) *Group {
 12415  	s.LoadBalancerNames = v
 12416  	return s
 12417  }
 12418  
 12419  // SetMaxInstanceLifetime sets the MaxInstanceLifetime field's value.
 12420  func (s *Group) SetMaxInstanceLifetime(v int64) *Group {
 12421  	s.MaxInstanceLifetime = &v
 12422  	return s
 12423  }
 12424  
 12425  // SetMaxSize sets the MaxSize field's value.
 12426  func (s *Group) SetMaxSize(v int64) *Group {
 12427  	s.MaxSize = &v
 12428  	return s
 12429  }
 12430  
 12431  // SetMinSize sets the MinSize field's value.
 12432  func (s *Group) SetMinSize(v int64) *Group {
 12433  	s.MinSize = &v
 12434  	return s
 12435  }
 12436  
 12437  // SetMixedInstancesPolicy sets the MixedInstancesPolicy field's value.
 12438  func (s *Group) SetMixedInstancesPolicy(v *MixedInstancesPolicy) *Group {
 12439  	s.MixedInstancesPolicy = v
 12440  	return s
 12441  }
 12442  
 12443  // SetNewInstancesProtectedFromScaleIn sets the NewInstancesProtectedFromScaleIn field's value.
 12444  func (s *Group) SetNewInstancesProtectedFromScaleIn(v bool) *Group {
 12445  	s.NewInstancesProtectedFromScaleIn = &v
 12446  	return s
 12447  }
 12448  
 12449  // SetPlacementGroup sets the PlacementGroup field's value.
 12450  func (s *Group) SetPlacementGroup(v string) *Group {
 12451  	s.PlacementGroup = &v
 12452  	return s
 12453  }
 12454  
 12455  // SetPredictedCapacity sets the PredictedCapacity field's value.
 12456  func (s *Group) SetPredictedCapacity(v int64) *Group {
 12457  	s.PredictedCapacity = &v
 12458  	return s
 12459  }
 12460  
 12461  // SetServiceLinkedRoleARN sets the ServiceLinkedRoleARN field's value.
 12462  func (s *Group) SetServiceLinkedRoleARN(v string) *Group {
 12463  	s.ServiceLinkedRoleARN = &v
 12464  	return s
 12465  }
 12466  
 12467  // SetStatus sets the Status field's value.
 12468  func (s *Group) SetStatus(v string) *Group {
 12469  	s.Status = &v
 12470  	return s
 12471  }
 12472  
 12473  // SetSuspendedProcesses sets the SuspendedProcesses field's value.
 12474  func (s *Group) SetSuspendedProcesses(v []*SuspendedProcess) *Group {
 12475  	s.SuspendedProcesses = v
 12476  	return s
 12477  }
 12478  
 12479  // SetTags sets the Tags field's value.
 12480  func (s *Group) SetTags(v []*TagDescription) *Group {
 12481  	s.Tags = v
 12482  	return s
 12483  }
 12484  
 12485  // SetTargetGroupARNs sets the TargetGroupARNs field's value.
 12486  func (s *Group) SetTargetGroupARNs(v []*string) *Group {
 12487  	s.TargetGroupARNs = v
 12488  	return s
 12489  }
 12490  
 12491  // SetTerminationPolicies sets the TerminationPolicies field's value.
 12492  func (s *Group) SetTerminationPolicies(v []*string) *Group {
 12493  	s.TerminationPolicies = v
 12494  	return s
 12495  }
 12496  
 12497  // SetVPCZoneIdentifier sets the VPCZoneIdentifier field's value.
 12498  func (s *Group) SetVPCZoneIdentifier(v string) *Group {
 12499  	s.VPCZoneIdentifier = &v
 12500  	return s
 12501  }
 12502  
 12503  // SetWarmPoolConfiguration sets the WarmPoolConfiguration field's value.
 12504  func (s *Group) SetWarmPoolConfiguration(v *WarmPoolConfiguration) *Group {
 12505  	s.WarmPoolConfiguration = v
 12506  	return s
 12507  }
 12508  
 12509  // SetWarmPoolSize sets the WarmPoolSize field's value.
 12510  func (s *Group) SetWarmPoolSize(v int64) *Group {
 12511  	s.WarmPoolSize = &v
 12512  	return s
 12513  }
 12514  
 12515  // Describes an EC2 instance.
 12516  type Instance struct {
 12517  	_ struct{} `type:"structure"`
 12518  
 12519  	// The Availability Zone in which the instance is running.
 12520  	//
 12521  	// AvailabilityZone is a required field
 12522  	AvailabilityZone *string `min:"1" type:"string" required:"true"`
 12523  
 12524  	// The last reported health status of the instance. "Healthy" means that the
 12525  	// instance is healthy and should remain in service. "Unhealthy" means that
 12526  	// the instance is unhealthy and that Amazon EC2 Auto Scaling should terminate
 12527  	// and replace it.
 12528  	//
 12529  	// HealthStatus is a required field
 12530  	HealthStatus *string `min:"1" type:"string" required:"true"`
 12531  
 12532  	// The ID of the instance.
 12533  	//
 12534  	// InstanceId is a required field
 12535  	InstanceId *string `min:"1" type:"string" required:"true"`
 12536  
 12537  	// The instance type of the EC2 instance.
 12538  	InstanceType *string `min:"1" type:"string"`
 12539  
 12540  	// The launch configuration associated with the instance.
 12541  	LaunchConfigurationName *string `min:"1" type:"string"`
 12542  
 12543  	// The launch template for the instance.
 12544  	LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
 12545  
 12546  	// A description of the current lifecycle state. The Quarantined state is not
 12547  	// used. For information about lifecycle states, see Instance lifecycle (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html)
 12548  	// in the Amazon EC2 Auto Scaling User Guide.
 12549  	//
 12550  	// LifecycleState is a required field
 12551  	LifecycleState *string `type:"string" required:"true" enum:"LifecycleState"`
 12552  
 12553  	// Indicates whether the instance is protected from termination by Amazon EC2
 12554  	// Auto Scaling when scaling in.
 12555  	//
 12556  	// ProtectedFromScaleIn is a required field
 12557  	ProtectedFromScaleIn *bool `type:"boolean" required:"true"`
 12558  
 12559  	// The number of capacity units contributed by the instance based on its instance
 12560  	// type.
 12561  	//
 12562  	// Valid Range: Minimum value of 1. Maximum value of 999.
 12563  	WeightedCapacity *string `min:"1" type:"string"`
 12564  }
 12565  
 12566  // String returns the string representation.
 12567  //
 12568  // API parameter values that are decorated as "sensitive" in the API will not
 12569  // be included in the string output. The member name will be present, but the
 12570  // value will be replaced with "sensitive".
 12571  func (s Instance) String() string {
 12572  	return awsutil.Prettify(s)
 12573  }
 12574  
 12575  // GoString returns the string representation.
 12576  //
 12577  // API parameter values that are decorated as "sensitive" in the API will not
 12578  // be included in the string output. The member name will be present, but the
 12579  // value will be replaced with "sensitive".
 12580  func (s Instance) GoString() string {
 12581  	return s.String()
 12582  }
 12583  
 12584  // SetAvailabilityZone sets the AvailabilityZone field's value.
 12585  func (s *Instance) SetAvailabilityZone(v string) *Instance {
 12586  	s.AvailabilityZone = &v
 12587  	return s
 12588  }
 12589  
 12590  // SetHealthStatus sets the HealthStatus field's value.
 12591  func (s *Instance) SetHealthStatus(v string) *Instance {
 12592  	s.HealthStatus = &v
 12593  	return s
 12594  }
 12595  
 12596  // SetInstanceId sets the InstanceId field's value.
 12597  func (s *Instance) SetInstanceId(v string) *Instance {
 12598  	s.InstanceId = &v
 12599  	return s
 12600  }
 12601  
 12602  // SetInstanceType sets the InstanceType field's value.
 12603  func (s *Instance) SetInstanceType(v string) *Instance {
 12604  	s.InstanceType = &v
 12605  	return s
 12606  }
 12607  
 12608  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
 12609  func (s *Instance) SetLaunchConfigurationName(v string) *Instance {
 12610  	s.LaunchConfigurationName = &v
 12611  	return s
 12612  }
 12613  
 12614  // SetLaunchTemplate sets the LaunchTemplate field's value.
 12615  func (s *Instance) SetLaunchTemplate(v *LaunchTemplateSpecification) *Instance {
 12616  	s.LaunchTemplate = v
 12617  	return s
 12618  }
 12619  
 12620  // SetLifecycleState sets the LifecycleState field's value.
 12621  func (s *Instance) SetLifecycleState(v string) *Instance {
 12622  	s.LifecycleState = &v
 12623  	return s
 12624  }
 12625  
 12626  // SetProtectedFromScaleIn sets the ProtectedFromScaleIn field's value.
 12627  func (s *Instance) SetProtectedFromScaleIn(v bool) *Instance {
 12628  	s.ProtectedFromScaleIn = &v
 12629  	return s
 12630  }
 12631  
 12632  // SetWeightedCapacity sets the WeightedCapacity field's value.
 12633  func (s *Instance) SetWeightedCapacity(v string) *Instance {
 12634  	s.WeightedCapacity = &v
 12635  	return s
 12636  }
 12637  
 12638  // Describes an EC2 instance associated with an Auto Scaling group.
 12639  type InstanceDetails struct {
 12640  	_ struct{} `type:"structure"`
 12641  
 12642  	// The name of the Auto Scaling group for the instance.
 12643  	//
 12644  	// AutoScalingGroupName is a required field
 12645  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 12646  
 12647  	// The Availability Zone for the instance.
 12648  	//
 12649  	// AvailabilityZone is a required field
 12650  	AvailabilityZone *string `min:"1" type:"string" required:"true"`
 12651  
 12652  	// The last reported health status of this instance. "Healthy" means that the
 12653  	// instance is healthy and should remain in service. "Unhealthy" means that
 12654  	// the instance is unhealthy and Amazon EC2 Auto Scaling should terminate and
 12655  	// replace it.
 12656  	//
 12657  	// HealthStatus is a required field
 12658  	HealthStatus *string `min:"1" type:"string" required:"true"`
 12659  
 12660  	// The ID of the instance.
 12661  	//
 12662  	// InstanceId is a required field
 12663  	InstanceId *string `min:"1" type:"string" required:"true"`
 12664  
 12665  	// The instance type of the EC2 instance.
 12666  	InstanceType *string `min:"1" type:"string"`
 12667  
 12668  	// The launch configuration used to launch the instance. This value is not available
 12669  	// if you attached the instance to the Auto Scaling group.
 12670  	LaunchConfigurationName *string `min:"1" type:"string"`
 12671  
 12672  	// The launch template for the instance.
 12673  	LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
 12674  
 12675  	// The lifecycle state for the instance. The Quarantined state is not used.
 12676  	// For information about lifecycle states, see Instance lifecycle (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html)
 12677  	// in the Amazon EC2 Auto Scaling User Guide.
 12678  	//
 12679  	// Valid Values: Pending | Pending:Wait | Pending:Proceed | Quarantined | InService
 12680  	// | Terminating | Terminating:Wait | Terminating:Proceed | Terminated | Detaching
 12681  	// | Detached | EnteringStandby | Standby | Warmed:Pending | Warmed:Pending:Wait
 12682  	// | Warmed:Pending:Proceed | Warmed:Terminating | Warmed:Terminating:Wait |
 12683  	// Warmed:Terminating:Proceed | Warmed:Terminated | Warmed:Stopped | Warmed:Running
 12684  	//
 12685  	// LifecycleState is a required field
 12686  	LifecycleState *string `min:"1" type:"string" required:"true"`
 12687  
 12688  	// Indicates whether the instance is protected from termination by Amazon EC2
 12689  	// Auto Scaling when scaling in.
 12690  	//
 12691  	// ProtectedFromScaleIn is a required field
 12692  	ProtectedFromScaleIn *bool `type:"boolean" required:"true"`
 12693  
 12694  	// The number of capacity units contributed by the instance based on its instance
 12695  	// type.
 12696  	//
 12697  	// Valid Range: Minimum value of 1. Maximum value of 999.
 12698  	WeightedCapacity *string `min:"1" type:"string"`
 12699  }
 12700  
 12701  // String returns the string representation.
 12702  //
 12703  // API parameter values that are decorated as "sensitive" in the API will not
 12704  // be included in the string output. The member name will be present, but the
 12705  // value will be replaced with "sensitive".
 12706  func (s InstanceDetails) String() string {
 12707  	return awsutil.Prettify(s)
 12708  }
 12709  
 12710  // GoString returns the string representation.
 12711  //
 12712  // API parameter values that are decorated as "sensitive" in the API will not
 12713  // be included in the string output. The member name will be present, but the
 12714  // value will be replaced with "sensitive".
 12715  func (s InstanceDetails) GoString() string {
 12716  	return s.String()
 12717  }
 12718  
 12719  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 12720  func (s *InstanceDetails) SetAutoScalingGroupName(v string) *InstanceDetails {
 12721  	s.AutoScalingGroupName = &v
 12722  	return s
 12723  }
 12724  
 12725  // SetAvailabilityZone sets the AvailabilityZone field's value.
 12726  func (s *InstanceDetails) SetAvailabilityZone(v string) *InstanceDetails {
 12727  	s.AvailabilityZone = &v
 12728  	return s
 12729  }
 12730  
 12731  // SetHealthStatus sets the HealthStatus field's value.
 12732  func (s *InstanceDetails) SetHealthStatus(v string) *InstanceDetails {
 12733  	s.HealthStatus = &v
 12734  	return s
 12735  }
 12736  
 12737  // SetInstanceId sets the InstanceId field's value.
 12738  func (s *InstanceDetails) SetInstanceId(v string) *InstanceDetails {
 12739  	s.InstanceId = &v
 12740  	return s
 12741  }
 12742  
 12743  // SetInstanceType sets the InstanceType field's value.
 12744  func (s *InstanceDetails) SetInstanceType(v string) *InstanceDetails {
 12745  	s.InstanceType = &v
 12746  	return s
 12747  }
 12748  
 12749  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
 12750  func (s *InstanceDetails) SetLaunchConfigurationName(v string) *InstanceDetails {
 12751  	s.LaunchConfigurationName = &v
 12752  	return s
 12753  }
 12754  
 12755  // SetLaunchTemplate sets the LaunchTemplate field's value.
 12756  func (s *InstanceDetails) SetLaunchTemplate(v *LaunchTemplateSpecification) *InstanceDetails {
 12757  	s.LaunchTemplate = v
 12758  	return s
 12759  }
 12760  
 12761  // SetLifecycleState sets the LifecycleState field's value.
 12762  func (s *InstanceDetails) SetLifecycleState(v string) *InstanceDetails {
 12763  	s.LifecycleState = &v
 12764  	return s
 12765  }
 12766  
 12767  // SetProtectedFromScaleIn sets the ProtectedFromScaleIn field's value.
 12768  func (s *InstanceDetails) SetProtectedFromScaleIn(v bool) *InstanceDetails {
 12769  	s.ProtectedFromScaleIn = &v
 12770  	return s
 12771  }
 12772  
 12773  // SetWeightedCapacity sets the WeightedCapacity field's value.
 12774  func (s *InstanceDetails) SetWeightedCapacity(v string) *InstanceDetails {
 12775  	s.WeightedCapacity = &v
 12776  	return s
 12777  }
 12778  
 12779  // The metadata options for the instances. For more information, see Configuring
 12780  // the Instance Metadata Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds)
 12781  // in the Amazon EC2 Auto Scaling User Guide.
 12782  type InstanceMetadataOptions struct {
 12783  	_ struct{} `type:"structure"`
 12784  
 12785  	// This parameter enables or disables the HTTP metadata endpoint on your instances.
 12786  	// If the parameter is not specified, the default state is enabled.
 12787  	//
 12788  	// If you specify a value of disabled, you will not be able to access your instance
 12789  	// metadata.
 12790  	HttpEndpoint *string `type:"string" enum:"InstanceMetadataEndpointState"`
 12791  
 12792  	// The desired HTTP PUT response hop limit for instance metadata requests. The
 12793  	// larger the number, the further instance metadata requests can travel.
 12794  	//
 12795  	// Default: 1
 12796  	HttpPutResponseHopLimit *int64 `min:"1" type:"integer"`
 12797  
 12798  	// The state of token usage for your instance metadata requests. If the parameter
 12799  	// is not specified in the request, the default state is optional.
 12800  	//
 12801  	// If the state is optional, you can choose to retrieve instance metadata with
 12802  	// or without a signed token header on your request. If you retrieve the IAM
 12803  	// role credentials without a token, the version 1.0 role credentials are returned.
 12804  	// If you retrieve the IAM role credentials using a valid signed token, the
 12805  	// version 2.0 role credentials are returned.
 12806  	//
 12807  	// If the state is required, you must send a signed token header with any instance
 12808  	// metadata retrieval requests. In this state, retrieving the IAM role credentials
 12809  	// always returns the version 2.0 credentials; the version 1.0 credentials are
 12810  	// not available.
 12811  	HttpTokens *string `type:"string" enum:"InstanceMetadataHttpTokensState"`
 12812  }
 12813  
 12814  // String returns the string representation.
 12815  //
 12816  // API parameter values that are decorated as "sensitive" in the API will not
 12817  // be included in the string output. The member name will be present, but the
 12818  // value will be replaced with "sensitive".
 12819  func (s InstanceMetadataOptions) String() string {
 12820  	return awsutil.Prettify(s)
 12821  }
 12822  
 12823  // GoString returns the string representation.
 12824  //
 12825  // API parameter values that are decorated as "sensitive" in the API will not
 12826  // be included in the string output. The member name will be present, but the
 12827  // value will be replaced with "sensitive".
 12828  func (s InstanceMetadataOptions) GoString() string {
 12829  	return s.String()
 12830  }
 12831  
 12832  // Validate inspects the fields of the type to determine if they are valid.
 12833  func (s *InstanceMetadataOptions) Validate() error {
 12834  	invalidParams := request.ErrInvalidParams{Context: "InstanceMetadataOptions"}
 12835  	if s.HttpPutResponseHopLimit != nil && *s.HttpPutResponseHopLimit < 1 {
 12836  		invalidParams.Add(request.NewErrParamMinValue("HttpPutResponseHopLimit", 1))
 12837  	}
 12838  
 12839  	if invalidParams.Len() > 0 {
 12840  		return invalidParams
 12841  	}
 12842  	return nil
 12843  }
 12844  
 12845  // SetHttpEndpoint sets the HttpEndpoint field's value.
 12846  func (s *InstanceMetadataOptions) SetHttpEndpoint(v string) *InstanceMetadataOptions {
 12847  	s.HttpEndpoint = &v
 12848  	return s
 12849  }
 12850  
 12851  // SetHttpPutResponseHopLimit sets the HttpPutResponseHopLimit field's value.
 12852  func (s *InstanceMetadataOptions) SetHttpPutResponseHopLimit(v int64) *InstanceMetadataOptions {
 12853  	s.HttpPutResponseHopLimit = &v
 12854  	return s
 12855  }
 12856  
 12857  // SetHttpTokens sets the HttpTokens field's value.
 12858  func (s *InstanceMetadataOptions) SetHttpTokens(v string) *InstanceMetadataOptions {
 12859  	s.HttpTokens = &v
 12860  	return s
 12861  }
 12862  
 12863  // Describes whether detailed monitoring is enabled for the Auto Scaling instances.
 12864  type InstanceMonitoring struct {
 12865  	_ struct{} `type:"structure"`
 12866  
 12867  	// If true, detailed monitoring is enabled. Otherwise, basic monitoring is enabled.
 12868  	Enabled *bool `type:"boolean"`
 12869  }
 12870  
 12871  // String returns the string representation.
 12872  //
 12873  // API parameter values that are decorated as "sensitive" in the API will not
 12874  // be included in the string output. The member name will be present, but the
 12875  // value will be replaced with "sensitive".
 12876  func (s InstanceMonitoring) String() string {
 12877  	return awsutil.Prettify(s)
 12878  }
 12879  
 12880  // GoString returns the string representation.
 12881  //
 12882  // API parameter values that are decorated as "sensitive" in the API will not
 12883  // be included in the string output. The member name will be present, but the
 12884  // value will be replaced with "sensitive".
 12885  func (s InstanceMonitoring) GoString() string {
 12886  	return s.String()
 12887  }
 12888  
 12889  // SetEnabled sets the Enabled field's value.
 12890  func (s *InstanceMonitoring) SetEnabled(v bool) *InstanceMonitoring {
 12891  	s.Enabled = &v
 12892  	return s
 12893  }
 12894  
 12895  // Describes an instance refresh for an Auto Scaling group.
 12896  type InstanceRefresh struct {
 12897  	_ struct{} `type:"structure"`
 12898  
 12899  	// The name of the Auto Scaling group.
 12900  	AutoScalingGroupName *string `min:"1" type:"string"`
 12901  
 12902  	// Describes the specific update you want to deploy.
 12903  	DesiredConfiguration *DesiredConfiguration `type:"structure"`
 12904  
 12905  	// The date and time at which the instance refresh ended.
 12906  	EndTime *time.Time `type:"timestamp"`
 12907  
 12908  	// The instance refresh ID.
 12909  	InstanceRefreshId *string `min:"1" type:"string"`
 12910  
 12911  	// The number of instances remaining to update before the instance refresh is
 12912  	// complete.
 12913  	InstancesToUpdate *int64 `type:"integer"`
 12914  
 12915  	// The percentage of the instance refresh that is complete. For each instance
 12916  	// replacement, Amazon EC2 Auto Scaling tracks the instance's health status
 12917  	// and warm-up time. When the instance's health status changes to healthy and
 12918  	// the specified warm-up time passes, the instance is considered updated and
 12919  	// is added to the percentage complete.
 12920  	PercentageComplete *int64 `type:"integer"`
 12921  
 12922  	// Describes the preferences for an instance refresh.
 12923  	Preferences *RefreshPreferences `type:"structure"`
 12924  
 12925  	// Additional progress details for an Auto Scaling group that has a warm pool.
 12926  	ProgressDetails *InstanceRefreshProgressDetails `type:"structure"`
 12927  
 12928  	// The date and time at which the instance refresh began.
 12929  	StartTime *time.Time `type:"timestamp"`
 12930  
 12931  	// The current status for the instance refresh operation:
 12932  	//
 12933  	//    * Pending - The request was created, but the operation has not started.
 12934  	//
 12935  	//    * InProgress - The operation is in progress.
 12936  	//
 12937  	//    * Successful - The operation completed successfully.
 12938  	//
 12939  	//    * Failed - The operation failed to complete. You can troubleshoot using
 12940  	//    the status reason and the scaling activities.
 12941  	//
 12942  	//    * Cancelling - An ongoing operation is being cancelled. Cancellation does
 12943  	//    not roll back any replacements that have already been completed, but it
 12944  	//    prevents new replacements from being started.
 12945  	//
 12946  	//    * Cancelled - The operation is cancelled.
 12947  	Status *string `type:"string" enum:"InstanceRefreshStatus"`
 12948  
 12949  	// Provides more details about the current status of the instance refresh.
 12950  	StatusReason *string `min:"1" type:"string"`
 12951  }
 12952  
 12953  // String returns the string representation.
 12954  //
 12955  // API parameter values that are decorated as "sensitive" in the API will not
 12956  // be included in the string output. The member name will be present, but the
 12957  // value will be replaced with "sensitive".
 12958  func (s InstanceRefresh) String() string {
 12959  	return awsutil.Prettify(s)
 12960  }
 12961  
 12962  // GoString returns the string representation.
 12963  //
 12964  // API parameter values that are decorated as "sensitive" in the API will not
 12965  // be included in the string output. The member name will be present, but the
 12966  // value will be replaced with "sensitive".
 12967  func (s InstanceRefresh) GoString() string {
 12968  	return s.String()
 12969  }
 12970  
 12971  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 12972  func (s *InstanceRefresh) SetAutoScalingGroupName(v string) *InstanceRefresh {
 12973  	s.AutoScalingGroupName = &v
 12974  	return s
 12975  }
 12976  
 12977  // SetDesiredConfiguration sets the DesiredConfiguration field's value.
 12978  func (s *InstanceRefresh) SetDesiredConfiguration(v *DesiredConfiguration) *InstanceRefresh {
 12979  	s.DesiredConfiguration = v
 12980  	return s
 12981  }
 12982  
 12983  // SetEndTime sets the EndTime field's value.
 12984  func (s *InstanceRefresh) SetEndTime(v time.Time) *InstanceRefresh {
 12985  	s.EndTime = &v
 12986  	return s
 12987  }
 12988  
 12989  // SetInstanceRefreshId sets the InstanceRefreshId field's value.
 12990  func (s *InstanceRefresh) SetInstanceRefreshId(v string) *InstanceRefresh {
 12991  	s.InstanceRefreshId = &v
 12992  	return s
 12993  }
 12994  
 12995  // SetInstancesToUpdate sets the InstancesToUpdate field's value.
 12996  func (s *InstanceRefresh) SetInstancesToUpdate(v int64) *InstanceRefresh {
 12997  	s.InstancesToUpdate = &v
 12998  	return s
 12999  }
 13000  
 13001  // SetPercentageComplete sets the PercentageComplete field's value.
 13002  func (s *InstanceRefresh) SetPercentageComplete(v int64) *InstanceRefresh {
 13003  	s.PercentageComplete = &v
 13004  	return s
 13005  }
 13006  
 13007  // SetPreferences sets the Preferences field's value.
 13008  func (s *InstanceRefresh) SetPreferences(v *RefreshPreferences) *InstanceRefresh {
 13009  	s.Preferences = v
 13010  	return s
 13011  }
 13012  
 13013  // SetProgressDetails sets the ProgressDetails field's value.
 13014  func (s *InstanceRefresh) SetProgressDetails(v *InstanceRefreshProgressDetails) *InstanceRefresh {
 13015  	s.ProgressDetails = v
 13016  	return s
 13017  }
 13018  
 13019  // SetStartTime sets the StartTime field's value.
 13020  func (s *InstanceRefresh) SetStartTime(v time.Time) *InstanceRefresh {
 13021  	s.StartTime = &v
 13022  	return s
 13023  }
 13024  
 13025  // SetStatus sets the Status field's value.
 13026  func (s *InstanceRefresh) SetStatus(v string) *InstanceRefresh {
 13027  	s.Status = &v
 13028  	return s
 13029  }
 13030  
 13031  // SetStatusReason sets the StatusReason field's value.
 13032  func (s *InstanceRefresh) SetStatusReason(v string) *InstanceRefresh {
 13033  	s.StatusReason = &v
 13034  	return s
 13035  }
 13036  
 13037  // Reports the progress of an instance refresh on instances that are in the
 13038  // Auto Scaling group.
 13039  type InstanceRefreshLivePoolProgress struct {
 13040  	_ struct{} `type:"structure"`
 13041  
 13042  	// The number of instances remaining to update.
 13043  	InstancesToUpdate *int64 `type:"integer"`
 13044  
 13045  	// The percentage of instances in the Auto Scaling group that have been replaced.
 13046  	// For each instance replacement, Amazon EC2 Auto Scaling tracks the instance's
 13047  	// health status and warm-up time. When the instance's health status changes
 13048  	// to healthy and the specified warm-up time passes, the instance is considered
 13049  	// updated and is added to the percentage complete.
 13050  	PercentageComplete *int64 `type:"integer"`
 13051  }
 13052  
 13053  // String returns the string representation.
 13054  //
 13055  // API parameter values that are decorated as "sensitive" in the API will not
 13056  // be included in the string output. The member name will be present, but the
 13057  // value will be replaced with "sensitive".
 13058  func (s InstanceRefreshLivePoolProgress) String() string {
 13059  	return awsutil.Prettify(s)
 13060  }
 13061  
 13062  // GoString returns the string representation.
 13063  //
 13064  // API parameter values that are decorated as "sensitive" in the API will not
 13065  // be included in the string output. The member name will be present, but the
 13066  // value will be replaced with "sensitive".
 13067  func (s InstanceRefreshLivePoolProgress) GoString() string {
 13068  	return s.String()
 13069  }
 13070  
 13071  // SetInstancesToUpdate sets the InstancesToUpdate field's value.
 13072  func (s *InstanceRefreshLivePoolProgress) SetInstancesToUpdate(v int64) *InstanceRefreshLivePoolProgress {
 13073  	s.InstancesToUpdate = &v
 13074  	return s
 13075  }
 13076  
 13077  // SetPercentageComplete sets the PercentageComplete field's value.
 13078  func (s *InstanceRefreshLivePoolProgress) SetPercentageComplete(v int64) *InstanceRefreshLivePoolProgress {
 13079  	s.PercentageComplete = &v
 13080  	return s
 13081  }
 13082  
 13083  // Reports the progress of an instance refresh on an Auto Scaling group that
 13084  // has a warm pool. This includes separate details for instances in the warm
 13085  // pool and instances in the Auto Scaling group (the live pool).
 13086  type InstanceRefreshProgressDetails struct {
 13087  	_ struct{} `type:"structure"`
 13088  
 13089  	// Indicates the progress of an instance refresh on instances that are in the
 13090  	// Auto Scaling group.
 13091  	LivePoolProgress *InstanceRefreshLivePoolProgress `type:"structure"`
 13092  
 13093  	// Indicates the progress of an instance refresh on instances that are in the
 13094  	// warm pool.
 13095  	WarmPoolProgress *InstanceRefreshWarmPoolProgress `type:"structure"`
 13096  }
 13097  
 13098  // String returns the string representation.
 13099  //
 13100  // API parameter values that are decorated as "sensitive" in the API will not
 13101  // be included in the string output. The member name will be present, but the
 13102  // value will be replaced with "sensitive".
 13103  func (s InstanceRefreshProgressDetails) String() string {
 13104  	return awsutil.Prettify(s)
 13105  }
 13106  
 13107  // GoString returns the string representation.
 13108  //
 13109  // API parameter values that are decorated as "sensitive" in the API will not
 13110  // be included in the string output. The member name will be present, but the
 13111  // value will be replaced with "sensitive".
 13112  func (s InstanceRefreshProgressDetails) GoString() string {
 13113  	return s.String()
 13114  }
 13115  
 13116  // SetLivePoolProgress sets the LivePoolProgress field's value.
 13117  func (s *InstanceRefreshProgressDetails) SetLivePoolProgress(v *InstanceRefreshLivePoolProgress) *InstanceRefreshProgressDetails {
 13118  	s.LivePoolProgress = v
 13119  	return s
 13120  }
 13121  
 13122  // SetWarmPoolProgress sets the WarmPoolProgress field's value.
 13123  func (s *InstanceRefreshProgressDetails) SetWarmPoolProgress(v *InstanceRefreshWarmPoolProgress) *InstanceRefreshProgressDetails {
 13124  	s.WarmPoolProgress = v
 13125  	return s
 13126  }
 13127  
 13128  // Reports the progress of an instance refresh on instances that are in the
 13129  // warm pool.
 13130  type InstanceRefreshWarmPoolProgress struct {
 13131  	_ struct{} `type:"structure"`
 13132  
 13133  	// The number of instances remaining to update.
 13134  	InstancesToUpdate *int64 `type:"integer"`
 13135  
 13136  	// The percentage of instances in the warm pool that have been replaced. For
 13137  	// each instance replacement, Amazon EC2 Auto Scaling tracks the instance's
 13138  	// health status and warm-up time. When the instance's health status changes
 13139  	// to healthy and the specified warm-up time passes, the instance is considered
 13140  	// updated and is added to the percentage complete.
 13141  	PercentageComplete *int64 `type:"integer"`
 13142  }
 13143  
 13144  // String returns the string representation.
 13145  //
 13146  // API parameter values that are decorated as "sensitive" in the API will not
 13147  // be included in the string output. The member name will be present, but the
 13148  // value will be replaced with "sensitive".
 13149  func (s InstanceRefreshWarmPoolProgress) String() string {
 13150  	return awsutil.Prettify(s)
 13151  }
 13152  
 13153  // GoString returns the string representation.
 13154  //
 13155  // API parameter values that are decorated as "sensitive" in the API will not
 13156  // be included in the string output. The member name will be present, but the
 13157  // value will be replaced with "sensitive".
 13158  func (s InstanceRefreshWarmPoolProgress) GoString() string {
 13159  	return s.String()
 13160  }
 13161  
 13162  // SetInstancesToUpdate sets the InstancesToUpdate field's value.
 13163  func (s *InstanceRefreshWarmPoolProgress) SetInstancesToUpdate(v int64) *InstanceRefreshWarmPoolProgress {
 13164  	s.InstancesToUpdate = &v
 13165  	return s
 13166  }
 13167  
 13168  // SetPercentageComplete sets the PercentageComplete field's value.
 13169  func (s *InstanceRefreshWarmPoolProgress) SetPercentageComplete(v int64) *InstanceRefreshWarmPoolProgress {
 13170  	s.PercentageComplete = &v
 13171  	return s
 13172  }
 13173  
 13174  // Describes an instances distribution for an Auto Scaling group with a MixedInstancesPolicy.
 13175  //
 13176  // The instances distribution specifies the distribution of On-Demand Instances
 13177  // and Spot Instances, the maximum price to pay for Spot Instances, and how
 13178  // the Auto Scaling group allocates instance types to fulfill On-Demand and
 13179  // Spot capacities.
 13180  //
 13181  // When you modify SpotAllocationStrategy, SpotInstancePools, or SpotMaxPrice
 13182  // in the UpdateAutoScalingGroup API call, this update action does not deploy
 13183  // any changes across the running Amazon EC2 instances in the group. Your existing
 13184  // Spot Instances continue to run as long as the maximum price for those instances
 13185  // is higher than the current Spot price. When scale out occurs, Amazon EC2
 13186  // Auto Scaling launches instances based on the new settings. When scale in
 13187  // occurs, Amazon EC2 Auto Scaling terminates instances according to the group's
 13188  // termination policies.
 13189  type InstancesDistribution struct {
 13190  	_ struct{} `type:"structure"`
 13191  
 13192  	// Indicates how to allocate instance types to fulfill On-Demand capacity. The
 13193  	// only valid value is prioritized, which is also the default value. This strategy
 13194  	// uses the order of instance types in the LaunchTemplateOverrides to define
 13195  	// the launch priority of each instance type. The first instance type in the
 13196  	// array is prioritized higher than the last. If all your On-Demand capacity
 13197  	// cannot be fulfilled using your highest priority instance, then the Auto Scaling
 13198  	// groups launches the remaining capacity using the second priority instance
 13199  	// type, and so on.
 13200  	OnDemandAllocationStrategy *string `type:"string"`
 13201  
 13202  	// The minimum amount of the Auto Scaling group's capacity that must be fulfilled
 13203  	// by On-Demand Instances. This base portion is provisioned first as your group
 13204  	// scales. Defaults to 0 if not specified. If you specify weights for the instance
 13205  	// types in the overrides, set the value of OnDemandBaseCapacity in terms of
 13206  	// the number of capacity units, and not the number of instances.
 13207  	OnDemandBaseCapacity *int64 `type:"integer"`
 13208  
 13209  	// Controls the percentages of On-Demand Instances and Spot Instances for your
 13210  	// additional capacity beyond OnDemandBaseCapacity. Expressed as a number (for
 13211  	// example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). Defaults
 13212  	// to 100 if not specified. If set to 100, only On-Demand Instances are provisioned.
 13213  	OnDemandPercentageAboveBaseCapacity *int64 `type:"integer"`
 13214  
 13215  	// Indicates how to allocate instances across Spot Instance pools.
 13216  	//
 13217  	// If the allocation strategy is lowest-price, the Auto Scaling group launches
 13218  	// instances using the Spot pools with the lowest price, and evenly allocates
 13219  	// your instances across the number of Spot pools that you specify. Defaults
 13220  	// to lowest-price if not specified.
 13221  	//
 13222  	// If the allocation strategy is capacity-optimized (recommended), the Auto
 13223  	// Scaling group launches instances using Spot pools that are optimally chosen
 13224  	// based on the available Spot capacity. Alternatively, you can use capacity-optimized-prioritized
 13225  	// and set the order of instance types in the list of launch template overrides
 13226  	// from highest to lowest priority (from first to last in the list). Amazon
 13227  	// EC2 Auto Scaling honors the instance type priorities on a best-effort basis
 13228  	// but optimizes for capacity first.
 13229  	SpotAllocationStrategy *string `type:"string"`
 13230  
 13231  	// The number of Spot Instance pools across which to allocate your Spot Instances.
 13232  	// The Spot pools are determined from the different instance types in the overrides.
 13233  	// Valid only when the Spot allocation strategy is lowest-price. Value must
 13234  	// be in the range of 1 to 20. Defaults to 2 if not specified.
 13235  	SpotInstancePools *int64 `type:"integer"`
 13236  
 13237  	// The maximum price per unit hour that you are willing to pay for a Spot Instance.
 13238  	// If you leave the value at its default (empty), Amazon EC2 Auto Scaling uses
 13239  	// the On-Demand price as the maximum Spot price. To remove a value that you
 13240  	// previously set, include the property but specify an empty string ("") for
 13241  	// the value.
 13242  	SpotMaxPrice *string `type:"string"`
 13243  }
 13244  
 13245  // String returns the string representation.
 13246  //
 13247  // API parameter values that are decorated as "sensitive" in the API will not
 13248  // be included in the string output. The member name will be present, but the
 13249  // value will be replaced with "sensitive".
 13250  func (s InstancesDistribution) String() string {
 13251  	return awsutil.Prettify(s)
 13252  }
 13253  
 13254  // GoString returns the string representation.
 13255  //
 13256  // API parameter values that are decorated as "sensitive" in the API will not
 13257  // be included in the string output. The member name will be present, but the
 13258  // value will be replaced with "sensitive".
 13259  func (s InstancesDistribution) GoString() string {
 13260  	return s.String()
 13261  }
 13262  
 13263  // SetOnDemandAllocationStrategy sets the OnDemandAllocationStrategy field's value.
 13264  func (s *InstancesDistribution) SetOnDemandAllocationStrategy(v string) *InstancesDistribution {
 13265  	s.OnDemandAllocationStrategy = &v
 13266  	return s
 13267  }
 13268  
 13269  // SetOnDemandBaseCapacity sets the OnDemandBaseCapacity field's value.
 13270  func (s *InstancesDistribution) SetOnDemandBaseCapacity(v int64) *InstancesDistribution {
 13271  	s.OnDemandBaseCapacity = &v
 13272  	return s
 13273  }
 13274  
 13275  // SetOnDemandPercentageAboveBaseCapacity sets the OnDemandPercentageAboveBaseCapacity field's value.
 13276  func (s *InstancesDistribution) SetOnDemandPercentageAboveBaseCapacity(v int64) *InstancesDistribution {
 13277  	s.OnDemandPercentageAboveBaseCapacity = &v
 13278  	return s
 13279  }
 13280  
 13281  // SetSpotAllocationStrategy sets the SpotAllocationStrategy field's value.
 13282  func (s *InstancesDistribution) SetSpotAllocationStrategy(v string) *InstancesDistribution {
 13283  	s.SpotAllocationStrategy = &v
 13284  	return s
 13285  }
 13286  
 13287  // SetSpotInstancePools sets the SpotInstancePools field's value.
 13288  func (s *InstancesDistribution) SetSpotInstancePools(v int64) *InstancesDistribution {
 13289  	s.SpotInstancePools = &v
 13290  	return s
 13291  }
 13292  
 13293  // SetSpotMaxPrice sets the SpotMaxPrice field's value.
 13294  func (s *InstancesDistribution) SetSpotMaxPrice(v string) *InstancesDistribution {
 13295  	s.SpotMaxPrice = &v
 13296  	return s
 13297  }
 13298  
 13299  // Describes a launch configuration.
 13300  type LaunchConfiguration struct {
 13301  	_ struct{} `type:"structure"`
 13302  
 13303  	// For Auto Scaling groups that are running in a VPC, specifies whether to assign
 13304  	// a public IP address to the group's instances. For more information, see Launching
 13305  	// Auto Scaling instances in a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html)
 13306  	// in the Amazon EC2 Auto Scaling User Guide.
 13307  	AssociatePublicIpAddress *bool `type:"boolean"`
 13308  
 13309  	// A block device mapping, which specifies the block devices for the instance.
 13310  	// For more information, see Block Device Mapping (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)
 13311  	// in the Amazon EC2 User Guide for Linux Instances.
 13312  	BlockDeviceMappings []*BlockDeviceMapping `type:"list"`
 13313  
 13314  	// The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.
 13315  	// For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
 13316  	// in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
 13317  	// instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
 13318  	// in the Amazon EC2 Auto Scaling User Guide.
 13319  	ClassicLinkVPCId *string `min:"1" type:"string"`
 13320  
 13321  	// The IDs of one or more security groups for the VPC specified in ClassicLinkVPCId.
 13322  	//
 13323  	// For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
 13324  	// in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic
 13325  	// instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink)
 13326  	// in the Amazon EC2 Auto Scaling User Guide.
 13327  	ClassicLinkVPCSecurityGroups []*string `type:"list"`
 13328  
 13329  	// The creation date and time for the launch configuration.
 13330  	//
 13331  	// CreatedTime is a required field
 13332  	CreatedTime *time.Time `type:"timestamp" required:"true"`
 13333  
 13334  	// Specifies whether the launch configuration is optimized for EBS I/O (true)
 13335  	// or not (false). For more information, see Amazon EBS-Optimized Instances
 13336  	// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in
 13337  	// the Amazon EC2 User Guide for Linux Instances.
 13338  	EbsOptimized *bool `type:"boolean"`
 13339  
 13340  	// The name or the Amazon Resource Name (ARN) of the instance profile associated
 13341  	// with the IAM role for the instance. The instance profile contains the IAM
 13342  	// role. For more information, see IAM role for applications that run on Amazon
 13343  	// EC2 instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html)
 13344  	// in the Amazon EC2 Auto Scaling User Guide.
 13345  	IamInstanceProfile *string `min:"1" type:"string"`
 13346  
 13347  	// The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances.
 13348  	// For more information, see Finding an AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)
 13349  	// in the Amazon EC2 User Guide for Linux Instances.
 13350  	//
 13351  	// ImageId is a required field
 13352  	ImageId *string `min:"1" type:"string" required:"true"`
 13353  
 13354  	// Controls whether instances in this group are launched with detailed (true)
 13355  	// or basic (false) monitoring.
 13356  	//
 13357  	// For more information, see Configure Monitoring for Auto Scaling Instances
 13358  	// (https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html)
 13359  	// in the Amazon EC2 Auto Scaling User Guide.
 13360  	InstanceMonitoring *InstanceMonitoring `type:"structure"`
 13361  
 13362  	// The instance type for the instances.
 13363  	//
 13364  	// For information about available instance types, see Available Instance Types
 13365  	// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes)
 13366  	// in the Amazon EC2 User Guide for Linux Instances.
 13367  	//
 13368  	// InstanceType is a required field
 13369  	InstanceType *string `min:"1" type:"string" required:"true"`
 13370  
 13371  	// The ID of the kernel associated with the AMI.
 13372  	KernelId *string `min:"1" type:"string"`
 13373  
 13374  	// The name of the key pair.
 13375  	//
 13376  	// For more information, see Amazon EC2 Key Pairs (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)
 13377  	// in the Amazon EC2 User Guide for Linux Instances.
 13378  	KeyName *string `min:"1" type:"string"`
 13379  
 13380  	// The Amazon Resource Name (ARN) of the launch configuration.
 13381  	LaunchConfigurationARN *string `min:"1" type:"string"`
 13382  
 13383  	// The name of the launch configuration.
 13384  	//
 13385  	// LaunchConfigurationName is a required field
 13386  	LaunchConfigurationName *string `min:"1" type:"string" required:"true"`
 13387  
 13388  	// The metadata options for the instances. For more information, see Configuring
 13389  	// the Instance Metadata Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds)
 13390  	// in the Amazon EC2 Auto Scaling User Guide.
 13391  	MetadataOptions *InstanceMetadataOptions `type:"structure"`
 13392  
 13393  	// The tenancy of the instance, either default or dedicated. An instance with
 13394  	// dedicated tenancy runs on isolated, single-tenant hardware and can only be
 13395  	// launched into a VPC.
 13396  	//
 13397  	// For more information, see Configuring instance tenancy with Amazon EC2 Auto
 13398  	// Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html)
 13399  	// in the Amazon EC2 Auto Scaling User Guide.
 13400  	PlacementTenancy *string `min:"1" type:"string"`
 13401  
 13402  	// The ID of the RAM disk associated with the AMI.
 13403  	RamdiskId *string `min:"1" type:"string"`
 13404  
 13405  	// A list that contains the security groups to assign to the instances in the
 13406  	// Auto Scaling group. For more information, see Security Groups for Your VPC
 13407  	// (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)
 13408  	// in the Amazon Virtual Private Cloud User Guide.
 13409  	SecurityGroups []*string `type:"list"`
 13410  
 13411  	// The maximum hourly price to be paid for any Spot Instance launched to fulfill
 13412  	// the request. Spot Instances are launched when the price you specify exceeds
 13413  	// the current Spot price. For more information, see Requesting Spot Instances
 13414  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html)
 13415  	// in the Amazon EC2 Auto Scaling User Guide.
 13416  	SpotPrice *string `min:"1" type:"string"`
 13417  
 13418  	// The user data to make available to the launched EC2 instances. For more information,
 13419  	// see Instance metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
 13420  	// (Linux) and Instance metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html)
 13421  	// (Windows). If you are using a command line tool, base64-encoding is performed
 13422  	// for you, and you can load the text from a file. Otherwise, you must provide
 13423  	// base64-encoded text. User data is limited to 16 KB.
 13424  	UserData *string `type:"string"`
 13425  }
 13426  
 13427  // String returns the string representation.
 13428  //
 13429  // API parameter values that are decorated as "sensitive" in the API will not
 13430  // be included in the string output. The member name will be present, but the
 13431  // value will be replaced with "sensitive".
 13432  func (s LaunchConfiguration) String() string {
 13433  	return awsutil.Prettify(s)
 13434  }
 13435  
 13436  // GoString returns the string representation.
 13437  //
 13438  // API parameter values that are decorated as "sensitive" in the API will not
 13439  // be included in the string output. The member name will be present, but the
 13440  // value will be replaced with "sensitive".
 13441  func (s LaunchConfiguration) GoString() string {
 13442  	return s.String()
 13443  }
 13444  
 13445  // SetAssociatePublicIpAddress sets the AssociatePublicIpAddress field's value.
 13446  func (s *LaunchConfiguration) SetAssociatePublicIpAddress(v bool) *LaunchConfiguration {
 13447  	s.AssociatePublicIpAddress = &v
 13448  	return s
 13449  }
 13450  
 13451  // SetBlockDeviceMappings sets the BlockDeviceMappings field's value.
 13452  func (s *LaunchConfiguration) SetBlockDeviceMappings(v []*BlockDeviceMapping) *LaunchConfiguration {
 13453  	s.BlockDeviceMappings = v
 13454  	return s
 13455  }
 13456  
 13457  // SetClassicLinkVPCId sets the ClassicLinkVPCId field's value.
 13458  func (s *LaunchConfiguration) SetClassicLinkVPCId(v string) *LaunchConfiguration {
 13459  	s.ClassicLinkVPCId = &v
 13460  	return s
 13461  }
 13462  
 13463  // SetClassicLinkVPCSecurityGroups sets the ClassicLinkVPCSecurityGroups field's value.
 13464  func (s *LaunchConfiguration) SetClassicLinkVPCSecurityGroups(v []*string) *LaunchConfiguration {
 13465  	s.ClassicLinkVPCSecurityGroups = v
 13466  	return s
 13467  }
 13468  
 13469  // SetCreatedTime sets the CreatedTime field's value.
 13470  func (s *LaunchConfiguration) SetCreatedTime(v time.Time) *LaunchConfiguration {
 13471  	s.CreatedTime = &v
 13472  	return s
 13473  }
 13474  
 13475  // SetEbsOptimized sets the EbsOptimized field's value.
 13476  func (s *LaunchConfiguration) SetEbsOptimized(v bool) *LaunchConfiguration {
 13477  	s.EbsOptimized = &v
 13478  	return s
 13479  }
 13480  
 13481  // SetIamInstanceProfile sets the IamInstanceProfile field's value.
 13482  func (s *LaunchConfiguration) SetIamInstanceProfile(v string) *LaunchConfiguration {
 13483  	s.IamInstanceProfile = &v
 13484  	return s
 13485  }
 13486  
 13487  // SetImageId sets the ImageId field's value.
 13488  func (s *LaunchConfiguration) SetImageId(v string) *LaunchConfiguration {
 13489  	s.ImageId = &v
 13490  	return s
 13491  }
 13492  
 13493  // SetInstanceMonitoring sets the InstanceMonitoring field's value.
 13494  func (s *LaunchConfiguration) SetInstanceMonitoring(v *InstanceMonitoring) *LaunchConfiguration {
 13495  	s.InstanceMonitoring = v
 13496  	return s
 13497  }
 13498  
 13499  // SetInstanceType sets the InstanceType field's value.
 13500  func (s *LaunchConfiguration) SetInstanceType(v string) *LaunchConfiguration {
 13501  	s.InstanceType = &v
 13502  	return s
 13503  }
 13504  
 13505  // SetKernelId sets the KernelId field's value.
 13506  func (s *LaunchConfiguration) SetKernelId(v string) *LaunchConfiguration {
 13507  	s.KernelId = &v
 13508  	return s
 13509  }
 13510  
 13511  // SetKeyName sets the KeyName field's value.
 13512  func (s *LaunchConfiguration) SetKeyName(v string) *LaunchConfiguration {
 13513  	s.KeyName = &v
 13514  	return s
 13515  }
 13516  
 13517  // SetLaunchConfigurationARN sets the LaunchConfigurationARN field's value.
 13518  func (s *LaunchConfiguration) SetLaunchConfigurationARN(v string) *LaunchConfiguration {
 13519  	s.LaunchConfigurationARN = &v
 13520  	return s
 13521  }
 13522  
 13523  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
 13524  func (s *LaunchConfiguration) SetLaunchConfigurationName(v string) *LaunchConfiguration {
 13525  	s.LaunchConfigurationName = &v
 13526  	return s
 13527  }
 13528  
 13529  // SetMetadataOptions sets the MetadataOptions field's value.
 13530  func (s *LaunchConfiguration) SetMetadataOptions(v *InstanceMetadataOptions) *LaunchConfiguration {
 13531  	s.MetadataOptions = v
 13532  	return s
 13533  }
 13534  
 13535  // SetPlacementTenancy sets the PlacementTenancy field's value.
 13536  func (s *LaunchConfiguration) SetPlacementTenancy(v string) *LaunchConfiguration {
 13537  	s.PlacementTenancy = &v
 13538  	return s
 13539  }
 13540  
 13541  // SetRamdiskId sets the RamdiskId field's value.
 13542  func (s *LaunchConfiguration) SetRamdiskId(v string) *LaunchConfiguration {
 13543  	s.RamdiskId = &v
 13544  	return s
 13545  }
 13546  
 13547  // SetSecurityGroups sets the SecurityGroups field's value.
 13548  func (s *LaunchConfiguration) SetSecurityGroups(v []*string) *LaunchConfiguration {
 13549  	s.SecurityGroups = v
 13550  	return s
 13551  }
 13552  
 13553  // SetSpotPrice sets the SpotPrice field's value.
 13554  func (s *LaunchConfiguration) SetSpotPrice(v string) *LaunchConfiguration {
 13555  	s.SpotPrice = &v
 13556  	return s
 13557  }
 13558  
 13559  // SetUserData sets the UserData field's value.
 13560  func (s *LaunchConfiguration) SetUserData(v string) *LaunchConfiguration {
 13561  	s.UserData = &v
 13562  	return s
 13563  }
 13564  
 13565  // Describes a launch template and overrides.
 13566  //
 13567  // You specify these properties as part of a mixed instances policy.
 13568  //
 13569  // When you update the launch template or overrides in the UpdateAutoScalingGroup
 13570  // API call, existing Amazon EC2 instances continue to run. When scale out occurs,
 13571  // Amazon EC2 Auto Scaling launches instances to match the new settings. When
 13572  // scale in occurs, Amazon EC2 Auto Scaling terminates instances according to
 13573  // the group's termination policies.
 13574  type LaunchTemplate struct {
 13575  	_ struct{} `type:"structure"`
 13576  
 13577  	// The launch template to use.
 13578  	LaunchTemplateSpecification *LaunchTemplateSpecification `type:"structure"`
 13579  
 13580  	// Any properties that you specify override the same properties in the launch
 13581  	// template. If not provided, Amazon EC2 Auto Scaling uses the instance type
 13582  	// specified in the launch template when it launches an instance.
 13583  	Overrides []*LaunchTemplateOverrides `type:"list"`
 13584  }
 13585  
 13586  // String returns the string representation.
 13587  //
 13588  // API parameter values that are decorated as "sensitive" in the API will not
 13589  // be included in the string output. The member name will be present, but the
 13590  // value will be replaced with "sensitive".
 13591  func (s LaunchTemplate) String() string {
 13592  	return awsutil.Prettify(s)
 13593  }
 13594  
 13595  // GoString returns the string representation.
 13596  //
 13597  // API parameter values that are decorated as "sensitive" in the API will not
 13598  // be included in the string output. The member name will be present, but the
 13599  // value will be replaced with "sensitive".
 13600  func (s LaunchTemplate) GoString() string {
 13601  	return s.String()
 13602  }
 13603  
 13604  // Validate inspects the fields of the type to determine if they are valid.
 13605  func (s *LaunchTemplate) Validate() error {
 13606  	invalidParams := request.ErrInvalidParams{Context: "LaunchTemplate"}
 13607  	if s.LaunchTemplateSpecification != nil {
 13608  		if err := s.LaunchTemplateSpecification.Validate(); err != nil {
 13609  			invalidParams.AddNested("LaunchTemplateSpecification", err.(request.ErrInvalidParams))
 13610  		}
 13611  	}
 13612  	if s.Overrides != nil {
 13613  		for i, v := range s.Overrides {
 13614  			if v == nil {
 13615  				continue
 13616  			}
 13617  			if err := v.Validate(); err != nil {
 13618  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Overrides", i), err.(request.ErrInvalidParams))
 13619  			}
 13620  		}
 13621  	}
 13622  
 13623  	if invalidParams.Len() > 0 {
 13624  		return invalidParams
 13625  	}
 13626  	return nil
 13627  }
 13628  
 13629  // SetLaunchTemplateSpecification sets the LaunchTemplateSpecification field's value.
 13630  func (s *LaunchTemplate) SetLaunchTemplateSpecification(v *LaunchTemplateSpecification) *LaunchTemplate {
 13631  	s.LaunchTemplateSpecification = v
 13632  	return s
 13633  }
 13634  
 13635  // SetOverrides sets the Overrides field's value.
 13636  func (s *LaunchTemplate) SetOverrides(v []*LaunchTemplateOverrides) *LaunchTemplate {
 13637  	s.Overrides = v
 13638  	return s
 13639  }
 13640  
 13641  // Describes an override for a launch template. The maximum number of instance
 13642  // types that can be associated with an Auto Scaling group is 40. The maximum
 13643  // number of distinct launch templates you can define for an Auto Scaling group
 13644  // is 20. For more information about configuring overrides, see Configuring
 13645  // overrides (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-override-options.html)
 13646  // in the Amazon EC2 Auto Scaling User Guide.
 13647  type LaunchTemplateOverrides struct {
 13648  	_ struct{} `type:"structure"`
 13649  
 13650  	// The instance type, such as m3.xlarge. You must use an instance type that
 13651  	// is supported in your requested Region and Availability Zones. For more information,
 13652  	// see Instance types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
 13653  	// in the Amazon Elastic Compute Cloud User Guide.
 13654  	InstanceType *string `min:"1" type:"string"`
 13655  
 13656  	// Provides the launch template to be used when launching the instance type.
 13657  	// For example, some instance types might require a launch template with a different
 13658  	// AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's
 13659  	// defined for your mixed instances policy. For more information, see Specifying
 13660  	// a different launch template for an instance type (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-template-overrides.html)
 13661  	// in the Amazon EC2 Auto Scaling User Guide.
 13662  	LaunchTemplateSpecification *LaunchTemplateSpecification `type:"structure"`
 13663  
 13664  	// The number of capacity units provided by the specified instance type in terms
 13665  	// of virtual CPUs, memory, storage, throughput, or other relative performance
 13666  	// characteristic. When a Spot or On-Demand Instance is provisioned, the capacity
 13667  	// units count toward the desired capacity. Amazon EC2 Auto Scaling provisions
 13668  	// instances until the desired capacity is totally fulfilled, even if this results
 13669  	// in an overage. For example, if there are 2 units remaining to fulfill capacity,
 13670  	// and Amazon EC2 Auto Scaling can only provision an instance with a WeightedCapacity
 13671  	// of 5 units, the instance is provisioned, and the desired capacity is exceeded
 13672  	// by 3 units. For more information, see Instance weighting for Amazon EC2 Auto
 13673  	// Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html)
 13674  	// in the Amazon EC2 Auto Scaling User Guide. Value must be in the range of
 13675  	// 1 to 999.
 13676  	WeightedCapacity *string `min:"1" type:"string"`
 13677  }
 13678  
 13679  // String returns the string representation.
 13680  //
 13681  // API parameter values that are decorated as "sensitive" in the API will not
 13682  // be included in the string output. The member name will be present, but the
 13683  // value will be replaced with "sensitive".
 13684  func (s LaunchTemplateOverrides) String() string {
 13685  	return awsutil.Prettify(s)
 13686  }
 13687  
 13688  // GoString returns the string representation.
 13689  //
 13690  // API parameter values that are decorated as "sensitive" in the API will not
 13691  // be included in the string output. The member name will be present, but the
 13692  // value will be replaced with "sensitive".
 13693  func (s LaunchTemplateOverrides) GoString() string {
 13694  	return s.String()
 13695  }
 13696  
 13697  // Validate inspects the fields of the type to determine if they are valid.
 13698  func (s *LaunchTemplateOverrides) Validate() error {
 13699  	invalidParams := request.ErrInvalidParams{Context: "LaunchTemplateOverrides"}
 13700  	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
 13701  		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
 13702  	}
 13703  	if s.WeightedCapacity != nil && len(*s.WeightedCapacity) < 1 {
 13704  		invalidParams.Add(request.NewErrParamMinLen("WeightedCapacity", 1))
 13705  	}
 13706  	if s.LaunchTemplateSpecification != nil {
 13707  		if err := s.LaunchTemplateSpecification.Validate(); err != nil {
 13708  			invalidParams.AddNested("LaunchTemplateSpecification", err.(request.ErrInvalidParams))
 13709  		}
 13710  	}
 13711  
 13712  	if invalidParams.Len() > 0 {
 13713  		return invalidParams
 13714  	}
 13715  	return nil
 13716  }
 13717  
 13718  // SetInstanceType sets the InstanceType field's value.
 13719  func (s *LaunchTemplateOverrides) SetInstanceType(v string) *LaunchTemplateOverrides {
 13720  	s.InstanceType = &v
 13721  	return s
 13722  }
 13723  
 13724  // SetLaunchTemplateSpecification sets the LaunchTemplateSpecification field's value.
 13725  func (s *LaunchTemplateOverrides) SetLaunchTemplateSpecification(v *LaunchTemplateSpecification) *LaunchTemplateOverrides {
 13726  	s.LaunchTemplateSpecification = v
 13727  	return s
 13728  }
 13729  
 13730  // SetWeightedCapacity sets the WeightedCapacity field's value.
 13731  func (s *LaunchTemplateOverrides) SetWeightedCapacity(v string) *LaunchTemplateOverrides {
 13732  	s.WeightedCapacity = &v
 13733  	return s
 13734  }
 13735  
 13736  // Describes the launch template and the version of the launch template that
 13737  // Amazon EC2 Auto Scaling uses to launch Amazon EC2 instances. For more information
 13738  // about launch templates, see Launch templates (https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchTemplates.html)
 13739  // in the Amazon EC2 Auto Scaling User Guide.
 13740  type LaunchTemplateSpecification struct {
 13741  	_ struct{} `type:"structure"`
 13742  
 13743  	// The ID of the launch template. To get the template ID, use the Amazon EC2
 13744  	// DescribeLaunchTemplates (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html)
 13745  	// API operation. New launch templates can be created using the Amazon EC2 CreateLaunchTemplate
 13746  	// (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html)
 13747  	// API.
 13748  	//
 13749  	// Conditional: You must specify either a LaunchTemplateId or a LaunchTemplateName.
 13750  	LaunchTemplateId *string `min:"1" type:"string"`
 13751  
 13752  	// The name of the launch template. To get the template name, use the Amazon
 13753  	// EC2 DescribeLaunchTemplates (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html)
 13754  	// API operation. New launch templates can be created using the Amazon EC2 CreateLaunchTemplate
 13755  	// (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html)
 13756  	// API.
 13757  	//
 13758  	// Conditional: You must specify either a LaunchTemplateId or a LaunchTemplateName.
 13759  	LaunchTemplateName *string `min:"3" type:"string"`
 13760  
 13761  	// The version number, $Latest, or $Default. To get the version number, use
 13762  	// the Amazon EC2 DescribeLaunchTemplateVersions (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplateVersions.html)
 13763  	// API operation. New launch template versions can be created using the Amazon
 13764  	// EC2 CreateLaunchTemplateVersion (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplateVersion.html)
 13765  	// API. If the value is $Latest, Amazon EC2 Auto Scaling selects the latest
 13766  	// version of the launch template when launching instances. If the value is
 13767  	// $Default, Amazon EC2 Auto Scaling selects the default version of the launch
 13768  	// template when launching instances. The default value is $Default.
 13769  	Version *string `min:"1" type:"string"`
 13770  }
 13771  
 13772  // String returns the string representation.
 13773  //
 13774  // API parameter values that are decorated as "sensitive" in the API will not
 13775  // be included in the string output. The member name will be present, but the
 13776  // value will be replaced with "sensitive".
 13777  func (s LaunchTemplateSpecification) String() string {
 13778  	return awsutil.Prettify(s)
 13779  }
 13780  
 13781  // GoString returns the string representation.
 13782  //
 13783  // API parameter values that are decorated as "sensitive" in the API will not
 13784  // be included in the string output. The member name will be present, but the
 13785  // value will be replaced with "sensitive".
 13786  func (s LaunchTemplateSpecification) GoString() string {
 13787  	return s.String()
 13788  }
 13789  
 13790  // Validate inspects the fields of the type to determine if they are valid.
 13791  func (s *LaunchTemplateSpecification) Validate() error {
 13792  	invalidParams := request.ErrInvalidParams{Context: "LaunchTemplateSpecification"}
 13793  	if s.LaunchTemplateId != nil && len(*s.LaunchTemplateId) < 1 {
 13794  		invalidParams.Add(request.NewErrParamMinLen("LaunchTemplateId", 1))
 13795  	}
 13796  	if s.LaunchTemplateName != nil && len(*s.LaunchTemplateName) < 3 {
 13797  		invalidParams.Add(request.NewErrParamMinLen("LaunchTemplateName", 3))
 13798  	}
 13799  	if s.Version != nil && len(*s.Version) < 1 {
 13800  		invalidParams.Add(request.NewErrParamMinLen("Version", 1))
 13801  	}
 13802  
 13803  	if invalidParams.Len() > 0 {
 13804  		return invalidParams
 13805  	}
 13806  	return nil
 13807  }
 13808  
 13809  // SetLaunchTemplateId sets the LaunchTemplateId field's value.
 13810  func (s *LaunchTemplateSpecification) SetLaunchTemplateId(v string) *LaunchTemplateSpecification {
 13811  	s.LaunchTemplateId = &v
 13812  	return s
 13813  }
 13814  
 13815  // SetLaunchTemplateName sets the LaunchTemplateName field's value.
 13816  func (s *LaunchTemplateSpecification) SetLaunchTemplateName(v string) *LaunchTemplateSpecification {
 13817  	s.LaunchTemplateName = &v
 13818  	return s
 13819  }
 13820  
 13821  // SetVersion sets the Version field's value.
 13822  func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification {
 13823  	s.Version = &v
 13824  	return s
 13825  }
 13826  
 13827  // Describes a lifecycle hook, which tells Amazon EC2 Auto Scaling that you
 13828  // want to perform an action whenever it launches instances or terminates instances.
 13829  type LifecycleHook struct {
 13830  	_ struct{} `type:"structure"`
 13831  
 13832  	// The name of the Auto Scaling group for the lifecycle hook.
 13833  	AutoScalingGroupName *string `min:"1" type:"string"`
 13834  
 13835  	// Defines the action the Auto Scaling group should take when the lifecycle
 13836  	// hook timeout elapses or if an unexpected failure occurs. The possible values
 13837  	// are CONTINUE and ABANDON.
 13838  	DefaultResult *string `type:"string"`
 13839  
 13840  	// The maximum time, in seconds, that an instance can remain in a Pending:Wait
 13841  	// or Terminating:Wait state. The maximum is 172800 seconds (48 hours) or 100
 13842  	// times HeartbeatTimeout, whichever is smaller.
 13843  	GlobalTimeout *int64 `type:"integer"`
 13844  
 13845  	// The maximum time, in seconds, that can elapse before the lifecycle hook times
 13846  	// out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the
 13847  	// action that you specified in the DefaultResult parameter.
 13848  	HeartbeatTimeout *int64 `type:"integer"`
 13849  
 13850  	// The name of the lifecycle hook.
 13851  	LifecycleHookName *string `min:"1" type:"string"`
 13852  
 13853  	// The state of the EC2 instance to which to attach the lifecycle hook. The
 13854  	// following are possible values:
 13855  	//
 13856  	//    * autoscaling:EC2_INSTANCE_LAUNCHING
 13857  	//
 13858  	//    * autoscaling:EC2_INSTANCE_TERMINATING
 13859  	LifecycleTransition *string `type:"string"`
 13860  
 13861  	// Additional information that is included any time Amazon EC2 Auto Scaling
 13862  	// sends a message to the notification target.
 13863  	NotificationMetadata *string `min:"1" type:"string"`
 13864  
 13865  	// The ARN of the target that Amazon EC2 Auto Scaling sends notifications to
 13866  	// when an instance is in the transition state for the lifecycle hook. The notification
 13867  	// target can be either an SQS queue or an SNS topic.
 13868  	NotificationTargetARN *string `type:"string"`
 13869  
 13870  	// The ARN of the IAM role that allows the Auto Scaling group to publish to
 13871  	// the specified notification target.
 13872  	RoleARN *string `min:"1" type:"string"`
 13873  }
 13874  
 13875  // String returns the string representation.
 13876  //
 13877  // API parameter values that are decorated as "sensitive" in the API will not
 13878  // be included in the string output. The member name will be present, but the
 13879  // value will be replaced with "sensitive".
 13880  func (s LifecycleHook) String() string {
 13881  	return awsutil.Prettify(s)
 13882  }
 13883  
 13884  // GoString returns the string representation.
 13885  //
 13886  // API parameter values that are decorated as "sensitive" in the API will not
 13887  // be included in the string output. The member name will be present, but the
 13888  // value will be replaced with "sensitive".
 13889  func (s LifecycleHook) GoString() string {
 13890  	return s.String()
 13891  }
 13892  
 13893  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 13894  func (s *LifecycleHook) SetAutoScalingGroupName(v string) *LifecycleHook {
 13895  	s.AutoScalingGroupName = &v
 13896  	return s
 13897  }
 13898  
 13899  // SetDefaultResult sets the DefaultResult field's value.
 13900  func (s *LifecycleHook) SetDefaultResult(v string) *LifecycleHook {
 13901  	s.DefaultResult = &v
 13902  	return s
 13903  }
 13904  
 13905  // SetGlobalTimeout sets the GlobalTimeout field's value.
 13906  func (s *LifecycleHook) SetGlobalTimeout(v int64) *LifecycleHook {
 13907  	s.GlobalTimeout = &v
 13908  	return s
 13909  }
 13910  
 13911  // SetHeartbeatTimeout sets the HeartbeatTimeout field's value.
 13912  func (s *LifecycleHook) SetHeartbeatTimeout(v int64) *LifecycleHook {
 13913  	s.HeartbeatTimeout = &v
 13914  	return s
 13915  }
 13916  
 13917  // SetLifecycleHookName sets the LifecycleHookName field's value.
 13918  func (s *LifecycleHook) SetLifecycleHookName(v string) *LifecycleHook {
 13919  	s.LifecycleHookName = &v
 13920  	return s
 13921  }
 13922  
 13923  // SetLifecycleTransition sets the LifecycleTransition field's value.
 13924  func (s *LifecycleHook) SetLifecycleTransition(v string) *LifecycleHook {
 13925  	s.LifecycleTransition = &v
 13926  	return s
 13927  }
 13928  
 13929  // SetNotificationMetadata sets the NotificationMetadata field's value.
 13930  func (s *LifecycleHook) SetNotificationMetadata(v string) *LifecycleHook {
 13931  	s.NotificationMetadata = &v
 13932  	return s
 13933  }
 13934  
 13935  // SetNotificationTargetARN sets the NotificationTargetARN field's value.
 13936  func (s *LifecycleHook) SetNotificationTargetARN(v string) *LifecycleHook {
 13937  	s.NotificationTargetARN = &v
 13938  	return s
 13939  }
 13940  
 13941  // SetRoleARN sets the RoleARN field's value.
 13942  func (s *LifecycleHook) SetRoleARN(v string) *LifecycleHook {
 13943  	s.RoleARN = &v
 13944  	return s
 13945  }
 13946  
 13947  // Describes information used to specify a lifecycle hook for an Auto Scaling
 13948  // group.
 13949  //
 13950  // A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an
 13951  // instance when the instance launches (before it is put into service) or as
 13952  // the instance terminates (before it is fully terminated).
 13953  //
 13954  // This step is a part of the procedure for creating a lifecycle hook for an
 13955  // Auto Scaling group:
 13956  //
 13957  // (Optional) Create a Lambda function and a rule that allows CloudWatch Events
 13958  // to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates
 13959  // instances.
 13960  //
 13961  // (Optional) Create a notification target and an IAM role. The target can be
 13962  // either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon
 13963  // EC2 Auto Scaling to publish lifecycle notifications to the target.
 13964  //
 13965  // Create the lifecycle hook. Specify whether the hook is used when the instances
 13966  // launch or terminate.
 13967  //
 13968  // If you need more time, record the lifecycle action heartbeat to keep the
 13969  // instance in a pending state.
 13970  //
 13971  // If you finish before the timeout period ends, complete the lifecycle action.
 13972  //
 13973  // For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
 13974  // in the Amazon EC2 Auto Scaling User Guide.
 13975  type LifecycleHookSpecification struct {
 13976  	_ struct{} `type:"structure"`
 13977  
 13978  	// Defines the action the Auto Scaling group should take when the lifecycle
 13979  	// hook timeout elapses or if an unexpected failure occurs. The valid values
 13980  	// are CONTINUE and ABANDON. The default value is ABANDON.
 13981  	DefaultResult *string `type:"string"`
 13982  
 13983  	// The maximum time, in seconds, that can elapse before the lifecycle hook times
 13984  	// out.
 13985  	//
 13986  	// If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action
 13987  	// that you specified in the DefaultResult parameter. You can prevent the lifecycle
 13988  	// hook from timing out by calling RecordLifecycleActionHeartbeat.
 13989  	HeartbeatTimeout *int64 `type:"integer"`
 13990  
 13991  	// The name of the lifecycle hook.
 13992  	//
 13993  	// LifecycleHookName is a required field
 13994  	LifecycleHookName *string `min:"1" type:"string" required:"true"`
 13995  
 13996  	// The state of the EC2 instance to which you want to attach the lifecycle hook.
 13997  	// The valid values are:
 13998  	//
 13999  	//    * autoscaling:EC2_INSTANCE_LAUNCHING
 14000  	//
 14001  	//    * autoscaling:EC2_INSTANCE_TERMINATING
 14002  	//
 14003  	// LifecycleTransition is a required field
 14004  	LifecycleTransition *string `type:"string" required:"true"`
 14005  
 14006  	// Additional information that you want to include any time Amazon EC2 Auto
 14007  	// Scaling sends a message to the notification target.
 14008  	NotificationMetadata *string `min:"1" type:"string"`
 14009  
 14010  	// The ARN of the target that Amazon EC2 Auto Scaling sends notifications to
 14011  	// when an instance is in the transition state for the lifecycle hook. The notification
 14012  	// target can be either an SQS queue or an SNS topic.
 14013  	NotificationTargetARN *string `type:"string"`
 14014  
 14015  	// The ARN of the IAM role that allows the Auto Scaling group to publish to
 14016  	// the specified notification target, for example, an Amazon SNS topic or an
 14017  	// Amazon SQS queue.
 14018  	RoleARN *string `min:"1" type:"string"`
 14019  }
 14020  
 14021  // String returns the string representation.
 14022  //
 14023  // API parameter values that are decorated as "sensitive" in the API will not
 14024  // be included in the string output. The member name will be present, but the
 14025  // value will be replaced with "sensitive".
 14026  func (s LifecycleHookSpecification) String() string {
 14027  	return awsutil.Prettify(s)
 14028  }
 14029  
 14030  // GoString returns the string representation.
 14031  //
 14032  // API parameter values that are decorated as "sensitive" in the API will not
 14033  // be included in the string output. The member name will be present, but the
 14034  // value will be replaced with "sensitive".
 14035  func (s LifecycleHookSpecification) GoString() string {
 14036  	return s.String()
 14037  }
 14038  
 14039  // Validate inspects the fields of the type to determine if they are valid.
 14040  func (s *LifecycleHookSpecification) Validate() error {
 14041  	invalidParams := request.ErrInvalidParams{Context: "LifecycleHookSpecification"}
 14042  	if s.LifecycleHookName == nil {
 14043  		invalidParams.Add(request.NewErrParamRequired("LifecycleHookName"))
 14044  	}
 14045  	if s.LifecycleHookName != nil && len(*s.LifecycleHookName) < 1 {
 14046  		invalidParams.Add(request.NewErrParamMinLen("LifecycleHookName", 1))
 14047  	}
 14048  	if s.LifecycleTransition == nil {
 14049  		invalidParams.Add(request.NewErrParamRequired("LifecycleTransition"))
 14050  	}
 14051  	if s.NotificationMetadata != nil && len(*s.NotificationMetadata) < 1 {
 14052  		invalidParams.Add(request.NewErrParamMinLen("NotificationMetadata", 1))
 14053  	}
 14054  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
 14055  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
 14056  	}
 14057  
 14058  	if invalidParams.Len() > 0 {
 14059  		return invalidParams
 14060  	}
 14061  	return nil
 14062  }
 14063  
 14064  // SetDefaultResult sets the DefaultResult field's value.
 14065  func (s *LifecycleHookSpecification) SetDefaultResult(v string) *LifecycleHookSpecification {
 14066  	s.DefaultResult = &v
 14067  	return s
 14068  }
 14069  
 14070  // SetHeartbeatTimeout sets the HeartbeatTimeout field's value.
 14071  func (s *LifecycleHookSpecification) SetHeartbeatTimeout(v int64) *LifecycleHookSpecification {
 14072  	s.HeartbeatTimeout = &v
 14073  	return s
 14074  }
 14075  
 14076  // SetLifecycleHookName sets the LifecycleHookName field's value.
 14077  func (s *LifecycleHookSpecification) SetLifecycleHookName(v string) *LifecycleHookSpecification {
 14078  	s.LifecycleHookName = &v
 14079  	return s
 14080  }
 14081  
 14082  // SetLifecycleTransition sets the LifecycleTransition field's value.
 14083  func (s *LifecycleHookSpecification) SetLifecycleTransition(v string) *LifecycleHookSpecification {
 14084  	s.LifecycleTransition = &v
 14085  	return s
 14086  }
 14087  
 14088  // SetNotificationMetadata sets the NotificationMetadata field's value.
 14089  func (s *LifecycleHookSpecification) SetNotificationMetadata(v string) *LifecycleHookSpecification {
 14090  	s.NotificationMetadata = &v
 14091  	return s
 14092  }
 14093  
 14094  // SetNotificationTargetARN sets the NotificationTargetARN field's value.
 14095  func (s *LifecycleHookSpecification) SetNotificationTargetARN(v string) *LifecycleHookSpecification {
 14096  	s.NotificationTargetARN = &v
 14097  	return s
 14098  }
 14099  
 14100  // SetRoleARN sets the RoleARN field's value.
 14101  func (s *LifecycleHookSpecification) SetRoleARN(v string) *LifecycleHookSpecification {
 14102  	s.RoleARN = &v
 14103  	return s
 14104  }
 14105  
 14106  // Describes the state of a Classic Load Balancer.
 14107  type LoadBalancerState struct {
 14108  	_ struct{} `type:"structure"`
 14109  
 14110  	// The name of the load balancer.
 14111  	LoadBalancerName *string `min:"1" type:"string"`
 14112  
 14113  	// One of the following load balancer states:
 14114  	//
 14115  	//    * Adding - The Auto Scaling instances are being registered with the load
 14116  	//    balancer.
 14117  	//
 14118  	//    * Added - All Auto Scaling instances are registered with the load balancer.
 14119  	//
 14120  	//    * InService - At least one Auto Scaling instance passed an ELB health
 14121  	//    check.
 14122  	//
 14123  	//    * Removing - The Auto Scaling instances are being deregistered from the
 14124  	//    load balancer. If connection draining is enabled, Elastic Load Balancing
 14125  	//    waits for in-flight requests to complete before deregistering the instances.
 14126  	//
 14127  	//    * Removed - All Auto Scaling instances are deregistered from the load
 14128  	//    balancer.
 14129  	State *string `min:"1" type:"string"`
 14130  }
 14131  
 14132  // String returns the string representation.
 14133  //
 14134  // API parameter values that are decorated as "sensitive" in the API will not
 14135  // be included in the string output. The member name will be present, but the
 14136  // value will be replaced with "sensitive".
 14137  func (s LoadBalancerState) String() string {
 14138  	return awsutil.Prettify(s)
 14139  }
 14140  
 14141  // GoString returns the string representation.
 14142  //
 14143  // API parameter values that are decorated as "sensitive" in the API will not
 14144  // be included in the string output. The member name will be present, but the
 14145  // value will be replaced with "sensitive".
 14146  func (s LoadBalancerState) GoString() string {
 14147  	return s.String()
 14148  }
 14149  
 14150  // SetLoadBalancerName sets the LoadBalancerName field's value.
 14151  func (s *LoadBalancerState) SetLoadBalancerName(v string) *LoadBalancerState {
 14152  	s.LoadBalancerName = &v
 14153  	return s
 14154  }
 14155  
 14156  // SetState sets the State field's value.
 14157  func (s *LoadBalancerState) SetState(v string) *LoadBalancerState {
 14158  	s.State = &v
 14159  	return s
 14160  }
 14161  
 14162  // Describes the state of a target group.
 14163  type LoadBalancerTargetGroupState struct {
 14164  	_ struct{} `type:"structure"`
 14165  
 14166  	// The Amazon Resource Name (ARN) of the target group.
 14167  	LoadBalancerTargetGroupARN *string `min:"1" type:"string"`
 14168  
 14169  	// The state of the target group.
 14170  	//
 14171  	//    * Adding - The Auto Scaling instances are being registered with the target
 14172  	//    group.
 14173  	//
 14174  	//    * Added - All Auto Scaling instances are registered with the target group.
 14175  	//
 14176  	//    * InService - At least one Auto Scaling instance passed an ELB health
 14177  	//    check.
 14178  	//
 14179  	//    * Removing - The Auto Scaling instances are being deregistered from the
 14180  	//    target group. If connection draining is enabled, Elastic Load Balancing
 14181  	//    waits for in-flight requests to complete before deregistering the instances.
 14182  	//
 14183  	//    * Removed - All Auto Scaling instances are deregistered from the target
 14184  	//    group.
 14185  	State *string `min:"1" type:"string"`
 14186  }
 14187  
 14188  // String returns the string representation.
 14189  //
 14190  // API parameter values that are decorated as "sensitive" in the API will not
 14191  // be included in the string output. The member name will be present, but the
 14192  // value will be replaced with "sensitive".
 14193  func (s LoadBalancerTargetGroupState) String() string {
 14194  	return awsutil.Prettify(s)
 14195  }
 14196  
 14197  // GoString returns the string representation.
 14198  //
 14199  // API parameter values that are decorated as "sensitive" in the API will not
 14200  // be included in the string output. The member name will be present, but the
 14201  // value will be replaced with "sensitive".
 14202  func (s LoadBalancerTargetGroupState) GoString() string {
 14203  	return s.String()
 14204  }
 14205  
 14206  // SetLoadBalancerTargetGroupARN sets the LoadBalancerTargetGroupARN field's value.
 14207  func (s *LoadBalancerTargetGroupState) SetLoadBalancerTargetGroupARN(v string) *LoadBalancerTargetGroupState {
 14208  	s.LoadBalancerTargetGroupARN = &v
 14209  	return s
 14210  }
 14211  
 14212  // SetState sets the State field's value.
 14213  func (s *LoadBalancerTargetGroupState) SetState(v string) *LoadBalancerTargetGroupState {
 14214  	s.State = &v
 14215  	return s
 14216  }
 14217  
 14218  // A GetPredictiveScalingForecast call returns the load forecast for a predictive
 14219  // scaling policy. This structure includes the data points for that load forecast,
 14220  // along with the timestamps of those data points and the metric specification.
 14221  type LoadForecast struct {
 14222  	_ struct{} `type:"structure"`
 14223  
 14224  	// The metric specification for the load forecast.
 14225  	//
 14226  	// MetricSpecification is a required field
 14227  	MetricSpecification *PredictiveScalingMetricSpecification `type:"structure" required:"true"`
 14228  
 14229  	// The time stamps for the data points, in UTC format.
 14230  	//
 14231  	// Timestamps is a required field
 14232  	Timestamps []*time.Time `type:"list" required:"true"`
 14233  
 14234  	// The values of the data points.
 14235  	//
 14236  	// Values is a required field
 14237  	Values []*float64 `type:"list" required:"true"`
 14238  }
 14239  
 14240  // String returns the string representation.
 14241  //
 14242  // API parameter values that are decorated as "sensitive" in the API will not
 14243  // be included in the string output. The member name will be present, but the
 14244  // value will be replaced with "sensitive".
 14245  func (s LoadForecast) String() string {
 14246  	return awsutil.Prettify(s)
 14247  }
 14248  
 14249  // GoString returns the string representation.
 14250  //
 14251  // API parameter values that are decorated as "sensitive" in the API will not
 14252  // be included in the string output. The member name will be present, but the
 14253  // value will be replaced with "sensitive".
 14254  func (s LoadForecast) GoString() string {
 14255  	return s.String()
 14256  }
 14257  
 14258  // SetMetricSpecification sets the MetricSpecification field's value.
 14259  func (s *LoadForecast) SetMetricSpecification(v *PredictiveScalingMetricSpecification) *LoadForecast {
 14260  	s.MetricSpecification = v
 14261  	return s
 14262  }
 14263  
 14264  // SetTimestamps sets the Timestamps field's value.
 14265  func (s *LoadForecast) SetTimestamps(v []*time.Time) *LoadForecast {
 14266  	s.Timestamps = v
 14267  	return s
 14268  }
 14269  
 14270  // SetValues sets the Values field's value.
 14271  func (s *LoadForecast) SetValues(v []*float64) *LoadForecast {
 14272  	s.Values = v
 14273  	return s
 14274  }
 14275  
 14276  // Describes a metric.
 14277  type MetricCollectionType struct {
 14278  	_ struct{} `type:"structure"`
 14279  
 14280  	// One of the following metrics:
 14281  	//
 14282  	//    * GroupMinSize
 14283  	//
 14284  	//    * GroupMaxSize
 14285  	//
 14286  	//    * GroupDesiredCapacity
 14287  	//
 14288  	//    * GroupInServiceInstances
 14289  	//
 14290  	//    * GroupPendingInstances
 14291  	//
 14292  	//    * GroupStandbyInstances
 14293  	//
 14294  	//    * GroupTerminatingInstances
 14295  	//
 14296  	//    * GroupTotalInstances
 14297  	//
 14298  	//    * GroupInServiceCapacity
 14299  	//
 14300  	//    * GroupPendingCapacity
 14301  	//
 14302  	//    * GroupStandbyCapacity
 14303  	//
 14304  	//    * GroupTerminatingCapacity
 14305  	//
 14306  	//    * GroupTotalCapacity
 14307  	//
 14308  	//    * WarmPoolDesiredCapacity
 14309  	//
 14310  	//    * WarmPoolWarmedCapacity
 14311  	//
 14312  	//    * WarmPoolPendingCapacity
 14313  	//
 14314  	//    * WarmPoolTerminatingCapacity
 14315  	//
 14316  	//    * WarmPoolTotalCapacity
 14317  	//
 14318  	//    * GroupAndWarmPoolDesiredCapacity
 14319  	//
 14320  	//    * GroupAndWarmPoolTotalCapacity
 14321  	Metric *string `min:"1" type:"string"`
 14322  }
 14323  
 14324  // String returns the string representation.
 14325  //
 14326  // API parameter values that are decorated as "sensitive" in the API will not
 14327  // be included in the string output. The member name will be present, but the
 14328  // value will be replaced with "sensitive".
 14329  func (s MetricCollectionType) String() string {
 14330  	return awsutil.Prettify(s)
 14331  }
 14332  
 14333  // GoString returns the string representation.
 14334  //
 14335  // API parameter values that are decorated as "sensitive" in the API will not
 14336  // be included in the string output. The member name will be present, but the
 14337  // value will be replaced with "sensitive".
 14338  func (s MetricCollectionType) GoString() string {
 14339  	return s.String()
 14340  }
 14341  
 14342  // SetMetric sets the Metric field's value.
 14343  func (s *MetricCollectionType) SetMetric(v string) *MetricCollectionType {
 14344  	s.Metric = &v
 14345  	return s
 14346  }
 14347  
 14348  // Describes the dimension of a metric.
 14349  type MetricDimension struct {
 14350  	_ struct{} `type:"structure"`
 14351  
 14352  	// The name of the dimension.
 14353  	//
 14354  	// Name is a required field
 14355  	Name *string `type:"string" required:"true"`
 14356  
 14357  	// The value of the dimension.
 14358  	//
 14359  	// Value is a required field
 14360  	Value *string `type:"string" required:"true"`
 14361  }
 14362  
 14363  // String returns the string representation.
 14364  //
 14365  // API parameter values that are decorated as "sensitive" in the API will not
 14366  // be included in the string output. The member name will be present, but the
 14367  // value will be replaced with "sensitive".
 14368  func (s MetricDimension) String() string {
 14369  	return awsutil.Prettify(s)
 14370  }
 14371  
 14372  // GoString returns the string representation.
 14373  //
 14374  // API parameter values that are decorated as "sensitive" in the API will not
 14375  // be included in the string output. The member name will be present, but the
 14376  // value will be replaced with "sensitive".
 14377  func (s MetricDimension) GoString() string {
 14378  	return s.String()
 14379  }
 14380  
 14381  // Validate inspects the fields of the type to determine if they are valid.
 14382  func (s *MetricDimension) Validate() error {
 14383  	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
 14384  	if s.Name == nil {
 14385  		invalidParams.Add(request.NewErrParamRequired("Name"))
 14386  	}
 14387  	if s.Value == nil {
 14388  		invalidParams.Add(request.NewErrParamRequired("Value"))
 14389  	}
 14390  
 14391  	if invalidParams.Len() > 0 {
 14392  		return invalidParams
 14393  	}
 14394  	return nil
 14395  }
 14396  
 14397  // SetName sets the Name field's value.
 14398  func (s *MetricDimension) SetName(v string) *MetricDimension {
 14399  	s.Name = &v
 14400  	return s
 14401  }
 14402  
 14403  // SetValue sets the Value field's value.
 14404  func (s *MetricDimension) SetValue(v string) *MetricDimension {
 14405  	s.Value = &v
 14406  	return s
 14407  }
 14408  
 14409  // Describes a granularity of a metric.
 14410  type MetricGranularityType struct {
 14411  	_ struct{} `type:"structure"`
 14412  
 14413  	// The granularity. The only valid value is 1Minute.
 14414  	Granularity *string `min:"1" type:"string"`
 14415  }
 14416  
 14417  // String returns the string representation.
 14418  //
 14419  // API parameter values that are decorated as "sensitive" in the API will not
 14420  // be included in the string output. The member name will be present, but the
 14421  // value will be replaced with "sensitive".
 14422  func (s MetricGranularityType) String() string {
 14423  	return awsutil.Prettify(s)
 14424  }
 14425  
 14426  // GoString returns the string representation.
 14427  //
 14428  // API parameter values that are decorated as "sensitive" in the API will not
 14429  // be included in the string output. The member name will be present, but the
 14430  // value will be replaced with "sensitive".
 14431  func (s MetricGranularityType) GoString() string {
 14432  	return s.String()
 14433  }
 14434  
 14435  // SetGranularity sets the Granularity field's value.
 14436  func (s *MetricGranularityType) SetGranularity(v string) *MetricGranularityType {
 14437  	s.Granularity = &v
 14438  	return s
 14439  }
 14440  
 14441  // Describes a mixed instances policy. A mixed instances policy contains the
 14442  // instance types Amazon EC2 Auto Scaling can launch, and other information
 14443  // Amazon EC2 Auto Scaling can use to launch instances to help you optimize
 14444  // your costs. For more information, see Auto Scaling groups with multiple instance
 14445  // types and purchase options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html)
 14446  // in the Amazon EC2 Auto Scaling User Guide.
 14447  type MixedInstancesPolicy struct {
 14448  	_ struct{} `type:"structure"`
 14449  
 14450  	// Specifies the instances distribution. If not provided, the value for each
 14451  	// property in InstancesDistribution uses a default value.
 14452  	InstancesDistribution *InstancesDistribution `type:"structure"`
 14453  
 14454  	// Specifies the launch template to use and the instance types (overrides) that
 14455  	// are used to provision EC2 instances to fulfill On-Demand and Spot capacities.
 14456  	// Required when creating a mixed instances policy.
 14457  	LaunchTemplate *LaunchTemplate `type:"structure"`
 14458  }
 14459  
 14460  // String returns the string representation.
 14461  //
 14462  // API parameter values that are decorated as "sensitive" in the API will not
 14463  // be included in the string output. The member name will be present, but the
 14464  // value will be replaced with "sensitive".
 14465  func (s MixedInstancesPolicy) String() string {
 14466  	return awsutil.Prettify(s)
 14467  }
 14468  
 14469  // GoString returns the string representation.
 14470  //
 14471  // API parameter values that are decorated as "sensitive" in the API will not
 14472  // be included in the string output. The member name will be present, but the
 14473  // value will be replaced with "sensitive".
 14474  func (s MixedInstancesPolicy) GoString() string {
 14475  	return s.String()
 14476  }
 14477  
 14478  // Validate inspects the fields of the type to determine if they are valid.
 14479  func (s *MixedInstancesPolicy) Validate() error {
 14480  	invalidParams := request.ErrInvalidParams{Context: "MixedInstancesPolicy"}
 14481  	if s.LaunchTemplate != nil {
 14482  		if err := s.LaunchTemplate.Validate(); err != nil {
 14483  			invalidParams.AddNested("LaunchTemplate", err.(request.ErrInvalidParams))
 14484  		}
 14485  	}
 14486  
 14487  	if invalidParams.Len() > 0 {
 14488  		return invalidParams
 14489  	}
 14490  	return nil
 14491  }
 14492  
 14493  // SetInstancesDistribution sets the InstancesDistribution field's value.
 14494  func (s *MixedInstancesPolicy) SetInstancesDistribution(v *InstancesDistribution) *MixedInstancesPolicy {
 14495  	s.InstancesDistribution = v
 14496  	return s
 14497  }
 14498  
 14499  // SetLaunchTemplate sets the LaunchTemplate field's value.
 14500  func (s *MixedInstancesPolicy) SetLaunchTemplate(v *LaunchTemplate) *MixedInstancesPolicy {
 14501  	s.LaunchTemplate = v
 14502  	return s
 14503  }
 14504  
 14505  // Describes a notification.
 14506  type NotificationConfiguration struct {
 14507  	_ struct{} `type:"structure"`
 14508  
 14509  	// The name of the Auto Scaling group.
 14510  	AutoScalingGroupName *string `min:"1" type:"string"`
 14511  
 14512  	// One of the following event notification types:
 14513  	//
 14514  	//    * autoscaling:EC2_INSTANCE_LAUNCH
 14515  	//
 14516  	//    * autoscaling:EC2_INSTANCE_LAUNCH_ERROR
 14517  	//
 14518  	//    * autoscaling:EC2_INSTANCE_TERMINATE
 14519  	//
 14520  	//    * autoscaling:EC2_INSTANCE_TERMINATE_ERROR
 14521  	//
 14522  	//    * autoscaling:TEST_NOTIFICATION
 14523  	NotificationType *string `min:"1" type:"string"`
 14524  
 14525  	// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
 14526  	// (Amazon SNS) topic.
 14527  	TopicARN *string `min:"1" type:"string"`
 14528  }
 14529  
 14530  // String returns the string representation.
 14531  //
 14532  // API parameter values that are decorated as "sensitive" in the API will not
 14533  // be included in the string output. The member name will be present, but the
 14534  // value will be replaced with "sensitive".
 14535  func (s NotificationConfiguration) String() string {
 14536  	return awsutil.Prettify(s)
 14537  }
 14538  
 14539  // GoString returns the string representation.
 14540  //
 14541  // API parameter values that are decorated as "sensitive" in the API will not
 14542  // be included in the string output. The member name will be present, but the
 14543  // value will be replaced with "sensitive".
 14544  func (s NotificationConfiguration) GoString() string {
 14545  	return s.String()
 14546  }
 14547  
 14548  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 14549  func (s *NotificationConfiguration) SetAutoScalingGroupName(v string) *NotificationConfiguration {
 14550  	s.AutoScalingGroupName = &v
 14551  	return s
 14552  }
 14553  
 14554  // SetNotificationType sets the NotificationType field's value.
 14555  func (s *NotificationConfiguration) SetNotificationType(v string) *NotificationConfiguration {
 14556  	s.NotificationType = &v
 14557  	return s
 14558  }
 14559  
 14560  // SetTopicARN sets the TopicARN field's value.
 14561  func (s *NotificationConfiguration) SetTopicARN(v string) *NotificationConfiguration {
 14562  	s.TopicARN = &v
 14563  	return s
 14564  }
 14565  
 14566  // Represents a predefined metric for a target tracking scaling policy to use
 14567  // with Amazon EC2 Auto Scaling.
 14568  type PredefinedMetricSpecification struct {
 14569  	_ struct{} `type:"structure"`
 14570  
 14571  	// The metric type. The following predefined metrics are available:
 14572  	//
 14573  	//    * ASGAverageCPUUtilization - Average CPU utilization of the Auto Scaling
 14574  	//    group.
 14575  	//
 14576  	//    * ASGAverageNetworkIn - Average number of bytes received on all network
 14577  	//    interfaces by the Auto Scaling group.
 14578  	//
 14579  	//    * ASGAverageNetworkOut - Average number of bytes sent out on all network
 14580  	//    interfaces by the Auto Scaling group.
 14581  	//
 14582  	//    * ALBRequestCountPerTarget - Number of requests completed per target in
 14583  	//    an Application Load Balancer target group.
 14584  	//
 14585  	// PredefinedMetricType is a required field
 14586  	PredefinedMetricType *string `type:"string" required:"true" enum:"MetricType"`
 14587  
 14588  	// A label that uniquely identifies a specific Application Load Balancer target
 14589  	// group from which to determine the average request count served by your Auto
 14590  	// Scaling group. You can't specify a resource label unless the target group
 14591  	// is attached to the Auto Scaling group.
 14592  	//
 14593  	// You create the resource label by appending the final portion of the load
 14594  	// balancer ARN and the final portion of the target group ARN into a single
 14595  	// value, separated by a forward slash (/). The format of the resource label
 14596  	// is:
 14597  	//
 14598  	// app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.
 14599  	//
 14600  	// Where:
 14601  	//
 14602  	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
 14603  	//    the load balancer ARN
 14604  	//
 14605  	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
 14606  	//    of the target group ARN.
 14607  	//
 14608  	// To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers
 14609  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
 14610  	// API operation. To find the ARN for the target group, use the DescribeTargetGroups
 14611  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)
 14612  	// API operation.
 14613  	ResourceLabel *string `min:"1" type:"string"`
 14614  }
 14615  
 14616  // String returns the string representation.
 14617  //
 14618  // API parameter values that are decorated as "sensitive" in the API will not
 14619  // be included in the string output. The member name will be present, but the
 14620  // value will be replaced with "sensitive".
 14621  func (s PredefinedMetricSpecification) String() string {
 14622  	return awsutil.Prettify(s)
 14623  }
 14624  
 14625  // GoString returns the string representation.
 14626  //
 14627  // API parameter values that are decorated as "sensitive" in the API will not
 14628  // be included in the string output. The member name will be present, but the
 14629  // value will be replaced with "sensitive".
 14630  func (s PredefinedMetricSpecification) GoString() string {
 14631  	return s.String()
 14632  }
 14633  
 14634  // Validate inspects the fields of the type to determine if they are valid.
 14635  func (s *PredefinedMetricSpecification) Validate() error {
 14636  	invalidParams := request.ErrInvalidParams{Context: "PredefinedMetricSpecification"}
 14637  	if s.PredefinedMetricType == nil {
 14638  		invalidParams.Add(request.NewErrParamRequired("PredefinedMetricType"))
 14639  	}
 14640  	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
 14641  		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
 14642  	}
 14643  
 14644  	if invalidParams.Len() > 0 {
 14645  		return invalidParams
 14646  	}
 14647  	return nil
 14648  }
 14649  
 14650  // SetPredefinedMetricType sets the PredefinedMetricType field's value.
 14651  func (s *PredefinedMetricSpecification) SetPredefinedMetricType(v string) *PredefinedMetricSpecification {
 14652  	s.PredefinedMetricType = &v
 14653  	return s
 14654  }
 14655  
 14656  // SetResourceLabel sets the ResourceLabel field's value.
 14657  func (s *PredefinedMetricSpecification) SetResourceLabel(v string) *PredefinedMetricSpecification {
 14658  	s.ResourceLabel = &v
 14659  	return s
 14660  }
 14661  
 14662  // Represents a predictive scaling policy configuration to use with Amazon EC2
 14663  // Auto Scaling.
 14664  type PredictiveScalingConfiguration struct {
 14665  	_ struct{} `type:"structure"`
 14666  
 14667  	// Defines the behavior that should be applied if the forecast capacity approaches
 14668  	// or exceeds the maximum capacity of the Auto Scaling group. Defaults to HonorMaxCapacity
 14669  	// if not specified.
 14670  	//
 14671  	// The following are possible values:
 14672  	//
 14673  	//    * HonorMaxCapacity - Amazon EC2 Auto Scaling cannot scale out capacity
 14674  	//    higher than the maximum capacity. The maximum capacity is enforced as
 14675  	//    a hard limit.
 14676  	//
 14677  	//    * IncreaseMaxCapacity - Amazon EC2 Auto Scaling can scale out capacity
 14678  	//    higher than the maximum capacity when the forecast capacity is close to
 14679  	//    or exceeds the maximum capacity. The upper limit is determined by the
 14680  	//    forecasted capacity and the value for MaxCapacityBuffer.
 14681  	MaxCapacityBreachBehavior *string `type:"string" enum:"PredictiveScalingMaxCapacityBreachBehavior"`
 14682  
 14683  	// The size of the capacity buffer to use when the forecast capacity is close
 14684  	// to or exceeds the maximum capacity. The value is specified as a percentage
 14685  	// relative to the forecast capacity. For example, if the buffer is 10, this
 14686  	// means a 10 percent buffer, such that if the forecast capacity is 50, and
 14687  	// the maximum capacity is 40, then the effective maximum capacity is 55.
 14688  	//
 14689  	// If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum
 14690  	// capacity to equal but not exceed forecast capacity.
 14691  	//
 14692  	// Required if the MaxCapacityBreachBehavior property is set to IncreaseMaxCapacity,
 14693  	// and cannot be used otherwise.
 14694  	MaxCapacityBuffer *int64 `type:"integer"`
 14695  
 14696  	// This structure includes the metrics and target utilization to use for predictive
 14697  	// scaling.
 14698  	//
 14699  	// This is an array, but we currently only support a single metric specification.
 14700  	// That is, you can specify a target value and a single metric pair, or a target
 14701  	// value and one scaling metric and one load metric.
 14702  	//
 14703  	// MetricSpecifications is a required field
 14704  	MetricSpecifications []*PredictiveScalingMetricSpecification `type:"list" required:"true"`
 14705  
 14706  	// The predictive scaling mode. Defaults to ForecastOnly if not specified.
 14707  	Mode *string `type:"string" enum:"PredictiveScalingMode"`
 14708  
 14709  	// The amount of time, in seconds, by which the instance launch time can be
 14710  	// advanced. For example, the forecast says to add capacity at 10:00 AM, and
 14711  	// you choose to pre-launch instances by 5 minutes. In that case, the instances
 14712  	// will be launched at 9:55 AM. The intention is to give resources time to be
 14713  	// provisioned. It can take a few minutes to launch an EC2 instance. The actual
 14714  	// amount of time required depends on several factors, such as the size of the
 14715  	// instance and whether there are startup scripts to complete.
 14716  	//
 14717  	// The value must be less than the forecast interval duration of 3600 seconds
 14718  	// (60 minutes). Defaults to 300 seconds if not specified.
 14719  	SchedulingBufferTime *int64 `type:"integer"`
 14720  }
 14721  
 14722  // String returns the string representation.
 14723  //
 14724  // API parameter values that are decorated as "sensitive" in the API will not
 14725  // be included in the string output. The member name will be present, but the
 14726  // value will be replaced with "sensitive".
 14727  func (s PredictiveScalingConfiguration) String() string {
 14728  	return awsutil.Prettify(s)
 14729  }
 14730  
 14731  // GoString returns the string representation.
 14732  //
 14733  // API parameter values that are decorated as "sensitive" in the API will not
 14734  // be included in the string output. The member name will be present, but the
 14735  // value will be replaced with "sensitive".
 14736  func (s PredictiveScalingConfiguration) GoString() string {
 14737  	return s.String()
 14738  }
 14739  
 14740  // Validate inspects the fields of the type to determine if they are valid.
 14741  func (s *PredictiveScalingConfiguration) Validate() error {
 14742  	invalidParams := request.ErrInvalidParams{Context: "PredictiveScalingConfiguration"}
 14743  	if s.MetricSpecifications == nil {
 14744  		invalidParams.Add(request.NewErrParamRequired("MetricSpecifications"))
 14745  	}
 14746  	if s.MetricSpecifications != nil {
 14747  		for i, v := range s.MetricSpecifications {
 14748  			if v == nil {
 14749  				continue
 14750  			}
 14751  			if err := v.Validate(); err != nil {
 14752  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricSpecifications", i), err.(request.ErrInvalidParams))
 14753  			}
 14754  		}
 14755  	}
 14756  
 14757  	if invalidParams.Len() > 0 {
 14758  		return invalidParams
 14759  	}
 14760  	return nil
 14761  }
 14762  
 14763  // SetMaxCapacityBreachBehavior sets the MaxCapacityBreachBehavior field's value.
 14764  func (s *PredictiveScalingConfiguration) SetMaxCapacityBreachBehavior(v string) *PredictiveScalingConfiguration {
 14765  	s.MaxCapacityBreachBehavior = &v
 14766  	return s
 14767  }
 14768  
 14769  // SetMaxCapacityBuffer sets the MaxCapacityBuffer field's value.
 14770  func (s *PredictiveScalingConfiguration) SetMaxCapacityBuffer(v int64) *PredictiveScalingConfiguration {
 14771  	s.MaxCapacityBuffer = &v
 14772  	return s
 14773  }
 14774  
 14775  // SetMetricSpecifications sets the MetricSpecifications field's value.
 14776  func (s *PredictiveScalingConfiguration) SetMetricSpecifications(v []*PredictiveScalingMetricSpecification) *PredictiveScalingConfiguration {
 14777  	s.MetricSpecifications = v
 14778  	return s
 14779  }
 14780  
 14781  // SetMode sets the Mode field's value.
 14782  func (s *PredictiveScalingConfiguration) SetMode(v string) *PredictiveScalingConfiguration {
 14783  	s.Mode = &v
 14784  	return s
 14785  }
 14786  
 14787  // SetSchedulingBufferTime sets the SchedulingBufferTime field's value.
 14788  func (s *PredictiveScalingConfiguration) SetSchedulingBufferTime(v int64) *PredictiveScalingConfiguration {
 14789  	s.SchedulingBufferTime = &v
 14790  	return s
 14791  }
 14792  
 14793  // This structure specifies the metrics and target utilization settings for
 14794  // a predictive scaling policy.
 14795  //
 14796  // You must specify either a metric pair, or a load metric and a scaling metric
 14797  // individually. Specifying a metric pair instead of individual metrics provides
 14798  // a simpler way to configure metrics for a scaling policy. You choose the metric
 14799  // pair, and the policy automatically knows the correct sum and average statistics
 14800  // to use for the load metric and the scaling metric.
 14801  //
 14802  // Example
 14803  //
 14804  //    * You create a predictive scaling policy and specify ALBRequestCount as
 14805  //    the value for the metric pair and 1000.0 as the target value. For this
 14806  //    type of metric, you must provide the metric dimension for the corresponding
 14807  //    target group, so you also provide a resource label for the Application
 14808  //    Load Balancer target group that is attached to your Auto Scaling group.
 14809  //
 14810  //    * The number of requests the target group receives per minute provides
 14811  //    the load metric, and the request count averaged between the members of
 14812  //    the target group provides the scaling metric. In CloudWatch, this refers
 14813  //    to the RequestCount and RequestCountPerTarget metrics, respectively.
 14814  //
 14815  //    * For optimal use of predictive scaling, you adhere to the best practice
 14816  //    of using a dynamic scaling policy to automatically scale between the minimum
 14817  //    capacity and maximum capacity in response to real-time changes in resource
 14818  //    utilization.
 14819  //
 14820  //    * Amazon EC2 Auto Scaling consumes data points for the load metric over
 14821  //    the last 14 days and creates an hourly load forecast for predictive scaling.
 14822  //    (A minimum of 24 hours of data is required.)
 14823  //
 14824  //    * After creating the load forecast, Amazon EC2 Auto Scaling determines
 14825  //    when to reduce or increase the capacity of your Auto Scaling group in
 14826  //    each hour of the forecast period so that the average number of requests
 14827  //    received by each instance is as close to 1000 requests per minute as possible
 14828  //    at all times.
 14829  type PredictiveScalingMetricSpecification struct {
 14830  	_ struct{} `type:"structure"`
 14831  
 14832  	// The load metric specification.
 14833  	PredefinedLoadMetricSpecification *PredictiveScalingPredefinedLoadMetric `type:"structure"`
 14834  
 14835  	// The metric pair specification from which Amazon EC2 Auto Scaling determines
 14836  	// the appropriate scaling metric and load metric to use.
 14837  	PredefinedMetricPairSpecification *PredictiveScalingPredefinedMetricPair `type:"structure"`
 14838  
 14839  	// The scaling metric specification.
 14840  	PredefinedScalingMetricSpecification *PredictiveScalingPredefinedScalingMetric `type:"structure"`
 14841  
 14842  	// Specifies the target utilization.
 14843  	//
 14844  	// TargetValue is a required field
 14845  	TargetValue *float64 `type:"double" required:"true"`
 14846  }
 14847  
 14848  // String returns the string representation.
 14849  //
 14850  // API parameter values that are decorated as "sensitive" in the API will not
 14851  // be included in the string output. The member name will be present, but the
 14852  // value will be replaced with "sensitive".
 14853  func (s PredictiveScalingMetricSpecification) String() string {
 14854  	return awsutil.Prettify(s)
 14855  }
 14856  
 14857  // GoString returns the string representation.
 14858  //
 14859  // API parameter values that are decorated as "sensitive" in the API will not
 14860  // be included in the string output. The member name will be present, but the
 14861  // value will be replaced with "sensitive".
 14862  func (s PredictiveScalingMetricSpecification) GoString() string {
 14863  	return s.String()
 14864  }
 14865  
 14866  // Validate inspects the fields of the type to determine if they are valid.
 14867  func (s *PredictiveScalingMetricSpecification) Validate() error {
 14868  	invalidParams := request.ErrInvalidParams{Context: "PredictiveScalingMetricSpecification"}
 14869  	if s.TargetValue == nil {
 14870  		invalidParams.Add(request.NewErrParamRequired("TargetValue"))
 14871  	}
 14872  	if s.PredefinedLoadMetricSpecification != nil {
 14873  		if err := s.PredefinedLoadMetricSpecification.Validate(); err != nil {
 14874  			invalidParams.AddNested("PredefinedLoadMetricSpecification", err.(request.ErrInvalidParams))
 14875  		}
 14876  	}
 14877  	if s.PredefinedMetricPairSpecification != nil {
 14878  		if err := s.PredefinedMetricPairSpecification.Validate(); err != nil {
 14879  			invalidParams.AddNested("PredefinedMetricPairSpecification", err.(request.ErrInvalidParams))
 14880  		}
 14881  	}
 14882  	if s.PredefinedScalingMetricSpecification != nil {
 14883  		if err := s.PredefinedScalingMetricSpecification.Validate(); err != nil {
 14884  			invalidParams.AddNested("PredefinedScalingMetricSpecification", err.(request.ErrInvalidParams))
 14885  		}
 14886  	}
 14887  
 14888  	if invalidParams.Len() > 0 {
 14889  		return invalidParams
 14890  	}
 14891  	return nil
 14892  }
 14893  
 14894  // SetPredefinedLoadMetricSpecification sets the PredefinedLoadMetricSpecification field's value.
 14895  func (s *PredictiveScalingMetricSpecification) SetPredefinedLoadMetricSpecification(v *PredictiveScalingPredefinedLoadMetric) *PredictiveScalingMetricSpecification {
 14896  	s.PredefinedLoadMetricSpecification = v
 14897  	return s
 14898  }
 14899  
 14900  // SetPredefinedMetricPairSpecification sets the PredefinedMetricPairSpecification field's value.
 14901  func (s *PredictiveScalingMetricSpecification) SetPredefinedMetricPairSpecification(v *PredictiveScalingPredefinedMetricPair) *PredictiveScalingMetricSpecification {
 14902  	s.PredefinedMetricPairSpecification = v
 14903  	return s
 14904  }
 14905  
 14906  // SetPredefinedScalingMetricSpecification sets the PredefinedScalingMetricSpecification field's value.
 14907  func (s *PredictiveScalingMetricSpecification) SetPredefinedScalingMetricSpecification(v *PredictiveScalingPredefinedScalingMetric) *PredictiveScalingMetricSpecification {
 14908  	s.PredefinedScalingMetricSpecification = v
 14909  	return s
 14910  }
 14911  
 14912  // SetTargetValue sets the TargetValue field's value.
 14913  func (s *PredictiveScalingMetricSpecification) SetTargetValue(v float64) *PredictiveScalingMetricSpecification {
 14914  	s.TargetValue = &v
 14915  	return s
 14916  }
 14917  
 14918  // Describes a load metric for a predictive scaling policy.
 14919  //
 14920  // When returned in the output of DescribePolicies, it indicates that a predictive
 14921  // scaling policy uses individually specified load and scaling metrics instead
 14922  // of a metric pair.
 14923  type PredictiveScalingPredefinedLoadMetric struct {
 14924  	_ struct{} `type:"structure"`
 14925  
 14926  	// The metric type.
 14927  	//
 14928  	// PredefinedMetricType is a required field
 14929  	PredefinedMetricType *string `type:"string" required:"true" enum:"PredefinedLoadMetricType"`
 14930  
 14931  	// A label that uniquely identifies a specific Application Load Balancer target
 14932  	// group from which to determine the request count served by your Auto Scaling
 14933  	// group. You can't specify a resource label unless the target group is attached
 14934  	// to the Auto Scaling group.
 14935  	//
 14936  	// You create the resource label by appending the final portion of the load
 14937  	// balancer ARN and the final portion of the target group ARN into a single
 14938  	// value, separated by a forward slash (/). The format of the resource label
 14939  	// is:
 14940  	//
 14941  	// app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.
 14942  	//
 14943  	// Where:
 14944  	//
 14945  	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
 14946  	//    the load balancer ARN
 14947  	//
 14948  	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
 14949  	//    of the target group ARN.
 14950  	//
 14951  	// To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers
 14952  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
 14953  	// API operation. To find the ARN for the target group, use the DescribeTargetGroups
 14954  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)
 14955  	// API operation.
 14956  	ResourceLabel *string `min:"1" type:"string"`
 14957  }
 14958  
 14959  // String returns the string representation.
 14960  //
 14961  // API parameter values that are decorated as "sensitive" in the API will not
 14962  // be included in the string output. The member name will be present, but the
 14963  // value will be replaced with "sensitive".
 14964  func (s PredictiveScalingPredefinedLoadMetric) String() string {
 14965  	return awsutil.Prettify(s)
 14966  }
 14967  
 14968  // GoString returns the string representation.
 14969  //
 14970  // API parameter values that are decorated as "sensitive" in the API will not
 14971  // be included in the string output. The member name will be present, but the
 14972  // value will be replaced with "sensitive".
 14973  func (s PredictiveScalingPredefinedLoadMetric) GoString() string {
 14974  	return s.String()
 14975  }
 14976  
 14977  // Validate inspects the fields of the type to determine if they are valid.
 14978  func (s *PredictiveScalingPredefinedLoadMetric) Validate() error {
 14979  	invalidParams := request.ErrInvalidParams{Context: "PredictiveScalingPredefinedLoadMetric"}
 14980  	if s.PredefinedMetricType == nil {
 14981  		invalidParams.Add(request.NewErrParamRequired("PredefinedMetricType"))
 14982  	}
 14983  	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
 14984  		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
 14985  	}
 14986  
 14987  	if invalidParams.Len() > 0 {
 14988  		return invalidParams
 14989  	}
 14990  	return nil
 14991  }
 14992  
 14993  // SetPredefinedMetricType sets the PredefinedMetricType field's value.
 14994  func (s *PredictiveScalingPredefinedLoadMetric) SetPredefinedMetricType(v string) *PredictiveScalingPredefinedLoadMetric {
 14995  	s.PredefinedMetricType = &v
 14996  	return s
 14997  }
 14998  
 14999  // SetResourceLabel sets the ResourceLabel field's value.
 15000  func (s *PredictiveScalingPredefinedLoadMetric) SetResourceLabel(v string) *PredictiveScalingPredefinedLoadMetric {
 15001  	s.ResourceLabel = &v
 15002  	return s
 15003  }
 15004  
 15005  // Represents a metric pair for a predictive scaling policy.
 15006  type PredictiveScalingPredefinedMetricPair struct {
 15007  	_ struct{} `type:"structure"`
 15008  
 15009  	// Indicates which metrics to use. There are two different types of metrics
 15010  	// for each metric type: one is a load metric and one is a scaling metric. For
 15011  	// example, if the metric type is ASGCPUUtilization, the Auto Scaling group's
 15012  	// total CPU metric is used as the load metric, and the average CPU metric is
 15013  	// used for the scaling metric.
 15014  	//
 15015  	// PredefinedMetricType is a required field
 15016  	PredefinedMetricType *string `type:"string" required:"true" enum:"PredefinedMetricPairType"`
 15017  
 15018  	// A label that uniquely identifies a specific Application Load Balancer target
 15019  	// group from which to determine the total and average request count served
 15020  	// by your Auto Scaling group. You can't specify a resource label unless the
 15021  	// target group is attached to the Auto Scaling group.
 15022  	//
 15023  	// You create the resource label by appending the final portion of the load
 15024  	// balancer ARN and the final portion of the target group ARN into a single
 15025  	// value, separated by a forward slash (/). The format of the resource label
 15026  	// is:
 15027  	//
 15028  	// app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.
 15029  	//
 15030  	// Where:
 15031  	//
 15032  	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
 15033  	//    the load balancer ARN
 15034  	//
 15035  	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
 15036  	//    of the target group ARN.
 15037  	//
 15038  	// To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers
 15039  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
 15040  	// API operation. To find the ARN for the target group, use the DescribeTargetGroups
 15041  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)
 15042  	// API operation.
 15043  	ResourceLabel *string `min:"1" type:"string"`
 15044  }
 15045  
 15046  // String returns the string representation.
 15047  //
 15048  // API parameter values that are decorated as "sensitive" in the API will not
 15049  // be included in the string output. The member name will be present, but the
 15050  // value will be replaced with "sensitive".
 15051  func (s PredictiveScalingPredefinedMetricPair) String() string {
 15052  	return awsutil.Prettify(s)
 15053  }
 15054  
 15055  // GoString returns the string representation.
 15056  //
 15057  // API parameter values that are decorated as "sensitive" in the API will not
 15058  // be included in the string output. The member name will be present, but the
 15059  // value will be replaced with "sensitive".
 15060  func (s PredictiveScalingPredefinedMetricPair) GoString() string {
 15061  	return s.String()
 15062  }
 15063  
 15064  // Validate inspects the fields of the type to determine if they are valid.
 15065  func (s *PredictiveScalingPredefinedMetricPair) Validate() error {
 15066  	invalidParams := request.ErrInvalidParams{Context: "PredictiveScalingPredefinedMetricPair"}
 15067  	if s.PredefinedMetricType == nil {
 15068  		invalidParams.Add(request.NewErrParamRequired("PredefinedMetricType"))
 15069  	}
 15070  	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
 15071  		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
 15072  	}
 15073  
 15074  	if invalidParams.Len() > 0 {
 15075  		return invalidParams
 15076  	}
 15077  	return nil
 15078  }
 15079  
 15080  // SetPredefinedMetricType sets the PredefinedMetricType field's value.
 15081  func (s *PredictiveScalingPredefinedMetricPair) SetPredefinedMetricType(v string) *PredictiveScalingPredefinedMetricPair {
 15082  	s.PredefinedMetricType = &v
 15083  	return s
 15084  }
 15085  
 15086  // SetResourceLabel sets the ResourceLabel field's value.
 15087  func (s *PredictiveScalingPredefinedMetricPair) SetResourceLabel(v string) *PredictiveScalingPredefinedMetricPair {
 15088  	s.ResourceLabel = &v
 15089  	return s
 15090  }
 15091  
 15092  // Describes a scaling metric for a predictive scaling policy.
 15093  //
 15094  // When returned in the output of DescribePolicies, it indicates that a predictive
 15095  // scaling policy uses individually specified load and scaling metrics instead
 15096  // of a metric pair.
 15097  type PredictiveScalingPredefinedScalingMetric struct {
 15098  	_ struct{} `type:"structure"`
 15099  
 15100  	// The metric type.
 15101  	//
 15102  	// PredefinedMetricType is a required field
 15103  	PredefinedMetricType *string `type:"string" required:"true" enum:"PredefinedScalingMetricType"`
 15104  
 15105  	// A label that uniquely identifies a specific Application Load Balancer target
 15106  	// group from which to determine the average request count served by your Auto
 15107  	// Scaling group. You can't specify a resource label unless the target group
 15108  	// is attached to the Auto Scaling group.
 15109  	//
 15110  	// You create the resource label by appending the final portion of the load
 15111  	// balancer ARN and the final portion of the target group ARN into a single
 15112  	// value, separated by a forward slash (/). The format of the resource label
 15113  	// is:
 15114  	//
 15115  	// app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.
 15116  	//
 15117  	// Where:
 15118  	//
 15119  	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
 15120  	//    the load balancer ARN
 15121  	//
 15122  	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
 15123  	//    of the target group ARN.
 15124  	//
 15125  	// To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers
 15126  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
 15127  	// API operation. To find the ARN for the target group, use the DescribeTargetGroups
 15128  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)
 15129  	// API operation.
 15130  	ResourceLabel *string `min:"1" type:"string"`
 15131  }
 15132  
 15133  // String returns the string representation.
 15134  //
 15135  // API parameter values that are decorated as "sensitive" in the API will not
 15136  // be included in the string output. The member name will be present, but the
 15137  // value will be replaced with "sensitive".
 15138  func (s PredictiveScalingPredefinedScalingMetric) String() string {
 15139  	return awsutil.Prettify(s)
 15140  }
 15141  
 15142  // GoString returns the string representation.
 15143  //
 15144  // API parameter values that are decorated as "sensitive" in the API will not
 15145  // be included in the string output. The member name will be present, but the
 15146  // value will be replaced with "sensitive".
 15147  func (s PredictiveScalingPredefinedScalingMetric) GoString() string {
 15148  	return s.String()
 15149  }
 15150  
 15151  // Validate inspects the fields of the type to determine if they are valid.
 15152  func (s *PredictiveScalingPredefinedScalingMetric) Validate() error {
 15153  	invalidParams := request.ErrInvalidParams{Context: "PredictiveScalingPredefinedScalingMetric"}
 15154  	if s.PredefinedMetricType == nil {
 15155  		invalidParams.Add(request.NewErrParamRequired("PredefinedMetricType"))
 15156  	}
 15157  	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
 15158  		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
 15159  	}
 15160  
 15161  	if invalidParams.Len() > 0 {
 15162  		return invalidParams
 15163  	}
 15164  	return nil
 15165  }
 15166  
 15167  // SetPredefinedMetricType sets the PredefinedMetricType field's value.
 15168  func (s *PredictiveScalingPredefinedScalingMetric) SetPredefinedMetricType(v string) *PredictiveScalingPredefinedScalingMetric {
 15169  	s.PredefinedMetricType = &v
 15170  	return s
 15171  }
 15172  
 15173  // SetResourceLabel sets the ResourceLabel field's value.
 15174  func (s *PredictiveScalingPredefinedScalingMetric) SetResourceLabel(v string) *PredictiveScalingPredefinedScalingMetric {
 15175  	s.ResourceLabel = &v
 15176  	return s
 15177  }
 15178  
 15179  // Describes a process type.
 15180  //
 15181  // For more information, see Scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types)
 15182  // in the Amazon EC2 Auto Scaling User Guide.
 15183  type ProcessType struct {
 15184  	_ struct{} `type:"structure"`
 15185  
 15186  	// One of the following processes:
 15187  	//
 15188  	//    * Launch
 15189  	//
 15190  	//    * Terminate
 15191  	//
 15192  	//    * AddToLoadBalancer
 15193  	//
 15194  	//    * AlarmNotification
 15195  	//
 15196  	//    * AZRebalance
 15197  	//
 15198  	//    * HealthCheck
 15199  	//
 15200  	//    * InstanceRefresh
 15201  	//
 15202  	//    * ReplaceUnhealthy
 15203  	//
 15204  	//    * ScheduledActions
 15205  	//
 15206  	// ProcessName is a required field
 15207  	ProcessName *string `min:"1" type:"string" required:"true"`
 15208  }
 15209  
 15210  // String returns the string representation.
 15211  //
 15212  // API parameter values that are decorated as "sensitive" in the API will not
 15213  // be included in the string output. The member name will be present, but the
 15214  // value will be replaced with "sensitive".
 15215  func (s ProcessType) String() string {
 15216  	return awsutil.Prettify(s)
 15217  }
 15218  
 15219  // GoString returns the string representation.
 15220  //
 15221  // API parameter values that are decorated as "sensitive" in the API will not
 15222  // be included in the string output. The member name will be present, but the
 15223  // value will be replaced with "sensitive".
 15224  func (s ProcessType) GoString() string {
 15225  	return s.String()
 15226  }
 15227  
 15228  // SetProcessName sets the ProcessName field's value.
 15229  func (s *ProcessType) SetProcessName(v string) *ProcessType {
 15230  	s.ProcessName = &v
 15231  	return s
 15232  }
 15233  
 15234  type PutLifecycleHookInput struct {
 15235  	_ struct{} `type:"structure"`
 15236  
 15237  	// The name of the Auto Scaling group.
 15238  	//
 15239  	// AutoScalingGroupName is a required field
 15240  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 15241  
 15242  	// Defines the action the Auto Scaling group should take when the lifecycle
 15243  	// hook timeout elapses or if an unexpected failure occurs. This parameter can
 15244  	// be either CONTINUE or ABANDON. The default value is ABANDON.
 15245  	DefaultResult *string `type:"string"`
 15246  
 15247  	// The maximum time, in seconds, that can elapse before the lifecycle hook times
 15248  	// out. The range is from 30 to 7200 seconds. The default value is 3600 seconds
 15249  	// (1 hour).
 15250  	//
 15251  	// If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action
 15252  	// that you specified in the DefaultResult parameter. You can prevent the lifecycle
 15253  	// hook from timing out by calling the RecordLifecycleActionHeartbeat API.
 15254  	HeartbeatTimeout *int64 `type:"integer"`
 15255  
 15256  	// The name of the lifecycle hook.
 15257  	//
 15258  	// LifecycleHookName is a required field
 15259  	LifecycleHookName *string `min:"1" type:"string" required:"true"`
 15260  
 15261  	// The instance state to which you want to attach the lifecycle hook. The valid
 15262  	// values are:
 15263  	//
 15264  	//    * autoscaling:EC2_INSTANCE_LAUNCHING
 15265  	//
 15266  	//    * autoscaling:EC2_INSTANCE_TERMINATING
 15267  	//
 15268  	// Required for new lifecycle hooks, but optional when updating existing hooks.
 15269  	LifecycleTransition *string `type:"string"`
 15270  
 15271  	// Additional information that you want to include any time Amazon EC2 Auto
 15272  	// Scaling sends a message to the notification target.
 15273  	NotificationMetadata *string `min:"1" type:"string"`
 15274  
 15275  	// The ARN of the notification target that Amazon EC2 Auto Scaling uses to notify
 15276  	// you when an instance is in the transition state for the lifecycle hook. This
 15277  	// target can be either an SQS queue or an SNS topic.
 15278  	//
 15279  	// If you specify an empty string, this overrides the current ARN.
 15280  	//
 15281  	// This operation uses the JSON format when sending notifications to an Amazon
 15282  	// SQS queue, and an email key-value pair format when sending notifications
 15283  	// to an Amazon SNS topic.
 15284  	//
 15285  	// When you specify a notification target, Amazon EC2 Auto Scaling sends it
 15286  	// a test message. Test messages contain the following additional key-value
 15287  	// pair: "Event": "autoscaling:TEST_NOTIFICATION".
 15288  	NotificationTargetARN *string `type:"string"`
 15289  
 15290  	// The ARN of the IAM role that allows the Auto Scaling group to publish to
 15291  	// the specified notification target, for example, an Amazon SNS topic or an
 15292  	// Amazon SQS queue.
 15293  	//
 15294  	// Required for new lifecycle hooks, but optional when updating existing hooks.
 15295  	RoleARN *string `min:"1" type:"string"`
 15296  }
 15297  
 15298  // String returns the string representation.
 15299  //
 15300  // API parameter values that are decorated as "sensitive" in the API will not
 15301  // be included in the string output. The member name will be present, but the
 15302  // value will be replaced with "sensitive".
 15303  func (s PutLifecycleHookInput) String() string {
 15304  	return awsutil.Prettify(s)
 15305  }
 15306  
 15307  // GoString returns the string representation.
 15308  //
 15309  // API parameter values that are decorated as "sensitive" in the API will not
 15310  // be included in the string output. The member name will be present, but the
 15311  // value will be replaced with "sensitive".
 15312  func (s PutLifecycleHookInput) GoString() string {
 15313  	return s.String()
 15314  }
 15315  
 15316  // Validate inspects the fields of the type to determine if they are valid.
 15317  func (s *PutLifecycleHookInput) Validate() error {
 15318  	invalidParams := request.ErrInvalidParams{Context: "PutLifecycleHookInput"}
 15319  	if s.AutoScalingGroupName == nil {
 15320  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 15321  	}
 15322  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 15323  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 15324  	}
 15325  	if s.LifecycleHookName == nil {
 15326  		invalidParams.Add(request.NewErrParamRequired("LifecycleHookName"))
 15327  	}
 15328  	if s.LifecycleHookName != nil && len(*s.LifecycleHookName) < 1 {
 15329  		invalidParams.Add(request.NewErrParamMinLen("LifecycleHookName", 1))
 15330  	}
 15331  	if s.NotificationMetadata != nil && len(*s.NotificationMetadata) < 1 {
 15332  		invalidParams.Add(request.NewErrParamMinLen("NotificationMetadata", 1))
 15333  	}
 15334  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
 15335  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
 15336  	}
 15337  
 15338  	if invalidParams.Len() > 0 {
 15339  		return invalidParams
 15340  	}
 15341  	return nil
 15342  }
 15343  
 15344  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 15345  func (s *PutLifecycleHookInput) SetAutoScalingGroupName(v string) *PutLifecycleHookInput {
 15346  	s.AutoScalingGroupName = &v
 15347  	return s
 15348  }
 15349  
 15350  // SetDefaultResult sets the DefaultResult field's value.
 15351  func (s *PutLifecycleHookInput) SetDefaultResult(v string) *PutLifecycleHookInput {
 15352  	s.DefaultResult = &v
 15353  	return s
 15354  }
 15355  
 15356  // SetHeartbeatTimeout sets the HeartbeatTimeout field's value.
 15357  func (s *PutLifecycleHookInput) SetHeartbeatTimeout(v int64) *PutLifecycleHookInput {
 15358  	s.HeartbeatTimeout = &v
 15359  	return s
 15360  }
 15361  
 15362  // SetLifecycleHookName sets the LifecycleHookName field's value.
 15363  func (s *PutLifecycleHookInput) SetLifecycleHookName(v string) *PutLifecycleHookInput {
 15364  	s.LifecycleHookName = &v
 15365  	return s
 15366  }
 15367  
 15368  // SetLifecycleTransition sets the LifecycleTransition field's value.
 15369  func (s *PutLifecycleHookInput) SetLifecycleTransition(v string) *PutLifecycleHookInput {
 15370  	s.LifecycleTransition = &v
 15371  	return s
 15372  }
 15373  
 15374  // SetNotificationMetadata sets the NotificationMetadata field's value.
 15375  func (s *PutLifecycleHookInput) SetNotificationMetadata(v string) *PutLifecycleHookInput {
 15376  	s.NotificationMetadata = &v
 15377  	return s
 15378  }
 15379  
 15380  // SetNotificationTargetARN sets the NotificationTargetARN field's value.
 15381  func (s *PutLifecycleHookInput) SetNotificationTargetARN(v string) *PutLifecycleHookInput {
 15382  	s.NotificationTargetARN = &v
 15383  	return s
 15384  }
 15385  
 15386  // SetRoleARN sets the RoleARN field's value.
 15387  func (s *PutLifecycleHookInput) SetRoleARN(v string) *PutLifecycleHookInput {
 15388  	s.RoleARN = &v
 15389  	return s
 15390  }
 15391  
 15392  type PutLifecycleHookOutput struct {
 15393  	_ struct{} `type:"structure"`
 15394  }
 15395  
 15396  // String returns the string representation.
 15397  //
 15398  // API parameter values that are decorated as "sensitive" in the API will not
 15399  // be included in the string output. The member name will be present, but the
 15400  // value will be replaced with "sensitive".
 15401  func (s PutLifecycleHookOutput) String() string {
 15402  	return awsutil.Prettify(s)
 15403  }
 15404  
 15405  // GoString returns the string representation.
 15406  //
 15407  // API parameter values that are decorated as "sensitive" in the API will not
 15408  // be included in the string output. The member name will be present, but the
 15409  // value will be replaced with "sensitive".
 15410  func (s PutLifecycleHookOutput) GoString() string {
 15411  	return s.String()
 15412  }
 15413  
 15414  type PutNotificationConfigurationInput struct {
 15415  	_ struct{} `type:"structure"`
 15416  
 15417  	// The name of the Auto Scaling group.
 15418  	//
 15419  	// AutoScalingGroupName is a required field
 15420  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 15421  
 15422  	// The type of event that causes the notification to be sent. To query the notification
 15423  	// types supported by Amazon EC2 Auto Scaling, call the DescribeAutoScalingNotificationTypes
 15424  	// API.
 15425  	//
 15426  	// NotificationTypes is a required field
 15427  	NotificationTypes []*string `type:"list" required:"true"`
 15428  
 15429  	// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
 15430  	// (Amazon SNS) topic.
 15431  	//
 15432  	// TopicARN is a required field
 15433  	TopicARN *string `min:"1" type:"string" required:"true"`
 15434  }
 15435  
 15436  // String returns the string representation.
 15437  //
 15438  // API parameter values that are decorated as "sensitive" in the API will not
 15439  // be included in the string output. The member name will be present, but the
 15440  // value will be replaced with "sensitive".
 15441  func (s PutNotificationConfigurationInput) String() string {
 15442  	return awsutil.Prettify(s)
 15443  }
 15444  
 15445  // GoString returns the string representation.
 15446  //
 15447  // API parameter values that are decorated as "sensitive" in the API will not
 15448  // be included in the string output. The member name will be present, but the
 15449  // value will be replaced with "sensitive".
 15450  func (s PutNotificationConfigurationInput) GoString() string {
 15451  	return s.String()
 15452  }
 15453  
 15454  // Validate inspects the fields of the type to determine if they are valid.
 15455  func (s *PutNotificationConfigurationInput) Validate() error {
 15456  	invalidParams := request.ErrInvalidParams{Context: "PutNotificationConfigurationInput"}
 15457  	if s.AutoScalingGroupName == nil {
 15458  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 15459  	}
 15460  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 15461  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 15462  	}
 15463  	if s.NotificationTypes == nil {
 15464  		invalidParams.Add(request.NewErrParamRequired("NotificationTypes"))
 15465  	}
 15466  	if s.TopicARN == nil {
 15467  		invalidParams.Add(request.NewErrParamRequired("TopicARN"))
 15468  	}
 15469  	if s.TopicARN != nil && len(*s.TopicARN) < 1 {
 15470  		invalidParams.Add(request.NewErrParamMinLen("TopicARN", 1))
 15471  	}
 15472  
 15473  	if invalidParams.Len() > 0 {
 15474  		return invalidParams
 15475  	}
 15476  	return nil
 15477  }
 15478  
 15479  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 15480  func (s *PutNotificationConfigurationInput) SetAutoScalingGroupName(v string) *PutNotificationConfigurationInput {
 15481  	s.AutoScalingGroupName = &v
 15482  	return s
 15483  }
 15484  
 15485  // SetNotificationTypes sets the NotificationTypes field's value.
 15486  func (s *PutNotificationConfigurationInput) SetNotificationTypes(v []*string) *PutNotificationConfigurationInput {
 15487  	s.NotificationTypes = v
 15488  	return s
 15489  }
 15490  
 15491  // SetTopicARN sets the TopicARN field's value.
 15492  func (s *PutNotificationConfigurationInput) SetTopicARN(v string) *PutNotificationConfigurationInput {
 15493  	s.TopicARN = &v
 15494  	return s
 15495  }
 15496  
 15497  type PutNotificationConfigurationOutput struct {
 15498  	_ struct{} `type:"structure"`
 15499  }
 15500  
 15501  // String returns the string representation.
 15502  //
 15503  // API parameter values that are decorated as "sensitive" in the API will not
 15504  // be included in the string output. The member name will be present, but the
 15505  // value will be replaced with "sensitive".
 15506  func (s PutNotificationConfigurationOutput) String() string {
 15507  	return awsutil.Prettify(s)
 15508  }
 15509  
 15510  // GoString returns the string representation.
 15511  //
 15512  // API parameter values that are decorated as "sensitive" in the API will not
 15513  // be included in the string output. The member name will be present, but the
 15514  // value will be replaced with "sensitive".
 15515  func (s PutNotificationConfigurationOutput) GoString() string {
 15516  	return s.String()
 15517  }
 15518  
 15519  type PutScalingPolicyInput struct {
 15520  	_ struct{} `type:"structure"`
 15521  
 15522  	// Specifies how the scaling adjustment is interpreted (for example, an absolute
 15523  	// number or a percentage). The valid values are ChangeInCapacity, ExactCapacity,
 15524  	// and PercentChangeInCapacity.
 15525  	//
 15526  	// Required if the policy type is StepScaling or SimpleScaling. For more information,
 15527  	// see Scaling adjustment types (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment)
 15528  	// in the Amazon EC2 Auto Scaling User Guide.
 15529  	AdjustmentType *string `min:"1" type:"string"`
 15530  
 15531  	// The name of the Auto Scaling group.
 15532  	//
 15533  	// AutoScalingGroupName is a required field
 15534  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 15535  
 15536  	// The duration of the policy's cooldown period, in seconds. When a cooldown
 15537  	// period is specified here, it overrides the default cooldown period defined
 15538  	// for the Auto Scaling group.
 15539  	//
 15540  	// Valid only if the policy type is SimpleScaling. For more information, see
 15541  	// Scaling cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)
 15542  	// in the Amazon EC2 Auto Scaling User Guide.
 15543  	Cooldown *int64 `type:"integer"`
 15544  
 15545  	// Indicates whether the scaling policy is enabled or disabled. The default
 15546  	// is enabled. For more information, see Disabling a scaling policy for an Auto
 15547  	// Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enable-disable-scaling-policy.html)
 15548  	// in the Amazon EC2 Auto Scaling User Guide.
 15549  	Enabled *bool `type:"boolean"`
 15550  
 15551  	// The estimated time, in seconds, until a newly launched instance can contribute
 15552  	// to the CloudWatch metrics. If not provided, the default is to use the value
 15553  	// from the default cooldown period for the Auto Scaling group.
 15554  	//
 15555  	// Valid only if the policy type is TargetTrackingScaling or StepScaling.
 15556  	EstimatedInstanceWarmup *int64 `type:"integer"`
 15557  
 15558  	// The aggregation type for the CloudWatch metrics. The valid values are Minimum,
 15559  	// Maximum, and Average. If the aggregation type is null, the value is treated
 15560  	// as Average.
 15561  	//
 15562  	// Valid only if the policy type is StepScaling.
 15563  	MetricAggregationType *string `min:"1" type:"string"`
 15564  
 15565  	// The minimum value to scale by when the adjustment type is PercentChangeInCapacity.
 15566  	// For example, suppose that you create a step scaling policy to scale out an
 15567  	// Auto Scaling group by 25 percent and you specify a MinAdjustmentMagnitude
 15568  	// of 2. If the group has 4 instances and the scaling policy is performed, 25
 15569  	// percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude
 15570  	// of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.
 15571  	//
 15572  	// Valid only if the policy type is StepScaling or SimpleScaling. For more information,
 15573  	// see Scaling adjustment types (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment)
 15574  	// in the Amazon EC2 Auto Scaling User Guide.
 15575  	//
 15576  	// Some Auto Scaling groups use instance weights. In this case, set the MinAdjustmentMagnitude
 15577  	// to a value that is at least as large as your largest instance weight.
 15578  	MinAdjustmentMagnitude *int64 `type:"integer"`
 15579  
 15580  	// Available for backward compatibility. Use MinAdjustmentMagnitude instead.
 15581  	MinAdjustmentStep *int64 `deprecated:"true" type:"integer"`
 15582  
 15583  	// The name of the policy.
 15584  	//
 15585  	// PolicyName is a required field
 15586  	PolicyName *string `min:"1" type:"string" required:"true"`
 15587  
 15588  	// One of the following policy types:
 15589  	//
 15590  	//    * TargetTrackingScaling
 15591  	//
 15592  	//    * StepScaling
 15593  	//
 15594  	//    * SimpleScaling (default)
 15595  	//
 15596  	//    * PredictiveScaling
 15597  	PolicyType *string `min:"1" type:"string"`
 15598  
 15599  	// A predictive scaling policy. Provides support for only predefined metrics.
 15600  	//
 15601  	// Predictive scaling works with CPU utilization, network in/out, and the Application
 15602  	// Load Balancer request count.
 15603  	//
 15604  	// For more information, see PredictiveScalingConfiguration (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingConfiguration.html)
 15605  	// in the Amazon EC2 Auto Scaling API Reference.
 15606  	//
 15607  	// Required if the policy type is PredictiveScaling.
 15608  	PredictiveScalingConfiguration *PredictiveScalingConfiguration `type:"structure"`
 15609  
 15610  	// The amount by which to scale, based on the specified adjustment type. A positive
 15611  	// value adds to the current capacity while a negative number removes from the
 15612  	// current capacity. For exact capacity, you must specify a positive value.
 15613  	//
 15614  	// Required if the policy type is SimpleScaling. (Not used with any other policy
 15615  	// type.)
 15616  	ScalingAdjustment *int64 `type:"integer"`
 15617  
 15618  	// A set of adjustments that enable you to scale based on the size of the alarm
 15619  	// breach.
 15620  	//
 15621  	// Required if the policy type is StepScaling. (Not used with any other policy
 15622  	// type.)
 15623  	StepAdjustments []*StepAdjustment `type:"list"`
 15624  
 15625  	// A target tracking scaling policy. Provides support for predefined or customized
 15626  	// metrics.
 15627  	//
 15628  	// The following predefined metrics are available:
 15629  	//
 15630  	//    * ASGAverageCPUUtilization
 15631  	//
 15632  	//    * ASGAverageNetworkIn
 15633  	//
 15634  	//    * ASGAverageNetworkOut
 15635  	//
 15636  	//    * ALBRequestCountPerTarget
 15637  	//
 15638  	// If you specify ALBRequestCountPerTarget for the metric, you must specify
 15639  	// the ResourceLabel parameter with the PredefinedMetricSpecification.
 15640  	//
 15641  	// For more information, see TargetTrackingConfiguration (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TargetTrackingConfiguration.html)
 15642  	// in the Amazon EC2 Auto Scaling API Reference.
 15643  	//
 15644  	// Required if the policy type is TargetTrackingScaling.
 15645  	TargetTrackingConfiguration *TargetTrackingConfiguration `type:"structure"`
 15646  }
 15647  
 15648  // String returns the string representation.
 15649  //
 15650  // API parameter values that are decorated as "sensitive" in the API will not
 15651  // be included in the string output. The member name will be present, but the
 15652  // value will be replaced with "sensitive".
 15653  func (s PutScalingPolicyInput) String() string {
 15654  	return awsutil.Prettify(s)
 15655  }
 15656  
 15657  // GoString returns the string representation.
 15658  //
 15659  // API parameter values that are decorated as "sensitive" in the API will not
 15660  // be included in the string output. The member name will be present, but the
 15661  // value will be replaced with "sensitive".
 15662  func (s PutScalingPolicyInput) GoString() string {
 15663  	return s.String()
 15664  }
 15665  
 15666  // Validate inspects the fields of the type to determine if they are valid.
 15667  func (s *PutScalingPolicyInput) Validate() error {
 15668  	invalidParams := request.ErrInvalidParams{Context: "PutScalingPolicyInput"}
 15669  	if s.AdjustmentType != nil && len(*s.AdjustmentType) < 1 {
 15670  		invalidParams.Add(request.NewErrParamMinLen("AdjustmentType", 1))
 15671  	}
 15672  	if s.AutoScalingGroupName == nil {
 15673  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 15674  	}
 15675  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 15676  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 15677  	}
 15678  	if s.MetricAggregationType != nil && len(*s.MetricAggregationType) < 1 {
 15679  		invalidParams.Add(request.NewErrParamMinLen("MetricAggregationType", 1))
 15680  	}
 15681  	if s.PolicyName == nil {
 15682  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
 15683  	}
 15684  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
 15685  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
 15686  	}
 15687  	if s.PolicyType != nil && len(*s.PolicyType) < 1 {
 15688  		invalidParams.Add(request.NewErrParamMinLen("PolicyType", 1))
 15689  	}
 15690  	if s.PredictiveScalingConfiguration != nil {
 15691  		if err := s.PredictiveScalingConfiguration.Validate(); err != nil {
 15692  			invalidParams.AddNested("PredictiveScalingConfiguration", err.(request.ErrInvalidParams))
 15693  		}
 15694  	}
 15695  	if s.StepAdjustments != nil {
 15696  		for i, v := range s.StepAdjustments {
 15697  			if v == nil {
 15698  				continue
 15699  			}
 15700  			if err := v.Validate(); err != nil {
 15701  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StepAdjustments", i), err.(request.ErrInvalidParams))
 15702  			}
 15703  		}
 15704  	}
 15705  	if s.TargetTrackingConfiguration != nil {
 15706  		if err := s.TargetTrackingConfiguration.Validate(); err != nil {
 15707  			invalidParams.AddNested("TargetTrackingConfiguration", err.(request.ErrInvalidParams))
 15708  		}
 15709  	}
 15710  
 15711  	if invalidParams.Len() > 0 {
 15712  		return invalidParams
 15713  	}
 15714  	return nil
 15715  }
 15716  
 15717  // SetAdjustmentType sets the AdjustmentType field's value.
 15718  func (s *PutScalingPolicyInput) SetAdjustmentType(v string) *PutScalingPolicyInput {
 15719  	s.AdjustmentType = &v
 15720  	return s
 15721  }
 15722  
 15723  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 15724  func (s *PutScalingPolicyInput) SetAutoScalingGroupName(v string) *PutScalingPolicyInput {
 15725  	s.AutoScalingGroupName = &v
 15726  	return s
 15727  }
 15728  
 15729  // SetCooldown sets the Cooldown field's value.
 15730  func (s *PutScalingPolicyInput) SetCooldown(v int64) *PutScalingPolicyInput {
 15731  	s.Cooldown = &v
 15732  	return s
 15733  }
 15734  
 15735  // SetEnabled sets the Enabled field's value.
 15736  func (s *PutScalingPolicyInput) SetEnabled(v bool) *PutScalingPolicyInput {
 15737  	s.Enabled = &v
 15738  	return s
 15739  }
 15740  
 15741  // SetEstimatedInstanceWarmup sets the EstimatedInstanceWarmup field's value.
 15742  func (s *PutScalingPolicyInput) SetEstimatedInstanceWarmup(v int64) *PutScalingPolicyInput {
 15743  	s.EstimatedInstanceWarmup = &v
 15744  	return s
 15745  }
 15746  
 15747  // SetMetricAggregationType sets the MetricAggregationType field's value.
 15748  func (s *PutScalingPolicyInput) SetMetricAggregationType(v string) *PutScalingPolicyInput {
 15749  	s.MetricAggregationType = &v
 15750  	return s
 15751  }
 15752  
 15753  // SetMinAdjustmentMagnitude sets the MinAdjustmentMagnitude field's value.
 15754  func (s *PutScalingPolicyInput) SetMinAdjustmentMagnitude(v int64) *PutScalingPolicyInput {
 15755  	s.MinAdjustmentMagnitude = &v
 15756  	return s
 15757  }
 15758  
 15759  // SetMinAdjustmentStep sets the MinAdjustmentStep field's value.
 15760  func (s *PutScalingPolicyInput) SetMinAdjustmentStep(v int64) *PutScalingPolicyInput {
 15761  	s.MinAdjustmentStep = &v
 15762  	return s
 15763  }
 15764  
 15765  // SetPolicyName sets the PolicyName field's value.
 15766  func (s *PutScalingPolicyInput) SetPolicyName(v string) *PutScalingPolicyInput {
 15767  	s.PolicyName = &v
 15768  	return s
 15769  }
 15770  
 15771  // SetPolicyType sets the PolicyType field's value.
 15772  func (s *PutScalingPolicyInput) SetPolicyType(v string) *PutScalingPolicyInput {
 15773  	s.PolicyType = &v
 15774  	return s
 15775  }
 15776  
 15777  // SetPredictiveScalingConfiguration sets the PredictiveScalingConfiguration field's value.
 15778  func (s *PutScalingPolicyInput) SetPredictiveScalingConfiguration(v *PredictiveScalingConfiguration) *PutScalingPolicyInput {
 15779  	s.PredictiveScalingConfiguration = v
 15780  	return s
 15781  }
 15782  
 15783  // SetScalingAdjustment sets the ScalingAdjustment field's value.
 15784  func (s *PutScalingPolicyInput) SetScalingAdjustment(v int64) *PutScalingPolicyInput {
 15785  	s.ScalingAdjustment = &v
 15786  	return s
 15787  }
 15788  
 15789  // SetStepAdjustments sets the StepAdjustments field's value.
 15790  func (s *PutScalingPolicyInput) SetStepAdjustments(v []*StepAdjustment) *PutScalingPolicyInput {
 15791  	s.StepAdjustments = v
 15792  	return s
 15793  }
 15794  
 15795  // SetTargetTrackingConfiguration sets the TargetTrackingConfiguration field's value.
 15796  func (s *PutScalingPolicyInput) SetTargetTrackingConfiguration(v *TargetTrackingConfiguration) *PutScalingPolicyInput {
 15797  	s.TargetTrackingConfiguration = v
 15798  	return s
 15799  }
 15800  
 15801  // Contains the output of PutScalingPolicy.
 15802  type PutScalingPolicyOutput struct {
 15803  	_ struct{} `type:"structure"`
 15804  
 15805  	// The CloudWatch alarms created for the target tracking scaling policy.
 15806  	Alarms []*Alarm `type:"list"`
 15807  
 15808  	// The Amazon Resource Name (ARN) of the policy.
 15809  	PolicyARN *string `min:"1" type:"string"`
 15810  }
 15811  
 15812  // String returns the string representation.
 15813  //
 15814  // API parameter values that are decorated as "sensitive" in the API will not
 15815  // be included in the string output. The member name will be present, but the
 15816  // value will be replaced with "sensitive".
 15817  func (s PutScalingPolicyOutput) String() string {
 15818  	return awsutil.Prettify(s)
 15819  }
 15820  
 15821  // GoString returns the string representation.
 15822  //
 15823  // API parameter values that are decorated as "sensitive" in the API will not
 15824  // be included in the string output. The member name will be present, but the
 15825  // value will be replaced with "sensitive".
 15826  func (s PutScalingPolicyOutput) GoString() string {
 15827  	return s.String()
 15828  }
 15829  
 15830  // SetAlarms sets the Alarms field's value.
 15831  func (s *PutScalingPolicyOutput) SetAlarms(v []*Alarm) *PutScalingPolicyOutput {
 15832  	s.Alarms = v
 15833  	return s
 15834  }
 15835  
 15836  // SetPolicyARN sets the PolicyARN field's value.
 15837  func (s *PutScalingPolicyOutput) SetPolicyARN(v string) *PutScalingPolicyOutput {
 15838  	s.PolicyARN = &v
 15839  	return s
 15840  }
 15841  
 15842  type PutScheduledUpdateGroupActionInput struct {
 15843  	_ struct{} `type:"structure"`
 15844  
 15845  	// The name of the Auto Scaling group.
 15846  	//
 15847  	// AutoScalingGroupName is a required field
 15848  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 15849  
 15850  	// The desired capacity is the initial capacity of the Auto Scaling group after
 15851  	// the scheduled action runs and the capacity it attempts to maintain. It can
 15852  	// scale beyond this capacity if you add more scaling conditions.
 15853  	DesiredCapacity *int64 `type:"integer"`
 15854  
 15855  	// The date and time for the recurring schedule to end, in UTC.
 15856  	EndTime *time.Time `type:"timestamp"`
 15857  
 15858  	// The maximum size of the Auto Scaling group.
 15859  	MaxSize *int64 `type:"integer"`
 15860  
 15861  	// The minimum size of the Auto Scaling group.
 15862  	MinSize *int64 `type:"integer"`
 15863  
 15864  	// The recurring schedule for this action. This format consists of five fields
 15865  	// separated by white spaces: [Minute] [Hour] [Day_of_Month] [Month_of_Year]
 15866  	// [Day_of_Week]. The value must be in quotes (for example, "30 0 1 1,6,12 *").
 15867  	// For more information about this format, see Crontab (http://crontab.org).
 15868  	//
 15869  	// When StartTime and EndTime are specified with Recurrence, they form the boundaries
 15870  	// of when the recurring action starts and stops.
 15871  	//
 15872  	// Cron expressions use Universal Coordinated Time (UTC) by default.
 15873  	Recurrence *string `min:"1" type:"string"`
 15874  
 15875  	// The name of this scaling action.
 15876  	//
 15877  	// ScheduledActionName is a required field
 15878  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
 15879  
 15880  	// The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format
 15881  	// in UTC/GMT only and in quotes (for example, "2019-06-01T00:00:00Z").
 15882  	//
 15883  	// If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs
 15884  	// the action at this time, and then performs the action based on the specified
 15885  	// recurrence.
 15886  	//
 15887  	// If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns
 15888  	// an error message.
 15889  	StartTime *time.Time `type:"timestamp"`
 15890  
 15891  	// This parameter is no longer used.
 15892  	Time *time.Time `type:"timestamp"`
 15893  
 15894  	// Specifies the time zone for a cron expression. If a time zone is not provided,
 15895  	// UTC is used by default.
 15896  	//
 15897  	// Valid values are the canonical names of the IANA time zones, derived from
 15898  	// the IANA Time Zone Database (such as Etc/GMT+9 or Pacific/Tahiti). For more
 15899  	// information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
 15900  	// (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
 15901  	TimeZone *string `min:"1" type:"string"`
 15902  }
 15903  
 15904  // String returns the string representation.
 15905  //
 15906  // API parameter values that are decorated as "sensitive" in the API will not
 15907  // be included in the string output. The member name will be present, but the
 15908  // value will be replaced with "sensitive".
 15909  func (s PutScheduledUpdateGroupActionInput) String() string {
 15910  	return awsutil.Prettify(s)
 15911  }
 15912  
 15913  // GoString returns the string representation.
 15914  //
 15915  // API parameter values that are decorated as "sensitive" in the API will not
 15916  // be included in the string output. The member name will be present, but the
 15917  // value will be replaced with "sensitive".
 15918  func (s PutScheduledUpdateGroupActionInput) GoString() string {
 15919  	return s.String()
 15920  }
 15921  
 15922  // Validate inspects the fields of the type to determine if they are valid.
 15923  func (s *PutScheduledUpdateGroupActionInput) Validate() error {
 15924  	invalidParams := request.ErrInvalidParams{Context: "PutScheduledUpdateGroupActionInput"}
 15925  	if s.AutoScalingGroupName == nil {
 15926  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 15927  	}
 15928  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 15929  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 15930  	}
 15931  	if s.Recurrence != nil && len(*s.Recurrence) < 1 {
 15932  		invalidParams.Add(request.NewErrParamMinLen("Recurrence", 1))
 15933  	}
 15934  	if s.ScheduledActionName == nil {
 15935  		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
 15936  	}
 15937  	if s.ScheduledActionName != nil && len(*s.ScheduledActionName) < 1 {
 15938  		invalidParams.Add(request.NewErrParamMinLen("ScheduledActionName", 1))
 15939  	}
 15940  	if s.TimeZone != nil && len(*s.TimeZone) < 1 {
 15941  		invalidParams.Add(request.NewErrParamMinLen("TimeZone", 1))
 15942  	}
 15943  
 15944  	if invalidParams.Len() > 0 {
 15945  		return invalidParams
 15946  	}
 15947  	return nil
 15948  }
 15949  
 15950  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 15951  func (s *PutScheduledUpdateGroupActionInput) SetAutoScalingGroupName(v string) *PutScheduledUpdateGroupActionInput {
 15952  	s.AutoScalingGroupName = &v
 15953  	return s
 15954  }
 15955  
 15956  // SetDesiredCapacity sets the DesiredCapacity field's value.
 15957  func (s *PutScheduledUpdateGroupActionInput) SetDesiredCapacity(v int64) *PutScheduledUpdateGroupActionInput {
 15958  	s.DesiredCapacity = &v
 15959  	return s
 15960  }
 15961  
 15962  // SetEndTime sets the EndTime field's value.
 15963  func (s *PutScheduledUpdateGroupActionInput) SetEndTime(v time.Time) *PutScheduledUpdateGroupActionInput {
 15964  	s.EndTime = &v
 15965  	return s
 15966  }
 15967  
 15968  // SetMaxSize sets the MaxSize field's value.
 15969  func (s *PutScheduledUpdateGroupActionInput) SetMaxSize(v int64) *PutScheduledUpdateGroupActionInput {
 15970  	s.MaxSize = &v
 15971  	return s
 15972  }
 15973  
 15974  // SetMinSize sets the MinSize field's value.
 15975  func (s *PutScheduledUpdateGroupActionInput) SetMinSize(v int64) *PutScheduledUpdateGroupActionInput {
 15976  	s.MinSize = &v
 15977  	return s
 15978  }
 15979  
 15980  // SetRecurrence sets the Recurrence field's value.
 15981  func (s *PutScheduledUpdateGroupActionInput) SetRecurrence(v string) *PutScheduledUpdateGroupActionInput {
 15982  	s.Recurrence = &v
 15983  	return s
 15984  }
 15985  
 15986  // SetScheduledActionName sets the ScheduledActionName field's value.
 15987  func (s *PutScheduledUpdateGroupActionInput) SetScheduledActionName(v string) *PutScheduledUpdateGroupActionInput {
 15988  	s.ScheduledActionName = &v
 15989  	return s
 15990  }
 15991  
 15992  // SetStartTime sets the StartTime field's value.
 15993  func (s *PutScheduledUpdateGroupActionInput) SetStartTime(v time.Time) *PutScheduledUpdateGroupActionInput {
 15994  	s.StartTime = &v
 15995  	return s
 15996  }
 15997  
 15998  // SetTime sets the Time field's value.
 15999  func (s *PutScheduledUpdateGroupActionInput) SetTime(v time.Time) *PutScheduledUpdateGroupActionInput {
 16000  	s.Time = &v
 16001  	return s
 16002  }
 16003  
 16004  // SetTimeZone sets the TimeZone field's value.
 16005  func (s *PutScheduledUpdateGroupActionInput) SetTimeZone(v string) *PutScheduledUpdateGroupActionInput {
 16006  	s.TimeZone = &v
 16007  	return s
 16008  }
 16009  
 16010  type PutScheduledUpdateGroupActionOutput struct {
 16011  	_ struct{} `type:"structure"`
 16012  }
 16013  
 16014  // String returns the string representation.
 16015  //
 16016  // API parameter values that are decorated as "sensitive" in the API will not
 16017  // be included in the string output. The member name will be present, but the
 16018  // value will be replaced with "sensitive".
 16019  func (s PutScheduledUpdateGroupActionOutput) String() string {
 16020  	return awsutil.Prettify(s)
 16021  }
 16022  
 16023  // GoString returns the string representation.
 16024  //
 16025  // API parameter values that are decorated as "sensitive" in the API will not
 16026  // be included in the string output. The member name will be present, but the
 16027  // value will be replaced with "sensitive".
 16028  func (s PutScheduledUpdateGroupActionOutput) GoString() string {
 16029  	return s.String()
 16030  }
 16031  
 16032  type PutWarmPoolInput struct {
 16033  	_ struct{} `type:"structure"`
 16034  
 16035  	// The name of the Auto Scaling group.
 16036  	//
 16037  	// AutoScalingGroupName is a required field
 16038  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 16039  
 16040  	// Specifies the maximum number of instances that are allowed to be in the warm
 16041  	// pool or in any state except Terminated for the Auto Scaling group. This is
 16042  	// an optional property. Specify it only if you do not want the warm pool size
 16043  	// to be determined by the difference between the group's maximum capacity and
 16044  	// its desired capacity.
 16045  	//
 16046  	// If a value for MaxGroupPreparedCapacity is not specified, Amazon EC2 Auto
 16047  	// Scaling launches and maintains the difference between the group's maximum
 16048  	// capacity and its desired capacity. If you specify a value for MaxGroupPreparedCapacity,
 16049  	// Amazon EC2 Auto Scaling uses the difference between the MaxGroupPreparedCapacity
 16050  	// and the desired capacity instead.
 16051  	//
 16052  	// The size of the warm pool is dynamic. Only when MaxGroupPreparedCapacity
 16053  	// and MinSize are set to the same value does the warm pool have an absolute
 16054  	// size.
 16055  	//
 16056  	// If the desired capacity of the Auto Scaling group is higher than the MaxGroupPreparedCapacity,
 16057  	// the capacity of the warm pool is 0, unless you specify a value for MinSize.
 16058  	// To remove a value that you previously set, include the property but specify
 16059  	// -1 for the value.
 16060  	MaxGroupPreparedCapacity *int64 `type:"integer"`
 16061  
 16062  	// Specifies the minimum number of instances to maintain in the warm pool. This
 16063  	// helps you to ensure that there is always a certain number of warmed instances
 16064  	// available to handle traffic spikes. Defaults to 0 if not specified.
 16065  	MinSize *int64 `type:"integer"`
 16066  
 16067  	// Sets the instance state to transition to after the lifecycle actions are
 16068  	// complete. Default is Stopped.
 16069  	PoolState *string `type:"string" enum:"WarmPoolState"`
 16070  }
 16071  
 16072  // String returns the string representation.
 16073  //
 16074  // API parameter values that are decorated as "sensitive" in the API will not
 16075  // be included in the string output. The member name will be present, but the
 16076  // value will be replaced with "sensitive".
 16077  func (s PutWarmPoolInput) String() string {
 16078  	return awsutil.Prettify(s)
 16079  }
 16080  
 16081  // GoString returns the string representation.
 16082  //
 16083  // API parameter values that are decorated as "sensitive" in the API will not
 16084  // be included in the string output. The member name will be present, but the
 16085  // value will be replaced with "sensitive".
 16086  func (s PutWarmPoolInput) GoString() string {
 16087  	return s.String()
 16088  }
 16089  
 16090  // Validate inspects the fields of the type to determine if they are valid.
 16091  func (s *PutWarmPoolInput) Validate() error {
 16092  	invalidParams := request.ErrInvalidParams{Context: "PutWarmPoolInput"}
 16093  	if s.AutoScalingGroupName == nil {
 16094  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 16095  	}
 16096  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 16097  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 16098  	}
 16099  	if s.MaxGroupPreparedCapacity != nil && *s.MaxGroupPreparedCapacity < -1 {
 16100  		invalidParams.Add(request.NewErrParamMinValue("MaxGroupPreparedCapacity", -1))
 16101  	}
 16102  
 16103  	if invalidParams.Len() > 0 {
 16104  		return invalidParams
 16105  	}
 16106  	return nil
 16107  }
 16108  
 16109  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 16110  func (s *PutWarmPoolInput) SetAutoScalingGroupName(v string) *PutWarmPoolInput {
 16111  	s.AutoScalingGroupName = &v
 16112  	return s
 16113  }
 16114  
 16115  // SetMaxGroupPreparedCapacity sets the MaxGroupPreparedCapacity field's value.
 16116  func (s *PutWarmPoolInput) SetMaxGroupPreparedCapacity(v int64) *PutWarmPoolInput {
 16117  	s.MaxGroupPreparedCapacity = &v
 16118  	return s
 16119  }
 16120  
 16121  // SetMinSize sets the MinSize field's value.
 16122  func (s *PutWarmPoolInput) SetMinSize(v int64) *PutWarmPoolInput {
 16123  	s.MinSize = &v
 16124  	return s
 16125  }
 16126  
 16127  // SetPoolState sets the PoolState field's value.
 16128  func (s *PutWarmPoolInput) SetPoolState(v string) *PutWarmPoolInput {
 16129  	s.PoolState = &v
 16130  	return s
 16131  }
 16132  
 16133  type PutWarmPoolOutput struct {
 16134  	_ struct{} `type:"structure"`
 16135  }
 16136  
 16137  // String returns the string representation.
 16138  //
 16139  // API parameter values that are decorated as "sensitive" in the API will not
 16140  // be included in the string output. The member name will be present, but the
 16141  // value will be replaced with "sensitive".
 16142  func (s PutWarmPoolOutput) String() string {
 16143  	return awsutil.Prettify(s)
 16144  }
 16145  
 16146  // GoString returns the string representation.
 16147  //
 16148  // API parameter values that are decorated as "sensitive" in the API will not
 16149  // be included in the string output. The member name will be present, but the
 16150  // value will be replaced with "sensitive".
 16151  func (s PutWarmPoolOutput) GoString() string {
 16152  	return s.String()
 16153  }
 16154  
 16155  type RecordLifecycleActionHeartbeatInput struct {
 16156  	_ struct{} `type:"structure"`
 16157  
 16158  	// The name of the Auto Scaling group.
 16159  	//
 16160  	// AutoScalingGroupName is a required field
 16161  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 16162  
 16163  	// The ID of the instance.
 16164  	InstanceId *string `min:"1" type:"string"`
 16165  
 16166  	// A token that uniquely identifies a specific lifecycle action associated with
 16167  	// an instance. Amazon EC2 Auto Scaling sends this token to the notification
 16168  	// target that you specified when you created the lifecycle hook.
 16169  	LifecycleActionToken *string `min:"36" type:"string"`
 16170  
 16171  	// The name of the lifecycle hook.
 16172  	//
 16173  	// LifecycleHookName is a required field
 16174  	LifecycleHookName *string `min:"1" type:"string" required:"true"`
 16175  }
 16176  
 16177  // String returns the string representation.
 16178  //
 16179  // API parameter values that are decorated as "sensitive" in the API will not
 16180  // be included in the string output. The member name will be present, but the
 16181  // value will be replaced with "sensitive".
 16182  func (s RecordLifecycleActionHeartbeatInput) String() string {
 16183  	return awsutil.Prettify(s)
 16184  }
 16185  
 16186  // GoString returns the string representation.
 16187  //
 16188  // API parameter values that are decorated as "sensitive" in the API will not
 16189  // be included in the string output. The member name will be present, but the
 16190  // value will be replaced with "sensitive".
 16191  func (s RecordLifecycleActionHeartbeatInput) GoString() string {
 16192  	return s.String()
 16193  }
 16194  
 16195  // Validate inspects the fields of the type to determine if they are valid.
 16196  func (s *RecordLifecycleActionHeartbeatInput) Validate() error {
 16197  	invalidParams := request.ErrInvalidParams{Context: "RecordLifecycleActionHeartbeatInput"}
 16198  	if s.AutoScalingGroupName == nil {
 16199  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 16200  	}
 16201  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 16202  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 16203  	}
 16204  	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
 16205  		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
 16206  	}
 16207  	if s.LifecycleActionToken != nil && len(*s.LifecycleActionToken) < 36 {
 16208  		invalidParams.Add(request.NewErrParamMinLen("LifecycleActionToken", 36))
 16209  	}
 16210  	if s.LifecycleHookName == nil {
 16211  		invalidParams.Add(request.NewErrParamRequired("LifecycleHookName"))
 16212  	}
 16213  	if s.LifecycleHookName != nil && len(*s.LifecycleHookName) < 1 {
 16214  		invalidParams.Add(request.NewErrParamMinLen("LifecycleHookName", 1))
 16215  	}
 16216  
 16217  	if invalidParams.Len() > 0 {
 16218  		return invalidParams
 16219  	}
 16220  	return nil
 16221  }
 16222  
 16223  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 16224  func (s *RecordLifecycleActionHeartbeatInput) SetAutoScalingGroupName(v string) *RecordLifecycleActionHeartbeatInput {
 16225  	s.AutoScalingGroupName = &v
 16226  	return s
 16227  }
 16228  
 16229  // SetInstanceId sets the InstanceId field's value.
 16230  func (s *RecordLifecycleActionHeartbeatInput) SetInstanceId(v string) *RecordLifecycleActionHeartbeatInput {
 16231  	s.InstanceId = &v
 16232  	return s
 16233  }
 16234  
 16235  // SetLifecycleActionToken sets the LifecycleActionToken field's value.
 16236  func (s *RecordLifecycleActionHeartbeatInput) SetLifecycleActionToken(v string) *RecordLifecycleActionHeartbeatInput {
 16237  	s.LifecycleActionToken = &v
 16238  	return s
 16239  }
 16240  
 16241  // SetLifecycleHookName sets the LifecycleHookName field's value.
 16242  func (s *RecordLifecycleActionHeartbeatInput) SetLifecycleHookName(v string) *RecordLifecycleActionHeartbeatInput {
 16243  	s.LifecycleHookName = &v
 16244  	return s
 16245  }
 16246  
 16247  type RecordLifecycleActionHeartbeatOutput struct {
 16248  	_ struct{} `type:"structure"`
 16249  }
 16250  
 16251  // String returns the string representation.
 16252  //
 16253  // API parameter values that are decorated as "sensitive" in the API will not
 16254  // be included in the string output. The member name will be present, but the
 16255  // value will be replaced with "sensitive".
 16256  func (s RecordLifecycleActionHeartbeatOutput) String() string {
 16257  	return awsutil.Prettify(s)
 16258  }
 16259  
 16260  // GoString returns the string representation.
 16261  //
 16262  // API parameter values that are decorated as "sensitive" in the API will not
 16263  // be included in the string output. The member name will be present, but the
 16264  // value will be replaced with "sensitive".
 16265  func (s RecordLifecycleActionHeartbeatOutput) GoString() string {
 16266  	return s.String()
 16267  }
 16268  
 16269  // Describes the preferences for an instance refresh.
 16270  type RefreshPreferences struct {
 16271  	_ struct{} `type:"structure"`
 16272  
 16273  	// The amount of time, in seconds, to wait after a checkpoint before continuing.
 16274  	// This property is optional, but if you specify a value for it, you must also
 16275  	// specify a value for CheckpointPercentages. If you specify a value for CheckpointPercentages
 16276  	// and not for CheckpointDelay, the CheckpointDelay defaults to 3600 (1 hour).
 16277  	CheckpointDelay *int64 `type:"integer"`
 16278  
 16279  	// Threshold values for each checkpoint in ascending order. Each number must
 16280  	// be unique. To replace all instances in the Auto Scaling group, the last number
 16281  	// in the array must be 100.
 16282  	//
 16283  	// For usage examples, see Adding checkpoints to an instance refresh (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-adding-checkpoints-instance-refresh.html)
 16284  	// in the Amazon EC2 Auto Scaling User Guide.
 16285  	CheckpointPercentages []*int64 `type:"list"`
 16286  
 16287  	// The number of seconds until a newly launched instance is configured and ready
 16288  	// to use. During this time, Amazon EC2 Auto Scaling does not immediately move
 16289  	// on to the next replacement. The default is to use the value for the health
 16290  	// check grace period defined for the group.
 16291  	InstanceWarmup *int64 `type:"integer"`
 16292  
 16293  	// The amount of capacity in the Auto Scaling group that must remain healthy
 16294  	// during an instance refresh to allow the operation to continue. The value
 16295  	// is expressed as a percentage of the desired capacity of the Auto Scaling
 16296  	// group (rounded up to the nearest integer). The default is 90.
 16297  	//
 16298  	// Setting the minimum healthy percentage to 100 percent limits the rate of
 16299  	// replacement to one instance at a time. In contrast, setting it to 0 percent
 16300  	// has the effect of replacing all instances at the same time.
 16301  	MinHealthyPercentage *int64 `type:"integer"`
 16302  
 16303  	// A boolean value that indicates whether skip matching is enabled. If true,
 16304  	// then Amazon EC2 Auto Scaling skips replacing instances that match the desired
 16305  	// configuration. If no desired configuration is specified, then it skips replacing
 16306  	// instances that have the same configuration that is already set on the group.
 16307  	// The default is false.
 16308  	SkipMatching *bool `type:"boolean"`
 16309  }
 16310  
 16311  // String returns the string representation.
 16312  //
 16313  // API parameter values that are decorated as "sensitive" in the API will not
 16314  // be included in the string output. The member name will be present, but the
 16315  // value will be replaced with "sensitive".
 16316  func (s RefreshPreferences) String() string {
 16317  	return awsutil.Prettify(s)
 16318  }
 16319  
 16320  // GoString returns the string representation.
 16321  //
 16322  // API parameter values that are decorated as "sensitive" in the API will not
 16323  // be included in the string output. The member name will be present, but the
 16324  // value will be replaced with "sensitive".
 16325  func (s RefreshPreferences) GoString() string {
 16326  	return s.String()
 16327  }
 16328  
 16329  // SetCheckpointDelay sets the CheckpointDelay field's value.
 16330  func (s *RefreshPreferences) SetCheckpointDelay(v int64) *RefreshPreferences {
 16331  	s.CheckpointDelay = &v
 16332  	return s
 16333  }
 16334  
 16335  // SetCheckpointPercentages sets the CheckpointPercentages field's value.
 16336  func (s *RefreshPreferences) SetCheckpointPercentages(v []*int64) *RefreshPreferences {
 16337  	s.CheckpointPercentages = v
 16338  	return s
 16339  }
 16340  
 16341  // SetInstanceWarmup sets the InstanceWarmup field's value.
 16342  func (s *RefreshPreferences) SetInstanceWarmup(v int64) *RefreshPreferences {
 16343  	s.InstanceWarmup = &v
 16344  	return s
 16345  }
 16346  
 16347  // SetMinHealthyPercentage sets the MinHealthyPercentage field's value.
 16348  func (s *RefreshPreferences) SetMinHealthyPercentage(v int64) *RefreshPreferences {
 16349  	s.MinHealthyPercentage = &v
 16350  	return s
 16351  }
 16352  
 16353  // SetSkipMatching sets the SkipMatching field's value.
 16354  func (s *RefreshPreferences) SetSkipMatching(v bool) *RefreshPreferences {
 16355  	s.SkipMatching = &v
 16356  	return s
 16357  }
 16358  
 16359  type ResumeProcessesOutput struct {
 16360  	_ struct{} `type:"structure"`
 16361  }
 16362  
 16363  // String returns the string representation.
 16364  //
 16365  // API parameter values that are decorated as "sensitive" in the API will not
 16366  // be included in the string output. The member name will be present, but the
 16367  // value will be replaced with "sensitive".
 16368  func (s ResumeProcessesOutput) String() string {
 16369  	return awsutil.Prettify(s)
 16370  }
 16371  
 16372  // GoString returns the string representation.
 16373  //
 16374  // API parameter values that are decorated as "sensitive" in the API will not
 16375  // be included in the string output. The member name will be present, but the
 16376  // value will be replaced with "sensitive".
 16377  func (s ResumeProcessesOutput) GoString() string {
 16378  	return s.String()
 16379  }
 16380  
 16381  // Describes a scaling policy.
 16382  type ScalingPolicy struct {
 16383  	_ struct{} `type:"structure"`
 16384  
 16385  	// Specifies how the scaling adjustment is interpreted (for example, an absolute
 16386  	// number or a percentage). The valid values are ChangeInCapacity, ExactCapacity,
 16387  	// and PercentChangeInCapacity.
 16388  	AdjustmentType *string `min:"1" type:"string"`
 16389  
 16390  	// The CloudWatch alarms related to the policy.
 16391  	Alarms []*Alarm `type:"list"`
 16392  
 16393  	// The name of the Auto Scaling group.
 16394  	AutoScalingGroupName *string `min:"1" type:"string"`
 16395  
 16396  	// The duration of the policy's cooldown period, in seconds.
 16397  	Cooldown *int64 `type:"integer"`
 16398  
 16399  	// Indicates whether the policy is enabled (true) or disabled (false).
 16400  	Enabled *bool `type:"boolean"`
 16401  
 16402  	// The estimated time, in seconds, until a newly launched instance can contribute
 16403  	// to the CloudWatch metrics.
 16404  	EstimatedInstanceWarmup *int64 `type:"integer"`
 16405  
 16406  	// The aggregation type for the CloudWatch metrics. The valid values are Minimum,
 16407  	// Maximum, and Average.
 16408  	MetricAggregationType *string `min:"1" type:"string"`
 16409  
 16410  	// The minimum value to scale by when the adjustment type is PercentChangeInCapacity.
 16411  	MinAdjustmentMagnitude *int64 `type:"integer"`
 16412  
 16413  	// Available for backward compatibility. Use MinAdjustmentMagnitude instead.
 16414  	MinAdjustmentStep *int64 `deprecated:"true" type:"integer"`
 16415  
 16416  	// The Amazon Resource Name (ARN) of the policy.
 16417  	PolicyARN *string `min:"1" type:"string"`
 16418  
 16419  	// The name of the scaling policy.
 16420  	PolicyName *string `min:"1" type:"string"`
 16421  
 16422  	// One of the following policy types:
 16423  	//
 16424  	//    * TargetTrackingScaling
 16425  	//
 16426  	//    * StepScaling
 16427  	//
 16428  	//    * SimpleScaling (default)
 16429  	//
 16430  	//    * PredictiveScaling
 16431  	//
 16432  	// For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html)
 16433  	// and Step and simple scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html)
 16434  	// in the Amazon EC2 Auto Scaling User Guide.
 16435  	PolicyType *string `min:"1" type:"string"`
 16436  
 16437  	// A predictive scaling policy.
 16438  	PredictiveScalingConfiguration *PredictiveScalingConfiguration `type:"structure"`
 16439  
 16440  	// The amount by which to scale, based on the specified adjustment type. A positive
 16441  	// value adds to the current capacity while a negative number removes from the
 16442  	// current capacity.
 16443  	ScalingAdjustment *int64 `type:"integer"`
 16444  
 16445  	// A set of adjustments that enable you to scale based on the size of the alarm
 16446  	// breach.
 16447  	StepAdjustments []*StepAdjustment `type:"list"`
 16448  
 16449  	// A target tracking scaling policy.
 16450  	TargetTrackingConfiguration *TargetTrackingConfiguration `type:"structure"`
 16451  }
 16452  
 16453  // String returns the string representation.
 16454  //
 16455  // API parameter values that are decorated as "sensitive" in the API will not
 16456  // be included in the string output. The member name will be present, but the
 16457  // value will be replaced with "sensitive".
 16458  func (s ScalingPolicy) String() string {
 16459  	return awsutil.Prettify(s)
 16460  }
 16461  
 16462  // GoString returns the string representation.
 16463  //
 16464  // API parameter values that are decorated as "sensitive" in the API will not
 16465  // be included in the string output. The member name will be present, but the
 16466  // value will be replaced with "sensitive".
 16467  func (s ScalingPolicy) GoString() string {
 16468  	return s.String()
 16469  }
 16470  
 16471  // SetAdjustmentType sets the AdjustmentType field's value.
 16472  func (s *ScalingPolicy) SetAdjustmentType(v string) *ScalingPolicy {
 16473  	s.AdjustmentType = &v
 16474  	return s
 16475  }
 16476  
 16477  // SetAlarms sets the Alarms field's value.
 16478  func (s *ScalingPolicy) SetAlarms(v []*Alarm) *ScalingPolicy {
 16479  	s.Alarms = v
 16480  	return s
 16481  }
 16482  
 16483  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 16484  func (s *ScalingPolicy) SetAutoScalingGroupName(v string) *ScalingPolicy {
 16485  	s.AutoScalingGroupName = &v
 16486  	return s
 16487  }
 16488  
 16489  // SetCooldown sets the Cooldown field's value.
 16490  func (s *ScalingPolicy) SetCooldown(v int64) *ScalingPolicy {
 16491  	s.Cooldown = &v
 16492  	return s
 16493  }
 16494  
 16495  // SetEnabled sets the Enabled field's value.
 16496  func (s *ScalingPolicy) SetEnabled(v bool) *ScalingPolicy {
 16497  	s.Enabled = &v
 16498  	return s
 16499  }
 16500  
 16501  // SetEstimatedInstanceWarmup sets the EstimatedInstanceWarmup field's value.
 16502  func (s *ScalingPolicy) SetEstimatedInstanceWarmup(v int64) *ScalingPolicy {
 16503  	s.EstimatedInstanceWarmup = &v
 16504  	return s
 16505  }
 16506  
 16507  // SetMetricAggregationType sets the MetricAggregationType field's value.
 16508  func (s *ScalingPolicy) SetMetricAggregationType(v string) *ScalingPolicy {
 16509  	s.MetricAggregationType = &v
 16510  	return s
 16511  }
 16512  
 16513  // SetMinAdjustmentMagnitude sets the MinAdjustmentMagnitude field's value.
 16514  func (s *ScalingPolicy) SetMinAdjustmentMagnitude(v int64) *ScalingPolicy {
 16515  	s.MinAdjustmentMagnitude = &v
 16516  	return s
 16517  }
 16518  
 16519  // SetMinAdjustmentStep sets the MinAdjustmentStep field's value.
 16520  func (s *ScalingPolicy) SetMinAdjustmentStep(v int64) *ScalingPolicy {
 16521  	s.MinAdjustmentStep = &v
 16522  	return s
 16523  }
 16524  
 16525  // SetPolicyARN sets the PolicyARN field's value.
 16526  func (s *ScalingPolicy) SetPolicyARN(v string) *ScalingPolicy {
 16527  	s.PolicyARN = &v
 16528  	return s
 16529  }
 16530  
 16531  // SetPolicyName sets the PolicyName field's value.
 16532  func (s *ScalingPolicy) SetPolicyName(v string) *ScalingPolicy {
 16533  	s.PolicyName = &v
 16534  	return s
 16535  }
 16536  
 16537  // SetPolicyType sets the PolicyType field's value.
 16538  func (s *ScalingPolicy) SetPolicyType(v string) *ScalingPolicy {
 16539  	s.PolicyType = &v
 16540  	return s
 16541  }
 16542  
 16543  // SetPredictiveScalingConfiguration sets the PredictiveScalingConfiguration field's value.
 16544  func (s *ScalingPolicy) SetPredictiveScalingConfiguration(v *PredictiveScalingConfiguration) *ScalingPolicy {
 16545  	s.PredictiveScalingConfiguration = v
 16546  	return s
 16547  }
 16548  
 16549  // SetScalingAdjustment sets the ScalingAdjustment field's value.
 16550  func (s *ScalingPolicy) SetScalingAdjustment(v int64) *ScalingPolicy {
 16551  	s.ScalingAdjustment = &v
 16552  	return s
 16553  }
 16554  
 16555  // SetStepAdjustments sets the StepAdjustments field's value.
 16556  func (s *ScalingPolicy) SetStepAdjustments(v []*StepAdjustment) *ScalingPolicy {
 16557  	s.StepAdjustments = v
 16558  	return s
 16559  }
 16560  
 16561  // SetTargetTrackingConfiguration sets the TargetTrackingConfiguration field's value.
 16562  func (s *ScalingPolicy) SetTargetTrackingConfiguration(v *TargetTrackingConfiguration) *ScalingPolicy {
 16563  	s.TargetTrackingConfiguration = v
 16564  	return s
 16565  }
 16566  
 16567  type ScalingProcessQuery struct {
 16568  	_ struct{} `type:"structure"`
 16569  
 16570  	// The name of the Auto Scaling group.
 16571  	//
 16572  	// AutoScalingGroupName is a required field
 16573  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 16574  
 16575  	// One or more of the following processes:
 16576  	//
 16577  	//    * Launch
 16578  	//
 16579  	//    * Terminate
 16580  	//
 16581  	//    * AddToLoadBalancer
 16582  	//
 16583  	//    * AlarmNotification
 16584  	//
 16585  	//    * AZRebalance
 16586  	//
 16587  	//    * HealthCheck
 16588  	//
 16589  	//    * InstanceRefresh
 16590  	//
 16591  	//    * ReplaceUnhealthy
 16592  	//
 16593  	//    * ScheduledActions
 16594  	//
 16595  	// If you omit this parameter, all processes are specified.
 16596  	ScalingProcesses []*string `type:"list"`
 16597  }
 16598  
 16599  // String returns the string representation.
 16600  //
 16601  // API parameter values that are decorated as "sensitive" in the API will not
 16602  // be included in the string output. The member name will be present, but the
 16603  // value will be replaced with "sensitive".
 16604  func (s ScalingProcessQuery) String() string {
 16605  	return awsutil.Prettify(s)
 16606  }
 16607  
 16608  // GoString returns the string representation.
 16609  //
 16610  // API parameter values that are decorated as "sensitive" in the API will not
 16611  // be included in the string output. The member name will be present, but the
 16612  // value will be replaced with "sensitive".
 16613  func (s ScalingProcessQuery) GoString() string {
 16614  	return s.String()
 16615  }
 16616  
 16617  // Validate inspects the fields of the type to determine if they are valid.
 16618  func (s *ScalingProcessQuery) Validate() error {
 16619  	invalidParams := request.ErrInvalidParams{Context: "ScalingProcessQuery"}
 16620  	if s.AutoScalingGroupName == nil {
 16621  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 16622  	}
 16623  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 16624  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 16625  	}
 16626  
 16627  	if invalidParams.Len() > 0 {
 16628  		return invalidParams
 16629  	}
 16630  	return nil
 16631  }
 16632  
 16633  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 16634  func (s *ScalingProcessQuery) SetAutoScalingGroupName(v string) *ScalingProcessQuery {
 16635  	s.AutoScalingGroupName = &v
 16636  	return s
 16637  }
 16638  
 16639  // SetScalingProcesses sets the ScalingProcesses field's value.
 16640  func (s *ScalingProcessQuery) SetScalingProcesses(v []*string) *ScalingProcessQuery {
 16641  	s.ScalingProcesses = v
 16642  	return s
 16643  }
 16644  
 16645  // Describes a scheduled scaling action.
 16646  type ScheduledUpdateGroupAction struct {
 16647  	_ struct{} `type:"structure"`
 16648  
 16649  	// The name of the Auto Scaling group.
 16650  	AutoScalingGroupName *string `min:"1" type:"string"`
 16651  
 16652  	// The desired capacity is the initial capacity of the Auto Scaling group after
 16653  	// the scheduled action runs and the capacity it attempts to maintain.
 16654  	DesiredCapacity *int64 `type:"integer"`
 16655  
 16656  	// The date and time in UTC for the recurring schedule to end. For example,
 16657  	// "2019-06-01T00:00:00Z".
 16658  	EndTime *time.Time `type:"timestamp"`
 16659  
 16660  	// The maximum size of the Auto Scaling group.
 16661  	MaxSize *int64 `type:"integer"`
 16662  
 16663  	// The minimum size of the Auto Scaling group.
 16664  	MinSize *int64 `type:"integer"`
 16665  
 16666  	// The recurring schedule for the action, in Unix cron syntax format.
 16667  	//
 16668  	// When StartTime and EndTime are specified with Recurrence, they form the boundaries
 16669  	// of when the recurring action starts and stops.
 16670  	Recurrence *string `min:"1" type:"string"`
 16671  
 16672  	// The Amazon Resource Name (ARN) of the scheduled action.
 16673  	ScheduledActionARN *string `min:"1" type:"string"`
 16674  
 16675  	// The name of the scheduled action.
 16676  	ScheduledActionName *string `min:"1" type:"string"`
 16677  
 16678  	// The date and time in UTC for this action to start. For example, "2019-06-01T00:00:00Z".
 16679  	StartTime *time.Time `type:"timestamp"`
 16680  
 16681  	// This parameter is no longer used.
 16682  	Time *time.Time `type:"timestamp"`
 16683  
 16684  	// The time zone for the cron expression.
 16685  	TimeZone *string `min:"1" type:"string"`
 16686  }
 16687  
 16688  // String returns the string representation.
 16689  //
 16690  // API parameter values that are decorated as "sensitive" in the API will not
 16691  // be included in the string output. The member name will be present, but the
 16692  // value will be replaced with "sensitive".
 16693  func (s ScheduledUpdateGroupAction) String() string {
 16694  	return awsutil.Prettify(s)
 16695  }
 16696  
 16697  // GoString returns the string representation.
 16698  //
 16699  // API parameter values that are decorated as "sensitive" in the API will not
 16700  // be included in the string output. The member name will be present, but the
 16701  // value will be replaced with "sensitive".
 16702  func (s ScheduledUpdateGroupAction) GoString() string {
 16703  	return s.String()
 16704  }
 16705  
 16706  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 16707  func (s *ScheduledUpdateGroupAction) SetAutoScalingGroupName(v string) *ScheduledUpdateGroupAction {
 16708  	s.AutoScalingGroupName = &v
 16709  	return s
 16710  }
 16711  
 16712  // SetDesiredCapacity sets the DesiredCapacity field's value.
 16713  func (s *ScheduledUpdateGroupAction) SetDesiredCapacity(v int64) *ScheduledUpdateGroupAction {
 16714  	s.DesiredCapacity = &v
 16715  	return s
 16716  }
 16717  
 16718  // SetEndTime sets the EndTime field's value.
 16719  func (s *ScheduledUpdateGroupAction) SetEndTime(v time.Time) *ScheduledUpdateGroupAction {
 16720  	s.EndTime = &v
 16721  	return s
 16722  }
 16723  
 16724  // SetMaxSize sets the MaxSize field's value.
 16725  func (s *ScheduledUpdateGroupAction) SetMaxSize(v int64) *ScheduledUpdateGroupAction {
 16726  	s.MaxSize = &v
 16727  	return s
 16728  }
 16729  
 16730  // SetMinSize sets the MinSize field's value.
 16731  func (s *ScheduledUpdateGroupAction) SetMinSize(v int64) *ScheduledUpdateGroupAction {
 16732  	s.MinSize = &v
 16733  	return s
 16734  }
 16735  
 16736  // SetRecurrence sets the Recurrence field's value.
 16737  func (s *ScheduledUpdateGroupAction) SetRecurrence(v string) *ScheduledUpdateGroupAction {
 16738  	s.Recurrence = &v
 16739  	return s
 16740  }
 16741  
 16742  // SetScheduledActionARN sets the ScheduledActionARN field's value.
 16743  func (s *ScheduledUpdateGroupAction) SetScheduledActionARN(v string) *ScheduledUpdateGroupAction {
 16744  	s.ScheduledActionARN = &v
 16745  	return s
 16746  }
 16747  
 16748  // SetScheduledActionName sets the ScheduledActionName field's value.
 16749  func (s *ScheduledUpdateGroupAction) SetScheduledActionName(v string) *ScheduledUpdateGroupAction {
 16750  	s.ScheduledActionName = &v
 16751  	return s
 16752  }
 16753  
 16754  // SetStartTime sets the StartTime field's value.
 16755  func (s *ScheduledUpdateGroupAction) SetStartTime(v time.Time) *ScheduledUpdateGroupAction {
 16756  	s.StartTime = &v
 16757  	return s
 16758  }
 16759  
 16760  // SetTime sets the Time field's value.
 16761  func (s *ScheduledUpdateGroupAction) SetTime(v time.Time) *ScheduledUpdateGroupAction {
 16762  	s.Time = &v
 16763  	return s
 16764  }
 16765  
 16766  // SetTimeZone sets the TimeZone field's value.
 16767  func (s *ScheduledUpdateGroupAction) SetTimeZone(v string) *ScheduledUpdateGroupAction {
 16768  	s.TimeZone = &v
 16769  	return s
 16770  }
 16771  
 16772  // Describes information used for one or more scheduled scaling action updates
 16773  // in a BatchPutScheduledUpdateGroupAction operation.
 16774  type ScheduledUpdateGroupActionRequest struct {
 16775  	_ struct{} `type:"structure"`
 16776  
 16777  	// The desired capacity is the initial capacity of the Auto Scaling group after
 16778  	// the scheduled action runs and the capacity it attempts to maintain.
 16779  	DesiredCapacity *int64 `type:"integer"`
 16780  
 16781  	// The date and time for the recurring schedule to end, in UTC.
 16782  	EndTime *time.Time `type:"timestamp"`
 16783  
 16784  	// The maximum size of the Auto Scaling group.
 16785  	MaxSize *int64 `type:"integer"`
 16786  
 16787  	// The minimum size of the Auto Scaling group.
 16788  	MinSize *int64 `type:"integer"`
 16789  
 16790  	// The recurring schedule for the action, in Unix cron syntax format. This format
 16791  	// consists of five fields separated by white spaces: [Minute] [Hour] [Day_of_Month]
 16792  	// [Month_of_Year] [Day_of_Week]. The value must be in quotes (for example,
 16793  	// "30 0 1 1,6,12 *"). For more information about this format, see Crontab (http://crontab.org).
 16794  	//
 16795  	// When StartTime and EndTime are specified with Recurrence, they form the boundaries
 16796  	// of when the recurring action starts and stops.
 16797  	//
 16798  	// Cron expressions use Universal Coordinated Time (UTC) by default.
 16799  	Recurrence *string `min:"1" type:"string"`
 16800  
 16801  	// The name of the scaling action.
 16802  	//
 16803  	// ScheduledActionName is a required field
 16804  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
 16805  
 16806  	// The date and time for the action to start, in YYYY-MM-DDThh:mm:ssZ format
 16807  	// in UTC/GMT only and in quotes (for example, "2019-06-01T00:00:00Z").
 16808  	//
 16809  	// If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs
 16810  	// the action at this time, and then performs the action based on the specified
 16811  	// recurrence.
 16812  	//
 16813  	// If you try to schedule the action in the past, Amazon EC2 Auto Scaling returns
 16814  	// an error message.
 16815  	StartTime *time.Time `type:"timestamp"`
 16816  
 16817  	// Specifies the time zone for a cron expression. If a time zone is not provided,
 16818  	// UTC is used by default.
 16819  	//
 16820  	// Valid values are the canonical names of the IANA time zones, derived from
 16821  	// the IANA Time Zone Database (such as Etc/GMT+9 or Pacific/Tahiti). For more
 16822  	// information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
 16823  	// (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
 16824  	TimeZone *string `min:"1" type:"string"`
 16825  }
 16826  
 16827  // String returns the string representation.
 16828  //
 16829  // API parameter values that are decorated as "sensitive" in the API will not
 16830  // be included in the string output. The member name will be present, but the
 16831  // value will be replaced with "sensitive".
 16832  func (s ScheduledUpdateGroupActionRequest) String() string {
 16833  	return awsutil.Prettify(s)
 16834  }
 16835  
 16836  // GoString returns the string representation.
 16837  //
 16838  // API parameter values that are decorated as "sensitive" in the API will not
 16839  // be included in the string output. The member name will be present, but the
 16840  // value will be replaced with "sensitive".
 16841  func (s ScheduledUpdateGroupActionRequest) GoString() string {
 16842  	return s.String()
 16843  }
 16844  
 16845  // Validate inspects the fields of the type to determine if they are valid.
 16846  func (s *ScheduledUpdateGroupActionRequest) Validate() error {
 16847  	invalidParams := request.ErrInvalidParams{Context: "ScheduledUpdateGroupActionRequest"}
 16848  	if s.Recurrence != nil && len(*s.Recurrence) < 1 {
 16849  		invalidParams.Add(request.NewErrParamMinLen("Recurrence", 1))
 16850  	}
 16851  	if s.ScheduledActionName == nil {
 16852  		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
 16853  	}
 16854  	if s.ScheduledActionName != nil && len(*s.ScheduledActionName) < 1 {
 16855  		invalidParams.Add(request.NewErrParamMinLen("ScheduledActionName", 1))
 16856  	}
 16857  	if s.TimeZone != nil && len(*s.TimeZone) < 1 {
 16858  		invalidParams.Add(request.NewErrParamMinLen("TimeZone", 1))
 16859  	}
 16860  
 16861  	if invalidParams.Len() > 0 {
 16862  		return invalidParams
 16863  	}
 16864  	return nil
 16865  }
 16866  
 16867  // SetDesiredCapacity sets the DesiredCapacity field's value.
 16868  func (s *ScheduledUpdateGroupActionRequest) SetDesiredCapacity(v int64) *ScheduledUpdateGroupActionRequest {
 16869  	s.DesiredCapacity = &v
 16870  	return s
 16871  }
 16872  
 16873  // SetEndTime sets the EndTime field's value.
 16874  func (s *ScheduledUpdateGroupActionRequest) SetEndTime(v time.Time) *ScheduledUpdateGroupActionRequest {
 16875  	s.EndTime = &v
 16876  	return s
 16877  }
 16878  
 16879  // SetMaxSize sets the MaxSize field's value.
 16880  func (s *ScheduledUpdateGroupActionRequest) SetMaxSize(v int64) *ScheduledUpdateGroupActionRequest {
 16881  	s.MaxSize = &v
 16882  	return s
 16883  }
 16884  
 16885  // SetMinSize sets the MinSize field's value.
 16886  func (s *ScheduledUpdateGroupActionRequest) SetMinSize(v int64) *ScheduledUpdateGroupActionRequest {
 16887  	s.MinSize = &v
 16888  	return s
 16889  }
 16890  
 16891  // SetRecurrence sets the Recurrence field's value.
 16892  func (s *ScheduledUpdateGroupActionRequest) SetRecurrence(v string) *ScheduledUpdateGroupActionRequest {
 16893  	s.Recurrence = &v
 16894  	return s
 16895  }
 16896  
 16897  // SetScheduledActionName sets the ScheduledActionName field's value.
 16898  func (s *ScheduledUpdateGroupActionRequest) SetScheduledActionName(v string) *ScheduledUpdateGroupActionRequest {
 16899  	s.ScheduledActionName = &v
 16900  	return s
 16901  }
 16902  
 16903  // SetStartTime sets the StartTime field's value.
 16904  func (s *ScheduledUpdateGroupActionRequest) SetStartTime(v time.Time) *ScheduledUpdateGroupActionRequest {
 16905  	s.StartTime = &v
 16906  	return s
 16907  }
 16908  
 16909  // SetTimeZone sets the TimeZone field's value.
 16910  func (s *ScheduledUpdateGroupActionRequest) SetTimeZone(v string) *ScheduledUpdateGroupActionRequest {
 16911  	s.TimeZone = &v
 16912  	return s
 16913  }
 16914  
 16915  type SetDesiredCapacityInput struct {
 16916  	_ struct{} `type:"structure"`
 16917  
 16918  	// The name of the Auto Scaling group.
 16919  	//
 16920  	// AutoScalingGroupName is a required field
 16921  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 16922  
 16923  	// The desired capacity is the initial capacity of the Auto Scaling group after
 16924  	// this operation completes and the capacity it attempts to maintain.
 16925  	//
 16926  	// DesiredCapacity is a required field
 16927  	DesiredCapacity *int64 `type:"integer" required:"true"`
 16928  
 16929  	// Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to
 16930  	// complete before initiating a scaling activity to set your Auto Scaling group
 16931  	// to its new capacity. By default, Amazon EC2 Auto Scaling does not honor the
 16932  	// cooldown period during manual scaling activities.
 16933  	HonorCooldown *bool `type:"boolean"`
 16934  }
 16935  
 16936  // String returns the string representation.
 16937  //
 16938  // API parameter values that are decorated as "sensitive" in the API will not
 16939  // be included in the string output. The member name will be present, but the
 16940  // value will be replaced with "sensitive".
 16941  func (s SetDesiredCapacityInput) String() string {
 16942  	return awsutil.Prettify(s)
 16943  }
 16944  
 16945  // GoString returns the string representation.
 16946  //
 16947  // API parameter values that are decorated as "sensitive" in the API will not
 16948  // be included in the string output. The member name will be present, but the
 16949  // value will be replaced with "sensitive".
 16950  func (s SetDesiredCapacityInput) GoString() string {
 16951  	return s.String()
 16952  }
 16953  
 16954  // Validate inspects the fields of the type to determine if they are valid.
 16955  func (s *SetDesiredCapacityInput) Validate() error {
 16956  	invalidParams := request.ErrInvalidParams{Context: "SetDesiredCapacityInput"}
 16957  	if s.AutoScalingGroupName == nil {
 16958  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 16959  	}
 16960  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 16961  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 16962  	}
 16963  	if s.DesiredCapacity == nil {
 16964  		invalidParams.Add(request.NewErrParamRequired("DesiredCapacity"))
 16965  	}
 16966  
 16967  	if invalidParams.Len() > 0 {
 16968  		return invalidParams
 16969  	}
 16970  	return nil
 16971  }
 16972  
 16973  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 16974  func (s *SetDesiredCapacityInput) SetAutoScalingGroupName(v string) *SetDesiredCapacityInput {
 16975  	s.AutoScalingGroupName = &v
 16976  	return s
 16977  }
 16978  
 16979  // SetDesiredCapacity sets the DesiredCapacity field's value.
 16980  func (s *SetDesiredCapacityInput) SetDesiredCapacity(v int64) *SetDesiredCapacityInput {
 16981  	s.DesiredCapacity = &v
 16982  	return s
 16983  }
 16984  
 16985  // SetHonorCooldown sets the HonorCooldown field's value.
 16986  func (s *SetDesiredCapacityInput) SetHonorCooldown(v bool) *SetDesiredCapacityInput {
 16987  	s.HonorCooldown = &v
 16988  	return s
 16989  }
 16990  
 16991  type SetDesiredCapacityOutput struct {
 16992  	_ struct{} `type:"structure"`
 16993  }
 16994  
 16995  // String returns the string representation.
 16996  //
 16997  // API parameter values that are decorated as "sensitive" in the API will not
 16998  // be included in the string output. The member name will be present, but the
 16999  // value will be replaced with "sensitive".
 17000  func (s SetDesiredCapacityOutput) String() string {
 17001  	return awsutil.Prettify(s)
 17002  }
 17003  
 17004  // GoString returns the string representation.
 17005  //
 17006  // API parameter values that are decorated as "sensitive" in the API will not
 17007  // be included in the string output. The member name will be present, but the
 17008  // value will be replaced with "sensitive".
 17009  func (s SetDesiredCapacityOutput) GoString() string {
 17010  	return s.String()
 17011  }
 17012  
 17013  type SetInstanceHealthInput struct {
 17014  	_ struct{} `type:"structure"`
 17015  
 17016  	// The health status of the instance. Set to Healthy to have the instance remain
 17017  	// in service. Set to Unhealthy to have the instance be out of service. Amazon
 17018  	// EC2 Auto Scaling terminates and replaces the unhealthy instance.
 17019  	//
 17020  	// HealthStatus is a required field
 17021  	HealthStatus *string `min:"1" type:"string" required:"true"`
 17022  
 17023  	// The ID of the instance.
 17024  	//
 17025  	// InstanceId is a required field
 17026  	InstanceId *string `min:"1" type:"string" required:"true"`
 17027  
 17028  	// If the Auto Scaling group of the specified instance has a HealthCheckGracePeriod
 17029  	// specified for the group, by default, this call respects the grace period.
 17030  	// Set this to False, to have the call not respect the grace period associated
 17031  	// with the group.
 17032  	//
 17033  	// For more information about the health check grace period, see CreateAutoScalingGroup
 17034  	// (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html)
 17035  	// in the Amazon EC2 Auto Scaling API Reference.
 17036  	ShouldRespectGracePeriod *bool `type:"boolean"`
 17037  }
 17038  
 17039  // String returns the string representation.
 17040  //
 17041  // API parameter values that are decorated as "sensitive" in the API will not
 17042  // be included in the string output. The member name will be present, but the
 17043  // value will be replaced with "sensitive".
 17044  func (s SetInstanceHealthInput) String() string {
 17045  	return awsutil.Prettify(s)
 17046  }
 17047  
 17048  // GoString returns the string representation.
 17049  //
 17050  // API parameter values that are decorated as "sensitive" in the API will not
 17051  // be included in the string output. The member name will be present, but the
 17052  // value will be replaced with "sensitive".
 17053  func (s SetInstanceHealthInput) GoString() string {
 17054  	return s.String()
 17055  }
 17056  
 17057  // Validate inspects the fields of the type to determine if they are valid.
 17058  func (s *SetInstanceHealthInput) Validate() error {
 17059  	invalidParams := request.ErrInvalidParams{Context: "SetInstanceHealthInput"}
 17060  	if s.HealthStatus == nil {
 17061  		invalidParams.Add(request.NewErrParamRequired("HealthStatus"))
 17062  	}
 17063  	if s.HealthStatus != nil && len(*s.HealthStatus) < 1 {
 17064  		invalidParams.Add(request.NewErrParamMinLen("HealthStatus", 1))
 17065  	}
 17066  	if s.InstanceId == nil {
 17067  		invalidParams.Add(request.NewErrParamRequired("InstanceId"))
 17068  	}
 17069  	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
 17070  		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
 17071  	}
 17072  
 17073  	if invalidParams.Len() > 0 {
 17074  		return invalidParams
 17075  	}
 17076  	return nil
 17077  }
 17078  
 17079  // SetHealthStatus sets the HealthStatus field's value.
 17080  func (s *SetInstanceHealthInput) SetHealthStatus(v string) *SetInstanceHealthInput {
 17081  	s.HealthStatus = &v
 17082  	return s
 17083  }
 17084  
 17085  // SetInstanceId sets the InstanceId field's value.
 17086  func (s *SetInstanceHealthInput) SetInstanceId(v string) *SetInstanceHealthInput {
 17087  	s.InstanceId = &v
 17088  	return s
 17089  }
 17090  
 17091  // SetShouldRespectGracePeriod sets the ShouldRespectGracePeriod field's value.
 17092  func (s *SetInstanceHealthInput) SetShouldRespectGracePeriod(v bool) *SetInstanceHealthInput {
 17093  	s.ShouldRespectGracePeriod = &v
 17094  	return s
 17095  }
 17096  
 17097  type SetInstanceHealthOutput struct {
 17098  	_ struct{} `type:"structure"`
 17099  }
 17100  
 17101  // String returns the string representation.
 17102  //
 17103  // API parameter values that are decorated as "sensitive" in the API will not
 17104  // be included in the string output. The member name will be present, but the
 17105  // value will be replaced with "sensitive".
 17106  func (s SetInstanceHealthOutput) String() string {
 17107  	return awsutil.Prettify(s)
 17108  }
 17109  
 17110  // GoString returns the string representation.
 17111  //
 17112  // API parameter values that are decorated as "sensitive" in the API will not
 17113  // be included in the string output. The member name will be present, but the
 17114  // value will be replaced with "sensitive".
 17115  func (s SetInstanceHealthOutput) GoString() string {
 17116  	return s.String()
 17117  }
 17118  
 17119  type SetInstanceProtectionInput struct {
 17120  	_ struct{} `type:"structure"`
 17121  
 17122  	// The name of the Auto Scaling group.
 17123  	//
 17124  	// AutoScalingGroupName is a required field
 17125  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 17126  
 17127  	// One or more instance IDs. You can specify up to 50 instances.
 17128  	//
 17129  	// InstanceIds is a required field
 17130  	InstanceIds []*string `type:"list" required:"true"`
 17131  
 17132  	// Indicates whether the instance is protected from termination by Amazon EC2
 17133  	// Auto Scaling when scaling in.
 17134  	//
 17135  	// ProtectedFromScaleIn is a required field
 17136  	ProtectedFromScaleIn *bool `type:"boolean" required:"true"`
 17137  }
 17138  
 17139  // String returns the string representation.
 17140  //
 17141  // API parameter values that are decorated as "sensitive" in the API will not
 17142  // be included in the string output. The member name will be present, but the
 17143  // value will be replaced with "sensitive".
 17144  func (s SetInstanceProtectionInput) String() string {
 17145  	return awsutil.Prettify(s)
 17146  }
 17147  
 17148  // GoString returns the string representation.
 17149  //
 17150  // API parameter values that are decorated as "sensitive" in the API will not
 17151  // be included in the string output. The member name will be present, but the
 17152  // value will be replaced with "sensitive".
 17153  func (s SetInstanceProtectionInput) GoString() string {
 17154  	return s.String()
 17155  }
 17156  
 17157  // Validate inspects the fields of the type to determine if they are valid.
 17158  func (s *SetInstanceProtectionInput) Validate() error {
 17159  	invalidParams := request.ErrInvalidParams{Context: "SetInstanceProtectionInput"}
 17160  	if s.AutoScalingGroupName == nil {
 17161  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 17162  	}
 17163  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 17164  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 17165  	}
 17166  	if s.InstanceIds == nil {
 17167  		invalidParams.Add(request.NewErrParamRequired("InstanceIds"))
 17168  	}
 17169  	if s.ProtectedFromScaleIn == nil {
 17170  		invalidParams.Add(request.NewErrParamRequired("ProtectedFromScaleIn"))
 17171  	}
 17172  
 17173  	if invalidParams.Len() > 0 {
 17174  		return invalidParams
 17175  	}
 17176  	return nil
 17177  }
 17178  
 17179  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 17180  func (s *SetInstanceProtectionInput) SetAutoScalingGroupName(v string) *SetInstanceProtectionInput {
 17181  	s.AutoScalingGroupName = &v
 17182  	return s
 17183  }
 17184  
 17185  // SetInstanceIds sets the InstanceIds field's value.
 17186  func (s *SetInstanceProtectionInput) SetInstanceIds(v []*string) *SetInstanceProtectionInput {
 17187  	s.InstanceIds = v
 17188  	return s
 17189  }
 17190  
 17191  // SetProtectedFromScaleIn sets the ProtectedFromScaleIn field's value.
 17192  func (s *SetInstanceProtectionInput) SetProtectedFromScaleIn(v bool) *SetInstanceProtectionInput {
 17193  	s.ProtectedFromScaleIn = &v
 17194  	return s
 17195  }
 17196  
 17197  type SetInstanceProtectionOutput struct {
 17198  	_ struct{} `type:"structure"`
 17199  }
 17200  
 17201  // String returns the string representation.
 17202  //
 17203  // API parameter values that are decorated as "sensitive" in the API will not
 17204  // be included in the string output. The member name will be present, but the
 17205  // value will be replaced with "sensitive".
 17206  func (s SetInstanceProtectionOutput) String() string {
 17207  	return awsutil.Prettify(s)
 17208  }
 17209  
 17210  // GoString returns the string representation.
 17211  //
 17212  // API parameter values that are decorated as "sensitive" in the API will not
 17213  // be included in the string output. The member name will be present, but the
 17214  // value will be replaced with "sensitive".
 17215  func (s SetInstanceProtectionOutput) GoString() string {
 17216  	return s.String()
 17217  }
 17218  
 17219  type StartInstanceRefreshInput struct {
 17220  	_ struct{} `type:"structure"`
 17221  
 17222  	// The name of the Auto Scaling group.
 17223  	//
 17224  	// AutoScalingGroupName is a required field
 17225  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 17226  
 17227  	// The desired configuration. For example, the desired configuration can specify
 17228  	// a new launch template or a new version of the current launch template.
 17229  	//
 17230  	// Once the instance refresh succeeds, Amazon EC2 Auto Scaling updates the settings
 17231  	// of the Auto Scaling group to reflect the new desired configuration.
 17232  	//
 17233  	// When you specify a new launch template or a new version of the current launch
 17234  	// template for your desired configuration, consider enabling the SkipMatching
 17235  	// property in preferences. If it's enabled, Amazon EC2 Auto Scaling skips replacing
 17236  	// instances that already use the specified launch template and version. This
 17237  	// can help you reduce the number of replacements that are required to apply
 17238  	// updates.
 17239  	DesiredConfiguration *DesiredConfiguration `type:"structure"`
 17240  
 17241  	// Set of preferences associated with the instance refresh request. If not provided,
 17242  	// the default values are used.
 17243  	Preferences *RefreshPreferences `type:"structure"`
 17244  
 17245  	// The strategy to use for the instance refresh. The only valid value is Rolling.
 17246  	//
 17247  	// A rolling update helps you update your instances gradually. A rolling update
 17248  	// can fail due to failed health checks or if instances are on standby or are
 17249  	// protected from scale in. If the rolling update process fails, any instances
 17250  	// that are replaced are not rolled back to their previous configuration.
 17251  	Strategy *string `type:"string" enum:"RefreshStrategy"`
 17252  }
 17253  
 17254  // String returns the string representation.
 17255  //
 17256  // API parameter values that are decorated as "sensitive" in the API will not
 17257  // be included in the string output. The member name will be present, but the
 17258  // value will be replaced with "sensitive".
 17259  func (s StartInstanceRefreshInput) String() string {
 17260  	return awsutil.Prettify(s)
 17261  }
 17262  
 17263  // GoString returns the string representation.
 17264  //
 17265  // API parameter values that are decorated as "sensitive" in the API will not
 17266  // be included in the string output. The member name will be present, but the
 17267  // value will be replaced with "sensitive".
 17268  func (s StartInstanceRefreshInput) GoString() string {
 17269  	return s.String()
 17270  }
 17271  
 17272  // Validate inspects the fields of the type to determine if they are valid.
 17273  func (s *StartInstanceRefreshInput) Validate() error {
 17274  	invalidParams := request.ErrInvalidParams{Context: "StartInstanceRefreshInput"}
 17275  	if s.AutoScalingGroupName == nil {
 17276  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 17277  	}
 17278  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 17279  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 17280  	}
 17281  	if s.DesiredConfiguration != nil {
 17282  		if err := s.DesiredConfiguration.Validate(); err != nil {
 17283  			invalidParams.AddNested("DesiredConfiguration", err.(request.ErrInvalidParams))
 17284  		}
 17285  	}
 17286  
 17287  	if invalidParams.Len() > 0 {
 17288  		return invalidParams
 17289  	}
 17290  	return nil
 17291  }
 17292  
 17293  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 17294  func (s *StartInstanceRefreshInput) SetAutoScalingGroupName(v string) *StartInstanceRefreshInput {
 17295  	s.AutoScalingGroupName = &v
 17296  	return s
 17297  }
 17298  
 17299  // SetDesiredConfiguration sets the DesiredConfiguration field's value.
 17300  func (s *StartInstanceRefreshInput) SetDesiredConfiguration(v *DesiredConfiguration) *StartInstanceRefreshInput {
 17301  	s.DesiredConfiguration = v
 17302  	return s
 17303  }
 17304  
 17305  // SetPreferences sets the Preferences field's value.
 17306  func (s *StartInstanceRefreshInput) SetPreferences(v *RefreshPreferences) *StartInstanceRefreshInput {
 17307  	s.Preferences = v
 17308  	return s
 17309  }
 17310  
 17311  // SetStrategy sets the Strategy field's value.
 17312  func (s *StartInstanceRefreshInput) SetStrategy(v string) *StartInstanceRefreshInput {
 17313  	s.Strategy = &v
 17314  	return s
 17315  }
 17316  
 17317  type StartInstanceRefreshOutput struct {
 17318  	_ struct{} `type:"structure"`
 17319  
 17320  	// A unique ID for tracking the progress of the request.
 17321  	InstanceRefreshId *string `min:"1" type:"string"`
 17322  }
 17323  
 17324  // String returns the string representation.
 17325  //
 17326  // API parameter values that are decorated as "sensitive" in the API will not
 17327  // be included in the string output. The member name will be present, but the
 17328  // value will be replaced with "sensitive".
 17329  func (s StartInstanceRefreshOutput) String() string {
 17330  	return awsutil.Prettify(s)
 17331  }
 17332  
 17333  // GoString returns the string representation.
 17334  //
 17335  // API parameter values that are decorated as "sensitive" in the API will not
 17336  // be included in the string output. The member name will be present, but the
 17337  // value will be replaced with "sensitive".
 17338  func (s StartInstanceRefreshOutput) GoString() string {
 17339  	return s.String()
 17340  }
 17341  
 17342  // SetInstanceRefreshId sets the InstanceRefreshId field's value.
 17343  func (s *StartInstanceRefreshOutput) SetInstanceRefreshId(v string) *StartInstanceRefreshOutput {
 17344  	s.InstanceRefreshId = &v
 17345  	return s
 17346  }
 17347  
 17348  // Describes information used to create a step adjustment for a step scaling
 17349  // policy.
 17350  //
 17351  // For the following examples, suppose that you have an alarm with a breach
 17352  // threshold of 50:
 17353  //
 17354  //    * To trigger the adjustment when the metric is greater than or equal to
 17355  //    50 and less than 60, specify a lower bound of 0 and an upper bound of
 17356  //    10.
 17357  //
 17358  //    * To trigger the adjustment when the metric is greater than 40 and less
 17359  //    than or equal to 50, specify a lower bound of -10 and an upper bound of
 17360  //    0.
 17361  //
 17362  // There are a few rules for the step adjustments for your step policy:
 17363  //
 17364  //    * The ranges of your step adjustments can't overlap or have a gap.
 17365  //
 17366  //    * At most, one step adjustment can have a null lower bound. If one step
 17367  //    adjustment has a negative lower bound, then there must be a step adjustment
 17368  //    with a null lower bound.
 17369  //
 17370  //    * At most, one step adjustment can have a null upper bound. If one step
 17371  //    adjustment has a positive upper bound, then there must be a step adjustment
 17372  //    with a null upper bound.
 17373  //
 17374  //    * The upper and lower bound can't be null in the same step adjustment.
 17375  //
 17376  // For more information, see Step adjustments (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-steps)
 17377  // in the Amazon EC2 Auto Scaling User Guide.
 17378  type StepAdjustment struct {
 17379  	_ struct{} `type:"structure"`
 17380  
 17381  	// The lower bound for the difference between the alarm threshold and the CloudWatch
 17382  	// metric. If the metric value is above the breach threshold, the lower bound
 17383  	// is inclusive (the metric must be greater than or equal to the threshold plus
 17384  	// the lower bound). Otherwise, it is exclusive (the metric must be greater
 17385  	// than the threshold plus the lower bound). A null value indicates negative
 17386  	// infinity.
 17387  	MetricIntervalLowerBound *float64 `type:"double"`
 17388  
 17389  	// The upper bound for the difference between the alarm threshold and the CloudWatch
 17390  	// metric. If the metric value is above the breach threshold, the upper bound
 17391  	// is exclusive (the metric must be less than the threshold plus the upper bound).
 17392  	// Otherwise, it is inclusive (the metric must be less than or equal to the
 17393  	// threshold plus the upper bound). A null value indicates positive infinity.
 17394  	//
 17395  	// The upper bound must be greater than the lower bound.
 17396  	MetricIntervalUpperBound *float64 `type:"double"`
 17397  
 17398  	// The amount by which to scale, based on the specified adjustment type. A positive
 17399  	// value adds to the current capacity while a negative number removes from the
 17400  	// current capacity.
 17401  	//
 17402  	// ScalingAdjustment is a required field
 17403  	ScalingAdjustment *int64 `type:"integer" required:"true"`
 17404  }
 17405  
 17406  // String returns the string representation.
 17407  //
 17408  // API parameter values that are decorated as "sensitive" in the API will not
 17409  // be included in the string output. The member name will be present, but the
 17410  // value will be replaced with "sensitive".
 17411  func (s StepAdjustment) String() string {
 17412  	return awsutil.Prettify(s)
 17413  }
 17414  
 17415  // GoString returns the string representation.
 17416  //
 17417  // API parameter values that are decorated as "sensitive" in the API will not
 17418  // be included in the string output. The member name will be present, but the
 17419  // value will be replaced with "sensitive".
 17420  func (s StepAdjustment) GoString() string {
 17421  	return s.String()
 17422  }
 17423  
 17424  // Validate inspects the fields of the type to determine if they are valid.
 17425  func (s *StepAdjustment) Validate() error {
 17426  	invalidParams := request.ErrInvalidParams{Context: "StepAdjustment"}
 17427  	if s.ScalingAdjustment == nil {
 17428  		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
 17429  	}
 17430  
 17431  	if invalidParams.Len() > 0 {
 17432  		return invalidParams
 17433  	}
 17434  	return nil
 17435  }
 17436  
 17437  // SetMetricIntervalLowerBound sets the MetricIntervalLowerBound field's value.
 17438  func (s *StepAdjustment) SetMetricIntervalLowerBound(v float64) *StepAdjustment {
 17439  	s.MetricIntervalLowerBound = &v
 17440  	return s
 17441  }
 17442  
 17443  // SetMetricIntervalUpperBound sets the MetricIntervalUpperBound field's value.
 17444  func (s *StepAdjustment) SetMetricIntervalUpperBound(v float64) *StepAdjustment {
 17445  	s.MetricIntervalUpperBound = &v
 17446  	return s
 17447  }
 17448  
 17449  // SetScalingAdjustment sets the ScalingAdjustment field's value.
 17450  func (s *StepAdjustment) SetScalingAdjustment(v int64) *StepAdjustment {
 17451  	s.ScalingAdjustment = &v
 17452  	return s
 17453  }
 17454  
 17455  type SuspendProcessesOutput struct {
 17456  	_ struct{} `type:"structure"`
 17457  }
 17458  
 17459  // String returns the string representation.
 17460  //
 17461  // API parameter values that are decorated as "sensitive" in the API will not
 17462  // be included in the string output. The member name will be present, but the
 17463  // value will be replaced with "sensitive".
 17464  func (s SuspendProcessesOutput) String() string {
 17465  	return awsutil.Prettify(s)
 17466  }
 17467  
 17468  // GoString returns the string representation.
 17469  //
 17470  // API parameter values that are decorated as "sensitive" in the API will not
 17471  // be included in the string output. The member name will be present, but the
 17472  // value will be replaced with "sensitive".
 17473  func (s SuspendProcessesOutput) GoString() string {
 17474  	return s.String()
 17475  }
 17476  
 17477  // Describes an auto scaling process that has been suspended.
 17478  //
 17479  // For more information, see Scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types)
 17480  // in the Amazon EC2 Auto Scaling User Guide.
 17481  type SuspendedProcess struct {
 17482  	_ struct{} `type:"structure"`
 17483  
 17484  	// The name of the suspended process.
 17485  	ProcessName *string `min:"1" type:"string"`
 17486  
 17487  	// The reason that the process was suspended.
 17488  	SuspensionReason *string `min:"1" type:"string"`
 17489  }
 17490  
 17491  // String returns the string representation.
 17492  //
 17493  // API parameter values that are decorated as "sensitive" in the API will not
 17494  // be included in the string output. The member name will be present, but the
 17495  // value will be replaced with "sensitive".
 17496  func (s SuspendedProcess) String() string {
 17497  	return awsutil.Prettify(s)
 17498  }
 17499  
 17500  // GoString returns the string representation.
 17501  //
 17502  // API parameter values that are decorated as "sensitive" in the API will not
 17503  // be included in the string output. The member name will be present, but the
 17504  // value will be replaced with "sensitive".
 17505  func (s SuspendedProcess) GoString() string {
 17506  	return s.String()
 17507  }
 17508  
 17509  // SetProcessName sets the ProcessName field's value.
 17510  func (s *SuspendedProcess) SetProcessName(v string) *SuspendedProcess {
 17511  	s.ProcessName = &v
 17512  	return s
 17513  }
 17514  
 17515  // SetSuspensionReason sets the SuspensionReason field's value.
 17516  func (s *SuspendedProcess) SetSuspensionReason(v string) *SuspendedProcess {
 17517  	s.SuspensionReason = &v
 17518  	return s
 17519  }
 17520  
 17521  // Describes a tag for an Auto Scaling group.
 17522  type Tag struct {
 17523  	_ struct{} `type:"structure"`
 17524  
 17525  	// The tag key.
 17526  	//
 17527  	// Key is a required field
 17528  	Key *string `min:"1" type:"string" required:"true"`
 17529  
 17530  	// Determines whether the tag is added to new instances as they are launched
 17531  	// in the group.
 17532  	PropagateAtLaunch *bool `type:"boolean"`
 17533  
 17534  	// The name of the Auto Scaling group.
 17535  	ResourceId *string `type:"string"`
 17536  
 17537  	// The type of resource. The only supported value is auto-scaling-group.
 17538  	ResourceType *string `type:"string"`
 17539  
 17540  	// The tag value.
 17541  	Value *string `type:"string"`
 17542  }
 17543  
 17544  // String returns the string representation.
 17545  //
 17546  // API parameter values that are decorated as "sensitive" in the API will not
 17547  // be included in the string output. The member name will be present, but the
 17548  // value will be replaced with "sensitive".
 17549  func (s Tag) String() string {
 17550  	return awsutil.Prettify(s)
 17551  }
 17552  
 17553  // GoString returns the string representation.
 17554  //
 17555  // API parameter values that are decorated as "sensitive" in the API will not
 17556  // be included in the string output. The member name will be present, but the
 17557  // value will be replaced with "sensitive".
 17558  func (s Tag) GoString() string {
 17559  	return s.String()
 17560  }
 17561  
 17562  // Validate inspects the fields of the type to determine if they are valid.
 17563  func (s *Tag) Validate() error {
 17564  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 17565  	if s.Key == nil {
 17566  		invalidParams.Add(request.NewErrParamRequired("Key"))
 17567  	}
 17568  	if s.Key != nil && len(*s.Key) < 1 {
 17569  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 17570  	}
 17571  
 17572  	if invalidParams.Len() > 0 {
 17573  		return invalidParams
 17574  	}
 17575  	return nil
 17576  }
 17577  
 17578  // SetKey sets the Key field's value.
 17579  func (s *Tag) SetKey(v string) *Tag {
 17580  	s.Key = &v
 17581  	return s
 17582  }
 17583  
 17584  // SetPropagateAtLaunch sets the PropagateAtLaunch field's value.
 17585  func (s *Tag) SetPropagateAtLaunch(v bool) *Tag {
 17586  	s.PropagateAtLaunch = &v
 17587  	return s
 17588  }
 17589  
 17590  // SetResourceId sets the ResourceId field's value.
 17591  func (s *Tag) SetResourceId(v string) *Tag {
 17592  	s.ResourceId = &v
 17593  	return s
 17594  }
 17595  
 17596  // SetResourceType sets the ResourceType field's value.
 17597  func (s *Tag) SetResourceType(v string) *Tag {
 17598  	s.ResourceType = &v
 17599  	return s
 17600  }
 17601  
 17602  // SetValue sets the Value field's value.
 17603  func (s *Tag) SetValue(v string) *Tag {
 17604  	s.Value = &v
 17605  	return s
 17606  }
 17607  
 17608  // Describes a tag for an Auto Scaling group.
 17609  type TagDescription struct {
 17610  	_ struct{} `type:"structure"`
 17611  
 17612  	// The tag key.
 17613  	Key *string `min:"1" type:"string"`
 17614  
 17615  	// Determines whether the tag is added to new instances as they are launched
 17616  	// in the group.
 17617  	PropagateAtLaunch *bool `type:"boolean"`
 17618  
 17619  	// The name of the group.
 17620  	ResourceId *string `type:"string"`
 17621  
 17622  	// The type of resource. The only supported value is auto-scaling-group.
 17623  	ResourceType *string `type:"string"`
 17624  
 17625  	// The tag value.
 17626  	Value *string `type:"string"`
 17627  }
 17628  
 17629  // String returns the string representation.
 17630  //
 17631  // API parameter values that are decorated as "sensitive" in the API will not
 17632  // be included in the string output. The member name will be present, but the
 17633  // value will be replaced with "sensitive".
 17634  func (s TagDescription) String() string {
 17635  	return awsutil.Prettify(s)
 17636  }
 17637  
 17638  // GoString returns the string representation.
 17639  //
 17640  // API parameter values that are decorated as "sensitive" in the API will not
 17641  // be included in the string output. The member name will be present, but the
 17642  // value will be replaced with "sensitive".
 17643  func (s TagDescription) GoString() string {
 17644  	return s.String()
 17645  }
 17646  
 17647  // SetKey sets the Key field's value.
 17648  func (s *TagDescription) SetKey(v string) *TagDescription {
 17649  	s.Key = &v
 17650  	return s
 17651  }
 17652  
 17653  // SetPropagateAtLaunch sets the PropagateAtLaunch field's value.
 17654  func (s *TagDescription) SetPropagateAtLaunch(v bool) *TagDescription {
 17655  	s.PropagateAtLaunch = &v
 17656  	return s
 17657  }
 17658  
 17659  // SetResourceId sets the ResourceId field's value.
 17660  func (s *TagDescription) SetResourceId(v string) *TagDescription {
 17661  	s.ResourceId = &v
 17662  	return s
 17663  }
 17664  
 17665  // SetResourceType sets the ResourceType field's value.
 17666  func (s *TagDescription) SetResourceType(v string) *TagDescription {
 17667  	s.ResourceType = &v
 17668  	return s
 17669  }
 17670  
 17671  // SetValue sets the Value field's value.
 17672  func (s *TagDescription) SetValue(v string) *TagDescription {
 17673  	s.Value = &v
 17674  	return s
 17675  }
 17676  
 17677  // Represents a target tracking scaling policy configuration to use with Amazon
 17678  // EC2 Auto Scaling.
 17679  type TargetTrackingConfiguration struct {
 17680  	_ struct{} `type:"structure"`
 17681  
 17682  	// A customized metric. You must specify either a predefined metric or a customized
 17683  	// metric.
 17684  	CustomizedMetricSpecification *CustomizedMetricSpecification `type:"structure"`
 17685  
 17686  	// Indicates whether scaling in by the target tracking scaling policy is disabled.
 17687  	// If scaling in is disabled, the target tracking scaling policy doesn't remove
 17688  	// instances from the Auto Scaling group. Otherwise, the target tracking scaling
 17689  	// policy can remove instances from the Auto Scaling group. The default is false.
 17690  	DisableScaleIn *bool `type:"boolean"`
 17691  
 17692  	// A predefined metric. You must specify either a predefined metric or a customized
 17693  	// metric.
 17694  	PredefinedMetricSpecification *PredefinedMetricSpecification `type:"structure"`
 17695  
 17696  	// The target value for the metric.
 17697  	//
 17698  	// TargetValue is a required field
 17699  	TargetValue *float64 `type:"double" required:"true"`
 17700  }
 17701  
 17702  // String returns the string representation.
 17703  //
 17704  // API parameter values that are decorated as "sensitive" in the API will not
 17705  // be included in the string output. The member name will be present, but the
 17706  // value will be replaced with "sensitive".
 17707  func (s TargetTrackingConfiguration) String() string {
 17708  	return awsutil.Prettify(s)
 17709  }
 17710  
 17711  // GoString returns the string representation.
 17712  //
 17713  // API parameter values that are decorated as "sensitive" in the API will not
 17714  // be included in the string output. The member name will be present, but the
 17715  // value will be replaced with "sensitive".
 17716  func (s TargetTrackingConfiguration) GoString() string {
 17717  	return s.String()
 17718  }
 17719  
 17720  // Validate inspects the fields of the type to determine if they are valid.
 17721  func (s *TargetTrackingConfiguration) Validate() error {
 17722  	invalidParams := request.ErrInvalidParams{Context: "TargetTrackingConfiguration"}
 17723  	if s.TargetValue == nil {
 17724  		invalidParams.Add(request.NewErrParamRequired("TargetValue"))
 17725  	}
 17726  	if s.CustomizedMetricSpecification != nil {
 17727  		if err := s.CustomizedMetricSpecification.Validate(); err != nil {
 17728  			invalidParams.AddNested("CustomizedMetricSpecification", err.(request.ErrInvalidParams))
 17729  		}
 17730  	}
 17731  	if s.PredefinedMetricSpecification != nil {
 17732  		if err := s.PredefinedMetricSpecification.Validate(); err != nil {
 17733  			invalidParams.AddNested("PredefinedMetricSpecification", err.(request.ErrInvalidParams))
 17734  		}
 17735  	}
 17736  
 17737  	if invalidParams.Len() > 0 {
 17738  		return invalidParams
 17739  	}
 17740  	return nil
 17741  }
 17742  
 17743  // SetCustomizedMetricSpecification sets the CustomizedMetricSpecification field's value.
 17744  func (s *TargetTrackingConfiguration) SetCustomizedMetricSpecification(v *CustomizedMetricSpecification) *TargetTrackingConfiguration {
 17745  	s.CustomizedMetricSpecification = v
 17746  	return s
 17747  }
 17748  
 17749  // SetDisableScaleIn sets the DisableScaleIn field's value.
 17750  func (s *TargetTrackingConfiguration) SetDisableScaleIn(v bool) *TargetTrackingConfiguration {
 17751  	s.DisableScaleIn = &v
 17752  	return s
 17753  }
 17754  
 17755  // SetPredefinedMetricSpecification sets the PredefinedMetricSpecification field's value.
 17756  func (s *TargetTrackingConfiguration) SetPredefinedMetricSpecification(v *PredefinedMetricSpecification) *TargetTrackingConfiguration {
 17757  	s.PredefinedMetricSpecification = v
 17758  	return s
 17759  }
 17760  
 17761  // SetTargetValue sets the TargetValue field's value.
 17762  func (s *TargetTrackingConfiguration) SetTargetValue(v float64) *TargetTrackingConfiguration {
 17763  	s.TargetValue = &v
 17764  	return s
 17765  }
 17766  
 17767  type TerminateInstanceInAutoScalingGroupInput struct {
 17768  	_ struct{} `type:"structure"`
 17769  
 17770  	// The ID of the instance.
 17771  	//
 17772  	// InstanceId is a required field
 17773  	InstanceId *string `min:"1" type:"string" required:"true"`
 17774  
 17775  	// Indicates whether terminating the instance also decrements the size of the
 17776  	// Auto Scaling group.
 17777  	//
 17778  	// ShouldDecrementDesiredCapacity is a required field
 17779  	ShouldDecrementDesiredCapacity *bool `type:"boolean" required:"true"`
 17780  }
 17781  
 17782  // String returns the string representation.
 17783  //
 17784  // API parameter values that are decorated as "sensitive" in the API will not
 17785  // be included in the string output. The member name will be present, but the
 17786  // value will be replaced with "sensitive".
 17787  func (s TerminateInstanceInAutoScalingGroupInput) String() string {
 17788  	return awsutil.Prettify(s)
 17789  }
 17790  
 17791  // GoString returns the string representation.
 17792  //
 17793  // API parameter values that are decorated as "sensitive" in the API will not
 17794  // be included in the string output. The member name will be present, but the
 17795  // value will be replaced with "sensitive".
 17796  func (s TerminateInstanceInAutoScalingGroupInput) GoString() string {
 17797  	return s.String()
 17798  }
 17799  
 17800  // Validate inspects the fields of the type to determine if they are valid.
 17801  func (s *TerminateInstanceInAutoScalingGroupInput) Validate() error {
 17802  	invalidParams := request.ErrInvalidParams{Context: "TerminateInstanceInAutoScalingGroupInput"}
 17803  	if s.InstanceId == nil {
 17804  		invalidParams.Add(request.NewErrParamRequired("InstanceId"))
 17805  	}
 17806  	if s.InstanceId != nil && len(*s.InstanceId) < 1 {
 17807  		invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1))
 17808  	}
 17809  	if s.ShouldDecrementDesiredCapacity == nil {
 17810  		invalidParams.Add(request.NewErrParamRequired("ShouldDecrementDesiredCapacity"))
 17811  	}
 17812  
 17813  	if invalidParams.Len() > 0 {
 17814  		return invalidParams
 17815  	}
 17816  	return nil
 17817  }
 17818  
 17819  // SetInstanceId sets the InstanceId field's value.
 17820  func (s *TerminateInstanceInAutoScalingGroupInput) SetInstanceId(v string) *TerminateInstanceInAutoScalingGroupInput {
 17821  	s.InstanceId = &v
 17822  	return s
 17823  }
 17824  
 17825  // SetShouldDecrementDesiredCapacity sets the ShouldDecrementDesiredCapacity field's value.
 17826  func (s *TerminateInstanceInAutoScalingGroupInput) SetShouldDecrementDesiredCapacity(v bool) *TerminateInstanceInAutoScalingGroupInput {
 17827  	s.ShouldDecrementDesiredCapacity = &v
 17828  	return s
 17829  }
 17830  
 17831  type TerminateInstanceInAutoScalingGroupOutput struct {
 17832  	_ struct{} `type:"structure"`
 17833  
 17834  	// A scaling activity.
 17835  	Activity *Activity `type:"structure"`
 17836  }
 17837  
 17838  // String returns the string representation.
 17839  //
 17840  // API parameter values that are decorated as "sensitive" in the API will not
 17841  // be included in the string output. The member name will be present, but the
 17842  // value will be replaced with "sensitive".
 17843  func (s TerminateInstanceInAutoScalingGroupOutput) String() string {
 17844  	return awsutil.Prettify(s)
 17845  }
 17846  
 17847  // GoString returns the string representation.
 17848  //
 17849  // API parameter values that are decorated as "sensitive" in the API will not
 17850  // be included in the string output. The member name will be present, but the
 17851  // value will be replaced with "sensitive".
 17852  func (s TerminateInstanceInAutoScalingGroupOutput) GoString() string {
 17853  	return s.String()
 17854  }
 17855  
 17856  // SetActivity sets the Activity field's value.
 17857  func (s *TerminateInstanceInAutoScalingGroupOutput) SetActivity(v *Activity) *TerminateInstanceInAutoScalingGroupOutput {
 17858  	s.Activity = v
 17859  	return s
 17860  }
 17861  
 17862  type UpdateAutoScalingGroupInput struct {
 17863  	_ struct{} `type:"structure"`
 17864  
 17865  	// The name of the Auto Scaling group.
 17866  	//
 17867  	// AutoScalingGroupName is a required field
 17868  	AutoScalingGroupName *string `min:"1" type:"string" required:"true"`
 17869  
 17870  	// One or more Availability Zones for the group.
 17871  	AvailabilityZones []*string `type:"list"`
 17872  
 17873  	// Enables or disables Capacity Rebalancing. For more information, see Amazon
 17874  	// EC2 Auto Scaling Capacity Rebalancing (https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)
 17875  	// in the Amazon EC2 Auto Scaling User Guide.
 17876  	CapacityRebalance *bool `type:"boolean"`
 17877  
 17878  	// Reserved.
 17879  	Context *string `type:"string"`
 17880  
 17881  	// The amount of time, in seconds, after a scaling activity completes before
 17882  	// another scaling activity can start. The default value is 300. This setting
 17883  	// applies when using simple scaling policies, but not when using other scaling
 17884  	// policies or scheduled scaling. For more information, see Scaling cooldowns
 17885  	// for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)
 17886  	// in the Amazon EC2 Auto Scaling User Guide.
 17887  	DefaultCooldown *int64 `type:"integer"`
 17888  
 17889  	// The desired capacity is the initial capacity of the Auto Scaling group after
 17890  	// this operation completes and the capacity it attempts to maintain. This number
 17891  	// must be greater than or equal to the minimum size of the group and less than
 17892  	// or equal to the maximum size of the group.
 17893  	DesiredCapacity *int64 `type:"integer"`
 17894  
 17895  	// The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before
 17896  	// checking the health status of an EC2 instance that has come into service.
 17897  	// The default value is 0. For more information, see Health check grace period
 17898  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period)
 17899  	// in the Amazon EC2 Auto Scaling User Guide.
 17900  	//
 17901  	// Conditional: Required if you are adding an ELB health check.
 17902  	HealthCheckGracePeriod *int64 `type:"integer"`
 17903  
 17904  	// The service to use for the health checks. The valid values are EC2 and ELB.
 17905  	// If you configure an Auto Scaling group to use ELB health checks, it considers
 17906  	// the instance unhealthy if it fails either the EC2 status checks or the load
 17907  	// balancer health checks.
 17908  	HealthCheckType *string `min:"1" type:"string"`
 17909  
 17910  	// The name of the launch configuration. If you specify LaunchConfigurationName
 17911  	// in your update request, you can't specify LaunchTemplate or MixedInstancesPolicy.
 17912  	LaunchConfigurationName *string `min:"1" type:"string"`
 17913  
 17914  	// The launch template and version to use to specify the updates. If you specify
 17915  	// LaunchTemplate in your update request, you can't specify LaunchConfigurationName
 17916  	// or MixedInstancesPolicy.
 17917  	LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
 17918  
 17919  	// The maximum amount of time, in seconds, that an instance can be in service.
 17920  	// The default is null. If specified, the value must be either 0 or a number
 17921  	// equal to or greater than 86,400 seconds (1 day). To clear a previously set
 17922  	// value, specify a new value of 0. For more information, see Replacing Auto
 17923  	// Scaling instances based on maximum instance lifetime (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html)
 17924  	// in the Amazon EC2 Auto Scaling User Guide.
 17925  	MaxInstanceLifetime *int64 `type:"integer"`
 17926  
 17927  	// The maximum size of the Auto Scaling group.
 17928  	//
 17929  	// With a mixed instances policy that uses instance weighting, Amazon EC2 Auto
 17930  	// Scaling may need to go above MaxSize to meet your capacity requirements.
 17931  	// In this event, Amazon EC2 Auto Scaling will never go above MaxSize by more
 17932  	// than your largest instance weight (weights that define how many units each
 17933  	// instance contributes to the desired capacity of the group).
 17934  	MaxSize *int64 `type:"integer"`
 17935  
 17936  	// The minimum size of the Auto Scaling group.
 17937  	MinSize *int64 `type:"integer"`
 17938  
 17939  	// An embedded object that specifies a mixed instances policy. When you make
 17940  	// changes to an existing policy, all optional properties are left unchanged
 17941  	// if not specified. For more information, see Auto Scaling groups with multiple
 17942  	// instance types and purchase options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html)
 17943  	// in the Amazon EC2 Auto Scaling User Guide.
 17944  	MixedInstancesPolicy *MixedInstancesPolicy `type:"structure"`
 17945  
 17946  	// Indicates whether newly launched instances are protected from termination
 17947  	// by Amazon EC2 Auto Scaling when scaling in. For more information about preventing
 17948  	// instances from terminating on scale in, see Instance scale-in protection
 17949  	// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection)
 17950  	// in the Amazon EC2 Auto Scaling User Guide.
 17951  	NewInstancesProtectedFromScaleIn *bool `type:"boolean"`
 17952  
 17953  	// The name of an existing placement group into which to launch your instances,
 17954  	// if any. A placement group is a logical grouping of instances within a single
 17955  	// Availability Zone. You cannot specify multiple Availability Zones and a placement
 17956  	// group. For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
 17957  	// in the Amazon EC2 User Guide for Linux Instances.
 17958  	PlacementGroup *string `min:"1" type:"string"`
 17959  
 17960  	// The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling
 17961  	// group uses to call other Amazon Web Services on your behalf. For more information,
 17962  	// see Service-linked roles (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html)
 17963  	// in the Amazon EC2 Auto Scaling User Guide.
 17964  	ServiceLinkedRoleARN *string `min:"1" type:"string"`
 17965  
 17966  	// A policy or a list of policies that are used to select the instances to terminate.
 17967  	// The policies are executed in the order that you list them. For more information,
 17968  	// see Controlling which Auto Scaling instances terminate during scale in (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html)
 17969  	// in the Amazon EC2 Auto Scaling User Guide.
 17970  	TerminationPolicies []*string `type:"list"`
 17971  
 17972  	// A comma-separated list of subnet IDs for a virtual private cloud (VPC). If
 17973  	// you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you
 17974  	// specify for this parameter must reside in those Availability Zones.
 17975  	VPCZoneIdentifier *string `min:"1" type:"string"`
 17976  }
 17977  
 17978  // String returns the string representation.
 17979  //
 17980  // API parameter values that are decorated as "sensitive" in the API will not
 17981  // be included in the string output. The member name will be present, but the
 17982  // value will be replaced with "sensitive".
 17983  func (s UpdateAutoScalingGroupInput) String() string {
 17984  	return awsutil.Prettify(s)
 17985  }
 17986  
 17987  // GoString returns the string representation.
 17988  //
 17989  // API parameter values that are decorated as "sensitive" in the API will not
 17990  // be included in the string output. The member name will be present, but the
 17991  // value will be replaced with "sensitive".
 17992  func (s UpdateAutoScalingGroupInput) GoString() string {
 17993  	return s.String()
 17994  }
 17995  
 17996  // Validate inspects the fields of the type to determine if they are valid.
 17997  func (s *UpdateAutoScalingGroupInput) Validate() error {
 17998  	invalidParams := request.ErrInvalidParams{Context: "UpdateAutoScalingGroupInput"}
 17999  	if s.AutoScalingGroupName == nil {
 18000  		invalidParams.Add(request.NewErrParamRequired("AutoScalingGroupName"))
 18001  	}
 18002  	if s.AutoScalingGroupName != nil && len(*s.AutoScalingGroupName) < 1 {
 18003  		invalidParams.Add(request.NewErrParamMinLen("AutoScalingGroupName", 1))
 18004  	}
 18005  	if s.HealthCheckType != nil && len(*s.HealthCheckType) < 1 {
 18006  		invalidParams.Add(request.NewErrParamMinLen("HealthCheckType", 1))
 18007  	}
 18008  	if s.LaunchConfigurationName != nil && len(*s.LaunchConfigurationName) < 1 {
 18009  		invalidParams.Add(request.NewErrParamMinLen("LaunchConfigurationName", 1))
 18010  	}
 18011  	if s.PlacementGroup != nil && len(*s.PlacementGroup) < 1 {
 18012  		invalidParams.Add(request.NewErrParamMinLen("PlacementGroup", 1))
 18013  	}
 18014  	if s.ServiceLinkedRoleARN != nil && len(*s.ServiceLinkedRoleARN) < 1 {
 18015  		invalidParams.Add(request.NewErrParamMinLen("ServiceLinkedRoleARN", 1))
 18016  	}
 18017  	if s.VPCZoneIdentifier != nil && len(*s.VPCZoneIdentifier) < 1 {
 18018  		invalidParams.Add(request.NewErrParamMinLen("VPCZoneIdentifier", 1))
 18019  	}
 18020  	if s.LaunchTemplate != nil {
 18021  		if err := s.LaunchTemplate.Validate(); err != nil {
 18022  			invalidParams.AddNested("LaunchTemplate", err.(request.ErrInvalidParams))
 18023  		}
 18024  	}
 18025  	if s.MixedInstancesPolicy != nil {
 18026  		if err := s.MixedInstancesPolicy.Validate(); err != nil {
 18027  			invalidParams.AddNested("MixedInstancesPolicy", err.(request.ErrInvalidParams))
 18028  		}
 18029  	}
 18030  
 18031  	if invalidParams.Len() > 0 {
 18032  		return invalidParams
 18033  	}
 18034  	return nil
 18035  }
 18036  
 18037  // SetAutoScalingGroupName sets the AutoScalingGroupName field's value.
 18038  func (s *UpdateAutoScalingGroupInput) SetAutoScalingGroupName(v string) *UpdateAutoScalingGroupInput {
 18039  	s.AutoScalingGroupName = &v
 18040  	return s
 18041  }
 18042  
 18043  // SetAvailabilityZones sets the AvailabilityZones field's value.
 18044  func (s *UpdateAutoScalingGroupInput) SetAvailabilityZones(v []*string) *UpdateAutoScalingGroupInput {
 18045  	s.AvailabilityZones = v
 18046  	return s
 18047  }
 18048  
 18049  // SetCapacityRebalance sets the CapacityRebalance field's value.
 18050  func (s *UpdateAutoScalingGroupInput) SetCapacityRebalance(v bool) *UpdateAutoScalingGroupInput {
 18051  	s.CapacityRebalance = &v
 18052  	return s
 18053  }
 18054  
 18055  // SetContext sets the Context field's value.
 18056  func (s *UpdateAutoScalingGroupInput) SetContext(v string) *UpdateAutoScalingGroupInput {
 18057  	s.Context = &v
 18058  	return s
 18059  }
 18060  
 18061  // SetDefaultCooldown sets the DefaultCooldown field's value.
 18062  func (s *UpdateAutoScalingGroupInput) SetDefaultCooldown(v int64) *UpdateAutoScalingGroupInput {
 18063  	s.DefaultCooldown = &v
 18064  	return s
 18065  }
 18066  
 18067  // SetDesiredCapacity sets the DesiredCapacity field's value.
 18068  func (s *UpdateAutoScalingGroupInput) SetDesiredCapacity(v int64) *UpdateAutoScalingGroupInput {
 18069  	s.DesiredCapacity = &v
 18070  	return s
 18071  }
 18072  
 18073  // SetHealthCheckGracePeriod sets the HealthCheckGracePeriod field's value.
 18074  func (s *UpdateAutoScalingGroupInput) SetHealthCheckGracePeriod(v int64) *UpdateAutoScalingGroupInput {
 18075  	s.HealthCheckGracePeriod = &v
 18076  	return s
 18077  }
 18078  
 18079  // SetHealthCheckType sets the HealthCheckType field's value.
 18080  func (s *UpdateAutoScalingGroupInput) SetHealthCheckType(v string) *UpdateAutoScalingGroupInput {
 18081  	s.HealthCheckType = &v
 18082  	return s
 18083  }
 18084  
 18085  // SetLaunchConfigurationName sets the LaunchConfigurationName field's value.
 18086  func (s *UpdateAutoScalingGroupInput) SetLaunchConfigurationName(v string) *UpdateAutoScalingGroupInput {
 18087  	s.LaunchConfigurationName = &v
 18088  	return s
 18089  }
 18090  
 18091  // SetLaunchTemplate sets the LaunchTemplate field's value.
 18092  func (s *UpdateAutoScalingGroupInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *UpdateAutoScalingGroupInput {
 18093  	s.LaunchTemplate = v
 18094  	return s
 18095  }
 18096  
 18097  // SetMaxInstanceLifetime sets the MaxInstanceLifetime field's value.
 18098  func (s *UpdateAutoScalingGroupInput) SetMaxInstanceLifetime(v int64) *UpdateAutoScalingGroupInput {
 18099  	s.MaxInstanceLifetime = &v
 18100  	return s
 18101  }
 18102  
 18103  // SetMaxSize sets the MaxSize field's value.
 18104  func (s *UpdateAutoScalingGroupInput) SetMaxSize(v int64) *UpdateAutoScalingGroupInput {
 18105  	s.MaxSize = &v
 18106  	return s
 18107  }
 18108  
 18109  // SetMinSize sets the MinSize field's value.
 18110  func (s *UpdateAutoScalingGroupInput) SetMinSize(v int64) *UpdateAutoScalingGroupInput {
 18111  	s.MinSize = &v
 18112  	return s
 18113  }
 18114  
 18115  // SetMixedInstancesPolicy sets the MixedInstancesPolicy field's value.
 18116  func (s *UpdateAutoScalingGroupInput) SetMixedInstancesPolicy(v *MixedInstancesPolicy) *UpdateAutoScalingGroupInput {
 18117  	s.MixedInstancesPolicy = v
 18118  	return s
 18119  }
 18120  
 18121  // SetNewInstancesProtectedFromScaleIn sets the NewInstancesProtectedFromScaleIn field's value.
 18122  func (s *UpdateAutoScalingGroupInput) SetNewInstancesProtectedFromScaleIn(v bool) *UpdateAutoScalingGroupInput {
 18123  	s.NewInstancesProtectedFromScaleIn = &v
 18124  	return s
 18125  }
 18126  
 18127  // SetPlacementGroup sets the PlacementGroup field's value.
 18128  func (s *UpdateAutoScalingGroupInput) SetPlacementGroup(v string) *UpdateAutoScalingGroupInput {
 18129  	s.PlacementGroup = &v
 18130  	return s
 18131  }
 18132  
 18133  // SetServiceLinkedRoleARN sets the ServiceLinkedRoleARN field's value.
 18134  func (s *UpdateAutoScalingGroupInput) SetServiceLinkedRoleARN(v string) *UpdateAutoScalingGroupInput {
 18135  	s.ServiceLinkedRoleARN = &v
 18136  	return s
 18137  }
 18138  
 18139  // SetTerminationPolicies sets the TerminationPolicies field's value.
 18140  func (s *UpdateAutoScalingGroupInput) SetTerminationPolicies(v []*string) *UpdateAutoScalingGroupInput {
 18141  	s.TerminationPolicies = v
 18142  	return s
 18143  }
 18144  
 18145  // SetVPCZoneIdentifier sets the VPCZoneIdentifier field's value.
 18146  func (s *UpdateAutoScalingGroupInput) SetVPCZoneIdentifier(v string) *UpdateAutoScalingGroupInput {
 18147  	s.VPCZoneIdentifier = &v
 18148  	return s
 18149  }
 18150  
 18151  type UpdateAutoScalingGroupOutput struct {
 18152  	_ struct{} `type:"structure"`
 18153  }
 18154  
 18155  // String returns the string representation.
 18156  //
 18157  // API parameter values that are decorated as "sensitive" in the API will not
 18158  // be included in the string output. The member name will be present, but the
 18159  // value will be replaced with "sensitive".
 18160  func (s UpdateAutoScalingGroupOutput) String() string {
 18161  	return awsutil.Prettify(s)
 18162  }
 18163  
 18164  // GoString returns the string representation.
 18165  //
 18166  // API parameter values that are decorated as "sensitive" in the API will not
 18167  // be included in the string output. The member name will be present, but the
 18168  // value will be replaced with "sensitive".
 18169  func (s UpdateAutoScalingGroupOutput) GoString() string {
 18170  	return s.String()
 18171  }
 18172  
 18173  // Describes a warm pool configuration.
 18174  type WarmPoolConfiguration struct {
 18175  	_ struct{} `type:"structure"`
 18176  
 18177  	// The maximum number of instances that are allowed to be in the warm pool or
 18178  	// in any state except Terminated for the Auto Scaling group.
 18179  	MaxGroupPreparedCapacity *int64 `type:"integer"`
 18180  
 18181  	// The minimum number of instances to maintain in the warm pool.
 18182  	MinSize *int64 `type:"integer"`
 18183  
 18184  	// The instance state to transition to after the lifecycle actions are complete.
 18185  	PoolState *string `type:"string" enum:"WarmPoolState"`
 18186  
 18187  	// The status of a warm pool that is marked for deletion.
 18188  	Status *string `type:"string" enum:"WarmPoolStatus"`
 18189  }
 18190  
 18191  // String returns the string representation.
 18192  //
 18193  // API parameter values that are decorated as "sensitive" in the API will not
 18194  // be included in the string output. The member name will be present, but the
 18195  // value will be replaced with "sensitive".
 18196  func (s WarmPoolConfiguration) String() string {
 18197  	return awsutil.Prettify(s)
 18198  }
 18199  
 18200  // GoString returns the string representation.
 18201  //
 18202  // API parameter values that are decorated as "sensitive" in the API will not
 18203  // be included in the string output. The member name will be present, but the
 18204  // value will be replaced with "sensitive".
 18205  func (s WarmPoolConfiguration) GoString() string {
 18206  	return s.String()
 18207  }
 18208  
 18209  // SetMaxGroupPreparedCapacity sets the MaxGroupPreparedCapacity field's value.
 18210  func (s *WarmPoolConfiguration) SetMaxGroupPreparedCapacity(v int64) *WarmPoolConfiguration {
 18211  	s.MaxGroupPreparedCapacity = &v
 18212  	return s
 18213  }
 18214  
 18215  // SetMinSize sets the MinSize field's value.
 18216  func (s *WarmPoolConfiguration) SetMinSize(v int64) *WarmPoolConfiguration {
 18217  	s.MinSize = &v
 18218  	return s
 18219  }
 18220  
 18221  // SetPoolState sets the PoolState field's value.
 18222  func (s *WarmPoolConfiguration) SetPoolState(v string) *WarmPoolConfiguration {
 18223  	s.PoolState = &v
 18224  	return s
 18225  }
 18226  
 18227  // SetStatus sets the Status field's value.
 18228  func (s *WarmPoolConfiguration) SetStatus(v string) *WarmPoolConfiguration {
 18229  	s.Status = &v
 18230  	return s
 18231  }
 18232  
 18233  const (
 18234  	// InstanceMetadataEndpointStateDisabled is a InstanceMetadataEndpointState enum value
 18235  	InstanceMetadataEndpointStateDisabled = "disabled"
 18236  
 18237  	// InstanceMetadataEndpointStateEnabled is a InstanceMetadataEndpointState enum value
 18238  	InstanceMetadataEndpointStateEnabled = "enabled"
 18239  )
 18240  
 18241  // InstanceMetadataEndpointState_Values returns all elements of the InstanceMetadataEndpointState enum
 18242  func InstanceMetadataEndpointState_Values() []string {
 18243  	return []string{
 18244  		InstanceMetadataEndpointStateDisabled,
 18245  		InstanceMetadataEndpointStateEnabled,
 18246  	}
 18247  }
 18248  
 18249  const (
 18250  	// InstanceMetadataHttpTokensStateOptional is a InstanceMetadataHttpTokensState enum value
 18251  	InstanceMetadataHttpTokensStateOptional = "optional"
 18252  
 18253  	// InstanceMetadataHttpTokensStateRequired is a InstanceMetadataHttpTokensState enum value
 18254  	InstanceMetadataHttpTokensStateRequired = "required"
 18255  )
 18256  
 18257  // InstanceMetadataHttpTokensState_Values returns all elements of the InstanceMetadataHttpTokensState enum
 18258  func InstanceMetadataHttpTokensState_Values() []string {
 18259  	return []string{
 18260  		InstanceMetadataHttpTokensStateOptional,
 18261  		InstanceMetadataHttpTokensStateRequired,
 18262  	}
 18263  }
 18264  
 18265  const (
 18266  	// InstanceRefreshStatusPending is a InstanceRefreshStatus enum value
 18267  	InstanceRefreshStatusPending = "Pending"
 18268  
 18269  	// InstanceRefreshStatusInProgress is a InstanceRefreshStatus enum value
 18270  	InstanceRefreshStatusInProgress = "InProgress"
 18271  
 18272  	// InstanceRefreshStatusSuccessful is a InstanceRefreshStatus enum value
 18273  	InstanceRefreshStatusSuccessful = "Successful"
 18274  
 18275  	// InstanceRefreshStatusFailed is a InstanceRefreshStatus enum value
 18276  	InstanceRefreshStatusFailed = "Failed"
 18277  
 18278  	// InstanceRefreshStatusCancelling is a InstanceRefreshStatus enum value
 18279  	InstanceRefreshStatusCancelling = "Cancelling"
 18280  
 18281  	// InstanceRefreshStatusCancelled is a InstanceRefreshStatus enum value
 18282  	InstanceRefreshStatusCancelled = "Cancelled"
 18283  )
 18284  
 18285  // InstanceRefreshStatus_Values returns all elements of the InstanceRefreshStatus enum
 18286  func InstanceRefreshStatus_Values() []string {
 18287  	return []string{
 18288  		InstanceRefreshStatusPending,
 18289  		InstanceRefreshStatusInProgress,
 18290  		InstanceRefreshStatusSuccessful,
 18291  		InstanceRefreshStatusFailed,
 18292  		InstanceRefreshStatusCancelling,
 18293  		InstanceRefreshStatusCancelled,
 18294  	}
 18295  }
 18296  
 18297  const (
 18298  	// LifecycleStatePending is a LifecycleState enum value
 18299  	LifecycleStatePending = "Pending"
 18300  
 18301  	// LifecycleStatePendingWait is a LifecycleState enum value
 18302  	LifecycleStatePendingWait = "Pending:Wait"
 18303  
 18304  	// LifecycleStatePendingProceed is a LifecycleState enum value
 18305  	LifecycleStatePendingProceed = "Pending:Proceed"
 18306  
 18307  	// LifecycleStateQuarantined is a LifecycleState enum value
 18308  	LifecycleStateQuarantined = "Quarantined"
 18309  
 18310  	// LifecycleStateInService is a LifecycleState enum value
 18311  	LifecycleStateInService = "InService"
 18312  
 18313  	// LifecycleStateTerminating is a LifecycleState enum value
 18314  	LifecycleStateTerminating = "Terminating"
 18315  
 18316  	// LifecycleStateTerminatingWait is a LifecycleState enum value
 18317  	LifecycleStateTerminatingWait = "Terminating:Wait"
 18318  
 18319  	// LifecycleStateTerminatingProceed is a LifecycleState enum value
 18320  	LifecycleStateTerminatingProceed = "Terminating:Proceed"
 18321  
 18322  	// LifecycleStateTerminated is a LifecycleState enum value
 18323  	LifecycleStateTerminated = "Terminated"
 18324  
 18325  	// LifecycleStateDetaching is a LifecycleState enum value
 18326  	LifecycleStateDetaching = "Detaching"
 18327  
 18328  	// LifecycleStateDetached is a LifecycleState enum value
 18329  	LifecycleStateDetached = "Detached"
 18330  
 18331  	// LifecycleStateEnteringStandby is a LifecycleState enum value
 18332  	LifecycleStateEnteringStandby = "EnteringStandby"
 18333  
 18334  	// LifecycleStateStandby is a LifecycleState enum value
 18335  	LifecycleStateStandby = "Standby"
 18336  
 18337  	// LifecycleStateWarmedPending is a LifecycleState enum value
 18338  	LifecycleStateWarmedPending = "Warmed:Pending"
 18339  
 18340  	// LifecycleStateWarmedPendingWait is a LifecycleState enum value
 18341  	LifecycleStateWarmedPendingWait = "Warmed:Pending:Wait"
 18342  
 18343  	// LifecycleStateWarmedPendingProceed is a LifecycleState enum value
 18344  	LifecycleStateWarmedPendingProceed = "Warmed:Pending:Proceed"
 18345  
 18346  	// LifecycleStateWarmedTerminating is a LifecycleState enum value
 18347  	LifecycleStateWarmedTerminating = "Warmed:Terminating"
 18348  
 18349  	// LifecycleStateWarmedTerminatingWait is a LifecycleState enum value
 18350  	LifecycleStateWarmedTerminatingWait = "Warmed:Terminating:Wait"
 18351  
 18352  	// LifecycleStateWarmedTerminatingProceed is a LifecycleState enum value
 18353  	LifecycleStateWarmedTerminatingProceed = "Warmed:Terminating:Proceed"
 18354  
 18355  	// LifecycleStateWarmedTerminated is a LifecycleState enum value
 18356  	LifecycleStateWarmedTerminated = "Warmed:Terminated"
 18357  
 18358  	// LifecycleStateWarmedStopped is a LifecycleState enum value
 18359  	LifecycleStateWarmedStopped = "Warmed:Stopped"
 18360  
 18361  	// LifecycleStateWarmedRunning is a LifecycleState enum value
 18362  	LifecycleStateWarmedRunning = "Warmed:Running"
 18363  )
 18364  
 18365  // LifecycleState_Values returns all elements of the LifecycleState enum
 18366  func LifecycleState_Values() []string {
 18367  	return []string{
 18368  		LifecycleStatePending,
 18369  		LifecycleStatePendingWait,
 18370  		LifecycleStatePendingProceed,
 18371  		LifecycleStateQuarantined,
 18372  		LifecycleStateInService,
 18373  		LifecycleStateTerminating,
 18374  		LifecycleStateTerminatingWait,
 18375  		LifecycleStateTerminatingProceed,
 18376  		LifecycleStateTerminated,
 18377  		LifecycleStateDetaching,
 18378  		LifecycleStateDetached,
 18379  		LifecycleStateEnteringStandby,
 18380  		LifecycleStateStandby,
 18381  		LifecycleStateWarmedPending,
 18382  		LifecycleStateWarmedPendingWait,
 18383  		LifecycleStateWarmedPendingProceed,
 18384  		LifecycleStateWarmedTerminating,
 18385  		LifecycleStateWarmedTerminatingWait,
 18386  		LifecycleStateWarmedTerminatingProceed,
 18387  		LifecycleStateWarmedTerminated,
 18388  		LifecycleStateWarmedStopped,
 18389  		LifecycleStateWarmedRunning,
 18390  	}
 18391  }
 18392  
 18393  const (
 18394  	// MetricStatisticAverage is a MetricStatistic enum value
 18395  	MetricStatisticAverage = "Average"
 18396  
 18397  	// MetricStatisticMinimum is a MetricStatistic enum value
 18398  	MetricStatisticMinimum = "Minimum"
 18399  
 18400  	// MetricStatisticMaximum is a MetricStatistic enum value
 18401  	MetricStatisticMaximum = "Maximum"
 18402  
 18403  	// MetricStatisticSampleCount is a MetricStatistic enum value
 18404  	MetricStatisticSampleCount = "SampleCount"
 18405  
 18406  	// MetricStatisticSum is a MetricStatistic enum value
 18407  	MetricStatisticSum = "Sum"
 18408  )
 18409  
 18410  // MetricStatistic_Values returns all elements of the MetricStatistic enum
 18411  func MetricStatistic_Values() []string {
 18412  	return []string{
 18413  		MetricStatisticAverage,
 18414  		MetricStatisticMinimum,
 18415  		MetricStatisticMaximum,
 18416  		MetricStatisticSampleCount,
 18417  		MetricStatisticSum,
 18418  	}
 18419  }
 18420  
 18421  const (
 18422  	// MetricTypeAsgaverageCpuutilization is a MetricType enum value
 18423  	MetricTypeAsgaverageCpuutilization = "ASGAverageCPUUtilization"
 18424  
 18425  	// MetricTypeAsgaverageNetworkIn is a MetricType enum value
 18426  	MetricTypeAsgaverageNetworkIn = "ASGAverageNetworkIn"
 18427  
 18428  	// MetricTypeAsgaverageNetworkOut is a MetricType enum value
 18429  	MetricTypeAsgaverageNetworkOut = "ASGAverageNetworkOut"
 18430  
 18431  	// MetricTypeAlbrequestCountPerTarget is a MetricType enum value
 18432  	MetricTypeAlbrequestCountPerTarget = "ALBRequestCountPerTarget"
 18433  )
 18434  
 18435  // MetricType_Values returns all elements of the MetricType enum
 18436  func MetricType_Values() []string {
 18437  	return []string{
 18438  		MetricTypeAsgaverageCpuutilization,
 18439  		MetricTypeAsgaverageNetworkIn,
 18440  		MetricTypeAsgaverageNetworkOut,
 18441  		MetricTypeAlbrequestCountPerTarget,
 18442  	}
 18443  }
 18444  
 18445  const (
 18446  	// PredefinedLoadMetricTypeAsgtotalCpuutilization is a PredefinedLoadMetricType enum value
 18447  	PredefinedLoadMetricTypeAsgtotalCpuutilization = "ASGTotalCPUUtilization"
 18448  
 18449  	// PredefinedLoadMetricTypeAsgtotalNetworkIn is a PredefinedLoadMetricType enum value
 18450  	PredefinedLoadMetricTypeAsgtotalNetworkIn = "ASGTotalNetworkIn"
 18451  
 18452  	// PredefinedLoadMetricTypeAsgtotalNetworkOut is a PredefinedLoadMetricType enum value
 18453  	PredefinedLoadMetricTypeAsgtotalNetworkOut = "ASGTotalNetworkOut"
 18454  
 18455  	// PredefinedLoadMetricTypeAlbtargetGroupRequestCount is a PredefinedLoadMetricType enum value
 18456  	PredefinedLoadMetricTypeAlbtargetGroupRequestCount = "ALBTargetGroupRequestCount"
 18457  )
 18458  
 18459  // PredefinedLoadMetricType_Values returns all elements of the PredefinedLoadMetricType enum
 18460  func PredefinedLoadMetricType_Values() []string {
 18461  	return []string{
 18462  		PredefinedLoadMetricTypeAsgtotalCpuutilization,
 18463  		PredefinedLoadMetricTypeAsgtotalNetworkIn,
 18464  		PredefinedLoadMetricTypeAsgtotalNetworkOut,
 18465  		PredefinedLoadMetricTypeAlbtargetGroupRequestCount,
 18466  	}
 18467  }
 18468  
 18469  const (
 18470  	// PredefinedMetricPairTypeAsgcpuutilization is a PredefinedMetricPairType enum value
 18471  	PredefinedMetricPairTypeAsgcpuutilization = "ASGCPUUtilization"
 18472  
 18473  	// PredefinedMetricPairTypeAsgnetworkIn is a PredefinedMetricPairType enum value
 18474  	PredefinedMetricPairTypeAsgnetworkIn = "ASGNetworkIn"
 18475  
 18476  	// PredefinedMetricPairTypeAsgnetworkOut is a PredefinedMetricPairType enum value
 18477  	PredefinedMetricPairTypeAsgnetworkOut = "ASGNetworkOut"
 18478  
 18479  	// PredefinedMetricPairTypeAlbrequestCount is a PredefinedMetricPairType enum value
 18480  	PredefinedMetricPairTypeAlbrequestCount = "ALBRequestCount"
 18481  )
 18482  
 18483  // PredefinedMetricPairType_Values returns all elements of the PredefinedMetricPairType enum
 18484  func PredefinedMetricPairType_Values() []string {
 18485  	return []string{
 18486  		PredefinedMetricPairTypeAsgcpuutilization,
 18487  		PredefinedMetricPairTypeAsgnetworkIn,
 18488  		PredefinedMetricPairTypeAsgnetworkOut,
 18489  		PredefinedMetricPairTypeAlbrequestCount,
 18490  	}
 18491  }
 18492  
 18493  const (
 18494  	// PredefinedScalingMetricTypeAsgaverageCpuutilization is a PredefinedScalingMetricType enum value
 18495  	PredefinedScalingMetricTypeAsgaverageCpuutilization = "ASGAverageCPUUtilization"
 18496  
 18497  	// PredefinedScalingMetricTypeAsgaverageNetworkIn is a PredefinedScalingMetricType enum value
 18498  	PredefinedScalingMetricTypeAsgaverageNetworkIn = "ASGAverageNetworkIn"
 18499  
 18500  	// PredefinedScalingMetricTypeAsgaverageNetworkOut is a PredefinedScalingMetricType enum value
 18501  	PredefinedScalingMetricTypeAsgaverageNetworkOut = "ASGAverageNetworkOut"
 18502  
 18503  	// PredefinedScalingMetricTypeAlbrequestCountPerTarget is a PredefinedScalingMetricType enum value
 18504  	PredefinedScalingMetricTypeAlbrequestCountPerTarget = "ALBRequestCountPerTarget"
 18505  )
 18506  
 18507  // PredefinedScalingMetricType_Values returns all elements of the PredefinedScalingMetricType enum
 18508  func PredefinedScalingMetricType_Values() []string {
 18509  	return []string{
 18510  		PredefinedScalingMetricTypeAsgaverageCpuutilization,
 18511  		PredefinedScalingMetricTypeAsgaverageNetworkIn,
 18512  		PredefinedScalingMetricTypeAsgaverageNetworkOut,
 18513  		PredefinedScalingMetricTypeAlbrequestCountPerTarget,
 18514  	}
 18515  }
 18516  
 18517  const (
 18518  	// PredictiveScalingMaxCapacityBreachBehaviorHonorMaxCapacity is a PredictiveScalingMaxCapacityBreachBehavior enum value
 18519  	PredictiveScalingMaxCapacityBreachBehaviorHonorMaxCapacity = "HonorMaxCapacity"
 18520  
 18521  	// PredictiveScalingMaxCapacityBreachBehaviorIncreaseMaxCapacity is a PredictiveScalingMaxCapacityBreachBehavior enum value
 18522  	PredictiveScalingMaxCapacityBreachBehaviorIncreaseMaxCapacity = "IncreaseMaxCapacity"
 18523  )
 18524  
 18525  // PredictiveScalingMaxCapacityBreachBehavior_Values returns all elements of the PredictiveScalingMaxCapacityBreachBehavior enum
 18526  func PredictiveScalingMaxCapacityBreachBehavior_Values() []string {
 18527  	return []string{
 18528  		PredictiveScalingMaxCapacityBreachBehaviorHonorMaxCapacity,
 18529  		PredictiveScalingMaxCapacityBreachBehaviorIncreaseMaxCapacity,
 18530  	}
 18531  }
 18532  
 18533  const (
 18534  	// PredictiveScalingModeForecastAndScale is a PredictiveScalingMode enum value
 18535  	PredictiveScalingModeForecastAndScale = "ForecastAndScale"
 18536  
 18537  	// PredictiveScalingModeForecastOnly is a PredictiveScalingMode enum value
 18538  	PredictiveScalingModeForecastOnly = "ForecastOnly"
 18539  )
 18540  
 18541  // PredictiveScalingMode_Values returns all elements of the PredictiveScalingMode enum
 18542  func PredictiveScalingMode_Values() []string {
 18543  	return []string{
 18544  		PredictiveScalingModeForecastAndScale,
 18545  		PredictiveScalingModeForecastOnly,
 18546  	}
 18547  }
 18548  
 18549  const (
 18550  	// RefreshStrategyRolling is a RefreshStrategy enum value
 18551  	RefreshStrategyRolling = "Rolling"
 18552  )
 18553  
 18554  // RefreshStrategy_Values returns all elements of the RefreshStrategy enum
 18555  func RefreshStrategy_Values() []string {
 18556  	return []string{
 18557  		RefreshStrategyRolling,
 18558  	}
 18559  }
 18560  
 18561  const (
 18562  	// ScalingActivityStatusCodePendingSpotBidPlacement is a ScalingActivityStatusCode enum value
 18563  	ScalingActivityStatusCodePendingSpotBidPlacement = "PendingSpotBidPlacement"
 18564  
 18565  	// ScalingActivityStatusCodeWaitingForSpotInstanceRequestId is a ScalingActivityStatusCode enum value
 18566  	ScalingActivityStatusCodeWaitingForSpotInstanceRequestId = "WaitingForSpotInstanceRequestId"
 18567  
 18568  	// ScalingActivityStatusCodeWaitingForSpotInstanceId is a ScalingActivityStatusCode enum value
 18569  	ScalingActivityStatusCodeWaitingForSpotInstanceId = "WaitingForSpotInstanceId"
 18570  
 18571  	// ScalingActivityStatusCodeWaitingForInstanceId is a ScalingActivityStatusCode enum value
 18572  	ScalingActivityStatusCodeWaitingForInstanceId = "WaitingForInstanceId"
 18573  
 18574  	// ScalingActivityStatusCodePreInService is a ScalingActivityStatusCode enum value
 18575  	ScalingActivityStatusCodePreInService = "PreInService"
 18576  
 18577  	// ScalingActivityStatusCodeInProgress is a ScalingActivityStatusCode enum value
 18578  	ScalingActivityStatusCodeInProgress = "InProgress"
 18579  
 18580  	// ScalingActivityStatusCodeWaitingForElbconnectionDraining is a ScalingActivityStatusCode enum value
 18581  	ScalingActivityStatusCodeWaitingForElbconnectionDraining = "WaitingForELBConnectionDraining"
 18582  
 18583  	// ScalingActivityStatusCodeMidLifecycleAction is a ScalingActivityStatusCode enum value
 18584  	ScalingActivityStatusCodeMidLifecycleAction = "MidLifecycleAction"
 18585  
 18586  	// ScalingActivityStatusCodeWaitingForInstanceWarmup is a ScalingActivityStatusCode enum value
 18587  	ScalingActivityStatusCodeWaitingForInstanceWarmup = "WaitingForInstanceWarmup"
 18588  
 18589  	// ScalingActivityStatusCodeSuccessful is a ScalingActivityStatusCode enum value
 18590  	ScalingActivityStatusCodeSuccessful = "Successful"
 18591  
 18592  	// ScalingActivityStatusCodeFailed is a ScalingActivityStatusCode enum value
 18593  	ScalingActivityStatusCodeFailed = "Failed"
 18594  
 18595  	// ScalingActivityStatusCodeCancelled is a ScalingActivityStatusCode enum value
 18596  	ScalingActivityStatusCodeCancelled = "Cancelled"
 18597  )
 18598  
 18599  // ScalingActivityStatusCode_Values returns all elements of the ScalingActivityStatusCode enum
 18600  func ScalingActivityStatusCode_Values() []string {
 18601  	return []string{
 18602  		ScalingActivityStatusCodePendingSpotBidPlacement,
 18603  		ScalingActivityStatusCodeWaitingForSpotInstanceRequestId,
 18604  		ScalingActivityStatusCodeWaitingForSpotInstanceId,
 18605  		ScalingActivityStatusCodeWaitingForInstanceId,
 18606  		ScalingActivityStatusCodePreInService,
 18607  		ScalingActivityStatusCodeInProgress,
 18608  		ScalingActivityStatusCodeWaitingForElbconnectionDraining,
 18609  		ScalingActivityStatusCodeMidLifecycleAction,
 18610  		ScalingActivityStatusCodeWaitingForInstanceWarmup,
 18611  		ScalingActivityStatusCodeSuccessful,
 18612  		ScalingActivityStatusCodeFailed,
 18613  		ScalingActivityStatusCodeCancelled,
 18614  	}
 18615  }
 18616  
 18617  const (
 18618  	// WarmPoolStateStopped is a WarmPoolState enum value
 18619  	WarmPoolStateStopped = "Stopped"
 18620  
 18621  	// WarmPoolStateRunning is a WarmPoolState enum value
 18622  	WarmPoolStateRunning = "Running"
 18623  )
 18624  
 18625  // WarmPoolState_Values returns all elements of the WarmPoolState enum
 18626  func WarmPoolState_Values() []string {
 18627  	return []string{
 18628  		WarmPoolStateStopped,
 18629  		WarmPoolStateRunning,
 18630  	}
 18631  }
 18632  
 18633  const (
 18634  	// WarmPoolStatusPendingDelete is a WarmPoolStatus enum value
 18635  	WarmPoolStatusPendingDelete = "PendingDelete"
 18636  )
 18637  
 18638  // WarmPoolStatus_Values returns all elements of the WarmPoolStatus enum
 18639  func WarmPoolStatus_Values() []string {
 18640  	return []string{
 18641  		WarmPoolStatusPendingDelete,
 18642  	}
 18643  }