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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package applicationautoscaling
     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/jsonrpc"
    14  )
    15  
    16  const opDeleteScalingPolicy = "DeleteScalingPolicy"
    17  
    18  // DeleteScalingPolicyRequest generates a "aws/request.Request" representing the
    19  // client's request for the DeleteScalingPolicy 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 DeleteScalingPolicy for more information on using the DeleteScalingPolicy
    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 DeleteScalingPolicyRequest method.
    34  //    req, resp := client.DeleteScalingPolicyRequest(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/application-autoscaling-2016-02-06/DeleteScalingPolicy
    42  func (c *ApplicationAutoScaling) DeleteScalingPolicyRequest(input *DeleteScalingPolicyInput) (req *request.Request, output *DeleteScalingPolicyOutput) {
    43  	op := &request.Operation{
    44  		Name:       opDeleteScalingPolicy,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &DeleteScalingPolicyInput{}
    51  	}
    52  
    53  	output = &DeleteScalingPolicyOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // DeleteScalingPolicy API operation for Application Auto Scaling.
    60  //
    61  // Deletes the specified scaling policy for an Application Auto Scaling scalable
    62  // target.
    63  //
    64  // Deleting a step scaling policy deletes the underlying alarm action, but does
    65  // not delete the CloudWatch alarm associated with the scaling policy, even
    66  // if it no longer has an associated action.
    67  //
    68  // For more information, see Delete a step scaling policy (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#delete-step-scaling-policy)
    69  // and Delete a target tracking scaling policy (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html#delete-target-tracking-policy)
    70  // in the Application Auto Scaling User Guide.
    71  //
    72  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    73  // with awserr.Error's Code and Message methods to get detailed information about
    74  // the error.
    75  //
    76  // See the AWS API reference guide for Application Auto Scaling's
    77  // API operation DeleteScalingPolicy for usage and error information.
    78  //
    79  // Returned Error Types:
    80  //   * ValidationException
    81  //   An exception was thrown for a validation issue. Review the available parameters
    82  //   for the API request.
    83  //
    84  //   * ObjectNotFoundException
    85  //   The specified object could not be found. For any operation that depends on
    86  //   the existence of a scalable target, this exception is thrown if the scalable
    87  //   target with the specified service namespace, resource ID, and scalable dimension
    88  //   does not exist. For any operation that deletes or deregisters a resource,
    89  //   this exception is thrown if the resource cannot be found.
    90  //
    91  //   * ConcurrentUpdateException
    92  //   Concurrent updates caused an exception, for example, if you request an update
    93  //   to an Application Auto Scaling resource that already has a pending update.
    94  //
    95  //   * InternalServiceException
    96  //   The service encountered an internal error.
    97  //
    98  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScalingPolicy
    99  func (c *ApplicationAutoScaling) DeleteScalingPolicy(input *DeleteScalingPolicyInput) (*DeleteScalingPolicyOutput, error) {
   100  	req, out := c.DeleteScalingPolicyRequest(input)
   101  	return out, req.Send()
   102  }
   103  
   104  // DeleteScalingPolicyWithContext is the same as DeleteScalingPolicy with the addition of
   105  // the ability to pass a context and additional request options.
   106  //
   107  // See DeleteScalingPolicy for details on how to use this API operation.
   108  //
   109  // The context must be non-nil and will be used for request cancellation. If
   110  // the context is nil a panic will occur. In the future the SDK may create
   111  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   112  // for more information on using Contexts.
   113  func (c *ApplicationAutoScaling) DeleteScalingPolicyWithContext(ctx aws.Context, input *DeleteScalingPolicyInput, opts ...request.Option) (*DeleteScalingPolicyOutput, error) {
   114  	req, out := c.DeleteScalingPolicyRequest(input)
   115  	req.SetContext(ctx)
   116  	req.ApplyOptions(opts...)
   117  	return out, req.Send()
   118  }
   119  
   120  const opDeleteScheduledAction = "DeleteScheduledAction"
   121  
   122  // DeleteScheduledActionRequest generates a "aws/request.Request" representing the
   123  // client's request for the DeleteScheduledAction operation. The "output" return
   124  // value will be populated with the request's response once the request completes
   125  // successfully.
   126  //
   127  // Use "Send" method on the returned Request to send the API call to the service.
   128  // the "output" return value is not valid until after Send returns without error.
   129  //
   130  // See DeleteScheduledAction for more information on using the DeleteScheduledAction
   131  // API call, and error handling.
   132  //
   133  // This method is useful when you want to inject custom logic or configuration
   134  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   135  //
   136  //
   137  //    // Example sending a request using the DeleteScheduledActionRequest method.
   138  //    req, resp := client.DeleteScheduledActionRequest(params)
   139  //
   140  //    err := req.Send()
   141  //    if err == nil { // resp is now filled
   142  //        fmt.Println(resp)
   143  //    }
   144  //
   145  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScheduledAction
   146  func (c *ApplicationAutoScaling) DeleteScheduledActionRequest(input *DeleteScheduledActionInput) (req *request.Request, output *DeleteScheduledActionOutput) {
   147  	op := &request.Operation{
   148  		Name:       opDeleteScheduledAction,
   149  		HTTPMethod: "POST",
   150  		HTTPPath:   "/",
   151  	}
   152  
   153  	if input == nil {
   154  		input = &DeleteScheduledActionInput{}
   155  	}
   156  
   157  	output = &DeleteScheduledActionOutput{}
   158  	req = c.newRequest(op, input, output)
   159  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   160  	return
   161  }
   162  
   163  // DeleteScheduledAction API operation for Application Auto Scaling.
   164  //
   165  // Deletes the specified scheduled action for an Application Auto Scaling scalable
   166  // target.
   167  //
   168  // For more information, see Delete a scheduled action (https://docs.aws.amazon.com/autoscaling/application/userguide/scheduled-scaling-additional-cli-commands.html#delete-scheduled-action)
   169  // in the Application Auto Scaling User Guide.
   170  //
   171  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   172  // with awserr.Error's Code and Message methods to get detailed information about
   173  // the error.
   174  //
   175  // See the AWS API reference guide for Application Auto Scaling's
   176  // API operation DeleteScheduledAction for usage and error information.
   177  //
   178  // Returned Error Types:
   179  //   * ValidationException
   180  //   An exception was thrown for a validation issue. Review the available parameters
   181  //   for the API request.
   182  //
   183  //   * ObjectNotFoundException
   184  //   The specified object could not be found. For any operation that depends on
   185  //   the existence of a scalable target, this exception is thrown if the scalable
   186  //   target with the specified service namespace, resource ID, and scalable dimension
   187  //   does not exist. For any operation that deletes or deregisters a resource,
   188  //   this exception is thrown if the resource cannot be found.
   189  //
   190  //   * ConcurrentUpdateException
   191  //   Concurrent updates caused an exception, for example, if you request an update
   192  //   to an Application Auto Scaling resource that already has a pending update.
   193  //
   194  //   * InternalServiceException
   195  //   The service encountered an internal error.
   196  //
   197  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScheduledAction
   198  func (c *ApplicationAutoScaling) DeleteScheduledAction(input *DeleteScheduledActionInput) (*DeleteScheduledActionOutput, error) {
   199  	req, out := c.DeleteScheduledActionRequest(input)
   200  	return out, req.Send()
   201  }
   202  
   203  // DeleteScheduledActionWithContext is the same as DeleteScheduledAction with the addition of
   204  // the ability to pass a context and additional request options.
   205  //
   206  // See DeleteScheduledAction for details on how to use this API operation.
   207  //
   208  // The context must be non-nil and will be used for request cancellation. If
   209  // the context is nil a panic will occur. In the future the SDK may create
   210  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   211  // for more information on using Contexts.
   212  func (c *ApplicationAutoScaling) DeleteScheduledActionWithContext(ctx aws.Context, input *DeleteScheduledActionInput, opts ...request.Option) (*DeleteScheduledActionOutput, error) {
   213  	req, out := c.DeleteScheduledActionRequest(input)
   214  	req.SetContext(ctx)
   215  	req.ApplyOptions(opts...)
   216  	return out, req.Send()
   217  }
   218  
   219  const opDeregisterScalableTarget = "DeregisterScalableTarget"
   220  
   221  // DeregisterScalableTargetRequest generates a "aws/request.Request" representing the
   222  // client's request for the DeregisterScalableTarget operation. The "output" return
   223  // value will be populated with the request's response once the request completes
   224  // successfully.
   225  //
   226  // Use "Send" method on the returned Request to send the API call to the service.
   227  // the "output" return value is not valid until after Send returns without error.
   228  //
   229  // See DeregisterScalableTarget for more information on using the DeregisterScalableTarget
   230  // API call, and error handling.
   231  //
   232  // This method is useful when you want to inject custom logic or configuration
   233  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   234  //
   235  //
   236  //    // Example sending a request using the DeregisterScalableTargetRequest method.
   237  //    req, resp := client.DeregisterScalableTargetRequest(params)
   238  //
   239  //    err := req.Send()
   240  //    if err == nil { // resp is now filled
   241  //        fmt.Println(resp)
   242  //    }
   243  //
   244  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeregisterScalableTarget
   245  func (c *ApplicationAutoScaling) DeregisterScalableTargetRequest(input *DeregisterScalableTargetInput) (req *request.Request, output *DeregisterScalableTargetOutput) {
   246  	op := &request.Operation{
   247  		Name:       opDeregisterScalableTarget,
   248  		HTTPMethod: "POST",
   249  		HTTPPath:   "/",
   250  	}
   251  
   252  	if input == nil {
   253  		input = &DeregisterScalableTargetInput{}
   254  	}
   255  
   256  	output = &DeregisterScalableTargetOutput{}
   257  	req = c.newRequest(op, input, output)
   258  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   259  	return
   260  }
   261  
   262  // DeregisterScalableTarget API operation for Application Auto Scaling.
   263  //
   264  // Deregisters an Application Auto Scaling scalable target when you have finished
   265  // using it. To see which resources have been registered, use DescribeScalableTargets
   266  // (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html).
   267  //
   268  // Deregistering a scalable target deletes the scaling policies and the scheduled
   269  // actions that are associated with it.
   270  //
   271  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   272  // with awserr.Error's Code and Message methods to get detailed information about
   273  // the error.
   274  //
   275  // See the AWS API reference guide for Application Auto Scaling's
   276  // API operation DeregisterScalableTarget for usage and error information.
   277  //
   278  // Returned Error Types:
   279  //   * ValidationException
   280  //   An exception was thrown for a validation issue. Review the available parameters
   281  //   for the API request.
   282  //
   283  //   * ObjectNotFoundException
   284  //   The specified object could not be found. For any operation that depends on
   285  //   the existence of a scalable target, this exception is thrown if the scalable
   286  //   target with the specified service namespace, resource ID, and scalable dimension
   287  //   does not exist. For any operation that deletes or deregisters a resource,
   288  //   this exception is thrown if the resource cannot be found.
   289  //
   290  //   * ConcurrentUpdateException
   291  //   Concurrent updates caused an exception, for example, if you request an update
   292  //   to an Application Auto Scaling resource that already has a pending update.
   293  //
   294  //   * InternalServiceException
   295  //   The service encountered an internal error.
   296  //
   297  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeregisterScalableTarget
   298  func (c *ApplicationAutoScaling) DeregisterScalableTarget(input *DeregisterScalableTargetInput) (*DeregisterScalableTargetOutput, error) {
   299  	req, out := c.DeregisterScalableTargetRequest(input)
   300  	return out, req.Send()
   301  }
   302  
   303  // DeregisterScalableTargetWithContext is the same as DeregisterScalableTarget with the addition of
   304  // the ability to pass a context and additional request options.
   305  //
   306  // See DeregisterScalableTarget for details on how to use this API operation.
   307  //
   308  // The context must be non-nil and will be used for request cancellation. If
   309  // the context is nil a panic will occur. In the future the SDK may create
   310  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   311  // for more information on using Contexts.
   312  func (c *ApplicationAutoScaling) DeregisterScalableTargetWithContext(ctx aws.Context, input *DeregisterScalableTargetInput, opts ...request.Option) (*DeregisterScalableTargetOutput, error) {
   313  	req, out := c.DeregisterScalableTargetRequest(input)
   314  	req.SetContext(ctx)
   315  	req.ApplyOptions(opts...)
   316  	return out, req.Send()
   317  }
   318  
   319  const opDescribeScalableTargets = "DescribeScalableTargets"
   320  
   321  // DescribeScalableTargetsRequest generates a "aws/request.Request" representing the
   322  // client's request for the DescribeScalableTargets operation. The "output" return
   323  // value will be populated with the request's response once the request completes
   324  // successfully.
   325  //
   326  // Use "Send" method on the returned Request to send the API call to the service.
   327  // the "output" return value is not valid until after Send returns without error.
   328  //
   329  // See DescribeScalableTargets for more information on using the DescribeScalableTargets
   330  // API call, and error handling.
   331  //
   332  // This method is useful when you want to inject custom logic or configuration
   333  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   334  //
   335  //
   336  //    // Example sending a request using the DescribeScalableTargetsRequest method.
   337  //    req, resp := client.DescribeScalableTargetsRequest(params)
   338  //
   339  //    err := req.Send()
   340  //    if err == nil { // resp is now filled
   341  //        fmt.Println(resp)
   342  //    }
   343  //
   344  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalableTargets
   345  func (c *ApplicationAutoScaling) DescribeScalableTargetsRequest(input *DescribeScalableTargetsInput) (req *request.Request, output *DescribeScalableTargetsOutput) {
   346  	op := &request.Operation{
   347  		Name:       opDescribeScalableTargets,
   348  		HTTPMethod: "POST",
   349  		HTTPPath:   "/",
   350  		Paginator: &request.Paginator{
   351  			InputTokens:     []string{"NextToken"},
   352  			OutputTokens:    []string{"NextToken"},
   353  			LimitToken:      "MaxResults",
   354  			TruncationToken: "",
   355  		},
   356  	}
   357  
   358  	if input == nil {
   359  		input = &DescribeScalableTargetsInput{}
   360  	}
   361  
   362  	output = &DescribeScalableTargetsOutput{}
   363  	req = c.newRequest(op, input, output)
   364  	return
   365  }
   366  
   367  // DescribeScalableTargets API operation for Application Auto Scaling.
   368  //
   369  // Gets information about the scalable targets in the specified namespace.
   370  //
   371  // You can filter the results using ResourceIds and ScalableDimension.
   372  //
   373  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   374  // with awserr.Error's Code and Message methods to get detailed information about
   375  // the error.
   376  //
   377  // See the AWS API reference guide for Application Auto Scaling's
   378  // API operation DescribeScalableTargets for usage and error information.
   379  //
   380  // Returned Error Types:
   381  //   * ValidationException
   382  //   An exception was thrown for a validation issue. Review the available parameters
   383  //   for the API request.
   384  //
   385  //   * InvalidNextTokenException
   386  //   The next token supplied was invalid.
   387  //
   388  //   * ConcurrentUpdateException
   389  //   Concurrent updates caused an exception, for example, if you request an update
   390  //   to an Application Auto Scaling resource that already has a pending update.
   391  //
   392  //   * InternalServiceException
   393  //   The service encountered an internal error.
   394  //
   395  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalableTargets
   396  func (c *ApplicationAutoScaling) DescribeScalableTargets(input *DescribeScalableTargetsInput) (*DescribeScalableTargetsOutput, error) {
   397  	req, out := c.DescribeScalableTargetsRequest(input)
   398  	return out, req.Send()
   399  }
   400  
   401  // DescribeScalableTargetsWithContext is the same as DescribeScalableTargets with the addition of
   402  // the ability to pass a context and additional request options.
   403  //
   404  // See DescribeScalableTargets for details on how to use this API operation.
   405  //
   406  // The context must be non-nil and will be used for request cancellation. If
   407  // the context is nil a panic will occur. In the future the SDK may create
   408  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   409  // for more information on using Contexts.
   410  func (c *ApplicationAutoScaling) DescribeScalableTargetsWithContext(ctx aws.Context, input *DescribeScalableTargetsInput, opts ...request.Option) (*DescribeScalableTargetsOutput, error) {
   411  	req, out := c.DescribeScalableTargetsRequest(input)
   412  	req.SetContext(ctx)
   413  	req.ApplyOptions(opts...)
   414  	return out, req.Send()
   415  }
   416  
   417  // DescribeScalableTargetsPages iterates over the pages of a DescribeScalableTargets operation,
   418  // calling the "fn" function with the response data for each page. To stop
   419  // iterating, return false from the fn function.
   420  //
   421  // See DescribeScalableTargets method for more information on how to use this operation.
   422  //
   423  // Note: This operation can generate multiple requests to a service.
   424  //
   425  //    // Example iterating over at most 3 pages of a DescribeScalableTargets operation.
   426  //    pageNum := 0
   427  //    err := client.DescribeScalableTargetsPages(params,
   428  //        func(page *applicationautoscaling.DescribeScalableTargetsOutput, lastPage bool) bool {
   429  //            pageNum++
   430  //            fmt.Println(page)
   431  //            return pageNum <= 3
   432  //        })
   433  //
   434  func (c *ApplicationAutoScaling) DescribeScalableTargetsPages(input *DescribeScalableTargetsInput, fn func(*DescribeScalableTargetsOutput, bool) bool) error {
   435  	return c.DescribeScalableTargetsPagesWithContext(aws.BackgroundContext(), input, fn)
   436  }
   437  
   438  // DescribeScalableTargetsPagesWithContext same as DescribeScalableTargetsPages except
   439  // it takes a Context and allows setting request options on the pages.
   440  //
   441  // The context must be non-nil and will be used for request cancellation. If
   442  // the context is nil a panic will occur. In the future the SDK may create
   443  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   444  // for more information on using Contexts.
   445  func (c *ApplicationAutoScaling) DescribeScalableTargetsPagesWithContext(ctx aws.Context, input *DescribeScalableTargetsInput, fn func(*DescribeScalableTargetsOutput, bool) bool, opts ...request.Option) error {
   446  	p := request.Pagination{
   447  		NewRequest: func() (*request.Request, error) {
   448  			var inCpy *DescribeScalableTargetsInput
   449  			if input != nil {
   450  				tmp := *input
   451  				inCpy = &tmp
   452  			}
   453  			req, _ := c.DescribeScalableTargetsRequest(inCpy)
   454  			req.SetContext(ctx)
   455  			req.ApplyOptions(opts...)
   456  			return req, nil
   457  		},
   458  	}
   459  
   460  	for p.Next() {
   461  		if !fn(p.Page().(*DescribeScalableTargetsOutput), !p.HasNextPage()) {
   462  			break
   463  		}
   464  	}
   465  
   466  	return p.Err()
   467  }
   468  
   469  const opDescribeScalingActivities = "DescribeScalingActivities"
   470  
   471  // DescribeScalingActivitiesRequest generates a "aws/request.Request" representing the
   472  // client's request for the DescribeScalingActivities operation. The "output" return
   473  // value will be populated with the request's response once the request completes
   474  // successfully.
   475  //
   476  // Use "Send" method on the returned Request to send the API call to the service.
   477  // the "output" return value is not valid until after Send returns without error.
   478  //
   479  // See DescribeScalingActivities for more information on using the DescribeScalingActivities
   480  // API call, and error handling.
   481  //
   482  // This method is useful when you want to inject custom logic or configuration
   483  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   484  //
   485  //
   486  //    // Example sending a request using the DescribeScalingActivitiesRequest method.
   487  //    req, resp := client.DescribeScalingActivitiesRequest(params)
   488  //
   489  //    err := req.Send()
   490  //    if err == nil { // resp is now filled
   491  //        fmt.Println(resp)
   492  //    }
   493  //
   494  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingActivities
   495  func (c *ApplicationAutoScaling) DescribeScalingActivitiesRequest(input *DescribeScalingActivitiesInput) (req *request.Request, output *DescribeScalingActivitiesOutput) {
   496  	op := &request.Operation{
   497  		Name:       opDescribeScalingActivities,
   498  		HTTPMethod: "POST",
   499  		HTTPPath:   "/",
   500  		Paginator: &request.Paginator{
   501  			InputTokens:     []string{"NextToken"},
   502  			OutputTokens:    []string{"NextToken"},
   503  			LimitToken:      "MaxResults",
   504  			TruncationToken: "",
   505  		},
   506  	}
   507  
   508  	if input == nil {
   509  		input = &DescribeScalingActivitiesInput{}
   510  	}
   511  
   512  	output = &DescribeScalingActivitiesOutput{}
   513  	req = c.newRequest(op, input, output)
   514  	return
   515  }
   516  
   517  // DescribeScalingActivities API operation for Application Auto Scaling.
   518  //
   519  // Provides descriptive information about the scaling activities in the specified
   520  // namespace from the previous six weeks.
   521  //
   522  // You can filter the results using ResourceId and ScalableDimension.
   523  //
   524  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   525  // with awserr.Error's Code and Message methods to get detailed information about
   526  // the error.
   527  //
   528  // See the AWS API reference guide for Application Auto Scaling's
   529  // API operation DescribeScalingActivities for usage and error information.
   530  //
   531  // Returned Error Types:
   532  //   * ValidationException
   533  //   An exception was thrown for a validation issue. Review the available parameters
   534  //   for the API request.
   535  //
   536  //   * InvalidNextTokenException
   537  //   The next token supplied was invalid.
   538  //
   539  //   * ConcurrentUpdateException
   540  //   Concurrent updates caused an exception, for example, if you request an update
   541  //   to an Application Auto Scaling resource that already has a pending update.
   542  //
   543  //   * InternalServiceException
   544  //   The service encountered an internal error.
   545  //
   546  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingActivities
   547  func (c *ApplicationAutoScaling) DescribeScalingActivities(input *DescribeScalingActivitiesInput) (*DescribeScalingActivitiesOutput, error) {
   548  	req, out := c.DescribeScalingActivitiesRequest(input)
   549  	return out, req.Send()
   550  }
   551  
   552  // DescribeScalingActivitiesWithContext is the same as DescribeScalingActivities with the addition of
   553  // the ability to pass a context and additional request options.
   554  //
   555  // See DescribeScalingActivities for details on how to use this API operation.
   556  //
   557  // The context must be non-nil and will be used for request cancellation. If
   558  // the context is nil a panic will occur. In the future the SDK may create
   559  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   560  // for more information on using Contexts.
   561  func (c *ApplicationAutoScaling) DescribeScalingActivitiesWithContext(ctx aws.Context, input *DescribeScalingActivitiesInput, opts ...request.Option) (*DescribeScalingActivitiesOutput, error) {
   562  	req, out := c.DescribeScalingActivitiesRequest(input)
   563  	req.SetContext(ctx)
   564  	req.ApplyOptions(opts...)
   565  	return out, req.Send()
   566  }
   567  
   568  // DescribeScalingActivitiesPages iterates over the pages of a DescribeScalingActivities operation,
   569  // calling the "fn" function with the response data for each page. To stop
   570  // iterating, return false from the fn function.
   571  //
   572  // See DescribeScalingActivities method for more information on how to use this operation.
   573  //
   574  // Note: This operation can generate multiple requests to a service.
   575  //
   576  //    // Example iterating over at most 3 pages of a DescribeScalingActivities operation.
   577  //    pageNum := 0
   578  //    err := client.DescribeScalingActivitiesPages(params,
   579  //        func(page *applicationautoscaling.DescribeScalingActivitiesOutput, lastPage bool) bool {
   580  //            pageNum++
   581  //            fmt.Println(page)
   582  //            return pageNum <= 3
   583  //        })
   584  //
   585  func (c *ApplicationAutoScaling) DescribeScalingActivitiesPages(input *DescribeScalingActivitiesInput, fn func(*DescribeScalingActivitiesOutput, bool) bool) error {
   586  	return c.DescribeScalingActivitiesPagesWithContext(aws.BackgroundContext(), input, fn)
   587  }
   588  
   589  // DescribeScalingActivitiesPagesWithContext same as DescribeScalingActivitiesPages except
   590  // it takes a Context and allows setting request options on the pages.
   591  //
   592  // The context must be non-nil and will be used for request cancellation. If
   593  // the context is nil a panic will occur. In the future the SDK may create
   594  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   595  // for more information on using Contexts.
   596  func (c *ApplicationAutoScaling) DescribeScalingActivitiesPagesWithContext(ctx aws.Context, input *DescribeScalingActivitiesInput, fn func(*DescribeScalingActivitiesOutput, bool) bool, opts ...request.Option) error {
   597  	p := request.Pagination{
   598  		NewRequest: func() (*request.Request, error) {
   599  			var inCpy *DescribeScalingActivitiesInput
   600  			if input != nil {
   601  				tmp := *input
   602  				inCpy = &tmp
   603  			}
   604  			req, _ := c.DescribeScalingActivitiesRequest(inCpy)
   605  			req.SetContext(ctx)
   606  			req.ApplyOptions(opts...)
   607  			return req, nil
   608  		},
   609  	}
   610  
   611  	for p.Next() {
   612  		if !fn(p.Page().(*DescribeScalingActivitiesOutput), !p.HasNextPage()) {
   613  			break
   614  		}
   615  	}
   616  
   617  	return p.Err()
   618  }
   619  
   620  const opDescribeScalingPolicies = "DescribeScalingPolicies"
   621  
   622  // DescribeScalingPoliciesRequest generates a "aws/request.Request" representing the
   623  // client's request for the DescribeScalingPolicies operation. The "output" return
   624  // value will be populated with the request's response once the request completes
   625  // successfully.
   626  //
   627  // Use "Send" method on the returned Request to send the API call to the service.
   628  // the "output" return value is not valid until after Send returns without error.
   629  //
   630  // See DescribeScalingPolicies for more information on using the DescribeScalingPolicies
   631  // API call, and error handling.
   632  //
   633  // This method is useful when you want to inject custom logic or configuration
   634  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   635  //
   636  //
   637  //    // Example sending a request using the DescribeScalingPoliciesRequest method.
   638  //    req, resp := client.DescribeScalingPoliciesRequest(params)
   639  //
   640  //    err := req.Send()
   641  //    if err == nil { // resp is now filled
   642  //        fmt.Println(resp)
   643  //    }
   644  //
   645  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingPolicies
   646  func (c *ApplicationAutoScaling) DescribeScalingPoliciesRequest(input *DescribeScalingPoliciesInput) (req *request.Request, output *DescribeScalingPoliciesOutput) {
   647  	op := &request.Operation{
   648  		Name:       opDescribeScalingPolicies,
   649  		HTTPMethod: "POST",
   650  		HTTPPath:   "/",
   651  		Paginator: &request.Paginator{
   652  			InputTokens:     []string{"NextToken"},
   653  			OutputTokens:    []string{"NextToken"},
   654  			LimitToken:      "MaxResults",
   655  			TruncationToken: "",
   656  		},
   657  	}
   658  
   659  	if input == nil {
   660  		input = &DescribeScalingPoliciesInput{}
   661  	}
   662  
   663  	output = &DescribeScalingPoliciesOutput{}
   664  	req = c.newRequest(op, input, output)
   665  	return
   666  }
   667  
   668  // DescribeScalingPolicies API operation for Application Auto Scaling.
   669  //
   670  // Describes the Application Auto Scaling scaling policies for the specified
   671  // service namespace.
   672  //
   673  // You can filter the results using ResourceId, ScalableDimension, and PolicyNames.
   674  //
   675  // For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)
   676  // and Step scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html)
   677  // in the Application Auto Scaling User Guide.
   678  //
   679  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   680  // with awserr.Error's Code and Message methods to get detailed information about
   681  // the error.
   682  //
   683  // See the AWS API reference guide for Application Auto Scaling's
   684  // API operation DescribeScalingPolicies for usage and error information.
   685  //
   686  // Returned Error Types:
   687  //   * ValidationException
   688  //   An exception was thrown for a validation issue. Review the available parameters
   689  //   for the API request.
   690  //
   691  //   * FailedResourceAccessException
   692  //   Failed access to resources caused an exception. This exception is thrown
   693  //   when Application Auto Scaling is unable to retrieve the alarms associated
   694  //   with a scaling policy due to a client error, for example, if the role ARN
   695  //   specified for a scalable target does not have permission to call the CloudWatch
   696  //   DescribeAlarms (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)
   697  //   on your behalf.
   698  //
   699  //   * InvalidNextTokenException
   700  //   The next token supplied was invalid.
   701  //
   702  //   * ConcurrentUpdateException
   703  //   Concurrent updates caused an exception, for example, if you request an update
   704  //   to an Application Auto Scaling resource that already has a pending update.
   705  //
   706  //   * InternalServiceException
   707  //   The service encountered an internal error.
   708  //
   709  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingPolicies
   710  func (c *ApplicationAutoScaling) DescribeScalingPolicies(input *DescribeScalingPoliciesInput) (*DescribeScalingPoliciesOutput, error) {
   711  	req, out := c.DescribeScalingPoliciesRequest(input)
   712  	return out, req.Send()
   713  }
   714  
   715  // DescribeScalingPoliciesWithContext is the same as DescribeScalingPolicies with the addition of
   716  // the ability to pass a context and additional request options.
   717  //
   718  // See DescribeScalingPolicies for details on how to use this API operation.
   719  //
   720  // The context must be non-nil and will be used for request cancellation. If
   721  // the context is nil a panic will occur. In the future the SDK may create
   722  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   723  // for more information on using Contexts.
   724  func (c *ApplicationAutoScaling) DescribeScalingPoliciesWithContext(ctx aws.Context, input *DescribeScalingPoliciesInput, opts ...request.Option) (*DescribeScalingPoliciesOutput, error) {
   725  	req, out := c.DescribeScalingPoliciesRequest(input)
   726  	req.SetContext(ctx)
   727  	req.ApplyOptions(opts...)
   728  	return out, req.Send()
   729  }
   730  
   731  // DescribeScalingPoliciesPages iterates over the pages of a DescribeScalingPolicies operation,
   732  // calling the "fn" function with the response data for each page. To stop
   733  // iterating, return false from the fn function.
   734  //
   735  // See DescribeScalingPolicies method for more information on how to use this operation.
   736  //
   737  // Note: This operation can generate multiple requests to a service.
   738  //
   739  //    // Example iterating over at most 3 pages of a DescribeScalingPolicies operation.
   740  //    pageNum := 0
   741  //    err := client.DescribeScalingPoliciesPages(params,
   742  //        func(page *applicationautoscaling.DescribeScalingPoliciesOutput, lastPage bool) bool {
   743  //            pageNum++
   744  //            fmt.Println(page)
   745  //            return pageNum <= 3
   746  //        })
   747  //
   748  func (c *ApplicationAutoScaling) DescribeScalingPoliciesPages(input *DescribeScalingPoliciesInput, fn func(*DescribeScalingPoliciesOutput, bool) bool) error {
   749  	return c.DescribeScalingPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
   750  }
   751  
   752  // DescribeScalingPoliciesPagesWithContext same as DescribeScalingPoliciesPages except
   753  // it takes a Context and allows setting request options on the pages.
   754  //
   755  // The context must be non-nil and will be used for request cancellation. If
   756  // the context is nil a panic will occur. In the future the SDK may create
   757  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   758  // for more information on using Contexts.
   759  func (c *ApplicationAutoScaling) DescribeScalingPoliciesPagesWithContext(ctx aws.Context, input *DescribeScalingPoliciesInput, fn func(*DescribeScalingPoliciesOutput, bool) bool, opts ...request.Option) error {
   760  	p := request.Pagination{
   761  		NewRequest: func() (*request.Request, error) {
   762  			var inCpy *DescribeScalingPoliciesInput
   763  			if input != nil {
   764  				tmp := *input
   765  				inCpy = &tmp
   766  			}
   767  			req, _ := c.DescribeScalingPoliciesRequest(inCpy)
   768  			req.SetContext(ctx)
   769  			req.ApplyOptions(opts...)
   770  			return req, nil
   771  		},
   772  	}
   773  
   774  	for p.Next() {
   775  		if !fn(p.Page().(*DescribeScalingPoliciesOutput), !p.HasNextPage()) {
   776  			break
   777  		}
   778  	}
   779  
   780  	return p.Err()
   781  }
   782  
   783  const opDescribeScheduledActions = "DescribeScheduledActions"
   784  
   785  // DescribeScheduledActionsRequest generates a "aws/request.Request" representing the
   786  // client's request for the DescribeScheduledActions operation. The "output" return
   787  // value will be populated with the request's response once the request completes
   788  // successfully.
   789  //
   790  // Use "Send" method on the returned Request to send the API call to the service.
   791  // the "output" return value is not valid until after Send returns without error.
   792  //
   793  // See DescribeScheduledActions for more information on using the DescribeScheduledActions
   794  // API call, and error handling.
   795  //
   796  // This method is useful when you want to inject custom logic or configuration
   797  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   798  //
   799  //
   800  //    // Example sending a request using the DescribeScheduledActionsRequest method.
   801  //    req, resp := client.DescribeScheduledActionsRequest(params)
   802  //
   803  //    err := req.Send()
   804  //    if err == nil { // resp is now filled
   805  //        fmt.Println(resp)
   806  //    }
   807  //
   808  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScheduledActions
   809  func (c *ApplicationAutoScaling) DescribeScheduledActionsRequest(input *DescribeScheduledActionsInput) (req *request.Request, output *DescribeScheduledActionsOutput) {
   810  	op := &request.Operation{
   811  		Name:       opDescribeScheduledActions,
   812  		HTTPMethod: "POST",
   813  		HTTPPath:   "/",
   814  		Paginator: &request.Paginator{
   815  			InputTokens:     []string{"NextToken"},
   816  			OutputTokens:    []string{"NextToken"},
   817  			LimitToken:      "MaxResults",
   818  			TruncationToken: "",
   819  		},
   820  	}
   821  
   822  	if input == nil {
   823  		input = &DescribeScheduledActionsInput{}
   824  	}
   825  
   826  	output = &DescribeScheduledActionsOutput{}
   827  	req = c.newRequest(op, input, output)
   828  	return
   829  }
   830  
   831  // DescribeScheduledActions API operation for Application Auto Scaling.
   832  //
   833  // Describes the Application Auto Scaling scheduled actions for the specified
   834  // service namespace.
   835  //
   836  // You can filter the results using the ResourceId, ScalableDimension, and ScheduledActionNames
   837  // parameters.
   838  //
   839  // For more information, see Scheduled scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html)
   840  // and Managing scheduled scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/scheduled-scaling-additional-cli-commands.html)
   841  // in the Application Auto Scaling User Guide.
   842  //
   843  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   844  // with awserr.Error's Code and Message methods to get detailed information about
   845  // the error.
   846  //
   847  // See the AWS API reference guide for Application Auto Scaling's
   848  // API operation DescribeScheduledActions for usage and error information.
   849  //
   850  // Returned Error Types:
   851  //   * ValidationException
   852  //   An exception was thrown for a validation issue. Review the available parameters
   853  //   for the API request.
   854  //
   855  //   * InvalidNextTokenException
   856  //   The next token supplied was invalid.
   857  //
   858  //   * ConcurrentUpdateException
   859  //   Concurrent updates caused an exception, for example, if you request an update
   860  //   to an Application Auto Scaling resource that already has a pending update.
   861  //
   862  //   * InternalServiceException
   863  //   The service encountered an internal error.
   864  //
   865  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScheduledActions
   866  func (c *ApplicationAutoScaling) DescribeScheduledActions(input *DescribeScheduledActionsInput) (*DescribeScheduledActionsOutput, error) {
   867  	req, out := c.DescribeScheduledActionsRequest(input)
   868  	return out, req.Send()
   869  }
   870  
   871  // DescribeScheduledActionsWithContext is the same as DescribeScheduledActions with the addition of
   872  // the ability to pass a context and additional request options.
   873  //
   874  // See DescribeScheduledActions for details on how to use this API operation.
   875  //
   876  // The context must be non-nil and will be used for request cancellation. If
   877  // the context is nil a panic will occur. In the future the SDK may create
   878  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   879  // for more information on using Contexts.
   880  func (c *ApplicationAutoScaling) DescribeScheduledActionsWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, opts ...request.Option) (*DescribeScheduledActionsOutput, error) {
   881  	req, out := c.DescribeScheduledActionsRequest(input)
   882  	req.SetContext(ctx)
   883  	req.ApplyOptions(opts...)
   884  	return out, req.Send()
   885  }
   886  
   887  // DescribeScheduledActionsPages iterates over the pages of a DescribeScheduledActions operation,
   888  // calling the "fn" function with the response data for each page. To stop
   889  // iterating, return false from the fn function.
   890  //
   891  // See DescribeScheduledActions method for more information on how to use this operation.
   892  //
   893  // Note: This operation can generate multiple requests to a service.
   894  //
   895  //    // Example iterating over at most 3 pages of a DescribeScheduledActions operation.
   896  //    pageNum := 0
   897  //    err := client.DescribeScheduledActionsPages(params,
   898  //        func(page *applicationautoscaling.DescribeScheduledActionsOutput, lastPage bool) bool {
   899  //            pageNum++
   900  //            fmt.Println(page)
   901  //            return pageNum <= 3
   902  //        })
   903  //
   904  func (c *ApplicationAutoScaling) DescribeScheduledActionsPages(input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool) error {
   905  	return c.DescribeScheduledActionsPagesWithContext(aws.BackgroundContext(), input, fn)
   906  }
   907  
   908  // DescribeScheduledActionsPagesWithContext same as DescribeScheduledActionsPages except
   909  // it takes a Context and allows setting request options on the pages.
   910  //
   911  // The context must be non-nil and will be used for request cancellation. If
   912  // the context is nil a panic will occur. In the future the SDK may create
   913  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   914  // for more information on using Contexts.
   915  func (c *ApplicationAutoScaling) DescribeScheduledActionsPagesWithContext(ctx aws.Context, input *DescribeScheduledActionsInput, fn func(*DescribeScheduledActionsOutput, bool) bool, opts ...request.Option) error {
   916  	p := request.Pagination{
   917  		NewRequest: func() (*request.Request, error) {
   918  			var inCpy *DescribeScheduledActionsInput
   919  			if input != nil {
   920  				tmp := *input
   921  				inCpy = &tmp
   922  			}
   923  			req, _ := c.DescribeScheduledActionsRequest(inCpy)
   924  			req.SetContext(ctx)
   925  			req.ApplyOptions(opts...)
   926  			return req, nil
   927  		},
   928  	}
   929  
   930  	for p.Next() {
   931  		if !fn(p.Page().(*DescribeScheduledActionsOutput), !p.HasNextPage()) {
   932  			break
   933  		}
   934  	}
   935  
   936  	return p.Err()
   937  }
   938  
   939  const opPutScalingPolicy = "PutScalingPolicy"
   940  
   941  // PutScalingPolicyRequest generates a "aws/request.Request" representing the
   942  // client's request for the PutScalingPolicy operation. The "output" return
   943  // value will be populated with the request's response once the request completes
   944  // successfully.
   945  //
   946  // Use "Send" method on the returned Request to send the API call to the service.
   947  // the "output" return value is not valid until after Send returns without error.
   948  //
   949  // See PutScalingPolicy for more information on using the PutScalingPolicy
   950  // API call, and error handling.
   951  //
   952  // This method is useful when you want to inject custom logic or configuration
   953  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   954  //
   955  //
   956  //    // Example sending a request using the PutScalingPolicyRequest method.
   957  //    req, resp := client.PutScalingPolicyRequest(params)
   958  //
   959  //    err := req.Send()
   960  //    if err == nil { // resp is now filled
   961  //        fmt.Println(resp)
   962  //    }
   963  //
   964  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScalingPolicy
   965  func (c *ApplicationAutoScaling) PutScalingPolicyRequest(input *PutScalingPolicyInput) (req *request.Request, output *PutScalingPolicyOutput) {
   966  	op := &request.Operation{
   967  		Name:       opPutScalingPolicy,
   968  		HTTPMethod: "POST",
   969  		HTTPPath:   "/",
   970  	}
   971  
   972  	if input == nil {
   973  		input = &PutScalingPolicyInput{}
   974  	}
   975  
   976  	output = &PutScalingPolicyOutput{}
   977  	req = c.newRequest(op, input, output)
   978  	return
   979  }
   980  
   981  // PutScalingPolicy API operation for Application Auto Scaling.
   982  //
   983  // Creates or updates a scaling policy for an Application Auto Scaling scalable
   984  // target.
   985  //
   986  // Each scalable target is identified by a service namespace, resource ID, and
   987  // scalable dimension. A scaling policy applies to the scalable target identified
   988  // by those three attributes. You cannot create a scaling policy until you have
   989  // registered the resource as a scalable target.
   990  //
   991  // Multiple scaling policies can be in force at the same time for the same scalable
   992  // target. You can have one or more target tracking scaling policies, one or
   993  // more step scaling policies, or both. However, there is a chance that multiple
   994  // policies could conflict, instructing the scalable target to scale out or
   995  // in at the same time. Application Auto Scaling gives precedence to the policy
   996  // that provides the largest capacity for both scale out and scale in. For example,
   997  // if one policy increases capacity by 3, another policy increases capacity
   998  // by 200 percent, and the current capacity is 10, Application Auto Scaling
   999  // uses the policy with the highest calculated capacity (200% of 10 = 20) and
  1000  // scales out to 30.
  1001  //
  1002  // We recommend caution, however, when using target tracking scaling policies
  1003  // with step scaling policies because conflicts between these policies can cause
  1004  // undesirable behavior. For example, if the step scaling policy initiates a
  1005  // scale-in activity before the target tracking policy is ready to scale in,
  1006  // the scale-in activity will not be blocked. After the scale-in activity completes,
  1007  // the target tracking policy could instruct the scalable target to scale out
  1008  // again.
  1009  //
  1010  // For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)
  1011  // and Step scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html)
  1012  // in the Application Auto Scaling User Guide.
  1013  //
  1014  // If a scalable target is deregistered, the scalable target is no longer available
  1015  // to execute scaling policies. Any scaling policies that were specified for
  1016  // the scalable target are deleted.
  1017  //
  1018  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1019  // with awserr.Error's Code and Message methods to get detailed information about
  1020  // the error.
  1021  //
  1022  // See the AWS API reference guide for Application Auto Scaling's
  1023  // API operation PutScalingPolicy for usage and error information.
  1024  //
  1025  // Returned Error Types:
  1026  //   * ValidationException
  1027  //   An exception was thrown for a validation issue. Review the available parameters
  1028  //   for the API request.
  1029  //
  1030  //   * LimitExceededException
  1031  //   A per-account resource limit is exceeded. For more information, see Application
  1032  //   Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-limits.html).
  1033  //
  1034  //   * ObjectNotFoundException
  1035  //   The specified object could not be found. For any operation that depends on
  1036  //   the existence of a scalable target, this exception is thrown if the scalable
  1037  //   target with the specified service namespace, resource ID, and scalable dimension
  1038  //   does not exist. For any operation that deletes or deregisters a resource,
  1039  //   this exception is thrown if the resource cannot be found.
  1040  //
  1041  //   * ConcurrentUpdateException
  1042  //   Concurrent updates caused an exception, for example, if you request an update
  1043  //   to an Application Auto Scaling resource that already has a pending update.
  1044  //
  1045  //   * FailedResourceAccessException
  1046  //   Failed access to resources caused an exception. This exception is thrown
  1047  //   when Application Auto Scaling is unable to retrieve the alarms associated
  1048  //   with a scaling policy due to a client error, for example, if the role ARN
  1049  //   specified for a scalable target does not have permission to call the CloudWatch
  1050  //   DescribeAlarms (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)
  1051  //   on your behalf.
  1052  //
  1053  //   * InternalServiceException
  1054  //   The service encountered an internal error.
  1055  //
  1056  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScalingPolicy
  1057  func (c *ApplicationAutoScaling) PutScalingPolicy(input *PutScalingPolicyInput) (*PutScalingPolicyOutput, error) {
  1058  	req, out := c.PutScalingPolicyRequest(input)
  1059  	return out, req.Send()
  1060  }
  1061  
  1062  // PutScalingPolicyWithContext is the same as PutScalingPolicy with the addition of
  1063  // the ability to pass a context and additional request options.
  1064  //
  1065  // See PutScalingPolicy for details on how to use this API operation.
  1066  //
  1067  // The context must be non-nil and will be used for request cancellation. If
  1068  // the context is nil a panic will occur. In the future the SDK may create
  1069  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1070  // for more information on using Contexts.
  1071  func (c *ApplicationAutoScaling) PutScalingPolicyWithContext(ctx aws.Context, input *PutScalingPolicyInput, opts ...request.Option) (*PutScalingPolicyOutput, error) {
  1072  	req, out := c.PutScalingPolicyRequest(input)
  1073  	req.SetContext(ctx)
  1074  	req.ApplyOptions(opts...)
  1075  	return out, req.Send()
  1076  }
  1077  
  1078  const opPutScheduledAction = "PutScheduledAction"
  1079  
  1080  // PutScheduledActionRequest generates a "aws/request.Request" representing the
  1081  // client's request for the PutScheduledAction operation. The "output" return
  1082  // value will be populated with the request's response once the request completes
  1083  // successfully.
  1084  //
  1085  // Use "Send" method on the returned Request to send the API call to the service.
  1086  // the "output" return value is not valid until after Send returns without error.
  1087  //
  1088  // See PutScheduledAction for more information on using the PutScheduledAction
  1089  // API call, and error handling.
  1090  //
  1091  // This method is useful when you want to inject custom logic or configuration
  1092  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1093  //
  1094  //
  1095  //    // Example sending a request using the PutScheduledActionRequest method.
  1096  //    req, resp := client.PutScheduledActionRequest(params)
  1097  //
  1098  //    err := req.Send()
  1099  //    if err == nil { // resp is now filled
  1100  //        fmt.Println(resp)
  1101  //    }
  1102  //
  1103  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScheduledAction
  1104  func (c *ApplicationAutoScaling) PutScheduledActionRequest(input *PutScheduledActionInput) (req *request.Request, output *PutScheduledActionOutput) {
  1105  	op := &request.Operation{
  1106  		Name:       opPutScheduledAction,
  1107  		HTTPMethod: "POST",
  1108  		HTTPPath:   "/",
  1109  	}
  1110  
  1111  	if input == nil {
  1112  		input = &PutScheduledActionInput{}
  1113  	}
  1114  
  1115  	output = &PutScheduledActionOutput{}
  1116  	req = c.newRequest(op, input, output)
  1117  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1118  	return
  1119  }
  1120  
  1121  // PutScheduledAction API operation for Application Auto Scaling.
  1122  //
  1123  // Creates or updates a scheduled action for an Application Auto Scaling scalable
  1124  // target.
  1125  //
  1126  // Each scalable target is identified by a service namespace, resource ID, and
  1127  // scalable dimension. A scheduled action applies to the scalable target identified
  1128  // by those three attributes. You cannot create a scheduled action until you
  1129  // have registered the resource as a scalable target.
  1130  //
  1131  // When start and end times are specified with a recurring schedule using a
  1132  // cron expression or rates, they form the boundaries for when the recurring
  1133  // action starts and stops.
  1134  //
  1135  // To update a scheduled action, specify the parameters that you want to change.
  1136  // If you don't specify start and end times, the old values are deleted.
  1137  //
  1138  // For more information, see Scheduled scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html)
  1139  // in the Application Auto Scaling User Guide.
  1140  //
  1141  // If a scalable target is deregistered, the scalable target is no longer available
  1142  // to run scheduled actions. Any scheduled actions that were specified for the
  1143  // scalable target are deleted.
  1144  //
  1145  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1146  // with awserr.Error's Code and Message methods to get detailed information about
  1147  // the error.
  1148  //
  1149  // See the AWS API reference guide for Application Auto Scaling's
  1150  // API operation PutScheduledAction for usage and error information.
  1151  //
  1152  // Returned Error Types:
  1153  //   * ValidationException
  1154  //   An exception was thrown for a validation issue. Review the available parameters
  1155  //   for the API request.
  1156  //
  1157  //   * LimitExceededException
  1158  //   A per-account resource limit is exceeded. For more information, see Application
  1159  //   Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-limits.html).
  1160  //
  1161  //   * ObjectNotFoundException
  1162  //   The specified object could not be found. For any operation that depends on
  1163  //   the existence of a scalable target, this exception is thrown if the scalable
  1164  //   target with the specified service namespace, resource ID, and scalable dimension
  1165  //   does not exist. For any operation that deletes or deregisters a resource,
  1166  //   this exception is thrown if the resource cannot be found.
  1167  //
  1168  //   * ConcurrentUpdateException
  1169  //   Concurrent updates caused an exception, for example, if you request an update
  1170  //   to an Application Auto Scaling resource that already has a pending update.
  1171  //
  1172  //   * InternalServiceException
  1173  //   The service encountered an internal error.
  1174  //
  1175  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScheduledAction
  1176  func (c *ApplicationAutoScaling) PutScheduledAction(input *PutScheduledActionInput) (*PutScheduledActionOutput, error) {
  1177  	req, out := c.PutScheduledActionRequest(input)
  1178  	return out, req.Send()
  1179  }
  1180  
  1181  // PutScheduledActionWithContext is the same as PutScheduledAction with the addition of
  1182  // the ability to pass a context and additional request options.
  1183  //
  1184  // See PutScheduledAction for details on how to use this API operation.
  1185  //
  1186  // The context must be non-nil and will be used for request cancellation. If
  1187  // the context is nil a panic will occur. In the future the SDK may create
  1188  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1189  // for more information on using Contexts.
  1190  func (c *ApplicationAutoScaling) PutScheduledActionWithContext(ctx aws.Context, input *PutScheduledActionInput, opts ...request.Option) (*PutScheduledActionOutput, error) {
  1191  	req, out := c.PutScheduledActionRequest(input)
  1192  	req.SetContext(ctx)
  1193  	req.ApplyOptions(opts...)
  1194  	return out, req.Send()
  1195  }
  1196  
  1197  const opRegisterScalableTarget = "RegisterScalableTarget"
  1198  
  1199  // RegisterScalableTargetRequest generates a "aws/request.Request" representing the
  1200  // client's request for the RegisterScalableTarget operation. The "output" return
  1201  // value will be populated with the request's response once the request completes
  1202  // successfully.
  1203  //
  1204  // Use "Send" method on the returned Request to send the API call to the service.
  1205  // the "output" return value is not valid until after Send returns without error.
  1206  //
  1207  // See RegisterScalableTarget for more information on using the RegisterScalableTarget
  1208  // API call, and error handling.
  1209  //
  1210  // This method is useful when you want to inject custom logic or configuration
  1211  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1212  //
  1213  //
  1214  //    // Example sending a request using the RegisterScalableTargetRequest method.
  1215  //    req, resp := client.RegisterScalableTargetRequest(params)
  1216  //
  1217  //    err := req.Send()
  1218  //    if err == nil { // resp is now filled
  1219  //        fmt.Println(resp)
  1220  //    }
  1221  //
  1222  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/RegisterScalableTarget
  1223  func (c *ApplicationAutoScaling) RegisterScalableTargetRequest(input *RegisterScalableTargetInput) (req *request.Request, output *RegisterScalableTargetOutput) {
  1224  	op := &request.Operation{
  1225  		Name:       opRegisterScalableTarget,
  1226  		HTTPMethod: "POST",
  1227  		HTTPPath:   "/",
  1228  	}
  1229  
  1230  	if input == nil {
  1231  		input = &RegisterScalableTargetInput{}
  1232  	}
  1233  
  1234  	output = &RegisterScalableTargetOutput{}
  1235  	req = c.newRequest(op, input, output)
  1236  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1237  	return
  1238  }
  1239  
  1240  // RegisterScalableTarget API operation for Application Auto Scaling.
  1241  //
  1242  // Registers or updates a scalable target.
  1243  //
  1244  // A scalable target is a resource that Application Auto Scaling can scale out
  1245  // and scale in. Scalable targets are uniquely identified by the combination
  1246  // of resource ID, scalable dimension, and namespace.
  1247  //
  1248  // When you register a new scalable target, you must specify values for minimum
  1249  // and maximum capacity. Current capacity will be adjusted within the specified
  1250  // range when scaling starts. Application Auto Scaling scaling policies will
  1251  // not scale capacity to values that are outside of this range.
  1252  //
  1253  // After you register a scalable target, you do not need to register it again
  1254  // to use other Application Auto Scaling operations. To see which resources
  1255  // have been registered, use DescribeScalableTargets (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html).
  1256  // You can also view the scaling policies for a service namespace by using DescribeScalableTargets
  1257  // (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DescribeScalableTargets.html).
  1258  // If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget
  1259  // (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_DeregisterScalableTarget.html).
  1260  //
  1261  // To update a scalable target, specify the parameters that you want to change.
  1262  // Include the parameters that identify the scalable target: resource ID, scalable
  1263  // dimension, and namespace. Any parameters that you don't specify are not changed
  1264  // by this update request.
  1265  //
  1266  // If you call the RegisterScalableTarget API to update an existing scalable
  1267  // target, Application Auto Scaling retrieves the current capacity of the resource.
  1268  // If it is below the minimum capacity or above the maximum capacity, Application
  1269  // Auto Scaling adjusts the capacity of the scalable target to place it within
  1270  // these bounds, even if you don't include the MinCapacity or MaxCapacity request
  1271  // parameters.
  1272  //
  1273  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1274  // with awserr.Error's Code and Message methods to get detailed information about
  1275  // the error.
  1276  //
  1277  // See the AWS API reference guide for Application Auto Scaling's
  1278  // API operation RegisterScalableTarget for usage and error information.
  1279  //
  1280  // Returned Error Types:
  1281  //   * ValidationException
  1282  //   An exception was thrown for a validation issue. Review the available parameters
  1283  //   for the API request.
  1284  //
  1285  //   * LimitExceededException
  1286  //   A per-account resource limit is exceeded. For more information, see Application
  1287  //   Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-limits.html).
  1288  //
  1289  //   * ConcurrentUpdateException
  1290  //   Concurrent updates caused an exception, for example, if you request an update
  1291  //   to an Application Auto Scaling resource that already has a pending update.
  1292  //
  1293  //   * InternalServiceException
  1294  //   The service encountered an internal error.
  1295  //
  1296  // See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/RegisterScalableTarget
  1297  func (c *ApplicationAutoScaling) RegisterScalableTarget(input *RegisterScalableTargetInput) (*RegisterScalableTargetOutput, error) {
  1298  	req, out := c.RegisterScalableTargetRequest(input)
  1299  	return out, req.Send()
  1300  }
  1301  
  1302  // RegisterScalableTargetWithContext is the same as RegisterScalableTarget with the addition of
  1303  // the ability to pass a context and additional request options.
  1304  //
  1305  // See RegisterScalableTarget for details on how to use this API operation.
  1306  //
  1307  // The context must be non-nil and will be used for request cancellation. If
  1308  // the context is nil a panic will occur. In the future the SDK may create
  1309  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1310  // for more information on using Contexts.
  1311  func (c *ApplicationAutoScaling) RegisterScalableTargetWithContext(ctx aws.Context, input *RegisterScalableTargetInput, opts ...request.Option) (*RegisterScalableTargetOutput, error) {
  1312  	req, out := c.RegisterScalableTargetRequest(input)
  1313  	req.SetContext(ctx)
  1314  	req.ApplyOptions(opts...)
  1315  	return out, req.Send()
  1316  }
  1317  
  1318  // Represents a CloudWatch alarm associated with a scaling policy.
  1319  type Alarm struct {
  1320  	_ struct{} `type:"structure"`
  1321  
  1322  	// The Amazon Resource Name (ARN) of the alarm.
  1323  	//
  1324  	// AlarmARN is a required field
  1325  	AlarmARN *string `type:"string" required:"true"`
  1326  
  1327  	// The name of the alarm.
  1328  	//
  1329  	// AlarmName is a required field
  1330  	AlarmName *string `type:"string" required:"true"`
  1331  }
  1332  
  1333  // String returns the string representation.
  1334  //
  1335  // API parameter values that are decorated as "sensitive" in the API will not
  1336  // be included in the string output. The member name will be present, but the
  1337  // value will be replaced with "sensitive".
  1338  func (s Alarm) String() string {
  1339  	return awsutil.Prettify(s)
  1340  }
  1341  
  1342  // GoString returns the string representation.
  1343  //
  1344  // API parameter values that are decorated as "sensitive" in the API will not
  1345  // be included in the string output. The member name will be present, but the
  1346  // value will be replaced with "sensitive".
  1347  func (s Alarm) GoString() string {
  1348  	return s.String()
  1349  }
  1350  
  1351  // SetAlarmARN sets the AlarmARN field's value.
  1352  func (s *Alarm) SetAlarmARN(v string) *Alarm {
  1353  	s.AlarmARN = &v
  1354  	return s
  1355  }
  1356  
  1357  // SetAlarmName sets the AlarmName field's value.
  1358  func (s *Alarm) SetAlarmName(v string) *Alarm {
  1359  	s.AlarmName = &v
  1360  	return s
  1361  }
  1362  
  1363  // Concurrent updates caused an exception, for example, if you request an update
  1364  // to an Application Auto Scaling resource that already has a pending update.
  1365  type ConcurrentUpdateException struct {
  1366  	_            struct{}                  `type:"structure"`
  1367  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1368  
  1369  	Message_ *string `locationName:"Message" type:"string"`
  1370  }
  1371  
  1372  // String returns the string representation.
  1373  //
  1374  // API parameter values that are decorated as "sensitive" in the API will not
  1375  // be included in the string output. The member name will be present, but the
  1376  // value will be replaced with "sensitive".
  1377  func (s ConcurrentUpdateException) String() string {
  1378  	return awsutil.Prettify(s)
  1379  }
  1380  
  1381  // GoString returns the string representation.
  1382  //
  1383  // API parameter values that are decorated as "sensitive" in the API will not
  1384  // be included in the string output. The member name will be present, but the
  1385  // value will be replaced with "sensitive".
  1386  func (s ConcurrentUpdateException) GoString() string {
  1387  	return s.String()
  1388  }
  1389  
  1390  func newErrorConcurrentUpdateException(v protocol.ResponseMetadata) error {
  1391  	return &ConcurrentUpdateException{
  1392  		RespMetadata: v,
  1393  	}
  1394  }
  1395  
  1396  // Code returns the exception type name.
  1397  func (s *ConcurrentUpdateException) Code() string {
  1398  	return "ConcurrentUpdateException"
  1399  }
  1400  
  1401  // Message returns the exception's message.
  1402  func (s *ConcurrentUpdateException) Message() string {
  1403  	if s.Message_ != nil {
  1404  		return *s.Message_
  1405  	}
  1406  	return ""
  1407  }
  1408  
  1409  // OrigErr always returns nil, satisfies awserr.Error interface.
  1410  func (s *ConcurrentUpdateException) OrigErr() error {
  1411  	return nil
  1412  }
  1413  
  1414  func (s *ConcurrentUpdateException) Error() string {
  1415  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  1416  }
  1417  
  1418  // Status code returns the HTTP status code for the request's response error.
  1419  func (s *ConcurrentUpdateException) StatusCode() int {
  1420  	return s.RespMetadata.StatusCode
  1421  }
  1422  
  1423  // RequestID returns the service's response RequestID for request.
  1424  func (s *ConcurrentUpdateException) RequestID() string {
  1425  	return s.RespMetadata.RequestID
  1426  }
  1427  
  1428  // Represents a CloudWatch metric of your choosing for a target tracking scaling
  1429  // policy to use with Application Auto Scaling.
  1430  //
  1431  // For information about the available metrics for a service, see Amazon Web
  1432  // Services Services That Publish CloudWatch Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html)
  1433  // in the Amazon CloudWatch User Guide.
  1434  //
  1435  // To create your customized metric specification:
  1436  //
  1437  //    * Add values for each required parameter from CloudWatch. You can use
  1438  //    an existing metric, or a new metric that you create. To use your own metric,
  1439  //    you must first publish the metric to CloudWatch. For more information,
  1440  //    see Publish Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
  1441  //    in the Amazon CloudWatch User Guide.
  1442  //
  1443  //    * Choose a metric that changes proportionally with capacity. The value
  1444  //    of the metric should increase or decrease in inverse proportion to the
  1445  //    number of capacity units. That is, the value of the metric should decrease
  1446  //    when capacity increases, and increase when capacity decreases.
  1447  //
  1448  // For more information about CloudWatch, see Amazon CloudWatch Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html).
  1449  type CustomizedMetricSpecification struct {
  1450  	_ struct{} `type:"structure"`
  1451  
  1452  	// The dimensions of the metric.
  1453  	//
  1454  	// Conditional: If you published your metric with dimensions, you must specify
  1455  	// the same dimensions in your scaling policy.
  1456  	Dimensions []*MetricDimension `type:"list"`
  1457  
  1458  	// The name of the metric.
  1459  	//
  1460  	// MetricName is a required field
  1461  	MetricName *string `type:"string" required:"true"`
  1462  
  1463  	// The namespace of the metric.
  1464  	//
  1465  	// Namespace is a required field
  1466  	Namespace *string `type:"string" required:"true"`
  1467  
  1468  	// The statistic of the metric.
  1469  	//
  1470  	// Statistic is a required field
  1471  	Statistic *string `type:"string" required:"true" enum:"MetricStatistic"`
  1472  
  1473  	// The unit of the metric.
  1474  	Unit *string `type:"string"`
  1475  }
  1476  
  1477  // String returns the string representation.
  1478  //
  1479  // API parameter values that are decorated as "sensitive" in the API will not
  1480  // be included in the string output. The member name will be present, but the
  1481  // value will be replaced with "sensitive".
  1482  func (s CustomizedMetricSpecification) String() string {
  1483  	return awsutil.Prettify(s)
  1484  }
  1485  
  1486  // GoString returns the string representation.
  1487  //
  1488  // API parameter values that are decorated as "sensitive" in the API will not
  1489  // be included in the string output. The member name will be present, but the
  1490  // value will be replaced with "sensitive".
  1491  func (s CustomizedMetricSpecification) GoString() string {
  1492  	return s.String()
  1493  }
  1494  
  1495  // Validate inspects the fields of the type to determine if they are valid.
  1496  func (s *CustomizedMetricSpecification) Validate() error {
  1497  	invalidParams := request.ErrInvalidParams{Context: "CustomizedMetricSpecification"}
  1498  	if s.MetricName == nil {
  1499  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  1500  	}
  1501  	if s.Namespace == nil {
  1502  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  1503  	}
  1504  	if s.Statistic == nil {
  1505  		invalidParams.Add(request.NewErrParamRequired("Statistic"))
  1506  	}
  1507  	if s.Dimensions != nil {
  1508  		for i, v := range s.Dimensions {
  1509  			if v == nil {
  1510  				continue
  1511  			}
  1512  			if err := v.Validate(); err != nil {
  1513  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  1514  			}
  1515  		}
  1516  	}
  1517  
  1518  	if invalidParams.Len() > 0 {
  1519  		return invalidParams
  1520  	}
  1521  	return nil
  1522  }
  1523  
  1524  // SetDimensions sets the Dimensions field's value.
  1525  func (s *CustomizedMetricSpecification) SetDimensions(v []*MetricDimension) *CustomizedMetricSpecification {
  1526  	s.Dimensions = v
  1527  	return s
  1528  }
  1529  
  1530  // SetMetricName sets the MetricName field's value.
  1531  func (s *CustomizedMetricSpecification) SetMetricName(v string) *CustomizedMetricSpecification {
  1532  	s.MetricName = &v
  1533  	return s
  1534  }
  1535  
  1536  // SetNamespace sets the Namespace field's value.
  1537  func (s *CustomizedMetricSpecification) SetNamespace(v string) *CustomizedMetricSpecification {
  1538  	s.Namespace = &v
  1539  	return s
  1540  }
  1541  
  1542  // SetStatistic sets the Statistic field's value.
  1543  func (s *CustomizedMetricSpecification) SetStatistic(v string) *CustomizedMetricSpecification {
  1544  	s.Statistic = &v
  1545  	return s
  1546  }
  1547  
  1548  // SetUnit sets the Unit field's value.
  1549  func (s *CustomizedMetricSpecification) SetUnit(v string) *CustomizedMetricSpecification {
  1550  	s.Unit = &v
  1551  	return s
  1552  }
  1553  
  1554  type DeleteScalingPolicyInput struct {
  1555  	_ struct{} `type:"structure"`
  1556  
  1557  	// The name of the scaling policy.
  1558  	//
  1559  	// PolicyName is a required field
  1560  	PolicyName *string `min:"1" type:"string" required:"true"`
  1561  
  1562  	// The identifier of the resource associated with the scalable target. This
  1563  	// string consists of the resource type and unique identifier.
  1564  	//
  1565  	//    * ECS service - The resource type is service and the unique identifier
  1566  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  1567  	//
  1568  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  1569  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  1570  	//
  1571  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  1572  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  1573  	//
  1574  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  1575  	//    is the fleet name. Example: fleet/sample-fleet.
  1576  	//
  1577  	//    * DynamoDB table - The resource type is table and the unique identifier
  1578  	//    is the table name. Example: table/my-table.
  1579  	//
  1580  	//    * DynamoDB global secondary index - The resource type is index and the
  1581  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  1582  	//
  1583  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  1584  	//    is the cluster name. Example: cluster:my-db-cluster.
  1585  	//
  1586  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  1587  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  1588  	//
  1589  	//    * Custom resources are not supported with a resource type. This parameter
  1590  	//    must specify the OutputValue from the CloudFormation template stack used
  1591  	//    to access the resources. The unique identifier is defined by the service
  1592  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  1593  	//
  1594  	//    * Amazon Comprehend document classification endpoint - The resource type
  1595  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  1596  	//
  1597  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  1598  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  1599  	//
  1600  	//    * Lambda provisioned concurrency - The resource type is function and the
  1601  	//    unique identifier is the function name with a function version or alias
  1602  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  1603  	//    function:my-function:1.
  1604  	//
  1605  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  1606  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  1607  	//
  1608  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  1609  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  1610  	//
  1611  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  1612  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  1613  	//
  1614  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  1615  	//    is the cluster name. Example: cluster:mycluster.
  1616  	//
  1617  	// ResourceId is a required field
  1618  	ResourceId *string `min:"1" type:"string" required:"true"`
  1619  
  1620  	// The scalable dimension. This string consists of the service namespace, resource
  1621  	// type, and scaling property.
  1622  	//
  1623  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  1624  	//
  1625  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  1626  	//    an EMR Instance Group.
  1627  	//
  1628  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  1629  	//    Fleet.
  1630  	//
  1631  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  1632  	//    2.0 fleet.
  1633  	//
  1634  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  1635  	//    a DynamoDB table.
  1636  	//
  1637  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  1638  	//    a DynamoDB table.
  1639  	//
  1640  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  1641  	//    a DynamoDB global secondary index.
  1642  	//
  1643  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  1644  	//    a DynamoDB global secondary index.
  1645  	//
  1646  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  1647  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  1648  	//    edition.
  1649  	//
  1650  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  1651  	//    for an SageMaker model endpoint variant.
  1652  	//
  1653  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  1654  	//    custom resource provided by your own application or service.
  1655  	//
  1656  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  1657  	//    number of inference units for an Amazon Comprehend document classification
  1658  	//    endpoint.
  1659  	//
  1660  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  1661  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  1662  	//
  1663  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  1664  	//    for a Lambda function.
  1665  	//
  1666  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  1667  	//    an Amazon Keyspaces table.
  1668  	//
  1669  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  1670  	//    for an Amazon Keyspaces table.
  1671  	//
  1672  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  1673  	//    for brokers in an Amazon MSK cluster.
  1674  	//
  1675  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  1676  	//    for an Amazon ElastiCache replication group.
  1677  	//
  1678  	//    * elasticache:replication-group:Replicas - The number of replicas per
  1679  	//    node group for an Amazon ElastiCache replication group.
  1680  	//
  1681  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  1682  	//    Amazon Neptune DB cluster.
  1683  	//
  1684  	// ScalableDimension is a required field
  1685  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  1686  
  1687  	// The namespace of the Amazon Web Services service that provides the resource.
  1688  	// For a resource provided by your own application or service, use custom-resource
  1689  	// instead.
  1690  	//
  1691  	// ServiceNamespace is a required field
  1692  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  1693  }
  1694  
  1695  // String returns the string representation.
  1696  //
  1697  // API parameter values that are decorated as "sensitive" in the API will not
  1698  // be included in the string output. The member name will be present, but the
  1699  // value will be replaced with "sensitive".
  1700  func (s DeleteScalingPolicyInput) String() string {
  1701  	return awsutil.Prettify(s)
  1702  }
  1703  
  1704  // GoString returns the string representation.
  1705  //
  1706  // API parameter values that are decorated as "sensitive" in the API will not
  1707  // be included in the string output. The member name will be present, but the
  1708  // value will be replaced with "sensitive".
  1709  func (s DeleteScalingPolicyInput) GoString() string {
  1710  	return s.String()
  1711  }
  1712  
  1713  // Validate inspects the fields of the type to determine if they are valid.
  1714  func (s *DeleteScalingPolicyInput) Validate() error {
  1715  	invalidParams := request.ErrInvalidParams{Context: "DeleteScalingPolicyInput"}
  1716  	if s.PolicyName == nil {
  1717  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  1718  	}
  1719  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  1720  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  1721  	}
  1722  	if s.ResourceId == nil {
  1723  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  1724  	}
  1725  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  1726  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  1727  	}
  1728  	if s.ScalableDimension == nil {
  1729  		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
  1730  	}
  1731  	if s.ServiceNamespace == nil {
  1732  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  1733  	}
  1734  
  1735  	if invalidParams.Len() > 0 {
  1736  		return invalidParams
  1737  	}
  1738  	return nil
  1739  }
  1740  
  1741  // SetPolicyName sets the PolicyName field's value.
  1742  func (s *DeleteScalingPolicyInput) SetPolicyName(v string) *DeleteScalingPolicyInput {
  1743  	s.PolicyName = &v
  1744  	return s
  1745  }
  1746  
  1747  // SetResourceId sets the ResourceId field's value.
  1748  func (s *DeleteScalingPolicyInput) SetResourceId(v string) *DeleteScalingPolicyInput {
  1749  	s.ResourceId = &v
  1750  	return s
  1751  }
  1752  
  1753  // SetScalableDimension sets the ScalableDimension field's value.
  1754  func (s *DeleteScalingPolicyInput) SetScalableDimension(v string) *DeleteScalingPolicyInput {
  1755  	s.ScalableDimension = &v
  1756  	return s
  1757  }
  1758  
  1759  // SetServiceNamespace sets the ServiceNamespace field's value.
  1760  func (s *DeleteScalingPolicyInput) SetServiceNamespace(v string) *DeleteScalingPolicyInput {
  1761  	s.ServiceNamespace = &v
  1762  	return s
  1763  }
  1764  
  1765  type DeleteScalingPolicyOutput struct {
  1766  	_ struct{} `type:"structure"`
  1767  }
  1768  
  1769  // String returns the string representation.
  1770  //
  1771  // API parameter values that are decorated as "sensitive" in the API will not
  1772  // be included in the string output. The member name will be present, but the
  1773  // value will be replaced with "sensitive".
  1774  func (s DeleteScalingPolicyOutput) String() string {
  1775  	return awsutil.Prettify(s)
  1776  }
  1777  
  1778  // GoString returns the string representation.
  1779  //
  1780  // API parameter values that are decorated as "sensitive" in the API will not
  1781  // be included in the string output. The member name will be present, but the
  1782  // value will be replaced with "sensitive".
  1783  func (s DeleteScalingPolicyOutput) GoString() string {
  1784  	return s.String()
  1785  }
  1786  
  1787  type DeleteScheduledActionInput struct {
  1788  	_ struct{} `type:"structure"`
  1789  
  1790  	// The identifier of the resource associated with the scheduled action. This
  1791  	// string consists of the resource type and unique identifier.
  1792  	//
  1793  	//    * ECS service - The resource type is service and the unique identifier
  1794  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  1795  	//
  1796  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  1797  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  1798  	//
  1799  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  1800  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  1801  	//
  1802  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  1803  	//    is the fleet name. Example: fleet/sample-fleet.
  1804  	//
  1805  	//    * DynamoDB table - The resource type is table and the unique identifier
  1806  	//    is the table name. Example: table/my-table.
  1807  	//
  1808  	//    * DynamoDB global secondary index - The resource type is index and the
  1809  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  1810  	//
  1811  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  1812  	//    is the cluster name. Example: cluster:my-db-cluster.
  1813  	//
  1814  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  1815  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  1816  	//
  1817  	//    * Custom resources are not supported with a resource type. This parameter
  1818  	//    must specify the OutputValue from the CloudFormation template stack used
  1819  	//    to access the resources. The unique identifier is defined by the service
  1820  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  1821  	//
  1822  	//    * Amazon Comprehend document classification endpoint - The resource type
  1823  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  1824  	//
  1825  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  1826  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  1827  	//
  1828  	//    * Lambda provisioned concurrency - The resource type is function and the
  1829  	//    unique identifier is the function name with a function version or alias
  1830  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  1831  	//    function:my-function:1.
  1832  	//
  1833  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  1834  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  1835  	//
  1836  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  1837  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  1838  	//
  1839  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  1840  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  1841  	//
  1842  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  1843  	//    is the cluster name. Example: cluster:mycluster.
  1844  	//
  1845  	// ResourceId is a required field
  1846  	ResourceId *string `min:"1" type:"string" required:"true"`
  1847  
  1848  	// The scalable dimension. This string consists of the service namespace, resource
  1849  	// type, and scaling property.
  1850  	//
  1851  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  1852  	//
  1853  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  1854  	//    an EMR Instance Group.
  1855  	//
  1856  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  1857  	//    Fleet.
  1858  	//
  1859  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  1860  	//    2.0 fleet.
  1861  	//
  1862  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  1863  	//    a DynamoDB table.
  1864  	//
  1865  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  1866  	//    a DynamoDB table.
  1867  	//
  1868  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  1869  	//    a DynamoDB global secondary index.
  1870  	//
  1871  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  1872  	//    a DynamoDB global secondary index.
  1873  	//
  1874  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  1875  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  1876  	//    edition.
  1877  	//
  1878  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  1879  	//    for an SageMaker model endpoint variant.
  1880  	//
  1881  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  1882  	//    custom resource provided by your own application or service.
  1883  	//
  1884  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  1885  	//    number of inference units for an Amazon Comprehend document classification
  1886  	//    endpoint.
  1887  	//
  1888  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  1889  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  1890  	//
  1891  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  1892  	//    for a Lambda function.
  1893  	//
  1894  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  1895  	//    an Amazon Keyspaces table.
  1896  	//
  1897  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  1898  	//    for an Amazon Keyspaces table.
  1899  	//
  1900  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  1901  	//    for brokers in an Amazon MSK cluster.
  1902  	//
  1903  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  1904  	//    for an Amazon ElastiCache replication group.
  1905  	//
  1906  	//    * elasticache:replication-group:Replicas - The number of replicas per
  1907  	//    node group for an Amazon ElastiCache replication group.
  1908  	//
  1909  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  1910  	//    Amazon Neptune DB cluster.
  1911  	//
  1912  	// ScalableDimension is a required field
  1913  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  1914  
  1915  	// The name of the scheduled action.
  1916  	//
  1917  	// ScheduledActionName is a required field
  1918  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
  1919  
  1920  	// The namespace of the Amazon Web Services service that provides the resource.
  1921  	// For a resource provided by your own application or service, use custom-resource
  1922  	// instead.
  1923  	//
  1924  	// ServiceNamespace is a required field
  1925  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  1926  }
  1927  
  1928  // String returns the string representation.
  1929  //
  1930  // API parameter values that are decorated as "sensitive" in the API will not
  1931  // be included in the string output. The member name will be present, but the
  1932  // value will be replaced with "sensitive".
  1933  func (s DeleteScheduledActionInput) String() string {
  1934  	return awsutil.Prettify(s)
  1935  }
  1936  
  1937  // GoString returns the string representation.
  1938  //
  1939  // API parameter values that are decorated as "sensitive" in the API will not
  1940  // be included in the string output. The member name will be present, but the
  1941  // value will be replaced with "sensitive".
  1942  func (s DeleteScheduledActionInput) GoString() string {
  1943  	return s.String()
  1944  }
  1945  
  1946  // Validate inspects the fields of the type to determine if they are valid.
  1947  func (s *DeleteScheduledActionInput) Validate() error {
  1948  	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledActionInput"}
  1949  	if s.ResourceId == nil {
  1950  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  1951  	}
  1952  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  1953  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  1954  	}
  1955  	if s.ScalableDimension == nil {
  1956  		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
  1957  	}
  1958  	if s.ScheduledActionName == nil {
  1959  		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
  1960  	}
  1961  	if s.ScheduledActionName != nil && len(*s.ScheduledActionName) < 1 {
  1962  		invalidParams.Add(request.NewErrParamMinLen("ScheduledActionName", 1))
  1963  	}
  1964  	if s.ServiceNamespace == nil {
  1965  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  1966  	}
  1967  
  1968  	if invalidParams.Len() > 0 {
  1969  		return invalidParams
  1970  	}
  1971  	return nil
  1972  }
  1973  
  1974  // SetResourceId sets the ResourceId field's value.
  1975  func (s *DeleteScheduledActionInput) SetResourceId(v string) *DeleteScheduledActionInput {
  1976  	s.ResourceId = &v
  1977  	return s
  1978  }
  1979  
  1980  // SetScalableDimension sets the ScalableDimension field's value.
  1981  func (s *DeleteScheduledActionInput) SetScalableDimension(v string) *DeleteScheduledActionInput {
  1982  	s.ScalableDimension = &v
  1983  	return s
  1984  }
  1985  
  1986  // SetScheduledActionName sets the ScheduledActionName field's value.
  1987  func (s *DeleteScheduledActionInput) SetScheduledActionName(v string) *DeleteScheduledActionInput {
  1988  	s.ScheduledActionName = &v
  1989  	return s
  1990  }
  1991  
  1992  // SetServiceNamespace sets the ServiceNamespace field's value.
  1993  func (s *DeleteScheduledActionInput) SetServiceNamespace(v string) *DeleteScheduledActionInput {
  1994  	s.ServiceNamespace = &v
  1995  	return s
  1996  }
  1997  
  1998  type DeleteScheduledActionOutput struct {
  1999  	_ struct{} `type:"structure"`
  2000  }
  2001  
  2002  // String returns the string representation.
  2003  //
  2004  // API parameter values that are decorated as "sensitive" in the API will not
  2005  // be included in the string output. The member name will be present, but the
  2006  // value will be replaced with "sensitive".
  2007  func (s DeleteScheduledActionOutput) String() string {
  2008  	return awsutil.Prettify(s)
  2009  }
  2010  
  2011  // GoString returns the string representation.
  2012  //
  2013  // API parameter values that are decorated as "sensitive" in the API will not
  2014  // be included in the string output. The member name will be present, but the
  2015  // value will be replaced with "sensitive".
  2016  func (s DeleteScheduledActionOutput) GoString() string {
  2017  	return s.String()
  2018  }
  2019  
  2020  type DeregisterScalableTargetInput struct {
  2021  	_ struct{} `type:"structure"`
  2022  
  2023  	// The identifier of the resource associated with the scalable target. This
  2024  	// string consists of the resource type and unique identifier.
  2025  	//
  2026  	//    * ECS service - The resource type is service and the unique identifier
  2027  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  2028  	//
  2029  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  2030  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  2031  	//
  2032  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  2033  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  2034  	//
  2035  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  2036  	//    is the fleet name. Example: fleet/sample-fleet.
  2037  	//
  2038  	//    * DynamoDB table - The resource type is table and the unique identifier
  2039  	//    is the table name. Example: table/my-table.
  2040  	//
  2041  	//    * DynamoDB global secondary index - The resource type is index and the
  2042  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  2043  	//
  2044  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  2045  	//    is the cluster name. Example: cluster:my-db-cluster.
  2046  	//
  2047  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  2048  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  2049  	//
  2050  	//    * Custom resources are not supported with a resource type. This parameter
  2051  	//    must specify the OutputValue from the CloudFormation template stack used
  2052  	//    to access the resources. The unique identifier is defined by the service
  2053  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  2054  	//
  2055  	//    * Amazon Comprehend document classification endpoint - The resource type
  2056  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  2057  	//
  2058  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  2059  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  2060  	//
  2061  	//    * Lambda provisioned concurrency - The resource type is function and the
  2062  	//    unique identifier is the function name with a function version or alias
  2063  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  2064  	//    function:my-function:1.
  2065  	//
  2066  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  2067  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  2068  	//
  2069  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  2070  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  2071  	//
  2072  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  2073  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  2074  	//
  2075  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  2076  	//    is the cluster name. Example: cluster:mycluster.
  2077  	//
  2078  	// ResourceId is a required field
  2079  	ResourceId *string `min:"1" type:"string" required:"true"`
  2080  
  2081  	// The scalable dimension associated with the scalable target. This string consists
  2082  	// of the service namespace, resource type, and scaling property.
  2083  	//
  2084  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  2085  	//
  2086  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  2087  	//    an EMR Instance Group.
  2088  	//
  2089  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  2090  	//    Fleet.
  2091  	//
  2092  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  2093  	//    2.0 fleet.
  2094  	//
  2095  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  2096  	//    a DynamoDB table.
  2097  	//
  2098  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  2099  	//    a DynamoDB table.
  2100  	//
  2101  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  2102  	//    a DynamoDB global secondary index.
  2103  	//
  2104  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  2105  	//    a DynamoDB global secondary index.
  2106  	//
  2107  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  2108  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  2109  	//    edition.
  2110  	//
  2111  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  2112  	//    for an SageMaker model endpoint variant.
  2113  	//
  2114  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  2115  	//    custom resource provided by your own application or service.
  2116  	//
  2117  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  2118  	//    number of inference units for an Amazon Comprehend document classification
  2119  	//    endpoint.
  2120  	//
  2121  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  2122  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  2123  	//
  2124  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  2125  	//    for a Lambda function.
  2126  	//
  2127  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  2128  	//    an Amazon Keyspaces table.
  2129  	//
  2130  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  2131  	//    for an Amazon Keyspaces table.
  2132  	//
  2133  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  2134  	//    for brokers in an Amazon MSK cluster.
  2135  	//
  2136  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  2137  	//    for an Amazon ElastiCache replication group.
  2138  	//
  2139  	//    * elasticache:replication-group:Replicas - The number of replicas per
  2140  	//    node group for an Amazon ElastiCache replication group.
  2141  	//
  2142  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  2143  	//    Amazon Neptune DB cluster.
  2144  	//
  2145  	// ScalableDimension is a required field
  2146  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  2147  
  2148  	// The namespace of the Amazon Web Services service that provides the resource.
  2149  	// For a resource provided by your own application or service, use custom-resource
  2150  	// instead.
  2151  	//
  2152  	// ServiceNamespace is a required field
  2153  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  2154  }
  2155  
  2156  // String returns the string representation.
  2157  //
  2158  // API parameter values that are decorated as "sensitive" in the API will not
  2159  // be included in the string output. The member name will be present, but the
  2160  // value will be replaced with "sensitive".
  2161  func (s DeregisterScalableTargetInput) String() string {
  2162  	return awsutil.Prettify(s)
  2163  }
  2164  
  2165  // GoString returns the string representation.
  2166  //
  2167  // API parameter values that are decorated as "sensitive" in the API will not
  2168  // be included in the string output. The member name will be present, but the
  2169  // value will be replaced with "sensitive".
  2170  func (s DeregisterScalableTargetInput) GoString() string {
  2171  	return s.String()
  2172  }
  2173  
  2174  // Validate inspects the fields of the type to determine if they are valid.
  2175  func (s *DeregisterScalableTargetInput) Validate() error {
  2176  	invalidParams := request.ErrInvalidParams{Context: "DeregisterScalableTargetInput"}
  2177  	if s.ResourceId == nil {
  2178  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  2179  	}
  2180  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  2181  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  2182  	}
  2183  	if s.ScalableDimension == nil {
  2184  		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
  2185  	}
  2186  	if s.ServiceNamespace == nil {
  2187  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  2188  	}
  2189  
  2190  	if invalidParams.Len() > 0 {
  2191  		return invalidParams
  2192  	}
  2193  	return nil
  2194  }
  2195  
  2196  // SetResourceId sets the ResourceId field's value.
  2197  func (s *DeregisterScalableTargetInput) SetResourceId(v string) *DeregisterScalableTargetInput {
  2198  	s.ResourceId = &v
  2199  	return s
  2200  }
  2201  
  2202  // SetScalableDimension sets the ScalableDimension field's value.
  2203  func (s *DeregisterScalableTargetInput) SetScalableDimension(v string) *DeregisterScalableTargetInput {
  2204  	s.ScalableDimension = &v
  2205  	return s
  2206  }
  2207  
  2208  // SetServiceNamespace sets the ServiceNamespace field's value.
  2209  func (s *DeregisterScalableTargetInput) SetServiceNamespace(v string) *DeregisterScalableTargetInput {
  2210  	s.ServiceNamespace = &v
  2211  	return s
  2212  }
  2213  
  2214  type DeregisterScalableTargetOutput struct {
  2215  	_ struct{} `type:"structure"`
  2216  }
  2217  
  2218  // String returns the string representation.
  2219  //
  2220  // API parameter values that are decorated as "sensitive" in the API will not
  2221  // be included in the string output. The member name will be present, but the
  2222  // value will be replaced with "sensitive".
  2223  func (s DeregisterScalableTargetOutput) String() string {
  2224  	return awsutil.Prettify(s)
  2225  }
  2226  
  2227  // GoString returns the string representation.
  2228  //
  2229  // API parameter values that are decorated as "sensitive" in the API will not
  2230  // be included in the string output. The member name will be present, but the
  2231  // value will be replaced with "sensitive".
  2232  func (s DeregisterScalableTargetOutput) GoString() string {
  2233  	return s.String()
  2234  }
  2235  
  2236  type DescribeScalableTargetsInput struct {
  2237  	_ struct{} `type:"structure"`
  2238  
  2239  	// The maximum number of scalable targets. This value can be between 1 and 50.
  2240  	// The default value is 50.
  2241  	//
  2242  	// If this parameter is used, the operation returns up to MaxResults results
  2243  	// at a time, along with a NextToken value. To get the next set of results,
  2244  	// include the NextToken value in a subsequent call. If this parameter is not
  2245  	// used, the operation returns up to 50 results and a NextToken value, if applicable.
  2246  	MaxResults *int64 `type:"integer"`
  2247  
  2248  	// The token for the next set of results.
  2249  	NextToken *string `type:"string"`
  2250  
  2251  	// The identifier of the resource associated with the scalable target. This
  2252  	// string consists of the resource type and unique identifier.
  2253  	//
  2254  	//    * ECS service - The resource type is service and the unique identifier
  2255  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  2256  	//
  2257  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  2258  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  2259  	//
  2260  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  2261  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  2262  	//
  2263  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  2264  	//    is the fleet name. Example: fleet/sample-fleet.
  2265  	//
  2266  	//    * DynamoDB table - The resource type is table and the unique identifier
  2267  	//    is the table name. Example: table/my-table.
  2268  	//
  2269  	//    * DynamoDB global secondary index - The resource type is index and the
  2270  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  2271  	//
  2272  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  2273  	//    is the cluster name. Example: cluster:my-db-cluster.
  2274  	//
  2275  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  2276  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  2277  	//
  2278  	//    * Custom resources are not supported with a resource type. This parameter
  2279  	//    must specify the OutputValue from the CloudFormation template stack used
  2280  	//    to access the resources. The unique identifier is defined by the service
  2281  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  2282  	//
  2283  	//    * Amazon Comprehend document classification endpoint - The resource type
  2284  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  2285  	//
  2286  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  2287  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  2288  	//
  2289  	//    * Lambda provisioned concurrency - The resource type is function and the
  2290  	//    unique identifier is the function name with a function version or alias
  2291  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  2292  	//    function:my-function:1.
  2293  	//
  2294  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  2295  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  2296  	//
  2297  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  2298  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  2299  	//
  2300  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  2301  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  2302  	//
  2303  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  2304  	//    is the cluster name. Example: cluster:mycluster.
  2305  	ResourceIds []*string `type:"list"`
  2306  
  2307  	// The scalable dimension associated with the scalable target. This string consists
  2308  	// of the service namespace, resource type, and scaling property. If you specify
  2309  	// a scalable dimension, you must also specify a resource ID.
  2310  	//
  2311  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  2312  	//
  2313  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  2314  	//    an EMR Instance Group.
  2315  	//
  2316  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  2317  	//    Fleet.
  2318  	//
  2319  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  2320  	//    2.0 fleet.
  2321  	//
  2322  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  2323  	//    a DynamoDB table.
  2324  	//
  2325  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  2326  	//    a DynamoDB table.
  2327  	//
  2328  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  2329  	//    a DynamoDB global secondary index.
  2330  	//
  2331  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  2332  	//    a DynamoDB global secondary index.
  2333  	//
  2334  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  2335  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  2336  	//    edition.
  2337  	//
  2338  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  2339  	//    for an SageMaker model endpoint variant.
  2340  	//
  2341  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  2342  	//    custom resource provided by your own application or service.
  2343  	//
  2344  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  2345  	//    number of inference units for an Amazon Comprehend document classification
  2346  	//    endpoint.
  2347  	//
  2348  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  2349  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  2350  	//
  2351  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  2352  	//    for a Lambda function.
  2353  	//
  2354  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  2355  	//    an Amazon Keyspaces table.
  2356  	//
  2357  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  2358  	//    for an Amazon Keyspaces table.
  2359  	//
  2360  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  2361  	//    for brokers in an Amazon MSK cluster.
  2362  	//
  2363  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  2364  	//    for an Amazon ElastiCache replication group.
  2365  	//
  2366  	//    * elasticache:replication-group:Replicas - The number of replicas per
  2367  	//    node group for an Amazon ElastiCache replication group.
  2368  	//
  2369  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  2370  	//    Amazon Neptune DB cluster.
  2371  	ScalableDimension *string `type:"string" enum:"ScalableDimension"`
  2372  
  2373  	// The namespace of the Amazon Web Services service that provides the resource.
  2374  	// For a resource provided by your own application or service, use custom-resource
  2375  	// instead.
  2376  	//
  2377  	// ServiceNamespace is a required field
  2378  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  2379  }
  2380  
  2381  // String returns the string representation.
  2382  //
  2383  // API parameter values that are decorated as "sensitive" in the API will not
  2384  // be included in the string output. The member name will be present, but the
  2385  // value will be replaced with "sensitive".
  2386  func (s DescribeScalableTargetsInput) String() string {
  2387  	return awsutil.Prettify(s)
  2388  }
  2389  
  2390  // GoString returns the string representation.
  2391  //
  2392  // API parameter values that are decorated as "sensitive" in the API will not
  2393  // be included in the string output. The member name will be present, but the
  2394  // value will be replaced with "sensitive".
  2395  func (s DescribeScalableTargetsInput) GoString() string {
  2396  	return s.String()
  2397  }
  2398  
  2399  // Validate inspects the fields of the type to determine if they are valid.
  2400  func (s *DescribeScalableTargetsInput) Validate() error {
  2401  	invalidParams := request.ErrInvalidParams{Context: "DescribeScalableTargetsInput"}
  2402  	if s.ServiceNamespace == nil {
  2403  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  2404  	}
  2405  
  2406  	if invalidParams.Len() > 0 {
  2407  		return invalidParams
  2408  	}
  2409  	return nil
  2410  }
  2411  
  2412  // SetMaxResults sets the MaxResults field's value.
  2413  func (s *DescribeScalableTargetsInput) SetMaxResults(v int64) *DescribeScalableTargetsInput {
  2414  	s.MaxResults = &v
  2415  	return s
  2416  }
  2417  
  2418  // SetNextToken sets the NextToken field's value.
  2419  func (s *DescribeScalableTargetsInput) SetNextToken(v string) *DescribeScalableTargetsInput {
  2420  	s.NextToken = &v
  2421  	return s
  2422  }
  2423  
  2424  // SetResourceIds sets the ResourceIds field's value.
  2425  func (s *DescribeScalableTargetsInput) SetResourceIds(v []*string) *DescribeScalableTargetsInput {
  2426  	s.ResourceIds = v
  2427  	return s
  2428  }
  2429  
  2430  // SetScalableDimension sets the ScalableDimension field's value.
  2431  func (s *DescribeScalableTargetsInput) SetScalableDimension(v string) *DescribeScalableTargetsInput {
  2432  	s.ScalableDimension = &v
  2433  	return s
  2434  }
  2435  
  2436  // SetServiceNamespace sets the ServiceNamespace field's value.
  2437  func (s *DescribeScalableTargetsInput) SetServiceNamespace(v string) *DescribeScalableTargetsInput {
  2438  	s.ServiceNamespace = &v
  2439  	return s
  2440  }
  2441  
  2442  type DescribeScalableTargetsOutput struct {
  2443  	_ struct{} `type:"structure"`
  2444  
  2445  	// The token required to get the next set of results. This value is null if
  2446  	// there are no more results to return.
  2447  	NextToken *string `type:"string"`
  2448  
  2449  	// The scalable targets that match the request parameters.
  2450  	ScalableTargets []*ScalableTarget `type:"list"`
  2451  }
  2452  
  2453  // String returns the string representation.
  2454  //
  2455  // API parameter values that are decorated as "sensitive" in the API will not
  2456  // be included in the string output. The member name will be present, but the
  2457  // value will be replaced with "sensitive".
  2458  func (s DescribeScalableTargetsOutput) String() string {
  2459  	return awsutil.Prettify(s)
  2460  }
  2461  
  2462  // GoString returns the string representation.
  2463  //
  2464  // API parameter values that are decorated as "sensitive" in the API will not
  2465  // be included in the string output. The member name will be present, but the
  2466  // value will be replaced with "sensitive".
  2467  func (s DescribeScalableTargetsOutput) GoString() string {
  2468  	return s.String()
  2469  }
  2470  
  2471  // SetNextToken sets the NextToken field's value.
  2472  func (s *DescribeScalableTargetsOutput) SetNextToken(v string) *DescribeScalableTargetsOutput {
  2473  	s.NextToken = &v
  2474  	return s
  2475  }
  2476  
  2477  // SetScalableTargets sets the ScalableTargets field's value.
  2478  func (s *DescribeScalableTargetsOutput) SetScalableTargets(v []*ScalableTarget) *DescribeScalableTargetsOutput {
  2479  	s.ScalableTargets = v
  2480  	return s
  2481  }
  2482  
  2483  type DescribeScalingActivitiesInput struct {
  2484  	_ struct{} `type:"structure"`
  2485  
  2486  	// The maximum number of scalable targets. This value can be between 1 and 50.
  2487  	// The default value is 50.
  2488  	//
  2489  	// If this parameter is used, the operation returns up to MaxResults results
  2490  	// at a time, along with a NextToken value. To get the next set of results,
  2491  	// include the NextToken value in a subsequent call. If this parameter is not
  2492  	// used, the operation returns up to 50 results and a NextToken value, if applicable.
  2493  	MaxResults *int64 `type:"integer"`
  2494  
  2495  	// The token for the next set of results.
  2496  	NextToken *string `type:"string"`
  2497  
  2498  	// The identifier of the resource associated with the scaling activity. This
  2499  	// string consists of the resource type and unique identifier.
  2500  	//
  2501  	//    * ECS service - The resource type is service and the unique identifier
  2502  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  2503  	//
  2504  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  2505  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  2506  	//
  2507  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  2508  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  2509  	//
  2510  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  2511  	//    is the fleet name. Example: fleet/sample-fleet.
  2512  	//
  2513  	//    * DynamoDB table - The resource type is table and the unique identifier
  2514  	//    is the table name. Example: table/my-table.
  2515  	//
  2516  	//    * DynamoDB global secondary index - The resource type is index and the
  2517  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  2518  	//
  2519  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  2520  	//    is the cluster name. Example: cluster:my-db-cluster.
  2521  	//
  2522  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  2523  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  2524  	//
  2525  	//    * Custom resources are not supported with a resource type. This parameter
  2526  	//    must specify the OutputValue from the CloudFormation template stack used
  2527  	//    to access the resources. The unique identifier is defined by the service
  2528  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  2529  	//
  2530  	//    * Amazon Comprehend document classification endpoint - The resource type
  2531  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  2532  	//
  2533  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  2534  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  2535  	//
  2536  	//    * Lambda provisioned concurrency - The resource type is function and the
  2537  	//    unique identifier is the function name with a function version or alias
  2538  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  2539  	//    function:my-function:1.
  2540  	//
  2541  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  2542  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  2543  	//
  2544  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  2545  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  2546  	//
  2547  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  2548  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  2549  	//
  2550  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  2551  	//    is the cluster name. Example: cluster:mycluster.
  2552  	ResourceId *string `min:"1" type:"string"`
  2553  
  2554  	// The scalable dimension. This string consists of the service namespace, resource
  2555  	// type, and scaling property. If you specify a scalable dimension, you must
  2556  	// also specify a resource ID.
  2557  	//
  2558  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  2559  	//
  2560  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  2561  	//    an EMR Instance Group.
  2562  	//
  2563  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  2564  	//    Fleet.
  2565  	//
  2566  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  2567  	//    2.0 fleet.
  2568  	//
  2569  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  2570  	//    a DynamoDB table.
  2571  	//
  2572  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  2573  	//    a DynamoDB table.
  2574  	//
  2575  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  2576  	//    a DynamoDB global secondary index.
  2577  	//
  2578  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  2579  	//    a DynamoDB global secondary index.
  2580  	//
  2581  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  2582  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  2583  	//    edition.
  2584  	//
  2585  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  2586  	//    for an SageMaker model endpoint variant.
  2587  	//
  2588  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  2589  	//    custom resource provided by your own application or service.
  2590  	//
  2591  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  2592  	//    number of inference units for an Amazon Comprehend document classification
  2593  	//    endpoint.
  2594  	//
  2595  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  2596  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  2597  	//
  2598  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  2599  	//    for a Lambda function.
  2600  	//
  2601  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  2602  	//    an Amazon Keyspaces table.
  2603  	//
  2604  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  2605  	//    for an Amazon Keyspaces table.
  2606  	//
  2607  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  2608  	//    for brokers in an Amazon MSK cluster.
  2609  	//
  2610  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  2611  	//    for an Amazon ElastiCache replication group.
  2612  	//
  2613  	//    * elasticache:replication-group:Replicas - The number of replicas per
  2614  	//    node group for an Amazon ElastiCache replication group.
  2615  	//
  2616  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  2617  	//    Amazon Neptune DB cluster.
  2618  	ScalableDimension *string `type:"string" enum:"ScalableDimension"`
  2619  
  2620  	// The namespace of the Amazon Web Services service that provides the resource.
  2621  	// For a resource provided by your own application or service, use custom-resource
  2622  	// instead.
  2623  	//
  2624  	// ServiceNamespace is a required field
  2625  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  2626  }
  2627  
  2628  // String returns the string representation.
  2629  //
  2630  // API parameter values that are decorated as "sensitive" in the API will not
  2631  // be included in the string output. The member name will be present, but the
  2632  // value will be replaced with "sensitive".
  2633  func (s DescribeScalingActivitiesInput) String() string {
  2634  	return awsutil.Prettify(s)
  2635  }
  2636  
  2637  // GoString returns the string representation.
  2638  //
  2639  // API parameter values that are decorated as "sensitive" in the API will not
  2640  // be included in the string output. The member name will be present, but the
  2641  // value will be replaced with "sensitive".
  2642  func (s DescribeScalingActivitiesInput) GoString() string {
  2643  	return s.String()
  2644  }
  2645  
  2646  // Validate inspects the fields of the type to determine if they are valid.
  2647  func (s *DescribeScalingActivitiesInput) Validate() error {
  2648  	invalidParams := request.ErrInvalidParams{Context: "DescribeScalingActivitiesInput"}
  2649  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  2650  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  2651  	}
  2652  	if s.ServiceNamespace == nil {
  2653  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  2654  	}
  2655  
  2656  	if invalidParams.Len() > 0 {
  2657  		return invalidParams
  2658  	}
  2659  	return nil
  2660  }
  2661  
  2662  // SetMaxResults sets the MaxResults field's value.
  2663  func (s *DescribeScalingActivitiesInput) SetMaxResults(v int64) *DescribeScalingActivitiesInput {
  2664  	s.MaxResults = &v
  2665  	return s
  2666  }
  2667  
  2668  // SetNextToken sets the NextToken field's value.
  2669  func (s *DescribeScalingActivitiesInput) SetNextToken(v string) *DescribeScalingActivitiesInput {
  2670  	s.NextToken = &v
  2671  	return s
  2672  }
  2673  
  2674  // SetResourceId sets the ResourceId field's value.
  2675  func (s *DescribeScalingActivitiesInput) SetResourceId(v string) *DescribeScalingActivitiesInput {
  2676  	s.ResourceId = &v
  2677  	return s
  2678  }
  2679  
  2680  // SetScalableDimension sets the ScalableDimension field's value.
  2681  func (s *DescribeScalingActivitiesInput) SetScalableDimension(v string) *DescribeScalingActivitiesInput {
  2682  	s.ScalableDimension = &v
  2683  	return s
  2684  }
  2685  
  2686  // SetServiceNamespace sets the ServiceNamespace field's value.
  2687  func (s *DescribeScalingActivitiesInput) SetServiceNamespace(v string) *DescribeScalingActivitiesInput {
  2688  	s.ServiceNamespace = &v
  2689  	return s
  2690  }
  2691  
  2692  type DescribeScalingActivitiesOutput struct {
  2693  	_ struct{} `type:"structure"`
  2694  
  2695  	// The token required to get the next set of results. This value is null if
  2696  	// there are no more results to return.
  2697  	NextToken *string `type:"string"`
  2698  
  2699  	// A list of scaling activity objects.
  2700  	ScalingActivities []*ScalingActivity `type:"list"`
  2701  }
  2702  
  2703  // String returns the string representation.
  2704  //
  2705  // API parameter values that are decorated as "sensitive" in the API will not
  2706  // be included in the string output. The member name will be present, but the
  2707  // value will be replaced with "sensitive".
  2708  func (s DescribeScalingActivitiesOutput) String() string {
  2709  	return awsutil.Prettify(s)
  2710  }
  2711  
  2712  // GoString returns the string representation.
  2713  //
  2714  // API parameter values that are decorated as "sensitive" in the API will not
  2715  // be included in the string output. The member name will be present, but the
  2716  // value will be replaced with "sensitive".
  2717  func (s DescribeScalingActivitiesOutput) GoString() string {
  2718  	return s.String()
  2719  }
  2720  
  2721  // SetNextToken sets the NextToken field's value.
  2722  func (s *DescribeScalingActivitiesOutput) SetNextToken(v string) *DescribeScalingActivitiesOutput {
  2723  	s.NextToken = &v
  2724  	return s
  2725  }
  2726  
  2727  // SetScalingActivities sets the ScalingActivities field's value.
  2728  func (s *DescribeScalingActivitiesOutput) SetScalingActivities(v []*ScalingActivity) *DescribeScalingActivitiesOutput {
  2729  	s.ScalingActivities = v
  2730  	return s
  2731  }
  2732  
  2733  type DescribeScalingPoliciesInput struct {
  2734  	_ struct{} `type:"structure"`
  2735  
  2736  	// The maximum number of scalable targets. This value can be between 1 and 10.
  2737  	// The default value is 10.
  2738  	//
  2739  	// If this parameter is used, the operation returns up to MaxResults results
  2740  	// at a time, along with a NextToken value. To get the next set of results,
  2741  	// include the NextToken value in a subsequent call. If this parameter is not
  2742  	// used, the operation returns up to 10 results and a NextToken value, if applicable.
  2743  	MaxResults *int64 `type:"integer"`
  2744  
  2745  	// The token for the next set of results.
  2746  	NextToken *string `type:"string"`
  2747  
  2748  	// The names of the scaling policies to describe.
  2749  	PolicyNames []*string `type:"list"`
  2750  
  2751  	// The identifier of the resource associated with the scaling policy. This string
  2752  	// consists of the resource type and unique identifier.
  2753  	//
  2754  	//    * ECS service - The resource type is service and the unique identifier
  2755  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  2756  	//
  2757  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  2758  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  2759  	//
  2760  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  2761  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  2762  	//
  2763  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  2764  	//    is the fleet name. Example: fleet/sample-fleet.
  2765  	//
  2766  	//    * DynamoDB table - The resource type is table and the unique identifier
  2767  	//    is the table name. Example: table/my-table.
  2768  	//
  2769  	//    * DynamoDB global secondary index - The resource type is index and the
  2770  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  2771  	//
  2772  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  2773  	//    is the cluster name. Example: cluster:my-db-cluster.
  2774  	//
  2775  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  2776  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  2777  	//
  2778  	//    * Custom resources are not supported with a resource type. This parameter
  2779  	//    must specify the OutputValue from the CloudFormation template stack used
  2780  	//    to access the resources. The unique identifier is defined by the service
  2781  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  2782  	//
  2783  	//    * Amazon Comprehend document classification endpoint - The resource type
  2784  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  2785  	//
  2786  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  2787  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  2788  	//
  2789  	//    * Lambda provisioned concurrency - The resource type is function and the
  2790  	//    unique identifier is the function name with a function version or alias
  2791  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  2792  	//    function:my-function:1.
  2793  	//
  2794  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  2795  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  2796  	//
  2797  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  2798  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  2799  	//
  2800  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  2801  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  2802  	//
  2803  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  2804  	//    is the cluster name. Example: cluster:mycluster.
  2805  	ResourceId *string `min:"1" type:"string"`
  2806  
  2807  	// The scalable dimension. This string consists of the service namespace, resource
  2808  	// type, and scaling property. If you specify a scalable dimension, you must
  2809  	// also specify a resource ID.
  2810  	//
  2811  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  2812  	//
  2813  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  2814  	//    an EMR Instance Group.
  2815  	//
  2816  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  2817  	//    Fleet.
  2818  	//
  2819  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  2820  	//    2.0 fleet.
  2821  	//
  2822  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  2823  	//    a DynamoDB table.
  2824  	//
  2825  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  2826  	//    a DynamoDB table.
  2827  	//
  2828  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  2829  	//    a DynamoDB global secondary index.
  2830  	//
  2831  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  2832  	//    a DynamoDB global secondary index.
  2833  	//
  2834  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  2835  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  2836  	//    edition.
  2837  	//
  2838  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  2839  	//    for an SageMaker model endpoint variant.
  2840  	//
  2841  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  2842  	//    custom resource provided by your own application or service.
  2843  	//
  2844  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  2845  	//    number of inference units for an Amazon Comprehend document classification
  2846  	//    endpoint.
  2847  	//
  2848  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  2849  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  2850  	//
  2851  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  2852  	//    for a Lambda function.
  2853  	//
  2854  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  2855  	//    an Amazon Keyspaces table.
  2856  	//
  2857  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  2858  	//    for an Amazon Keyspaces table.
  2859  	//
  2860  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  2861  	//    for brokers in an Amazon MSK cluster.
  2862  	//
  2863  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  2864  	//    for an Amazon ElastiCache replication group.
  2865  	//
  2866  	//    * elasticache:replication-group:Replicas - The number of replicas per
  2867  	//    node group for an Amazon ElastiCache replication group.
  2868  	//
  2869  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  2870  	//    Amazon Neptune DB cluster.
  2871  	ScalableDimension *string `type:"string" enum:"ScalableDimension"`
  2872  
  2873  	// The namespace of the Amazon Web Services service that provides the resource.
  2874  	// For a resource provided by your own application or service, use custom-resource
  2875  	// instead.
  2876  	//
  2877  	// ServiceNamespace is a required field
  2878  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  2879  }
  2880  
  2881  // String returns the string representation.
  2882  //
  2883  // API parameter values that are decorated as "sensitive" in the API will not
  2884  // be included in the string output. The member name will be present, but the
  2885  // value will be replaced with "sensitive".
  2886  func (s DescribeScalingPoliciesInput) String() string {
  2887  	return awsutil.Prettify(s)
  2888  }
  2889  
  2890  // GoString returns the string representation.
  2891  //
  2892  // API parameter values that are decorated as "sensitive" in the API will not
  2893  // be included in the string output. The member name will be present, but the
  2894  // value will be replaced with "sensitive".
  2895  func (s DescribeScalingPoliciesInput) GoString() string {
  2896  	return s.String()
  2897  }
  2898  
  2899  // Validate inspects the fields of the type to determine if they are valid.
  2900  func (s *DescribeScalingPoliciesInput) Validate() error {
  2901  	invalidParams := request.ErrInvalidParams{Context: "DescribeScalingPoliciesInput"}
  2902  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  2903  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  2904  	}
  2905  	if s.ServiceNamespace == nil {
  2906  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  2907  	}
  2908  
  2909  	if invalidParams.Len() > 0 {
  2910  		return invalidParams
  2911  	}
  2912  	return nil
  2913  }
  2914  
  2915  // SetMaxResults sets the MaxResults field's value.
  2916  func (s *DescribeScalingPoliciesInput) SetMaxResults(v int64) *DescribeScalingPoliciesInput {
  2917  	s.MaxResults = &v
  2918  	return s
  2919  }
  2920  
  2921  // SetNextToken sets the NextToken field's value.
  2922  func (s *DescribeScalingPoliciesInput) SetNextToken(v string) *DescribeScalingPoliciesInput {
  2923  	s.NextToken = &v
  2924  	return s
  2925  }
  2926  
  2927  // SetPolicyNames sets the PolicyNames field's value.
  2928  func (s *DescribeScalingPoliciesInput) SetPolicyNames(v []*string) *DescribeScalingPoliciesInput {
  2929  	s.PolicyNames = v
  2930  	return s
  2931  }
  2932  
  2933  // SetResourceId sets the ResourceId field's value.
  2934  func (s *DescribeScalingPoliciesInput) SetResourceId(v string) *DescribeScalingPoliciesInput {
  2935  	s.ResourceId = &v
  2936  	return s
  2937  }
  2938  
  2939  // SetScalableDimension sets the ScalableDimension field's value.
  2940  func (s *DescribeScalingPoliciesInput) SetScalableDimension(v string) *DescribeScalingPoliciesInput {
  2941  	s.ScalableDimension = &v
  2942  	return s
  2943  }
  2944  
  2945  // SetServiceNamespace sets the ServiceNamespace field's value.
  2946  func (s *DescribeScalingPoliciesInput) SetServiceNamespace(v string) *DescribeScalingPoliciesInput {
  2947  	s.ServiceNamespace = &v
  2948  	return s
  2949  }
  2950  
  2951  type DescribeScalingPoliciesOutput struct {
  2952  	_ struct{} `type:"structure"`
  2953  
  2954  	// The token required to get the next set of results. This value is null if
  2955  	// there are no more results to return.
  2956  	NextToken *string `type:"string"`
  2957  
  2958  	// Information about the scaling policies.
  2959  	ScalingPolicies []*ScalingPolicy `type:"list"`
  2960  }
  2961  
  2962  // String returns the string representation.
  2963  //
  2964  // API parameter values that are decorated as "sensitive" in the API will not
  2965  // be included in the string output. The member name will be present, but the
  2966  // value will be replaced with "sensitive".
  2967  func (s DescribeScalingPoliciesOutput) String() string {
  2968  	return awsutil.Prettify(s)
  2969  }
  2970  
  2971  // GoString returns the string representation.
  2972  //
  2973  // API parameter values that are decorated as "sensitive" in the API will not
  2974  // be included in the string output. The member name will be present, but the
  2975  // value will be replaced with "sensitive".
  2976  func (s DescribeScalingPoliciesOutput) GoString() string {
  2977  	return s.String()
  2978  }
  2979  
  2980  // SetNextToken sets the NextToken field's value.
  2981  func (s *DescribeScalingPoliciesOutput) SetNextToken(v string) *DescribeScalingPoliciesOutput {
  2982  	s.NextToken = &v
  2983  	return s
  2984  }
  2985  
  2986  // SetScalingPolicies sets the ScalingPolicies field's value.
  2987  func (s *DescribeScalingPoliciesOutput) SetScalingPolicies(v []*ScalingPolicy) *DescribeScalingPoliciesOutput {
  2988  	s.ScalingPolicies = v
  2989  	return s
  2990  }
  2991  
  2992  type DescribeScheduledActionsInput struct {
  2993  	_ struct{} `type:"structure"`
  2994  
  2995  	// The maximum number of scheduled action results. This value can be between
  2996  	// 1 and 50. The default value is 50.
  2997  	//
  2998  	// If this parameter is used, the operation returns up to MaxResults results
  2999  	// at a time, along with a NextToken value. To get the next set of results,
  3000  	// include the NextToken value in a subsequent call. If this parameter is not
  3001  	// used, the operation returns up to 50 results and a NextToken value, if applicable.
  3002  	MaxResults *int64 `type:"integer"`
  3003  
  3004  	// The token for the next set of results.
  3005  	NextToken *string `type:"string"`
  3006  
  3007  	// The identifier of the resource associated with the scheduled action. This
  3008  	// string consists of the resource type and unique identifier.
  3009  	//
  3010  	//    * ECS service - The resource type is service and the unique identifier
  3011  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  3012  	//
  3013  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  3014  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  3015  	//
  3016  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  3017  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  3018  	//
  3019  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  3020  	//    is the fleet name. Example: fleet/sample-fleet.
  3021  	//
  3022  	//    * DynamoDB table - The resource type is table and the unique identifier
  3023  	//    is the table name. Example: table/my-table.
  3024  	//
  3025  	//    * DynamoDB global secondary index - The resource type is index and the
  3026  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  3027  	//
  3028  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  3029  	//    is the cluster name. Example: cluster:my-db-cluster.
  3030  	//
  3031  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  3032  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  3033  	//
  3034  	//    * Custom resources are not supported with a resource type. This parameter
  3035  	//    must specify the OutputValue from the CloudFormation template stack used
  3036  	//    to access the resources. The unique identifier is defined by the service
  3037  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  3038  	//
  3039  	//    * Amazon Comprehend document classification endpoint - The resource type
  3040  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  3041  	//
  3042  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  3043  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  3044  	//
  3045  	//    * Lambda provisioned concurrency - The resource type is function and the
  3046  	//    unique identifier is the function name with a function version or alias
  3047  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  3048  	//    function:my-function:1.
  3049  	//
  3050  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  3051  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  3052  	//
  3053  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  3054  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  3055  	//
  3056  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  3057  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  3058  	//
  3059  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  3060  	//    is the cluster name. Example: cluster:mycluster.
  3061  	ResourceId *string `min:"1" type:"string"`
  3062  
  3063  	// The scalable dimension. This string consists of the service namespace, resource
  3064  	// type, and scaling property. If you specify a scalable dimension, you must
  3065  	// also specify a resource ID.
  3066  	//
  3067  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  3068  	//
  3069  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  3070  	//    an EMR Instance Group.
  3071  	//
  3072  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  3073  	//    Fleet.
  3074  	//
  3075  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  3076  	//    2.0 fleet.
  3077  	//
  3078  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  3079  	//    a DynamoDB table.
  3080  	//
  3081  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  3082  	//    a DynamoDB table.
  3083  	//
  3084  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  3085  	//    a DynamoDB global secondary index.
  3086  	//
  3087  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  3088  	//    a DynamoDB global secondary index.
  3089  	//
  3090  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  3091  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  3092  	//    edition.
  3093  	//
  3094  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  3095  	//    for an SageMaker model endpoint variant.
  3096  	//
  3097  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  3098  	//    custom resource provided by your own application or service.
  3099  	//
  3100  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  3101  	//    number of inference units for an Amazon Comprehend document classification
  3102  	//    endpoint.
  3103  	//
  3104  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  3105  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  3106  	//
  3107  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  3108  	//    for a Lambda function.
  3109  	//
  3110  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  3111  	//    an Amazon Keyspaces table.
  3112  	//
  3113  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  3114  	//    for an Amazon Keyspaces table.
  3115  	//
  3116  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  3117  	//    for brokers in an Amazon MSK cluster.
  3118  	//
  3119  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  3120  	//    for an Amazon ElastiCache replication group.
  3121  	//
  3122  	//    * elasticache:replication-group:Replicas - The number of replicas per
  3123  	//    node group for an Amazon ElastiCache replication group.
  3124  	//
  3125  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  3126  	//    Amazon Neptune DB cluster.
  3127  	ScalableDimension *string `type:"string" enum:"ScalableDimension"`
  3128  
  3129  	// The names of the scheduled actions to describe.
  3130  	ScheduledActionNames []*string `type:"list"`
  3131  
  3132  	// The namespace of the Amazon Web Services service that provides the resource.
  3133  	// For a resource provided by your own application or service, use custom-resource
  3134  	// instead.
  3135  	//
  3136  	// ServiceNamespace is a required field
  3137  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  3138  }
  3139  
  3140  // String returns the string representation.
  3141  //
  3142  // API parameter values that are decorated as "sensitive" in the API will not
  3143  // be included in the string output. The member name will be present, but the
  3144  // value will be replaced with "sensitive".
  3145  func (s DescribeScheduledActionsInput) String() string {
  3146  	return awsutil.Prettify(s)
  3147  }
  3148  
  3149  // GoString returns the string representation.
  3150  //
  3151  // API parameter values that are decorated as "sensitive" in the API will not
  3152  // be included in the string output. The member name will be present, but the
  3153  // value will be replaced with "sensitive".
  3154  func (s DescribeScheduledActionsInput) GoString() string {
  3155  	return s.String()
  3156  }
  3157  
  3158  // Validate inspects the fields of the type to determine if they are valid.
  3159  func (s *DescribeScheduledActionsInput) Validate() error {
  3160  	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledActionsInput"}
  3161  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  3162  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  3163  	}
  3164  	if s.ServiceNamespace == nil {
  3165  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  3166  	}
  3167  
  3168  	if invalidParams.Len() > 0 {
  3169  		return invalidParams
  3170  	}
  3171  	return nil
  3172  }
  3173  
  3174  // SetMaxResults sets the MaxResults field's value.
  3175  func (s *DescribeScheduledActionsInput) SetMaxResults(v int64) *DescribeScheduledActionsInput {
  3176  	s.MaxResults = &v
  3177  	return s
  3178  }
  3179  
  3180  // SetNextToken sets the NextToken field's value.
  3181  func (s *DescribeScheduledActionsInput) SetNextToken(v string) *DescribeScheduledActionsInput {
  3182  	s.NextToken = &v
  3183  	return s
  3184  }
  3185  
  3186  // SetResourceId sets the ResourceId field's value.
  3187  func (s *DescribeScheduledActionsInput) SetResourceId(v string) *DescribeScheduledActionsInput {
  3188  	s.ResourceId = &v
  3189  	return s
  3190  }
  3191  
  3192  // SetScalableDimension sets the ScalableDimension field's value.
  3193  func (s *DescribeScheduledActionsInput) SetScalableDimension(v string) *DescribeScheduledActionsInput {
  3194  	s.ScalableDimension = &v
  3195  	return s
  3196  }
  3197  
  3198  // SetScheduledActionNames sets the ScheduledActionNames field's value.
  3199  func (s *DescribeScheduledActionsInput) SetScheduledActionNames(v []*string) *DescribeScheduledActionsInput {
  3200  	s.ScheduledActionNames = v
  3201  	return s
  3202  }
  3203  
  3204  // SetServiceNamespace sets the ServiceNamespace field's value.
  3205  func (s *DescribeScheduledActionsInput) SetServiceNamespace(v string) *DescribeScheduledActionsInput {
  3206  	s.ServiceNamespace = &v
  3207  	return s
  3208  }
  3209  
  3210  type DescribeScheduledActionsOutput struct {
  3211  	_ struct{} `type:"structure"`
  3212  
  3213  	// The token required to get the next set of results. This value is null if
  3214  	// there are no more results to return.
  3215  	NextToken *string `type:"string"`
  3216  
  3217  	// Information about the scheduled actions.
  3218  	ScheduledActions []*ScheduledAction `type:"list"`
  3219  }
  3220  
  3221  // String returns the string representation.
  3222  //
  3223  // API parameter values that are decorated as "sensitive" in the API will not
  3224  // be included in the string output. The member name will be present, but the
  3225  // value will be replaced with "sensitive".
  3226  func (s DescribeScheduledActionsOutput) String() string {
  3227  	return awsutil.Prettify(s)
  3228  }
  3229  
  3230  // GoString returns the string representation.
  3231  //
  3232  // API parameter values that are decorated as "sensitive" in the API will not
  3233  // be included in the string output. The member name will be present, but the
  3234  // value will be replaced with "sensitive".
  3235  func (s DescribeScheduledActionsOutput) GoString() string {
  3236  	return s.String()
  3237  }
  3238  
  3239  // SetNextToken sets the NextToken field's value.
  3240  func (s *DescribeScheduledActionsOutput) SetNextToken(v string) *DescribeScheduledActionsOutput {
  3241  	s.NextToken = &v
  3242  	return s
  3243  }
  3244  
  3245  // SetScheduledActions sets the ScheduledActions field's value.
  3246  func (s *DescribeScheduledActionsOutput) SetScheduledActions(v []*ScheduledAction) *DescribeScheduledActionsOutput {
  3247  	s.ScheduledActions = v
  3248  	return s
  3249  }
  3250  
  3251  // Failed access to resources caused an exception. This exception is thrown
  3252  // when Application Auto Scaling is unable to retrieve the alarms associated
  3253  // with a scaling policy due to a client error, for example, if the role ARN
  3254  // specified for a scalable target does not have permission to call the CloudWatch
  3255  // DescribeAlarms (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html)
  3256  // on your behalf.
  3257  type FailedResourceAccessException struct {
  3258  	_            struct{}                  `type:"structure"`
  3259  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3260  
  3261  	Message_ *string `locationName:"Message" type:"string"`
  3262  }
  3263  
  3264  // String returns the string representation.
  3265  //
  3266  // API parameter values that are decorated as "sensitive" in the API will not
  3267  // be included in the string output. The member name will be present, but the
  3268  // value will be replaced with "sensitive".
  3269  func (s FailedResourceAccessException) String() string {
  3270  	return awsutil.Prettify(s)
  3271  }
  3272  
  3273  // GoString returns the string representation.
  3274  //
  3275  // API parameter values that are decorated as "sensitive" in the API will not
  3276  // be included in the string output. The member name will be present, but the
  3277  // value will be replaced with "sensitive".
  3278  func (s FailedResourceAccessException) GoString() string {
  3279  	return s.String()
  3280  }
  3281  
  3282  func newErrorFailedResourceAccessException(v protocol.ResponseMetadata) error {
  3283  	return &FailedResourceAccessException{
  3284  		RespMetadata: v,
  3285  	}
  3286  }
  3287  
  3288  // Code returns the exception type name.
  3289  func (s *FailedResourceAccessException) Code() string {
  3290  	return "FailedResourceAccessException"
  3291  }
  3292  
  3293  // Message returns the exception's message.
  3294  func (s *FailedResourceAccessException) Message() string {
  3295  	if s.Message_ != nil {
  3296  		return *s.Message_
  3297  	}
  3298  	return ""
  3299  }
  3300  
  3301  // OrigErr always returns nil, satisfies awserr.Error interface.
  3302  func (s *FailedResourceAccessException) OrigErr() error {
  3303  	return nil
  3304  }
  3305  
  3306  func (s *FailedResourceAccessException) Error() string {
  3307  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3308  }
  3309  
  3310  // Status code returns the HTTP status code for the request's response error.
  3311  func (s *FailedResourceAccessException) StatusCode() int {
  3312  	return s.RespMetadata.StatusCode
  3313  }
  3314  
  3315  // RequestID returns the service's response RequestID for request.
  3316  func (s *FailedResourceAccessException) RequestID() string {
  3317  	return s.RespMetadata.RequestID
  3318  }
  3319  
  3320  // The service encountered an internal error.
  3321  type InternalServiceException struct {
  3322  	_            struct{}                  `type:"structure"`
  3323  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3324  
  3325  	Message_ *string `locationName:"Message" type:"string"`
  3326  }
  3327  
  3328  // String returns the string representation.
  3329  //
  3330  // API parameter values that are decorated as "sensitive" in the API will not
  3331  // be included in the string output. The member name will be present, but the
  3332  // value will be replaced with "sensitive".
  3333  func (s InternalServiceException) String() string {
  3334  	return awsutil.Prettify(s)
  3335  }
  3336  
  3337  // GoString returns the string representation.
  3338  //
  3339  // API parameter values that are decorated as "sensitive" in the API will not
  3340  // be included in the string output. The member name will be present, but the
  3341  // value will be replaced with "sensitive".
  3342  func (s InternalServiceException) GoString() string {
  3343  	return s.String()
  3344  }
  3345  
  3346  func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
  3347  	return &InternalServiceException{
  3348  		RespMetadata: v,
  3349  	}
  3350  }
  3351  
  3352  // Code returns the exception type name.
  3353  func (s *InternalServiceException) Code() string {
  3354  	return "InternalServiceException"
  3355  }
  3356  
  3357  // Message returns the exception's message.
  3358  func (s *InternalServiceException) Message() string {
  3359  	if s.Message_ != nil {
  3360  		return *s.Message_
  3361  	}
  3362  	return ""
  3363  }
  3364  
  3365  // OrigErr always returns nil, satisfies awserr.Error interface.
  3366  func (s *InternalServiceException) OrigErr() error {
  3367  	return nil
  3368  }
  3369  
  3370  func (s *InternalServiceException) Error() string {
  3371  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3372  }
  3373  
  3374  // Status code returns the HTTP status code for the request's response error.
  3375  func (s *InternalServiceException) StatusCode() int {
  3376  	return s.RespMetadata.StatusCode
  3377  }
  3378  
  3379  // RequestID returns the service's response RequestID for request.
  3380  func (s *InternalServiceException) RequestID() string {
  3381  	return s.RespMetadata.RequestID
  3382  }
  3383  
  3384  // The next token supplied was invalid.
  3385  type InvalidNextTokenException struct {
  3386  	_            struct{}                  `type:"structure"`
  3387  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3388  
  3389  	Message_ *string `locationName:"Message" type:"string"`
  3390  }
  3391  
  3392  // String returns the string representation.
  3393  //
  3394  // API parameter values that are decorated as "sensitive" in the API will not
  3395  // be included in the string output. The member name will be present, but the
  3396  // value will be replaced with "sensitive".
  3397  func (s InvalidNextTokenException) String() string {
  3398  	return awsutil.Prettify(s)
  3399  }
  3400  
  3401  // GoString returns the string representation.
  3402  //
  3403  // API parameter values that are decorated as "sensitive" in the API will not
  3404  // be included in the string output. The member name will be present, but the
  3405  // value will be replaced with "sensitive".
  3406  func (s InvalidNextTokenException) GoString() string {
  3407  	return s.String()
  3408  }
  3409  
  3410  func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
  3411  	return &InvalidNextTokenException{
  3412  		RespMetadata: v,
  3413  	}
  3414  }
  3415  
  3416  // Code returns the exception type name.
  3417  func (s *InvalidNextTokenException) Code() string {
  3418  	return "InvalidNextTokenException"
  3419  }
  3420  
  3421  // Message returns the exception's message.
  3422  func (s *InvalidNextTokenException) Message() string {
  3423  	if s.Message_ != nil {
  3424  		return *s.Message_
  3425  	}
  3426  	return ""
  3427  }
  3428  
  3429  // OrigErr always returns nil, satisfies awserr.Error interface.
  3430  func (s *InvalidNextTokenException) OrigErr() error {
  3431  	return nil
  3432  }
  3433  
  3434  func (s *InvalidNextTokenException) Error() string {
  3435  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3436  }
  3437  
  3438  // Status code returns the HTTP status code for the request's response error.
  3439  func (s *InvalidNextTokenException) StatusCode() int {
  3440  	return s.RespMetadata.StatusCode
  3441  }
  3442  
  3443  // RequestID returns the service's response RequestID for request.
  3444  func (s *InvalidNextTokenException) RequestID() string {
  3445  	return s.RespMetadata.RequestID
  3446  }
  3447  
  3448  // A per-account resource limit is exceeded. For more information, see Application
  3449  // Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-limits.html).
  3450  type LimitExceededException struct {
  3451  	_            struct{}                  `type:"structure"`
  3452  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3453  
  3454  	Message_ *string `locationName:"Message" type:"string"`
  3455  }
  3456  
  3457  // String returns the string representation.
  3458  //
  3459  // API parameter values that are decorated as "sensitive" in the API will not
  3460  // be included in the string output. The member name will be present, but the
  3461  // value will be replaced with "sensitive".
  3462  func (s LimitExceededException) String() string {
  3463  	return awsutil.Prettify(s)
  3464  }
  3465  
  3466  // GoString returns the string representation.
  3467  //
  3468  // API parameter values that are decorated as "sensitive" in the API will not
  3469  // be included in the string output. The member name will be present, but the
  3470  // value will be replaced with "sensitive".
  3471  func (s LimitExceededException) GoString() string {
  3472  	return s.String()
  3473  }
  3474  
  3475  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  3476  	return &LimitExceededException{
  3477  		RespMetadata: v,
  3478  	}
  3479  }
  3480  
  3481  // Code returns the exception type name.
  3482  func (s *LimitExceededException) Code() string {
  3483  	return "LimitExceededException"
  3484  }
  3485  
  3486  // Message returns the exception's message.
  3487  func (s *LimitExceededException) Message() string {
  3488  	if s.Message_ != nil {
  3489  		return *s.Message_
  3490  	}
  3491  	return ""
  3492  }
  3493  
  3494  // OrigErr always returns nil, satisfies awserr.Error interface.
  3495  func (s *LimitExceededException) OrigErr() error {
  3496  	return nil
  3497  }
  3498  
  3499  func (s *LimitExceededException) Error() string {
  3500  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3501  }
  3502  
  3503  // Status code returns the HTTP status code for the request's response error.
  3504  func (s *LimitExceededException) StatusCode() int {
  3505  	return s.RespMetadata.StatusCode
  3506  }
  3507  
  3508  // RequestID returns the service's response RequestID for request.
  3509  func (s *LimitExceededException) RequestID() string {
  3510  	return s.RespMetadata.RequestID
  3511  }
  3512  
  3513  // Describes the dimension names and values associated with a metric.
  3514  type MetricDimension struct {
  3515  	_ struct{} `type:"structure"`
  3516  
  3517  	// The name of the dimension.
  3518  	//
  3519  	// Name is a required field
  3520  	Name *string `type:"string" required:"true"`
  3521  
  3522  	// The value of the dimension.
  3523  	//
  3524  	// Value is a required field
  3525  	Value *string `type:"string" required:"true"`
  3526  }
  3527  
  3528  // String returns the string representation.
  3529  //
  3530  // API parameter values that are decorated as "sensitive" in the API will not
  3531  // be included in the string output. The member name will be present, but the
  3532  // value will be replaced with "sensitive".
  3533  func (s MetricDimension) String() string {
  3534  	return awsutil.Prettify(s)
  3535  }
  3536  
  3537  // GoString returns the string representation.
  3538  //
  3539  // API parameter values that are decorated as "sensitive" in the API will not
  3540  // be included in the string output. The member name will be present, but the
  3541  // value will be replaced with "sensitive".
  3542  func (s MetricDimension) GoString() string {
  3543  	return s.String()
  3544  }
  3545  
  3546  // Validate inspects the fields of the type to determine if they are valid.
  3547  func (s *MetricDimension) Validate() error {
  3548  	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
  3549  	if s.Name == nil {
  3550  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3551  	}
  3552  	if s.Value == nil {
  3553  		invalidParams.Add(request.NewErrParamRequired("Value"))
  3554  	}
  3555  
  3556  	if invalidParams.Len() > 0 {
  3557  		return invalidParams
  3558  	}
  3559  	return nil
  3560  }
  3561  
  3562  // SetName sets the Name field's value.
  3563  func (s *MetricDimension) SetName(v string) *MetricDimension {
  3564  	s.Name = &v
  3565  	return s
  3566  }
  3567  
  3568  // SetValue sets the Value field's value.
  3569  func (s *MetricDimension) SetValue(v string) *MetricDimension {
  3570  	s.Value = &v
  3571  	return s
  3572  }
  3573  
  3574  // The specified object could not be found. For any operation that depends on
  3575  // the existence of a scalable target, this exception is thrown if the scalable
  3576  // target with the specified service namespace, resource ID, and scalable dimension
  3577  // does not exist. For any operation that deletes or deregisters a resource,
  3578  // this exception is thrown if the resource cannot be found.
  3579  type ObjectNotFoundException struct {
  3580  	_            struct{}                  `type:"structure"`
  3581  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3582  
  3583  	Message_ *string `locationName:"Message" type:"string"`
  3584  }
  3585  
  3586  // String returns the string representation.
  3587  //
  3588  // API parameter values that are decorated as "sensitive" in the API will not
  3589  // be included in the string output. The member name will be present, but the
  3590  // value will be replaced with "sensitive".
  3591  func (s ObjectNotFoundException) String() string {
  3592  	return awsutil.Prettify(s)
  3593  }
  3594  
  3595  // GoString returns the string representation.
  3596  //
  3597  // API parameter values that are decorated as "sensitive" in the API will not
  3598  // be included in the string output. The member name will be present, but the
  3599  // value will be replaced with "sensitive".
  3600  func (s ObjectNotFoundException) GoString() string {
  3601  	return s.String()
  3602  }
  3603  
  3604  func newErrorObjectNotFoundException(v protocol.ResponseMetadata) error {
  3605  	return &ObjectNotFoundException{
  3606  		RespMetadata: v,
  3607  	}
  3608  }
  3609  
  3610  // Code returns the exception type name.
  3611  func (s *ObjectNotFoundException) Code() string {
  3612  	return "ObjectNotFoundException"
  3613  }
  3614  
  3615  // Message returns the exception's message.
  3616  func (s *ObjectNotFoundException) Message() string {
  3617  	if s.Message_ != nil {
  3618  		return *s.Message_
  3619  	}
  3620  	return ""
  3621  }
  3622  
  3623  // OrigErr always returns nil, satisfies awserr.Error interface.
  3624  func (s *ObjectNotFoundException) OrigErr() error {
  3625  	return nil
  3626  }
  3627  
  3628  func (s *ObjectNotFoundException) Error() string {
  3629  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3630  }
  3631  
  3632  // Status code returns the HTTP status code for the request's response error.
  3633  func (s *ObjectNotFoundException) StatusCode() int {
  3634  	return s.RespMetadata.StatusCode
  3635  }
  3636  
  3637  // RequestID returns the service's response RequestID for request.
  3638  func (s *ObjectNotFoundException) RequestID() string {
  3639  	return s.RespMetadata.RequestID
  3640  }
  3641  
  3642  // Represents a predefined metric for a target tracking scaling policy to use
  3643  // with Application Auto Scaling.
  3644  //
  3645  // Only the Amazon Web Services that you're using send metrics to Amazon CloudWatch.
  3646  // To determine whether a desired metric already exists by looking up its namespace
  3647  // and dimension using the CloudWatch metrics dashboard in the console, follow
  3648  // the procedure in Building dashboards with CloudWatch (https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html)
  3649  // in the Application Auto Scaling User Guide.
  3650  type PredefinedMetricSpecification struct {
  3651  	_ struct{} `type:"structure"`
  3652  
  3653  	// The metric type. The ALBRequestCountPerTarget metric type applies only to
  3654  	// Spot Fleet requests and ECS services.
  3655  	//
  3656  	// PredefinedMetricType is a required field
  3657  	PredefinedMetricType *string `type:"string" required:"true" enum:"MetricType"`
  3658  
  3659  	// Identifies the resource associated with the metric type. You can't specify
  3660  	// a resource label unless the metric type is ALBRequestCountPerTarget and there
  3661  	// is a target group attached to the Spot Fleet request or ECS service.
  3662  	//
  3663  	// You create the resource label by appending the final portion of the load
  3664  	// balancer ARN and the final portion of the target group ARN into a single
  3665  	// value, separated by a forward slash (/). The format of the resource label
  3666  	// is:
  3667  	//
  3668  	// app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff.
  3669  	//
  3670  	// Where:
  3671  	//
  3672  	//    * app/<load-balancer-name>/<load-balancer-id> is the final portion of
  3673  	//    the load balancer ARN
  3674  	//
  3675  	//    * targetgroup/<target-group-name>/<target-group-id> is the final portion
  3676  	//    of the target group ARN.
  3677  	//
  3678  	// To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers
  3679  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html)
  3680  	// API operation. To find the ARN for the target group, use the DescribeTargetGroups
  3681  	// (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html)
  3682  	// API operation.
  3683  	ResourceLabel *string `min:"1" type:"string"`
  3684  }
  3685  
  3686  // String returns the string representation.
  3687  //
  3688  // API parameter values that are decorated as "sensitive" in the API will not
  3689  // be included in the string output. The member name will be present, but the
  3690  // value will be replaced with "sensitive".
  3691  func (s PredefinedMetricSpecification) String() string {
  3692  	return awsutil.Prettify(s)
  3693  }
  3694  
  3695  // GoString returns the string representation.
  3696  //
  3697  // API parameter values that are decorated as "sensitive" in the API will not
  3698  // be included in the string output. The member name will be present, but the
  3699  // value will be replaced with "sensitive".
  3700  func (s PredefinedMetricSpecification) GoString() string {
  3701  	return s.String()
  3702  }
  3703  
  3704  // Validate inspects the fields of the type to determine if they are valid.
  3705  func (s *PredefinedMetricSpecification) Validate() error {
  3706  	invalidParams := request.ErrInvalidParams{Context: "PredefinedMetricSpecification"}
  3707  	if s.PredefinedMetricType == nil {
  3708  		invalidParams.Add(request.NewErrParamRequired("PredefinedMetricType"))
  3709  	}
  3710  	if s.ResourceLabel != nil && len(*s.ResourceLabel) < 1 {
  3711  		invalidParams.Add(request.NewErrParamMinLen("ResourceLabel", 1))
  3712  	}
  3713  
  3714  	if invalidParams.Len() > 0 {
  3715  		return invalidParams
  3716  	}
  3717  	return nil
  3718  }
  3719  
  3720  // SetPredefinedMetricType sets the PredefinedMetricType field's value.
  3721  func (s *PredefinedMetricSpecification) SetPredefinedMetricType(v string) *PredefinedMetricSpecification {
  3722  	s.PredefinedMetricType = &v
  3723  	return s
  3724  }
  3725  
  3726  // SetResourceLabel sets the ResourceLabel field's value.
  3727  func (s *PredefinedMetricSpecification) SetResourceLabel(v string) *PredefinedMetricSpecification {
  3728  	s.ResourceLabel = &v
  3729  	return s
  3730  }
  3731  
  3732  type PutScalingPolicyInput struct {
  3733  	_ struct{} `type:"structure"`
  3734  
  3735  	// The name of the scaling policy.
  3736  	//
  3737  	// PolicyName is a required field
  3738  	PolicyName *string `min:"1" type:"string" required:"true"`
  3739  
  3740  	// The policy type. This parameter is required if you are creating a scaling
  3741  	// policy.
  3742  	//
  3743  	// The following policy types are supported:
  3744  	//
  3745  	// TargetTrackingScaling—Not supported for Amazon EMR
  3746  	//
  3747  	// StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon
  3748  	// Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.
  3749  	//
  3750  	// For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)
  3751  	// and Step scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html)
  3752  	// in the Application Auto Scaling User Guide.
  3753  	PolicyType *string `type:"string" enum:"PolicyType"`
  3754  
  3755  	// The identifier of the resource associated with the scaling policy. This string
  3756  	// consists of the resource type and unique identifier.
  3757  	//
  3758  	//    * ECS service - The resource type is service and the unique identifier
  3759  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  3760  	//
  3761  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  3762  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  3763  	//
  3764  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  3765  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  3766  	//
  3767  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  3768  	//    is the fleet name. Example: fleet/sample-fleet.
  3769  	//
  3770  	//    * DynamoDB table - The resource type is table and the unique identifier
  3771  	//    is the table name. Example: table/my-table.
  3772  	//
  3773  	//    * DynamoDB global secondary index - The resource type is index and the
  3774  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  3775  	//
  3776  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  3777  	//    is the cluster name. Example: cluster:my-db-cluster.
  3778  	//
  3779  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  3780  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  3781  	//
  3782  	//    * Custom resources are not supported with a resource type. This parameter
  3783  	//    must specify the OutputValue from the CloudFormation template stack used
  3784  	//    to access the resources. The unique identifier is defined by the service
  3785  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  3786  	//
  3787  	//    * Amazon Comprehend document classification endpoint - The resource type
  3788  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  3789  	//
  3790  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  3791  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  3792  	//
  3793  	//    * Lambda provisioned concurrency - The resource type is function and the
  3794  	//    unique identifier is the function name with a function version or alias
  3795  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  3796  	//    function:my-function:1.
  3797  	//
  3798  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  3799  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  3800  	//
  3801  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  3802  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  3803  	//
  3804  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  3805  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  3806  	//
  3807  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  3808  	//    is the cluster name. Example: cluster:mycluster.
  3809  	//
  3810  	// ResourceId is a required field
  3811  	ResourceId *string `min:"1" type:"string" required:"true"`
  3812  
  3813  	// The scalable dimension. This string consists of the service namespace, resource
  3814  	// type, and scaling property.
  3815  	//
  3816  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  3817  	//
  3818  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  3819  	//    an EMR Instance Group.
  3820  	//
  3821  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  3822  	//    Fleet.
  3823  	//
  3824  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  3825  	//    2.0 fleet.
  3826  	//
  3827  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  3828  	//    a DynamoDB table.
  3829  	//
  3830  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  3831  	//    a DynamoDB table.
  3832  	//
  3833  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  3834  	//    a DynamoDB global secondary index.
  3835  	//
  3836  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  3837  	//    a DynamoDB global secondary index.
  3838  	//
  3839  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  3840  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  3841  	//    edition.
  3842  	//
  3843  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  3844  	//    for an SageMaker model endpoint variant.
  3845  	//
  3846  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  3847  	//    custom resource provided by your own application or service.
  3848  	//
  3849  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  3850  	//    number of inference units for an Amazon Comprehend document classification
  3851  	//    endpoint.
  3852  	//
  3853  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  3854  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  3855  	//
  3856  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  3857  	//    for a Lambda function.
  3858  	//
  3859  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  3860  	//    an Amazon Keyspaces table.
  3861  	//
  3862  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  3863  	//    for an Amazon Keyspaces table.
  3864  	//
  3865  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  3866  	//    for brokers in an Amazon MSK cluster.
  3867  	//
  3868  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  3869  	//    for an Amazon ElastiCache replication group.
  3870  	//
  3871  	//    * elasticache:replication-group:Replicas - The number of replicas per
  3872  	//    node group for an Amazon ElastiCache replication group.
  3873  	//
  3874  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  3875  	//    Amazon Neptune DB cluster.
  3876  	//
  3877  	// ScalableDimension is a required field
  3878  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  3879  
  3880  	// The namespace of the Amazon Web Services service that provides the resource.
  3881  	// For a resource provided by your own application or service, use custom-resource
  3882  	// instead.
  3883  	//
  3884  	// ServiceNamespace is a required field
  3885  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  3886  
  3887  	// A step scaling policy.
  3888  	//
  3889  	// This parameter is required if you are creating a policy and the policy type
  3890  	// is StepScaling.
  3891  	StepScalingPolicyConfiguration *StepScalingPolicyConfiguration `type:"structure"`
  3892  
  3893  	// A target tracking scaling policy. Includes support for predefined or customized
  3894  	// metrics.
  3895  	//
  3896  	// This parameter is required if you are creating a policy and the policy type
  3897  	// is TargetTrackingScaling.
  3898  	TargetTrackingScalingPolicyConfiguration *TargetTrackingScalingPolicyConfiguration `type:"structure"`
  3899  }
  3900  
  3901  // String returns the string representation.
  3902  //
  3903  // API parameter values that are decorated as "sensitive" in the API will not
  3904  // be included in the string output. The member name will be present, but the
  3905  // value will be replaced with "sensitive".
  3906  func (s PutScalingPolicyInput) String() string {
  3907  	return awsutil.Prettify(s)
  3908  }
  3909  
  3910  // GoString returns the string representation.
  3911  //
  3912  // API parameter values that are decorated as "sensitive" in the API will not
  3913  // be included in the string output. The member name will be present, but the
  3914  // value will be replaced with "sensitive".
  3915  func (s PutScalingPolicyInput) GoString() string {
  3916  	return s.String()
  3917  }
  3918  
  3919  // Validate inspects the fields of the type to determine if they are valid.
  3920  func (s *PutScalingPolicyInput) Validate() error {
  3921  	invalidParams := request.ErrInvalidParams{Context: "PutScalingPolicyInput"}
  3922  	if s.PolicyName == nil {
  3923  		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
  3924  	}
  3925  	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
  3926  		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
  3927  	}
  3928  	if s.ResourceId == nil {
  3929  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  3930  	}
  3931  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  3932  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  3933  	}
  3934  	if s.ScalableDimension == nil {
  3935  		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
  3936  	}
  3937  	if s.ServiceNamespace == nil {
  3938  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  3939  	}
  3940  	if s.StepScalingPolicyConfiguration != nil {
  3941  		if err := s.StepScalingPolicyConfiguration.Validate(); err != nil {
  3942  			invalidParams.AddNested("StepScalingPolicyConfiguration", err.(request.ErrInvalidParams))
  3943  		}
  3944  	}
  3945  	if s.TargetTrackingScalingPolicyConfiguration != nil {
  3946  		if err := s.TargetTrackingScalingPolicyConfiguration.Validate(); err != nil {
  3947  			invalidParams.AddNested("TargetTrackingScalingPolicyConfiguration", err.(request.ErrInvalidParams))
  3948  		}
  3949  	}
  3950  
  3951  	if invalidParams.Len() > 0 {
  3952  		return invalidParams
  3953  	}
  3954  	return nil
  3955  }
  3956  
  3957  // SetPolicyName sets the PolicyName field's value.
  3958  func (s *PutScalingPolicyInput) SetPolicyName(v string) *PutScalingPolicyInput {
  3959  	s.PolicyName = &v
  3960  	return s
  3961  }
  3962  
  3963  // SetPolicyType sets the PolicyType field's value.
  3964  func (s *PutScalingPolicyInput) SetPolicyType(v string) *PutScalingPolicyInput {
  3965  	s.PolicyType = &v
  3966  	return s
  3967  }
  3968  
  3969  // SetResourceId sets the ResourceId field's value.
  3970  func (s *PutScalingPolicyInput) SetResourceId(v string) *PutScalingPolicyInput {
  3971  	s.ResourceId = &v
  3972  	return s
  3973  }
  3974  
  3975  // SetScalableDimension sets the ScalableDimension field's value.
  3976  func (s *PutScalingPolicyInput) SetScalableDimension(v string) *PutScalingPolicyInput {
  3977  	s.ScalableDimension = &v
  3978  	return s
  3979  }
  3980  
  3981  // SetServiceNamespace sets the ServiceNamespace field's value.
  3982  func (s *PutScalingPolicyInput) SetServiceNamespace(v string) *PutScalingPolicyInput {
  3983  	s.ServiceNamespace = &v
  3984  	return s
  3985  }
  3986  
  3987  // SetStepScalingPolicyConfiguration sets the StepScalingPolicyConfiguration field's value.
  3988  func (s *PutScalingPolicyInput) SetStepScalingPolicyConfiguration(v *StepScalingPolicyConfiguration) *PutScalingPolicyInput {
  3989  	s.StepScalingPolicyConfiguration = v
  3990  	return s
  3991  }
  3992  
  3993  // SetTargetTrackingScalingPolicyConfiguration sets the TargetTrackingScalingPolicyConfiguration field's value.
  3994  func (s *PutScalingPolicyInput) SetTargetTrackingScalingPolicyConfiguration(v *TargetTrackingScalingPolicyConfiguration) *PutScalingPolicyInput {
  3995  	s.TargetTrackingScalingPolicyConfiguration = v
  3996  	return s
  3997  }
  3998  
  3999  type PutScalingPolicyOutput struct {
  4000  	_ struct{} `type:"structure"`
  4001  
  4002  	// The CloudWatch alarms created for the target tracking scaling policy.
  4003  	Alarms []*Alarm `type:"list"`
  4004  
  4005  	// The Amazon Resource Name (ARN) of the resulting scaling policy.
  4006  	//
  4007  	// PolicyARN is a required field
  4008  	PolicyARN *string `min:"1" type:"string" required:"true"`
  4009  }
  4010  
  4011  // String returns the string representation.
  4012  //
  4013  // API parameter values that are decorated as "sensitive" in the API will not
  4014  // be included in the string output. The member name will be present, but the
  4015  // value will be replaced with "sensitive".
  4016  func (s PutScalingPolicyOutput) String() string {
  4017  	return awsutil.Prettify(s)
  4018  }
  4019  
  4020  // GoString returns the string representation.
  4021  //
  4022  // API parameter values that are decorated as "sensitive" in the API will not
  4023  // be included in the string output. The member name will be present, but the
  4024  // value will be replaced with "sensitive".
  4025  func (s PutScalingPolicyOutput) GoString() string {
  4026  	return s.String()
  4027  }
  4028  
  4029  // SetAlarms sets the Alarms field's value.
  4030  func (s *PutScalingPolicyOutput) SetAlarms(v []*Alarm) *PutScalingPolicyOutput {
  4031  	s.Alarms = v
  4032  	return s
  4033  }
  4034  
  4035  // SetPolicyARN sets the PolicyARN field's value.
  4036  func (s *PutScalingPolicyOutput) SetPolicyARN(v string) *PutScalingPolicyOutput {
  4037  	s.PolicyARN = &v
  4038  	return s
  4039  }
  4040  
  4041  type PutScheduledActionInput struct {
  4042  	_ struct{} `type:"structure"`
  4043  
  4044  	// The date and time for the recurring schedule to end, in UTC.
  4045  	EndTime *time.Time `type:"timestamp"`
  4046  
  4047  	// The identifier of the resource associated with the scheduled action. This
  4048  	// string consists of the resource type and unique identifier.
  4049  	//
  4050  	//    * ECS service - The resource type is service and the unique identifier
  4051  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  4052  	//
  4053  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  4054  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  4055  	//
  4056  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  4057  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  4058  	//
  4059  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  4060  	//    is the fleet name. Example: fleet/sample-fleet.
  4061  	//
  4062  	//    * DynamoDB table - The resource type is table and the unique identifier
  4063  	//    is the table name. Example: table/my-table.
  4064  	//
  4065  	//    * DynamoDB global secondary index - The resource type is index and the
  4066  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  4067  	//
  4068  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  4069  	//    is the cluster name. Example: cluster:my-db-cluster.
  4070  	//
  4071  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  4072  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  4073  	//
  4074  	//    * Custom resources are not supported with a resource type. This parameter
  4075  	//    must specify the OutputValue from the CloudFormation template stack used
  4076  	//    to access the resources. The unique identifier is defined by the service
  4077  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  4078  	//
  4079  	//    * Amazon Comprehend document classification endpoint - The resource type
  4080  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  4081  	//
  4082  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  4083  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  4084  	//
  4085  	//    * Lambda provisioned concurrency - The resource type is function and the
  4086  	//    unique identifier is the function name with a function version or alias
  4087  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  4088  	//    function:my-function:1.
  4089  	//
  4090  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  4091  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  4092  	//
  4093  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  4094  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  4095  	//
  4096  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  4097  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  4098  	//
  4099  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  4100  	//    is the cluster name. Example: cluster:mycluster.
  4101  	//
  4102  	// ResourceId is a required field
  4103  	ResourceId *string `min:"1" type:"string" required:"true"`
  4104  
  4105  	// The scalable dimension. This string consists of the service namespace, resource
  4106  	// type, and scaling property.
  4107  	//
  4108  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  4109  	//
  4110  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  4111  	//    an EMR Instance Group.
  4112  	//
  4113  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  4114  	//    Fleet.
  4115  	//
  4116  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  4117  	//    2.0 fleet.
  4118  	//
  4119  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  4120  	//    a DynamoDB table.
  4121  	//
  4122  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  4123  	//    a DynamoDB table.
  4124  	//
  4125  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  4126  	//    a DynamoDB global secondary index.
  4127  	//
  4128  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  4129  	//    a DynamoDB global secondary index.
  4130  	//
  4131  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  4132  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  4133  	//    edition.
  4134  	//
  4135  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  4136  	//    for an SageMaker model endpoint variant.
  4137  	//
  4138  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  4139  	//    custom resource provided by your own application or service.
  4140  	//
  4141  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  4142  	//    number of inference units for an Amazon Comprehend document classification
  4143  	//    endpoint.
  4144  	//
  4145  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  4146  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  4147  	//
  4148  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  4149  	//    for a Lambda function.
  4150  	//
  4151  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  4152  	//    an Amazon Keyspaces table.
  4153  	//
  4154  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  4155  	//    for an Amazon Keyspaces table.
  4156  	//
  4157  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  4158  	//    for brokers in an Amazon MSK cluster.
  4159  	//
  4160  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  4161  	//    for an Amazon ElastiCache replication group.
  4162  	//
  4163  	//    * elasticache:replication-group:Replicas - The number of replicas per
  4164  	//    node group for an Amazon ElastiCache replication group.
  4165  	//
  4166  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  4167  	//    Amazon Neptune DB cluster.
  4168  	//
  4169  	// ScalableDimension is a required field
  4170  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  4171  
  4172  	// The new minimum and maximum capacity. You can set both values or just one.
  4173  	// At the scheduled time, if the current capacity is below the minimum capacity,
  4174  	// Application Auto Scaling scales out to the minimum capacity. If the current
  4175  	// capacity is above the maximum capacity, Application Auto Scaling scales in
  4176  	// to the maximum capacity.
  4177  	ScalableTargetAction *ScalableTargetAction `type:"structure"`
  4178  
  4179  	// The schedule for this action. The following formats are supported:
  4180  	//
  4181  	//    * At expressions - "at(yyyy-mm-ddThh:mm:ss)"
  4182  	//
  4183  	//    * Rate expressions - "rate(value unit)"
  4184  	//
  4185  	//    * Cron expressions - "cron(fields)"
  4186  	//
  4187  	// At expressions are useful for one-time schedules. Cron expressions are useful
  4188  	// for scheduled actions that run periodically at a specified date and time,
  4189  	// and rate expressions are useful for scheduled actions that run at a regular
  4190  	// interval.
  4191  	//
  4192  	// At and cron expressions use Universal Coordinated Time (UTC) by default.
  4193  	//
  4194  	// The cron format consists of six fields separated by white spaces: [Minutes]
  4195  	// [Hours] [Day_of_Month] [Month] [Day_of_Week] [Year].
  4196  	//
  4197  	// For rate expressions, value is a positive integer and unit is minute | minutes
  4198  	// | hour | hours | day | days.
  4199  	//
  4200  	// For more information and examples, see Example scheduled actions for Application
  4201  	// Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/examples-scheduled-actions.html)
  4202  	// in the Application Auto Scaling User Guide.
  4203  	Schedule *string `min:"1" type:"string"`
  4204  
  4205  	// The name of the scheduled action. This name must be unique among all other
  4206  	// scheduled actions on the specified scalable target.
  4207  	//
  4208  	// ScheduledActionName is a required field
  4209  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
  4210  
  4211  	// The namespace of the Amazon Web Services service that provides the resource.
  4212  	// For a resource provided by your own application or service, use custom-resource
  4213  	// instead.
  4214  	//
  4215  	// ServiceNamespace is a required field
  4216  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  4217  
  4218  	// The date and time for this scheduled action to start, in UTC.
  4219  	StartTime *time.Time `type:"timestamp"`
  4220  
  4221  	// Specifies the time zone used when setting a scheduled action by using an
  4222  	// at or cron expression. If a time zone is not provided, UTC is used by default.
  4223  	//
  4224  	// Valid values are the canonical names of the IANA time zones supported by
  4225  	// Joda-Time (such as Etc/GMT+9 or Pacific/Tahiti). For more information, see
  4226  	// https://www.joda.org/joda-time/timezones.html (https://www.joda.org/joda-time/timezones.html).
  4227  	Timezone *string `min:"1" type:"string"`
  4228  }
  4229  
  4230  // String returns the string representation.
  4231  //
  4232  // API parameter values that are decorated as "sensitive" in the API will not
  4233  // be included in the string output. The member name will be present, but the
  4234  // value will be replaced with "sensitive".
  4235  func (s PutScheduledActionInput) String() string {
  4236  	return awsutil.Prettify(s)
  4237  }
  4238  
  4239  // GoString returns the string representation.
  4240  //
  4241  // API parameter values that are decorated as "sensitive" in the API will not
  4242  // be included in the string output. The member name will be present, but the
  4243  // value will be replaced with "sensitive".
  4244  func (s PutScheduledActionInput) GoString() string {
  4245  	return s.String()
  4246  }
  4247  
  4248  // Validate inspects the fields of the type to determine if they are valid.
  4249  func (s *PutScheduledActionInput) Validate() error {
  4250  	invalidParams := request.ErrInvalidParams{Context: "PutScheduledActionInput"}
  4251  	if s.ResourceId == nil {
  4252  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  4253  	}
  4254  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  4255  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  4256  	}
  4257  	if s.ScalableDimension == nil {
  4258  		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
  4259  	}
  4260  	if s.Schedule != nil && len(*s.Schedule) < 1 {
  4261  		invalidParams.Add(request.NewErrParamMinLen("Schedule", 1))
  4262  	}
  4263  	if s.ScheduledActionName == nil {
  4264  		invalidParams.Add(request.NewErrParamRequired("ScheduledActionName"))
  4265  	}
  4266  	if s.ScheduledActionName != nil && len(*s.ScheduledActionName) < 1 {
  4267  		invalidParams.Add(request.NewErrParamMinLen("ScheduledActionName", 1))
  4268  	}
  4269  	if s.ServiceNamespace == nil {
  4270  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  4271  	}
  4272  	if s.Timezone != nil && len(*s.Timezone) < 1 {
  4273  		invalidParams.Add(request.NewErrParamMinLen("Timezone", 1))
  4274  	}
  4275  
  4276  	if invalidParams.Len() > 0 {
  4277  		return invalidParams
  4278  	}
  4279  	return nil
  4280  }
  4281  
  4282  // SetEndTime sets the EndTime field's value.
  4283  func (s *PutScheduledActionInput) SetEndTime(v time.Time) *PutScheduledActionInput {
  4284  	s.EndTime = &v
  4285  	return s
  4286  }
  4287  
  4288  // SetResourceId sets the ResourceId field's value.
  4289  func (s *PutScheduledActionInput) SetResourceId(v string) *PutScheduledActionInput {
  4290  	s.ResourceId = &v
  4291  	return s
  4292  }
  4293  
  4294  // SetScalableDimension sets the ScalableDimension field's value.
  4295  func (s *PutScheduledActionInput) SetScalableDimension(v string) *PutScheduledActionInput {
  4296  	s.ScalableDimension = &v
  4297  	return s
  4298  }
  4299  
  4300  // SetScalableTargetAction sets the ScalableTargetAction field's value.
  4301  func (s *PutScheduledActionInput) SetScalableTargetAction(v *ScalableTargetAction) *PutScheduledActionInput {
  4302  	s.ScalableTargetAction = v
  4303  	return s
  4304  }
  4305  
  4306  // SetSchedule sets the Schedule field's value.
  4307  func (s *PutScheduledActionInput) SetSchedule(v string) *PutScheduledActionInput {
  4308  	s.Schedule = &v
  4309  	return s
  4310  }
  4311  
  4312  // SetScheduledActionName sets the ScheduledActionName field's value.
  4313  func (s *PutScheduledActionInput) SetScheduledActionName(v string) *PutScheduledActionInput {
  4314  	s.ScheduledActionName = &v
  4315  	return s
  4316  }
  4317  
  4318  // SetServiceNamespace sets the ServiceNamespace field's value.
  4319  func (s *PutScheduledActionInput) SetServiceNamespace(v string) *PutScheduledActionInput {
  4320  	s.ServiceNamespace = &v
  4321  	return s
  4322  }
  4323  
  4324  // SetStartTime sets the StartTime field's value.
  4325  func (s *PutScheduledActionInput) SetStartTime(v time.Time) *PutScheduledActionInput {
  4326  	s.StartTime = &v
  4327  	return s
  4328  }
  4329  
  4330  // SetTimezone sets the Timezone field's value.
  4331  func (s *PutScheduledActionInput) SetTimezone(v string) *PutScheduledActionInput {
  4332  	s.Timezone = &v
  4333  	return s
  4334  }
  4335  
  4336  type PutScheduledActionOutput struct {
  4337  	_ struct{} `type:"structure"`
  4338  }
  4339  
  4340  // String returns the string representation.
  4341  //
  4342  // API parameter values that are decorated as "sensitive" in the API will not
  4343  // be included in the string output. The member name will be present, but the
  4344  // value will be replaced with "sensitive".
  4345  func (s PutScheduledActionOutput) String() string {
  4346  	return awsutil.Prettify(s)
  4347  }
  4348  
  4349  // GoString returns the string representation.
  4350  //
  4351  // API parameter values that are decorated as "sensitive" in the API will not
  4352  // be included in the string output. The member name will be present, but the
  4353  // value will be replaced with "sensitive".
  4354  func (s PutScheduledActionOutput) GoString() string {
  4355  	return s.String()
  4356  }
  4357  
  4358  type RegisterScalableTargetInput struct {
  4359  	_ struct{} `type:"structure"`
  4360  
  4361  	// The maximum value that you plan to scale out to. When a scaling policy is
  4362  	// in effect, Application Auto Scaling can scale out (expand) as needed to the
  4363  	// maximum capacity limit in response to changing demand. This property is required
  4364  	// when registering a new scalable target.
  4365  	//
  4366  	// Although you can specify a large maximum capacity, note that service quotas
  4367  	// may impose lower limits. Each service has its own default quotas for the
  4368  	// maximum capacity of the resource. If you want to specify a higher limit,
  4369  	// you can request an increase. For more information, consult the documentation
  4370  	// for that service. For information about the default quotas for each service,
  4371  	// see Service Endpoints and Quotas (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)
  4372  	// in the Amazon Web Services General Reference.
  4373  	MaxCapacity *int64 `type:"integer"`
  4374  
  4375  	// The minimum value that you plan to scale in to. When a scaling policy is
  4376  	// in effect, Application Auto Scaling can scale in (contract) as needed to
  4377  	// the minimum capacity limit in response to changing demand. This property
  4378  	// is required when registering a new scalable target.
  4379  	//
  4380  	// For certain resources, the minimum value allowed is 0. This includes Lambda
  4381  	// provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR
  4382  	// clusters, and custom resources. For all other resources, the minimum value
  4383  	// allowed is 1.
  4384  	MinCapacity *int64 `type:"integer"`
  4385  
  4386  	// The identifier of the resource that is associated with the scalable target.
  4387  	// This string consists of the resource type and unique identifier.
  4388  	//
  4389  	//    * ECS service - The resource type is service and the unique identifier
  4390  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  4391  	//
  4392  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  4393  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  4394  	//
  4395  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  4396  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  4397  	//
  4398  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  4399  	//    is the fleet name. Example: fleet/sample-fleet.
  4400  	//
  4401  	//    * DynamoDB table - The resource type is table and the unique identifier
  4402  	//    is the table name. Example: table/my-table.
  4403  	//
  4404  	//    * DynamoDB global secondary index - The resource type is index and the
  4405  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  4406  	//
  4407  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  4408  	//    is the cluster name. Example: cluster:my-db-cluster.
  4409  	//
  4410  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  4411  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  4412  	//
  4413  	//    * Custom resources are not supported with a resource type. This parameter
  4414  	//    must specify the OutputValue from the CloudFormation template stack used
  4415  	//    to access the resources. The unique identifier is defined by the service
  4416  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  4417  	//
  4418  	//    * Amazon Comprehend document classification endpoint - The resource type
  4419  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  4420  	//
  4421  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  4422  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  4423  	//
  4424  	//    * Lambda provisioned concurrency - The resource type is function and the
  4425  	//    unique identifier is the function name with a function version or alias
  4426  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  4427  	//    function:my-function:1.
  4428  	//
  4429  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  4430  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  4431  	//
  4432  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  4433  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  4434  	//
  4435  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  4436  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  4437  	//
  4438  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  4439  	//    is the cluster name. Example: cluster:mycluster.
  4440  	//
  4441  	// ResourceId is a required field
  4442  	ResourceId *string `min:"1" type:"string" required:"true"`
  4443  
  4444  	// This parameter is required for services that do not support service-linked
  4445  	// roles (such as Amazon EMR), and it must specify the ARN of an IAM role that
  4446  	// allows Application Auto Scaling to modify the scalable target on your behalf.
  4447  	//
  4448  	// If the service supports service-linked roles, Application Auto Scaling uses
  4449  	// a service-linked role, which it creates if it does not yet exist. For more
  4450  	// information, see Application Auto Scaling IAM roles (https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles).
  4451  	RoleARN *string `min:"1" type:"string"`
  4452  
  4453  	// The scalable dimension associated with the scalable target. This string consists
  4454  	// of the service namespace, resource type, and scaling property.
  4455  	//
  4456  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  4457  	//
  4458  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  4459  	//    an EMR Instance Group.
  4460  	//
  4461  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  4462  	//    Fleet.
  4463  	//
  4464  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  4465  	//    2.0 fleet.
  4466  	//
  4467  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  4468  	//    a DynamoDB table.
  4469  	//
  4470  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  4471  	//    a DynamoDB table.
  4472  	//
  4473  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  4474  	//    a DynamoDB global secondary index.
  4475  	//
  4476  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  4477  	//    a DynamoDB global secondary index.
  4478  	//
  4479  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  4480  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  4481  	//    edition.
  4482  	//
  4483  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  4484  	//    for an SageMaker model endpoint variant.
  4485  	//
  4486  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  4487  	//    custom resource provided by your own application or service.
  4488  	//
  4489  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  4490  	//    number of inference units for an Amazon Comprehend document classification
  4491  	//    endpoint.
  4492  	//
  4493  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  4494  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  4495  	//
  4496  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  4497  	//    for a Lambda function.
  4498  	//
  4499  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  4500  	//    an Amazon Keyspaces table.
  4501  	//
  4502  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  4503  	//    for an Amazon Keyspaces table.
  4504  	//
  4505  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  4506  	//    for brokers in an Amazon MSK cluster.
  4507  	//
  4508  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  4509  	//    for an Amazon ElastiCache replication group.
  4510  	//
  4511  	//    * elasticache:replication-group:Replicas - The number of replicas per
  4512  	//    node group for an Amazon ElastiCache replication group.
  4513  	//
  4514  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  4515  	//    Amazon Neptune DB cluster.
  4516  	//
  4517  	// ScalableDimension is a required field
  4518  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  4519  
  4520  	// The namespace of the Amazon Web Services service that provides the resource.
  4521  	// For a resource provided by your own application or service, use custom-resource
  4522  	// instead.
  4523  	//
  4524  	// ServiceNamespace is a required field
  4525  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  4526  
  4527  	// An embedded object that contains attributes and attribute values that are
  4528  	// used to suspend and resume automatic scaling. Setting the value of an attribute
  4529  	// to true suspends the specified scaling activities. Setting it to false (default)
  4530  	// resumes the specified scaling activities.
  4531  	//
  4532  	// Suspension Outcomes
  4533  	//
  4534  	//    * For DynamicScalingInSuspended, while a suspension is in effect, all
  4535  	//    scale-in activities that are triggered by a scaling policy are suspended.
  4536  	//
  4537  	//    * For DynamicScalingOutSuspended, while a suspension is in effect, all
  4538  	//    scale-out activities that are triggered by a scaling policy are suspended.
  4539  	//
  4540  	//    * For ScheduledScalingSuspended, while a suspension is in effect, all
  4541  	//    scaling activities that involve scheduled actions are suspended.
  4542  	//
  4543  	// For more information, see Suspending and resuming scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html)
  4544  	// in the Application Auto Scaling User Guide.
  4545  	SuspendedState *SuspendedState `type:"structure"`
  4546  }
  4547  
  4548  // String returns the string representation.
  4549  //
  4550  // API parameter values that are decorated as "sensitive" in the API will not
  4551  // be included in the string output. The member name will be present, but the
  4552  // value will be replaced with "sensitive".
  4553  func (s RegisterScalableTargetInput) String() string {
  4554  	return awsutil.Prettify(s)
  4555  }
  4556  
  4557  // GoString returns the string representation.
  4558  //
  4559  // API parameter values that are decorated as "sensitive" in the API will not
  4560  // be included in the string output. The member name will be present, but the
  4561  // value will be replaced with "sensitive".
  4562  func (s RegisterScalableTargetInput) GoString() string {
  4563  	return s.String()
  4564  }
  4565  
  4566  // Validate inspects the fields of the type to determine if they are valid.
  4567  func (s *RegisterScalableTargetInput) Validate() error {
  4568  	invalidParams := request.ErrInvalidParams{Context: "RegisterScalableTargetInput"}
  4569  	if s.ResourceId == nil {
  4570  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  4571  	}
  4572  	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
  4573  		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
  4574  	}
  4575  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  4576  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  4577  	}
  4578  	if s.ScalableDimension == nil {
  4579  		invalidParams.Add(request.NewErrParamRequired("ScalableDimension"))
  4580  	}
  4581  	if s.ServiceNamespace == nil {
  4582  		invalidParams.Add(request.NewErrParamRequired("ServiceNamespace"))
  4583  	}
  4584  
  4585  	if invalidParams.Len() > 0 {
  4586  		return invalidParams
  4587  	}
  4588  	return nil
  4589  }
  4590  
  4591  // SetMaxCapacity sets the MaxCapacity field's value.
  4592  func (s *RegisterScalableTargetInput) SetMaxCapacity(v int64) *RegisterScalableTargetInput {
  4593  	s.MaxCapacity = &v
  4594  	return s
  4595  }
  4596  
  4597  // SetMinCapacity sets the MinCapacity field's value.
  4598  func (s *RegisterScalableTargetInput) SetMinCapacity(v int64) *RegisterScalableTargetInput {
  4599  	s.MinCapacity = &v
  4600  	return s
  4601  }
  4602  
  4603  // SetResourceId sets the ResourceId field's value.
  4604  func (s *RegisterScalableTargetInput) SetResourceId(v string) *RegisterScalableTargetInput {
  4605  	s.ResourceId = &v
  4606  	return s
  4607  }
  4608  
  4609  // SetRoleARN sets the RoleARN field's value.
  4610  func (s *RegisterScalableTargetInput) SetRoleARN(v string) *RegisterScalableTargetInput {
  4611  	s.RoleARN = &v
  4612  	return s
  4613  }
  4614  
  4615  // SetScalableDimension sets the ScalableDimension field's value.
  4616  func (s *RegisterScalableTargetInput) SetScalableDimension(v string) *RegisterScalableTargetInput {
  4617  	s.ScalableDimension = &v
  4618  	return s
  4619  }
  4620  
  4621  // SetServiceNamespace sets the ServiceNamespace field's value.
  4622  func (s *RegisterScalableTargetInput) SetServiceNamespace(v string) *RegisterScalableTargetInput {
  4623  	s.ServiceNamespace = &v
  4624  	return s
  4625  }
  4626  
  4627  // SetSuspendedState sets the SuspendedState field's value.
  4628  func (s *RegisterScalableTargetInput) SetSuspendedState(v *SuspendedState) *RegisterScalableTargetInput {
  4629  	s.SuspendedState = v
  4630  	return s
  4631  }
  4632  
  4633  type RegisterScalableTargetOutput struct {
  4634  	_ struct{} `type:"structure"`
  4635  }
  4636  
  4637  // String returns the string representation.
  4638  //
  4639  // API parameter values that are decorated as "sensitive" in the API will not
  4640  // be included in the string output. The member name will be present, but the
  4641  // value will be replaced with "sensitive".
  4642  func (s RegisterScalableTargetOutput) String() string {
  4643  	return awsutil.Prettify(s)
  4644  }
  4645  
  4646  // GoString returns the string representation.
  4647  //
  4648  // API parameter values that are decorated as "sensitive" in the API will not
  4649  // be included in the string output. The member name will be present, but the
  4650  // value will be replaced with "sensitive".
  4651  func (s RegisterScalableTargetOutput) GoString() string {
  4652  	return s.String()
  4653  }
  4654  
  4655  // Represents a scalable target.
  4656  type ScalableTarget struct {
  4657  	_ struct{} `type:"structure"`
  4658  
  4659  	// The Unix timestamp for when the scalable target was created.
  4660  	//
  4661  	// CreationTime is a required field
  4662  	CreationTime *time.Time `type:"timestamp" required:"true"`
  4663  
  4664  	// The maximum value to scale to in response to a scale-out activity.
  4665  	//
  4666  	// MaxCapacity is a required field
  4667  	MaxCapacity *int64 `type:"integer" required:"true"`
  4668  
  4669  	// The minimum value to scale to in response to a scale-in activity.
  4670  	//
  4671  	// MinCapacity is a required field
  4672  	MinCapacity *int64 `type:"integer" required:"true"`
  4673  
  4674  	// The identifier of the resource associated with the scalable target. This
  4675  	// string consists of the resource type and unique identifier.
  4676  	//
  4677  	//    * ECS service - The resource type is service and the unique identifier
  4678  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  4679  	//
  4680  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  4681  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  4682  	//
  4683  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  4684  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  4685  	//
  4686  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  4687  	//    is the fleet name. Example: fleet/sample-fleet.
  4688  	//
  4689  	//    * DynamoDB table - The resource type is table and the unique identifier
  4690  	//    is the table name. Example: table/my-table.
  4691  	//
  4692  	//    * DynamoDB global secondary index - The resource type is index and the
  4693  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  4694  	//
  4695  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  4696  	//    is the cluster name. Example: cluster:my-db-cluster.
  4697  	//
  4698  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  4699  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  4700  	//
  4701  	//    * Custom resources are not supported with a resource type. This parameter
  4702  	//    must specify the OutputValue from the CloudFormation template stack used
  4703  	//    to access the resources. The unique identifier is defined by the service
  4704  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  4705  	//
  4706  	//    * Amazon Comprehend document classification endpoint - The resource type
  4707  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  4708  	//
  4709  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  4710  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  4711  	//
  4712  	//    * Lambda provisioned concurrency - The resource type is function and the
  4713  	//    unique identifier is the function name with a function version or alias
  4714  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  4715  	//    function:my-function:1.
  4716  	//
  4717  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  4718  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  4719  	//
  4720  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  4721  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  4722  	//
  4723  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  4724  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  4725  	//
  4726  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  4727  	//    is the cluster name. Example: cluster:mycluster.
  4728  	//
  4729  	// ResourceId is a required field
  4730  	ResourceId *string `min:"1" type:"string" required:"true"`
  4731  
  4732  	// The ARN of an IAM role that allows Application Auto Scaling to modify the
  4733  	// scalable target on your behalf.
  4734  	//
  4735  	// RoleARN is a required field
  4736  	RoleARN *string `min:"1" type:"string" required:"true"`
  4737  
  4738  	// The scalable dimension associated with the scalable target. This string consists
  4739  	// of the service namespace, resource type, and scaling property.
  4740  	//
  4741  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  4742  	//
  4743  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  4744  	//    an EMR Instance Group.
  4745  	//
  4746  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  4747  	//    Fleet.
  4748  	//
  4749  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  4750  	//    2.0 fleet.
  4751  	//
  4752  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  4753  	//    a DynamoDB table.
  4754  	//
  4755  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  4756  	//    a DynamoDB table.
  4757  	//
  4758  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  4759  	//    a DynamoDB global secondary index.
  4760  	//
  4761  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  4762  	//    a DynamoDB global secondary index.
  4763  	//
  4764  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  4765  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  4766  	//    edition.
  4767  	//
  4768  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  4769  	//    for an SageMaker model endpoint variant.
  4770  	//
  4771  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  4772  	//    custom resource provided by your own application or service.
  4773  	//
  4774  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  4775  	//    number of inference units for an Amazon Comprehend document classification
  4776  	//    endpoint.
  4777  	//
  4778  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  4779  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  4780  	//
  4781  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  4782  	//    for a Lambda function.
  4783  	//
  4784  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  4785  	//    an Amazon Keyspaces table.
  4786  	//
  4787  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  4788  	//    for an Amazon Keyspaces table.
  4789  	//
  4790  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  4791  	//    for brokers in an Amazon MSK cluster.
  4792  	//
  4793  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  4794  	//    for an Amazon ElastiCache replication group.
  4795  	//
  4796  	//    * elasticache:replication-group:Replicas - The number of replicas per
  4797  	//    node group for an Amazon ElastiCache replication group.
  4798  	//
  4799  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  4800  	//    Amazon Neptune DB cluster.
  4801  	//
  4802  	// ScalableDimension is a required field
  4803  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  4804  
  4805  	// The namespace of the Amazon Web Services service that provides the resource,
  4806  	// or a custom-resource.
  4807  	//
  4808  	// ServiceNamespace is a required field
  4809  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  4810  
  4811  	// Specifies whether the scaling activities for a scalable target are in a suspended
  4812  	// state.
  4813  	SuspendedState *SuspendedState `type:"structure"`
  4814  }
  4815  
  4816  // String returns the string representation.
  4817  //
  4818  // API parameter values that are decorated as "sensitive" in the API will not
  4819  // be included in the string output. The member name will be present, but the
  4820  // value will be replaced with "sensitive".
  4821  func (s ScalableTarget) String() string {
  4822  	return awsutil.Prettify(s)
  4823  }
  4824  
  4825  // GoString returns the string representation.
  4826  //
  4827  // API parameter values that are decorated as "sensitive" in the API will not
  4828  // be included in the string output. The member name will be present, but the
  4829  // value will be replaced with "sensitive".
  4830  func (s ScalableTarget) GoString() string {
  4831  	return s.String()
  4832  }
  4833  
  4834  // SetCreationTime sets the CreationTime field's value.
  4835  func (s *ScalableTarget) SetCreationTime(v time.Time) *ScalableTarget {
  4836  	s.CreationTime = &v
  4837  	return s
  4838  }
  4839  
  4840  // SetMaxCapacity sets the MaxCapacity field's value.
  4841  func (s *ScalableTarget) SetMaxCapacity(v int64) *ScalableTarget {
  4842  	s.MaxCapacity = &v
  4843  	return s
  4844  }
  4845  
  4846  // SetMinCapacity sets the MinCapacity field's value.
  4847  func (s *ScalableTarget) SetMinCapacity(v int64) *ScalableTarget {
  4848  	s.MinCapacity = &v
  4849  	return s
  4850  }
  4851  
  4852  // SetResourceId sets the ResourceId field's value.
  4853  func (s *ScalableTarget) SetResourceId(v string) *ScalableTarget {
  4854  	s.ResourceId = &v
  4855  	return s
  4856  }
  4857  
  4858  // SetRoleARN sets the RoleARN field's value.
  4859  func (s *ScalableTarget) SetRoleARN(v string) *ScalableTarget {
  4860  	s.RoleARN = &v
  4861  	return s
  4862  }
  4863  
  4864  // SetScalableDimension sets the ScalableDimension field's value.
  4865  func (s *ScalableTarget) SetScalableDimension(v string) *ScalableTarget {
  4866  	s.ScalableDimension = &v
  4867  	return s
  4868  }
  4869  
  4870  // SetServiceNamespace sets the ServiceNamespace field's value.
  4871  func (s *ScalableTarget) SetServiceNamespace(v string) *ScalableTarget {
  4872  	s.ServiceNamespace = &v
  4873  	return s
  4874  }
  4875  
  4876  // SetSuspendedState sets the SuspendedState field's value.
  4877  func (s *ScalableTarget) SetSuspendedState(v *SuspendedState) *ScalableTarget {
  4878  	s.SuspendedState = v
  4879  	return s
  4880  }
  4881  
  4882  // Represents the minimum and maximum capacity for a scheduled action.
  4883  type ScalableTargetAction struct {
  4884  	_ struct{} `type:"structure"`
  4885  
  4886  	// The maximum capacity.
  4887  	//
  4888  	// Although you can specify a large maximum capacity, note that service quotas
  4889  	// may impose lower limits. Each service has its own default quotas for the
  4890  	// maximum capacity of the resource. If you want to specify a higher limit,
  4891  	// you can request an increase. For more information, consult the documentation
  4892  	// for that service. For information about the default quotas for each service,
  4893  	// see Service Endpoints and Quotas (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)
  4894  	// in the Amazon Web Services General Reference.
  4895  	MaxCapacity *int64 `type:"integer"`
  4896  
  4897  	// The minimum capacity.
  4898  	//
  4899  	// For certain resources, the minimum value allowed is 0. This includes Lambda
  4900  	// provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR
  4901  	// clusters, and custom resources. For all other resources, the minimum value
  4902  	// allowed is 1.
  4903  	MinCapacity *int64 `type:"integer"`
  4904  }
  4905  
  4906  // String returns the string representation.
  4907  //
  4908  // API parameter values that are decorated as "sensitive" in the API will not
  4909  // be included in the string output. The member name will be present, but the
  4910  // value will be replaced with "sensitive".
  4911  func (s ScalableTargetAction) String() string {
  4912  	return awsutil.Prettify(s)
  4913  }
  4914  
  4915  // GoString returns the string representation.
  4916  //
  4917  // API parameter values that are decorated as "sensitive" in the API will not
  4918  // be included in the string output. The member name will be present, but the
  4919  // value will be replaced with "sensitive".
  4920  func (s ScalableTargetAction) GoString() string {
  4921  	return s.String()
  4922  }
  4923  
  4924  // SetMaxCapacity sets the MaxCapacity field's value.
  4925  func (s *ScalableTargetAction) SetMaxCapacity(v int64) *ScalableTargetAction {
  4926  	s.MaxCapacity = &v
  4927  	return s
  4928  }
  4929  
  4930  // SetMinCapacity sets the MinCapacity field's value.
  4931  func (s *ScalableTargetAction) SetMinCapacity(v int64) *ScalableTargetAction {
  4932  	s.MinCapacity = &v
  4933  	return s
  4934  }
  4935  
  4936  // Represents a scaling activity.
  4937  type ScalingActivity struct {
  4938  	_ struct{} `type:"structure"`
  4939  
  4940  	// The unique identifier of the scaling activity.
  4941  	//
  4942  	// ActivityId is a required field
  4943  	ActivityId *string `type:"string" required:"true"`
  4944  
  4945  	// A simple description of what caused the scaling activity to happen.
  4946  	//
  4947  	// Cause is a required field
  4948  	Cause *string `type:"string" required:"true"`
  4949  
  4950  	// A simple description of what action the scaling activity intends to accomplish.
  4951  	//
  4952  	// Description is a required field
  4953  	Description *string `type:"string" required:"true"`
  4954  
  4955  	// The details about the scaling activity.
  4956  	Details *string `type:"string"`
  4957  
  4958  	// The Unix timestamp for when the scaling activity ended.
  4959  	EndTime *time.Time `type:"timestamp"`
  4960  
  4961  	// The identifier of the resource associated with the scaling activity. This
  4962  	// string consists of the resource type and unique identifier.
  4963  	//
  4964  	//    * ECS service - The resource type is service and the unique identifier
  4965  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  4966  	//
  4967  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  4968  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  4969  	//
  4970  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  4971  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  4972  	//
  4973  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  4974  	//    is the fleet name. Example: fleet/sample-fleet.
  4975  	//
  4976  	//    * DynamoDB table - The resource type is table and the unique identifier
  4977  	//    is the table name. Example: table/my-table.
  4978  	//
  4979  	//    * DynamoDB global secondary index - The resource type is index and the
  4980  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  4981  	//
  4982  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  4983  	//    is the cluster name. Example: cluster:my-db-cluster.
  4984  	//
  4985  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  4986  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  4987  	//
  4988  	//    * Custom resources are not supported with a resource type. This parameter
  4989  	//    must specify the OutputValue from the CloudFormation template stack used
  4990  	//    to access the resources. The unique identifier is defined by the service
  4991  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  4992  	//
  4993  	//    * Amazon Comprehend document classification endpoint - The resource type
  4994  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  4995  	//
  4996  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  4997  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  4998  	//
  4999  	//    * Lambda provisioned concurrency - The resource type is function and the
  5000  	//    unique identifier is the function name with a function version or alias
  5001  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  5002  	//    function:my-function:1.
  5003  	//
  5004  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  5005  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  5006  	//
  5007  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  5008  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  5009  	//
  5010  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  5011  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  5012  	//
  5013  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  5014  	//    is the cluster name. Example: cluster:mycluster.
  5015  	//
  5016  	// ResourceId is a required field
  5017  	ResourceId *string `min:"1" type:"string" required:"true"`
  5018  
  5019  	// The scalable dimension. This string consists of the service namespace, resource
  5020  	// type, and scaling property.
  5021  	//
  5022  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  5023  	//
  5024  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  5025  	//    an EMR Instance Group.
  5026  	//
  5027  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  5028  	//    Fleet.
  5029  	//
  5030  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  5031  	//    2.0 fleet.
  5032  	//
  5033  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  5034  	//    a DynamoDB table.
  5035  	//
  5036  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  5037  	//    a DynamoDB table.
  5038  	//
  5039  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  5040  	//    a DynamoDB global secondary index.
  5041  	//
  5042  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  5043  	//    a DynamoDB global secondary index.
  5044  	//
  5045  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  5046  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  5047  	//    edition.
  5048  	//
  5049  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  5050  	//    for an SageMaker model endpoint variant.
  5051  	//
  5052  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  5053  	//    custom resource provided by your own application or service.
  5054  	//
  5055  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  5056  	//    number of inference units for an Amazon Comprehend document classification
  5057  	//    endpoint.
  5058  	//
  5059  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  5060  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  5061  	//
  5062  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  5063  	//    for a Lambda function.
  5064  	//
  5065  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  5066  	//    an Amazon Keyspaces table.
  5067  	//
  5068  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  5069  	//    for an Amazon Keyspaces table.
  5070  	//
  5071  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  5072  	//    for brokers in an Amazon MSK cluster.
  5073  	//
  5074  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  5075  	//    for an Amazon ElastiCache replication group.
  5076  	//
  5077  	//    * elasticache:replication-group:Replicas - The number of replicas per
  5078  	//    node group for an Amazon ElastiCache replication group.
  5079  	//
  5080  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  5081  	//    Amazon Neptune DB cluster.
  5082  	//
  5083  	// ScalableDimension is a required field
  5084  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  5085  
  5086  	// The namespace of the Amazon Web Services service that provides the resource,
  5087  	// or a custom-resource.
  5088  	//
  5089  	// ServiceNamespace is a required field
  5090  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  5091  
  5092  	// The Unix timestamp for when the scaling activity began.
  5093  	//
  5094  	// StartTime is a required field
  5095  	StartTime *time.Time `type:"timestamp" required:"true"`
  5096  
  5097  	// Indicates the status of the scaling activity.
  5098  	//
  5099  	// StatusCode is a required field
  5100  	StatusCode *string `type:"string" required:"true" enum:"ScalingActivityStatusCode"`
  5101  
  5102  	// A simple message about the current status of the scaling activity.
  5103  	StatusMessage *string `type:"string"`
  5104  }
  5105  
  5106  // String returns the string representation.
  5107  //
  5108  // API parameter values that are decorated as "sensitive" in the API will not
  5109  // be included in the string output. The member name will be present, but the
  5110  // value will be replaced with "sensitive".
  5111  func (s ScalingActivity) String() string {
  5112  	return awsutil.Prettify(s)
  5113  }
  5114  
  5115  // GoString returns the string representation.
  5116  //
  5117  // API parameter values that are decorated as "sensitive" in the API will not
  5118  // be included in the string output. The member name will be present, but the
  5119  // value will be replaced with "sensitive".
  5120  func (s ScalingActivity) GoString() string {
  5121  	return s.String()
  5122  }
  5123  
  5124  // SetActivityId sets the ActivityId field's value.
  5125  func (s *ScalingActivity) SetActivityId(v string) *ScalingActivity {
  5126  	s.ActivityId = &v
  5127  	return s
  5128  }
  5129  
  5130  // SetCause sets the Cause field's value.
  5131  func (s *ScalingActivity) SetCause(v string) *ScalingActivity {
  5132  	s.Cause = &v
  5133  	return s
  5134  }
  5135  
  5136  // SetDescription sets the Description field's value.
  5137  func (s *ScalingActivity) SetDescription(v string) *ScalingActivity {
  5138  	s.Description = &v
  5139  	return s
  5140  }
  5141  
  5142  // SetDetails sets the Details field's value.
  5143  func (s *ScalingActivity) SetDetails(v string) *ScalingActivity {
  5144  	s.Details = &v
  5145  	return s
  5146  }
  5147  
  5148  // SetEndTime sets the EndTime field's value.
  5149  func (s *ScalingActivity) SetEndTime(v time.Time) *ScalingActivity {
  5150  	s.EndTime = &v
  5151  	return s
  5152  }
  5153  
  5154  // SetResourceId sets the ResourceId field's value.
  5155  func (s *ScalingActivity) SetResourceId(v string) *ScalingActivity {
  5156  	s.ResourceId = &v
  5157  	return s
  5158  }
  5159  
  5160  // SetScalableDimension sets the ScalableDimension field's value.
  5161  func (s *ScalingActivity) SetScalableDimension(v string) *ScalingActivity {
  5162  	s.ScalableDimension = &v
  5163  	return s
  5164  }
  5165  
  5166  // SetServiceNamespace sets the ServiceNamespace field's value.
  5167  func (s *ScalingActivity) SetServiceNamespace(v string) *ScalingActivity {
  5168  	s.ServiceNamespace = &v
  5169  	return s
  5170  }
  5171  
  5172  // SetStartTime sets the StartTime field's value.
  5173  func (s *ScalingActivity) SetStartTime(v time.Time) *ScalingActivity {
  5174  	s.StartTime = &v
  5175  	return s
  5176  }
  5177  
  5178  // SetStatusCode sets the StatusCode field's value.
  5179  func (s *ScalingActivity) SetStatusCode(v string) *ScalingActivity {
  5180  	s.StatusCode = &v
  5181  	return s
  5182  }
  5183  
  5184  // SetStatusMessage sets the StatusMessage field's value.
  5185  func (s *ScalingActivity) SetStatusMessage(v string) *ScalingActivity {
  5186  	s.StatusMessage = &v
  5187  	return s
  5188  }
  5189  
  5190  // Represents a scaling policy to use with Application Auto Scaling.
  5191  //
  5192  // For more information about configuring scaling policies for a specific service,
  5193  // see Getting started with Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html)
  5194  // in the Application Auto Scaling User Guide.
  5195  type ScalingPolicy struct {
  5196  	_ struct{} `type:"structure"`
  5197  
  5198  	// The CloudWatch alarms associated with the scaling policy.
  5199  	Alarms []*Alarm `type:"list"`
  5200  
  5201  	// The Unix timestamp for when the scaling policy was created.
  5202  	//
  5203  	// CreationTime is a required field
  5204  	CreationTime *time.Time `type:"timestamp" required:"true"`
  5205  
  5206  	// The Amazon Resource Name (ARN) of the scaling policy.
  5207  	//
  5208  	// PolicyARN is a required field
  5209  	PolicyARN *string `min:"1" type:"string" required:"true"`
  5210  
  5211  	// The name of the scaling policy.
  5212  	//
  5213  	// PolicyName is a required field
  5214  	PolicyName *string `min:"1" type:"string" required:"true"`
  5215  
  5216  	// The scaling policy type.
  5217  	//
  5218  	// PolicyType is a required field
  5219  	PolicyType *string `type:"string" required:"true" enum:"PolicyType"`
  5220  
  5221  	// The identifier of the resource associated with the scaling policy. This string
  5222  	// consists of the resource type and unique identifier.
  5223  	//
  5224  	//    * ECS service - The resource type is service and the unique identifier
  5225  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  5226  	//
  5227  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  5228  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  5229  	//
  5230  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  5231  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  5232  	//
  5233  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  5234  	//    is the fleet name. Example: fleet/sample-fleet.
  5235  	//
  5236  	//    * DynamoDB table - The resource type is table and the unique identifier
  5237  	//    is the table name. Example: table/my-table.
  5238  	//
  5239  	//    * DynamoDB global secondary index - The resource type is index and the
  5240  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  5241  	//
  5242  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  5243  	//    is the cluster name. Example: cluster:my-db-cluster.
  5244  	//
  5245  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  5246  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  5247  	//
  5248  	//    * Custom resources are not supported with a resource type. This parameter
  5249  	//    must specify the OutputValue from the CloudFormation template stack used
  5250  	//    to access the resources. The unique identifier is defined by the service
  5251  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  5252  	//
  5253  	//    * Amazon Comprehend document classification endpoint - The resource type
  5254  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  5255  	//
  5256  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  5257  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  5258  	//
  5259  	//    * Lambda provisioned concurrency - The resource type is function and the
  5260  	//    unique identifier is the function name with a function version or alias
  5261  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  5262  	//    function:my-function:1.
  5263  	//
  5264  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  5265  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  5266  	//
  5267  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  5268  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  5269  	//
  5270  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  5271  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  5272  	//
  5273  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  5274  	//    is the cluster name. Example: cluster:mycluster.
  5275  	//
  5276  	// ResourceId is a required field
  5277  	ResourceId *string `min:"1" type:"string" required:"true"`
  5278  
  5279  	// The scalable dimension. This string consists of the service namespace, resource
  5280  	// type, and scaling property.
  5281  	//
  5282  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  5283  	//
  5284  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  5285  	//    an EMR Instance Group.
  5286  	//
  5287  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  5288  	//    Fleet.
  5289  	//
  5290  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  5291  	//    2.0 fleet.
  5292  	//
  5293  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  5294  	//    a DynamoDB table.
  5295  	//
  5296  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  5297  	//    a DynamoDB table.
  5298  	//
  5299  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  5300  	//    a DynamoDB global secondary index.
  5301  	//
  5302  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  5303  	//    a DynamoDB global secondary index.
  5304  	//
  5305  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  5306  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  5307  	//    edition.
  5308  	//
  5309  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  5310  	//    for an SageMaker model endpoint variant.
  5311  	//
  5312  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  5313  	//    custom resource provided by your own application or service.
  5314  	//
  5315  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  5316  	//    number of inference units for an Amazon Comprehend document classification
  5317  	//    endpoint.
  5318  	//
  5319  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  5320  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  5321  	//
  5322  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  5323  	//    for a Lambda function.
  5324  	//
  5325  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  5326  	//    an Amazon Keyspaces table.
  5327  	//
  5328  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  5329  	//    for an Amazon Keyspaces table.
  5330  	//
  5331  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  5332  	//    for brokers in an Amazon MSK cluster.
  5333  	//
  5334  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  5335  	//    for an Amazon ElastiCache replication group.
  5336  	//
  5337  	//    * elasticache:replication-group:Replicas - The number of replicas per
  5338  	//    node group for an Amazon ElastiCache replication group.
  5339  	//
  5340  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  5341  	//    Amazon Neptune DB cluster.
  5342  	//
  5343  	// ScalableDimension is a required field
  5344  	ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"`
  5345  
  5346  	// The namespace of the Amazon Web Services service that provides the resource,
  5347  	// or a custom-resource.
  5348  	//
  5349  	// ServiceNamespace is a required field
  5350  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  5351  
  5352  	// A step scaling policy.
  5353  	StepScalingPolicyConfiguration *StepScalingPolicyConfiguration `type:"structure"`
  5354  
  5355  	// A target tracking scaling policy.
  5356  	TargetTrackingScalingPolicyConfiguration *TargetTrackingScalingPolicyConfiguration `type:"structure"`
  5357  }
  5358  
  5359  // String returns the string representation.
  5360  //
  5361  // API parameter values that are decorated as "sensitive" in the API will not
  5362  // be included in the string output. The member name will be present, but the
  5363  // value will be replaced with "sensitive".
  5364  func (s ScalingPolicy) String() string {
  5365  	return awsutil.Prettify(s)
  5366  }
  5367  
  5368  // GoString returns the string representation.
  5369  //
  5370  // API parameter values that are decorated as "sensitive" in the API will not
  5371  // be included in the string output. The member name will be present, but the
  5372  // value will be replaced with "sensitive".
  5373  func (s ScalingPolicy) GoString() string {
  5374  	return s.String()
  5375  }
  5376  
  5377  // SetAlarms sets the Alarms field's value.
  5378  func (s *ScalingPolicy) SetAlarms(v []*Alarm) *ScalingPolicy {
  5379  	s.Alarms = v
  5380  	return s
  5381  }
  5382  
  5383  // SetCreationTime sets the CreationTime field's value.
  5384  func (s *ScalingPolicy) SetCreationTime(v time.Time) *ScalingPolicy {
  5385  	s.CreationTime = &v
  5386  	return s
  5387  }
  5388  
  5389  // SetPolicyARN sets the PolicyARN field's value.
  5390  func (s *ScalingPolicy) SetPolicyARN(v string) *ScalingPolicy {
  5391  	s.PolicyARN = &v
  5392  	return s
  5393  }
  5394  
  5395  // SetPolicyName sets the PolicyName field's value.
  5396  func (s *ScalingPolicy) SetPolicyName(v string) *ScalingPolicy {
  5397  	s.PolicyName = &v
  5398  	return s
  5399  }
  5400  
  5401  // SetPolicyType sets the PolicyType field's value.
  5402  func (s *ScalingPolicy) SetPolicyType(v string) *ScalingPolicy {
  5403  	s.PolicyType = &v
  5404  	return s
  5405  }
  5406  
  5407  // SetResourceId sets the ResourceId field's value.
  5408  func (s *ScalingPolicy) SetResourceId(v string) *ScalingPolicy {
  5409  	s.ResourceId = &v
  5410  	return s
  5411  }
  5412  
  5413  // SetScalableDimension sets the ScalableDimension field's value.
  5414  func (s *ScalingPolicy) SetScalableDimension(v string) *ScalingPolicy {
  5415  	s.ScalableDimension = &v
  5416  	return s
  5417  }
  5418  
  5419  // SetServiceNamespace sets the ServiceNamespace field's value.
  5420  func (s *ScalingPolicy) SetServiceNamespace(v string) *ScalingPolicy {
  5421  	s.ServiceNamespace = &v
  5422  	return s
  5423  }
  5424  
  5425  // SetStepScalingPolicyConfiguration sets the StepScalingPolicyConfiguration field's value.
  5426  func (s *ScalingPolicy) SetStepScalingPolicyConfiguration(v *StepScalingPolicyConfiguration) *ScalingPolicy {
  5427  	s.StepScalingPolicyConfiguration = v
  5428  	return s
  5429  }
  5430  
  5431  // SetTargetTrackingScalingPolicyConfiguration sets the TargetTrackingScalingPolicyConfiguration field's value.
  5432  func (s *ScalingPolicy) SetTargetTrackingScalingPolicyConfiguration(v *TargetTrackingScalingPolicyConfiguration) *ScalingPolicy {
  5433  	s.TargetTrackingScalingPolicyConfiguration = v
  5434  	return s
  5435  }
  5436  
  5437  // Represents a scheduled action.
  5438  type ScheduledAction struct {
  5439  	_ struct{} `type:"structure"`
  5440  
  5441  	// The date and time that the scheduled action was created.
  5442  	//
  5443  	// CreationTime is a required field
  5444  	CreationTime *time.Time `type:"timestamp" required:"true"`
  5445  
  5446  	// The date and time that the action is scheduled to end, in UTC.
  5447  	EndTime *time.Time `type:"timestamp"`
  5448  
  5449  	// The identifier of the resource associated with the scaling policy. This string
  5450  	// consists of the resource type and unique identifier.
  5451  	//
  5452  	//    * ECS service - The resource type is service and the unique identifier
  5453  	//    is the cluster name and service name. Example: service/default/sample-webapp.
  5454  	//
  5455  	//    * Spot Fleet - The resource type is spot-fleet-request and the unique
  5456  	//    identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
  5457  	//
  5458  	//    * EMR cluster - The resource type is instancegroup and the unique identifier
  5459  	//    is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
  5460  	//
  5461  	//    * AppStream 2.0 fleet - The resource type is fleet and the unique identifier
  5462  	//    is the fleet name. Example: fleet/sample-fleet.
  5463  	//
  5464  	//    * DynamoDB table - The resource type is table and the unique identifier
  5465  	//    is the table name. Example: table/my-table.
  5466  	//
  5467  	//    * DynamoDB global secondary index - The resource type is index and the
  5468  	//    unique identifier is the index name. Example: table/my-table/index/my-table-index.
  5469  	//
  5470  	//    * Aurora DB cluster - The resource type is cluster and the unique identifier
  5471  	//    is the cluster name. Example: cluster:my-db-cluster.
  5472  	//
  5473  	//    * SageMaker endpoint variant - The resource type is variant and the unique
  5474  	//    identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
  5475  	//
  5476  	//    * Custom resources are not supported with a resource type. This parameter
  5477  	//    must specify the OutputValue from the CloudFormation template stack used
  5478  	//    to access the resources. The unique identifier is defined by the service
  5479  	//    provider. More information is available in our GitHub repository (https://github.com/aavshr/aws-auto-scaling-custom-resource).
  5480  	//
  5481  	//    * Amazon Comprehend document classification endpoint - The resource type
  5482  	//    and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
  5483  	//
  5484  	//    * Amazon Comprehend entity recognizer endpoint - The resource type and
  5485  	//    unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
  5486  	//
  5487  	//    * Lambda provisioned concurrency - The resource type is function and the
  5488  	//    unique identifier is the function name with a function version or alias
  5489  	//    name suffix that is not $LATEST. Example: function:my-function:prod or
  5490  	//    function:my-function:1.
  5491  	//
  5492  	//    * Amazon Keyspaces table - The resource type is table and the unique identifier
  5493  	//    is the table name. Example: keyspace/mykeyspace/table/mytable.
  5494  	//
  5495  	//    * Amazon MSK cluster - The resource type and unique identifier are specified
  5496  	//    using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
  5497  	//
  5498  	//    * Amazon ElastiCache replication group - The resource type is replication-group
  5499  	//    and the unique identifier is the replication group name. Example: replication-group/mycluster.
  5500  	//
  5501  	//    * Neptune cluster - The resource type is cluster and the unique identifier
  5502  	//    is the cluster name. Example: cluster:mycluster.
  5503  	//
  5504  	// ResourceId is a required field
  5505  	ResourceId *string `min:"1" type:"string" required:"true"`
  5506  
  5507  	// The scalable dimension. This string consists of the service namespace, resource
  5508  	// type, and scaling property.
  5509  	//
  5510  	//    * ecs:service:DesiredCount - The desired task count of an ECS service.
  5511  	//
  5512  	//    * elasticmapreduce:instancegroup:InstanceCount - The instance count of
  5513  	//    an EMR Instance Group.
  5514  	//
  5515  	//    * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot
  5516  	//    Fleet.
  5517  	//
  5518  	//    * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream
  5519  	//    2.0 fleet.
  5520  	//
  5521  	//    * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for
  5522  	//    a DynamoDB table.
  5523  	//
  5524  	//    * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for
  5525  	//    a DynamoDB table.
  5526  	//
  5527  	//    * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for
  5528  	//    a DynamoDB global secondary index.
  5529  	//
  5530  	//    * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for
  5531  	//    a DynamoDB global secondary index.
  5532  	//
  5533  	//    * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora
  5534  	//    DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible
  5535  	//    edition.
  5536  	//
  5537  	//    * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances
  5538  	//    for an SageMaker model endpoint variant.
  5539  	//
  5540  	//    * custom-resource:ResourceType:Property - The scalable dimension for a
  5541  	//    custom resource provided by your own application or service.
  5542  	//
  5543  	//    * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The
  5544  	//    number of inference units for an Amazon Comprehend document classification
  5545  	//    endpoint.
  5546  	//
  5547  	//    * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number
  5548  	//    of inference units for an Amazon Comprehend entity recognizer endpoint.
  5549  	//
  5550  	//    * lambda:function:ProvisionedConcurrency - The provisioned concurrency
  5551  	//    for a Lambda function.
  5552  	//
  5553  	//    * cassandra:table:ReadCapacityUnits - The provisioned read capacity for
  5554  	//    an Amazon Keyspaces table.
  5555  	//
  5556  	//    * cassandra:table:WriteCapacityUnits - The provisioned write capacity
  5557  	//    for an Amazon Keyspaces table.
  5558  	//
  5559  	//    * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB)
  5560  	//    for brokers in an Amazon MSK cluster.
  5561  	//
  5562  	//    * elasticache:replication-group:NodeGroups - The number of node groups
  5563  	//    for an Amazon ElastiCache replication group.
  5564  	//
  5565  	//    * elasticache:replication-group:Replicas - The number of replicas per
  5566  	//    node group for an Amazon ElastiCache replication group.
  5567  	//
  5568  	//    * neptune:cluster:ReadReplicaCount - The count of read replicas in an
  5569  	//    Amazon Neptune DB cluster.
  5570  	ScalableDimension *string `type:"string" enum:"ScalableDimension"`
  5571  
  5572  	// The new minimum and maximum capacity. You can set both values or just one.
  5573  	// At the scheduled time, if the current capacity is below the minimum capacity,
  5574  	// Application Auto Scaling scales out to the minimum capacity. If the current
  5575  	// capacity is above the maximum capacity, Application Auto Scaling scales in
  5576  	// to the maximum capacity.
  5577  	ScalableTargetAction *ScalableTargetAction `type:"structure"`
  5578  
  5579  	// The schedule for this action. The following formats are supported:
  5580  	//
  5581  	//    * At expressions - "at(yyyy-mm-ddThh:mm:ss)"
  5582  	//
  5583  	//    * Rate expressions - "rate(value unit)"
  5584  	//
  5585  	//    * Cron expressions - "cron(fields)"
  5586  	//
  5587  	// At expressions are useful for one-time schedules. Cron expressions are useful
  5588  	// for scheduled actions that run periodically at a specified date and time,
  5589  	// and rate expressions are useful for scheduled actions that run at a regular
  5590  	// interval.
  5591  	//
  5592  	// At and cron expressions use Universal Coordinated Time (UTC) by default.
  5593  	//
  5594  	// The cron format consists of six fields separated by white spaces: [Minutes]
  5595  	// [Hours] [Day_of_Month] [Month] [Day_of_Week] [Year].
  5596  	//
  5597  	// For rate expressions, value is a positive integer and unit is minute | minutes
  5598  	// | hour | hours | day | days.
  5599  	//
  5600  	// For more information and examples, see Example scheduled actions for Application
  5601  	// Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/examples-scheduled-actions.html)
  5602  	// in the Application Auto Scaling User Guide.
  5603  	//
  5604  	// Schedule is a required field
  5605  	Schedule *string `min:"1" type:"string" required:"true"`
  5606  
  5607  	// The Amazon Resource Name (ARN) of the scheduled action.
  5608  	//
  5609  	// ScheduledActionARN is a required field
  5610  	ScheduledActionARN *string `min:"1" type:"string" required:"true"`
  5611  
  5612  	// The name of the scheduled action.
  5613  	//
  5614  	// ScheduledActionName is a required field
  5615  	ScheduledActionName *string `min:"1" type:"string" required:"true"`
  5616  
  5617  	// The namespace of the Amazon Web Services service that provides the resource,
  5618  	// or a custom-resource.
  5619  	//
  5620  	// ServiceNamespace is a required field
  5621  	ServiceNamespace *string `type:"string" required:"true" enum:"ServiceNamespace"`
  5622  
  5623  	// The date and time that the action is scheduled to begin, in UTC.
  5624  	StartTime *time.Time `type:"timestamp"`
  5625  
  5626  	// The time zone used when referring to the date and time of a scheduled action,
  5627  	// when the scheduled action uses an at or cron expression.
  5628  	Timezone *string `min:"1" type:"string"`
  5629  }
  5630  
  5631  // String returns the string representation.
  5632  //
  5633  // API parameter values that are decorated as "sensitive" in the API will not
  5634  // be included in the string output. The member name will be present, but the
  5635  // value will be replaced with "sensitive".
  5636  func (s ScheduledAction) String() string {
  5637  	return awsutil.Prettify(s)
  5638  }
  5639  
  5640  // GoString returns the string representation.
  5641  //
  5642  // API parameter values that are decorated as "sensitive" in the API will not
  5643  // be included in the string output. The member name will be present, but the
  5644  // value will be replaced with "sensitive".
  5645  func (s ScheduledAction) GoString() string {
  5646  	return s.String()
  5647  }
  5648  
  5649  // SetCreationTime sets the CreationTime field's value.
  5650  func (s *ScheduledAction) SetCreationTime(v time.Time) *ScheduledAction {
  5651  	s.CreationTime = &v
  5652  	return s
  5653  }
  5654  
  5655  // SetEndTime sets the EndTime field's value.
  5656  func (s *ScheduledAction) SetEndTime(v time.Time) *ScheduledAction {
  5657  	s.EndTime = &v
  5658  	return s
  5659  }
  5660  
  5661  // SetResourceId sets the ResourceId field's value.
  5662  func (s *ScheduledAction) SetResourceId(v string) *ScheduledAction {
  5663  	s.ResourceId = &v
  5664  	return s
  5665  }
  5666  
  5667  // SetScalableDimension sets the ScalableDimension field's value.
  5668  func (s *ScheduledAction) SetScalableDimension(v string) *ScheduledAction {
  5669  	s.ScalableDimension = &v
  5670  	return s
  5671  }
  5672  
  5673  // SetScalableTargetAction sets the ScalableTargetAction field's value.
  5674  func (s *ScheduledAction) SetScalableTargetAction(v *ScalableTargetAction) *ScheduledAction {
  5675  	s.ScalableTargetAction = v
  5676  	return s
  5677  }
  5678  
  5679  // SetSchedule sets the Schedule field's value.
  5680  func (s *ScheduledAction) SetSchedule(v string) *ScheduledAction {
  5681  	s.Schedule = &v
  5682  	return s
  5683  }
  5684  
  5685  // SetScheduledActionARN sets the ScheduledActionARN field's value.
  5686  func (s *ScheduledAction) SetScheduledActionARN(v string) *ScheduledAction {
  5687  	s.ScheduledActionARN = &v
  5688  	return s
  5689  }
  5690  
  5691  // SetScheduledActionName sets the ScheduledActionName field's value.
  5692  func (s *ScheduledAction) SetScheduledActionName(v string) *ScheduledAction {
  5693  	s.ScheduledActionName = &v
  5694  	return s
  5695  }
  5696  
  5697  // SetServiceNamespace sets the ServiceNamespace field's value.
  5698  func (s *ScheduledAction) SetServiceNamespace(v string) *ScheduledAction {
  5699  	s.ServiceNamespace = &v
  5700  	return s
  5701  }
  5702  
  5703  // SetStartTime sets the StartTime field's value.
  5704  func (s *ScheduledAction) SetStartTime(v time.Time) *ScheduledAction {
  5705  	s.StartTime = &v
  5706  	return s
  5707  }
  5708  
  5709  // SetTimezone sets the Timezone field's value.
  5710  func (s *ScheduledAction) SetTimezone(v string) *ScheduledAction {
  5711  	s.Timezone = &v
  5712  	return s
  5713  }
  5714  
  5715  // Represents a step adjustment for a StepScalingPolicyConfiguration (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html).
  5716  // Describes an adjustment based on the difference between the value of the
  5717  // aggregated CloudWatch metric and the breach threshold that you've defined
  5718  // for the alarm.
  5719  //
  5720  // For the following examples, suppose that you have an alarm with a breach
  5721  // threshold of 50:
  5722  //
  5723  //    * To trigger the adjustment when the metric is greater than or equal to
  5724  //    50 and less than 60, specify a lower bound of 0 and an upper bound of
  5725  //    10.
  5726  //
  5727  //    * To trigger the adjustment when the metric is greater than 40 and less
  5728  //    than or equal to 50, specify a lower bound of -10 and an upper bound of
  5729  //    0.
  5730  //
  5731  // There are a few rules for the step adjustments for your step policy:
  5732  //
  5733  //    * The ranges of your step adjustments can't overlap or have a gap.
  5734  //
  5735  //    * At most one step adjustment can have a null lower bound. If one step
  5736  //    adjustment has a negative lower bound, then there must be a step adjustment
  5737  //    with a null lower bound.
  5738  //
  5739  //    * At most one step adjustment can have a null upper bound. If one step
  5740  //    adjustment has a positive upper bound, then there must be a step adjustment
  5741  //    with a null upper bound.
  5742  //
  5743  //    * The upper and lower bound can't be null in the same step adjustment.
  5744  type StepAdjustment struct {
  5745  	_ struct{} `type:"structure"`
  5746  
  5747  	// The lower bound for the difference between the alarm threshold and the CloudWatch
  5748  	// metric. If the metric value is above the breach threshold, the lower bound
  5749  	// is inclusive (the metric must be greater than or equal to the threshold plus
  5750  	// the lower bound). Otherwise, it is exclusive (the metric must be greater
  5751  	// than the threshold plus the lower bound). A null value indicates negative
  5752  	// infinity.
  5753  	MetricIntervalLowerBound *float64 `type:"double"`
  5754  
  5755  	// The upper bound for the difference between the alarm threshold and the CloudWatch
  5756  	// metric. If the metric value is above the breach threshold, the upper bound
  5757  	// is exclusive (the metric must be less than the threshold plus the upper bound).
  5758  	// Otherwise, it is inclusive (the metric must be less than or equal to the
  5759  	// threshold plus the upper bound). A null value indicates positive infinity.
  5760  	//
  5761  	// The upper bound must be greater than the lower bound.
  5762  	MetricIntervalUpperBound *float64 `type:"double"`
  5763  
  5764  	// The amount by which to scale, based on the specified adjustment type. A positive
  5765  	// value adds to the current capacity while a negative number removes from the
  5766  	// current capacity. For exact capacity, you must specify a positive value.
  5767  	//
  5768  	// ScalingAdjustment is a required field
  5769  	ScalingAdjustment *int64 `type:"integer" required:"true"`
  5770  }
  5771  
  5772  // String returns the string representation.
  5773  //
  5774  // API parameter values that are decorated as "sensitive" in the API will not
  5775  // be included in the string output. The member name will be present, but the
  5776  // value will be replaced with "sensitive".
  5777  func (s StepAdjustment) String() string {
  5778  	return awsutil.Prettify(s)
  5779  }
  5780  
  5781  // GoString returns the string representation.
  5782  //
  5783  // API parameter values that are decorated as "sensitive" in the API will not
  5784  // be included in the string output. The member name will be present, but the
  5785  // value will be replaced with "sensitive".
  5786  func (s StepAdjustment) GoString() string {
  5787  	return s.String()
  5788  }
  5789  
  5790  // Validate inspects the fields of the type to determine if they are valid.
  5791  func (s *StepAdjustment) Validate() error {
  5792  	invalidParams := request.ErrInvalidParams{Context: "StepAdjustment"}
  5793  	if s.ScalingAdjustment == nil {
  5794  		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
  5795  	}
  5796  
  5797  	if invalidParams.Len() > 0 {
  5798  		return invalidParams
  5799  	}
  5800  	return nil
  5801  }
  5802  
  5803  // SetMetricIntervalLowerBound sets the MetricIntervalLowerBound field's value.
  5804  func (s *StepAdjustment) SetMetricIntervalLowerBound(v float64) *StepAdjustment {
  5805  	s.MetricIntervalLowerBound = &v
  5806  	return s
  5807  }
  5808  
  5809  // SetMetricIntervalUpperBound sets the MetricIntervalUpperBound field's value.
  5810  func (s *StepAdjustment) SetMetricIntervalUpperBound(v float64) *StepAdjustment {
  5811  	s.MetricIntervalUpperBound = &v
  5812  	return s
  5813  }
  5814  
  5815  // SetScalingAdjustment sets the ScalingAdjustment field's value.
  5816  func (s *StepAdjustment) SetScalingAdjustment(v int64) *StepAdjustment {
  5817  	s.ScalingAdjustment = &v
  5818  	return s
  5819  }
  5820  
  5821  // Represents a step scaling policy configuration to use with Application Auto
  5822  // Scaling.
  5823  type StepScalingPolicyConfiguration struct {
  5824  	_ struct{} `type:"structure"`
  5825  
  5826  	// Specifies how the ScalingAdjustment value in a StepAdjustment (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepAdjustment.html)
  5827  	// is interpreted (for example, an absolute number or a percentage). The valid
  5828  	// values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.
  5829  	//
  5830  	// AdjustmentType is required if you are adding a new step scaling policy configuration.
  5831  	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
  5832  
  5833  	// The amount of time, in seconds, to wait for a previous scaling activity to
  5834  	// take effect.
  5835  	//
  5836  	// With scale-out policies, the intention is to continuously (but not excessively)
  5837  	// scale out. After Application Auto Scaling successfully scales out using a
  5838  	// step scaling policy, it starts to calculate the cooldown time. The scaling
  5839  	// policy won't increase the desired capacity again unless either a larger scale
  5840  	// out is triggered or the cooldown period ends. While the cooldown period is
  5841  	// in effect, capacity added by the initiating scale-out activity is calculated
  5842  	// as part of the desired capacity for the next scale-out activity. For example,
  5843  	// when an alarm triggers a step scaling policy to increase the capacity by
  5844  	// 2, the scaling activity completes successfully, and a cooldown period starts.
  5845  	// If the alarm triggers again during the cooldown period but at a more aggressive
  5846  	// step adjustment of 3, the previous increase of 2 is considered part of the
  5847  	// current capacity. Therefore, only 1 is added to the capacity.
  5848  	//
  5849  	// With scale-in policies, the intention is to scale in conservatively to protect
  5850  	// your application’s availability, so scale-in activities are blocked until
  5851  	// the cooldown period has expired. However, if another alarm triggers a scale-out
  5852  	// activity during the cooldown period after a scale-in activity, Application
  5853  	// Auto Scaling scales out the target immediately. In this case, the cooldown
  5854  	// period for the scale-in activity stops and doesn't complete.
  5855  	//
  5856  	// Application Auto Scaling provides a default value of 600 for Amazon ElastiCache
  5857  	// replication groups and a default value of 300 for the following scalable
  5858  	// targets:
  5859  	//
  5860  	//    * AppStream 2.0 fleets
  5861  	//
  5862  	//    * Aurora DB clusters
  5863  	//
  5864  	//    * ECS services
  5865  	//
  5866  	//    * EMR clusters
  5867  	//
  5868  	//    * Neptune clusters
  5869  	//
  5870  	//    * SageMaker endpoint variants
  5871  	//
  5872  	//    * Spot Fleets
  5873  	//
  5874  	//    * Custom resources
  5875  	//
  5876  	// For all other scalable targets, the default value is 0:
  5877  	//
  5878  	//    * Amazon Comprehend document classification and entity recognizer endpoints
  5879  	//
  5880  	//    * DynamoDB tables and global secondary indexes
  5881  	//
  5882  	//    * Amazon Keyspaces tables
  5883  	//
  5884  	//    * Lambda provisioned concurrency
  5885  	//
  5886  	//    * Amazon MSK broker storage
  5887  	Cooldown *int64 `type:"integer"`
  5888  
  5889  	// The aggregation type for the CloudWatch metrics. Valid values are Minimum,
  5890  	// Maximum, and Average. If the aggregation type is null, the value is treated
  5891  	// as Average.
  5892  	MetricAggregationType *string `type:"string" enum:"MetricAggregationType"`
  5893  
  5894  	// The minimum value to scale by when the adjustment type is PercentChangeInCapacity.
  5895  	// For example, suppose that you create a step scaling policy to scale out an
  5896  	// Amazon ECS service by 25 percent and you specify a MinAdjustmentMagnitude
  5897  	// of 2. If the service has 4 tasks and the scaling policy is performed, 25
  5898  	// percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude
  5899  	// of 2, Application Auto Scaling scales out the service by 2 tasks.
  5900  	MinAdjustmentMagnitude *int64 `type:"integer"`
  5901  
  5902  	// A set of adjustments that enable you to scale based on the size of the alarm
  5903  	// breach.
  5904  	//
  5905  	// At least one step adjustment is required if you are adding a new step scaling
  5906  	// policy configuration.
  5907  	StepAdjustments []*StepAdjustment `type:"list"`
  5908  }
  5909  
  5910  // String returns the string representation.
  5911  //
  5912  // API parameter values that are decorated as "sensitive" in the API will not
  5913  // be included in the string output. The member name will be present, but the
  5914  // value will be replaced with "sensitive".
  5915  func (s StepScalingPolicyConfiguration) String() string {
  5916  	return awsutil.Prettify(s)
  5917  }
  5918  
  5919  // GoString returns the string representation.
  5920  //
  5921  // API parameter values that are decorated as "sensitive" in the API will not
  5922  // be included in the string output. The member name will be present, but the
  5923  // value will be replaced with "sensitive".
  5924  func (s StepScalingPolicyConfiguration) GoString() string {
  5925  	return s.String()
  5926  }
  5927  
  5928  // Validate inspects the fields of the type to determine if they are valid.
  5929  func (s *StepScalingPolicyConfiguration) Validate() error {
  5930  	invalidParams := request.ErrInvalidParams{Context: "StepScalingPolicyConfiguration"}
  5931  	if s.StepAdjustments != nil {
  5932  		for i, v := range s.StepAdjustments {
  5933  			if v == nil {
  5934  				continue
  5935  			}
  5936  			if err := v.Validate(); err != nil {
  5937  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StepAdjustments", i), err.(request.ErrInvalidParams))
  5938  			}
  5939  		}
  5940  	}
  5941  
  5942  	if invalidParams.Len() > 0 {
  5943  		return invalidParams
  5944  	}
  5945  	return nil
  5946  }
  5947  
  5948  // SetAdjustmentType sets the AdjustmentType field's value.
  5949  func (s *StepScalingPolicyConfiguration) SetAdjustmentType(v string) *StepScalingPolicyConfiguration {
  5950  	s.AdjustmentType = &v
  5951  	return s
  5952  }
  5953  
  5954  // SetCooldown sets the Cooldown field's value.
  5955  func (s *StepScalingPolicyConfiguration) SetCooldown(v int64) *StepScalingPolicyConfiguration {
  5956  	s.Cooldown = &v
  5957  	return s
  5958  }
  5959  
  5960  // SetMetricAggregationType sets the MetricAggregationType field's value.
  5961  func (s *StepScalingPolicyConfiguration) SetMetricAggregationType(v string) *StepScalingPolicyConfiguration {
  5962  	s.MetricAggregationType = &v
  5963  	return s
  5964  }
  5965  
  5966  // SetMinAdjustmentMagnitude sets the MinAdjustmentMagnitude field's value.
  5967  func (s *StepScalingPolicyConfiguration) SetMinAdjustmentMagnitude(v int64) *StepScalingPolicyConfiguration {
  5968  	s.MinAdjustmentMagnitude = &v
  5969  	return s
  5970  }
  5971  
  5972  // SetStepAdjustments sets the StepAdjustments field's value.
  5973  func (s *StepScalingPolicyConfiguration) SetStepAdjustments(v []*StepAdjustment) *StepScalingPolicyConfiguration {
  5974  	s.StepAdjustments = v
  5975  	return s
  5976  }
  5977  
  5978  // Specifies whether the scaling activities for a scalable target are in a suspended
  5979  // state.
  5980  type SuspendedState struct {
  5981  	_ struct{} `type:"structure"`
  5982  
  5983  	// Whether scale in by a target tracking scaling policy or a step scaling policy
  5984  	// is suspended. Set the value to true if you don't want Application Auto Scaling
  5985  	// to remove capacity when a scaling policy is triggered. The default is false.
  5986  	DynamicScalingInSuspended *bool `type:"boolean"`
  5987  
  5988  	// Whether scale out by a target tracking scaling policy or a step scaling policy
  5989  	// is suspended. Set the value to true if you don't want Application Auto Scaling
  5990  	// to add capacity when a scaling policy is triggered. The default is false.
  5991  	DynamicScalingOutSuspended *bool `type:"boolean"`
  5992  
  5993  	// Whether scheduled scaling is suspended. Set the value to true if you don't
  5994  	// want Application Auto Scaling to add or remove capacity by initiating scheduled
  5995  	// actions. The default is false.
  5996  	ScheduledScalingSuspended *bool `type:"boolean"`
  5997  }
  5998  
  5999  // String returns the string representation.
  6000  //
  6001  // API parameter values that are decorated as "sensitive" in the API will not
  6002  // be included in the string output. The member name will be present, but the
  6003  // value will be replaced with "sensitive".
  6004  func (s SuspendedState) String() string {
  6005  	return awsutil.Prettify(s)
  6006  }
  6007  
  6008  // GoString returns the string representation.
  6009  //
  6010  // API parameter values that are decorated as "sensitive" in the API will not
  6011  // be included in the string output. The member name will be present, but the
  6012  // value will be replaced with "sensitive".
  6013  func (s SuspendedState) GoString() string {
  6014  	return s.String()
  6015  }
  6016  
  6017  // SetDynamicScalingInSuspended sets the DynamicScalingInSuspended field's value.
  6018  func (s *SuspendedState) SetDynamicScalingInSuspended(v bool) *SuspendedState {
  6019  	s.DynamicScalingInSuspended = &v
  6020  	return s
  6021  }
  6022  
  6023  // SetDynamicScalingOutSuspended sets the DynamicScalingOutSuspended field's value.
  6024  func (s *SuspendedState) SetDynamicScalingOutSuspended(v bool) *SuspendedState {
  6025  	s.DynamicScalingOutSuspended = &v
  6026  	return s
  6027  }
  6028  
  6029  // SetScheduledScalingSuspended sets the ScheduledScalingSuspended field's value.
  6030  func (s *SuspendedState) SetScheduledScalingSuspended(v bool) *SuspendedState {
  6031  	s.ScheduledScalingSuspended = &v
  6032  	return s
  6033  }
  6034  
  6035  // Represents a target tracking scaling policy configuration to use with Application
  6036  // Auto Scaling.
  6037  type TargetTrackingScalingPolicyConfiguration struct {
  6038  	_ struct{} `type:"structure"`
  6039  
  6040  	// A customized metric. You can specify either a predefined metric or a customized
  6041  	// metric.
  6042  	CustomizedMetricSpecification *CustomizedMetricSpecification `type:"structure"`
  6043  
  6044  	// Indicates whether scale in by the target tracking scaling policy is disabled.
  6045  	// If the value is true, scale in is disabled and the target tracking scaling
  6046  	// policy won't remove capacity from the scalable target. Otherwise, scale in
  6047  	// is enabled and the target tracking scaling policy can remove capacity from
  6048  	// the scalable target. The default value is false.
  6049  	DisableScaleIn *bool `type:"boolean"`
  6050  
  6051  	// A predefined metric. You can specify either a predefined metric or a customized
  6052  	// metric.
  6053  	PredefinedMetricSpecification *PredefinedMetricSpecification `type:"structure"`
  6054  
  6055  	// The amount of time, in seconds, after a scale-in activity completes before
  6056  	// another scale-in activity can start.
  6057  	//
  6058  	// With the scale-in cooldown period, the intention is to scale in conservatively
  6059  	// to protect your application’s availability, so scale-in activities are
  6060  	// blocked until the cooldown period has expired. However, if another alarm
  6061  	// triggers a scale-out activity during the scale-in cooldown period, Application
  6062  	// Auto Scaling scales out the target immediately. In this case, the scale-in
  6063  	// cooldown period stops and doesn't complete.
  6064  	//
  6065  	// Application Auto Scaling provides a default value of 600 for Amazon ElastiCache
  6066  	// replication groups and a default value of 300 for the following scalable
  6067  	// targets:
  6068  	//
  6069  	//    * AppStream 2.0 fleets
  6070  	//
  6071  	//    * Aurora DB clusters
  6072  	//
  6073  	//    * ECS services
  6074  	//
  6075  	//    * EMR clusters
  6076  	//
  6077  	//    * Neptune clusters
  6078  	//
  6079  	//    * SageMaker endpoint variants
  6080  	//
  6081  	//    * Spot Fleets
  6082  	//
  6083  	//    * Custom resources
  6084  	//
  6085  	// For all other scalable targets, the default value is 0:
  6086  	//
  6087  	//    * Amazon Comprehend document classification and entity recognizer endpoints
  6088  	//
  6089  	//    * DynamoDB tables and global secondary indexes
  6090  	//
  6091  	//    * Amazon Keyspaces tables
  6092  	//
  6093  	//    * Lambda provisioned concurrency
  6094  	//
  6095  	//    * Amazon MSK broker storage
  6096  	ScaleInCooldown *int64 `type:"integer"`
  6097  
  6098  	// The amount of time, in seconds, to wait for a previous scale-out activity
  6099  	// to take effect.
  6100  	//
  6101  	// With the scale-out cooldown period, the intention is to continuously (but
  6102  	// not excessively) scale out. After Application Auto Scaling successfully scales
  6103  	// out using a target tracking scaling policy, it starts to calculate the cooldown
  6104  	// time. The scaling policy won't increase the desired capacity again unless
  6105  	// either a larger scale out is triggered or the cooldown period ends. While
  6106  	// the cooldown period is in effect, the capacity added by the initiating scale-out
  6107  	// activity is calculated as part of the desired capacity for the next scale-out
  6108  	// activity.
  6109  	//
  6110  	// Application Auto Scaling provides a default value of 600 for Amazon ElastiCache
  6111  	// replication groups and a default value of 300 for the following scalable
  6112  	// targets:
  6113  	//
  6114  	//    * AppStream 2.0 fleets
  6115  	//
  6116  	//    * Aurora DB clusters
  6117  	//
  6118  	//    * ECS services
  6119  	//
  6120  	//    * EMR clusters
  6121  	//
  6122  	//    * Neptune clusters
  6123  	//
  6124  	//    * SageMaker endpoint variants
  6125  	//
  6126  	//    * Spot Fleets
  6127  	//
  6128  	//    * Custom resources
  6129  	//
  6130  	// For all other scalable targets, the default value is 0:
  6131  	//
  6132  	//    * Amazon Comprehend document classification and entity recognizer endpoints
  6133  	//
  6134  	//    * DynamoDB tables and global secondary indexes
  6135  	//
  6136  	//    * Amazon Keyspaces tables
  6137  	//
  6138  	//    * Lambda provisioned concurrency
  6139  	//
  6140  	//    * Amazon MSK broker storage
  6141  	ScaleOutCooldown *int64 `type:"integer"`
  6142  
  6143  	// The target value for the metric. Although this property accepts numbers of
  6144  	// type Double, it won't accept values that are either too small or too large.
  6145  	// Values must be in the range of -2^360 to 2^360. The value must be a valid
  6146  	// number based on the choice of metric. For example, if the metric is CPU utilization,
  6147  	// then the target value is a percent value that represents how much of the
  6148  	// CPU can be used before scaling out.
  6149  	//
  6150  	// TargetValue is a required field
  6151  	TargetValue *float64 `type:"double" required:"true"`
  6152  }
  6153  
  6154  // String returns the string representation.
  6155  //
  6156  // API parameter values that are decorated as "sensitive" in the API will not
  6157  // be included in the string output. The member name will be present, but the
  6158  // value will be replaced with "sensitive".
  6159  func (s TargetTrackingScalingPolicyConfiguration) String() string {
  6160  	return awsutil.Prettify(s)
  6161  }
  6162  
  6163  // GoString returns the string representation.
  6164  //
  6165  // API parameter values that are decorated as "sensitive" in the API will not
  6166  // be included in the string output. The member name will be present, but the
  6167  // value will be replaced with "sensitive".
  6168  func (s TargetTrackingScalingPolicyConfiguration) GoString() string {
  6169  	return s.String()
  6170  }
  6171  
  6172  // Validate inspects the fields of the type to determine if they are valid.
  6173  func (s *TargetTrackingScalingPolicyConfiguration) Validate() error {
  6174  	invalidParams := request.ErrInvalidParams{Context: "TargetTrackingScalingPolicyConfiguration"}
  6175  	if s.TargetValue == nil {
  6176  		invalidParams.Add(request.NewErrParamRequired("TargetValue"))
  6177  	}
  6178  	if s.CustomizedMetricSpecification != nil {
  6179  		if err := s.CustomizedMetricSpecification.Validate(); err != nil {
  6180  			invalidParams.AddNested("CustomizedMetricSpecification", err.(request.ErrInvalidParams))
  6181  		}
  6182  	}
  6183  	if s.PredefinedMetricSpecification != nil {
  6184  		if err := s.PredefinedMetricSpecification.Validate(); err != nil {
  6185  			invalidParams.AddNested("PredefinedMetricSpecification", err.(request.ErrInvalidParams))
  6186  		}
  6187  	}
  6188  
  6189  	if invalidParams.Len() > 0 {
  6190  		return invalidParams
  6191  	}
  6192  	return nil
  6193  }
  6194  
  6195  // SetCustomizedMetricSpecification sets the CustomizedMetricSpecification field's value.
  6196  func (s *TargetTrackingScalingPolicyConfiguration) SetCustomizedMetricSpecification(v *CustomizedMetricSpecification) *TargetTrackingScalingPolicyConfiguration {
  6197  	s.CustomizedMetricSpecification = v
  6198  	return s
  6199  }
  6200  
  6201  // SetDisableScaleIn sets the DisableScaleIn field's value.
  6202  func (s *TargetTrackingScalingPolicyConfiguration) SetDisableScaleIn(v bool) *TargetTrackingScalingPolicyConfiguration {
  6203  	s.DisableScaleIn = &v
  6204  	return s
  6205  }
  6206  
  6207  // SetPredefinedMetricSpecification sets the PredefinedMetricSpecification field's value.
  6208  func (s *TargetTrackingScalingPolicyConfiguration) SetPredefinedMetricSpecification(v *PredefinedMetricSpecification) *TargetTrackingScalingPolicyConfiguration {
  6209  	s.PredefinedMetricSpecification = v
  6210  	return s
  6211  }
  6212  
  6213  // SetScaleInCooldown sets the ScaleInCooldown field's value.
  6214  func (s *TargetTrackingScalingPolicyConfiguration) SetScaleInCooldown(v int64) *TargetTrackingScalingPolicyConfiguration {
  6215  	s.ScaleInCooldown = &v
  6216  	return s
  6217  }
  6218  
  6219  // SetScaleOutCooldown sets the ScaleOutCooldown field's value.
  6220  func (s *TargetTrackingScalingPolicyConfiguration) SetScaleOutCooldown(v int64) *TargetTrackingScalingPolicyConfiguration {
  6221  	s.ScaleOutCooldown = &v
  6222  	return s
  6223  }
  6224  
  6225  // SetTargetValue sets the TargetValue field's value.
  6226  func (s *TargetTrackingScalingPolicyConfiguration) SetTargetValue(v float64) *TargetTrackingScalingPolicyConfiguration {
  6227  	s.TargetValue = &v
  6228  	return s
  6229  }
  6230  
  6231  // An exception was thrown for a validation issue. Review the available parameters
  6232  // for the API request.
  6233  type ValidationException struct {
  6234  	_            struct{}                  `type:"structure"`
  6235  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6236  
  6237  	Message_ *string `locationName:"Message" type:"string"`
  6238  }
  6239  
  6240  // String returns the string representation.
  6241  //
  6242  // API parameter values that are decorated as "sensitive" in the API will not
  6243  // be included in the string output. The member name will be present, but the
  6244  // value will be replaced with "sensitive".
  6245  func (s ValidationException) String() string {
  6246  	return awsutil.Prettify(s)
  6247  }
  6248  
  6249  // GoString returns the string representation.
  6250  //
  6251  // API parameter values that are decorated as "sensitive" in the API will not
  6252  // be included in the string output. The member name will be present, but the
  6253  // value will be replaced with "sensitive".
  6254  func (s ValidationException) GoString() string {
  6255  	return s.String()
  6256  }
  6257  
  6258  func newErrorValidationException(v protocol.ResponseMetadata) error {
  6259  	return &ValidationException{
  6260  		RespMetadata: v,
  6261  	}
  6262  }
  6263  
  6264  // Code returns the exception type name.
  6265  func (s *ValidationException) Code() string {
  6266  	return "ValidationException"
  6267  }
  6268  
  6269  // Message returns the exception's message.
  6270  func (s *ValidationException) Message() string {
  6271  	if s.Message_ != nil {
  6272  		return *s.Message_
  6273  	}
  6274  	return ""
  6275  }
  6276  
  6277  // OrigErr always returns nil, satisfies awserr.Error interface.
  6278  func (s *ValidationException) OrigErr() error {
  6279  	return nil
  6280  }
  6281  
  6282  func (s *ValidationException) Error() string {
  6283  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6284  }
  6285  
  6286  // Status code returns the HTTP status code for the request's response error.
  6287  func (s *ValidationException) StatusCode() int {
  6288  	return s.RespMetadata.StatusCode
  6289  }
  6290  
  6291  // RequestID returns the service's response RequestID for request.
  6292  func (s *ValidationException) RequestID() string {
  6293  	return s.RespMetadata.RequestID
  6294  }
  6295  
  6296  const (
  6297  	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
  6298  	AdjustmentTypeChangeInCapacity = "ChangeInCapacity"
  6299  
  6300  	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
  6301  	AdjustmentTypePercentChangeInCapacity = "PercentChangeInCapacity"
  6302  
  6303  	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
  6304  	AdjustmentTypeExactCapacity = "ExactCapacity"
  6305  )
  6306  
  6307  // AdjustmentType_Values returns all elements of the AdjustmentType enum
  6308  func AdjustmentType_Values() []string {
  6309  	return []string{
  6310  		AdjustmentTypeChangeInCapacity,
  6311  		AdjustmentTypePercentChangeInCapacity,
  6312  		AdjustmentTypeExactCapacity,
  6313  	}
  6314  }
  6315  
  6316  const (
  6317  	// MetricAggregationTypeAverage is a MetricAggregationType enum value
  6318  	MetricAggregationTypeAverage = "Average"
  6319  
  6320  	// MetricAggregationTypeMinimum is a MetricAggregationType enum value
  6321  	MetricAggregationTypeMinimum = "Minimum"
  6322  
  6323  	// MetricAggregationTypeMaximum is a MetricAggregationType enum value
  6324  	MetricAggregationTypeMaximum = "Maximum"
  6325  )
  6326  
  6327  // MetricAggregationType_Values returns all elements of the MetricAggregationType enum
  6328  func MetricAggregationType_Values() []string {
  6329  	return []string{
  6330  		MetricAggregationTypeAverage,
  6331  		MetricAggregationTypeMinimum,
  6332  		MetricAggregationTypeMaximum,
  6333  	}
  6334  }
  6335  
  6336  const (
  6337  	// MetricStatisticAverage is a MetricStatistic enum value
  6338  	MetricStatisticAverage = "Average"
  6339  
  6340  	// MetricStatisticMinimum is a MetricStatistic enum value
  6341  	MetricStatisticMinimum = "Minimum"
  6342  
  6343  	// MetricStatisticMaximum is a MetricStatistic enum value
  6344  	MetricStatisticMaximum = "Maximum"
  6345  
  6346  	// MetricStatisticSampleCount is a MetricStatistic enum value
  6347  	MetricStatisticSampleCount = "SampleCount"
  6348  
  6349  	// MetricStatisticSum is a MetricStatistic enum value
  6350  	MetricStatisticSum = "Sum"
  6351  )
  6352  
  6353  // MetricStatistic_Values returns all elements of the MetricStatistic enum
  6354  func MetricStatistic_Values() []string {
  6355  	return []string{
  6356  		MetricStatisticAverage,
  6357  		MetricStatisticMinimum,
  6358  		MetricStatisticMaximum,
  6359  		MetricStatisticSampleCount,
  6360  		MetricStatisticSum,
  6361  	}
  6362  }
  6363  
  6364  const (
  6365  	// MetricTypeDynamoDbreadCapacityUtilization is a MetricType enum value
  6366  	MetricTypeDynamoDbreadCapacityUtilization = "DynamoDBReadCapacityUtilization"
  6367  
  6368  	// MetricTypeDynamoDbwriteCapacityUtilization is a MetricType enum value
  6369  	MetricTypeDynamoDbwriteCapacityUtilization = "DynamoDBWriteCapacityUtilization"
  6370  
  6371  	// MetricTypeAlbrequestCountPerTarget is a MetricType enum value
  6372  	MetricTypeAlbrequestCountPerTarget = "ALBRequestCountPerTarget"
  6373  
  6374  	// MetricTypeRdsreaderAverageCpuutilization is a MetricType enum value
  6375  	MetricTypeRdsreaderAverageCpuutilization = "RDSReaderAverageCPUUtilization"
  6376  
  6377  	// MetricTypeRdsreaderAverageDatabaseConnections is a MetricType enum value
  6378  	MetricTypeRdsreaderAverageDatabaseConnections = "RDSReaderAverageDatabaseConnections"
  6379  
  6380  	// MetricTypeEc2spotFleetRequestAverageCpuutilization is a MetricType enum value
  6381  	MetricTypeEc2spotFleetRequestAverageCpuutilization = "EC2SpotFleetRequestAverageCPUUtilization"
  6382  
  6383  	// MetricTypeEc2spotFleetRequestAverageNetworkIn is a MetricType enum value
  6384  	MetricTypeEc2spotFleetRequestAverageNetworkIn = "EC2SpotFleetRequestAverageNetworkIn"
  6385  
  6386  	// MetricTypeEc2spotFleetRequestAverageNetworkOut is a MetricType enum value
  6387  	MetricTypeEc2spotFleetRequestAverageNetworkOut = "EC2SpotFleetRequestAverageNetworkOut"
  6388  
  6389  	// MetricTypeSageMakerVariantInvocationsPerInstance is a MetricType enum value
  6390  	MetricTypeSageMakerVariantInvocationsPerInstance = "SageMakerVariantInvocationsPerInstance"
  6391  
  6392  	// MetricTypeEcsserviceAverageCpuutilization is a MetricType enum value
  6393  	MetricTypeEcsserviceAverageCpuutilization = "ECSServiceAverageCPUUtilization"
  6394  
  6395  	// MetricTypeEcsserviceAverageMemoryUtilization is a MetricType enum value
  6396  	MetricTypeEcsserviceAverageMemoryUtilization = "ECSServiceAverageMemoryUtilization"
  6397  
  6398  	// MetricTypeAppStreamAverageCapacityUtilization is a MetricType enum value
  6399  	MetricTypeAppStreamAverageCapacityUtilization = "AppStreamAverageCapacityUtilization"
  6400  
  6401  	// MetricTypeComprehendInferenceUtilization is a MetricType enum value
  6402  	MetricTypeComprehendInferenceUtilization = "ComprehendInferenceUtilization"
  6403  
  6404  	// MetricTypeLambdaProvisionedConcurrencyUtilization is a MetricType enum value
  6405  	MetricTypeLambdaProvisionedConcurrencyUtilization = "LambdaProvisionedConcurrencyUtilization"
  6406  
  6407  	// MetricTypeCassandraReadCapacityUtilization is a MetricType enum value
  6408  	MetricTypeCassandraReadCapacityUtilization = "CassandraReadCapacityUtilization"
  6409  
  6410  	// MetricTypeCassandraWriteCapacityUtilization is a MetricType enum value
  6411  	MetricTypeCassandraWriteCapacityUtilization = "CassandraWriteCapacityUtilization"
  6412  
  6413  	// MetricTypeKafkaBrokerStorageUtilization is a MetricType enum value
  6414  	MetricTypeKafkaBrokerStorageUtilization = "KafkaBrokerStorageUtilization"
  6415  
  6416  	// MetricTypeElastiCachePrimaryEngineCpuutilization is a MetricType enum value
  6417  	MetricTypeElastiCachePrimaryEngineCpuutilization = "ElastiCachePrimaryEngineCPUUtilization"
  6418  
  6419  	// MetricTypeElastiCacheReplicaEngineCpuutilization is a MetricType enum value
  6420  	MetricTypeElastiCacheReplicaEngineCpuutilization = "ElastiCacheReplicaEngineCPUUtilization"
  6421  
  6422  	// MetricTypeElastiCacheDatabaseMemoryUsageCountedForEvictPercentage is a MetricType enum value
  6423  	MetricTypeElastiCacheDatabaseMemoryUsageCountedForEvictPercentage = "ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage"
  6424  
  6425  	// MetricTypeNeptuneReaderAverageCpuutilization is a MetricType enum value
  6426  	MetricTypeNeptuneReaderAverageCpuutilization = "NeptuneReaderAverageCPUUtilization"
  6427  )
  6428  
  6429  // MetricType_Values returns all elements of the MetricType enum
  6430  func MetricType_Values() []string {
  6431  	return []string{
  6432  		MetricTypeDynamoDbreadCapacityUtilization,
  6433  		MetricTypeDynamoDbwriteCapacityUtilization,
  6434  		MetricTypeAlbrequestCountPerTarget,
  6435  		MetricTypeRdsreaderAverageCpuutilization,
  6436  		MetricTypeRdsreaderAverageDatabaseConnections,
  6437  		MetricTypeEc2spotFleetRequestAverageCpuutilization,
  6438  		MetricTypeEc2spotFleetRequestAverageNetworkIn,
  6439  		MetricTypeEc2spotFleetRequestAverageNetworkOut,
  6440  		MetricTypeSageMakerVariantInvocationsPerInstance,
  6441  		MetricTypeEcsserviceAverageCpuutilization,
  6442  		MetricTypeEcsserviceAverageMemoryUtilization,
  6443  		MetricTypeAppStreamAverageCapacityUtilization,
  6444  		MetricTypeComprehendInferenceUtilization,
  6445  		MetricTypeLambdaProvisionedConcurrencyUtilization,
  6446  		MetricTypeCassandraReadCapacityUtilization,
  6447  		MetricTypeCassandraWriteCapacityUtilization,
  6448  		MetricTypeKafkaBrokerStorageUtilization,
  6449  		MetricTypeElastiCachePrimaryEngineCpuutilization,
  6450  		MetricTypeElastiCacheReplicaEngineCpuutilization,
  6451  		MetricTypeElastiCacheDatabaseMemoryUsageCountedForEvictPercentage,
  6452  		MetricTypeNeptuneReaderAverageCpuutilization,
  6453  	}
  6454  }
  6455  
  6456  const (
  6457  	// PolicyTypeStepScaling is a PolicyType enum value
  6458  	PolicyTypeStepScaling = "StepScaling"
  6459  
  6460  	// PolicyTypeTargetTrackingScaling is a PolicyType enum value
  6461  	PolicyTypeTargetTrackingScaling = "TargetTrackingScaling"
  6462  )
  6463  
  6464  // PolicyType_Values returns all elements of the PolicyType enum
  6465  func PolicyType_Values() []string {
  6466  	return []string{
  6467  		PolicyTypeStepScaling,
  6468  		PolicyTypeTargetTrackingScaling,
  6469  	}
  6470  }
  6471  
  6472  const (
  6473  	// ScalableDimensionEcsServiceDesiredCount is a ScalableDimension enum value
  6474  	ScalableDimensionEcsServiceDesiredCount = "ecs:service:DesiredCount"
  6475  
  6476  	// ScalableDimensionEc2SpotFleetRequestTargetCapacity is a ScalableDimension enum value
  6477  	ScalableDimensionEc2SpotFleetRequestTargetCapacity = "ec2:spot-fleet-request:TargetCapacity"
  6478  
  6479  	// ScalableDimensionElasticmapreduceInstancegroupInstanceCount is a ScalableDimension enum value
  6480  	ScalableDimensionElasticmapreduceInstancegroupInstanceCount = "elasticmapreduce:instancegroup:InstanceCount"
  6481  
  6482  	// ScalableDimensionAppstreamFleetDesiredCapacity is a ScalableDimension enum value
  6483  	ScalableDimensionAppstreamFleetDesiredCapacity = "appstream:fleet:DesiredCapacity"
  6484  
  6485  	// ScalableDimensionDynamodbTableReadCapacityUnits is a ScalableDimension enum value
  6486  	ScalableDimensionDynamodbTableReadCapacityUnits = "dynamodb:table:ReadCapacityUnits"
  6487  
  6488  	// ScalableDimensionDynamodbTableWriteCapacityUnits is a ScalableDimension enum value
  6489  	ScalableDimensionDynamodbTableWriteCapacityUnits = "dynamodb:table:WriteCapacityUnits"
  6490  
  6491  	// ScalableDimensionDynamodbIndexReadCapacityUnits is a ScalableDimension enum value
  6492  	ScalableDimensionDynamodbIndexReadCapacityUnits = "dynamodb:index:ReadCapacityUnits"
  6493  
  6494  	// ScalableDimensionDynamodbIndexWriteCapacityUnits is a ScalableDimension enum value
  6495  	ScalableDimensionDynamodbIndexWriteCapacityUnits = "dynamodb:index:WriteCapacityUnits"
  6496  
  6497  	// ScalableDimensionRdsClusterReadReplicaCount is a ScalableDimension enum value
  6498  	ScalableDimensionRdsClusterReadReplicaCount = "rds:cluster:ReadReplicaCount"
  6499  
  6500  	// ScalableDimensionSagemakerVariantDesiredInstanceCount is a ScalableDimension enum value
  6501  	ScalableDimensionSagemakerVariantDesiredInstanceCount = "sagemaker:variant:DesiredInstanceCount"
  6502  
  6503  	// ScalableDimensionCustomResourceResourceTypeProperty is a ScalableDimension enum value
  6504  	ScalableDimensionCustomResourceResourceTypeProperty = "custom-resource:ResourceType:Property"
  6505  
  6506  	// ScalableDimensionComprehendDocumentClassifierEndpointDesiredInferenceUnits is a ScalableDimension enum value
  6507  	ScalableDimensionComprehendDocumentClassifierEndpointDesiredInferenceUnits = "comprehend:document-classifier-endpoint:DesiredInferenceUnits"
  6508  
  6509  	// ScalableDimensionComprehendEntityRecognizerEndpointDesiredInferenceUnits is a ScalableDimension enum value
  6510  	ScalableDimensionComprehendEntityRecognizerEndpointDesiredInferenceUnits = "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits"
  6511  
  6512  	// ScalableDimensionLambdaFunctionProvisionedConcurrency is a ScalableDimension enum value
  6513  	ScalableDimensionLambdaFunctionProvisionedConcurrency = "lambda:function:ProvisionedConcurrency"
  6514  
  6515  	// ScalableDimensionCassandraTableReadCapacityUnits is a ScalableDimension enum value
  6516  	ScalableDimensionCassandraTableReadCapacityUnits = "cassandra:table:ReadCapacityUnits"
  6517  
  6518  	// ScalableDimensionCassandraTableWriteCapacityUnits is a ScalableDimension enum value
  6519  	ScalableDimensionCassandraTableWriteCapacityUnits = "cassandra:table:WriteCapacityUnits"
  6520  
  6521  	// ScalableDimensionKafkaBrokerStorageVolumeSize is a ScalableDimension enum value
  6522  	ScalableDimensionKafkaBrokerStorageVolumeSize = "kafka:broker-storage:VolumeSize"
  6523  
  6524  	// ScalableDimensionElasticacheReplicationGroupNodeGroups is a ScalableDimension enum value
  6525  	ScalableDimensionElasticacheReplicationGroupNodeGroups = "elasticache:replication-group:NodeGroups"
  6526  
  6527  	// ScalableDimensionElasticacheReplicationGroupReplicas is a ScalableDimension enum value
  6528  	ScalableDimensionElasticacheReplicationGroupReplicas = "elasticache:replication-group:Replicas"
  6529  
  6530  	// ScalableDimensionNeptuneClusterReadReplicaCount is a ScalableDimension enum value
  6531  	ScalableDimensionNeptuneClusterReadReplicaCount = "neptune:cluster:ReadReplicaCount"
  6532  )
  6533  
  6534  // ScalableDimension_Values returns all elements of the ScalableDimension enum
  6535  func ScalableDimension_Values() []string {
  6536  	return []string{
  6537  		ScalableDimensionEcsServiceDesiredCount,
  6538  		ScalableDimensionEc2SpotFleetRequestTargetCapacity,
  6539  		ScalableDimensionElasticmapreduceInstancegroupInstanceCount,
  6540  		ScalableDimensionAppstreamFleetDesiredCapacity,
  6541  		ScalableDimensionDynamodbTableReadCapacityUnits,
  6542  		ScalableDimensionDynamodbTableWriteCapacityUnits,
  6543  		ScalableDimensionDynamodbIndexReadCapacityUnits,
  6544  		ScalableDimensionDynamodbIndexWriteCapacityUnits,
  6545  		ScalableDimensionRdsClusterReadReplicaCount,
  6546  		ScalableDimensionSagemakerVariantDesiredInstanceCount,
  6547  		ScalableDimensionCustomResourceResourceTypeProperty,
  6548  		ScalableDimensionComprehendDocumentClassifierEndpointDesiredInferenceUnits,
  6549  		ScalableDimensionComprehendEntityRecognizerEndpointDesiredInferenceUnits,
  6550  		ScalableDimensionLambdaFunctionProvisionedConcurrency,
  6551  		ScalableDimensionCassandraTableReadCapacityUnits,
  6552  		ScalableDimensionCassandraTableWriteCapacityUnits,
  6553  		ScalableDimensionKafkaBrokerStorageVolumeSize,
  6554  		ScalableDimensionElasticacheReplicationGroupNodeGroups,
  6555  		ScalableDimensionElasticacheReplicationGroupReplicas,
  6556  		ScalableDimensionNeptuneClusterReadReplicaCount,
  6557  	}
  6558  }
  6559  
  6560  const (
  6561  	// ScalingActivityStatusCodePending is a ScalingActivityStatusCode enum value
  6562  	ScalingActivityStatusCodePending = "Pending"
  6563  
  6564  	// ScalingActivityStatusCodeInProgress is a ScalingActivityStatusCode enum value
  6565  	ScalingActivityStatusCodeInProgress = "InProgress"
  6566  
  6567  	// ScalingActivityStatusCodeSuccessful is a ScalingActivityStatusCode enum value
  6568  	ScalingActivityStatusCodeSuccessful = "Successful"
  6569  
  6570  	// ScalingActivityStatusCodeOverridden is a ScalingActivityStatusCode enum value
  6571  	ScalingActivityStatusCodeOverridden = "Overridden"
  6572  
  6573  	// ScalingActivityStatusCodeUnfulfilled is a ScalingActivityStatusCode enum value
  6574  	ScalingActivityStatusCodeUnfulfilled = "Unfulfilled"
  6575  
  6576  	// ScalingActivityStatusCodeFailed is a ScalingActivityStatusCode enum value
  6577  	ScalingActivityStatusCodeFailed = "Failed"
  6578  )
  6579  
  6580  // ScalingActivityStatusCode_Values returns all elements of the ScalingActivityStatusCode enum
  6581  func ScalingActivityStatusCode_Values() []string {
  6582  	return []string{
  6583  		ScalingActivityStatusCodePending,
  6584  		ScalingActivityStatusCodeInProgress,
  6585  		ScalingActivityStatusCodeSuccessful,
  6586  		ScalingActivityStatusCodeOverridden,
  6587  		ScalingActivityStatusCodeUnfulfilled,
  6588  		ScalingActivityStatusCodeFailed,
  6589  	}
  6590  }
  6591  
  6592  const (
  6593  	// ServiceNamespaceEcs is a ServiceNamespace enum value
  6594  	ServiceNamespaceEcs = "ecs"
  6595  
  6596  	// ServiceNamespaceElasticmapreduce is a ServiceNamespace enum value
  6597  	ServiceNamespaceElasticmapreduce = "elasticmapreduce"
  6598  
  6599  	// ServiceNamespaceEc2 is a ServiceNamespace enum value
  6600  	ServiceNamespaceEc2 = "ec2"
  6601  
  6602  	// ServiceNamespaceAppstream is a ServiceNamespace enum value
  6603  	ServiceNamespaceAppstream = "appstream"
  6604  
  6605  	// ServiceNamespaceDynamodb is a ServiceNamespace enum value
  6606  	ServiceNamespaceDynamodb = "dynamodb"
  6607  
  6608  	// ServiceNamespaceRds is a ServiceNamespace enum value
  6609  	ServiceNamespaceRds = "rds"
  6610  
  6611  	// ServiceNamespaceSagemaker is a ServiceNamespace enum value
  6612  	ServiceNamespaceSagemaker = "sagemaker"
  6613  
  6614  	// ServiceNamespaceCustomResource is a ServiceNamespace enum value
  6615  	ServiceNamespaceCustomResource = "custom-resource"
  6616  
  6617  	// ServiceNamespaceComprehend is a ServiceNamespace enum value
  6618  	ServiceNamespaceComprehend = "comprehend"
  6619  
  6620  	// ServiceNamespaceLambda is a ServiceNamespace enum value
  6621  	ServiceNamespaceLambda = "lambda"
  6622  
  6623  	// ServiceNamespaceCassandra is a ServiceNamespace enum value
  6624  	ServiceNamespaceCassandra = "cassandra"
  6625  
  6626  	// ServiceNamespaceKafka is a ServiceNamespace enum value
  6627  	ServiceNamespaceKafka = "kafka"
  6628  
  6629  	// ServiceNamespaceElasticache is a ServiceNamespace enum value
  6630  	ServiceNamespaceElasticache = "elasticache"
  6631  
  6632  	// ServiceNamespaceNeptune is a ServiceNamespace enum value
  6633  	ServiceNamespaceNeptune = "neptune"
  6634  )
  6635  
  6636  // ServiceNamespace_Values returns all elements of the ServiceNamespace enum
  6637  func ServiceNamespace_Values() []string {
  6638  	return []string{
  6639  		ServiceNamespaceEcs,
  6640  		ServiceNamespaceElasticmapreduce,
  6641  		ServiceNamespaceEc2,
  6642  		ServiceNamespaceAppstream,
  6643  		ServiceNamespaceDynamodb,
  6644  		ServiceNamespaceRds,
  6645  		ServiceNamespaceSagemaker,
  6646  		ServiceNamespaceCustomResource,
  6647  		ServiceNamespaceComprehend,
  6648  		ServiceNamespaceLambda,
  6649  		ServiceNamespaceCassandra,
  6650  		ServiceNamespaceKafka,
  6651  		ServiceNamespaceElasticache,
  6652  		ServiceNamespaceNeptune,
  6653  	}
  6654  }