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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package cloudwatch
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/query"
    14  )
    15  
    16  const opDeleteAlarms = "DeleteAlarms"
    17  
    18  // DeleteAlarmsRequest generates a "aws/request.Request" representing the
    19  // client's request for the DeleteAlarms 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 DeleteAlarms for more information on using the DeleteAlarms
    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 DeleteAlarmsRequest method.
    34  //    req, resp := client.DeleteAlarmsRequest(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/monitoring-2010-08-01/DeleteAlarms
    42  func (c *CloudWatch) DeleteAlarmsRequest(input *DeleteAlarmsInput) (req *request.Request, output *DeleteAlarmsOutput) {
    43  	op := &request.Operation{
    44  		Name:       opDeleteAlarms,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &DeleteAlarmsInput{}
    51  	}
    52  
    53  	output = &DeleteAlarmsOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    56  	return
    57  }
    58  
    59  // DeleteAlarms API operation for Amazon CloudWatch.
    60  //
    61  // Deletes the specified alarms. You can delete up to 100 alarms in one operation.
    62  // However, this total can include no more than one composite alarm. For example,
    63  // you could delete 99 metric alarms and one composite alarms with one operation,
    64  // but you can't delete two composite alarms with one operation.
    65  //
    66  // In the event of an error, no alarms are deleted.
    67  //
    68  // It is possible to create a loop or cycle of composite alarms, where composite
    69  // alarm A depends on composite alarm B, and composite alarm B also depends
    70  // on composite alarm A. In this scenario, you can't delete any composite alarm
    71  // that is part of the cycle because there is always still a composite alarm
    72  // that depends on that alarm that you want to delete.
    73  //
    74  // To get out of such a situation, you must break the cycle by changing the
    75  // rule of one of the composite alarms in the cycle to remove a dependency that
    76  // creates the cycle. The simplest change to make to break a cycle is to change
    77  // the AlarmRule of one of the alarms to False.
    78  //
    79  // Additionally, the evaluation of composite alarms stops if CloudWatch detects
    80  // a cycle in the evaluation path.
    81  //
    82  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    83  // with awserr.Error's Code and Message methods to get detailed information about
    84  // the error.
    85  //
    86  // See the AWS API reference guide for Amazon CloudWatch's
    87  // API operation DeleteAlarms for usage and error information.
    88  //
    89  // Returned Error Codes:
    90  //   * ErrCodeResourceNotFound "ResourceNotFound"
    91  //   The named resource does not exist.
    92  //
    93  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAlarms
    94  func (c *CloudWatch) DeleteAlarms(input *DeleteAlarmsInput) (*DeleteAlarmsOutput, error) {
    95  	req, out := c.DeleteAlarmsRequest(input)
    96  	return out, req.Send()
    97  }
    98  
    99  // DeleteAlarmsWithContext is the same as DeleteAlarms with the addition of
   100  // the ability to pass a context and additional request options.
   101  //
   102  // See DeleteAlarms for details on how to use this API operation.
   103  //
   104  // The context must be non-nil and will be used for request cancellation. If
   105  // the context is nil a panic will occur. In the future the SDK may create
   106  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   107  // for more information on using Contexts.
   108  func (c *CloudWatch) DeleteAlarmsWithContext(ctx aws.Context, input *DeleteAlarmsInput, opts ...request.Option) (*DeleteAlarmsOutput, error) {
   109  	req, out := c.DeleteAlarmsRequest(input)
   110  	req.SetContext(ctx)
   111  	req.ApplyOptions(opts...)
   112  	return out, req.Send()
   113  }
   114  
   115  const opDeleteAnomalyDetector = "DeleteAnomalyDetector"
   116  
   117  // DeleteAnomalyDetectorRequest generates a "aws/request.Request" representing the
   118  // client's request for the DeleteAnomalyDetector operation. The "output" return
   119  // value will be populated with the request's response once the request completes
   120  // successfully.
   121  //
   122  // Use "Send" method on the returned Request to send the API call to the service.
   123  // the "output" return value is not valid until after Send returns without error.
   124  //
   125  // See DeleteAnomalyDetector for more information on using the DeleteAnomalyDetector
   126  // API call, and error handling.
   127  //
   128  // This method is useful when you want to inject custom logic or configuration
   129  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   130  //
   131  //
   132  //    // Example sending a request using the DeleteAnomalyDetectorRequest method.
   133  //    req, resp := client.DeleteAnomalyDetectorRequest(params)
   134  //
   135  //    err := req.Send()
   136  //    if err == nil { // resp is now filled
   137  //        fmt.Println(resp)
   138  //    }
   139  //
   140  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAnomalyDetector
   141  func (c *CloudWatch) DeleteAnomalyDetectorRequest(input *DeleteAnomalyDetectorInput) (req *request.Request, output *DeleteAnomalyDetectorOutput) {
   142  	op := &request.Operation{
   143  		Name:       opDeleteAnomalyDetector,
   144  		HTTPMethod: "POST",
   145  		HTTPPath:   "/",
   146  	}
   147  
   148  	if input == nil {
   149  		input = &DeleteAnomalyDetectorInput{}
   150  	}
   151  
   152  	output = &DeleteAnomalyDetectorOutput{}
   153  	req = c.newRequest(op, input, output)
   154  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   155  	return
   156  }
   157  
   158  // DeleteAnomalyDetector API operation for Amazon CloudWatch.
   159  //
   160  // Deletes the specified anomaly detection model from your account.
   161  //
   162  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   163  // with awserr.Error's Code and Message methods to get detailed information about
   164  // the error.
   165  //
   166  // See the AWS API reference guide for Amazon CloudWatch's
   167  // API operation DeleteAnomalyDetector for usage and error information.
   168  //
   169  // Returned Error Codes:
   170  //   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
   171  //   The named resource does not exist.
   172  //
   173  //   * ErrCodeInternalServiceFault "InternalServiceError"
   174  //   Request processing has failed due to some unknown error, exception, or failure.
   175  //
   176  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
   177  //   The value of an input parameter is bad or out-of-range.
   178  //
   179  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
   180  //   An input parameter that is required is missing.
   181  //
   182  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAnomalyDetector
   183  func (c *CloudWatch) DeleteAnomalyDetector(input *DeleteAnomalyDetectorInput) (*DeleteAnomalyDetectorOutput, error) {
   184  	req, out := c.DeleteAnomalyDetectorRequest(input)
   185  	return out, req.Send()
   186  }
   187  
   188  // DeleteAnomalyDetectorWithContext is the same as DeleteAnomalyDetector with the addition of
   189  // the ability to pass a context and additional request options.
   190  //
   191  // See DeleteAnomalyDetector for details on how to use this API operation.
   192  //
   193  // The context must be non-nil and will be used for request cancellation. If
   194  // the context is nil a panic will occur. In the future the SDK may create
   195  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   196  // for more information on using Contexts.
   197  func (c *CloudWatch) DeleteAnomalyDetectorWithContext(ctx aws.Context, input *DeleteAnomalyDetectorInput, opts ...request.Option) (*DeleteAnomalyDetectorOutput, error) {
   198  	req, out := c.DeleteAnomalyDetectorRequest(input)
   199  	req.SetContext(ctx)
   200  	req.ApplyOptions(opts...)
   201  	return out, req.Send()
   202  }
   203  
   204  const opDeleteDashboards = "DeleteDashboards"
   205  
   206  // DeleteDashboardsRequest generates a "aws/request.Request" representing the
   207  // client's request for the DeleteDashboards operation. The "output" return
   208  // value will be populated with the request's response once the request completes
   209  // successfully.
   210  //
   211  // Use "Send" method on the returned Request to send the API call to the service.
   212  // the "output" return value is not valid until after Send returns without error.
   213  //
   214  // See DeleteDashboards for more information on using the DeleteDashboards
   215  // API call, and error handling.
   216  //
   217  // This method is useful when you want to inject custom logic or configuration
   218  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   219  //
   220  //
   221  //    // Example sending a request using the DeleteDashboardsRequest method.
   222  //    req, resp := client.DeleteDashboardsRequest(params)
   223  //
   224  //    err := req.Send()
   225  //    if err == nil { // resp is now filled
   226  //        fmt.Println(resp)
   227  //    }
   228  //
   229  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteDashboards
   230  func (c *CloudWatch) DeleteDashboardsRequest(input *DeleteDashboardsInput) (req *request.Request, output *DeleteDashboardsOutput) {
   231  	op := &request.Operation{
   232  		Name:       opDeleteDashboards,
   233  		HTTPMethod: "POST",
   234  		HTTPPath:   "/",
   235  	}
   236  
   237  	if input == nil {
   238  		input = &DeleteDashboardsInput{}
   239  	}
   240  
   241  	output = &DeleteDashboardsOutput{}
   242  	req = c.newRequest(op, input, output)
   243  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   244  	return
   245  }
   246  
   247  // DeleteDashboards API operation for Amazon CloudWatch.
   248  //
   249  // Deletes all dashboards that you specify. You can specify up to 100 dashboards
   250  // to delete. If there is an error during this call, no dashboards are deleted.
   251  //
   252  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   253  // with awserr.Error's Code and Message methods to get detailed information about
   254  // the error.
   255  //
   256  // See the AWS API reference guide for Amazon CloudWatch's
   257  // API operation DeleteDashboards for usage and error information.
   258  //
   259  // Returned Error Codes:
   260  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
   261  //   The value of an input parameter is bad or out-of-range.
   262  //
   263  //   * ErrCodeDashboardNotFoundError "ResourceNotFound"
   264  //   The specified dashboard does not exist.
   265  //
   266  //   * ErrCodeInternalServiceFault "InternalServiceError"
   267  //   Request processing has failed due to some unknown error, exception, or failure.
   268  //
   269  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteDashboards
   270  func (c *CloudWatch) DeleteDashboards(input *DeleteDashboardsInput) (*DeleteDashboardsOutput, error) {
   271  	req, out := c.DeleteDashboardsRequest(input)
   272  	return out, req.Send()
   273  }
   274  
   275  // DeleteDashboardsWithContext is the same as DeleteDashboards with the addition of
   276  // the ability to pass a context and additional request options.
   277  //
   278  // See DeleteDashboards for details on how to use this API operation.
   279  //
   280  // The context must be non-nil and will be used for request cancellation. If
   281  // the context is nil a panic will occur. In the future the SDK may create
   282  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   283  // for more information on using Contexts.
   284  func (c *CloudWatch) DeleteDashboardsWithContext(ctx aws.Context, input *DeleteDashboardsInput, opts ...request.Option) (*DeleteDashboardsOutput, error) {
   285  	req, out := c.DeleteDashboardsRequest(input)
   286  	req.SetContext(ctx)
   287  	req.ApplyOptions(opts...)
   288  	return out, req.Send()
   289  }
   290  
   291  const opDeleteInsightRules = "DeleteInsightRules"
   292  
   293  // DeleteInsightRulesRequest generates a "aws/request.Request" representing the
   294  // client's request for the DeleteInsightRules operation. The "output" return
   295  // value will be populated with the request's response once the request completes
   296  // successfully.
   297  //
   298  // Use "Send" method on the returned Request to send the API call to the service.
   299  // the "output" return value is not valid until after Send returns without error.
   300  //
   301  // See DeleteInsightRules for more information on using the DeleteInsightRules
   302  // API call, and error handling.
   303  //
   304  // This method is useful when you want to inject custom logic or configuration
   305  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   306  //
   307  //
   308  //    // Example sending a request using the DeleteInsightRulesRequest method.
   309  //    req, resp := client.DeleteInsightRulesRequest(params)
   310  //
   311  //    err := req.Send()
   312  //    if err == nil { // resp is now filled
   313  //        fmt.Println(resp)
   314  //    }
   315  //
   316  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteInsightRules
   317  func (c *CloudWatch) DeleteInsightRulesRequest(input *DeleteInsightRulesInput) (req *request.Request, output *DeleteInsightRulesOutput) {
   318  	op := &request.Operation{
   319  		Name:       opDeleteInsightRules,
   320  		HTTPMethod: "POST",
   321  		HTTPPath:   "/",
   322  	}
   323  
   324  	if input == nil {
   325  		input = &DeleteInsightRulesInput{}
   326  	}
   327  
   328  	output = &DeleteInsightRulesOutput{}
   329  	req = c.newRequest(op, input, output)
   330  	return
   331  }
   332  
   333  // DeleteInsightRules API operation for Amazon CloudWatch.
   334  //
   335  // Permanently deletes the specified Contributor Insights rules.
   336  //
   337  // If you create a rule, delete it, and then re-create it with the same name,
   338  // historical data from the first time the rule was created might not be available.
   339  //
   340  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   341  // with awserr.Error's Code and Message methods to get detailed information about
   342  // the error.
   343  //
   344  // See the AWS API reference guide for Amazon CloudWatch's
   345  // API operation DeleteInsightRules for usage and error information.
   346  //
   347  // Returned Error Codes:
   348  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
   349  //   The value of an input parameter is bad or out-of-range.
   350  //
   351  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
   352  //   An input parameter that is required is missing.
   353  //
   354  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteInsightRules
   355  func (c *CloudWatch) DeleteInsightRules(input *DeleteInsightRulesInput) (*DeleteInsightRulesOutput, error) {
   356  	req, out := c.DeleteInsightRulesRequest(input)
   357  	return out, req.Send()
   358  }
   359  
   360  // DeleteInsightRulesWithContext is the same as DeleteInsightRules with the addition of
   361  // the ability to pass a context and additional request options.
   362  //
   363  // See DeleteInsightRules for details on how to use this API operation.
   364  //
   365  // The context must be non-nil and will be used for request cancellation. If
   366  // the context is nil a panic will occur. In the future the SDK may create
   367  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   368  // for more information on using Contexts.
   369  func (c *CloudWatch) DeleteInsightRulesWithContext(ctx aws.Context, input *DeleteInsightRulesInput, opts ...request.Option) (*DeleteInsightRulesOutput, error) {
   370  	req, out := c.DeleteInsightRulesRequest(input)
   371  	req.SetContext(ctx)
   372  	req.ApplyOptions(opts...)
   373  	return out, req.Send()
   374  }
   375  
   376  const opDeleteMetricStream = "DeleteMetricStream"
   377  
   378  // DeleteMetricStreamRequest generates a "aws/request.Request" representing the
   379  // client's request for the DeleteMetricStream operation. The "output" return
   380  // value will be populated with the request's response once the request completes
   381  // successfully.
   382  //
   383  // Use "Send" method on the returned Request to send the API call to the service.
   384  // the "output" return value is not valid until after Send returns without error.
   385  //
   386  // See DeleteMetricStream for more information on using the DeleteMetricStream
   387  // API call, and error handling.
   388  //
   389  // This method is useful when you want to inject custom logic or configuration
   390  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   391  //
   392  //
   393  //    // Example sending a request using the DeleteMetricStreamRequest method.
   394  //    req, resp := client.DeleteMetricStreamRequest(params)
   395  //
   396  //    err := req.Send()
   397  //    if err == nil { // resp is now filled
   398  //        fmt.Println(resp)
   399  //    }
   400  //
   401  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteMetricStream
   402  func (c *CloudWatch) DeleteMetricStreamRequest(input *DeleteMetricStreamInput) (req *request.Request, output *DeleteMetricStreamOutput) {
   403  	op := &request.Operation{
   404  		Name:       opDeleteMetricStream,
   405  		HTTPMethod: "POST",
   406  		HTTPPath:   "/",
   407  	}
   408  
   409  	if input == nil {
   410  		input = &DeleteMetricStreamInput{}
   411  	}
   412  
   413  	output = &DeleteMetricStreamOutput{}
   414  	req = c.newRequest(op, input, output)
   415  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   416  	return
   417  }
   418  
   419  // DeleteMetricStream API operation for Amazon CloudWatch.
   420  //
   421  // Permanently deletes the metric stream that you specify.
   422  //
   423  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   424  // with awserr.Error's Code and Message methods to get detailed information about
   425  // the error.
   426  //
   427  // See the AWS API reference guide for Amazon CloudWatch's
   428  // API operation DeleteMetricStream for usage and error information.
   429  //
   430  // Returned Error Codes:
   431  //   * ErrCodeInternalServiceFault "InternalServiceError"
   432  //   Request processing has failed due to some unknown error, exception, or failure.
   433  //
   434  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
   435  //   The value of an input parameter is bad or out-of-range.
   436  //
   437  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
   438  //   An input parameter that is required is missing.
   439  //
   440  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteMetricStream
   441  func (c *CloudWatch) DeleteMetricStream(input *DeleteMetricStreamInput) (*DeleteMetricStreamOutput, error) {
   442  	req, out := c.DeleteMetricStreamRequest(input)
   443  	return out, req.Send()
   444  }
   445  
   446  // DeleteMetricStreamWithContext is the same as DeleteMetricStream with the addition of
   447  // the ability to pass a context and additional request options.
   448  //
   449  // See DeleteMetricStream for details on how to use this API operation.
   450  //
   451  // The context must be non-nil and will be used for request cancellation. If
   452  // the context is nil a panic will occur. In the future the SDK may create
   453  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   454  // for more information on using Contexts.
   455  func (c *CloudWatch) DeleteMetricStreamWithContext(ctx aws.Context, input *DeleteMetricStreamInput, opts ...request.Option) (*DeleteMetricStreamOutput, error) {
   456  	req, out := c.DeleteMetricStreamRequest(input)
   457  	req.SetContext(ctx)
   458  	req.ApplyOptions(opts...)
   459  	return out, req.Send()
   460  }
   461  
   462  const opDescribeAlarmHistory = "DescribeAlarmHistory"
   463  
   464  // DescribeAlarmHistoryRequest generates a "aws/request.Request" representing the
   465  // client's request for the DescribeAlarmHistory operation. The "output" return
   466  // value will be populated with the request's response once the request completes
   467  // successfully.
   468  //
   469  // Use "Send" method on the returned Request to send the API call to the service.
   470  // the "output" return value is not valid until after Send returns without error.
   471  //
   472  // See DescribeAlarmHistory for more information on using the DescribeAlarmHistory
   473  // API call, and error handling.
   474  //
   475  // This method is useful when you want to inject custom logic or configuration
   476  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   477  //
   478  //
   479  //    // Example sending a request using the DescribeAlarmHistoryRequest method.
   480  //    req, resp := client.DescribeAlarmHistoryRequest(params)
   481  //
   482  //    err := req.Send()
   483  //    if err == nil { // resp is now filled
   484  //        fmt.Println(resp)
   485  //    }
   486  //
   487  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmHistory
   488  func (c *CloudWatch) DescribeAlarmHistoryRequest(input *DescribeAlarmHistoryInput) (req *request.Request, output *DescribeAlarmHistoryOutput) {
   489  	op := &request.Operation{
   490  		Name:       opDescribeAlarmHistory,
   491  		HTTPMethod: "POST",
   492  		HTTPPath:   "/",
   493  		Paginator: &request.Paginator{
   494  			InputTokens:     []string{"NextToken"},
   495  			OutputTokens:    []string{"NextToken"},
   496  			LimitToken:      "MaxRecords",
   497  			TruncationToken: "",
   498  		},
   499  	}
   500  
   501  	if input == nil {
   502  		input = &DescribeAlarmHistoryInput{}
   503  	}
   504  
   505  	output = &DescribeAlarmHistoryOutput{}
   506  	req = c.newRequest(op, input, output)
   507  	return
   508  }
   509  
   510  // DescribeAlarmHistory API operation for Amazon CloudWatch.
   511  //
   512  // Retrieves the history for the specified alarm. You can filter the results
   513  // by date range or item type. If an alarm name is not specified, the histories
   514  // for either all metric alarms or all composite alarms are returned.
   515  //
   516  // CloudWatch retains the history of an alarm even if you delete the alarm.
   517  //
   518  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   519  // with awserr.Error's Code and Message methods to get detailed information about
   520  // the error.
   521  //
   522  // See the AWS API reference guide for Amazon CloudWatch's
   523  // API operation DescribeAlarmHistory for usage and error information.
   524  //
   525  // Returned Error Codes:
   526  //   * ErrCodeInvalidNextToken "InvalidNextToken"
   527  //   The next token specified is invalid.
   528  //
   529  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmHistory
   530  func (c *CloudWatch) DescribeAlarmHistory(input *DescribeAlarmHistoryInput) (*DescribeAlarmHistoryOutput, error) {
   531  	req, out := c.DescribeAlarmHistoryRequest(input)
   532  	return out, req.Send()
   533  }
   534  
   535  // DescribeAlarmHistoryWithContext is the same as DescribeAlarmHistory with the addition of
   536  // the ability to pass a context and additional request options.
   537  //
   538  // See DescribeAlarmHistory for details on how to use this API operation.
   539  //
   540  // The context must be non-nil and will be used for request cancellation. If
   541  // the context is nil a panic will occur. In the future the SDK may create
   542  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   543  // for more information on using Contexts.
   544  func (c *CloudWatch) DescribeAlarmHistoryWithContext(ctx aws.Context, input *DescribeAlarmHistoryInput, opts ...request.Option) (*DescribeAlarmHistoryOutput, error) {
   545  	req, out := c.DescribeAlarmHistoryRequest(input)
   546  	req.SetContext(ctx)
   547  	req.ApplyOptions(opts...)
   548  	return out, req.Send()
   549  }
   550  
   551  // DescribeAlarmHistoryPages iterates over the pages of a DescribeAlarmHistory operation,
   552  // calling the "fn" function with the response data for each page. To stop
   553  // iterating, return false from the fn function.
   554  //
   555  // See DescribeAlarmHistory method for more information on how to use this operation.
   556  //
   557  // Note: This operation can generate multiple requests to a service.
   558  //
   559  //    // Example iterating over at most 3 pages of a DescribeAlarmHistory operation.
   560  //    pageNum := 0
   561  //    err := client.DescribeAlarmHistoryPages(params,
   562  //        func(page *cloudwatch.DescribeAlarmHistoryOutput, lastPage bool) bool {
   563  //            pageNum++
   564  //            fmt.Println(page)
   565  //            return pageNum <= 3
   566  //        })
   567  //
   568  func (c *CloudWatch) DescribeAlarmHistoryPages(input *DescribeAlarmHistoryInput, fn func(*DescribeAlarmHistoryOutput, bool) bool) error {
   569  	return c.DescribeAlarmHistoryPagesWithContext(aws.BackgroundContext(), input, fn)
   570  }
   571  
   572  // DescribeAlarmHistoryPagesWithContext same as DescribeAlarmHistoryPages except
   573  // it takes a Context and allows setting request options on the pages.
   574  //
   575  // The context must be non-nil and will be used for request cancellation. If
   576  // the context is nil a panic will occur. In the future the SDK may create
   577  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   578  // for more information on using Contexts.
   579  func (c *CloudWatch) DescribeAlarmHistoryPagesWithContext(ctx aws.Context, input *DescribeAlarmHistoryInput, fn func(*DescribeAlarmHistoryOutput, bool) bool, opts ...request.Option) error {
   580  	p := request.Pagination{
   581  		NewRequest: func() (*request.Request, error) {
   582  			var inCpy *DescribeAlarmHistoryInput
   583  			if input != nil {
   584  				tmp := *input
   585  				inCpy = &tmp
   586  			}
   587  			req, _ := c.DescribeAlarmHistoryRequest(inCpy)
   588  			req.SetContext(ctx)
   589  			req.ApplyOptions(opts...)
   590  			return req, nil
   591  		},
   592  	}
   593  
   594  	for p.Next() {
   595  		if !fn(p.Page().(*DescribeAlarmHistoryOutput), !p.HasNextPage()) {
   596  			break
   597  		}
   598  	}
   599  
   600  	return p.Err()
   601  }
   602  
   603  const opDescribeAlarms = "DescribeAlarms"
   604  
   605  // DescribeAlarmsRequest generates a "aws/request.Request" representing the
   606  // client's request for the DescribeAlarms operation. The "output" return
   607  // value will be populated with the request's response once the request completes
   608  // successfully.
   609  //
   610  // Use "Send" method on the returned Request to send the API call to the service.
   611  // the "output" return value is not valid until after Send returns without error.
   612  //
   613  // See DescribeAlarms for more information on using the DescribeAlarms
   614  // API call, and error handling.
   615  //
   616  // This method is useful when you want to inject custom logic or configuration
   617  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   618  //
   619  //
   620  //    // Example sending a request using the DescribeAlarmsRequest method.
   621  //    req, resp := client.DescribeAlarmsRequest(params)
   622  //
   623  //    err := req.Send()
   624  //    if err == nil { // resp is now filled
   625  //        fmt.Println(resp)
   626  //    }
   627  //
   628  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarms
   629  func (c *CloudWatch) DescribeAlarmsRequest(input *DescribeAlarmsInput) (req *request.Request, output *DescribeAlarmsOutput) {
   630  	op := &request.Operation{
   631  		Name:       opDescribeAlarms,
   632  		HTTPMethod: "POST",
   633  		HTTPPath:   "/",
   634  		Paginator: &request.Paginator{
   635  			InputTokens:     []string{"NextToken"},
   636  			OutputTokens:    []string{"NextToken"},
   637  			LimitToken:      "MaxRecords",
   638  			TruncationToken: "",
   639  		},
   640  	}
   641  
   642  	if input == nil {
   643  		input = &DescribeAlarmsInput{}
   644  	}
   645  
   646  	output = &DescribeAlarmsOutput{}
   647  	req = c.newRequest(op, input, output)
   648  	return
   649  }
   650  
   651  // DescribeAlarms API operation for Amazon CloudWatch.
   652  //
   653  // Retrieves the specified alarms. You can filter the results by specifying
   654  // a prefix for the alarm name, the alarm state, or a prefix for any action.
   655  //
   656  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   657  // with awserr.Error's Code and Message methods to get detailed information about
   658  // the error.
   659  //
   660  // See the AWS API reference guide for Amazon CloudWatch's
   661  // API operation DescribeAlarms for usage and error information.
   662  //
   663  // Returned Error Codes:
   664  //   * ErrCodeInvalidNextToken "InvalidNextToken"
   665  //   The next token specified is invalid.
   666  //
   667  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarms
   668  func (c *CloudWatch) DescribeAlarms(input *DescribeAlarmsInput) (*DescribeAlarmsOutput, error) {
   669  	req, out := c.DescribeAlarmsRequest(input)
   670  	return out, req.Send()
   671  }
   672  
   673  // DescribeAlarmsWithContext is the same as DescribeAlarms with the addition of
   674  // the ability to pass a context and additional request options.
   675  //
   676  // See DescribeAlarms for details on how to use this API operation.
   677  //
   678  // The context must be non-nil and will be used for request cancellation. If
   679  // the context is nil a panic will occur. In the future the SDK may create
   680  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   681  // for more information on using Contexts.
   682  func (c *CloudWatch) DescribeAlarmsWithContext(ctx aws.Context, input *DescribeAlarmsInput, opts ...request.Option) (*DescribeAlarmsOutput, error) {
   683  	req, out := c.DescribeAlarmsRequest(input)
   684  	req.SetContext(ctx)
   685  	req.ApplyOptions(opts...)
   686  	return out, req.Send()
   687  }
   688  
   689  // DescribeAlarmsPages iterates over the pages of a DescribeAlarms operation,
   690  // calling the "fn" function with the response data for each page. To stop
   691  // iterating, return false from the fn function.
   692  //
   693  // See DescribeAlarms method for more information on how to use this operation.
   694  //
   695  // Note: This operation can generate multiple requests to a service.
   696  //
   697  //    // Example iterating over at most 3 pages of a DescribeAlarms operation.
   698  //    pageNum := 0
   699  //    err := client.DescribeAlarmsPages(params,
   700  //        func(page *cloudwatch.DescribeAlarmsOutput, lastPage bool) bool {
   701  //            pageNum++
   702  //            fmt.Println(page)
   703  //            return pageNum <= 3
   704  //        })
   705  //
   706  func (c *CloudWatch) DescribeAlarmsPages(input *DescribeAlarmsInput, fn func(*DescribeAlarmsOutput, bool) bool) error {
   707  	return c.DescribeAlarmsPagesWithContext(aws.BackgroundContext(), input, fn)
   708  }
   709  
   710  // DescribeAlarmsPagesWithContext same as DescribeAlarmsPages except
   711  // it takes a Context and allows setting request options on the pages.
   712  //
   713  // The context must be non-nil and will be used for request cancellation. If
   714  // the context is nil a panic will occur. In the future the SDK may create
   715  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   716  // for more information on using Contexts.
   717  func (c *CloudWatch) DescribeAlarmsPagesWithContext(ctx aws.Context, input *DescribeAlarmsInput, fn func(*DescribeAlarmsOutput, bool) bool, opts ...request.Option) error {
   718  	p := request.Pagination{
   719  		NewRequest: func() (*request.Request, error) {
   720  			var inCpy *DescribeAlarmsInput
   721  			if input != nil {
   722  				tmp := *input
   723  				inCpy = &tmp
   724  			}
   725  			req, _ := c.DescribeAlarmsRequest(inCpy)
   726  			req.SetContext(ctx)
   727  			req.ApplyOptions(opts...)
   728  			return req, nil
   729  		},
   730  	}
   731  
   732  	for p.Next() {
   733  		if !fn(p.Page().(*DescribeAlarmsOutput), !p.HasNextPage()) {
   734  			break
   735  		}
   736  	}
   737  
   738  	return p.Err()
   739  }
   740  
   741  const opDescribeAlarmsForMetric = "DescribeAlarmsForMetric"
   742  
   743  // DescribeAlarmsForMetricRequest generates a "aws/request.Request" representing the
   744  // client's request for the DescribeAlarmsForMetric operation. The "output" return
   745  // value will be populated with the request's response once the request completes
   746  // successfully.
   747  //
   748  // Use "Send" method on the returned Request to send the API call to the service.
   749  // the "output" return value is not valid until after Send returns without error.
   750  //
   751  // See DescribeAlarmsForMetric for more information on using the DescribeAlarmsForMetric
   752  // API call, and error handling.
   753  //
   754  // This method is useful when you want to inject custom logic or configuration
   755  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   756  //
   757  //
   758  //    // Example sending a request using the DescribeAlarmsForMetricRequest method.
   759  //    req, resp := client.DescribeAlarmsForMetricRequest(params)
   760  //
   761  //    err := req.Send()
   762  //    if err == nil { // resp is now filled
   763  //        fmt.Println(resp)
   764  //    }
   765  //
   766  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsForMetric
   767  func (c *CloudWatch) DescribeAlarmsForMetricRequest(input *DescribeAlarmsForMetricInput) (req *request.Request, output *DescribeAlarmsForMetricOutput) {
   768  	op := &request.Operation{
   769  		Name:       opDescribeAlarmsForMetric,
   770  		HTTPMethod: "POST",
   771  		HTTPPath:   "/",
   772  	}
   773  
   774  	if input == nil {
   775  		input = &DescribeAlarmsForMetricInput{}
   776  	}
   777  
   778  	output = &DescribeAlarmsForMetricOutput{}
   779  	req = c.newRequest(op, input, output)
   780  	return
   781  }
   782  
   783  // DescribeAlarmsForMetric API operation for Amazon CloudWatch.
   784  //
   785  // Retrieves the alarms for the specified metric. To filter the results, specify
   786  // a statistic, period, or unit.
   787  //
   788  // This operation retrieves only standard alarms that are based on the specified
   789  // metric. It does not return alarms based on math expressions that use the
   790  // specified metric, or composite alarms that use the specified metric.
   791  //
   792  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   793  // with awserr.Error's Code and Message methods to get detailed information about
   794  // the error.
   795  //
   796  // See the AWS API reference guide for Amazon CloudWatch's
   797  // API operation DescribeAlarmsForMetric for usage and error information.
   798  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsForMetric
   799  func (c *CloudWatch) DescribeAlarmsForMetric(input *DescribeAlarmsForMetricInput) (*DescribeAlarmsForMetricOutput, error) {
   800  	req, out := c.DescribeAlarmsForMetricRequest(input)
   801  	return out, req.Send()
   802  }
   803  
   804  // DescribeAlarmsForMetricWithContext is the same as DescribeAlarmsForMetric with the addition of
   805  // the ability to pass a context and additional request options.
   806  //
   807  // See DescribeAlarmsForMetric for details on how to use this API operation.
   808  //
   809  // The context must be non-nil and will be used for request cancellation. If
   810  // the context is nil a panic will occur. In the future the SDK may create
   811  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   812  // for more information on using Contexts.
   813  func (c *CloudWatch) DescribeAlarmsForMetricWithContext(ctx aws.Context, input *DescribeAlarmsForMetricInput, opts ...request.Option) (*DescribeAlarmsForMetricOutput, error) {
   814  	req, out := c.DescribeAlarmsForMetricRequest(input)
   815  	req.SetContext(ctx)
   816  	req.ApplyOptions(opts...)
   817  	return out, req.Send()
   818  }
   819  
   820  const opDescribeAnomalyDetectors = "DescribeAnomalyDetectors"
   821  
   822  // DescribeAnomalyDetectorsRequest generates a "aws/request.Request" representing the
   823  // client's request for the DescribeAnomalyDetectors operation. The "output" return
   824  // value will be populated with the request's response once the request completes
   825  // successfully.
   826  //
   827  // Use "Send" method on the returned Request to send the API call to the service.
   828  // the "output" return value is not valid until after Send returns without error.
   829  //
   830  // See DescribeAnomalyDetectors for more information on using the DescribeAnomalyDetectors
   831  // API call, and error handling.
   832  //
   833  // This method is useful when you want to inject custom logic or configuration
   834  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   835  //
   836  //
   837  //    // Example sending a request using the DescribeAnomalyDetectorsRequest method.
   838  //    req, resp := client.DescribeAnomalyDetectorsRequest(params)
   839  //
   840  //    err := req.Send()
   841  //    if err == nil { // resp is now filled
   842  //        fmt.Println(resp)
   843  //    }
   844  //
   845  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAnomalyDetectors
   846  func (c *CloudWatch) DescribeAnomalyDetectorsRequest(input *DescribeAnomalyDetectorsInput) (req *request.Request, output *DescribeAnomalyDetectorsOutput) {
   847  	op := &request.Operation{
   848  		Name:       opDescribeAnomalyDetectors,
   849  		HTTPMethod: "POST",
   850  		HTTPPath:   "/",
   851  	}
   852  
   853  	if input == nil {
   854  		input = &DescribeAnomalyDetectorsInput{}
   855  	}
   856  
   857  	output = &DescribeAnomalyDetectorsOutput{}
   858  	req = c.newRequest(op, input, output)
   859  	return
   860  }
   861  
   862  // DescribeAnomalyDetectors API operation for Amazon CloudWatch.
   863  //
   864  // Lists the anomaly detection models that you have created in your account.
   865  // You can list all models in your account or filter the results to only the
   866  // models that are related to a certain namespace, metric name, or metric dimension.
   867  //
   868  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   869  // with awserr.Error's Code and Message methods to get detailed information about
   870  // the error.
   871  //
   872  // See the AWS API reference guide for Amazon CloudWatch's
   873  // API operation DescribeAnomalyDetectors for usage and error information.
   874  //
   875  // Returned Error Codes:
   876  //   * ErrCodeInvalidNextToken "InvalidNextToken"
   877  //   The next token specified is invalid.
   878  //
   879  //   * ErrCodeInternalServiceFault "InternalServiceError"
   880  //   Request processing has failed due to some unknown error, exception, or failure.
   881  //
   882  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
   883  //   The value of an input parameter is bad or out-of-range.
   884  //
   885  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAnomalyDetectors
   886  func (c *CloudWatch) DescribeAnomalyDetectors(input *DescribeAnomalyDetectorsInput) (*DescribeAnomalyDetectorsOutput, error) {
   887  	req, out := c.DescribeAnomalyDetectorsRequest(input)
   888  	return out, req.Send()
   889  }
   890  
   891  // DescribeAnomalyDetectorsWithContext is the same as DescribeAnomalyDetectors with the addition of
   892  // the ability to pass a context and additional request options.
   893  //
   894  // See DescribeAnomalyDetectors for details on how to use this API operation.
   895  //
   896  // The context must be non-nil and will be used for request cancellation. If
   897  // the context is nil a panic will occur. In the future the SDK may create
   898  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   899  // for more information on using Contexts.
   900  func (c *CloudWatch) DescribeAnomalyDetectorsWithContext(ctx aws.Context, input *DescribeAnomalyDetectorsInput, opts ...request.Option) (*DescribeAnomalyDetectorsOutput, error) {
   901  	req, out := c.DescribeAnomalyDetectorsRequest(input)
   902  	req.SetContext(ctx)
   903  	req.ApplyOptions(opts...)
   904  	return out, req.Send()
   905  }
   906  
   907  const opDescribeInsightRules = "DescribeInsightRules"
   908  
   909  // DescribeInsightRulesRequest generates a "aws/request.Request" representing the
   910  // client's request for the DescribeInsightRules operation. The "output" return
   911  // value will be populated with the request's response once the request completes
   912  // successfully.
   913  //
   914  // Use "Send" method on the returned Request to send the API call to the service.
   915  // the "output" return value is not valid until after Send returns without error.
   916  //
   917  // See DescribeInsightRules for more information on using the DescribeInsightRules
   918  // API call, and error handling.
   919  //
   920  // This method is useful when you want to inject custom logic or configuration
   921  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   922  //
   923  //
   924  //    // Example sending a request using the DescribeInsightRulesRequest method.
   925  //    req, resp := client.DescribeInsightRulesRequest(params)
   926  //
   927  //    err := req.Send()
   928  //    if err == nil { // resp is now filled
   929  //        fmt.Println(resp)
   930  //    }
   931  //
   932  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeInsightRules
   933  func (c *CloudWatch) DescribeInsightRulesRequest(input *DescribeInsightRulesInput) (req *request.Request, output *DescribeInsightRulesOutput) {
   934  	op := &request.Operation{
   935  		Name:       opDescribeInsightRules,
   936  		HTTPMethod: "POST",
   937  		HTTPPath:   "/",
   938  		Paginator: &request.Paginator{
   939  			InputTokens:     []string{"NextToken"},
   940  			OutputTokens:    []string{"NextToken"},
   941  			LimitToken:      "MaxResults",
   942  			TruncationToken: "",
   943  		},
   944  	}
   945  
   946  	if input == nil {
   947  		input = &DescribeInsightRulesInput{}
   948  	}
   949  
   950  	output = &DescribeInsightRulesOutput{}
   951  	req = c.newRequest(op, input, output)
   952  	return
   953  }
   954  
   955  // DescribeInsightRules API operation for Amazon CloudWatch.
   956  //
   957  // Returns a list of all the Contributor Insights rules in your account.
   958  //
   959  // For more information about Contributor Insights, see Using Contributor Insights
   960  // to Analyze High-Cardinality Data (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html).
   961  //
   962  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   963  // with awserr.Error's Code and Message methods to get detailed information about
   964  // the error.
   965  //
   966  // See the AWS API reference guide for Amazon CloudWatch's
   967  // API operation DescribeInsightRules for usage and error information.
   968  //
   969  // Returned Error Codes:
   970  //   * ErrCodeInvalidNextToken "InvalidNextToken"
   971  //   The next token specified is invalid.
   972  //
   973  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeInsightRules
   974  func (c *CloudWatch) DescribeInsightRules(input *DescribeInsightRulesInput) (*DescribeInsightRulesOutput, error) {
   975  	req, out := c.DescribeInsightRulesRequest(input)
   976  	return out, req.Send()
   977  }
   978  
   979  // DescribeInsightRulesWithContext is the same as DescribeInsightRules with the addition of
   980  // the ability to pass a context and additional request options.
   981  //
   982  // See DescribeInsightRules for details on how to use this API operation.
   983  //
   984  // The context must be non-nil and will be used for request cancellation. If
   985  // the context is nil a panic will occur. In the future the SDK may create
   986  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   987  // for more information on using Contexts.
   988  func (c *CloudWatch) DescribeInsightRulesWithContext(ctx aws.Context, input *DescribeInsightRulesInput, opts ...request.Option) (*DescribeInsightRulesOutput, error) {
   989  	req, out := c.DescribeInsightRulesRequest(input)
   990  	req.SetContext(ctx)
   991  	req.ApplyOptions(opts...)
   992  	return out, req.Send()
   993  }
   994  
   995  // DescribeInsightRulesPages iterates over the pages of a DescribeInsightRules operation,
   996  // calling the "fn" function with the response data for each page. To stop
   997  // iterating, return false from the fn function.
   998  //
   999  // See DescribeInsightRules method for more information on how to use this operation.
  1000  //
  1001  // Note: This operation can generate multiple requests to a service.
  1002  //
  1003  //    // Example iterating over at most 3 pages of a DescribeInsightRules operation.
  1004  //    pageNum := 0
  1005  //    err := client.DescribeInsightRulesPages(params,
  1006  //        func(page *cloudwatch.DescribeInsightRulesOutput, lastPage bool) bool {
  1007  //            pageNum++
  1008  //            fmt.Println(page)
  1009  //            return pageNum <= 3
  1010  //        })
  1011  //
  1012  func (c *CloudWatch) DescribeInsightRulesPages(input *DescribeInsightRulesInput, fn func(*DescribeInsightRulesOutput, bool) bool) error {
  1013  	return c.DescribeInsightRulesPagesWithContext(aws.BackgroundContext(), input, fn)
  1014  }
  1015  
  1016  // DescribeInsightRulesPagesWithContext same as DescribeInsightRulesPages except
  1017  // it takes a Context and allows setting request options on the pages.
  1018  //
  1019  // The context must be non-nil and will be used for request cancellation. If
  1020  // the context is nil a panic will occur. In the future the SDK may create
  1021  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1022  // for more information on using Contexts.
  1023  func (c *CloudWatch) DescribeInsightRulesPagesWithContext(ctx aws.Context, input *DescribeInsightRulesInput, fn func(*DescribeInsightRulesOutput, bool) bool, opts ...request.Option) error {
  1024  	p := request.Pagination{
  1025  		NewRequest: func() (*request.Request, error) {
  1026  			var inCpy *DescribeInsightRulesInput
  1027  			if input != nil {
  1028  				tmp := *input
  1029  				inCpy = &tmp
  1030  			}
  1031  			req, _ := c.DescribeInsightRulesRequest(inCpy)
  1032  			req.SetContext(ctx)
  1033  			req.ApplyOptions(opts...)
  1034  			return req, nil
  1035  		},
  1036  	}
  1037  
  1038  	for p.Next() {
  1039  		if !fn(p.Page().(*DescribeInsightRulesOutput), !p.HasNextPage()) {
  1040  			break
  1041  		}
  1042  	}
  1043  
  1044  	return p.Err()
  1045  }
  1046  
  1047  const opDisableAlarmActions = "DisableAlarmActions"
  1048  
  1049  // DisableAlarmActionsRequest generates a "aws/request.Request" representing the
  1050  // client's request for the DisableAlarmActions operation. The "output" return
  1051  // value will be populated with the request's response once the request completes
  1052  // successfully.
  1053  //
  1054  // Use "Send" method on the returned Request to send the API call to the service.
  1055  // the "output" return value is not valid until after Send returns without error.
  1056  //
  1057  // See DisableAlarmActions for more information on using the DisableAlarmActions
  1058  // API call, and error handling.
  1059  //
  1060  // This method is useful when you want to inject custom logic or configuration
  1061  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1062  //
  1063  //
  1064  //    // Example sending a request using the DisableAlarmActionsRequest method.
  1065  //    req, resp := client.DisableAlarmActionsRequest(params)
  1066  //
  1067  //    err := req.Send()
  1068  //    if err == nil { // resp is now filled
  1069  //        fmt.Println(resp)
  1070  //    }
  1071  //
  1072  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableAlarmActions
  1073  func (c *CloudWatch) DisableAlarmActionsRequest(input *DisableAlarmActionsInput) (req *request.Request, output *DisableAlarmActionsOutput) {
  1074  	op := &request.Operation{
  1075  		Name:       opDisableAlarmActions,
  1076  		HTTPMethod: "POST",
  1077  		HTTPPath:   "/",
  1078  	}
  1079  
  1080  	if input == nil {
  1081  		input = &DisableAlarmActionsInput{}
  1082  	}
  1083  
  1084  	output = &DisableAlarmActionsOutput{}
  1085  	req = c.newRequest(op, input, output)
  1086  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1087  	return
  1088  }
  1089  
  1090  // DisableAlarmActions API operation for Amazon CloudWatch.
  1091  //
  1092  // Disables the actions for the specified alarms. When an alarm's actions are
  1093  // disabled, the alarm actions do not execute when the alarm state changes.
  1094  //
  1095  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1096  // with awserr.Error's Code and Message methods to get detailed information about
  1097  // the error.
  1098  //
  1099  // See the AWS API reference guide for Amazon CloudWatch's
  1100  // API operation DisableAlarmActions for usage and error information.
  1101  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableAlarmActions
  1102  func (c *CloudWatch) DisableAlarmActions(input *DisableAlarmActionsInput) (*DisableAlarmActionsOutput, error) {
  1103  	req, out := c.DisableAlarmActionsRequest(input)
  1104  	return out, req.Send()
  1105  }
  1106  
  1107  // DisableAlarmActionsWithContext is the same as DisableAlarmActions with the addition of
  1108  // the ability to pass a context and additional request options.
  1109  //
  1110  // See DisableAlarmActions for details on how to use this API operation.
  1111  //
  1112  // The context must be non-nil and will be used for request cancellation. If
  1113  // the context is nil a panic will occur. In the future the SDK may create
  1114  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1115  // for more information on using Contexts.
  1116  func (c *CloudWatch) DisableAlarmActionsWithContext(ctx aws.Context, input *DisableAlarmActionsInput, opts ...request.Option) (*DisableAlarmActionsOutput, error) {
  1117  	req, out := c.DisableAlarmActionsRequest(input)
  1118  	req.SetContext(ctx)
  1119  	req.ApplyOptions(opts...)
  1120  	return out, req.Send()
  1121  }
  1122  
  1123  const opDisableInsightRules = "DisableInsightRules"
  1124  
  1125  // DisableInsightRulesRequest generates a "aws/request.Request" representing the
  1126  // client's request for the DisableInsightRules operation. The "output" return
  1127  // value will be populated with the request's response once the request completes
  1128  // successfully.
  1129  //
  1130  // Use "Send" method on the returned Request to send the API call to the service.
  1131  // the "output" return value is not valid until after Send returns without error.
  1132  //
  1133  // See DisableInsightRules for more information on using the DisableInsightRules
  1134  // API call, and error handling.
  1135  //
  1136  // This method is useful when you want to inject custom logic or configuration
  1137  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1138  //
  1139  //
  1140  //    // Example sending a request using the DisableInsightRulesRequest method.
  1141  //    req, resp := client.DisableInsightRulesRequest(params)
  1142  //
  1143  //    err := req.Send()
  1144  //    if err == nil { // resp is now filled
  1145  //        fmt.Println(resp)
  1146  //    }
  1147  //
  1148  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableInsightRules
  1149  func (c *CloudWatch) DisableInsightRulesRequest(input *DisableInsightRulesInput) (req *request.Request, output *DisableInsightRulesOutput) {
  1150  	op := &request.Operation{
  1151  		Name:       opDisableInsightRules,
  1152  		HTTPMethod: "POST",
  1153  		HTTPPath:   "/",
  1154  	}
  1155  
  1156  	if input == nil {
  1157  		input = &DisableInsightRulesInput{}
  1158  	}
  1159  
  1160  	output = &DisableInsightRulesOutput{}
  1161  	req = c.newRequest(op, input, output)
  1162  	return
  1163  }
  1164  
  1165  // DisableInsightRules API operation for Amazon CloudWatch.
  1166  //
  1167  // Disables the specified Contributor Insights rules. When rules are disabled,
  1168  // they do not analyze log groups and do not incur costs.
  1169  //
  1170  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1171  // with awserr.Error's Code and Message methods to get detailed information about
  1172  // the error.
  1173  //
  1174  // See the AWS API reference guide for Amazon CloudWatch's
  1175  // API operation DisableInsightRules for usage and error information.
  1176  //
  1177  // Returned Error Codes:
  1178  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  1179  //   The value of an input parameter is bad or out-of-range.
  1180  //
  1181  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  1182  //   An input parameter that is required is missing.
  1183  //
  1184  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableInsightRules
  1185  func (c *CloudWatch) DisableInsightRules(input *DisableInsightRulesInput) (*DisableInsightRulesOutput, error) {
  1186  	req, out := c.DisableInsightRulesRequest(input)
  1187  	return out, req.Send()
  1188  }
  1189  
  1190  // DisableInsightRulesWithContext is the same as DisableInsightRules with the addition of
  1191  // the ability to pass a context and additional request options.
  1192  //
  1193  // See DisableInsightRules for details on how to use this API operation.
  1194  //
  1195  // The context must be non-nil and will be used for request cancellation. If
  1196  // the context is nil a panic will occur. In the future the SDK may create
  1197  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1198  // for more information on using Contexts.
  1199  func (c *CloudWatch) DisableInsightRulesWithContext(ctx aws.Context, input *DisableInsightRulesInput, opts ...request.Option) (*DisableInsightRulesOutput, error) {
  1200  	req, out := c.DisableInsightRulesRequest(input)
  1201  	req.SetContext(ctx)
  1202  	req.ApplyOptions(opts...)
  1203  	return out, req.Send()
  1204  }
  1205  
  1206  const opEnableAlarmActions = "EnableAlarmActions"
  1207  
  1208  // EnableAlarmActionsRequest generates a "aws/request.Request" representing the
  1209  // client's request for the EnableAlarmActions operation. The "output" return
  1210  // value will be populated with the request's response once the request completes
  1211  // successfully.
  1212  //
  1213  // Use "Send" method on the returned Request to send the API call to the service.
  1214  // the "output" return value is not valid until after Send returns without error.
  1215  //
  1216  // See EnableAlarmActions for more information on using the EnableAlarmActions
  1217  // API call, and error handling.
  1218  //
  1219  // This method is useful when you want to inject custom logic or configuration
  1220  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1221  //
  1222  //
  1223  //    // Example sending a request using the EnableAlarmActionsRequest method.
  1224  //    req, resp := client.EnableAlarmActionsRequest(params)
  1225  //
  1226  //    err := req.Send()
  1227  //    if err == nil { // resp is now filled
  1228  //        fmt.Println(resp)
  1229  //    }
  1230  //
  1231  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableAlarmActions
  1232  func (c *CloudWatch) EnableAlarmActionsRequest(input *EnableAlarmActionsInput) (req *request.Request, output *EnableAlarmActionsOutput) {
  1233  	op := &request.Operation{
  1234  		Name:       opEnableAlarmActions,
  1235  		HTTPMethod: "POST",
  1236  		HTTPPath:   "/",
  1237  	}
  1238  
  1239  	if input == nil {
  1240  		input = &EnableAlarmActionsInput{}
  1241  	}
  1242  
  1243  	output = &EnableAlarmActionsOutput{}
  1244  	req = c.newRequest(op, input, output)
  1245  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1246  	return
  1247  }
  1248  
  1249  // EnableAlarmActions API operation for Amazon CloudWatch.
  1250  //
  1251  // Enables the actions for the specified alarms.
  1252  //
  1253  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1254  // with awserr.Error's Code and Message methods to get detailed information about
  1255  // the error.
  1256  //
  1257  // See the AWS API reference guide for Amazon CloudWatch's
  1258  // API operation EnableAlarmActions for usage and error information.
  1259  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableAlarmActions
  1260  func (c *CloudWatch) EnableAlarmActions(input *EnableAlarmActionsInput) (*EnableAlarmActionsOutput, error) {
  1261  	req, out := c.EnableAlarmActionsRequest(input)
  1262  	return out, req.Send()
  1263  }
  1264  
  1265  // EnableAlarmActionsWithContext is the same as EnableAlarmActions with the addition of
  1266  // the ability to pass a context and additional request options.
  1267  //
  1268  // See EnableAlarmActions for details on how to use this API operation.
  1269  //
  1270  // The context must be non-nil and will be used for request cancellation. If
  1271  // the context is nil a panic will occur. In the future the SDK may create
  1272  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1273  // for more information on using Contexts.
  1274  func (c *CloudWatch) EnableAlarmActionsWithContext(ctx aws.Context, input *EnableAlarmActionsInput, opts ...request.Option) (*EnableAlarmActionsOutput, error) {
  1275  	req, out := c.EnableAlarmActionsRequest(input)
  1276  	req.SetContext(ctx)
  1277  	req.ApplyOptions(opts...)
  1278  	return out, req.Send()
  1279  }
  1280  
  1281  const opEnableInsightRules = "EnableInsightRules"
  1282  
  1283  // EnableInsightRulesRequest generates a "aws/request.Request" representing the
  1284  // client's request for the EnableInsightRules operation. The "output" return
  1285  // value will be populated with the request's response once the request completes
  1286  // successfully.
  1287  //
  1288  // Use "Send" method on the returned Request to send the API call to the service.
  1289  // the "output" return value is not valid until after Send returns without error.
  1290  //
  1291  // See EnableInsightRules for more information on using the EnableInsightRules
  1292  // API call, and error handling.
  1293  //
  1294  // This method is useful when you want to inject custom logic or configuration
  1295  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1296  //
  1297  //
  1298  //    // Example sending a request using the EnableInsightRulesRequest method.
  1299  //    req, resp := client.EnableInsightRulesRequest(params)
  1300  //
  1301  //    err := req.Send()
  1302  //    if err == nil { // resp is now filled
  1303  //        fmt.Println(resp)
  1304  //    }
  1305  //
  1306  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableInsightRules
  1307  func (c *CloudWatch) EnableInsightRulesRequest(input *EnableInsightRulesInput) (req *request.Request, output *EnableInsightRulesOutput) {
  1308  	op := &request.Operation{
  1309  		Name:       opEnableInsightRules,
  1310  		HTTPMethod: "POST",
  1311  		HTTPPath:   "/",
  1312  	}
  1313  
  1314  	if input == nil {
  1315  		input = &EnableInsightRulesInput{}
  1316  	}
  1317  
  1318  	output = &EnableInsightRulesOutput{}
  1319  	req = c.newRequest(op, input, output)
  1320  	return
  1321  }
  1322  
  1323  // EnableInsightRules API operation for Amazon CloudWatch.
  1324  //
  1325  // Enables the specified Contributor Insights rules. When rules are enabled,
  1326  // they immediately begin analyzing log data.
  1327  //
  1328  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1329  // with awserr.Error's Code and Message methods to get detailed information about
  1330  // the error.
  1331  //
  1332  // See the AWS API reference guide for Amazon CloudWatch's
  1333  // API operation EnableInsightRules for usage and error information.
  1334  //
  1335  // Returned Error Codes:
  1336  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  1337  //   The value of an input parameter is bad or out-of-range.
  1338  //
  1339  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  1340  //   An input parameter that is required is missing.
  1341  //
  1342  //   * ErrCodeLimitExceededException "LimitExceededException"
  1343  //   The operation exceeded one or more limits.
  1344  //
  1345  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableInsightRules
  1346  func (c *CloudWatch) EnableInsightRules(input *EnableInsightRulesInput) (*EnableInsightRulesOutput, error) {
  1347  	req, out := c.EnableInsightRulesRequest(input)
  1348  	return out, req.Send()
  1349  }
  1350  
  1351  // EnableInsightRulesWithContext is the same as EnableInsightRules with the addition of
  1352  // the ability to pass a context and additional request options.
  1353  //
  1354  // See EnableInsightRules for details on how to use this API operation.
  1355  //
  1356  // The context must be non-nil and will be used for request cancellation. If
  1357  // the context is nil a panic will occur. In the future the SDK may create
  1358  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1359  // for more information on using Contexts.
  1360  func (c *CloudWatch) EnableInsightRulesWithContext(ctx aws.Context, input *EnableInsightRulesInput, opts ...request.Option) (*EnableInsightRulesOutput, error) {
  1361  	req, out := c.EnableInsightRulesRequest(input)
  1362  	req.SetContext(ctx)
  1363  	req.ApplyOptions(opts...)
  1364  	return out, req.Send()
  1365  }
  1366  
  1367  const opGetDashboard = "GetDashboard"
  1368  
  1369  // GetDashboardRequest generates a "aws/request.Request" representing the
  1370  // client's request for the GetDashboard operation. The "output" return
  1371  // value will be populated with the request's response once the request completes
  1372  // successfully.
  1373  //
  1374  // Use "Send" method on the returned Request to send the API call to the service.
  1375  // the "output" return value is not valid until after Send returns without error.
  1376  //
  1377  // See GetDashboard for more information on using the GetDashboard
  1378  // API call, and error handling.
  1379  //
  1380  // This method is useful when you want to inject custom logic or configuration
  1381  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1382  //
  1383  //
  1384  //    // Example sending a request using the GetDashboardRequest method.
  1385  //    req, resp := client.GetDashboardRequest(params)
  1386  //
  1387  //    err := req.Send()
  1388  //    if err == nil { // resp is now filled
  1389  //        fmt.Println(resp)
  1390  //    }
  1391  //
  1392  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDashboard
  1393  func (c *CloudWatch) GetDashboardRequest(input *GetDashboardInput) (req *request.Request, output *GetDashboardOutput) {
  1394  	op := &request.Operation{
  1395  		Name:       opGetDashboard,
  1396  		HTTPMethod: "POST",
  1397  		HTTPPath:   "/",
  1398  	}
  1399  
  1400  	if input == nil {
  1401  		input = &GetDashboardInput{}
  1402  	}
  1403  
  1404  	output = &GetDashboardOutput{}
  1405  	req = c.newRequest(op, input, output)
  1406  	return
  1407  }
  1408  
  1409  // GetDashboard API operation for Amazon CloudWatch.
  1410  //
  1411  // Displays the details of the dashboard that you specify.
  1412  //
  1413  // To copy an existing dashboard, use GetDashboard, and then use the data returned
  1414  // within DashboardBody as the template for the new dashboard when you call
  1415  // PutDashboard to create the copy.
  1416  //
  1417  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1418  // with awserr.Error's Code and Message methods to get detailed information about
  1419  // the error.
  1420  //
  1421  // See the AWS API reference guide for Amazon CloudWatch's
  1422  // API operation GetDashboard for usage and error information.
  1423  //
  1424  // Returned Error Codes:
  1425  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  1426  //   The value of an input parameter is bad or out-of-range.
  1427  //
  1428  //   * ErrCodeDashboardNotFoundError "ResourceNotFound"
  1429  //   The specified dashboard does not exist.
  1430  //
  1431  //   * ErrCodeInternalServiceFault "InternalServiceError"
  1432  //   Request processing has failed due to some unknown error, exception, or failure.
  1433  //
  1434  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDashboard
  1435  func (c *CloudWatch) GetDashboard(input *GetDashboardInput) (*GetDashboardOutput, error) {
  1436  	req, out := c.GetDashboardRequest(input)
  1437  	return out, req.Send()
  1438  }
  1439  
  1440  // GetDashboardWithContext is the same as GetDashboard with the addition of
  1441  // the ability to pass a context and additional request options.
  1442  //
  1443  // See GetDashboard for details on how to use this API operation.
  1444  //
  1445  // The context must be non-nil and will be used for request cancellation. If
  1446  // the context is nil a panic will occur. In the future the SDK may create
  1447  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1448  // for more information on using Contexts.
  1449  func (c *CloudWatch) GetDashboardWithContext(ctx aws.Context, input *GetDashboardInput, opts ...request.Option) (*GetDashboardOutput, error) {
  1450  	req, out := c.GetDashboardRequest(input)
  1451  	req.SetContext(ctx)
  1452  	req.ApplyOptions(opts...)
  1453  	return out, req.Send()
  1454  }
  1455  
  1456  const opGetInsightRuleReport = "GetInsightRuleReport"
  1457  
  1458  // GetInsightRuleReportRequest generates a "aws/request.Request" representing the
  1459  // client's request for the GetInsightRuleReport operation. The "output" return
  1460  // value will be populated with the request's response once the request completes
  1461  // successfully.
  1462  //
  1463  // Use "Send" method on the returned Request to send the API call to the service.
  1464  // the "output" return value is not valid until after Send returns without error.
  1465  //
  1466  // See GetInsightRuleReport for more information on using the GetInsightRuleReport
  1467  // API call, and error handling.
  1468  //
  1469  // This method is useful when you want to inject custom logic or configuration
  1470  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1471  //
  1472  //
  1473  //    // Example sending a request using the GetInsightRuleReportRequest method.
  1474  //    req, resp := client.GetInsightRuleReportRequest(params)
  1475  //
  1476  //    err := req.Send()
  1477  //    if err == nil { // resp is now filled
  1478  //        fmt.Println(resp)
  1479  //    }
  1480  //
  1481  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetInsightRuleReport
  1482  func (c *CloudWatch) GetInsightRuleReportRequest(input *GetInsightRuleReportInput) (req *request.Request, output *GetInsightRuleReportOutput) {
  1483  	op := &request.Operation{
  1484  		Name:       opGetInsightRuleReport,
  1485  		HTTPMethod: "POST",
  1486  		HTTPPath:   "/",
  1487  	}
  1488  
  1489  	if input == nil {
  1490  		input = &GetInsightRuleReportInput{}
  1491  	}
  1492  
  1493  	output = &GetInsightRuleReportOutput{}
  1494  	req = c.newRequest(op, input, output)
  1495  	return
  1496  }
  1497  
  1498  // GetInsightRuleReport API operation for Amazon CloudWatch.
  1499  //
  1500  // This operation returns the time series data collected by a Contributor Insights
  1501  // rule. The data includes the identity and number of contributors to the log
  1502  // group.
  1503  //
  1504  // You can also optionally return one or more statistics about each data point
  1505  // in the time series. These statistics can include the following:
  1506  //
  1507  //    * UniqueContributors -- the number of unique contributors for each data
  1508  //    point.
  1509  //
  1510  //    * MaxContributorValue -- the value of the top contributor for each data
  1511  //    point. The identity of the contributor might change for each data point
  1512  //    in the graph. If this rule aggregates by COUNT, the top contributor for
  1513  //    each data point is the contributor with the most occurrences in that period.
  1514  //    If the rule aggregates by SUM, the top contributor is the contributor
  1515  //    with the highest sum in the log field specified by the rule's Value, during
  1516  //    that period.
  1517  //
  1518  //    * SampleCount -- the number of data points matched by the rule.
  1519  //
  1520  //    * Sum -- the sum of the values from all contributors during the time period
  1521  //    represented by that data point.
  1522  //
  1523  //    * Minimum -- the minimum value from a single observation during the time
  1524  //    period represented by that data point.
  1525  //
  1526  //    * Maximum -- the maximum value from a single observation during the time
  1527  //    period represented by that data point.
  1528  //
  1529  //    * Average -- the average value from all contributors during the time period
  1530  //    represented by that data point.
  1531  //
  1532  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1533  // with awserr.Error's Code and Message methods to get detailed information about
  1534  // the error.
  1535  //
  1536  // See the AWS API reference guide for Amazon CloudWatch's
  1537  // API operation GetInsightRuleReport for usage and error information.
  1538  //
  1539  // Returned Error Codes:
  1540  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  1541  //   The value of an input parameter is bad or out-of-range.
  1542  //
  1543  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  1544  //   An input parameter that is required is missing.
  1545  //
  1546  //   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
  1547  //   The named resource does not exist.
  1548  //
  1549  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetInsightRuleReport
  1550  func (c *CloudWatch) GetInsightRuleReport(input *GetInsightRuleReportInput) (*GetInsightRuleReportOutput, error) {
  1551  	req, out := c.GetInsightRuleReportRequest(input)
  1552  	return out, req.Send()
  1553  }
  1554  
  1555  // GetInsightRuleReportWithContext is the same as GetInsightRuleReport with the addition of
  1556  // the ability to pass a context and additional request options.
  1557  //
  1558  // See GetInsightRuleReport for details on how to use this API operation.
  1559  //
  1560  // The context must be non-nil and will be used for request cancellation. If
  1561  // the context is nil a panic will occur. In the future the SDK may create
  1562  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1563  // for more information on using Contexts.
  1564  func (c *CloudWatch) GetInsightRuleReportWithContext(ctx aws.Context, input *GetInsightRuleReportInput, opts ...request.Option) (*GetInsightRuleReportOutput, error) {
  1565  	req, out := c.GetInsightRuleReportRequest(input)
  1566  	req.SetContext(ctx)
  1567  	req.ApplyOptions(opts...)
  1568  	return out, req.Send()
  1569  }
  1570  
  1571  const opGetMetricData = "GetMetricData"
  1572  
  1573  // GetMetricDataRequest generates a "aws/request.Request" representing the
  1574  // client's request for the GetMetricData operation. The "output" return
  1575  // value will be populated with the request's response once the request completes
  1576  // successfully.
  1577  //
  1578  // Use "Send" method on the returned Request to send the API call to the service.
  1579  // the "output" return value is not valid until after Send returns without error.
  1580  //
  1581  // See GetMetricData for more information on using the GetMetricData
  1582  // API call, and error handling.
  1583  //
  1584  // This method is useful when you want to inject custom logic or configuration
  1585  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1586  //
  1587  //
  1588  //    // Example sending a request using the GetMetricDataRequest method.
  1589  //    req, resp := client.GetMetricDataRequest(params)
  1590  //
  1591  //    err := req.Send()
  1592  //    if err == nil { // resp is now filled
  1593  //        fmt.Println(resp)
  1594  //    }
  1595  //
  1596  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricData
  1597  func (c *CloudWatch) GetMetricDataRequest(input *GetMetricDataInput) (req *request.Request, output *GetMetricDataOutput) {
  1598  	op := &request.Operation{
  1599  		Name:       opGetMetricData,
  1600  		HTTPMethod: "POST",
  1601  		HTTPPath:   "/",
  1602  		Paginator: &request.Paginator{
  1603  			InputTokens:     []string{"NextToken"},
  1604  			OutputTokens:    []string{"NextToken"},
  1605  			LimitToken:      "MaxDatapoints",
  1606  			TruncationToken: "",
  1607  		},
  1608  	}
  1609  
  1610  	if input == nil {
  1611  		input = &GetMetricDataInput{}
  1612  	}
  1613  
  1614  	output = &GetMetricDataOutput{}
  1615  	req = c.newRequest(op, input, output)
  1616  	return
  1617  }
  1618  
  1619  // GetMetricData API operation for Amazon CloudWatch.
  1620  //
  1621  // You can use the GetMetricData API to retrieve as many as 500 different metrics
  1622  // in a single request, with a total of as many as 100,800 data points. You
  1623  // can also optionally perform math expressions on the values of the returned
  1624  // statistics, to create new time series that represent new insights into your
  1625  // data. For example, using Lambda metrics, you could divide the Errors metric
  1626  // by the Invocations metric to get an error rate time series. For more information
  1627  // about metric math expressions, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
  1628  // in the Amazon CloudWatch User Guide.
  1629  //
  1630  // Calls to the GetMetricData API have a different pricing structure than calls
  1631  // to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch
  1632  // Pricing (https://aws.amazon.com/cloudwatch/pricing/).
  1633  //
  1634  // Amazon CloudWatch retains metric data as follows:
  1635  //
  1636  //    * Data points with a period of less than 60 seconds are available for
  1637  //    3 hours. These data points are high-resolution metrics and are available
  1638  //    only for custom metrics that have been defined with a StorageResolution
  1639  //    of 1.
  1640  //
  1641  //    * Data points with a period of 60 seconds (1-minute) are available for
  1642  //    15 days.
  1643  //
  1644  //    * Data points with a period of 300 seconds (5-minute) are available for
  1645  //    63 days.
  1646  //
  1647  //    * Data points with a period of 3600 seconds (1 hour) are available for
  1648  //    455 days (15 months).
  1649  //
  1650  // Data points that are initially published with a shorter period are aggregated
  1651  // together for long-term storage. For example, if you collect data using a
  1652  // period of 1 minute, the data remains available for 15 days with 1-minute
  1653  // resolution. After 15 days, this data is still available, but is aggregated
  1654  // and retrievable only with a resolution of 5 minutes. After 63 days, the data
  1655  // is further aggregated and is available with a resolution of 1 hour.
  1656  //
  1657  // If you omit Unit in your request, all data that was collected with any unit
  1658  // is returned, along with the corresponding units that were specified when
  1659  // the data was reported to CloudWatch. If you specify a unit, the operation
  1660  // returns only data that was collected with that unit specified. If you specify
  1661  // a unit that does not match the data collected, the results of the operation
  1662  // are null. CloudWatch does not perform unit conversions.
  1663  //
  1664  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1665  // with awserr.Error's Code and Message methods to get detailed information about
  1666  // the error.
  1667  //
  1668  // See the AWS API reference guide for Amazon CloudWatch's
  1669  // API operation GetMetricData for usage and error information.
  1670  //
  1671  // Returned Error Codes:
  1672  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  1673  //   The next token specified is invalid.
  1674  //
  1675  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricData
  1676  func (c *CloudWatch) GetMetricData(input *GetMetricDataInput) (*GetMetricDataOutput, error) {
  1677  	req, out := c.GetMetricDataRequest(input)
  1678  	return out, req.Send()
  1679  }
  1680  
  1681  // GetMetricDataWithContext is the same as GetMetricData with the addition of
  1682  // the ability to pass a context and additional request options.
  1683  //
  1684  // See GetMetricData for details on how to use this API operation.
  1685  //
  1686  // The context must be non-nil and will be used for request cancellation. If
  1687  // the context is nil a panic will occur. In the future the SDK may create
  1688  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1689  // for more information on using Contexts.
  1690  func (c *CloudWatch) GetMetricDataWithContext(ctx aws.Context, input *GetMetricDataInput, opts ...request.Option) (*GetMetricDataOutput, error) {
  1691  	req, out := c.GetMetricDataRequest(input)
  1692  	req.SetContext(ctx)
  1693  	req.ApplyOptions(opts...)
  1694  	return out, req.Send()
  1695  }
  1696  
  1697  // GetMetricDataPages iterates over the pages of a GetMetricData operation,
  1698  // calling the "fn" function with the response data for each page. To stop
  1699  // iterating, return false from the fn function.
  1700  //
  1701  // See GetMetricData method for more information on how to use this operation.
  1702  //
  1703  // Note: This operation can generate multiple requests to a service.
  1704  //
  1705  //    // Example iterating over at most 3 pages of a GetMetricData operation.
  1706  //    pageNum := 0
  1707  //    err := client.GetMetricDataPages(params,
  1708  //        func(page *cloudwatch.GetMetricDataOutput, lastPage bool) bool {
  1709  //            pageNum++
  1710  //            fmt.Println(page)
  1711  //            return pageNum <= 3
  1712  //        })
  1713  //
  1714  func (c *CloudWatch) GetMetricDataPages(input *GetMetricDataInput, fn func(*GetMetricDataOutput, bool) bool) error {
  1715  	return c.GetMetricDataPagesWithContext(aws.BackgroundContext(), input, fn)
  1716  }
  1717  
  1718  // GetMetricDataPagesWithContext same as GetMetricDataPages except
  1719  // it takes a Context and allows setting request options on the pages.
  1720  //
  1721  // The context must be non-nil and will be used for request cancellation. If
  1722  // the context is nil a panic will occur. In the future the SDK may create
  1723  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1724  // for more information on using Contexts.
  1725  func (c *CloudWatch) GetMetricDataPagesWithContext(ctx aws.Context, input *GetMetricDataInput, fn func(*GetMetricDataOutput, bool) bool, opts ...request.Option) error {
  1726  	p := request.Pagination{
  1727  		NewRequest: func() (*request.Request, error) {
  1728  			var inCpy *GetMetricDataInput
  1729  			if input != nil {
  1730  				tmp := *input
  1731  				inCpy = &tmp
  1732  			}
  1733  			req, _ := c.GetMetricDataRequest(inCpy)
  1734  			req.SetContext(ctx)
  1735  			req.ApplyOptions(opts...)
  1736  			return req, nil
  1737  		},
  1738  	}
  1739  
  1740  	for p.Next() {
  1741  		if !fn(p.Page().(*GetMetricDataOutput), !p.HasNextPage()) {
  1742  			break
  1743  		}
  1744  	}
  1745  
  1746  	return p.Err()
  1747  }
  1748  
  1749  const opGetMetricStatistics = "GetMetricStatistics"
  1750  
  1751  // GetMetricStatisticsRequest generates a "aws/request.Request" representing the
  1752  // client's request for the GetMetricStatistics operation. The "output" return
  1753  // value will be populated with the request's response once the request completes
  1754  // successfully.
  1755  //
  1756  // Use "Send" method on the returned Request to send the API call to the service.
  1757  // the "output" return value is not valid until after Send returns without error.
  1758  //
  1759  // See GetMetricStatistics for more information on using the GetMetricStatistics
  1760  // API call, and error handling.
  1761  //
  1762  // This method is useful when you want to inject custom logic or configuration
  1763  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1764  //
  1765  //
  1766  //    // Example sending a request using the GetMetricStatisticsRequest method.
  1767  //    req, resp := client.GetMetricStatisticsRequest(params)
  1768  //
  1769  //    err := req.Send()
  1770  //    if err == nil { // resp is now filled
  1771  //        fmt.Println(resp)
  1772  //    }
  1773  //
  1774  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStatistics
  1775  func (c *CloudWatch) GetMetricStatisticsRequest(input *GetMetricStatisticsInput) (req *request.Request, output *GetMetricStatisticsOutput) {
  1776  	op := &request.Operation{
  1777  		Name:       opGetMetricStatistics,
  1778  		HTTPMethod: "POST",
  1779  		HTTPPath:   "/",
  1780  	}
  1781  
  1782  	if input == nil {
  1783  		input = &GetMetricStatisticsInput{}
  1784  	}
  1785  
  1786  	output = &GetMetricStatisticsOutput{}
  1787  	req = c.newRequest(op, input, output)
  1788  	return
  1789  }
  1790  
  1791  // GetMetricStatistics API operation for Amazon CloudWatch.
  1792  //
  1793  // Gets statistics for the specified metric.
  1794  //
  1795  // The maximum number of data points returned from a single call is 1,440. If
  1796  // you request more than 1,440 data points, CloudWatch returns an error. To
  1797  // reduce the number of data points, you can narrow the specified time range
  1798  // and make multiple requests across adjacent time ranges, or you can increase
  1799  // the specified period. Data points are not returned in chronological order.
  1800  //
  1801  // CloudWatch aggregates data points based on the length of the period that
  1802  // you specify. For example, if you request statistics with a one-hour period,
  1803  // CloudWatch aggregates all data points with time stamps that fall within each
  1804  // one-hour period. Therefore, the number of values aggregated by CloudWatch
  1805  // is larger than the number of data points returned.
  1806  //
  1807  // CloudWatch needs raw data points to calculate percentile statistics. If you
  1808  // publish data using a statistic set instead, you can only retrieve percentile
  1809  // statistics for this data if one of the following conditions is true:
  1810  //
  1811  //    * The SampleCount value of the statistic set is 1.
  1812  //
  1813  //    * The Min and the Max values of the statistic set are equal.
  1814  //
  1815  // Percentile statistics are not available for metrics when any of the metric
  1816  // values are negative numbers.
  1817  //
  1818  // Amazon CloudWatch retains metric data as follows:
  1819  //
  1820  //    * Data points with a period of less than 60 seconds are available for
  1821  //    3 hours. These data points are high-resolution metrics and are available
  1822  //    only for custom metrics that have been defined with a StorageResolution
  1823  //    of 1.
  1824  //
  1825  //    * Data points with a period of 60 seconds (1-minute) are available for
  1826  //    15 days.
  1827  //
  1828  //    * Data points with a period of 300 seconds (5-minute) are available for
  1829  //    63 days.
  1830  //
  1831  //    * Data points with a period of 3600 seconds (1 hour) are available for
  1832  //    455 days (15 months).
  1833  //
  1834  // Data points that are initially published with a shorter period are aggregated
  1835  // together for long-term storage. For example, if you collect data using a
  1836  // period of 1 minute, the data remains available for 15 days with 1-minute
  1837  // resolution. After 15 days, this data is still available, but is aggregated
  1838  // and retrievable only with a resolution of 5 minutes. After 63 days, the data
  1839  // is further aggregated and is available with a resolution of 1 hour.
  1840  //
  1841  // CloudWatch started retaining 5-minute and 1-hour metric data as of July 9,
  1842  // 2016.
  1843  //
  1844  // For information about metrics and dimensions supported by Amazon Web Services
  1845  // services, see the Amazon CloudWatch Metrics and Dimensions Reference (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html)
  1846  // in the Amazon CloudWatch User Guide.
  1847  //
  1848  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1849  // with awserr.Error's Code and Message methods to get detailed information about
  1850  // the error.
  1851  //
  1852  // See the AWS API reference guide for Amazon CloudWatch's
  1853  // API operation GetMetricStatistics for usage and error information.
  1854  //
  1855  // Returned Error Codes:
  1856  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  1857  //   The value of an input parameter is bad or out-of-range.
  1858  //
  1859  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  1860  //   An input parameter that is required is missing.
  1861  //
  1862  //   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination"
  1863  //   Parameters were used together that cannot be used together.
  1864  //
  1865  //   * ErrCodeInternalServiceFault "InternalServiceError"
  1866  //   Request processing has failed due to some unknown error, exception, or failure.
  1867  //
  1868  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStatistics
  1869  func (c *CloudWatch) GetMetricStatistics(input *GetMetricStatisticsInput) (*GetMetricStatisticsOutput, error) {
  1870  	req, out := c.GetMetricStatisticsRequest(input)
  1871  	return out, req.Send()
  1872  }
  1873  
  1874  // GetMetricStatisticsWithContext is the same as GetMetricStatistics with the addition of
  1875  // the ability to pass a context and additional request options.
  1876  //
  1877  // See GetMetricStatistics for details on how to use this API operation.
  1878  //
  1879  // The context must be non-nil and will be used for request cancellation. If
  1880  // the context is nil a panic will occur. In the future the SDK may create
  1881  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1882  // for more information on using Contexts.
  1883  func (c *CloudWatch) GetMetricStatisticsWithContext(ctx aws.Context, input *GetMetricStatisticsInput, opts ...request.Option) (*GetMetricStatisticsOutput, error) {
  1884  	req, out := c.GetMetricStatisticsRequest(input)
  1885  	req.SetContext(ctx)
  1886  	req.ApplyOptions(opts...)
  1887  	return out, req.Send()
  1888  }
  1889  
  1890  const opGetMetricStream = "GetMetricStream"
  1891  
  1892  // GetMetricStreamRequest generates a "aws/request.Request" representing the
  1893  // client's request for the GetMetricStream operation. The "output" return
  1894  // value will be populated with the request's response once the request completes
  1895  // successfully.
  1896  //
  1897  // Use "Send" method on the returned Request to send the API call to the service.
  1898  // the "output" return value is not valid until after Send returns without error.
  1899  //
  1900  // See GetMetricStream for more information on using the GetMetricStream
  1901  // API call, and error handling.
  1902  //
  1903  // This method is useful when you want to inject custom logic or configuration
  1904  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1905  //
  1906  //
  1907  //    // Example sending a request using the GetMetricStreamRequest method.
  1908  //    req, resp := client.GetMetricStreamRequest(params)
  1909  //
  1910  //    err := req.Send()
  1911  //    if err == nil { // resp is now filled
  1912  //        fmt.Println(resp)
  1913  //    }
  1914  //
  1915  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStream
  1916  func (c *CloudWatch) GetMetricStreamRequest(input *GetMetricStreamInput) (req *request.Request, output *GetMetricStreamOutput) {
  1917  	op := &request.Operation{
  1918  		Name:       opGetMetricStream,
  1919  		HTTPMethod: "POST",
  1920  		HTTPPath:   "/",
  1921  	}
  1922  
  1923  	if input == nil {
  1924  		input = &GetMetricStreamInput{}
  1925  	}
  1926  
  1927  	output = &GetMetricStreamOutput{}
  1928  	req = c.newRequest(op, input, output)
  1929  	return
  1930  }
  1931  
  1932  // GetMetricStream API operation for Amazon CloudWatch.
  1933  //
  1934  // Returns information about the metric stream that you specify.
  1935  //
  1936  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1937  // with awserr.Error's Code and Message methods to get detailed information about
  1938  // the error.
  1939  //
  1940  // See the AWS API reference guide for Amazon CloudWatch's
  1941  // API operation GetMetricStream for usage and error information.
  1942  //
  1943  // Returned Error Codes:
  1944  //   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
  1945  //   The named resource does not exist.
  1946  //
  1947  //   * ErrCodeInternalServiceFault "InternalServiceError"
  1948  //   Request processing has failed due to some unknown error, exception, or failure.
  1949  //
  1950  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  1951  //   The value of an input parameter is bad or out-of-range.
  1952  //
  1953  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  1954  //   An input parameter that is required is missing.
  1955  //
  1956  //   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination"
  1957  //   Parameters were used together that cannot be used together.
  1958  //
  1959  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStream
  1960  func (c *CloudWatch) GetMetricStream(input *GetMetricStreamInput) (*GetMetricStreamOutput, error) {
  1961  	req, out := c.GetMetricStreamRequest(input)
  1962  	return out, req.Send()
  1963  }
  1964  
  1965  // GetMetricStreamWithContext is the same as GetMetricStream with the addition of
  1966  // the ability to pass a context and additional request options.
  1967  //
  1968  // See GetMetricStream for details on how to use this API operation.
  1969  //
  1970  // The context must be non-nil and will be used for request cancellation. If
  1971  // the context is nil a panic will occur. In the future the SDK may create
  1972  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1973  // for more information on using Contexts.
  1974  func (c *CloudWatch) GetMetricStreamWithContext(ctx aws.Context, input *GetMetricStreamInput, opts ...request.Option) (*GetMetricStreamOutput, error) {
  1975  	req, out := c.GetMetricStreamRequest(input)
  1976  	req.SetContext(ctx)
  1977  	req.ApplyOptions(opts...)
  1978  	return out, req.Send()
  1979  }
  1980  
  1981  const opGetMetricWidgetImage = "GetMetricWidgetImage"
  1982  
  1983  // GetMetricWidgetImageRequest generates a "aws/request.Request" representing the
  1984  // client's request for the GetMetricWidgetImage operation. The "output" return
  1985  // value will be populated with the request's response once the request completes
  1986  // successfully.
  1987  //
  1988  // Use "Send" method on the returned Request to send the API call to the service.
  1989  // the "output" return value is not valid until after Send returns without error.
  1990  //
  1991  // See GetMetricWidgetImage for more information on using the GetMetricWidgetImage
  1992  // API call, and error handling.
  1993  //
  1994  // This method is useful when you want to inject custom logic or configuration
  1995  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1996  //
  1997  //
  1998  //    // Example sending a request using the GetMetricWidgetImageRequest method.
  1999  //    req, resp := client.GetMetricWidgetImageRequest(params)
  2000  //
  2001  //    err := req.Send()
  2002  //    if err == nil { // resp is now filled
  2003  //        fmt.Println(resp)
  2004  //    }
  2005  //
  2006  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricWidgetImage
  2007  func (c *CloudWatch) GetMetricWidgetImageRequest(input *GetMetricWidgetImageInput) (req *request.Request, output *GetMetricWidgetImageOutput) {
  2008  	op := &request.Operation{
  2009  		Name:       opGetMetricWidgetImage,
  2010  		HTTPMethod: "POST",
  2011  		HTTPPath:   "/",
  2012  	}
  2013  
  2014  	if input == nil {
  2015  		input = &GetMetricWidgetImageInput{}
  2016  	}
  2017  
  2018  	output = &GetMetricWidgetImageOutput{}
  2019  	req = c.newRequest(op, input, output)
  2020  	return
  2021  }
  2022  
  2023  // GetMetricWidgetImage API operation for Amazon CloudWatch.
  2024  //
  2025  // You can use the GetMetricWidgetImage API to retrieve a snapshot graph of
  2026  // one or more Amazon CloudWatch metrics as a bitmap image. You can then embed
  2027  // this image into your services and products, such as wiki pages, reports,
  2028  // and documents. You could also retrieve images regularly, such as every minute,
  2029  // and create your own custom live dashboard.
  2030  //
  2031  // The graph you retrieve can include all CloudWatch metric graph features,
  2032  // including metric math and horizontal and vertical annotations.
  2033  //
  2034  // There is a limit of 20 transactions per second for this API. Each GetMetricWidgetImage
  2035  // action has the following limits:
  2036  //
  2037  //    * As many as 100 metrics in the graph.
  2038  //
  2039  //    * Up to 100 KB uncompressed payload.
  2040  //
  2041  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2042  // with awserr.Error's Code and Message methods to get detailed information about
  2043  // the error.
  2044  //
  2045  // See the AWS API reference guide for Amazon CloudWatch's
  2046  // API operation GetMetricWidgetImage for usage and error information.
  2047  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricWidgetImage
  2048  func (c *CloudWatch) GetMetricWidgetImage(input *GetMetricWidgetImageInput) (*GetMetricWidgetImageOutput, error) {
  2049  	req, out := c.GetMetricWidgetImageRequest(input)
  2050  	return out, req.Send()
  2051  }
  2052  
  2053  // GetMetricWidgetImageWithContext is the same as GetMetricWidgetImage with the addition of
  2054  // the ability to pass a context and additional request options.
  2055  //
  2056  // See GetMetricWidgetImage for details on how to use this API operation.
  2057  //
  2058  // The context must be non-nil and will be used for request cancellation. If
  2059  // the context is nil a panic will occur. In the future the SDK may create
  2060  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2061  // for more information on using Contexts.
  2062  func (c *CloudWatch) GetMetricWidgetImageWithContext(ctx aws.Context, input *GetMetricWidgetImageInput, opts ...request.Option) (*GetMetricWidgetImageOutput, error) {
  2063  	req, out := c.GetMetricWidgetImageRequest(input)
  2064  	req.SetContext(ctx)
  2065  	req.ApplyOptions(opts...)
  2066  	return out, req.Send()
  2067  }
  2068  
  2069  const opListDashboards = "ListDashboards"
  2070  
  2071  // ListDashboardsRequest generates a "aws/request.Request" representing the
  2072  // client's request for the ListDashboards operation. The "output" return
  2073  // value will be populated with the request's response once the request completes
  2074  // successfully.
  2075  //
  2076  // Use "Send" method on the returned Request to send the API call to the service.
  2077  // the "output" return value is not valid until after Send returns without error.
  2078  //
  2079  // See ListDashboards for more information on using the ListDashboards
  2080  // API call, and error handling.
  2081  //
  2082  // This method is useful when you want to inject custom logic or configuration
  2083  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2084  //
  2085  //
  2086  //    // Example sending a request using the ListDashboardsRequest method.
  2087  //    req, resp := client.ListDashboardsRequest(params)
  2088  //
  2089  //    err := req.Send()
  2090  //    if err == nil { // resp is now filled
  2091  //        fmt.Println(resp)
  2092  //    }
  2093  //
  2094  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListDashboards
  2095  func (c *CloudWatch) ListDashboardsRequest(input *ListDashboardsInput) (req *request.Request, output *ListDashboardsOutput) {
  2096  	op := &request.Operation{
  2097  		Name:       opListDashboards,
  2098  		HTTPMethod: "POST",
  2099  		HTTPPath:   "/",
  2100  		Paginator: &request.Paginator{
  2101  			InputTokens:     []string{"NextToken"},
  2102  			OutputTokens:    []string{"NextToken"},
  2103  			LimitToken:      "",
  2104  			TruncationToken: "",
  2105  		},
  2106  	}
  2107  
  2108  	if input == nil {
  2109  		input = &ListDashboardsInput{}
  2110  	}
  2111  
  2112  	output = &ListDashboardsOutput{}
  2113  	req = c.newRequest(op, input, output)
  2114  	return
  2115  }
  2116  
  2117  // ListDashboards API operation for Amazon CloudWatch.
  2118  //
  2119  // Returns a list of the dashboards for your account. If you include DashboardNamePrefix,
  2120  // only those dashboards with names starting with the prefix are listed. Otherwise,
  2121  // all dashboards in your account are listed.
  2122  //
  2123  // ListDashboards returns up to 1000 results on one page. If there are more
  2124  // than 1000 dashboards, you can call ListDashboards again and include the value
  2125  // you received for NextToken in the first call, to receive the next 1000 results.
  2126  //
  2127  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2128  // with awserr.Error's Code and Message methods to get detailed information about
  2129  // the error.
  2130  //
  2131  // See the AWS API reference guide for Amazon CloudWatch's
  2132  // API operation ListDashboards for usage and error information.
  2133  //
  2134  // Returned Error Codes:
  2135  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  2136  //   The value of an input parameter is bad or out-of-range.
  2137  //
  2138  //   * ErrCodeInternalServiceFault "InternalServiceError"
  2139  //   Request processing has failed due to some unknown error, exception, or failure.
  2140  //
  2141  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListDashboards
  2142  func (c *CloudWatch) ListDashboards(input *ListDashboardsInput) (*ListDashboardsOutput, error) {
  2143  	req, out := c.ListDashboardsRequest(input)
  2144  	return out, req.Send()
  2145  }
  2146  
  2147  // ListDashboardsWithContext is the same as ListDashboards with the addition of
  2148  // the ability to pass a context and additional request options.
  2149  //
  2150  // See ListDashboards for details on how to use this API operation.
  2151  //
  2152  // The context must be non-nil and will be used for request cancellation. If
  2153  // the context is nil a panic will occur. In the future the SDK may create
  2154  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2155  // for more information on using Contexts.
  2156  func (c *CloudWatch) ListDashboardsWithContext(ctx aws.Context, input *ListDashboardsInput, opts ...request.Option) (*ListDashboardsOutput, error) {
  2157  	req, out := c.ListDashboardsRequest(input)
  2158  	req.SetContext(ctx)
  2159  	req.ApplyOptions(opts...)
  2160  	return out, req.Send()
  2161  }
  2162  
  2163  // ListDashboardsPages iterates over the pages of a ListDashboards operation,
  2164  // calling the "fn" function with the response data for each page. To stop
  2165  // iterating, return false from the fn function.
  2166  //
  2167  // See ListDashboards method for more information on how to use this operation.
  2168  //
  2169  // Note: This operation can generate multiple requests to a service.
  2170  //
  2171  //    // Example iterating over at most 3 pages of a ListDashboards operation.
  2172  //    pageNum := 0
  2173  //    err := client.ListDashboardsPages(params,
  2174  //        func(page *cloudwatch.ListDashboardsOutput, lastPage bool) bool {
  2175  //            pageNum++
  2176  //            fmt.Println(page)
  2177  //            return pageNum <= 3
  2178  //        })
  2179  //
  2180  func (c *CloudWatch) ListDashboardsPages(input *ListDashboardsInput, fn func(*ListDashboardsOutput, bool) bool) error {
  2181  	return c.ListDashboardsPagesWithContext(aws.BackgroundContext(), input, fn)
  2182  }
  2183  
  2184  // ListDashboardsPagesWithContext same as ListDashboardsPages except
  2185  // it takes a Context and allows setting request options on the pages.
  2186  //
  2187  // The context must be non-nil and will be used for request cancellation. If
  2188  // the context is nil a panic will occur. In the future the SDK may create
  2189  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2190  // for more information on using Contexts.
  2191  func (c *CloudWatch) ListDashboardsPagesWithContext(ctx aws.Context, input *ListDashboardsInput, fn func(*ListDashboardsOutput, bool) bool, opts ...request.Option) error {
  2192  	p := request.Pagination{
  2193  		NewRequest: func() (*request.Request, error) {
  2194  			var inCpy *ListDashboardsInput
  2195  			if input != nil {
  2196  				tmp := *input
  2197  				inCpy = &tmp
  2198  			}
  2199  			req, _ := c.ListDashboardsRequest(inCpy)
  2200  			req.SetContext(ctx)
  2201  			req.ApplyOptions(opts...)
  2202  			return req, nil
  2203  		},
  2204  	}
  2205  
  2206  	for p.Next() {
  2207  		if !fn(p.Page().(*ListDashboardsOutput), !p.HasNextPage()) {
  2208  			break
  2209  		}
  2210  	}
  2211  
  2212  	return p.Err()
  2213  }
  2214  
  2215  const opListMetricStreams = "ListMetricStreams"
  2216  
  2217  // ListMetricStreamsRequest generates a "aws/request.Request" representing the
  2218  // client's request for the ListMetricStreams operation. The "output" return
  2219  // value will be populated with the request's response once the request completes
  2220  // successfully.
  2221  //
  2222  // Use "Send" method on the returned Request to send the API call to the service.
  2223  // the "output" return value is not valid until after Send returns without error.
  2224  //
  2225  // See ListMetricStreams for more information on using the ListMetricStreams
  2226  // API call, and error handling.
  2227  //
  2228  // This method is useful when you want to inject custom logic or configuration
  2229  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2230  //
  2231  //
  2232  //    // Example sending a request using the ListMetricStreamsRequest method.
  2233  //    req, resp := client.ListMetricStreamsRequest(params)
  2234  //
  2235  //    err := req.Send()
  2236  //    if err == nil { // resp is now filled
  2237  //        fmt.Println(resp)
  2238  //    }
  2239  //
  2240  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetricStreams
  2241  func (c *CloudWatch) ListMetricStreamsRequest(input *ListMetricStreamsInput) (req *request.Request, output *ListMetricStreamsOutput) {
  2242  	op := &request.Operation{
  2243  		Name:       opListMetricStreams,
  2244  		HTTPMethod: "POST",
  2245  		HTTPPath:   "/",
  2246  		Paginator: &request.Paginator{
  2247  			InputTokens:     []string{"NextToken"},
  2248  			OutputTokens:    []string{"NextToken"},
  2249  			LimitToken:      "MaxResults",
  2250  			TruncationToken: "",
  2251  		},
  2252  	}
  2253  
  2254  	if input == nil {
  2255  		input = &ListMetricStreamsInput{}
  2256  	}
  2257  
  2258  	output = &ListMetricStreamsOutput{}
  2259  	req = c.newRequest(op, input, output)
  2260  	return
  2261  }
  2262  
  2263  // ListMetricStreams API operation for Amazon CloudWatch.
  2264  //
  2265  // Returns a list of metric streams in this account.
  2266  //
  2267  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2268  // with awserr.Error's Code and Message methods to get detailed information about
  2269  // the error.
  2270  //
  2271  // See the AWS API reference guide for Amazon CloudWatch's
  2272  // API operation ListMetricStreams for usage and error information.
  2273  //
  2274  // Returned Error Codes:
  2275  //   * ErrCodeInvalidNextToken "InvalidNextToken"
  2276  //   The next token specified is invalid.
  2277  //
  2278  //   * ErrCodeInternalServiceFault "InternalServiceError"
  2279  //   Request processing has failed due to some unknown error, exception, or failure.
  2280  //
  2281  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  2282  //   The value of an input parameter is bad or out-of-range.
  2283  //
  2284  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  2285  //   An input parameter that is required is missing.
  2286  //
  2287  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetricStreams
  2288  func (c *CloudWatch) ListMetricStreams(input *ListMetricStreamsInput) (*ListMetricStreamsOutput, error) {
  2289  	req, out := c.ListMetricStreamsRequest(input)
  2290  	return out, req.Send()
  2291  }
  2292  
  2293  // ListMetricStreamsWithContext is the same as ListMetricStreams with the addition of
  2294  // the ability to pass a context and additional request options.
  2295  //
  2296  // See ListMetricStreams for details on how to use this API operation.
  2297  //
  2298  // The context must be non-nil and will be used for request cancellation. If
  2299  // the context is nil a panic will occur. In the future the SDK may create
  2300  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2301  // for more information on using Contexts.
  2302  func (c *CloudWatch) ListMetricStreamsWithContext(ctx aws.Context, input *ListMetricStreamsInput, opts ...request.Option) (*ListMetricStreamsOutput, error) {
  2303  	req, out := c.ListMetricStreamsRequest(input)
  2304  	req.SetContext(ctx)
  2305  	req.ApplyOptions(opts...)
  2306  	return out, req.Send()
  2307  }
  2308  
  2309  // ListMetricStreamsPages iterates over the pages of a ListMetricStreams operation,
  2310  // calling the "fn" function with the response data for each page. To stop
  2311  // iterating, return false from the fn function.
  2312  //
  2313  // See ListMetricStreams method for more information on how to use this operation.
  2314  //
  2315  // Note: This operation can generate multiple requests to a service.
  2316  //
  2317  //    // Example iterating over at most 3 pages of a ListMetricStreams operation.
  2318  //    pageNum := 0
  2319  //    err := client.ListMetricStreamsPages(params,
  2320  //        func(page *cloudwatch.ListMetricStreamsOutput, lastPage bool) bool {
  2321  //            pageNum++
  2322  //            fmt.Println(page)
  2323  //            return pageNum <= 3
  2324  //        })
  2325  //
  2326  func (c *CloudWatch) ListMetricStreamsPages(input *ListMetricStreamsInput, fn func(*ListMetricStreamsOutput, bool) bool) error {
  2327  	return c.ListMetricStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
  2328  }
  2329  
  2330  // ListMetricStreamsPagesWithContext same as ListMetricStreamsPages except
  2331  // it takes a Context and allows setting request options on the pages.
  2332  //
  2333  // The context must be non-nil and will be used for request cancellation. If
  2334  // the context is nil a panic will occur. In the future the SDK may create
  2335  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2336  // for more information on using Contexts.
  2337  func (c *CloudWatch) ListMetricStreamsPagesWithContext(ctx aws.Context, input *ListMetricStreamsInput, fn func(*ListMetricStreamsOutput, bool) bool, opts ...request.Option) error {
  2338  	p := request.Pagination{
  2339  		NewRequest: func() (*request.Request, error) {
  2340  			var inCpy *ListMetricStreamsInput
  2341  			if input != nil {
  2342  				tmp := *input
  2343  				inCpy = &tmp
  2344  			}
  2345  			req, _ := c.ListMetricStreamsRequest(inCpy)
  2346  			req.SetContext(ctx)
  2347  			req.ApplyOptions(opts...)
  2348  			return req, nil
  2349  		},
  2350  	}
  2351  
  2352  	for p.Next() {
  2353  		if !fn(p.Page().(*ListMetricStreamsOutput), !p.HasNextPage()) {
  2354  			break
  2355  		}
  2356  	}
  2357  
  2358  	return p.Err()
  2359  }
  2360  
  2361  const opListMetrics = "ListMetrics"
  2362  
  2363  // ListMetricsRequest generates a "aws/request.Request" representing the
  2364  // client's request for the ListMetrics operation. The "output" return
  2365  // value will be populated with the request's response once the request completes
  2366  // successfully.
  2367  //
  2368  // Use "Send" method on the returned Request to send the API call to the service.
  2369  // the "output" return value is not valid until after Send returns without error.
  2370  //
  2371  // See ListMetrics for more information on using the ListMetrics
  2372  // API call, and error handling.
  2373  //
  2374  // This method is useful when you want to inject custom logic or configuration
  2375  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2376  //
  2377  //
  2378  //    // Example sending a request using the ListMetricsRequest method.
  2379  //    req, resp := client.ListMetricsRequest(params)
  2380  //
  2381  //    err := req.Send()
  2382  //    if err == nil { // resp is now filled
  2383  //        fmt.Println(resp)
  2384  //    }
  2385  //
  2386  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetrics
  2387  func (c *CloudWatch) ListMetricsRequest(input *ListMetricsInput) (req *request.Request, output *ListMetricsOutput) {
  2388  	op := &request.Operation{
  2389  		Name:       opListMetrics,
  2390  		HTTPMethod: "POST",
  2391  		HTTPPath:   "/",
  2392  		Paginator: &request.Paginator{
  2393  			InputTokens:     []string{"NextToken"},
  2394  			OutputTokens:    []string{"NextToken"},
  2395  			LimitToken:      "",
  2396  			TruncationToken: "",
  2397  		},
  2398  	}
  2399  
  2400  	if input == nil {
  2401  		input = &ListMetricsInput{}
  2402  	}
  2403  
  2404  	output = &ListMetricsOutput{}
  2405  	req = c.newRequest(op, input, output)
  2406  	return
  2407  }
  2408  
  2409  // ListMetrics API operation for Amazon CloudWatch.
  2410  //
  2411  // List the specified metrics. You can use the returned metrics with GetMetricData
  2412  // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)
  2413  // or GetMetricStatistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)
  2414  // to obtain statistical data.
  2415  //
  2416  // Up to 500 results are returned for any one call. To retrieve additional results,
  2417  // use the returned token with subsequent calls.
  2418  //
  2419  // After you create a metric, allow up to 15 minutes before the metric appears.
  2420  // You can see statistics about the metric sooner by using GetMetricData (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)
  2421  // or GetMetricStatistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html).
  2422  //
  2423  // ListMetrics doesn't return information about metrics if those metrics haven't
  2424  // reported data in the past two weeks. To retrieve those metrics, use GetMetricData
  2425  // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)
  2426  // or GetMetricStatistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html).
  2427  //
  2428  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2429  // with awserr.Error's Code and Message methods to get detailed information about
  2430  // the error.
  2431  //
  2432  // See the AWS API reference guide for Amazon CloudWatch's
  2433  // API operation ListMetrics for usage and error information.
  2434  //
  2435  // Returned Error Codes:
  2436  //   * ErrCodeInternalServiceFault "InternalServiceError"
  2437  //   Request processing has failed due to some unknown error, exception, or failure.
  2438  //
  2439  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  2440  //   The value of an input parameter is bad or out-of-range.
  2441  //
  2442  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetrics
  2443  func (c *CloudWatch) ListMetrics(input *ListMetricsInput) (*ListMetricsOutput, error) {
  2444  	req, out := c.ListMetricsRequest(input)
  2445  	return out, req.Send()
  2446  }
  2447  
  2448  // ListMetricsWithContext is the same as ListMetrics with the addition of
  2449  // the ability to pass a context and additional request options.
  2450  //
  2451  // See ListMetrics for details on how to use this API operation.
  2452  //
  2453  // The context must be non-nil and will be used for request cancellation. If
  2454  // the context is nil a panic will occur. In the future the SDK may create
  2455  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2456  // for more information on using Contexts.
  2457  func (c *CloudWatch) ListMetricsWithContext(ctx aws.Context, input *ListMetricsInput, opts ...request.Option) (*ListMetricsOutput, error) {
  2458  	req, out := c.ListMetricsRequest(input)
  2459  	req.SetContext(ctx)
  2460  	req.ApplyOptions(opts...)
  2461  	return out, req.Send()
  2462  }
  2463  
  2464  // ListMetricsPages iterates over the pages of a ListMetrics operation,
  2465  // calling the "fn" function with the response data for each page. To stop
  2466  // iterating, return false from the fn function.
  2467  //
  2468  // See ListMetrics method for more information on how to use this operation.
  2469  //
  2470  // Note: This operation can generate multiple requests to a service.
  2471  //
  2472  //    // Example iterating over at most 3 pages of a ListMetrics operation.
  2473  //    pageNum := 0
  2474  //    err := client.ListMetricsPages(params,
  2475  //        func(page *cloudwatch.ListMetricsOutput, lastPage bool) bool {
  2476  //            pageNum++
  2477  //            fmt.Println(page)
  2478  //            return pageNum <= 3
  2479  //        })
  2480  //
  2481  func (c *CloudWatch) ListMetricsPages(input *ListMetricsInput, fn func(*ListMetricsOutput, bool) bool) error {
  2482  	return c.ListMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
  2483  }
  2484  
  2485  // ListMetricsPagesWithContext same as ListMetricsPages except
  2486  // it takes a Context and allows setting request options on the pages.
  2487  //
  2488  // The context must be non-nil and will be used for request cancellation. If
  2489  // the context is nil a panic will occur. In the future the SDK may create
  2490  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2491  // for more information on using Contexts.
  2492  func (c *CloudWatch) ListMetricsPagesWithContext(ctx aws.Context, input *ListMetricsInput, fn func(*ListMetricsOutput, bool) bool, opts ...request.Option) error {
  2493  	p := request.Pagination{
  2494  		NewRequest: func() (*request.Request, error) {
  2495  			var inCpy *ListMetricsInput
  2496  			if input != nil {
  2497  				tmp := *input
  2498  				inCpy = &tmp
  2499  			}
  2500  			req, _ := c.ListMetricsRequest(inCpy)
  2501  			req.SetContext(ctx)
  2502  			req.ApplyOptions(opts...)
  2503  			return req, nil
  2504  		},
  2505  	}
  2506  
  2507  	for p.Next() {
  2508  		if !fn(p.Page().(*ListMetricsOutput), !p.HasNextPage()) {
  2509  			break
  2510  		}
  2511  	}
  2512  
  2513  	return p.Err()
  2514  }
  2515  
  2516  const opListTagsForResource = "ListTagsForResource"
  2517  
  2518  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  2519  // client's request for the ListTagsForResource operation. The "output" return
  2520  // value will be populated with the request's response once the request completes
  2521  // successfully.
  2522  //
  2523  // Use "Send" method on the returned Request to send the API call to the service.
  2524  // the "output" return value is not valid until after Send returns without error.
  2525  //
  2526  // See ListTagsForResource for more information on using the ListTagsForResource
  2527  // API call, and error handling.
  2528  //
  2529  // This method is useful when you want to inject custom logic or configuration
  2530  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2531  //
  2532  //
  2533  //    // Example sending a request using the ListTagsForResourceRequest method.
  2534  //    req, resp := client.ListTagsForResourceRequest(params)
  2535  //
  2536  //    err := req.Send()
  2537  //    if err == nil { // resp is now filled
  2538  //        fmt.Println(resp)
  2539  //    }
  2540  //
  2541  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListTagsForResource
  2542  func (c *CloudWatch) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  2543  	op := &request.Operation{
  2544  		Name:       opListTagsForResource,
  2545  		HTTPMethod: "POST",
  2546  		HTTPPath:   "/",
  2547  	}
  2548  
  2549  	if input == nil {
  2550  		input = &ListTagsForResourceInput{}
  2551  	}
  2552  
  2553  	output = &ListTagsForResourceOutput{}
  2554  	req = c.newRequest(op, input, output)
  2555  	return
  2556  }
  2557  
  2558  // ListTagsForResource API operation for Amazon CloudWatch.
  2559  //
  2560  // Displays the tags associated with a CloudWatch resource. Currently, alarms
  2561  // and Contributor Insights rules support tagging.
  2562  //
  2563  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2564  // with awserr.Error's Code and Message methods to get detailed information about
  2565  // the error.
  2566  //
  2567  // See the AWS API reference guide for Amazon CloudWatch's
  2568  // API operation ListTagsForResource for usage and error information.
  2569  //
  2570  // Returned Error Codes:
  2571  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  2572  //   The value of an input parameter is bad or out-of-range.
  2573  //
  2574  //   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
  2575  //   The named resource does not exist.
  2576  //
  2577  //   * ErrCodeInternalServiceFault "InternalServiceError"
  2578  //   Request processing has failed due to some unknown error, exception, or failure.
  2579  //
  2580  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListTagsForResource
  2581  func (c *CloudWatch) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  2582  	req, out := c.ListTagsForResourceRequest(input)
  2583  	return out, req.Send()
  2584  }
  2585  
  2586  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  2587  // the ability to pass a context and additional request options.
  2588  //
  2589  // See ListTagsForResource for details on how to use this API operation.
  2590  //
  2591  // The context must be non-nil and will be used for request cancellation. If
  2592  // the context is nil a panic will occur. In the future the SDK may create
  2593  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2594  // for more information on using Contexts.
  2595  func (c *CloudWatch) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  2596  	req, out := c.ListTagsForResourceRequest(input)
  2597  	req.SetContext(ctx)
  2598  	req.ApplyOptions(opts...)
  2599  	return out, req.Send()
  2600  }
  2601  
  2602  const opPutAnomalyDetector = "PutAnomalyDetector"
  2603  
  2604  // PutAnomalyDetectorRequest generates a "aws/request.Request" representing the
  2605  // client's request for the PutAnomalyDetector operation. The "output" return
  2606  // value will be populated with the request's response once the request completes
  2607  // successfully.
  2608  //
  2609  // Use "Send" method on the returned Request to send the API call to the service.
  2610  // the "output" return value is not valid until after Send returns without error.
  2611  //
  2612  // See PutAnomalyDetector for more information on using the PutAnomalyDetector
  2613  // API call, and error handling.
  2614  //
  2615  // This method is useful when you want to inject custom logic or configuration
  2616  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2617  //
  2618  //
  2619  //    // Example sending a request using the PutAnomalyDetectorRequest method.
  2620  //    req, resp := client.PutAnomalyDetectorRequest(params)
  2621  //
  2622  //    err := req.Send()
  2623  //    if err == nil { // resp is now filled
  2624  //        fmt.Println(resp)
  2625  //    }
  2626  //
  2627  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutAnomalyDetector
  2628  func (c *CloudWatch) PutAnomalyDetectorRequest(input *PutAnomalyDetectorInput) (req *request.Request, output *PutAnomalyDetectorOutput) {
  2629  	op := &request.Operation{
  2630  		Name:       opPutAnomalyDetector,
  2631  		HTTPMethod: "POST",
  2632  		HTTPPath:   "/",
  2633  	}
  2634  
  2635  	if input == nil {
  2636  		input = &PutAnomalyDetectorInput{}
  2637  	}
  2638  
  2639  	output = &PutAnomalyDetectorOutput{}
  2640  	req = c.newRequest(op, input, output)
  2641  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2642  	return
  2643  }
  2644  
  2645  // PutAnomalyDetector API operation for Amazon CloudWatch.
  2646  //
  2647  // Creates an anomaly detection model for a CloudWatch metric. You can use the
  2648  // model to display a band of expected normal values when the metric is graphed.
  2649  //
  2650  // For more information, see CloudWatch Anomaly Detection (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html).
  2651  //
  2652  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2653  // with awserr.Error's Code and Message methods to get detailed information about
  2654  // the error.
  2655  //
  2656  // See the AWS API reference guide for Amazon CloudWatch's
  2657  // API operation PutAnomalyDetector for usage and error information.
  2658  //
  2659  // Returned Error Codes:
  2660  //   * ErrCodeLimitExceededException "LimitExceededException"
  2661  //   The operation exceeded one or more limits.
  2662  //
  2663  //   * ErrCodeInternalServiceFault "InternalServiceError"
  2664  //   Request processing has failed due to some unknown error, exception, or failure.
  2665  //
  2666  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  2667  //   The value of an input parameter is bad or out-of-range.
  2668  //
  2669  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  2670  //   An input parameter that is required is missing.
  2671  //
  2672  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutAnomalyDetector
  2673  func (c *CloudWatch) PutAnomalyDetector(input *PutAnomalyDetectorInput) (*PutAnomalyDetectorOutput, error) {
  2674  	req, out := c.PutAnomalyDetectorRequest(input)
  2675  	return out, req.Send()
  2676  }
  2677  
  2678  // PutAnomalyDetectorWithContext is the same as PutAnomalyDetector with the addition of
  2679  // the ability to pass a context and additional request options.
  2680  //
  2681  // See PutAnomalyDetector for details on how to use this API operation.
  2682  //
  2683  // The context must be non-nil and will be used for request cancellation. If
  2684  // the context is nil a panic will occur. In the future the SDK may create
  2685  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2686  // for more information on using Contexts.
  2687  func (c *CloudWatch) PutAnomalyDetectorWithContext(ctx aws.Context, input *PutAnomalyDetectorInput, opts ...request.Option) (*PutAnomalyDetectorOutput, error) {
  2688  	req, out := c.PutAnomalyDetectorRequest(input)
  2689  	req.SetContext(ctx)
  2690  	req.ApplyOptions(opts...)
  2691  	return out, req.Send()
  2692  }
  2693  
  2694  const opPutCompositeAlarm = "PutCompositeAlarm"
  2695  
  2696  // PutCompositeAlarmRequest generates a "aws/request.Request" representing the
  2697  // client's request for the PutCompositeAlarm operation. The "output" return
  2698  // value will be populated with the request's response once the request completes
  2699  // successfully.
  2700  //
  2701  // Use "Send" method on the returned Request to send the API call to the service.
  2702  // the "output" return value is not valid until after Send returns without error.
  2703  //
  2704  // See PutCompositeAlarm for more information on using the PutCompositeAlarm
  2705  // API call, and error handling.
  2706  //
  2707  // This method is useful when you want to inject custom logic or configuration
  2708  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2709  //
  2710  //
  2711  //    // Example sending a request using the PutCompositeAlarmRequest method.
  2712  //    req, resp := client.PutCompositeAlarmRequest(params)
  2713  //
  2714  //    err := req.Send()
  2715  //    if err == nil { // resp is now filled
  2716  //        fmt.Println(resp)
  2717  //    }
  2718  //
  2719  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutCompositeAlarm
  2720  func (c *CloudWatch) PutCompositeAlarmRequest(input *PutCompositeAlarmInput) (req *request.Request, output *PutCompositeAlarmOutput) {
  2721  	op := &request.Operation{
  2722  		Name:       opPutCompositeAlarm,
  2723  		HTTPMethod: "POST",
  2724  		HTTPPath:   "/",
  2725  	}
  2726  
  2727  	if input == nil {
  2728  		input = &PutCompositeAlarmInput{}
  2729  	}
  2730  
  2731  	output = &PutCompositeAlarmOutput{}
  2732  	req = c.newRequest(op, input, output)
  2733  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2734  	return
  2735  }
  2736  
  2737  // PutCompositeAlarm API operation for Amazon CloudWatch.
  2738  //
  2739  // Creates or updates a composite alarm. When you create a composite alarm,
  2740  // you specify a rule expression for the alarm that takes into account the alarm
  2741  // states of other alarms that you have created. The composite alarm goes into
  2742  // ALARM state only if all conditions of the rule are met.
  2743  //
  2744  // The alarms specified in a composite alarm's rule expression can include metric
  2745  // alarms and other composite alarms.
  2746  //
  2747  // Using composite alarms can reduce alarm noise. You can create multiple metric
  2748  // alarms, and also create a composite alarm and set up alerts only for the
  2749  // composite alarm. For example, you could create a composite alarm that goes
  2750  // into ALARM state only when more than one of the underlying metric alarms
  2751  // are in ALARM state.
  2752  //
  2753  // Currently, the only alarm actions that can be taken by composite alarms are
  2754  // notifying SNS topics.
  2755  //
  2756  // It is possible to create a loop or cycle of composite alarms, where composite
  2757  // alarm A depends on composite alarm B, and composite alarm B also depends
  2758  // on composite alarm A. In this scenario, you can't delete any composite alarm
  2759  // that is part of the cycle because there is always still a composite alarm
  2760  // that depends on that alarm that you want to delete.
  2761  //
  2762  // To get out of such a situation, you must break the cycle by changing the
  2763  // rule of one of the composite alarms in the cycle to remove a dependency that
  2764  // creates the cycle. The simplest change to make to break a cycle is to change
  2765  // the AlarmRule of one of the alarms to False.
  2766  //
  2767  // Additionally, the evaluation of composite alarms stops if CloudWatch detects
  2768  // a cycle in the evaluation path.
  2769  //
  2770  // When this operation creates an alarm, the alarm state is immediately set
  2771  // to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately.
  2772  // Any actions associated with the new state are then executed. For a composite
  2773  // alarm, this initial time after creation is the only time that the alarm can
  2774  // be in INSUFFICIENT_DATA state.
  2775  //
  2776  // When you update an existing alarm, its state is left unchanged, but the update
  2777  // completely overwrites the previous configuration of the alarm.
  2778  //
  2779  // If you are an IAM user, you must have iam:CreateServiceLinkedRole to create
  2780  // a composite alarm that has Systems Manager OpsItem actions.
  2781  //
  2782  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2783  // with awserr.Error's Code and Message methods to get detailed information about
  2784  // the error.
  2785  //
  2786  // See the AWS API reference guide for Amazon CloudWatch's
  2787  // API operation PutCompositeAlarm for usage and error information.
  2788  //
  2789  // Returned Error Codes:
  2790  //   * ErrCodeLimitExceededFault "LimitExceeded"
  2791  //   The quota for alarms for this customer has already been reached.
  2792  //
  2793  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutCompositeAlarm
  2794  func (c *CloudWatch) PutCompositeAlarm(input *PutCompositeAlarmInput) (*PutCompositeAlarmOutput, error) {
  2795  	req, out := c.PutCompositeAlarmRequest(input)
  2796  	return out, req.Send()
  2797  }
  2798  
  2799  // PutCompositeAlarmWithContext is the same as PutCompositeAlarm with the addition of
  2800  // the ability to pass a context and additional request options.
  2801  //
  2802  // See PutCompositeAlarm for details on how to use this API operation.
  2803  //
  2804  // The context must be non-nil and will be used for request cancellation. If
  2805  // the context is nil a panic will occur. In the future the SDK may create
  2806  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2807  // for more information on using Contexts.
  2808  func (c *CloudWatch) PutCompositeAlarmWithContext(ctx aws.Context, input *PutCompositeAlarmInput, opts ...request.Option) (*PutCompositeAlarmOutput, error) {
  2809  	req, out := c.PutCompositeAlarmRequest(input)
  2810  	req.SetContext(ctx)
  2811  	req.ApplyOptions(opts...)
  2812  	return out, req.Send()
  2813  }
  2814  
  2815  const opPutDashboard = "PutDashboard"
  2816  
  2817  // PutDashboardRequest generates a "aws/request.Request" representing the
  2818  // client's request for the PutDashboard operation. The "output" return
  2819  // value will be populated with the request's response once the request completes
  2820  // successfully.
  2821  //
  2822  // Use "Send" method on the returned Request to send the API call to the service.
  2823  // the "output" return value is not valid until after Send returns without error.
  2824  //
  2825  // See PutDashboard for more information on using the PutDashboard
  2826  // API call, and error handling.
  2827  //
  2828  // This method is useful when you want to inject custom logic or configuration
  2829  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2830  //
  2831  //
  2832  //    // Example sending a request using the PutDashboardRequest method.
  2833  //    req, resp := client.PutDashboardRequest(params)
  2834  //
  2835  //    err := req.Send()
  2836  //    if err == nil { // resp is now filled
  2837  //        fmt.Println(resp)
  2838  //    }
  2839  //
  2840  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutDashboard
  2841  func (c *CloudWatch) PutDashboardRequest(input *PutDashboardInput) (req *request.Request, output *PutDashboardOutput) {
  2842  	op := &request.Operation{
  2843  		Name:       opPutDashboard,
  2844  		HTTPMethod: "POST",
  2845  		HTTPPath:   "/",
  2846  	}
  2847  
  2848  	if input == nil {
  2849  		input = &PutDashboardInput{}
  2850  	}
  2851  
  2852  	output = &PutDashboardOutput{}
  2853  	req = c.newRequest(op, input, output)
  2854  	return
  2855  }
  2856  
  2857  // PutDashboard API operation for Amazon CloudWatch.
  2858  //
  2859  // Creates a dashboard if it does not already exist, or updates an existing
  2860  // dashboard. If you update a dashboard, the entire contents are replaced with
  2861  // what you specify here.
  2862  //
  2863  // All dashboards in your account are global, not region-specific.
  2864  //
  2865  // A simple way to create a dashboard using PutDashboard is to copy an existing
  2866  // dashboard. To copy an existing dashboard using the console, you can load
  2867  // the dashboard and then use the View/edit source command in the Actions menu
  2868  // to display the JSON block for that dashboard. Another way to copy a dashboard
  2869  // is to use GetDashboard, and then use the data returned within DashboardBody
  2870  // as the template for the new dashboard when you call PutDashboard.
  2871  //
  2872  // When you create a dashboard with PutDashboard, a good practice is to add
  2873  // a text widget at the top of the dashboard with a message that the dashboard
  2874  // was created by script and should not be changed in the console. This message
  2875  // could also point console users to the location of the DashboardBody script
  2876  // or the CloudFormation template used to create the dashboard.
  2877  //
  2878  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2879  // with awserr.Error's Code and Message methods to get detailed information about
  2880  // the error.
  2881  //
  2882  // See the AWS API reference guide for Amazon CloudWatch's
  2883  // API operation PutDashboard for usage and error information.
  2884  //
  2885  // Returned Error Codes:
  2886  //   * ErrCodeDashboardInvalidInputError "InvalidParameterInput"
  2887  //   Some part of the dashboard data is invalid.
  2888  //
  2889  //   * ErrCodeInternalServiceFault "InternalServiceError"
  2890  //   Request processing has failed due to some unknown error, exception, or failure.
  2891  //
  2892  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutDashboard
  2893  func (c *CloudWatch) PutDashboard(input *PutDashboardInput) (*PutDashboardOutput, error) {
  2894  	req, out := c.PutDashboardRequest(input)
  2895  	return out, req.Send()
  2896  }
  2897  
  2898  // PutDashboardWithContext is the same as PutDashboard with the addition of
  2899  // the ability to pass a context and additional request options.
  2900  //
  2901  // See PutDashboard for details on how to use this API operation.
  2902  //
  2903  // The context must be non-nil and will be used for request cancellation. If
  2904  // the context is nil a panic will occur. In the future the SDK may create
  2905  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2906  // for more information on using Contexts.
  2907  func (c *CloudWatch) PutDashboardWithContext(ctx aws.Context, input *PutDashboardInput, opts ...request.Option) (*PutDashboardOutput, error) {
  2908  	req, out := c.PutDashboardRequest(input)
  2909  	req.SetContext(ctx)
  2910  	req.ApplyOptions(opts...)
  2911  	return out, req.Send()
  2912  }
  2913  
  2914  const opPutInsightRule = "PutInsightRule"
  2915  
  2916  // PutInsightRuleRequest generates a "aws/request.Request" representing the
  2917  // client's request for the PutInsightRule operation. The "output" return
  2918  // value will be populated with the request's response once the request completes
  2919  // successfully.
  2920  //
  2921  // Use "Send" method on the returned Request to send the API call to the service.
  2922  // the "output" return value is not valid until after Send returns without error.
  2923  //
  2924  // See PutInsightRule for more information on using the PutInsightRule
  2925  // API call, and error handling.
  2926  //
  2927  // This method is useful when you want to inject custom logic or configuration
  2928  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2929  //
  2930  //
  2931  //    // Example sending a request using the PutInsightRuleRequest method.
  2932  //    req, resp := client.PutInsightRuleRequest(params)
  2933  //
  2934  //    err := req.Send()
  2935  //    if err == nil { // resp is now filled
  2936  //        fmt.Println(resp)
  2937  //    }
  2938  //
  2939  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutInsightRule
  2940  func (c *CloudWatch) PutInsightRuleRequest(input *PutInsightRuleInput) (req *request.Request, output *PutInsightRuleOutput) {
  2941  	op := &request.Operation{
  2942  		Name:       opPutInsightRule,
  2943  		HTTPMethod: "POST",
  2944  		HTTPPath:   "/",
  2945  	}
  2946  
  2947  	if input == nil {
  2948  		input = &PutInsightRuleInput{}
  2949  	}
  2950  
  2951  	output = &PutInsightRuleOutput{}
  2952  	req = c.newRequest(op, input, output)
  2953  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2954  	return
  2955  }
  2956  
  2957  // PutInsightRule API operation for Amazon CloudWatch.
  2958  //
  2959  // Creates a Contributor Insights rule. Rules evaluate log events in a CloudWatch
  2960  // Logs log group, enabling you to find contributor data for the log events
  2961  // in that log group. For more information, see Using Contributor Insights to
  2962  // Analyze High-Cardinality Data (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html).
  2963  //
  2964  // If you create a rule, delete it, and then re-create it with the same name,
  2965  // historical data from the first time the rule was created might not be available.
  2966  //
  2967  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2968  // with awserr.Error's Code and Message methods to get detailed information about
  2969  // the error.
  2970  //
  2971  // See the AWS API reference guide for Amazon CloudWatch's
  2972  // API operation PutInsightRule for usage and error information.
  2973  //
  2974  // Returned Error Codes:
  2975  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  2976  //   The value of an input parameter is bad or out-of-range.
  2977  //
  2978  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  2979  //   An input parameter that is required is missing.
  2980  //
  2981  //   * ErrCodeLimitExceededException "LimitExceededException"
  2982  //   The operation exceeded one or more limits.
  2983  //
  2984  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutInsightRule
  2985  func (c *CloudWatch) PutInsightRule(input *PutInsightRuleInput) (*PutInsightRuleOutput, error) {
  2986  	req, out := c.PutInsightRuleRequest(input)
  2987  	return out, req.Send()
  2988  }
  2989  
  2990  // PutInsightRuleWithContext is the same as PutInsightRule with the addition of
  2991  // the ability to pass a context and additional request options.
  2992  //
  2993  // See PutInsightRule for details on how to use this API operation.
  2994  //
  2995  // The context must be non-nil and will be used for request cancellation. If
  2996  // the context is nil a panic will occur. In the future the SDK may create
  2997  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2998  // for more information on using Contexts.
  2999  func (c *CloudWatch) PutInsightRuleWithContext(ctx aws.Context, input *PutInsightRuleInput, opts ...request.Option) (*PutInsightRuleOutput, error) {
  3000  	req, out := c.PutInsightRuleRequest(input)
  3001  	req.SetContext(ctx)
  3002  	req.ApplyOptions(opts...)
  3003  	return out, req.Send()
  3004  }
  3005  
  3006  const opPutMetricAlarm = "PutMetricAlarm"
  3007  
  3008  // PutMetricAlarmRequest generates a "aws/request.Request" representing the
  3009  // client's request for the PutMetricAlarm operation. The "output" return
  3010  // value will be populated with the request's response once the request completes
  3011  // successfully.
  3012  //
  3013  // Use "Send" method on the returned Request to send the API call to the service.
  3014  // the "output" return value is not valid until after Send returns without error.
  3015  //
  3016  // See PutMetricAlarm for more information on using the PutMetricAlarm
  3017  // API call, and error handling.
  3018  //
  3019  // This method is useful when you want to inject custom logic or configuration
  3020  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3021  //
  3022  //
  3023  //    // Example sending a request using the PutMetricAlarmRequest method.
  3024  //    req, resp := client.PutMetricAlarmRequest(params)
  3025  //
  3026  //    err := req.Send()
  3027  //    if err == nil { // resp is now filled
  3028  //        fmt.Println(resp)
  3029  //    }
  3030  //
  3031  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricAlarm
  3032  func (c *CloudWatch) PutMetricAlarmRequest(input *PutMetricAlarmInput) (req *request.Request, output *PutMetricAlarmOutput) {
  3033  	op := &request.Operation{
  3034  		Name:       opPutMetricAlarm,
  3035  		HTTPMethod: "POST",
  3036  		HTTPPath:   "/",
  3037  	}
  3038  
  3039  	if input == nil {
  3040  		input = &PutMetricAlarmInput{}
  3041  	}
  3042  
  3043  	output = &PutMetricAlarmOutput{}
  3044  	req = c.newRequest(op, input, output)
  3045  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3046  	return
  3047  }
  3048  
  3049  // PutMetricAlarm API operation for Amazon CloudWatch.
  3050  //
  3051  // Creates or updates an alarm and associates it with the specified metric,
  3052  // metric math expression, or anomaly detection model.
  3053  //
  3054  // Alarms based on anomaly detection models cannot have Auto Scaling actions.
  3055  //
  3056  // When this operation creates an alarm, the alarm state is immediately set
  3057  // to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately.
  3058  // Any actions associated with the new state are then executed.
  3059  //
  3060  // When you update an existing alarm, its state is left unchanged, but the update
  3061  // completely overwrites the previous configuration of the alarm.
  3062  //
  3063  // If you are an IAM user, you must have Amazon EC2 permissions for some alarm
  3064  // operations:
  3065  //
  3066  //    * The iam:CreateServiceLinkedRole for all alarms with EC2 actions
  3067  //
  3068  //    * The iam:CreateServiceLinkedRole to create an alarm with Systems Manager
  3069  //    OpsItem actions.
  3070  //
  3071  // The first time you create an alarm in the Management Console, the CLI, or
  3072  // by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked
  3073  // role for you. The service-linked roles are called AWSServiceRoleForCloudWatchEvents
  3074  // and AWSServiceRoleForCloudWatchAlarms_ActionSSM. For more information, see
  3075  // Amazon Web Services service-linked role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).
  3076  //
  3077  // Cross-account alarms
  3078  //
  3079  // You can set an alarm on metrics in the current account, or in another account.
  3080  // To create a cross-account alarm that watches a metric in a different account,
  3081  // you must have completed the following pre-requisites:
  3082  //
  3083  //    * The account where the metrics are located (the sharing account) must
  3084  //    already have a sharing role named CloudWatch-CrossAccountSharingRole.
  3085  //    If it does not already have this role, you must create it using the instructions
  3086  //    in Set up a sharing account in Cross-account cross-Region CloudWatch console
  3087  //    (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region).
  3088  //    The policy for that role must grant access to the ID of the account where
  3089  //    you are creating the alarm.
  3090  //
  3091  //    * The account where you are creating the alarm (the monitoring account)
  3092  //    must already have a service-linked role named AWSServiceRoleForCloudWatchCrossAccount
  3093  //    to allow CloudWatch to assume the sharing role in the sharing account.
  3094  //    If it does not, you must create it following the directions in Set up
  3095  //    a monitoring account in Cross-account cross-Region CloudWatch console
  3096  //    (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region).
  3097  //
  3098  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3099  // with awserr.Error's Code and Message methods to get detailed information about
  3100  // the error.
  3101  //
  3102  // See the AWS API reference guide for Amazon CloudWatch's
  3103  // API operation PutMetricAlarm for usage and error information.
  3104  //
  3105  // Returned Error Codes:
  3106  //   * ErrCodeLimitExceededFault "LimitExceeded"
  3107  //   The quota for alarms for this customer has already been reached.
  3108  //
  3109  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricAlarm
  3110  func (c *CloudWatch) PutMetricAlarm(input *PutMetricAlarmInput) (*PutMetricAlarmOutput, error) {
  3111  	req, out := c.PutMetricAlarmRequest(input)
  3112  	return out, req.Send()
  3113  }
  3114  
  3115  // PutMetricAlarmWithContext is the same as PutMetricAlarm with the addition of
  3116  // the ability to pass a context and additional request options.
  3117  //
  3118  // See PutMetricAlarm for details on how to use this API operation.
  3119  //
  3120  // The context must be non-nil and will be used for request cancellation. If
  3121  // the context is nil a panic will occur. In the future the SDK may create
  3122  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3123  // for more information on using Contexts.
  3124  func (c *CloudWatch) PutMetricAlarmWithContext(ctx aws.Context, input *PutMetricAlarmInput, opts ...request.Option) (*PutMetricAlarmOutput, error) {
  3125  	req, out := c.PutMetricAlarmRequest(input)
  3126  	req.SetContext(ctx)
  3127  	req.ApplyOptions(opts...)
  3128  	return out, req.Send()
  3129  }
  3130  
  3131  const opPutMetricData = "PutMetricData"
  3132  
  3133  // PutMetricDataRequest generates a "aws/request.Request" representing the
  3134  // client's request for the PutMetricData operation. The "output" return
  3135  // value will be populated with the request's response once the request completes
  3136  // successfully.
  3137  //
  3138  // Use "Send" method on the returned Request to send the API call to the service.
  3139  // the "output" return value is not valid until after Send returns without error.
  3140  //
  3141  // See PutMetricData for more information on using the PutMetricData
  3142  // API call, and error handling.
  3143  //
  3144  // This method is useful when you want to inject custom logic or configuration
  3145  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3146  //
  3147  //
  3148  //    // Example sending a request using the PutMetricDataRequest method.
  3149  //    req, resp := client.PutMetricDataRequest(params)
  3150  //
  3151  //    err := req.Send()
  3152  //    if err == nil { // resp is now filled
  3153  //        fmt.Println(resp)
  3154  //    }
  3155  //
  3156  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricData
  3157  func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *request.Request, output *PutMetricDataOutput) {
  3158  	op := &request.Operation{
  3159  		Name:       opPutMetricData,
  3160  		HTTPMethod: "POST",
  3161  		HTTPPath:   "/",
  3162  	}
  3163  
  3164  	if input == nil {
  3165  		input = &PutMetricDataInput{}
  3166  	}
  3167  
  3168  	output = &PutMetricDataOutput{}
  3169  	req = c.newRequest(op, input, output)
  3170  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3171  	return
  3172  }
  3173  
  3174  // PutMetricData API operation for Amazon CloudWatch.
  3175  //
  3176  // Publishes metric data points to Amazon CloudWatch. CloudWatch associates
  3177  // the data points with the specified metric. If the specified metric does not
  3178  // exist, CloudWatch creates the metric. When CloudWatch creates a metric, it
  3179  // can take up to fifteen minutes for the metric to appear in calls to ListMetrics
  3180  // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).
  3181  //
  3182  // You can publish either individual data points in the Value field, or arrays
  3183  // of values and the number of times each value occurred during the period by
  3184  // using the Values and Counts fields in the MetricDatum structure. Using the
  3185  // Values and Counts method enables you to publish up to 150 values per metric
  3186  // with one PutMetricData request, and supports retrieving percentile statistics
  3187  // on this data.
  3188  //
  3189  // Each PutMetricData request is limited to 40 KB in size for HTTP POST requests.
  3190  // You can send a payload compressed by gzip. Each request is also limited to
  3191  // no more than 20 different metrics.
  3192  //
  3193  // Although the Value parameter accepts numbers of type Double, CloudWatch rejects
  3194  // values that are either too small or too large. Values must be in the range
  3195  // of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity,
  3196  // -Infinity) are not supported.
  3197  //
  3198  // You can use up to 10 dimensions per metric to further clarify what data the
  3199  // metric collects. Each dimension consists of a Name and Value pair. For more
  3200  // information about specifying dimensions, see Publishing Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
  3201  // in the Amazon CloudWatch User Guide.
  3202  //
  3203  // You specify the time stamp to be associated with each data point. You can
  3204  // specify time stamps that are as much as two weeks before the current date,
  3205  // and as much as 2 hours after the current day and time.
  3206  //
  3207  // Data points with time stamps from 24 hours ago or longer can take at least
  3208  // 48 hours to become available for GetMetricData (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)
  3209  // or GetMetricStatistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)
  3210  // from the time they are submitted. Data points with time stamps between 3
  3211  // and 24 hours ago can take as much as 2 hours to become available for for
  3212  // GetMetricData (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)
  3213  // or GetMetricStatistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html).
  3214  //
  3215  // CloudWatch needs raw data points to calculate percentile statistics. If you
  3216  // publish data using a statistic set instead, you can only retrieve percentile
  3217  // statistics for this data if one of the following conditions is true:
  3218  //
  3219  //    * The SampleCount value of the statistic set is 1 and Min, Max, and Sum
  3220  //    are all equal.
  3221  //
  3222  //    * The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.
  3223  //
  3224  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3225  // with awserr.Error's Code and Message methods to get detailed information about
  3226  // the error.
  3227  //
  3228  // See the AWS API reference guide for Amazon CloudWatch's
  3229  // API operation PutMetricData for usage and error information.
  3230  //
  3231  // Returned Error Codes:
  3232  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  3233  //   The value of an input parameter is bad or out-of-range.
  3234  //
  3235  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  3236  //   An input parameter that is required is missing.
  3237  //
  3238  //   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination"
  3239  //   Parameters were used together that cannot be used together.
  3240  //
  3241  //   * ErrCodeInternalServiceFault "InternalServiceError"
  3242  //   Request processing has failed due to some unknown error, exception, or failure.
  3243  //
  3244  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricData
  3245  func (c *CloudWatch) PutMetricData(input *PutMetricDataInput) (*PutMetricDataOutput, error) {
  3246  	req, out := c.PutMetricDataRequest(input)
  3247  	return out, req.Send()
  3248  }
  3249  
  3250  // PutMetricDataWithContext is the same as PutMetricData with the addition of
  3251  // the ability to pass a context and additional request options.
  3252  //
  3253  // See PutMetricData for details on how to use this API operation.
  3254  //
  3255  // The context must be non-nil and will be used for request cancellation. If
  3256  // the context is nil a panic will occur. In the future the SDK may create
  3257  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3258  // for more information on using Contexts.
  3259  func (c *CloudWatch) PutMetricDataWithContext(ctx aws.Context, input *PutMetricDataInput, opts ...request.Option) (*PutMetricDataOutput, error) {
  3260  	req, out := c.PutMetricDataRequest(input)
  3261  	req.SetContext(ctx)
  3262  	req.ApplyOptions(opts...)
  3263  	return out, req.Send()
  3264  }
  3265  
  3266  const opPutMetricStream = "PutMetricStream"
  3267  
  3268  // PutMetricStreamRequest generates a "aws/request.Request" representing the
  3269  // client's request for the PutMetricStream operation. The "output" return
  3270  // value will be populated with the request's response once the request completes
  3271  // successfully.
  3272  //
  3273  // Use "Send" method on the returned Request to send the API call to the service.
  3274  // the "output" return value is not valid until after Send returns without error.
  3275  //
  3276  // See PutMetricStream for more information on using the PutMetricStream
  3277  // API call, and error handling.
  3278  //
  3279  // This method is useful when you want to inject custom logic or configuration
  3280  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3281  //
  3282  //
  3283  //    // Example sending a request using the PutMetricStreamRequest method.
  3284  //    req, resp := client.PutMetricStreamRequest(params)
  3285  //
  3286  //    err := req.Send()
  3287  //    if err == nil { // resp is now filled
  3288  //        fmt.Println(resp)
  3289  //    }
  3290  //
  3291  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricStream
  3292  func (c *CloudWatch) PutMetricStreamRequest(input *PutMetricStreamInput) (req *request.Request, output *PutMetricStreamOutput) {
  3293  	op := &request.Operation{
  3294  		Name:       opPutMetricStream,
  3295  		HTTPMethod: "POST",
  3296  		HTTPPath:   "/",
  3297  	}
  3298  
  3299  	if input == nil {
  3300  		input = &PutMetricStreamInput{}
  3301  	}
  3302  
  3303  	output = &PutMetricStreamOutput{}
  3304  	req = c.newRequest(op, input, output)
  3305  	return
  3306  }
  3307  
  3308  // PutMetricStream API operation for Amazon CloudWatch.
  3309  //
  3310  // Creates or updates a metric stream. Metric streams can automatically stream
  3311  // CloudWatch metrics to Amazon Web Services destinations including Amazon S3
  3312  // and to many third-party solutions.
  3313  //
  3314  // For more information, see Using Metric Streams (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Metric-Streams.html).
  3315  //
  3316  // To create a metric stream, you must be logged on to an account that has the
  3317  // iam:PassRole permission and either the CloudWatchFullAccess policy or the
  3318  // cloudwatch:PutMetricStream permission.
  3319  //
  3320  // When you create or update a metric stream, you choose one of the following:
  3321  //
  3322  //    * Stream metrics from all metric namespaces in the account.
  3323  //
  3324  //    * Stream metrics from all metric namespaces in the account, except for
  3325  //    the namespaces that you list in ExcludeFilters.
  3326  //
  3327  //    * Stream metrics from only the metric namespaces that you list in IncludeFilters.
  3328  //
  3329  // When you use PutMetricStream to create a new metric stream, the stream is
  3330  // created in the running state. If you use it to update an existing stream,
  3331  // the state of the stream is not changed.
  3332  //
  3333  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3334  // with awserr.Error's Code and Message methods to get detailed information about
  3335  // the error.
  3336  //
  3337  // See the AWS API reference guide for Amazon CloudWatch's
  3338  // API operation PutMetricStream for usage and error information.
  3339  //
  3340  // Returned Error Codes:
  3341  //   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
  3342  //   More than one process tried to modify a resource at the same time.
  3343  //
  3344  //   * ErrCodeInternalServiceFault "InternalServiceError"
  3345  //   Request processing has failed due to some unknown error, exception, or failure.
  3346  //
  3347  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  3348  //   The value of an input parameter is bad or out-of-range.
  3349  //
  3350  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  3351  //   An input parameter that is required is missing.
  3352  //
  3353  //   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombination"
  3354  //   Parameters were used together that cannot be used together.
  3355  //
  3356  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricStream
  3357  func (c *CloudWatch) PutMetricStream(input *PutMetricStreamInput) (*PutMetricStreamOutput, error) {
  3358  	req, out := c.PutMetricStreamRequest(input)
  3359  	return out, req.Send()
  3360  }
  3361  
  3362  // PutMetricStreamWithContext is the same as PutMetricStream with the addition of
  3363  // the ability to pass a context and additional request options.
  3364  //
  3365  // See PutMetricStream for details on how to use this API operation.
  3366  //
  3367  // The context must be non-nil and will be used for request cancellation. If
  3368  // the context is nil a panic will occur. In the future the SDK may create
  3369  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3370  // for more information on using Contexts.
  3371  func (c *CloudWatch) PutMetricStreamWithContext(ctx aws.Context, input *PutMetricStreamInput, opts ...request.Option) (*PutMetricStreamOutput, error) {
  3372  	req, out := c.PutMetricStreamRequest(input)
  3373  	req.SetContext(ctx)
  3374  	req.ApplyOptions(opts...)
  3375  	return out, req.Send()
  3376  }
  3377  
  3378  const opSetAlarmState = "SetAlarmState"
  3379  
  3380  // SetAlarmStateRequest generates a "aws/request.Request" representing the
  3381  // client's request for the SetAlarmState operation. The "output" return
  3382  // value will be populated with the request's response once the request completes
  3383  // successfully.
  3384  //
  3385  // Use "Send" method on the returned Request to send the API call to the service.
  3386  // the "output" return value is not valid until after Send returns without error.
  3387  //
  3388  // See SetAlarmState for more information on using the SetAlarmState
  3389  // API call, and error handling.
  3390  //
  3391  // This method is useful when you want to inject custom logic or configuration
  3392  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3393  //
  3394  //
  3395  //    // Example sending a request using the SetAlarmStateRequest method.
  3396  //    req, resp := client.SetAlarmStateRequest(params)
  3397  //
  3398  //    err := req.Send()
  3399  //    if err == nil { // resp is now filled
  3400  //        fmt.Println(resp)
  3401  //    }
  3402  //
  3403  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/SetAlarmState
  3404  func (c *CloudWatch) SetAlarmStateRequest(input *SetAlarmStateInput) (req *request.Request, output *SetAlarmStateOutput) {
  3405  	op := &request.Operation{
  3406  		Name:       opSetAlarmState,
  3407  		HTTPMethod: "POST",
  3408  		HTTPPath:   "/",
  3409  	}
  3410  
  3411  	if input == nil {
  3412  		input = &SetAlarmStateInput{}
  3413  	}
  3414  
  3415  	output = &SetAlarmStateOutput{}
  3416  	req = c.newRequest(op, input, output)
  3417  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3418  	return
  3419  }
  3420  
  3421  // SetAlarmState API operation for Amazon CloudWatch.
  3422  //
  3423  // Temporarily sets the state of an alarm for testing purposes. When the updated
  3424  // state differs from the previous value, the action configured for the appropriate
  3425  // state is invoked. For example, if your alarm is configured to send an Amazon
  3426  // SNS message when an alarm is triggered, temporarily changing the alarm state
  3427  // to ALARM sends an SNS message.
  3428  //
  3429  // Metric alarms returns to their actual state quickly, often within seconds.
  3430  // Because the metric alarm state change happens quickly, it is typically only
  3431  // visible in the alarm's History tab in the Amazon CloudWatch console or through
  3432  // DescribeAlarmHistory (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html).
  3433  //
  3434  // If you use SetAlarmState on a composite alarm, the composite alarm is not
  3435  // guaranteed to return to its actual state. It returns to its actual state
  3436  // only once any of its children alarms change state. It is also reevaluated
  3437  // if you update its configuration.
  3438  //
  3439  // If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling
  3440  // policies, you must include information in the StateReasonData parameter to
  3441  // enable the policy to take the correct action.
  3442  //
  3443  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3444  // with awserr.Error's Code and Message methods to get detailed information about
  3445  // the error.
  3446  //
  3447  // See the AWS API reference guide for Amazon CloudWatch's
  3448  // API operation SetAlarmState for usage and error information.
  3449  //
  3450  // Returned Error Codes:
  3451  //   * ErrCodeResourceNotFound "ResourceNotFound"
  3452  //   The named resource does not exist.
  3453  //
  3454  //   * ErrCodeInvalidFormatFault "InvalidFormat"
  3455  //   Data was not syntactically valid JSON.
  3456  //
  3457  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/SetAlarmState
  3458  func (c *CloudWatch) SetAlarmState(input *SetAlarmStateInput) (*SetAlarmStateOutput, error) {
  3459  	req, out := c.SetAlarmStateRequest(input)
  3460  	return out, req.Send()
  3461  }
  3462  
  3463  // SetAlarmStateWithContext is the same as SetAlarmState with the addition of
  3464  // the ability to pass a context and additional request options.
  3465  //
  3466  // See SetAlarmState for details on how to use this API operation.
  3467  //
  3468  // The context must be non-nil and will be used for request cancellation. If
  3469  // the context is nil a panic will occur. In the future the SDK may create
  3470  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3471  // for more information on using Contexts.
  3472  func (c *CloudWatch) SetAlarmStateWithContext(ctx aws.Context, input *SetAlarmStateInput, opts ...request.Option) (*SetAlarmStateOutput, error) {
  3473  	req, out := c.SetAlarmStateRequest(input)
  3474  	req.SetContext(ctx)
  3475  	req.ApplyOptions(opts...)
  3476  	return out, req.Send()
  3477  }
  3478  
  3479  const opStartMetricStreams = "StartMetricStreams"
  3480  
  3481  // StartMetricStreamsRequest generates a "aws/request.Request" representing the
  3482  // client's request for the StartMetricStreams operation. The "output" return
  3483  // value will be populated with the request's response once the request completes
  3484  // successfully.
  3485  //
  3486  // Use "Send" method on the returned Request to send the API call to the service.
  3487  // the "output" return value is not valid until after Send returns without error.
  3488  //
  3489  // See StartMetricStreams for more information on using the StartMetricStreams
  3490  // API call, and error handling.
  3491  //
  3492  // This method is useful when you want to inject custom logic or configuration
  3493  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3494  //
  3495  //
  3496  //    // Example sending a request using the StartMetricStreamsRequest method.
  3497  //    req, resp := client.StartMetricStreamsRequest(params)
  3498  //
  3499  //    err := req.Send()
  3500  //    if err == nil { // resp is now filled
  3501  //        fmt.Println(resp)
  3502  //    }
  3503  //
  3504  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StartMetricStreams
  3505  func (c *CloudWatch) StartMetricStreamsRequest(input *StartMetricStreamsInput) (req *request.Request, output *StartMetricStreamsOutput) {
  3506  	op := &request.Operation{
  3507  		Name:       opStartMetricStreams,
  3508  		HTTPMethod: "POST",
  3509  		HTTPPath:   "/",
  3510  	}
  3511  
  3512  	if input == nil {
  3513  		input = &StartMetricStreamsInput{}
  3514  	}
  3515  
  3516  	output = &StartMetricStreamsOutput{}
  3517  	req = c.newRequest(op, input, output)
  3518  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3519  	return
  3520  }
  3521  
  3522  // StartMetricStreams API operation for Amazon CloudWatch.
  3523  //
  3524  // Starts the streaming of metrics for one or more of your metric streams.
  3525  //
  3526  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3527  // with awserr.Error's Code and Message methods to get detailed information about
  3528  // the error.
  3529  //
  3530  // See the AWS API reference guide for Amazon CloudWatch's
  3531  // API operation StartMetricStreams for usage and error information.
  3532  //
  3533  // Returned Error Codes:
  3534  //   * ErrCodeInternalServiceFault "InternalServiceError"
  3535  //   Request processing has failed due to some unknown error, exception, or failure.
  3536  //
  3537  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  3538  //   The value of an input parameter is bad or out-of-range.
  3539  //
  3540  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  3541  //   An input parameter that is required is missing.
  3542  //
  3543  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StartMetricStreams
  3544  func (c *CloudWatch) StartMetricStreams(input *StartMetricStreamsInput) (*StartMetricStreamsOutput, error) {
  3545  	req, out := c.StartMetricStreamsRequest(input)
  3546  	return out, req.Send()
  3547  }
  3548  
  3549  // StartMetricStreamsWithContext is the same as StartMetricStreams with the addition of
  3550  // the ability to pass a context and additional request options.
  3551  //
  3552  // See StartMetricStreams for details on how to use this API operation.
  3553  //
  3554  // The context must be non-nil and will be used for request cancellation. If
  3555  // the context is nil a panic will occur. In the future the SDK may create
  3556  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3557  // for more information on using Contexts.
  3558  func (c *CloudWatch) StartMetricStreamsWithContext(ctx aws.Context, input *StartMetricStreamsInput, opts ...request.Option) (*StartMetricStreamsOutput, error) {
  3559  	req, out := c.StartMetricStreamsRequest(input)
  3560  	req.SetContext(ctx)
  3561  	req.ApplyOptions(opts...)
  3562  	return out, req.Send()
  3563  }
  3564  
  3565  const opStopMetricStreams = "StopMetricStreams"
  3566  
  3567  // StopMetricStreamsRequest generates a "aws/request.Request" representing the
  3568  // client's request for the StopMetricStreams operation. The "output" return
  3569  // value will be populated with the request's response once the request completes
  3570  // successfully.
  3571  //
  3572  // Use "Send" method on the returned Request to send the API call to the service.
  3573  // the "output" return value is not valid until after Send returns without error.
  3574  //
  3575  // See StopMetricStreams for more information on using the StopMetricStreams
  3576  // API call, and error handling.
  3577  //
  3578  // This method is useful when you want to inject custom logic or configuration
  3579  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3580  //
  3581  //
  3582  //    // Example sending a request using the StopMetricStreamsRequest method.
  3583  //    req, resp := client.StopMetricStreamsRequest(params)
  3584  //
  3585  //    err := req.Send()
  3586  //    if err == nil { // resp is now filled
  3587  //        fmt.Println(resp)
  3588  //    }
  3589  //
  3590  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StopMetricStreams
  3591  func (c *CloudWatch) StopMetricStreamsRequest(input *StopMetricStreamsInput) (req *request.Request, output *StopMetricStreamsOutput) {
  3592  	op := &request.Operation{
  3593  		Name:       opStopMetricStreams,
  3594  		HTTPMethod: "POST",
  3595  		HTTPPath:   "/",
  3596  	}
  3597  
  3598  	if input == nil {
  3599  		input = &StopMetricStreamsInput{}
  3600  	}
  3601  
  3602  	output = &StopMetricStreamsOutput{}
  3603  	req = c.newRequest(op, input, output)
  3604  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3605  	return
  3606  }
  3607  
  3608  // StopMetricStreams API operation for Amazon CloudWatch.
  3609  //
  3610  // Stops the streaming of metrics for one or more of your metric streams.
  3611  //
  3612  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3613  // with awserr.Error's Code and Message methods to get detailed information about
  3614  // the error.
  3615  //
  3616  // See the AWS API reference guide for Amazon CloudWatch's
  3617  // API operation StopMetricStreams for usage and error information.
  3618  //
  3619  // Returned Error Codes:
  3620  //   * ErrCodeInternalServiceFault "InternalServiceError"
  3621  //   Request processing has failed due to some unknown error, exception, or failure.
  3622  //
  3623  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  3624  //   The value of an input parameter is bad or out-of-range.
  3625  //
  3626  //   * ErrCodeMissingRequiredParameterException "MissingParameter"
  3627  //   An input parameter that is required is missing.
  3628  //
  3629  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StopMetricStreams
  3630  func (c *CloudWatch) StopMetricStreams(input *StopMetricStreamsInput) (*StopMetricStreamsOutput, error) {
  3631  	req, out := c.StopMetricStreamsRequest(input)
  3632  	return out, req.Send()
  3633  }
  3634  
  3635  // StopMetricStreamsWithContext is the same as StopMetricStreams with the addition of
  3636  // the ability to pass a context and additional request options.
  3637  //
  3638  // See StopMetricStreams for details on how to use this API operation.
  3639  //
  3640  // The context must be non-nil and will be used for request cancellation. If
  3641  // the context is nil a panic will occur. In the future the SDK may create
  3642  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3643  // for more information on using Contexts.
  3644  func (c *CloudWatch) StopMetricStreamsWithContext(ctx aws.Context, input *StopMetricStreamsInput, opts ...request.Option) (*StopMetricStreamsOutput, error) {
  3645  	req, out := c.StopMetricStreamsRequest(input)
  3646  	req.SetContext(ctx)
  3647  	req.ApplyOptions(opts...)
  3648  	return out, req.Send()
  3649  }
  3650  
  3651  const opTagResource = "TagResource"
  3652  
  3653  // TagResourceRequest generates a "aws/request.Request" representing the
  3654  // client's request for the TagResource operation. The "output" return
  3655  // value will be populated with the request's response once the request completes
  3656  // successfully.
  3657  //
  3658  // Use "Send" method on the returned Request to send the API call to the service.
  3659  // the "output" return value is not valid until after Send returns without error.
  3660  //
  3661  // See TagResource for more information on using the TagResource
  3662  // API call, and error handling.
  3663  //
  3664  // This method is useful when you want to inject custom logic or configuration
  3665  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3666  //
  3667  //
  3668  //    // Example sending a request using the TagResourceRequest method.
  3669  //    req, resp := client.TagResourceRequest(params)
  3670  //
  3671  //    err := req.Send()
  3672  //    if err == nil { // resp is now filled
  3673  //        fmt.Println(resp)
  3674  //    }
  3675  //
  3676  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/TagResource
  3677  func (c *CloudWatch) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  3678  	op := &request.Operation{
  3679  		Name:       opTagResource,
  3680  		HTTPMethod: "POST",
  3681  		HTTPPath:   "/",
  3682  	}
  3683  
  3684  	if input == nil {
  3685  		input = &TagResourceInput{}
  3686  	}
  3687  
  3688  	output = &TagResourceOutput{}
  3689  	req = c.newRequest(op, input, output)
  3690  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3691  	return
  3692  }
  3693  
  3694  // TagResource API operation for Amazon CloudWatch.
  3695  //
  3696  // Assigns one or more tags (key-value pairs) to the specified CloudWatch resource.
  3697  // Currently, the only CloudWatch resources that can be tagged are alarms and
  3698  // Contributor Insights rules.
  3699  //
  3700  // Tags can help you organize and categorize your resources. You can also use
  3701  // them to scope user permissions by granting a user permission to access or
  3702  // change only resources with certain tag values.
  3703  //
  3704  // Tags don't have any semantic meaning to Amazon Web Services and are interpreted
  3705  // strictly as strings of characters.
  3706  //
  3707  // You can use the TagResource action with an alarm that already has tags. If
  3708  // you specify a new tag key for the alarm, this tag is appended to the list
  3709  // of tags associated with the alarm. If you specify a tag key that is already
  3710  // associated with the alarm, the new tag value that you specify replaces the
  3711  // previous value for that tag.
  3712  //
  3713  // You can associate as many as 50 tags with a CloudWatch resource.
  3714  //
  3715  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3716  // with awserr.Error's Code and Message methods to get detailed information about
  3717  // the error.
  3718  //
  3719  // See the AWS API reference guide for Amazon CloudWatch's
  3720  // API operation TagResource for usage and error information.
  3721  //
  3722  // Returned Error Codes:
  3723  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  3724  //   The value of an input parameter is bad or out-of-range.
  3725  //
  3726  //   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
  3727  //   The named resource does not exist.
  3728  //
  3729  //   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
  3730  //   More than one process tried to modify a resource at the same time.
  3731  //
  3732  //   * ErrCodeInternalServiceFault "InternalServiceError"
  3733  //   Request processing has failed due to some unknown error, exception, or failure.
  3734  //
  3735  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/TagResource
  3736  func (c *CloudWatch) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  3737  	req, out := c.TagResourceRequest(input)
  3738  	return out, req.Send()
  3739  }
  3740  
  3741  // TagResourceWithContext is the same as TagResource with the addition of
  3742  // the ability to pass a context and additional request options.
  3743  //
  3744  // See TagResource for details on how to use this API operation.
  3745  //
  3746  // The context must be non-nil and will be used for request cancellation. If
  3747  // the context is nil a panic will occur. In the future the SDK may create
  3748  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3749  // for more information on using Contexts.
  3750  func (c *CloudWatch) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  3751  	req, out := c.TagResourceRequest(input)
  3752  	req.SetContext(ctx)
  3753  	req.ApplyOptions(opts...)
  3754  	return out, req.Send()
  3755  }
  3756  
  3757  const opUntagResource = "UntagResource"
  3758  
  3759  // UntagResourceRequest generates a "aws/request.Request" representing the
  3760  // client's request for the UntagResource operation. The "output" return
  3761  // value will be populated with the request's response once the request completes
  3762  // successfully.
  3763  //
  3764  // Use "Send" method on the returned Request to send the API call to the service.
  3765  // the "output" return value is not valid until after Send returns without error.
  3766  //
  3767  // See UntagResource for more information on using the UntagResource
  3768  // API call, and error handling.
  3769  //
  3770  // This method is useful when you want to inject custom logic or configuration
  3771  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3772  //
  3773  //
  3774  //    // Example sending a request using the UntagResourceRequest method.
  3775  //    req, resp := client.UntagResourceRequest(params)
  3776  //
  3777  //    err := req.Send()
  3778  //    if err == nil { // resp is now filled
  3779  //        fmt.Println(resp)
  3780  //    }
  3781  //
  3782  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/UntagResource
  3783  func (c *CloudWatch) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  3784  	op := &request.Operation{
  3785  		Name:       opUntagResource,
  3786  		HTTPMethod: "POST",
  3787  		HTTPPath:   "/",
  3788  	}
  3789  
  3790  	if input == nil {
  3791  		input = &UntagResourceInput{}
  3792  	}
  3793  
  3794  	output = &UntagResourceOutput{}
  3795  	req = c.newRequest(op, input, output)
  3796  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3797  	return
  3798  }
  3799  
  3800  // UntagResource API operation for Amazon CloudWatch.
  3801  //
  3802  // Removes one or more tags from the specified resource.
  3803  //
  3804  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3805  // with awserr.Error's Code and Message methods to get detailed information about
  3806  // the error.
  3807  //
  3808  // See the AWS API reference guide for Amazon CloudWatch's
  3809  // API operation UntagResource for usage and error information.
  3810  //
  3811  // Returned Error Codes:
  3812  //   * ErrCodeInvalidParameterValueException "InvalidParameterValue"
  3813  //   The value of an input parameter is bad or out-of-range.
  3814  //
  3815  //   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
  3816  //   The named resource does not exist.
  3817  //
  3818  //   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
  3819  //   More than one process tried to modify a resource at the same time.
  3820  //
  3821  //   * ErrCodeInternalServiceFault "InternalServiceError"
  3822  //   Request processing has failed due to some unknown error, exception, or failure.
  3823  //
  3824  // See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/UntagResource
  3825  func (c *CloudWatch) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  3826  	req, out := c.UntagResourceRequest(input)
  3827  	return out, req.Send()
  3828  }
  3829  
  3830  // UntagResourceWithContext is the same as UntagResource with the addition of
  3831  // the ability to pass a context and additional request options.
  3832  //
  3833  // See UntagResource for details on how to use this API operation.
  3834  //
  3835  // The context must be non-nil and will be used for request cancellation. If
  3836  // the context is nil a panic will occur. In the future the SDK may create
  3837  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3838  // for more information on using Contexts.
  3839  func (c *CloudWatch) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  3840  	req, out := c.UntagResourceRequest(input)
  3841  	req.SetContext(ctx)
  3842  	req.ApplyOptions(opts...)
  3843  	return out, req.Send()
  3844  }
  3845  
  3846  // Represents the history of a specific alarm.
  3847  type AlarmHistoryItem struct {
  3848  	_ struct{} `type:"structure"`
  3849  
  3850  	// The descriptive name for the alarm.
  3851  	AlarmName *string `min:"1" type:"string"`
  3852  
  3853  	// The type of alarm, either metric alarm or composite alarm.
  3854  	AlarmType *string `type:"string" enum:"AlarmType"`
  3855  
  3856  	// Data about the alarm, in JSON format.
  3857  	HistoryData *string `min:"1" type:"string"`
  3858  
  3859  	// The type of alarm history item.
  3860  	HistoryItemType *string `type:"string" enum:"HistoryItemType"`
  3861  
  3862  	// A summary of the alarm history, in text format.
  3863  	HistorySummary *string `min:"1" type:"string"`
  3864  
  3865  	// The time stamp for the alarm history item.
  3866  	Timestamp *time.Time `type:"timestamp"`
  3867  }
  3868  
  3869  // String returns the string representation.
  3870  //
  3871  // API parameter values that are decorated as "sensitive" in the API will not
  3872  // be included in the string output. The member name will be present, but the
  3873  // value will be replaced with "sensitive".
  3874  func (s AlarmHistoryItem) String() string {
  3875  	return awsutil.Prettify(s)
  3876  }
  3877  
  3878  // GoString returns the string representation.
  3879  //
  3880  // API parameter values that are decorated as "sensitive" in the API will not
  3881  // be included in the string output. The member name will be present, but the
  3882  // value will be replaced with "sensitive".
  3883  func (s AlarmHistoryItem) GoString() string {
  3884  	return s.String()
  3885  }
  3886  
  3887  // SetAlarmName sets the AlarmName field's value.
  3888  func (s *AlarmHistoryItem) SetAlarmName(v string) *AlarmHistoryItem {
  3889  	s.AlarmName = &v
  3890  	return s
  3891  }
  3892  
  3893  // SetAlarmType sets the AlarmType field's value.
  3894  func (s *AlarmHistoryItem) SetAlarmType(v string) *AlarmHistoryItem {
  3895  	s.AlarmType = &v
  3896  	return s
  3897  }
  3898  
  3899  // SetHistoryData sets the HistoryData field's value.
  3900  func (s *AlarmHistoryItem) SetHistoryData(v string) *AlarmHistoryItem {
  3901  	s.HistoryData = &v
  3902  	return s
  3903  }
  3904  
  3905  // SetHistoryItemType sets the HistoryItemType field's value.
  3906  func (s *AlarmHistoryItem) SetHistoryItemType(v string) *AlarmHistoryItem {
  3907  	s.HistoryItemType = &v
  3908  	return s
  3909  }
  3910  
  3911  // SetHistorySummary sets the HistorySummary field's value.
  3912  func (s *AlarmHistoryItem) SetHistorySummary(v string) *AlarmHistoryItem {
  3913  	s.HistorySummary = &v
  3914  	return s
  3915  }
  3916  
  3917  // SetTimestamp sets the Timestamp field's value.
  3918  func (s *AlarmHistoryItem) SetTimestamp(v time.Time) *AlarmHistoryItem {
  3919  	s.Timestamp = &v
  3920  	return s
  3921  }
  3922  
  3923  // An anomaly detection model associated with a particular CloudWatch metric
  3924  // and statistic. You can use the model to display a band of expected normal
  3925  // values when the metric is graphed.
  3926  type AnomalyDetector struct {
  3927  	_ struct{} `type:"structure"`
  3928  
  3929  	// The configuration specifies details about how the anomaly detection model
  3930  	// is to be trained, including time ranges to exclude from use for training
  3931  	// the model, and the time zone to use for the metric.
  3932  	Configuration *AnomalyDetectorConfiguration `type:"structure"`
  3933  
  3934  	// The metric dimensions associated with the anomaly detection model.
  3935  	Dimensions []*Dimension `type:"list"`
  3936  
  3937  	// The name of the metric associated with the anomaly detection model.
  3938  	MetricName *string `min:"1" type:"string"`
  3939  
  3940  	// The namespace of the metric associated with the anomaly detection model.
  3941  	Namespace *string `min:"1" type:"string"`
  3942  
  3943  	// The statistic associated with the anomaly detection model.
  3944  	Stat *string `type:"string"`
  3945  
  3946  	// The current status of the anomaly detector's training. The possible values
  3947  	// are TRAINED | PENDING_TRAINING | TRAINED_INSUFFICIENT_DATA
  3948  	StateValue *string `type:"string" enum:"AnomalyDetectorStateValue"`
  3949  }
  3950  
  3951  // String returns the string representation.
  3952  //
  3953  // API parameter values that are decorated as "sensitive" in the API will not
  3954  // be included in the string output. The member name will be present, but the
  3955  // value will be replaced with "sensitive".
  3956  func (s AnomalyDetector) String() string {
  3957  	return awsutil.Prettify(s)
  3958  }
  3959  
  3960  // GoString returns the string representation.
  3961  //
  3962  // API parameter values that are decorated as "sensitive" in the API will not
  3963  // be included in the string output. The member name will be present, but the
  3964  // value will be replaced with "sensitive".
  3965  func (s AnomalyDetector) GoString() string {
  3966  	return s.String()
  3967  }
  3968  
  3969  // SetConfiguration sets the Configuration field's value.
  3970  func (s *AnomalyDetector) SetConfiguration(v *AnomalyDetectorConfiguration) *AnomalyDetector {
  3971  	s.Configuration = v
  3972  	return s
  3973  }
  3974  
  3975  // SetDimensions sets the Dimensions field's value.
  3976  func (s *AnomalyDetector) SetDimensions(v []*Dimension) *AnomalyDetector {
  3977  	s.Dimensions = v
  3978  	return s
  3979  }
  3980  
  3981  // SetMetricName sets the MetricName field's value.
  3982  func (s *AnomalyDetector) SetMetricName(v string) *AnomalyDetector {
  3983  	s.MetricName = &v
  3984  	return s
  3985  }
  3986  
  3987  // SetNamespace sets the Namespace field's value.
  3988  func (s *AnomalyDetector) SetNamespace(v string) *AnomalyDetector {
  3989  	s.Namespace = &v
  3990  	return s
  3991  }
  3992  
  3993  // SetStat sets the Stat field's value.
  3994  func (s *AnomalyDetector) SetStat(v string) *AnomalyDetector {
  3995  	s.Stat = &v
  3996  	return s
  3997  }
  3998  
  3999  // SetStateValue sets the StateValue field's value.
  4000  func (s *AnomalyDetector) SetStateValue(v string) *AnomalyDetector {
  4001  	s.StateValue = &v
  4002  	return s
  4003  }
  4004  
  4005  // The configuration specifies details about how the anomaly detection model
  4006  // is to be trained, including time ranges to exclude from use for training
  4007  // the model and the time zone to use for the metric.
  4008  type AnomalyDetectorConfiguration struct {
  4009  	_ struct{} `type:"structure"`
  4010  
  4011  	// An array of time ranges to exclude from use when the anomaly detection model
  4012  	// is trained. Use this to make sure that events that could cause unusual values
  4013  	// for the metric, such as deployments, aren't used when CloudWatch creates
  4014  	// the model.
  4015  	ExcludedTimeRanges []*Range `type:"list"`
  4016  
  4017  	// The time zone to use for the metric. This is useful to enable the model to
  4018  	// automatically account for daylight savings time changes if the metric is
  4019  	// sensitive to such time changes.
  4020  	//
  4021  	// To specify a time zone, use the name of the time zone as specified in the
  4022  	// standard tz database. For more information, see tz database (https://en.wikipedia.org/wiki/Tz_database).
  4023  	MetricTimezone *string `type:"string"`
  4024  }
  4025  
  4026  // String returns the string representation.
  4027  //
  4028  // API parameter values that are decorated as "sensitive" in the API will not
  4029  // be included in the string output. The member name will be present, but the
  4030  // value will be replaced with "sensitive".
  4031  func (s AnomalyDetectorConfiguration) String() string {
  4032  	return awsutil.Prettify(s)
  4033  }
  4034  
  4035  // GoString returns the string representation.
  4036  //
  4037  // API parameter values that are decorated as "sensitive" in the API will not
  4038  // be included in the string output. The member name will be present, but the
  4039  // value will be replaced with "sensitive".
  4040  func (s AnomalyDetectorConfiguration) GoString() string {
  4041  	return s.String()
  4042  }
  4043  
  4044  // Validate inspects the fields of the type to determine if they are valid.
  4045  func (s *AnomalyDetectorConfiguration) Validate() error {
  4046  	invalidParams := request.ErrInvalidParams{Context: "AnomalyDetectorConfiguration"}
  4047  	if s.ExcludedTimeRanges != nil {
  4048  		for i, v := range s.ExcludedTimeRanges {
  4049  			if v == nil {
  4050  				continue
  4051  			}
  4052  			if err := v.Validate(); err != nil {
  4053  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludedTimeRanges", i), err.(request.ErrInvalidParams))
  4054  			}
  4055  		}
  4056  	}
  4057  
  4058  	if invalidParams.Len() > 0 {
  4059  		return invalidParams
  4060  	}
  4061  	return nil
  4062  }
  4063  
  4064  // SetExcludedTimeRanges sets the ExcludedTimeRanges field's value.
  4065  func (s *AnomalyDetectorConfiguration) SetExcludedTimeRanges(v []*Range) *AnomalyDetectorConfiguration {
  4066  	s.ExcludedTimeRanges = v
  4067  	return s
  4068  }
  4069  
  4070  // SetMetricTimezone sets the MetricTimezone field's value.
  4071  func (s *AnomalyDetectorConfiguration) SetMetricTimezone(v string) *AnomalyDetectorConfiguration {
  4072  	s.MetricTimezone = &v
  4073  	return s
  4074  }
  4075  
  4076  // The details about a composite alarm.
  4077  type CompositeAlarm struct {
  4078  	_ struct{} `type:"structure"`
  4079  
  4080  	// Indicates whether actions should be executed during any changes to the alarm
  4081  	// state.
  4082  	ActionsEnabled *bool `type:"boolean"`
  4083  
  4084  	// The actions to execute when this alarm transitions to the ALARM state from
  4085  	// any other state. Each action is specified as an Amazon Resource Name (ARN).
  4086  	AlarmActions []*string `type:"list"`
  4087  
  4088  	// The Amazon Resource Name (ARN) of the alarm.
  4089  	AlarmArn *string `min:"1" type:"string"`
  4090  
  4091  	// The time stamp of the last update to the alarm configuration.
  4092  	AlarmConfigurationUpdatedTimestamp *time.Time `type:"timestamp"`
  4093  
  4094  	// The description of the alarm.
  4095  	AlarmDescription *string `type:"string"`
  4096  
  4097  	// The name of the alarm.
  4098  	AlarmName *string `min:"1" type:"string"`
  4099  
  4100  	// The rule that this alarm uses to evaluate its alarm state.
  4101  	AlarmRule *string `min:"1" type:"string"`
  4102  
  4103  	// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA
  4104  	// state from any other state. Each action is specified as an Amazon Resource
  4105  	// Name (ARN).
  4106  	InsufficientDataActions []*string `type:"list"`
  4107  
  4108  	// The actions to execute when this alarm transitions to the OK state from any
  4109  	// other state. Each action is specified as an Amazon Resource Name (ARN).
  4110  	OKActions []*string `type:"list"`
  4111  
  4112  	// An explanation for the alarm state, in text format.
  4113  	StateReason *string `type:"string"`
  4114  
  4115  	// An explanation for the alarm state, in JSON format.
  4116  	StateReasonData *string `type:"string"`
  4117  
  4118  	// The time stamp of the last update to the alarm state.
  4119  	StateUpdatedTimestamp *time.Time `type:"timestamp"`
  4120  
  4121  	// The state value for the alarm.
  4122  	StateValue *string `type:"string" enum:"StateValue"`
  4123  }
  4124  
  4125  // String returns the string representation.
  4126  //
  4127  // API parameter values that are decorated as "sensitive" in the API will not
  4128  // be included in the string output. The member name will be present, but the
  4129  // value will be replaced with "sensitive".
  4130  func (s CompositeAlarm) String() string {
  4131  	return awsutil.Prettify(s)
  4132  }
  4133  
  4134  // GoString returns the string representation.
  4135  //
  4136  // API parameter values that are decorated as "sensitive" in the API will not
  4137  // be included in the string output. The member name will be present, but the
  4138  // value will be replaced with "sensitive".
  4139  func (s CompositeAlarm) GoString() string {
  4140  	return s.String()
  4141  }
  4142  
  4143  // SetActionsEnabled sets the ActionsEnabled field's value.
  4144  func (s *CompositeAlarm) SetActionsEnabled(v bool) *CompositeAlarm {
  4145  	s.ActionsEnabled = &v
  4146  	return s
  4147  }
  4148  
  4149  // SetAlarmActions sets the AlarmActions field's value.
  4150  func (s *CompositeAlarm) SetAlarmActions(v []*string) *CompositeAlarm {
  4151  	s.AlarmActions = v
  4152  	return s
  4153  }
  4154  
  4155  // SetAlarmArn sets the AlarmArn field's value.
  4156  func (s *CompositeAlarm) SetAlarmArn(v string) *CompositeAlarm {
  4157  	s.AlarmArn = &v
  4158  	return s
  4159  }
  4160  
  4161  // SetAlarmConfigurationUpdatedTimestamp sets the AlarmConfigurationUpdatedTimestamp field's value.
  4162  func (s *CompositeAlarm) SetAlarmConfigurationUpdatedTimestamp(v time.Time) *CompositeAlarm {
  4163  	s.AlarmConfigurationUpdatedTimestamp = &v
  4164  	return s
  4165  }
  4166  
  4167  // SetAlarmDescription sets the AlarmDescription field's value.
  4168  func (s *CompositeAlarm) SetAlarmDescription(v string) *CompositeAlarm {
  4169  	s.AlarmDescription = &v
  4170  	return s
  4171  }
  4172  
  4173  // SetAlarmName sets the AlarmName field's value.
  4174  func (s *CompositeAlarm) SetAlarmName(v string) *CompositeAlarm {
  4175  	s.AlarmName = &v
  4176  	return s
  4177  }
  4178  
  4179  // SetAlarmRule sets the AlarmRule field's value.
  4180  func (s *CompositeAlarm) SetAlarmRule(v string) *CompositeAlarm {
  4181  	s.AlarmRule = &v
  4182  	return s
  4183  }
  4184  
  4185  // SetInsufficientDataActions sets the InsufficientDataActions field's value.
  4186  func (s *CompositeAlarm) SetInsufficientDataActions(v []*string) *CompositeAlarm {
  4187  	s.InsufficientDataActions = v
  4188  	return s
  4189  }
  4190  
  4191  // SetOKActions sets the OKActions field's value.
  4192  func (s *CompositeAlarm) SetOKActions(v []*string) *CompositeAlarm {
  4193  	s.OKActions = v
  4194  	return s
  4195  }
  4196  
  4197  // SetStateReason sets the StateReason field's value.
  4198  func (s *CompositeAlarm) SetStateReason(v string) *CompositeAlarm {
  4199  	s.StateReason = &v
  4200  	return s
  4201  }
  4202  
  4203  // SetStateReasonData sets the StateReasonData field's value.
  4204  func (s *CompositeAlarm) SetStateReasonData(v string) *CompositeAlarm {
  4205  	s.StateReasonData = &v
  4206  	return s
  4207  }
  4208  
  4209  // SetStateUpdatedTimestamp sets the StateUpdatedTimestamp field's value.
  4210  func (s *CompositeAlarm) SetStateUpdatedTimestamp(v time.Time) *CompositeAlarm {
  4211  	s.StateUpdatedTimestamp = &v
  4212  	return s
  4213  }
  4214  
  4215  // SetStateValue sets the StateValue field's value.
  4216  func (s *CompositeAlarm) SetStateValue(v string) *CompositeAlarm {
  4217  	s.StateValue = &v
  4218  	return s
  4219  }
  4220  
  4221  // Represents a specific dashboard.
  4222  type DashboardEntry struct {
  4223  	_ struct{} `type:"structure"`
  4224  
  4225  	// The Amazon Resource Name (ARN) of the dashboard.
  4226  	DashboardArn *string `type:"string"`
  4227  
  4228  	// The name of the dashboard.
  4229  	DashboardName *string `type:"string"`
  4230  
  4231  	// The time stamp of when the dashboard was last modified, either by an API
  4232  	// call or through the console. This number is expressed as the number of milliseconds
  4233  	// since Jan 1, 1970 00:00:00 UTC.
  4234  	LastModified *time.Time `type:"timestamp"`
  4235  
  4236  	// The size of the dashboard, in bytes.
  4237  	Size *int64 `type:"long"`
  4238  }
  4239  
  4240  // String returns the string representation.
  4241  //
  4242  // API parameter values that are decorated as "sensitive" in the API will not
  4243  // be included in the string output. The member name will be present, but the
  4244  // value will be replaced with "sensitive".
  4245  func (s DashboardEntry) String() string {
  4246  	return awsutil.Prettify(s)
  4247  }
  4248  
  4249  // GoString returns the string representation.
  4250  //
  4251  // API parameter values that are decorated as "sensitive" in the API will not
  4252  // be included in the string output. The member name will be present, but the
  4253  // value will be replaced with "sensitive".
  4254  func (s DashboardEntry) GoString() string {
  4255  	return s.String()
  4256  }
  4257  
  4258  // SetDashboardArn sets the DashboardArn field's value.
  4259  func (s *DashboardEntry) SetDashboardArn(v string) *DashboardEntry {
  4260  	s.DashboardArn = &v
  4261  	return s
  4262  }
  4263  
  4264  // SetDashboardName sets the DashboardName field's value.
  4265  func (s *DashboardEntry) SetDashboardName(v string) *DashboardEntry {
  4266  	s.DashboardName = &v
  4267  	return s
  4268  }
  4269  
  4270  // SetLastModified sets the LastModified field's value.
  4271  func (s *DashboardEntry) SetLastModified(v time.Time) *DashboardEntry {
  4272  	s.LastModified = &v
  4273  	return s
  4274  }
  4275  
  4276  // SetSize sets the Size field's value.
  4277  func (s *DashboardEntry) SetSize(v int64) *DashboardEntry {
  4278  	s.Size = &v
  4279  	return s
  4280  }
  4281  
  4282  // An error or warning for the operation.
  4283  type DashboardValidationMessage struct {
  4284  	_ struct{} `type:"structure"`
  4285  
  4286  	// The data path related to the message.
  4287  	DataPath *string `type:"string"`
  4288  
  4289  	// A message describing the error or warning.
  4290  	Message *string `type:"string"`
  4291  }
  4292  
  4293  // String returns the string representation.
  4294  //
  4295  // API parameter values that are decorated as "sensitive" in the API will not
  4296  // be included in the string output. The member name will be present, but the
  4297  // value will be replaced with "sensitive".
  4298  func (s DashboardValidationMessage) String() string {
  4299  	return awsutil.Prettify(s)
  4300  }
  4301  
  4302  // GoString returns the string representation.
  4303  //
  4304  // API parameter values that are decorated as "sensitive" in the API will not
  4305  // be included in the string output. The member name will be present, but the
  4306  // value will be replaced with "sensitive".
  4307  func (s DashboardValidationMessage) GoString() string {
  4308  	return s.String()
  4309  }
  4310  
  4311  // SetDataPath sets the DataPath field's value.
  4312  func (s *DashboardValidationMessage) SetDataPath(v string) *DashboardValidationMessage {
  4313  	s.DataPath = &v
  4314  	return s
  4315  }
  4316  
  4317  // SetMessage sets the Message field's value.
  4318  func (s *DashboardValidationMessage) SetMessage(v string) *DashboardValidationMessage {
  4319  	s.Message = &v
  4320  	return s
  4321  }
  4322  
  4323  // Encapsulates the statistical data that CloudWatch computes from metric data.
  4324  type Datapoint struct {
  4325  	_ struct{} `type:"structure"`
  4326  
  4327  	// The average of the metric values that correspond to the data point.
  4328  	Average *float64 `type:"double"`
  4329  
  4330  	// The percentile statistic for the data point.
  4331  	ExtendedStatistics map[string]*float64 `type:"map"`
  4332  
  4333  	// The maximum metric value for the data point.
  4334  	Maximum *float64 `type:"double"`
  4335  
  4336  	// The minimum metric value for the data point.
  4337  	Minimum *float64 `type:"double"`
  4338  
  4339  	// The number of metric values that contributed to the aggregate value of this
  4340  	// data point.
  4341  	SampleCount *float64 `type:"double"`
  4342  
  4343  	// The sum of the metric values for the data point.
  4344  	Sum *float64 `type:"double"`
  4345  
  4346  	// The time stamp used for the data point.
  4347  	Timestamp *time.Time `type:"timestamp"`
  4348  
  4349  	// The standard unit for the data point.
  4350  	Unit *string `type:"string" enum:"StandardUnit"`
  4351  }
  4352  
  4353  // String returns the string representation.
  4354  //
  4355  // API parameter values that are decorated as "sensitive" in the API will not
  4356  // be included in the string output. The member name will be present, but the
  4357  // value will be replaced with "sensitive".
  4358  func (s Datapoint) String() string {
  4359  	return awsutil.Prettify(s)
  4360  }
  4361  
  4362  // GoString returns the string representation.
  4363  //
  4364  // API parameter values that are decorated as "sensitive" in the API will not
  4365  // be included in the string output. The member name will be present, but the
  4366  // value will be replaced with "sensitive".
  4367  func (s Datapoint) GoString() string {
  4368  	return s.String()
  4369  }
  4370  
  4371  // SetAverage sets the Average field's value.
  4372  func (s *Datapoint) SetAverage(v float64) *Datapoint {
  4373  	s.Average = &v
  4374  	return s
  4375  }
  4376  
  4377  // SetExtendedStatistics sets the ExtendedStatistics field's value.
  4378  func (s *Datapoint) SetExtendedStatistics(v map[string]*float64) *Datapoint {
  4379  	s.ExtendedStatistics = v
  4380  	return s
  4381  }
  4382  
  4383  // SetMaximum sets the Maximum field's value.
  4384  func (s *Datapoint) SetMaximum(v float64) *Datapoint {
  4385  	s.Maximum = &v
  4386  	return s
  4387  }
  4388  
  4389  // SetMinimum sets the Minimum field's value.
  4390  func (s *Datapoint) SetMinimum(v float64) *Datapoint {
  4391  	s.Minimum = &v
  4392  	return s
  4393  }
  4394  
  4395  // SetSampleCount sets the SampleCount field's value.
  4396  func (s *Datapoint) SetSampleCount(v float64) *Datapoint {
  4397  	s.SampleCount = &v
  4398  	return s
  4399  }
  4400  
  4401  // SetSum sets the Sum field's value.
  4402  func (s *Datapoint) SetSum(v float64) *Datapoint {
  4403  	s.Sum = &v
  4404  	return s
  4405  }
  4406  
  4407  // SetTimestamp sets the Timestamp field's value.
  4408  func (s *Datapoint) SetTimestamp(v time.Time) *Datapoint {
  4409  	s.Timestamp = &v
  4410  	return s
  4411  }
  4412  
  4413  // SetUnit sets the Unit field's value.
  4414  func (s *Datapoint) SetUnit(v string) *Datapoint {
  4415  	s.Unit = &v
  4416  	return s
  4417  }
  4418  
  4419  type DeleteAlarmsInput struct {
  4420  	_ struct{} `type:"structure"`
  4421  
  4422  	// The alarms to be deleted.
  4423  	//
  4424  	// AlarmNames is a required field
  4425  	AlarmNames []*string `type:"list" required:"true"`
  4426  }
  4427  
  4428  // String returns the string representation.
  4429  //
  4430  // API parameter values that are decorated as "sensitive" in the API will not
  4431  // be included in the string output. The member name will be present, but the
  4432  // value will be replaced with "sensitive".
  4433  func (s DeleteAlarmsInput) String() string {
  4434  	return awsutil.Prettify(s)
  4435  }
  4436  
  4437  // GoString returns the string representation.
  4438  //
  4439  // API parameter values that are decorated as "sensitive" in the API will not
  4440  // be included in the string output. The member name will be present, but the
  4441  // value will be replaced with "sensitive".
  4442  func (s DeleteAlarmsInput) GoString() string {
  4443  	return s.String()
  4444  }
  4445  
  4446  // Validate inspects the fields of the type to determine if they are valid.
  4447  func (s *DeleteAlarmsInput) Validate() error {
  4448  	invalidParams := request.ErrInvalidParams{Context: "DeleteAlarmsInput"}
  4449  	if s.AlarmNames == nil {
  4450  		invalidParams.Add(request.NewErrParamRequired("AlarmNames"))
  4451  	}
  4452  
  4453  	if invalidParams.Len() > 0 {
  4454  		return invalidParams
  4455  	}
  4456  	return nil
  4457  }
  4458  
  4459  // SetAlarmNames sets the AlarmNames field's value.
  4460  func (s *DeleteAlarmsInput) SetAlarmNames(v []*string) *DeleteAlarmsInput {
  4461  	s.AlarmNames = v
  4462  	return s
  4463  }
  4464  
  4465  type DeleteAlarmsOutput struct {
  4466  	_ struct{} `type:"structure"`
  4467  }
  4468  
  4469  // String returns the string representation.
  4470  //
  4471  // API parameter values that are decorated as "sensitive" in the API will not
  4472  // be included in the string output. The member name will be present, but the
  4473  // value will be replaced with "sensitive".
  4474  func (s DeleteAlarmsOutput) String() string {
  4475  	return awsutil.Prettify(s)
  4476  }
  4477  
  4478  // GoString returns the string representation.
  4479  //
  4480  // API parameter values that are decorated as "sensitive" in the API will not
  4481  // be included in the string output. The member name will be present, but the
  4482  // value will be replaced with "sensitive".
  4483  func (s DeleteAlarmsOutput) GoString() string {
  4484  	return s.String()
  4485  }
  4486  
  4487  type DeleteAnomalyDetectorInput struct {
  4488  	_ struct{} `type:"structure"`
  4489  
  4490  	// The metric dimensions associated with the anomaly detection model to delete.
  4491  	Dimensions []*Dimension `type:"list"`
  4492  
  4493  	// The metric name associated with the anomaly detection model to delete.
  4494  	//
  4495  	// MetricName is a required field
  4496  	MetricName *string `min:"1" type:"string" required:"true"`
  4497  
  4498  	// The namespace associated with the anomaly detection model to delete.
  4499  	//
  4500  	// Namespace is a required field
  4501  	Namespace *string `min:"1" type:"string" required:"true"`
  4502  
  4503  	// The statistic associated with the anomaly detection model to delete.
  4504  	//
  4505  	// Stat is a required field
  4506  	Stat *string `type:"string" required:"true"`
  4507  }
  4508  
  4509  // String returns the string representation.
  4510  //
  4511  // API parameter values that are decorated as "sensitive" in the API will not
  4512  // be included in the string output. The member name will be present, but the
  4513  // value will be replaced with "sensitive".
  4514  func (s DeleteAnomalyDetectorInput) String() string {
  4515  	return awsutil.Prettify(s)
  4516  }
  4517  
  4518  // GoString returns the string representation.
  4519  //
  4520  // API parameter values that are decorated as "sensitive" in the API will not
  4521  // be included in the string output. The member name will be present, but the
  4522  // value will be replaced with "sensitive".
  4523  func (s DeleteAnomalyDetectorInput) GoString() string {
  4524  	return s.String()
  4525  }
  4526  
  4527  // Validate inspects the fields of the type to determine if they are valid.
  4528  func (s *DeleteAnomalyDetectorInput) Validate() error {
  4529  	invalidParams := request.ErrInvalidParams{Context: "DeleteAnomalyDetectorInput"}
  4530  	if s.MetricName == nil {
  4531  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  4532  	}
  4533  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  4534  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  4535  	}
  4536  	if s.Namespace == nil {
  4537  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  4538  	}
  4539  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  4540  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  4541  	}
  4542  	if s.Stat == nil {
  4543  		invalidParams.Add(request.NewErrParamRequired("Stat"))
  4544  	}
  4545  	if s.Dimensions != nil {
  4546  		for i, v := range s.Dimensions {
  4547  			if v == nil {
  4548  				continue
  4549  			}
  4550  			if err := v.Validate(); err != nil {
  4551  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  4552  			}
  4553  		}
  4554  	}
  4555  
  4556  	if invalidParams.Len() > 0 {
  4557  		return invalidParams
  4558  	}
  4559  	return nil
  4560  }
  4561  
  4562  // SetDimensions sets the Dimensions field's value.
  4563  func (s *DeleteAnomalyDetectorInput) SetDimensions(v []*Dimension) *DeleteAnomalyDetectorInput {
  4564  	s.Dimensions = v
  4565  	return s
  4566  }
  4567  
  4568  // SetMetricName sets the MetricName field's value.
  4569  func (s *DeleteAnomalyDetectorInput) SetMetricName(v string) *DeleteAnomalyDetectorInput {
  4570  	s.MetricName = &v
  4571  	return s
  4572  }
  4573  
  4574  // SetNamespace sets the Namespace field's value.
  4575  func (s *DeleteAnomalyDetectorInput) SetNamespace(v string) *DeleteAnomalyDetectorInput {
  4576  	s.Namespace = &v
  4577  	return s
  4578  }
  4579  
  4580  // SetStat sets the Stat field's value.
  4581  func (s *DeleteAnomalyDetectorInput) SetStat(v string) *DeleteAnomalyDetectorInput {
  4582  	s.Stat = &v
  4583  	return s
  4584  }
  4585  
  4586  type DeleteAnomalyDetectorOutput struct {
  4587  	_ struct{} `type:"structure"`
  4588  }
  4589  
  4590  // String returns the string representation.
  4591  //
  4592  // API parameter values that are decorated as "sensitive" in the API will not
  4593  // be included in the string output. The member name will be present, but the
  4594  // value will be replaced with "sensitive".
  4595  func (s DeleteAnomalyDetectorOutput) String() string {
  4596  	return awsutil.Prettify(s)
  4597  }
  4598  
  4599  // GoString returns the string representation.
  4600  //
  4601  // API parameter values that are decorated as "sensitive" in the API will not
  4602  // be included in the string output. The member name will be present, but the
  4603  // value will be replaced with "sensitive".
  4604  func (s DeleteAnomalyDetectorOutput) GoString() string {
  4605  	return s.String()
  4606  }
  4607  
  4608  type DeleteDashboardsInput struct {
  4609  	_ struct{} `type:"structure"`
  4610  
  4611  	// The dashboards to be deleted. This parameter is required.
  4612  	//
  4613  	// DashboardNames is a required field
  4614  	DashboardNames []*string `type:"list" required:"true"`
  4615  }
  4616  
  4617  // String returns the string representation.
  4618  //
  4619  // API parameter values that are decorated as "sensitive" in the API will not
  4620  // be included in the string output. The member name will be present, but the
  4621  // value will be replaced with "sensitive".
  4622  func (s DeleteDashboardsInput) String() string {
  4623  	return awsutil.Prettify(s)
  4624  }
  4625  
  4626  // GoString returns the string representation.
  4627  //
  4628  // API parameter values that are decorated as "sensitive" in the API will not
  4629  // be included in the string output. The member name will be present, but the
  4630  // value will be replaced with "sensitive".
  4631  func (s DeleteDashboardsInput) GoString() string {
  4632  	return s.String()
  4633  }
  4634  
  4635  // Validate inspects the fields of the type to determine if they are valid.
  4636  func (s *DeleteDashboardsInput) Validate() error {
  4637  	invalidParams := request.ErrInvalidParams{Context: "DeleteDashboardsInput"}
  4638  	if s.DashboardNames == nil {
  4639  		invalidParams.Add(request.NewErrParamRequired("DashboardNames"))
  4640  	}
  4641  
  4642  	if invalidParams.Len() > 0 {
  4643  		return invalidParams
  4644  	}
  4645  	return nil
  4646  }
  4647  
  4648  // SetDashboardNames sets the DashboardNames field's value.
  4649  func (s *DeleteDashboardsInput) SetDashboardNames(v []*string) *DeleteDashboardsInput {
  4650  	s.DashboardNames = v
  4651  	return s
  4652  }
  4653  
  4654  type DeleteDashboardsOutput struct {
  4655  	_ struct{} `type:"structure"`
  4656  }
  4657  
  4658  // String returns the string representation.
  4659  //
  4660  // API parameter values that are decorated as "sensitive" in the API will not
  4661  // be included in the string output. The member name will be present, but the
  4662  // value will be replaced with "sensitive".
  4663  func (s DeleteDashboardsOutput) String() string {
  4664  	return awsutil.Prettify(s)
  4665  }
  4666  
  4667  // GoString returns the string representation.
  4668  //
  4669  // API parameter values that are decorated as "sensitive" in the API will not
  4670  // be included in the string output. The member name will be present, but the
  4671  // value will be replaced with "sensitive".
  4672  func (s DeleteDashboardsOutput) GoString() string {
  4673  	return s.String()
  4674  }
  4675  
  4676  type DeleteInsightRulesInput struct {
  4677  	_ struct{} `type:"structure"`
  4678  
  4679  	// An array of the rule names to delete. If you need to find out the names of
  4680  	// your rules, use DescribeInsightRules (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html).
  4681  	//
  4682  	// RuleNames is a required field
  4683  	RuleNames []*string `type:"list" required:"true"`
  4684  }
  4685  
  4686  // String returns the string representation.
  4687  //
  4688  // API parameter values that are decorated as "sensitive" in the API will not
  4689  // be included in the string output. The member name will be present, but the
  4690  // value will be replaced with "sensitive".
  4691  func (s DeleteInsightRulesInput) String() string {
  4692  	return awsutil.Prettify(s)
  4693  }
  4694  
  4695  // GoString returns the string representation.
  4696  //
  4697  // API parameter values that are decorated as "sensitive" in the API will not
  4698  // be included in the string output. The member name will be present, but the
  4699  // value will be replaced with "sensitive".
  4700  func (s DeleteInsightRulesInput) GoString() string {
  4701  	return s.String()
  4702  }
  4703  
  4704  // Validate inspects the fields of the type to determine if they are valid.
  4705  func (s *DeleteInsightRulesInput) Validate() error {
  4706  	invalidParams := request.ErrInvalidParams{Context: "DeleteInsightRulesInput"}
  4707  	if s.RuleNames == nil {
  4708  		invalidParams.Add(request.NewErrParamRequired("RuleNames"))
  4709  	}
  4710  
  4711  	if invalidParams.Len() > 0 {
  4712  		return invalidParams
  4713  	}
  4714  	return nil
  4715  }
  4716  
  4717  // SetRuleNames sets the RuleNames field's value.
  4718  func (s *DeleteInsightRulesInput) SetRuleNames(v []*string) *DeleteInsightRulesInput {
  4719  	s.RuleNames = v
  4720  	return s
  4721  }
  4722  
  4723  type DeleteInsightRulesOutput struct {
  4724  	_ struct{} `type:"structure"`
  4725  
  4726  	// An array listing the rules that could not be deleted. You cannot delete built-in
  4727  	// rules.
  4728  	Failures []*PartialFailure `type:"list"`
  4729  }
  4730  
  4731  // String returns the string representation.
  4732  //
  4733  // API parameter values that are decorated as "sensitive" in the API will not
  4734  // be included in the string output. The member name will be present, but the
  4735  // value will be replaced with "sensitive".
  4736  func (s DeleteInsightRulesOutput) String() string {
  4737  	return awsutil.Prettify(s)
  4738  }
  4739  
  4740  // GoString returns the string representation.
  4741  //
  4742  // API parameter values that are decorated as "sensitive" in the API will not
  4743  // be included in the string output. The member name will be present, but the
  4744  // value will be replaced with "sensitive".
  4745  func (s DeleteInsightRulesOutput) GoString() string {
  4746  	return s.String()
  4747  }
  4748  
  4749  // SetFailures sets the Failures field's value.
  4750  func (s *DeleteInsightRulesOutput) SetFailures(v []*PartialFailure) *DeleteInsightRulesOutput {
  4751  	s.Failures = v
  4752  	return s
  4753  }
  4754  
  4755  type DeleteMetricStreamInput struct {
  4756  	_ struct{} `type:"structure"`
  4757  
  4758  	// The name of the metric stream to delete.
  4759  	//
  4760  	// Name is a required field
  4761  	Name *string `min:"1" type:"string" required:"true"`
  4762  }
  4763  
  4764  // String returns the string representation.
  4765  //
  4766  // API parameter values that are decorated as "sensitive" in the API will not
  4767  // be included in the string output. The member name will be present, but the
  4768  // value will be replaced with "sensitive".
  4769  func (s DeleteMetricStreamInput) String() string {
  4770  	return awsutil.Prettify(s)
  4771  }
  4772  
  4773  // GoString returns the string representation.
  4774  //
  4775  // API parameter values that are decorated as "sensitive" in the API will not
  4776  // be included in the string output. The member name will be present, but the
  4777  // value will be replaced with "sensitive".
  4778  func (s DeleteMetricStreamInput) GoString() string {
  4779  	return s.String()
  4780  }
  4781  
  4782  // Validate inspects the fields of the type to determine if they are valid.
  4783  func (s *DeleteMetricStreamInput) Validate() error {
  4784  	invalidParams := request.ErrInvalidParams{Context: "DeleteMetricStreamInput"}
  4785  	if s.Name == nil {
  4786  		invalidParams.Add(request.NewErrParamRequired("Name"))
  4787  	}
  4788  	if s.Name != nil && len(*s.Name) < 1 {
  4789  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  4790  	}
  4791  
  4792  	if invalidParams.Len() > 0 {
  4793  		return invalidParams
  4794  	}
  4795  	return nil
  4796  }
  4797  
  4798  // SetName sets the Name field's value.
  4799  func (s *DeleteMetricStreamInput) SetName(v string) *DeleteMetricStreamInput {
  4800  	s.Name = &v
  4801  	return s
  4802  }
  4803  
  4804  type DeleteMetricStreamOutput struct {
  4805  	_ struct{} `type:"structure"`
  4806  }
  4807  
  4808  // String returns the string representation.
  4809  //
  4810  // API parameter values that are decorated as "sensitive" in the API will not
  4811  // be included in the string output. The member name will be present, but the
  4812  // value will be replaced with "sensitive".
  4813  func (s DeleteMetricStreamOutput) String() string {
  4814  	return awsutil.Prettify(s)
  4815  }
  4816  
  4817  // GoString returns the string representation.
  4818  //
  4819  // API parameter values that are decorated as "sensitive" in the API will not
  4820  // be included in the string output. The member name will be present, but the
  4821  // value will be replaced with "sensitive".
  4822  func (s DeleteMetricStreamOutput) GoString() string {
  4823  	return s.String()
  4824  }
  4825  
  4826  type DescribeAlarmHistoryInput struct {
  4827  	_ struct{} `type:"structure"`
  4828  
  4829  	// The name of the alarm.
  4830  	AlarmName *string `min:"1" type:"string"`
  4831  
  4832  	// Use this parameter to specify whether you want the operation to return metric
  4833  	// alarms or composite alarms. If you omit this parameter, only metric alarms
  4834  	// are returned.
  4835  	AlarmTypes []*string `type:"list"`
  4836  
  4837  	// The ending date to retrieve alarm history.
  4838  	EndDate *time.Time `type:"timestamp"`
  4839  
  4840  	// The type of alarm histories to retrieve.
  4841  	HistoryItemType *string `type:"string" enum:"HistoryItemType"`
  4842  
  4843  	// The maximum number of alarm history records to retrieve.
  4844  	MaxRecords *int64 `min:"1" type:"integer"`
  4845  
  4846  	// The token returned by a previous call to indicate that there is more data
  4847  	// available.
  4848  	NextToken *string `type:"string"`
  4849  
  4850  	// Specified whether to return the newest or oldest alarm history first. Specify
  4851  	// TimestampDescending to have the newest event history returned first, and
  4852  	// specify TimestampAscending to have the oldest history returned first.
  4853  	ScanBy *string `type:"string" enum:"ScanBy"`
  4854  
  4855  	// The starting date to retrieve alarm history.
  4856  	StartDate *time.Time `type:"timestamp"`
  4857  }
  4858  
  4859  // String returns the string representation.
  4860  //
  4861  // API parameter values that are decorated as "sensitive" in the API will not
  4862  // be included in the string output. The member name will be present, but the
  4863  // value will be replaced with "sensitive".
  4864  func (s DescribeAlarmHistoryInput) String() string {
  4865  	return awsutil.Prettify(s)
  4866  }
  4867  
  4868  // GoString returns the string representation.
  4869  //
  4870  // API parameter values that are decorated as "sensitive" in the API will not
  4871  // be included in the string output. The member name will be present, but the
  4872  // value will be replaced with "sensitive".
  4873  func (s DescribeAlarmHistoryInput) GoString() string {
  4874  	return s.String()
  4875  }
  4876  
  4877  // Validate inspects the fields of the type to determine if they are valid.
  4878  func (s *DescribeAlarmHistoryInput) Validate() error {
  4879  	invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmHistoryInput"}
  4880  	if s.AlarmName != nil && len(*s.AlarmName) < 1 {
  4881  		invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
  4882  	}
  4883  	if s.MaxRecords != nil && *s.MaxRecords < 1 {
  4884  		invalidParams.Add(request.NewErrParamMinValue("MaxRecords", 1))
  4885  	}
  4886  
  4887  	if invalidParams.Len() > 0 {
  4888  		return invalidParams
  4889  	}
  4890  	return nil
  4891  }
  4892  
  4893  // SetAlarmName sets the AlarmName field's value.
  4894  func (s *DescribeAlarmHistoryInput) SetAlarmName(v string) *DescribeAlarmHistoryInput {
  4895  	s.AlarmName = &v
  4896  	return s
  4897  }
  4898  
  4899  // SetAlarmTypes sets the AlarmTypes field's value.
  4900  func (s *DescribeAlarmHistoryInput) SetAlarmTypes(v []*string) *DescribeAlarmHistoryInput {
  4901  	s.AlarmTypes = v
  4902  	return s
  4903  }
  4904  
  4905  // SetEndDate sets the EndDate field's value.
  4906  func (s *DescribeAlarmHistoryInput) SetEndDate(v time.Time) *DescribeAlarmHistoryInput {
  4907  	s.EndDate = &v
  4908  	return s
  4909  }
  4910  
  4911  // SetHistoryItemType sets the HistoryItemType field's value.
  4912  func (s *DescribeAlarmHistoryInput) SetHistoryItemType(v string) *DescribeAlarmHistoryInput {
  4913  	s.HistoryItemType = &v
  4914  	return s
  4915  }
  4916  
  4917  // SetMaxRecords sets the MaxRecords field's value.
  4918  func (s *DescribeAlarmHistoryInput) SetMaxRecords(v int64) *DescribeAlarmHistoryInput {
  4919  	s.MaxRecords = &v
  4920  	return s
  4921  }
  4922  
  4923  // SetNextToken sets the NextToken field's value.
  4924  func (s *DescribeAlarmHistoryInput) SetNextToken(v string) *DescribeAlarmHistoryInput {
  4925  	s.NextToken = &v
  4926  	return s
  4927  }
  4928  
  4929  // SetScanBy sets the ScanBy field's value.
  4930  func (s *DescribeAlarmHistoryInput) SetScanBy(v string) *DescribeAlarmHistoryInput {
  4931  	s.ScanBy = &v
  4932  	return s
  4933  }
  4934  
  4935  // SetStartDate sets the StartDate field's value.
  4936  func (s *DescribeAlarmHistoryInput) SetStartDate(v time.Time) *DescribeAlarmHistoryInput {
  4937  	s.StartDate = &v
  4938  	return s
  4939  }
  4940  
  4941  type DescribeAlarmHistoryOutput struct {
  4942  	_ struct{} `type:"structure"`
  4943  
  4944  	// The alarm histories, in JSON format.
  4945  	AlarmHistoryItems []*AlarmHistoryItem `type:"list"`
  4946  
  4947  	// The token that marks the start of the next batch of returned results.
  4948  	NextToken *string `type:"string"`
  4949  }
  4950  
  4951  // String returns the string representation.
  4952  //
  4953  // API parameter values that are decorated as "sensitive" in the API will not
  4954  // be included in the string output. The member name will be present, but the
  4955  // value will be replaced with "sensitive".
  4956  func (s DescribeAlarmHistoryOutput) String() string {
  4957  	return awsutil.Prettify(s)
  4958  }
  4959  
  4960  // GoString returns the string representation.
  4961  //
  4962  // API parameter values that are decorated as "sensitive" in the API will not
  4963  // be included in the string output. The member name will be present, but the
  4964  // value will be replaced with "sensitive".
  4965  func (s DescribeAlarmHistoryOutput) GoString() string {
  4966  	return s.String()
  4967  }
  4968  
  4969  // SetAlarmHistoryItems sets the AlarmHistoryItems field's value.
  4970  func (s *DescribeAlarmHistoryOutput) SetAlarmHistoryItems(v []*AlarmHistoryItem) *DescribeAlarmHistoryOutput {
  4971  	s.AlarmHistoryItems = v
  4972  	return s
  4973  }
  4974  
  4975  // SetNextToken sets the NextToken field's value.
  4976  func (s *DescribeAlarmHistoryOutput) SetNextToken(v string) *DescribeAlarmHistoryOutput {
  4977  	s.NextToken = &v
  4978  	return s
  4979  }
  4980  
  4981  type DescribeAlarmsForMetricInput struct {
  4982  	_ struct{} `type:"structure"`
  4983  
  4984  	// The dimensions associated with the metric. If the metric has any associated
  4985  	// dimensions, you must specify them in order for the call to succeed.
  4986  	Dimensions []*Dimension `type:"list"`
  4987  
  4988  	// The percentile statistic for the metric. Specify a value between p0.0 and
  4989  	// p100.
  4990  	ExtendedStatistic *string `type:"string"`
  4991  
  4992  	// The name of the metric.
  4993  	//
  4994  	// MetricName is a required field
  4995  	MetricName *string `min:"1" type:"string" required:"true"`
  4996  
  4997  	// The namespace of the metric.
  4998  	//
  4999  	// Namespace is a required field
  5000  	Namespace *string `min:"1" type:"string" required:"true"`
  5001  
  5002  	// The period, in seconds, over which the statistic is applied.
  5003  	Period *int64 `min:"1" type:"integer"`
  5004  
  5005  	// The statistic for the metric, other than percentiles. For percentile statistics,
  5006  	// use ExtendedStatistics.
  5007  	Statistic *string `type:"string" enum:"Statistic"`
  5008  
  5009  	// The unit for the metric.
  5010  	Unit *string `type:"string" enum:"StandardUnit"`
  5011  }
  5012  
  5013  // String returns the string representation.
  5014  //
  5015  // API parameter values that are decorated as "sensitive" in the API will not
  5016  // be included in the string output. The member name will be present, but the
  5017  // value will be replaced with "sensitive".
  5018  func (s DescribeAlarmsForMetricInput) String() string {
  5019  	return awsutil.Prettify(s)
  5020  }
  5021  
  5022  // GoString returns the string representation.
  5023  //
  5024  // API parameter values that are decorated as "sensitive" in the API will not
  5025  // be included in the string output. The member name will be present, but the
  5026  // value will be replaced with "sensitive".
  5027  func (s DescribeAlarmsForMetricInput) GoString() string {
  5028  	return s.String()
  5029  }
  5030  
  5031  // Validate inspects the fields of the type to determine if they are valid.
  5032  func (s *DescribeAlarmsForMetricInput) Validate() error {
  5033  	invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmsForMetricInput"}
  5034  	if s.MetricName == nil {
  5035  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  5036  	}
  5037  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  5038  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  5039  	}
  5040  	if s.Namespace == nil {
  5041  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  5042  	}
  5043  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  5044  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  5045  	}
  5046  	if s.Period != nil && *s.Period < 1 {
  5047  		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
  5048  	}
  5049  	if s.Dimensions != nil {
  5050  		for i, v := range s.Dimensions {
  5051  			if v == nil {
  5052  				continue
  5053  			}
  5054  			if err := v.Validate(); err != nil {
  5055  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  5056  			}
  5057  		}
  5058  	}
  5059  
  5060  	if invalidParams.Len() > 0 {
  5061  		return invalidParams
  5062  	}
  5063  	return nil
  5064  }
  5065  
  5066  // SetDimensions sets the Dimensions field's value.
  5067  func (s *DescribeAlarmsForMetricInput) SetDimensions(v []*Dimension) *DescribeAlarmsForMetricInput {
  5068  	s.Dimensions = v
  5069  	return s
  5070  }
  5071  
  5072  // SetExtendedStatistic sets the ExtendedStatistic field's value.
  5073  func (s *DescribeAlarmsForMetricInput) SetExtendedStatistic(v string) *DescribeAlarmsForMetricInput {
  5074  	s.ExtendedStatistic = &v
  5075  	return s
  5076  }
  5077  
  5078  // SetMetricName sets the MetricName field's value.
  5079  func (s *DescribeAlarmsForMetricInput) SetMetricName(v string) *DescribeAlarmsForMetricInput {
  5080  	s.MetricName = &v
  5081  	return s
  5082  }
  5083  
  5084  // SetNamespace sets the Namespace field's value.
  5085  func (s *DescribeAlarmsForMetricInput) SetNamespace(v string) *DescribeAlarmsForMetricInput {
  5086  	s.Namespace = &v
  5087  	return s
  5088  }
  5089  
  5090  // SetPeriod sets the Period field's value.
  5091  func (s *DescribeAlarmsForMetricInput) SetPeriod(v int64) *DescribeAlarmsForMetricInput {
  5092  	s.Period = &v
  5093  	return s
  5094  }
  5095  
  5096  // SetStatistic sets the Statistic field's value.
  5097  func (s *DescribeAlarmsForMetricInput) SetStatistic(v string) *DescribeAlarmsForMetricInput {
  5098  	s.Statistic = &v
  5099  	return s
  5100  }
  5101  
  5102  // SetUnit sets the Unit field's value.
  5103  func (s *DescribeAlarmsForMetricInput) SetUnit(v string) *DescribeAlarmsForMetricInput {
  5104  	s.Unit = &v
  5105  	return s
  5106  }
  5107  
  5108  type DescribeAlarmsForMetricOutput struct {
  5109  	_ struct{} `type:"structure"`
  5110  
  5111  	// The information for each alarm with the specified metric.
  5112  	MetricAlarms []*MetricAlarm `type:"list"`
  5113  }
  5114  
  5115  // String 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 DescribeAlarmsForMetricOutput) String() string {
  5121  	return awsutil.Prettify(s)
  5122  }
  5123  
  5124  // GoString returns the string representation.
  5125  //
  5126  // API parameter values that are decorated as "sensitive" in the API will not
  5127  // be included in the string output. The member name will be present, but the
  5128  // value will be replaced with "sensitive".
  5129  func (s DescribeAlarmsForMetricOutput) GoString() string {
  5130  	return s.String()
  5131  }
  5132  
  5133  // SetMetricAlarms sets the MetricAlarms field's value.
  5134  func (s *DescribeAlarmsForMetricOutput) SetMetricAlarms(v []*MetricAlarm) *DescribeAlarmsForMetricOutput {
  5135  	s.MetricAlarms = v
  5136  	return s
  5137  }
  5138  
  5139  type DescribeAlarmsInput struct {
  5140  	_ struct{} `type:"structure"`
  5141  
  5142  	// Use this parameter to filter the results of the operation to only those alarms
  5143  	// that use a certain alarm action. For example, you could specify the ARN of
  5144  	// an SNS topic to find all alarms that send notifications to that topic.
  5145  	ActionPrefix *string `min:"1" type:"string"`
  5146  
  5147  	// An alarm name prefix. If you specify this parameter, you receive information
  5148  	// about all alarms that have names that start with this prefix.
  5149  	//
  5150  	// If this parameter is specified, you cannot specify AlarmNames.
  5151  	AlarmNamePrefix *string `min:"1" type:"string"`
  5152  
  5153  	// The names of the alarms to retrieve information about.
  5154  	AlarmNames []*string `type:"list"`
  5155  
  5156  	// Use this parameter to specify whether you want the operation to return metric
  5157  	// alarms or composite alarms. If you omit this parameter, only metric alarms
  5158  	// are returned.
  5159  	AlarmTypes []*string `type:"list"`
  5160  
  5161  	// If you use this parameter and specify the name of a composite alarm, the
  5162  	// operation returns information about the "children" alarms of the alarm you
  5163  	// specify. These are the metric alarms and composite alarms referenced in the
  5164  	// AlarmRule field of the composite alarm that you specify in ChildrenOfAlarmName.
  5165  	// Information about the composite alarm that you name in ChildrenOfAlarmName
  5166  	// is not returned.
  5167  	//
  5168  	// If you specify ChildrenOfAlarmName, you cannot specify any other parameters
  5169  	// in the request except for MaxRecords and NextToken. If you do so, you receive
  5170  	// a validation error.
  5171  	//
  5172  	// Only the Alarm Name, ARN, StateValue (OK/ALARM/INSUFFICIENT_DATA), and StateUpdatedTimestamp
  5173  	// information are returned by this operation when you use this parameter. To
  5174  	// get complete information about these alarms, perform another DescribeAlarms
  5175  	// operation and specify the parent alarm names in the AlarmNames parameter.
  5176  	ChildrenOfAlarmName *string `min:"1" type:"string"`
  5177  
  5178  	// The maximum number of alarm descriptions to retrieve.
  5179  	MaxRecords *int64 `min:"1" type:"integer"`
  5180  
  5181  	// The token returned by a previous call to indicate that there is more data
  5182  	// available.
  5183  	NextToken *string `type:"string"`
  5184  
  5185  	// If you use this parameter and specify the name of a metric or composite alarm,
  5186  	// the operation returns information about the "parent" alarms of the alarm
  5187  	// you specify. These are the composite alarms that have AlarmRule parameters
  5188  	// that reference the alarm named in ParentsOfAlarmName. Information about the
  5189  	// alarm that you specify in ParentsOfAlarmName is not returned.
  5190  	//
  5191  	// If you specify ParentsOfAlarmName, you cannot specify any other parameters
  5192  	// in the request except for MaxRecords and NextToken. If you do so, you receive
  5193  	// a validation error.
  5194  	//
  5195  	// Only the Alarm Name and ARN are returned by this operation when you use this
  5196  	// parameter. To get complete information about these alarms, perform another
  5197  	// DescribeAlarms operation and specify the parent alarm names in the AlarmNames
  5198  	// parameter.
  5199  	ParentsOfAlarmName *string `min:"1" type:"string"`
  5200  
  5201  	// Specify this parameter to receive information only about alarms that are
  5202  	// currently in the state that you specify.
  5203  	StateValue *string `type:"string" enum:"StateValue"`
  5204  }
  5205  
  5206  // String returns the string representation.
  5207  //
  5208  // API parameter values that are decorated as "sensitive" in the API will not
  5209  // be included in the string output. The member name will be present, but the
  5210  // value will be replaced with "sensitive".
  5211  func (s DescribeAlarmsInput) String() string {
  5212  	return awsutil.Prettify(s)
  5213  }
  5214  
  5215  // GoString returns the string representation.
  5216  //
  5217  // API parameter values that are decorated as "sensitive" in the API will not
  5218  // be included in the string output. The member name will be present, but the
  5219  // value will be replaced with "sensitive".
  5220  func (s DescribeAlarmsInput) GoString() string {
  5221  	return s.String()
  5222  }
  5223  
  5224  // Validate inspects the fields of the type to determine if they are valid.
  5225  func (s *DescribeAlarmsInput) Validate() error {
  5226  	invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmsInput"}
  5227  	if s.ActionPrefix != nil && len(*s.ActionPrefix) < 1 {
  5228  		invalidParams.Add(request.NewErrParamMinLen("ActionPrefix", 1))
  5229  	}
  5230  	if s.AlarmNamePrefix != nil && len(*s.AlarmNamePrefix) < 1 {
  5231  		invalidParams.Add(request.NewErrParamMinLen("AlarmNamePrefix", 1))
  5232  	}
  5233  	if s.ChildrenOfAlarmName != nil && len(*s.ChildrenOfAlarmName) < 1 {
  5234  		invalidParams.Add(request.NewErrParamMinLen("ChildrenOfAlarmName", 1))
  5235  	}
  5236  	if s.MaxRecords != nil && *s.MaxRecords < 1 {
  5237  		invalidParams.Add(request.NewErrParamMinValue("MaxRecords", 1))
  5238  	}
  5239  	if s.ParentsOfAlarmName != nil && len(*s.ParentsOfAlarmName) < 1 {
  5240  		invalidParams.Add(request.NewErrParamMinLen("ParentsOfAlarmName", 1))
  5241  	}
  5242  
  5243  	if invalidParams.Len() > 0 {
  5244  		return invalidParams
  5245  	}
  5246  	return nil
  5247  }
  5248  
  5249  // SetActionPrefix sets the ActionPrefix field's value.
  5250  func (s *DescribeAlarmsInput) SetActionPrefix(v string) *DescribeAlarmsInput {
  5251  	s.ActionPrefix = &v
  5252  	return s
  5253  }
  5254  
  5255  // SetAlarmNamePrefix sets the AlarmNamePrefix field's value.
  5256  func (s *DescribeAlarmsInput) SetAlarmNamePrefix(v string) *DescribeAlarmsInput {
  5257  	s.AlarmNamePrefix = &v
  5258  	return s
  5259  }
  5260  
  5261  // SetAlarmNames sets the AlarmNames field's value.
  5262  func (s *DescribeAlarmsInput) SetAlarmNames(v []*string) *DescribeAlarmsInput {
  5263  	s.AlarmNames = v
  5264  	return s
  5265  }
  5266  
  5267  // SetAlarmTypes sets the AlarmTypes field's value.
  5268  func (s *DescribeAlarmsInput) SetAlarmTypes(v []*string) *DescribeAlarmsInput {
  5269  	s.AlarmTypes = v
  5270  	return s
  5271  }
  5272  
  5273  // SetChildrenOfAlarmName sets the ChildrenOfAlarmName field's value.
  5274  func (s *DescribeAlarmsInput) SetChildrenOfAlarmName(v string) *DescribeAlarmsInput {
  5275  	s.ChildrenOfAlarmName = &v
  5276  	return s
  5277  }
  5278  
  5279  // SetMaxRecords sets the MaxRecords field's value.
  5280  func (s *DescribeAlarmsInput) SetMaxRecords(v int64) *DescribeAlarmsInput {
  5281  	s.MaxRecords = &v
  5282  	return s
  5283  }
  5284  
  5285  // SetNextToken sets the NextToken field's value.
  5286  func (s *DescribeAlarmsInput) SetNextToken(v string) *DescribeAlarmsInput {
  5287  	s.NextToken = &v
  5288  	return s
  5289  }
  5290  
  5291  // SetParentsOfAlarmName sets the ParentsOfAlarmName field's value.
  5292  func (s *DescribeAlarmsInput) SetParentsOfAlarmName(v string) *DescribeAlarmsInput {
  5293  	s.ParentsOfAlarmName = &v
  5294  	return s
  5295  }
  5296  
  5297  // SetStateValue sets the StateValue field's value.
  5298  func (s *DescribeAlarmsInput) SetStateValue(v string) *DescribeAlarmsInput {
  5299  	s.StateValue = &v
  5300  	return s
  5301  }
  5302  
  5303  type DescribeAlarmsOutput struct {
  5304  	_ struct{} `type:"structure"`
  5305  
  5306  	// The information about any composite alarms returned by the operation.
  5307  	CompositeAlarms []*CompositeAlarm `type:"list"`
  5308  
  5309  	// The information about any metric alarms returned by the operation.
  5310  	MetricAlarms []*MetricAlarm `type:"list"`
  5311  
  5312  	// The token that marks the start of the next batch of returned results.
  5313  	NextToken *string `type:"string"`
  5314  }
  5315  
  5316  // String returns the string representation.
  5317  //
  5318  // API parameter values that are decorated as "sensitive" in the API will not
  5319  // be included in the string output. The member name will be present, but the
  5320  // value will be replaced with "sensitive".
  5321  func (s DescribeAlarmsOutput) String() string {
  5322  	return awsutil.Prettify(s)
  5323  }
  5324  
  5325  // GoString returns the string representation.
  5326  //
  5327  // API parameter values that are decorated as "sensitive" in the API will not
  5328  // be included in the string output. The member name will be present, but the
  5329  // value will be replaced with "sensitive".
  5330  func (s DescribeAlarmsOutput) GoString() string {
  5331  	return s.String()
  5332  }
  5333  
  5334  // SetCompositeAlarms sets the CompositeAlarms field's value.
  5335  func (s *DescribeAlarmsOutput) SetCompositeAlarms(v []*CompositeAlarm) *DescribeAlarmsOutput {
  5336  	s.CompositeAlarms = v
  5337  	return s
  5338  }
  5339  
  5340  // SetMetricAlarms sets the MetricAlarms field's value.
  5341  func (s *DescribeAlarmsOutput) SetMetricAlarms(v []*MetricAlarm) *DescribeAlarmsOutput {
  5342  	s.MetricAlarms = v
  5343  	return s
  5344  }
  5345  
  5346  // SetNextToken sets the NextToken field's value.
  5347  func (s *DescribeAlarmsOutput) SetNextToken(v string) *DescribeAlarmsOutput {
  5348  	s.NextToken = &v
  5349  	return s
  5350  }
  5351  
  5352  type DescribeAnomalyDetectorsInput struct {
  5353  	_ struct{} `type:"structure"`
  5354  
  5355  	// Limits the results to only the anomaly detection models that are associated
  5356  	// with the specified metric dimensions. If there are multiple metrics that
  5357  	// have these dimensions and have anomaly detection models associated, they're
  5358  	// all returned.
  5359  	Dimensions []*Dimension `type:"list"`
  5360  
  5361  	// The maximum number of results to return in one operation. The maximum value
  5362  	// that you can specify is 100.
  5363  	//
  5364  	// To retrieve the remaining results, make another call with the returned NextToken
  5365  	// value.
  5366  	MaxResults *int64 `min:"1" type:"integer"`
  5367  
  5368  	// Limits the results to only the anomaly detection models that are associated
  5369  	// with the specified metric name. If there are multiple metrics with this name
  5370  	// in different namespaces that have anomaly detection models, they're all returned.
  5371  	MetricName *string `min:"1" type:"string"`
  5372  
  5373  	// Limits the results to only the anomaly detection models that are associated
  5374  	// with the specified namespace.
  5375  	Namespace *string `min:"1" type:"string"`
  5376  
  5377  	// Use the token returned by the previous operation to request the next page
  5378  	// of results.
  5379  	NextToken *string `type:"string"`
  5380  }
  5381  
  5382  // String returns the string representation.
  5383  //
  5384  // API parameter values that are decorated as "sensitive" in the API will not
  5385  // be included in the string output. The member name will be present, but the
  5386  // value will be replaced with "sensitive".
  5387  func (s DescribeAnomalyDetectorsInput) String() string {
  5388  	return awsutil.Prettify(s)
  5389  }
  5390  
  5391  // GoString returns the string representation.
  5392  //
  5393  // API parameter values that are decorated as "sensitive" in the API will not
  5394  // be included in the string output. The member name will be present, but the
  5395  // value will be replaced with "sensitive".
  5396  func (s DescribeAnomalyDetectorsInput) GoString() string {
  5397  	return s.String()
  5398  }
  5399  
  5400  // Validate inspects the fields of the type to determine if they are valid.
  5401  func (s *DescribeAnomalyDetectorsInput) Validate() error {
  5402  	invalidParams := request.ErrInvalidParams{Context: "DescribeAnomalyDetectorsInput"}
  5403  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5404  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5405  	}
  5406  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  5407  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  5408  	}
  5409  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  5410  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  5411  	}
  5412  	if s.Dimensions != nil {
  5413  		for i, v := range s.Dimensions {
  5414  			if v == nil {
  5415  				continue
  5416  			}
  5417  			if err := v.Validate(); err != nil {
  5418  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  5419  			}
  5420  		}
  5421  	}
  5422  
  5423  	if invalidParams.Len() > 0 {
  5424  		return invalidParams
  5425  	}
  5426  	return nil
  5427  }
  5428  
  5429  // SetDimensions sets the Dimensions field's value.
  5430  func (s *DescribeAnomalyDetectorsInput) SetDimensions(v []*Dimension) *DescribeAnomalyDetectorsInput {
  5431  	s.Dimensions = v
  5432  	return s
  5433  }
  5434  
  5435  // SetMaxResults sets the MaxResults field's value.
  5436  func (s *DescribeAnomalyDetectorsInput) SetMaxResults(v int64) *DescribeAnomalyDetectorsInput {
  5437  	s.MaxResults = &v
  5438  	return s
  5439  }
  5440  
  5441  // SetMetricName sets the MetricName field's value.
  5442  func (s *DescribeAnomalyDetectorsInput) SetMetricName(v string) *DescribeAnomalyDetectorsInput {
  5443  	s.MetricName = &v
  5444  	return s
  5445  }
  5446  
  5447  // SetNamespace sets the Namespace field's value.
  5448  func (s *DescribeAnomalyDetectorsInput) SetNamespace(v string) *DescribeAnomalyDetectorsInput {
  5449  	s.Namespace = &v
  5450  	return s
  5451  }
  5452  
  5453  // SetNextToken sets the NextToken field's value.
  5454  func (s *DescribeAnomalyDetectorsInput) SetNextToken(v string) *DescribeAnomalyDetectorsInput {
  5455  	s.NextToken = &v
  5456  	return s
  5457  }
  5458  
  5459  type DescribeAnomalyDetectorsOutput struct {
  5460  	_ struct{} `type:"structure"`
  5461  
  5462  	// The list of anomaly detection models returned by the operation.
  5463  	AnomalyDetectors []*AnomalyDetector `type:"list"`
  5464  
  5465  	// A token that you can use in a subsequent operation to retrieve the next set
  5466  	// of results.
  5467  	NextToken *string `type:"string"`
  5468  }
  5469  
  5470  // String returns the string representation.
  5471  //
  5472  // API parameter values that are decorated as "sensitive" in the API will not
  5473  // be included in the string output. The member name will be present, but the
  5474  // value will be replaced with "sensitive".
  5475  func (s DescribeAnomalyDetectorsOutput) String() string {
  5476  	return awsutil.Prettify(s)
  5477  }
  5478  
  5479  // GoString returns the string representation.
  5480  //
  5481  // API parameter values that are decorated as "sensitive" in the API will not
  5482  // be included in the string output. The member name will be present, but the
  5483  // value will be replaced with "sensitive".
  5484  func (s DescribeAnomalyDetectorsOutput) GoString() string {
  5485  	return s.String()
  5486  }
  5487  
  5488  // SetAnomalyDetectors sets the AnomalyDetectors field's value.
  5489  func (s *DescribeAnomalyDetectorsOutput) SetAnomalyDetectors(v []*AnomalyDetector) *DescribeAnomalyDetectorsOutput {
  5490  	s.AnomalyDetectors = v
  5491  	return s
  5492  }
  5493  
  5494  // SetNextToken sets the NextToken field's value.
  5495  func (s *DescribeAnomalyDetectorsOutput) SetNextToken(v string) *DescribeAnomalyDetectorsOutput {
  5496  	s.NextToken = &v
  5497  	return s
  5498  }
  5499  
  5500  type DescribeInsightRulesInput struct {
  5501  	_ struct{} `type:"structure"`
  5502  
  5503  	// The maximum number of results to return in one operation. If you omit this
  5504  	// parameter, the default of 500 is used.
  5505  	MaxResults *int64 `min:"1" type:"integer"`
  5506  
  5507  	// Include this value, if it was returned by the previous operation, to get
  5508  	// the next set of rules.
  5509  	NextToken *string `type:"string"`
  5510  }
  5511  
  5512  // String returns the string representation.
  5513  //
  5514  // API parameter values that are decorated as "sensitive" in the API will not
  5515  // be included in the string output. The member name will be present, but the
  5516  // value will be replaced with "sensitive".
  5517  func (s DescribeInsightRulesInput) String() string {
  5518  	return awsutil.Prettify(s)
  5519  }
  5520  
  5521  // GoString returns the string representation.
  5522  //
  5523  // API parameter values that are decorated as "sensitive" in the API will not
  5524  // be included in the string output. The member name will be present, but the
  5525  // value will be replaced with "sensitive".
  5526  func (s DescribeInsightRulesInput) GoString() string {
  5527  	return s.String()
  5528  }
  5529  
  5530  // Validate inspects the fields of the type to determine if they are valid.
  5531  func (s *DescribeInsightRulesInput) Validate() error {
  5532  	invalidParams := request.ErrInvalidParams{Context: "DescribeInsightRulesInput"}
  5533  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5534  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5535  	}
  5536  
  5537  	if invalidParams.Len() > 0 {
  5538  		return invalidParams
  5539  	}
  5540  	return nil
  5541  }
  5542  
  5543  // SetMaxResults sets the MaxResults field's value.
  5544  func (s *DescribeInsightRulesInput) SetMaxResults(v int64) *DescribeInsightRulesInput {
  5545  	s.MaxResults = &v
  5546  	return s
  5547  }
  5548  
  5549  // SetNextToken sets the NextToken field's value.
  5550  func (s *DescribeInsightRulesInput) SetNextToken(v string) *DescribeInsightRulesInput {
  5551  	s.NextToken = &v
  5552  	return s
  5553  }
  5554  
  5555  type DescribeInsightRulesOutput struct {
  5556  	_ struct{} `type:"structure"`
  5557  
  5558  	// The rules returned by the operation.
  5559  	InsightRules []*InsightRule `type:"list"`
  5560  
  5561  	// If this parameter is present, it is a token that marks the start of the next
  5562  	// batch of returned results.
  5563  	NextToken *string `type:"string"`
  5564  }
  5565  
  5566  // String returns the string representation.
  5567  //
  5568  // API parameter values that are decorated as "sensitive" in the API will not
  5569  // be included in the string output. The member name will be present, but the
  5570  // value will be replaced with "sensitive".
  5571  func (s DescribeInsightRulesOutput) String() string {
  5572  	return awsutil.Prettify(s)
  5573  }
  5574  
  5575  // GoString returns the string representation.
  5576  //
  5577  // API parameter values that are decorated as "sensitive" in the API will not
  5578  // be included in the string output. The member name will be present, but the
  5579  // value will be replaced with "sensitive".
  5580  func (s DescribeInsightRulesOutput) GoString() string {
  5581  	return s.String()
  5582  }
  5583  
  5584  // SetInsightRules sets the InsightRules field's value.
  5585  func (s *DescribeInsightRulesOutput) SetInsightRules(v []*InsightRule) *DescribeInsightRulesOutput {
  5586  	s.InsightRules = v
  5587  	return s
  5588  }
  5589  
  5590  // SetNextToken sets the NextToken field's value.
  5591  func (s *DescribeInsightRulesOutput) SetNextToken(v string) *DescribeInsightRulesOutput {
  5592  	s.NextToken = &v
  5593  	return s
  5594  }
  5595  
  5596  // A dimension is a name/value pair that is part of the identity of a metric.
  5597  // You can assign up to 10 dimensions to a metric. Because dimensions are part
  5598  // of the unique identifier for a metric, whenever you add a unique name/value
  5599  // pair to one of your metrics, you are creating a new variation of that metric.
  5600  type Dimension struct {
  5601  	_ struct{} `type:"structure"`
  5602  
  5603  	// The name of the dimension. Dimension names must contain only ASCII characters
  5604  	// and must include at least one non-whitespace character.
  5605  	//
  5606  	// Name is a required field
  5607  	Name *string `min:"1" type:"string" required:"true"`
  5608  
  5609  	// The value of the dimension. Dimension values must contain only ASCII characters
  5610  	// and must include at least one non-whitespace character.
  5611  	//
  5612  	// Value is a required field
  5613  	Value *string `min:"1" type:"string" required:"true"`
  5614  }
  5615  
  5616  // String returns the string representation.
  5617  //
  5618  // API parameter values that are decorated as "sensitive" in the API will not
  5619  // be included in the string output. The member name will be present, but the
  5620  // value will be replaced with "sensitive".
  5621  func (s Dimension) String() string {
  5622  	return awsutil.Prettify(s)
  5623  }
  5624  
  5625  // GoString returns the string representation.
  5626  //
  5627  // API parameter values that are decorated as "sensitive" in the API will not
  5628  // be included in the string output. The member name will be present, but the
  5629  // value will be replaced with "sensitive".
  5630  func (s Dimension) GoString() string {
  5631  	return s.String()
  5632  }
  5633  
  5634  // Validate inspects the fields of the type to determine if they are valid.
  5635  func (s *Dimension) Validate() error {
  5636  	invalidParams := request.ErrInvalidParams{Context: "Dimension"}
  5637  	if s.Name == nil {
  5638  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5639  	}
  5640  	if s.Name != nil && len(*s.Name) < 1 {
  5641  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5642  	}
  5643  	if s.Value == nil {
  5644  		invalidParams.Add(request.NewErrParamRequired("Value"))
  5645  	}
  5646  	if s.Value != nil && len(*s.Value) < 1 {
  5647  		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
  5648  	}
  5649  
  5650  	if invalidParams.Len() > 0 {
  5651  		return invalidParams
  5652  	}
  5653  	return nil
  5654  }
  5655  
  5656  // SetName sets the Name field's value.
  5657  func (s *Dimension) SetName(v string) *Dimension {
  5658  	s.Name = &v
  5659  	return s
  5660  }
  5661  
  5662  // SetValue sets the Value field's value.
  5663  func (s *Dimension) SetValue(v string) *Dimension {
  5664  	s.Value = &v
  5665  	return s
  5666  }
  5667  
  5668  // Represents filters for a dimension.
  5669  type DimensionFilter struct {
  5670  	_ struct{} `type:"structure"`
  5671  
  5672  	// The dimension name to be matched.
  5673  	//
  5674  	// Name is a required field
  5675  	Name *string `min:"1" type:"string" required:"true"`
  5676  
  5677  	// The value of the dimension to be matched.
  5678  	Value *string `min:"1" type:"string"`
  5679  }
  5680  
  5681  // String returns the string representation.
  5682  //
  5683  // API parameter values that are decorated as "sensitive" in the API will not
  5684  // be included in the string output. The member name will be present, but the
  5685  // value will be replaced with "sensitive".
  5686  func (s DimensionFilter) String() string {
  5687  	return awsutil.Prettify(s)
  5688  }
  5689  
  5690  // GoString returns the string representation.
  5691  //
  5692  // API parameter values that are decorated as "sensitive" in the API will not
  5693  // be included in the string output. The member name will be present, but the
  5694  // value will be replaced with "sensitive".
  5695  func (s DimensionFilter) GoString() string {
  5696  	return s.String()
  5697  }
  5698  
  5699  // Validate inspects the fields of the type to determine if they are valid.
  5700  func (s *DimensionFilter) Validate() error {
  5701  	invalidParams := request.ErrInvalidParams{Context: "DimensionFilter"}
  5702  	if s.Name == nil {
  5703  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5704  	}
  5705  	if s.Name != nil && len(*s.Name) < 1 {
  5706  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5707  	}
  5708  	if s.Value != nil && len(*s.Value) < 1 {
  5709  		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
  5710  	}
  5711  
  5712  	if invalidParams.Len() > 0 {
  5713  		return invalidParams
  5714  	}
  5715  	return nil
  5716  }
  5717  
  5718  // SetName sets the Name field's value.
  5719  func (s *DimensionFilter) SetName(v string) *DimensionFilter {
  5720  	s.Name = &v
  5721  	return s
  5722  }
  5723  
  5724  // SetValue sets the Value field's value.
  5725  func (s *DimensionFilter) SetValue(v string) *DimensionFilter {
  5726  	s.Value = &v
  5727  	return s
  5728  }
  5729  
  5730  type DisableAlarmActionsInput struct {
  5731  	_ struct{} `type:"structure"`
  5732  
  5733  	// The names of the alarms.
  5734  	//
  5735  	// AlarmNames is a required field
  5736  	AlarmNames []*string `type:"list" required:"true"`
  5737  }
  5738  
  5739  // String returns the string representation.
  5740  //
  5741  // API parameter values that are decorated as "sensitive" in the API will not
  5742  // be included in the string output. The member name will be present, but the
  5743  // value will be replaced with "sensitive".
  5744  func (s DisableAlarmActionsInput) String() string {
  5745  	return awsutil.Prettify(s)
  5746  }
  5747  
  5748  // GoString returns the string representation.
  5749  //
  5750  // API parameter values that are decorated as "sensitive" in the API will not
  5751  // be included in the string output. The member name will be present, but the
  5752  // value will be replaced with "sensitive".
  5753  func (s DisableAlarmActionsInput) GoString() string {
  5754  	return s.String()
  5755  }
  5756  
  5757  // Validate inspects the fields of the type to determine if they are valid.
  5758  func (s *DisableAlarmActionsInput) Validate() error {
  5759  	invalidParams := request.ErrInvalidParams{Context: "DisableAlarmActionsInput"}
  5760  	if s.AlarmNames == nil {
  5761  		invalidParams.Add(request.NewErrParamRequired("AlarmNames"))
  5762  	}
  5763  
  5764  	if invalidParams.Len() > 0 {
  5765  		return invalidParams
  5766  	}
  5767  	return nil
  5768  }
  5769  
  5770  // SetAlarmNames sets the AlarmNames field's value.
  5771  func (s *DisableAlarmActionsInput) SetAlarmNames(v []*string) *DisableAlarmActionsInput {
  5772  	s.AlarmNames = v
  5773  	return s
  5774  }
  5775  
  5776  type DisableAlarmActionsOutput struct {
  5777  	_ struct{} `type:"structure"`
  5778  }
  5779  
  5780  // String returns the string representation.
  5781  //
  5782  // API parameter values that are decorated as "sensitive" in the API will not
  5783  // be included in the string output. The member name will be present, but the
  5784  // value will be replaced with "sensitive".
  5785  func (s DisableAlarmActionsOutput) String() string {
  5786  	return awsutil.Prettify(s)
  5787  }
  5788  
  5789  // GoString returns the string representation.
  5790  //
  5791  // API parameter values that are decorated as "sensitive" in the API will not
  5792  // be included in the string output. The member name will be present, but the
  5793  // value will be replaced with "sensitive".
  5794  func (s DisableAlarmActionsOutput) GoString() string {
  5795  	return s.String()
  5796  }
  5797  
  5798  type DisableInsightRulesInput struct {
  5799  	_ struct{} `type:"structure"`
  5800  
  5801  	// An array of the rule names to disable. If you need to find out the names
  5802  	// of your rules, use DescribeInsightRules (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html).
  5803  	//
  5804  	// RuleNames is a required field
  5805  	RuleNames []*string `type:"list" required:"true"`
  5806  }
  5807  
  5808  // String returns the string representation.
  5809  //
  5810  // API parameter values that are decorated as "sensitive" in the API will not
  5811  // be included in the string output. The member name will be present, but the
  5812  // value will be replaced with "sensitive".
  5813  func (s DisableInsightRulesInput) String() string {
  5814  	return awsutil.Prettify(s)
  5815  }
  5816  
  5817  // GoString returns the string representation.
  5818  //
  5819  // API parameter values that are decorated as "sensitive" in the API will not
  5820  // be included in the string output. The member name will be present, but the
  5821  // value will be replaced with "sensitive".
  5822  func (s DisableInsightRulesInput) GoString() string {
  5823  	return s.String()
  5824  }
  5825  
  5826  // Validate inspects the fields of the type to determine if they are valid.
  5827  func (s *DisableInsightRulesInput) Validate() error {
  5828  	invalidParams := request.ErrInvalidParams{Context: "DisableInsightRulesInput"}
  5829  	if s.RuleNames == nil {
  5830  		invalidParams.Add(request.NewErrParamRequired("RuleNames"))
  5831  	}
  5832  
  5833  	if invalidParams.Len() > 0 {
  5834  		return invalidParams
  5835  	}
  5836  	return nil
  5837  }
  5838  
  5839  // SetRuleNames sets the RuleNames field's value.
  5840  func (s *DisableInsightRulesInput) SetRuleNames(v []*string) *DisableInsightRulesInput {
  5841  	s.RuleNames = v
  5842  	return s
  5843  }
  5844  
  5845  type DisableInsightRulesOutput struct {
  5846  	_ struct{} `type:"structure"`
  5847  
  5848  	// An array listing the rules that could not be disabled. You cannot disable
  5849  	// built-in rules.
  5850  	Failures []*PartialFailure `type:"list"`
  5851  }
  5852  
  5853  // String returns the string representation.
  5854  //
  5855  // API parameter values that are decorated as "sensitive" in the API will not
  5856  // be included in the string output. The member name will be present, but the
  5857  // value will be replaced with "sensitive".
  5858  func (s DisableInsightRulesOutput) String() string {
  5859  	return awsutil.Prettify(s)
  5860  }
  5861  
  5862  // GoString returns the string representation.
  5863  //
  5864  // API parameter values that are decorated as "sensitive" in the API will not
  5865  // be included in the string output. The member name will be present, but the
  5866  // value will be replaced with "sensitive".
  5867  func (s DisableInsightRulesOutput) GoString() string {
  5868  	return s.String()
  5869  }
  5870  
  5871  // SetFailures sets the Failures field's value.
  5872  func (s *DisableInsightRulesOutput) SetFailures(v []*PartialFailure) *DisableInsightRulesOutput {
  5873  	s.Failures = v
  5874  	return s
  5875  }
  5876  
  5877  type EnableAlarmActionsInput struct {
  5878  	_ struct{} `type:"structure"`
  5879  
  5880  	// The names of the alarms.
  5881  	//
  5882  	// AlarmNames is a required field
  5883  	AlarmNames []*string `type:"list" required:"true"`
  5884  }
  5885  
  5886  // String returns the string representation.
  5887  //
  5888  // API parameter values that are decorated as "sensitive" in the API will not
  5889  // be included in the string output. The member name will be present, but the
  5890  // value will be replaced with "sensitive".
  5891  func (s EnableAlarmActionsInput) String() string {
  5892  	return awsutil.Prettify(s)
  5893  }
  5894  
  5895  // GoString returns the string representation.
  5896  //
  5897  // API parameter values that are decorated as "sensitive" in the API will not
  5898  // be included in the string output. The member name will be present, but the
  5899  // value will be replaced with "sensitive".
  5900  func (s EnableAlarmActionsInput) GoString() string {
  5901  	return s.String()
  5902  }
  5903  
  5904  // Validate inspects the fields of the type to determine if they are valid.
  5905  func (s *EnableAlarmActionsInput) Validate() error {
  5906  	invalidParams := request.ErrInvalidParams{Context: "EnableAlarmActionsInput"}
  5907  	if s.AlarmNames == nil {
  5908  		invalidParams.Add(request.NewErrParamRequired("AlarmNames"))
  5909  	}
  5910  
  5911  	if invalidParams.Len() > 0 {
  5912  		return invalidParams
  5913  	}
  5914  	return nil
  5915  }
  5916  
  5917  // SetAlarmNames sets the AlarmNames field's value.
  5918  func (s *EnableAlarmActionsInput) SetAlarmNames(v []*string) *EnableAlarmActionsInput {
  5919  	s.AlarmNames = v
  5920  	return s
  5921  }
  5922  
  5923  type EnableAlarmActionsOutput struct {
  5924  	_ struct{} `type:"structure"`
  5925  }
  5926  
  5927  // String returns the string representation.
  5928  //
  5929  // API parameter values that are decorated as "sensitive" in the API will not
  5930  // be included in the string output. The member name will be present, but the
  5931  // value will be replaced with "sensitive".
  5932  func (s EnableAlarmActionsOutput) String() string {
  5933  	return awsutil.Prettify(s)
  5934  }
  5935  
  5936  // GoString returns the string representation.
  5937  //
  5938  // API parameter values that are decorated as "sensitive" in the API will not
  5939  // be included in the string output. The member name will be present, but the
  5940  // value will be replaced with "sensitive".
  5941  func (s EnableAlarmActionsOutput) GoString() string {
  5942  	return s.String()
  5943  }
  5944  
  5945  type EnableInsightRulesInput struct {
  5946  	_ struct{} `type:"structure"`
  5947  
  5948  	// An array of the rule names to enable. If you need to find out the names of
  5949  	// your rules, use DescribeInsightRules (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html).
  5950  	//
  5951  	// RuleNames is a required field
  5952  	RuleNames []*string `type:"list" required:"true"`
  5953  }
  5954  
  5955  // String returns the string representation.
  5956  //
  5957  // API parameter values that are decorated as "sensitive" in the API will not
  5958  // be included in the string output. The member name will be present, but the
  5959  // value will be replaced with "sensitive".
  5960  func (s EnableInsightRulesInput) String() string {
  5961  	return awsutil.Prettify(s)
  5962  }
  5963  
  5964  // GoString returns the string representation.
  5965  //
  5966  // API parameter values that are decorated as "sensitive" in the API will not
  5967  // be included in the string output. The member name will be present, but the
  5968  // value will be replaced with "sensitive".
  5969  func (s EnableInsightRulesInput) GoString() string {
  5970  	return s.String()
  5971  }
  5972  
  5973  // Validate inspects the fields of the type to determine if they are valid.
  5974  func (s *EnableInsightRulesInput) Validate() error {
  5975  	invalidParams := request.ErrInvalidParams{Context: "EnableInsightRulesInput"}
  5976  	if s.RuleNames == nil {
  5977  		invalidParams.Add(request.NewErrParamRequired("RuleNames"))
  5978  	}
  5979  
  5980  	if invalidParams.Len() > 0 {
  5981  		return invalidParams
  5982  	}
  5983  	return nil
  5984  }
  5985  
  5986  // SetRuleNames sets the RuleNames field's value.
  5987  func (s *EnableInsightRulesInput) SetRuleNames(v []*string) *EnableInsightRulesInput {
  5988  	s.RuleNames = v
  5989  	return s
  5990  }
  5991  
  5992  type EnableInsightRulesOutput struct {
  5993  	_ struct{} `type:"structure"`
  5994  
  5995  	// An array listing the rules that could not be enabled. You cannot disable
  5996  	// or enable built-in rules.
  5997  	Failures []*PartialFailure `type:"list"`
  5998  }
  5999  
  6000  // String returns the string representation.
  6001  //
  6002  // API parameter values that are decorated as "sensitive" in the API will not
  6003  // be included in the string output. The member name will be present, but the
  6004  // value will be replaced with "sensitive".
  6005  func (s EnableInsightRulesOutput) String() string {
  6006  	return awsutil.Prettify(s)
  6007  }
  6008  
  6009  // GoString returns the string representation.
  6010  //
  6011  // API parameter values that are decorated as "sensitive" in the API will not
  6012  // be included in the string output. The member name will be present, but the
  6013  // value will be replaced with "sensitive".
  6014  func (s EnableInsightRulesOutput) GoString() string {
  6015  	return s.String()
  6016  }
  6017  
  6018  // SetFailures sets the Failures field's value.
  6019  func (s *EnableInsightRulesOutput) SetFailures(v []*PartialFailure) *EnableInsightRulesOutput {
  6020  	s.Failures = v
  6021  	return s
  6022  }
  6023  
  6024  type GetDashboardInput struct {
  6025  	_ struct{} `type:"structure"`
  6026  
  6027  	// The name of the dashboard to be described.
  6028  	//
  6029  	// DashboardName is a required field
  6030  	DashboardName *string `type:"string" required:"true"`
  6031  }
  6032  
  6033  // String returns the string representation.
  6034  //
  6035  // API parameter values that are decorated as "sensitive" in the API will not
  6036  // be included in the string output. The member name will be present, but the
  6037  // value will be replaced with "sensitive".
  6038  func (s GetDashboardInput) String() string {
  6039  	return awsutil.Prettify(s)
  6040  }
  6041  
  6042  // GoString returns the string representation.
  6043  //
  6044  // API parameter values that are decorated as "sensitive" in the API will not
  6045  // be included in the string output. The member name will be present, but the
  6046  // value will be replaced with "sensitive".
  6047  func (s GetDashboardInput) GoString() string {
  6048  	return s.String()
  6049  }
  6050  
  6051  // Validate inspects the fields of the type to determine if they are valid.
  6052  func (s *GetDashboardInput) Validate() error {
  6053  	invalidParams := request.ErrInvalidParams{Context: "GetDashboardInput"}
  6054  	if s.DashboardName == nil {
  6055  		invalidParams.Add(request.NewErrParamRequired("DashboardName"))
  6056  	}
  6057  
  6058  	if invalidParams.Len() > 0 {
  6059  		return invalidParams
  6060  	}
  6061  	return nil
  6062  }
  6063  
  6064  // SetDashboardName sets the DashboardName field's value.
  6065  func (s *GetDashboardInput) SetDashboardName(v string) *GetDashboardInput {
  6066  	s.DashboardName = &v
  6067  	return s
  6068  }
  6069  
  6070  type GetDashboardOutput struct {
  6071  	_ struct{} `type:"structure"`
  6072  
  6073  	// The Amazon Resource Name (ARN) of the dashboard.
  6074  	DashboardArn *string `type:"string"`
  6075  
  6076  	// The detailed information about the dashboard, including what widgets are
  6077  	// included and their location on the dashboard. For more information about
  6078  	// the DashboardBody syntax, see Dashboard Body Structure and Syntax (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html).
  6079  	DashboardBody *string `type:"string"`
  6080  
  6081  	// The name of the dashboard.
  6082  	DashboardName *string `type:"string"`
  6083  }
  6084  
  6085  // String returns the string representation.
  6086  //
  6087  // API parameter values that are decorated as "sensitive" in the API will not
  6088  // be included in the string output. The member name will be present, but the
  6089  // value will be replaced with "sensitive".
  6090  func (s GetDashboardOutput) String() string {
  6091  	return awsutil.Prettify(s)
  6092  }
  6093  
  6094  // GoString returns the string representation.
  6095  //
  6096  // API parameter values that are decorated as "sensitive" in the API will not
  6097  // be included in the string output. The member name will be present, but the
  6098  // value will be replaced with "sensitive".
  6099  func (s GetDashboardOutput) GoString() string {
  6100  	return s.String()
  6101  }
  6102  
  6103  // SetDashboardArn sets the DashboardArn field's value.
  6104  func (s *GetDashboardOutput) SetDashboardArn(v string) *GetDashboardOutput {
  6105  	s.DashboardArn = &v
  6106  	return s
  6107  }
  6108  
  6109  // SetDashboardBody sets the DashboardBody field's value.
  6110  func (s *GetDashboardOutput) SetDashboardBody(v string) *GetDashboardOutput {
  6111  	s.DashboardBody = &v
  6112  	return s
  6113  }
  6114  
  6115  // SetDashboardName sets the DashboardName field's value.
  6116  func (s *GetDashboardOutput) SetDashboardName(v string) *GetDashboardOutput {
  6117  	s.DashboardName = &v
  6118  	return s
  6119  }
  6120  
  6121  type GetInsightRuleReportInput struct {
  6122  	_ struct{} `type:"structure"`
  6123  
  6124  	// The end time of the data to use in the report. When used in a raw HTTP Query
  6125  	// API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.
  6126  	//
  6127  	// EndTime is a required field
  6128  	EndTime *time.Time `type:"timestamp" required:"true"`
  6129  
  6130  	// The maximum number of contributors to include in the report. The range is
  6131  	// 1 to 100. If you omit this, the default of 10 is used.
  6132  	MaxContributorCount *int64 `type:"integer"`
  6133  
  6134  	// Specifies which metrics to use for aggregation of contributor values for
  6135  	// the report. You can specify one or more of the following metrics:
  6136  	//
  6137  	//    * UniqueContributors -- the number of unique contributors for each data
  6138  	//    point.
  6139  	//
  6140  	//    * MaxContributorValue -- the value of the top contributor for each data
  6141  	//    point. The identity of the contributor might change for each data point
  6142  	//    in the graph. If this rule aggregates by COUNT, the top contributor for
  6143  	//    each data point is the contributor with the most occurrences in that period.
  6144  	//    If the rule aggregates by SUM, the top contributor is the contributor
  6145  	//    with the highest sum in the log field specified by the rule's Value, during
  6146  	//    that period.
  6147  	//
  6148  	//    * SampleCount -- the number of data points matched by the rule.
  6149  	//
  6150  	//    * Sum -- the sum of the values from all contributors during the time period
  6151  	//    represented by that data point.
  6152  	//
  6153  	//    * Minimum -- the minimum value from a single observation during the time
  6154  	//    period represented by that data point.
  6155  	//
  6156  	//    * Maximum -- the maximum value from a single observation during the time
  6157  	//    period represented by that data point.
  6158  	//
  6159  	//    * Average -- the average value from all contributors during the time period
  6160  	//    represented by that data point.
  6161  	Metrics []*string `type:"list"`
  6162  
  6163  	// Determines what statistic to use to rank the contributors. Valid values are
  6164  	// SUM and MAXIMUM.
  6165  	OrderBy *string `min:"1" type:"string"`
  6166  
  6167  	// The period, in seconds, to use for the statistics in the InsightRuleMetricDatapoint
  6168  	// results.
  6169  	//
  6170  	// Period is a required field
  6171  	Period *int64 `min:"1" type:"integer" required:"true"`
  6172  
  6173  	// The name of the rule that you want to see data from.
  6174  	//
  6175  	// RuleName is a required field
  6176  	RuleName *string `min:"1" type:"string" required:"true"`
  6177  
  6178  	// The start time of the data to use in the report. When used in a raw HTTP
  6179  	// Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59.
  6180  	//
  6181  	// StartTime is a required field
  6182  	StartTime *time.Time `type:"timestamp" required:"true"`
  6183  }
  6184  
  6185  // String returns the string representation.
  6186  //
  6187  // API parameter values that are decorated as "sensitive" in the API will not
  6188  // be included in the string output. The member name will be present, but the
  6189  // value will be replaced with "sensitive".
  6190  func (s GetInsightRuleReportInput) String() string {
  6191  	return awsutil.Prettify(s)
  6192  }
  6193  
  6194  // GoString returns the string representation.
  6195  //
  6196  // API parameter values that are decorated as "sensitive" in the API will not
  6197  // be included in the string output. The member name will be present, but the
  6198  // value will be replaced with "sensitive".
  6199  func (s GetInsightRuleReportInput) GoString() string {
  6200  	return s.String()
  6201  }
  6202  
  6203  // Validate inspects the fields of the type to determine if they are valid.
  6204  func (s *GetInsightRuleReportInput) Validate() error {
  6205  	invalidParams := request.ErrInvalidParams{Context: "GetInsightRuleReportInput"}
  6206  	if s.EndTime == nil {
  6207  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
  6208  	}
  6209  	if s.OrderBy != nil && len(*s.OrderBy) < 1 {
  6210  		invalidParams.Add(request.NewErrParamMinLen("OrderBy", 1))
  6211  	}
  6212  	if s.Period == nil {
  6213  		invalidParams.Add(request.NewErrParamRequired("Period"))
  6214  	}
  6215  	if s.Period != nil && *s.Period < 1 {
  6216  		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
  6217  	}
  6218  	if s.RuleName == nil {
  6219  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  6220  	}
  6221  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  6222  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  6223  	}
  6224  	if s.StartTime == nil {
  6225  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
  6226  	}
  6227  
  6228  	if invalidParams.Len() > 0 {
  6229  		return invalidParams
  6230  	}
  6231  	return nil
  6232  }
  6233  
  6234  // SetEndTime sets the EndTime field's value.
  6235  func (s *GetInsightRuleReportInput) SetEndTime(v time.Time) *GetInsightRuleReportInput {
  6236  	s.EndTime = &v
  6237  	return s
  6238  }
  6239  
  6240  // SetMaxContributorCount sets the MaxContributorCount field's value.
  6241  func (s *GetInsightRuleReportInput) SetMaxContributorCount(v int64) *GetInsightRuleReportInput {
  6242  	s.MaxContributorCount = &v
  6243  	return s
  6244  }
  6245  
  6246  // SetMetrics sets the Metrics field's value.
  6247  func (s *GetInsightRuleReportInput) SetMetrics(v []*string) *GetInsightRuleReportInput {
  6248  	s.Metrics = v
  6249  	return s
  6250  }
  6251  
  6252  // SetOrderBy sets the OrderBy field's value.
  6253  func (s *GetInsightRuleReportInput) SetOrderBy(v string) *GetInsightRuleReportInput {
  6254  	s.OrderBy = &v
  6255  	return s
  6256  }
  6257  
  6258  // SetPeriod sets the Period field's value.
  6259  func (s *GetInsightRuleReportInput) SetPeriod(v int64) *GetInsightRuleReportInput {
  6260  	s.Period = &v
  6261  	return s
  6262  }
  6263  
  6264  // SetRuleName sets the RuleName field's value.
  6265  func (s *GetInsightRuleReportInput) SetRuleName(v string) *GetInsightRuleReportInput {
  6266  	s.RuleName = &v
  6267  	return s
  6268  }
  6269  
  6270  // SetStartTime sets the StartTime field's value.
  6271  func (s *GetInsightRuleReportInput) SetStartTime(v time.Time) *GetInsightRuleReportInput {
  6272  	s.StartTime = &v
  6273  	return s
  6274  }
  6275  
  6276  type GetInsightRuleReportOutput struct {
  6277  	_ struct{} `type:"structure"`
  6278  
  6279  	// The sum of the values from all individual contributors that match the rule.
  6280  	AggregateValue *float64 `type:"double"`
  6281  
  6282  	// Specifies whether this rule aggregates contributor data by COUNT or SUM.
  6283  	AggregationStatistic *string `type:"string"`
  6284  
  6285  	// An approximate count of the unique contributors found by this rule in this
  6286  	// time period.
  6287  	ApproximateUniqueCount *int64 `type:"long"`
  6288  
  6289  	// An array of the unique contributors found by this rule in this time period.
  6290  	// If the rule contains multiple keys, each combination of values for the keys
  6291  	// counts as a unique contributor.
  6292  	Contributors []*InsightRuleContributor `type:"list"`
  6293  
  6294  	// An array of the strings used as the keys for this rule. The keys are the
  6295  	// dimensions used to classify contributors. If the rule contains more than
  6296  	// one key, then each unique combination of values for the keys is counted as
  6297  	// a unique contributor.
  6298  	KeyLabels []*string `type:"list"`
  6299  
  6300  	// A time series of metric data points that matches the time period in the rule
  6301  	// request.
  6302  	MetricDatapoints []*InsightRuleMetricDatapoint `type:"list"`
  6303  }
  6304  
  6305  // String returns the string representation.
  6306  //
  6307  // API parameter values that are decorated as "sensitive" in the API will not
  6308  // be included in the string output. The member name will be present, but the
  6309  // value will be replaced with "sensitive".
  6310  func (s GetInsightRuleReportOutput) String() string {
  6311  	return awsutil.Prettify(s)
  6312  }
  6313  
  6314  // GoString returns the string representation.
  6315  //
  6316  // API parameter values that are decorated as "sensitive" in the API will not
  6317  // be included in the string output. The member name will be present, but the
  6318  // value will be replaced with "sensitive".
  6319  func (s GetInsightRuleReportOutput) GoString() string {
  6320  	return s.String()
  6321  }
  6322  
  6323  // SetAggregateValue sets the AggregateValue field's value.
  6324  func (s *GetInsightRuleReportOutput) SetAggregateValue(v float64) *GetInsightRuleReportOutput {
  6325  	s.AggregateValue = &v
  6326  	return s
  6327  }
  6328  
  6329  // SetAggregationStatistic sets the AggregationStatistic field's value.
  6330  func (s *GetInsightRuleReportOutput) SetAggregationStatistic(v string) *GetInsightRuleReportOutput {
  6331  	s.AggregationStatistic = &v
  6332  	return s
  6333  }
  6334  
  6335  // SetApproximateUniqueCount sets the ApproximateUniqueCount field's value.
  6336  func (s *GetInsightRuleReportOutput) SetApproximateUniqueCount(v int64) *GetInsightRuleReportOutput {
  6337  	s.ApproximateUniqueCount = &v
  6338  	return s
  6339  }
  6340  
  6341  // SetContributors sets the Contributors field's value.
  6342  func (s *GetInsightRuleReportOutput) SetContributors(v []*InsightRuleContributor) *GetInsightRuleReportOutput {
  6343  	s.Contributors = v
  6344  	return s
  6345  }
  6346  
  6347  // SetKeyLabels sets the KeyLabels field's value.
  6348  func (s *GetInsightRuleReportOutput) SetKeyLabels(v []*string) *GetInsightRuleReportOutput {
  6349  	s.KeyLabels = v
  6350  	return s
  6351  }
  6352  
  6353  // SetMetricDatapoints sets the MetricDatapoints field's value.
  6354  func (s *GetInsightRuleReportOutput) SetMetricDatapoints(v []*InsightRuleMetricDatapoint) *GetInsightRuleReportOutput {
  6355  	s.MetricDatapoints = v
  6356  	return s
  6357  }
  6358  
  6359  type GetMetricDataInput struct {
  6360  	_ struct{} `type:"structure"`
  6361  
  6362  	// The time stamp indicating the latest data to be returned.
  6363  	//
  6364  	// The value specified is exclusive; results include data points up to the specified
  6365  	// time stamp.
  6366  	//
  6367  	// For better performance, specify StartTime and EndTime values that align with
  6368  	// the value of the metric's Period and sync up with the beginning and end of
  6369  	// an hour. For example, if the Period of a metric is 5 minutes, specifying
  6370  	// 12:05 or 12:30 as EndTime can get a faster response from CloudWatch than
  6371  	// setting 12:07 or 12:29 as the EndTime.
  6372  	//
  6373  	// EndTime is a required field
  6374  	EndTime *time.Time `type:"timestamp" required:"true"`
  6375  
  6376  	// This structure includes the Timezone parameter, which you can use to specify
  6377  	// your time zone so that the labels of returned data display the correct time
  6378  	// for your time zone.
  6379  	LabelOptions *LabelOptions `type:"structure"`
  6380  
  6381  	// The maximum number of data points the request should return before paginating.
  6382  	// If you omit this, the default of 100,800 is used.
  6383  	MaxDatapoints *int64 `type:"integer"`
  6384  
  6385  	// The metric queries to be returned. A single GetMetricData call can include
  6386  	// as many as 500 MetricDataQuery structures. Each of these structures can specify
  6387  	// either a metric to retrieve, or a math expression to perform on retrieved
  6388  	// data.
  6389  	//
  6390  	// MetricDataQueries is a required field
  6391  	MetricDataQueries []*MetricDataQuery `type:"list" required:"true"`
  6392  
  6393  	// Include this value, if it was returned by the previous GetMetricData operation,
  6394  	// to get the next set of data points.
  6395  	NextToken *string `type:"string"`
  6396  
  6397  	// The order in which data points should be returned. TimestampDescending returns
  6398  	// the newest data first and paginates when the MaxDatapoints limit is reached.
  6399  	// TimestampAscending returns the oldest data first and paginates when the MaxDatapoints
  6400  	// limit is reached.
  6401  	ScanBy *string `type:"string" enum:"ScanBy"`
  6402  
  6403  	// The time stamp indicating the earliest data to be returned.
  6404  	//
  6405  	// The value specified is inclusive; results include data points with the specified
  6406  	// time stamp.
  6407  	//
  6408  	// CloudWatch rounds the specified time stamp as follows:
  6409  	//
  6410  	//    * Start time less than 15 days ago - Round down to the nearest whole minute.
  6411  	//    For example, 12:32:34 is rounded down to 12:32:00.
  6412  	//
  6413  	//    * Start time between 15 and 63 days ago - Round down to the nearest 5-minute
  6414  	//    clock interval. For example, 12:32:34 is rounded down to 12:30:00.
  6415  	//
  6416  	//    * Start time greater than 63 days ago - Round down to the nearest 1-hour
  6417  	//    clock interval. For example, 12:32:34 is rounded down to 12:00:00.
  6418  	//
  6419  	// If you set Period to 5, 10, or 30, the start time of your request is rounded
  6420  	// down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions
  6421  	// of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for
  6422  	// the previous 10-second period, the start time of your request is rounded
  6423  	// down and you receive data from 01:05:10 to 01:05:20. If you make a query
  6424  	// at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds,
  6425  	// you receive data timestamped between 15:02:15 and 15:07:15.
  6426  	//
  6427  	// For better performance, specify StartTime and EndTime values that align with
  6428  	// the value of the metric's Period and sync up with the beginning and end of
  6429  	// an hour. For example, if the Period of a metric is 5 minutes, specifying
  6430  	// 12:05 or 12:30 as StartTime can get a faster response from CloudWatch than
  6431  	// setting 12:07 or 12:29 as the StartTime.
  6432  	//
  6433  	// StartTime is a required field
  6434  	StartTime *time.Time `type:"timestamp" required:"true"`
  6435  }
  6436  
  6437  // String returns the string representation.
  6438  //
  6439  // API parameter values that are decorated as "sensitive" in the API will not
  6440  // be included in the string output. The member name will be present, but the
  6441  // value will be replaced with "sensitive".
  6442  func (s GetMetricDataInput) String() string {
  6443  	return awsutil.Prettify(s)
  6444  }
  6445  
  6446  // GoString returns the string representation.
  6447  //
  6448  // API parameter values that are decorated as "sensitive" in the API will not
  6449  // be included in the string output. The member name will be present, but the
  6450  // value will be replaced with "sensitive".
  6451  func (s GetMetricDataInput) GoString() string {
  6452  	return s.String()
  6453  }
  6454  
  6455  // Validate inspects the fields of the type to determine if they are valid.
  6456  func (s *GetMetricDataInput) Validate() error {
  6457  	invalidParams := request.ErrInvalidParams{Context: "GetMetricDataInput"}
  6458  	if s.EndTime == nil {
  6459  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
  6460  	}
  6461  	if s.MetricDataQueries == nil {
  6462  		invalidParams.Add(request.NewErrParamRequired("MetricDataQueries"))
  6463  	}
  6464  	if s.StartTime == nil {
  6465  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
  6466  	}
  6467  	if s.MetricDataQueries != nil {
  6468  		for i, v := range s.MetricDataQueries {
  6469  			if v == nil {
  6470  				continue
  6471  			}
  6472  			if err := v.Validate(); err != nil {
  6473  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricDataQueries", i), err.(request.ErrInvalidParams))
  6474  			}
  6475  		}
  6476  	}
  6477  
  6478  	if invalidParams.Len() > 0 {
  6479  		return invalidParams
  6480  	}
  6481  	return nil
  6482  }
  6483  
  6484  // SetEndTime sets the EndTime field's value.
  6485  func (s *GetMetricDataInput) SetEndTime(v time.Time) *GetMetricDataInput {
  6486  	s.EndTime = &v
  6487  	return s
  6488  }
  6489  
  6490  // SetLabelOptions sets the LabelOptions field's value.
  6491  func (s *GetMetricDataInput) SetLabelOptions(v *LabelOptions) *GetMetricDataInput {
  6492  	s.LabelOptions = v
  6493  	return s
  6494  }
  6495  
  6496  // SetMaxDatapoints sets the MaxDatapoints field's value.
  6497  func (s *GetMetricDataInput) SetMaxDatapoints(v int64) *GetMetricDataInput {
  6498  	s.MaxDatapoints = &v
  6499  	return s
  6500  }
  6501  
  6502  // SetMetricDataQueries sets the MetricDataQueries field's value.
  6503  func (s *GetMetricDataInput) SetMetricDataQueries(v []*MetricDataQuery) *GetMetricDataInput {
  6504  	s.MetricDataQueries = v
  6505  	return s
  6506  }
  6507  
  6508  // SetNextToken sets the NextToken field's value.
  6509  func (s *GetMetricDataInput) SetNextToken(v string) *GetMetricDataInput {
  6510  	s.NextToken = &v
  6511  	return s
  6512  }
  6513  
  6514  // SetScanBy sets the ScanBy field's value.
  6515  func (s *GetMetricDataInput) SetScanBy(v string) *GetMetricDataInput {
  6516  	s.ScanBy = &v
  6517  	return s
  6518  }
  6519  
  6520  // SetStartTime sets the StartTime field's value.
  6521  func (s *GetMetricDataInput) SetStartTime(v time.Time) *GetMetricDataInput {
  6522  	s.StartTime = &v
  6523  	return s
  6524  }
  6525  
  6526  type GetMetricDataOutput struct {
  6527  	_ struct{} `type:"structure"`
  6528  
  6529  	// Contains a message about this GetMetricData operation, if the operation results
  6530  	// in such a message. An example of a message that might be returned is Maximum
  6531  	// number of allowed metrics exceeded. If there is a message, as much of the
  6532  	// operation as possible is still executed.
  6533  	//
  6534  	// A message appears here only if it is related to the global GetMetricData
  6535  	// operation. Any message about a specific metric returned by the operation
  6536  	// appears in the MetricDataResult object returned for that metric.
  6537  	Messages []*MessageData `type:"list"`
  6538  
  6539  	// The metrics that are returned, including the metric name, namespace, and
  6540  	// dimensions.
  6541  	MetricDataResults []*MetricDataResult `type:"list"`
  6542  
  6543  	// A token that marks the next batch of returned results.
  6544  	NextToken *string `type:"string"`
  6545  }
  6546  
  6547  // String returns the string representation.
  6548  //
  6549  // API parameter values that are decorated as "sensitive" in the API will not
  6550  // be included in the string output. The member name will be present, but the
  6551  // value will be replaced with "sensitive".
  6552  func (s GetMetricDataOutput) String() string {
  6553  	return awsutil.Prettify(s)
  6554  }
  6555  
  6556  // GoString returns the string representation.
  6557  //
  6558  // API parameter values that are decorated as "sensitive" in the API will not
  6559  // be included in the string output. The member name will be present, but the
  6560  // value will be replaced with "sensitive".
  6561  func (s GetMetricDataOutput) GoString() string {
  6562  	return s.String()
  6563  }
  6564  
  6565  // SetMessages sets the Messages field's value.
  6566  func (s *GetMetricDataOutput) SetMessages(v []*MessageData) *GetMetricDataOutput {
  6567  	s.Messages = v
  6568  	return s
  6569  }
  6570  
  6571  // SetMetricDataResults sets the MetricDataResults field's value.
  6572  func (s *GetMetricDataOutput) SetMetricDataResults(v []*MetricDataResult) *GetMetricDataOutput {
  6573  	s.MetricDataResults = v
  6574  	return s
  6575  }
  6576  
  6577  // SetNextToken sets the NextToken field's value.
  6578  func (s *GetMetricDataOutput) SetNextToken(v string) *GetMetricDataOutput {
  6579  	s.NextToken = &v
  6580  	return s
  6581  }
  6582  
  6583  type GetMetricStatisticsInput struct {
  6584  	_ struct{} `type:"structure"`
  6585  
  6586  	// The dimensions. If the metric contains multiple dimensions, you must include
  6587  	// a value for each dimension. CloudWatch treats each unique combination of
  6588  	// dimensions as a separate metric. If a specific combination of dimensions
  6589  	// was not published, you can't retrieve statistics for it. You must specify
  6590  	// the same dimensions that were used when the metrics were created. For an
  6591  	// example, see Dimension Combinations (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#dimension-combinations)
  6592  	// in the Amazon CloudWatch User Guide. For more information about specifying
  6593  	// dimensions, see Publishing Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html)
  6594  	// in the Amazon CloudWatch User Guide.
  6595  	Dimensions []*Dimension `type:"list"`
  6596  
  6597  	// The time stamp that determines the last data point to return.
  6598  	//
  6599  	// The value specified is exclusive; results include data points up to the specified
  6600  	// time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format
  6601  	// (for example, 2016-10-10T23:00:00Z).
  6602  	//
  6603  	// EndTime is a required field
  6604  	EndTime *time.Time `type:"timestamp" required:"true"`
  6605  
  6606  	// The percentile statistics. Specify values between p0.0 and p100. When calling
  6607  	// GetMetricStatistics, you must specify either Statistics or ExtendedStatistics,
  6608  	// but not both. Percentile statistics are not available for metrics when any
  6609  	// of the metric values are negative numbers.
  6610  	ExtendedStatistics []*string `min:"1" type:"list"`
  6611  
  6612  	// The name of the metric, with or without spaces.
  6613  	//
  6614  	// MetricName is a required field
  6615  	MetricName *string `min:"1" type:"string" required:"true"`
  6616  
  6617  	// The namespace of the metric, with or without spaces.
  6618  	//
  6619  	// Namespace is a required field
  6620  	Namespace *string `min:"1" type:"string" required:"true"`
  6621  
  6622  	// The granularity, in seconds, of the returned data points. For metrics with
  6623  	// regular resolution, a period can be as short as one minute (60 seconds) and
  6624  	// must be a multiple of 60. For high-resolution metrics that are collected
  6625  	// at intervals of less than one minute, the period can be 1, 5, 10, 30, 60,
  6626  	// or any multiple of 60. High-resolution metrics are those metrics stored by
  6627  	// a PutMetricData call that includes a StorageResolution of 1 second.
  6628  	//
  6629  	// If the StartTime parameter specifies a time stamp that is greater than 3
  6630  	// hours ago, you must specify the period as follows or no data points in that
  6631  	// time range is returned:
  6632  	//
  6633  	//    * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds
  6634  	//    (1 minute).
  6635  	//
  6636  	//    * Start time between 15 and 63 days ago - Use a multiple of 300 seconds
  6637  	//    (5 minutes).
  6638  	//
  6639  	//    * Start time greater than 63 days ago - Use a multiple of 3600 seconds
  6640  	//    (1 hour).
  6641  	//
  6642  	// Period is a required field
  6643  	Period *int64 `min:"1" type:"integer" required:"true"`
  6644  
  6645  	// The time stamp that determines the first data point to return. Start times
  6646  	// are evaluated relative to the time that CloudWatch receives the request.
  6647  	//
  6648  	// The value specified is inclusive; results include data points with the specified
  6649  	// time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format
  6650  	// (for example, 2016-10-03T23:00:00Z).
  6651  	//
  6652  	// CloudWatch rounds the specified time stamp as follows:
  6653  	//
  6654  	//    * Start time less than 15 days ago - Round down to the nearest whole minute.
  6655  	//    For example, 12:32:34 is rounded down to 12:32:00.
  6656  	//
  6657  	//    * Start time between 15 and 63 days ago - Round down to the nearest 5-minute
  6658  	//    clock interval. For example, 12:32:34 is rounded down to 12:30:00.
  6659  	//
  6660  	//    * Start time greater than 63 days ago - Round down to the nearest 1-hour
  6661  	//    clock interval. For example, 12:32:34 is rounded down to 12:00:00.
  6662  	//
  6663  	// If you set Period to 5, 10, or 30, the start time of your request is rounded
  6664  	// down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions
  6665  	// of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for
  6666  	// the previous 10-second period, the start time of your request is rounded
  6667  	// down and you receive data from 01:05:10 to 01:05:20. If you make a query
  6668  	// at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds,
  6669  	// you receive data timestamped between 15:02:15 and 15:07:15.
  6670  	//
  6671  	// StartTime is a required field
  6672  	StartTime *time.Time `type:"timestamp" required:"true"`
  6673  
  6674  	// The metric statistics, other than percentile. For percentile statistics,
  6675  	// use ExtendedStatistics. When calling GetMetricStatistics, you must specify
  6676  	// either Statistics or ExtendedStatistics, but not both.
  6677  	Statistics []*string `min:"1" type:"list"`
  6678  
  6679  	// The unit for a given metric. If you omit Unit, all data that was collected
  6680  	// with any unit is returned, along with the corresponding units that were specified
  6681  	// when the data was reported to CloudWatch. If you specify a unit, the operation
  6682  	// returns only data that was collected with that unit specified. If you specify
  6683  	// a unit that does not match the data collected, the results of the operation
  6684  	// are null. CloudWatch does not perform unit conversions.
  6685  	Unit *string `type:"string" enum:"StandardUnit"`
  6686  }
  6687  
  6688  // String returns the string representation.
  6689  //
  6690  // API parameter values that are decorated as "sensitive" in the API will not
  6691  // be included in the string output. The member name will be present, but the
  6692  // value will be replaced with "sensitive".
  6693  func (s GetMetricStatisticsInput) String() string {
  6694  	return awsutil.Prettify(s)
  6695  }
  6696  
  6697  // GoString returns the string representation.
  6698  //
  6699  // API parameter values that are decorated as "sensitive" in the API will not
  6700  // be included in the string output. The member name will be present, but the
  6701  // value will be replaced with "sensitive".
  6702  func (s GetMetricStatisticsInput) GoString() string {
  6703  	return s.String()
  6704  }
  6705  
  6706  // Validate inspects the fields of the type to determine if they are valid.
  6707  func (s *GetMetricStatisticsInput) Validate() error {
  6708  	invalidParams := request.ErrInvalidParams{Context: "GetMetricStatisticsInput"}
  6709  	if s.EndTime == nil {
  6710  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
  6711  	}
  6712  	if s.ExtendedStatistics != nil && len(s.ExtendedStatistics) < 1 {
  6713  		invalidParams.Add(request.NewErrParamMinLen("ExtendedStatistics", 1))
  6714  	}
  6715  	if s.MetricName == nil {
  6716  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  6717  	}
  6718  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  6719  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  6720  	}
  6721  	if s.Namespace == nil {
  6722  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  6723  	}
  6724  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  6725  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  6726  	}
  6727  	if s.Period == nil {
  6728  		invalidParams.Add(request.NewErrParamRequired("Period"))
  6729  	}
  6730  	if s.Period != nil && *s.Period < 1 {
  6731  		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
  6732  	}
  6733  	if s.StartTime == nil {
  6734  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
  6735  	}
  6736  	if s.Statistics != nil && len(s.Statistics) < 1 {
  6737  		invalidParams.Add(request.NewErrParamMinLen("Statistics", 1))
  6738  	}
  6739  	if s.Dimensions != nil {
  6740  		for i, v := range s.Dimensions {
  6741  			if v == nil {
  6742  				continue
  6743  			}
  6744  			if err := v.Validate(); err != nil {
  6745  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  6746  			}
  6747  		}
  6748  	}
  6749  
  6750  	if invalidParams.Len() > 0 {
  6751  		return invalidParams
  6752  	}
  6753  	return nil
  6754  }
  6755  
  6756  // SetDimensions sets the Dimensions field's value.
  6757  func (s *GetMetricStatisticsInput) SetDimensions(v []*Dimension) *GetMetricStatisticsInput {
  6758  	s.Dimensions = v
  6759  	return s
  6760  }
  6761  
  6762  // SetEndTime sets the EndTime field's value.
  6763  func (s *GetMetricStatisticsInput) SetEndTime(v time.Time) *GetMetricStatisticsInput {
  6764  	s.EndTime = &v
  6765  	return s
  6766  }
  6767  
  6768  // SetExtendedStatistics sets the ExtendedStatistics field's value.
  6769  func (s *GetMetricStatisticsInput) SetExtendedStatistics(v []*string) *GetMetricStatisticsInput {
  6770  	s.ExtendedStatistics = v
  6771  	return s
  6772  }
  6773  
  6774  // SetMetricName sets the MetricName field's value.
  6775  func (s *GetMetricStatisticsInput) SetMetricName(v string) *GetMetricStatisticsInput {
  6776  	s.MetricName = &v
  6777  	return s
  6778  }
  6779  
  6780  // SetNamespace sets the Namespace field's value.
  6781  func (s *GetMetricStatisticsInput) SetNamespace(v string) *GetMetricStatisticsInput {
  6782  	s.Namespace = &v
  6783  	return s
  6784  }
  6785  
  6786  // SetPeriod sets the Period field's value.
  6787  func (s *GetMetricStatisticsInput) SetPeriod(v int64) *GetMetricStatisticsInput {
  6788  	s.Period = &v
  6789  	return s
  6790  }
  6791  
  6792  // SetStartTime sets the StartTime field's value.
  6793  func (s *GetMetricStatisticsInput) SetStartTime(v time.Time) *GetMetricStatisticsInput {
  6794  	s.StartTime = &v
  6795  	return s
  6796  }
  6797  
  6798  // SetStatistics sets the Statistics field's value.
  6799  func (s *GetMetricStatisticsInput) SetStatistics(v []*string) *GetMetricStatisticsInput {
  6800  	s.Statistics = v
  6801  	return s
  6802  }
  6803  
  6804  // SetUnit sets the Unit field's value.
  6805  func (s *GetMetricStatisticsInput) SetUnit(v string) *GetMetricStatisticsInput {
  6806  	s.Unit = &v
  6807  	return s
  6808  }
  6809  
  6810  type GetMetricStatisticsOutput struct {
  6811  	_ struct{} `type:"structure"`
  6812  
  6813  	// The data points for the specified metric.
  6814  	Datapoints []*Datapoint `type:"list"`
  6815  
  6816  	// A label for the specified metric.
  6817  	Label *string `type:"string"`
  6818  }
  6819  
  6820  // String returns the string representation.
  6821  //
  6822  // API parameter values that are decorated as "sensitive" in the API will not
  6823  // be included in the string output. The member name will be present, but the
  6824  // value will be replaced with "sensitive".
  6825  func (s GetMetricStatisticsOutput) String() string {
  6826  	return awsutil.Prettify(s)
  6827  }
  6828  
  6829  // GoString returns the string representation.
  6830  //
  6831  // API parameter values that are decorated as "sensitive" in the API will not
  6832  // be included in the string output. The member name will be present, but the
  6833  // value will be replaced with "sensitive".
  6834  func (s GetMetricStatisticsOutput) GoString() string {
  6835  	return s.String()
  6836  }
  6837  
  6838  // SetDatapoints sets the Datapoints field's value.
  6839  func (s *GetMetricStatisticsOutput) SetDatapoints(v []*Datapoint) *GetMetricStatisticsOutput {
  6840  	s.Datapoints = v
  6841  	return s
  6842  }
  6843  
  6844  // SetLabel sets the Label field's value.
  6845  func (s *GetMetricStatisticsOutput) SetLabel(v string) *GetMetricStatisticsOutput {
  6846  	s.Label = &v
  6847  	return s
  6848  }
  6849  
  6850  type GetMetricStreamInput struct {
  6851  	_ struct{} `type:"structure"`
  6852  
  6853  	// The name of the metric stream to retrieve information about.
  6854  	//
  6855  	// Name is a required field
  6856  	Name *string `min:"1" type:"string" required:"true"`
  6857  }
  6858  
  6859  // String returns the string representation.
  6860  //
  6861  // API parameter values that are decorated as "sensitive" in the API will not
  6862  // be included in the string output. The member name will be present, but the
  6863  // value will be replaced with "sensitive".
  6864  func (s GetMetricStreamInput) String() string {
  6865  	return awsutil.Prettify(s)
  6866  }
  6867  
  6868  // GoString returns the string representation.
  6869  //
  6870  // API parameter values that are decorated as "sensitive" in the API will not
  6871  // be included in the string output. The member name will be present, but the
  6872  // value will be replaced with "sensitive".
  6873  func (s GetMetricStreamInput) GoString() string {
  6874  	return s.String()
  6875  }
  6876  
  6877  // Validate inspects the fields of the type to determine if they are valid.
  6878  func (s *GetMetricStreamInput) Validate() error {
  6879  	invalidParams := request.ErrInvalidParams{Context: "GetMetricStreamInput"}
  6880  	if s.Name == nil {
  6881  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6882  	}
  6883  	if s.Name != nil && len(*s.Name) < 1 {
  6884  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  6885  	}
  6886  
  6887  	if invalidParams.Len() > 0 {
  6888  		return invalidParams
  6889  	}
  6890  	return nil
  6891  }
  6892  
  6893  // SetName sets the Name field's value.
  6894  func (s *GetMetricStreamInput) SetName(v string) *GetMetricStreamInput {
  6895  	s.Name = &v
  6896  	return s
  6897  }
  6898  
  6899  type GetMetricStreamOutput struct {
  6900  	_ struct{} `type:"structure"`
  6901  
  6902  	// The ARN of the metric stream.
  6903  	Arn *string `min:"1" type:"string"`
  6904  
  6905  	// The date that the metric stream was created.
  6906  	CreationDate *time.Time `type:"timestamp"`
  6907  
  6908  	// If this array of metric namespaces is present, then these namespaces are
  6909  	// the only metric namespaces that are not streamed by this metric stream. In
  6910  	// this case, all other metric namespaces in the account are streamed by this
  6911  	// metric stream.
  6912  	ExcludeFilters []*MetricStreamFilter `type:"list"`
  6913  
  6914  	// The ARN of the Amazon Kinesis Firehose delivery stream that is used by this
  6915  	// metric stream.
  6916  	FirehoseArn *string `min:"1" type:"string"`
  6917  
  6918  	// If this array of metric namespaces is present, then these namespaces are
  6919  	// the only metric namespaces that are streamed by this metric stream.
  6920  	IncludeFilters []*MetricStreamFilter `type:"list"`
  6921  
  6922  	// The date of the most recent update to the metric stream's configuration.
  6923  	LastUpdateDate *time.Time `type:"timestamp"`
  6924  
  6925  	// The name of the metric stream.
  6926  	Name *string `min:"1" type:"string"`
  6927  
  6928  	OutputFormat *string `min:"1" type:"string" enum:"MetricStreamOutputFormat"`
  6929  
  6930  	// The ARN of the IAM role that is used by this metric stream.
  6931  	RoleArn *string `min:"1" type:"string"`
  6932  
  6933  	// The state of the metric stream. The possible values are running and stopped.
  6934  	State *string `type:"string"`
  6935  }
  6936  
  6937  // String returns the string representation.
  6938  //
  6939  // API parameter values that are decorated as "sensitive" in the API will not
  6940  // be included in the string output. The member name will be present, but the
  6941  // value will be replaced with "sensitive".
  6942  func (s GetMetricStreamOutput) String() string {
  6943  	return awsutil.Prettify(s)
  6944  }
  6945  
  6946  // GoString returns the string representation.
  6947  //
  6948  // API parameter values that are decorated as "sensitive" in the API will not
  6949  // be included in the string output. The member name will be present, but the
  6950  // value will be replaced with "sensitive".
  6951  func (s GetMetricStreamOutput) GoString() string {
  6952  	return s.String()
  6953  }
  6954  
  6955  // SetArn sets the Arn field's value.
  6956  func (s *GetMetricStreamOutput) SetArn(v string) *GetMetricStreamOutput {
  6957  	s.Arn = &v
  6958  	return s
  6959  }
  6960  
  6961  // SetCreationDate sets the CreationDate field's value.
  6962  func (s *GetMetricStreamOutput) SetCreationDate(v time.Time) *GetMetricStreamOutput {
  6963  	s.CreationDate = &v
  6964  	return s
  6965  }
  6966  
  6967  // SetExcludeFilters sets the ExcludeFilters field's value.
  6968  func (s *GetMetricStreamOutput) SetExcludeFilters(v []*MetricStreamFilter) *GetMetricStreamOutput {
  6969  	s.ExcludeFilters = v
  6970  	return s
  6971  }
  6972  
  6973  // SetFirehoseArn sets the FirehoseArn field's value.
  6974  func (s *GetMetricStreamOutput) SetFirehoseArn(v string) *GetMetricStreamOutput {
  6975  	s.FirehoseArn = &v
  6976  	return s
  6977  }
  6978  
  6979  // SetIncludeFilters sets the IncludeFilters field's value.
  6980  func (s *GetMetricStreamOutput) SetIncludeFilters(v []*MetricStreamFilter) *GetMetricStreamOutput {
  6981  	s.IncludeFilters = v
  6982  	return s
  6983  }
  6984  
  6985  // SetLastUpdateDate sets the LastUpdateDate field's value.
  6986  func (s *GetMetricStreamOutput) SetLastUpdateDate(v time.Time) *GetMetricStreamOutput {
  6987  	s.LastUpdateDate = &v
  6988  	return s
  6989  }
  6990  
  6991  // SetName sets the Name field's value.
  6992  func (s *GetMetricStreamOutput) SetName(v string) *GetMetricStreamOutput {
  6993  	s.Name = &v
  6994  	return s
  6995  }
  6996  
  6997  // SetOutputFormat sets the OutputFormat field's value.
  6998  func (s *GetMetricStreamOutput) SetOutputFormat(v string) *GetMetricStreamOutput {
  6999  	s.OutputFormat = &v
  7000  	return s
  7001  }
  7002  
  7003  // SetRoleArn sets the RoleArn field's value.
  7004  func (s *GetMetricStreamOutput) SetRoleArn(v string) *GetMetricStreamOutput {
  7005  	s.RoleArn = &v
  7006  	return s
  7007  }
  7008  
  7009  // SetState sets the State field's value.
  7010  func (s *GetMetricStreamOutput) SetState(v string) *GetMetricStreamOutput {
  7011  	s.State = &v
  7012  	return s
  7013  }
  7014  
  7015  type GetMetricWidgetImageInput struct {
  7016  	_ struct{} `type:"structure"`
  7017  
  7018  	// A JSON string that defines the bitmap graph to be retrieved. The string includes
  7019  	// the metrics to include in the graph, statistics, annotations, title, axis
  7020  	// limits, and so on. You can include only one MetricWidget parameter in each
  7021  	// GetMetricWidgetImage call.
  7022  	//
  7023  	// For more information about the syntax of MetricWidget see GetMetricWidgetImage:
  7024  	// Metric Widget Structure and Syntax (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Metric-Widget-Structure.html).
  7025  	//
  7026  	// If any metric on the graph could not load all the requested data points,
  7027  	// an orange triangle with an exclamation point appears next to the graph legend.
  7028  	//
  7029  	// MetricWidget is a required field
  7030  	MetricWidget *string `type:"string" required:"true"`
  7031  
  7032  	// The format of the resulting image. Only PNG images are supported.
  7033  	//
  7034  	// The default is png. If you specify png, the API returns an HTTP response
  7035  	// with the content-type set to text/xml. The image data is in a MetricWidgetImage
  7036  	// field. For example:
  7037  	//
  7038  	// <GetMetricWidgetImageResponse xmlns=<URLstring>>
  7039  	//
  7040  	// <GetMetricWidgetImageResult>
  7041  	//
  7042  	// <MetricWidgetImage>
  7043  	//
  7044  	// iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip...
  7045  	//
  7046  	// </MetricWidgetImage>
  7047  	//
  7048  	// </GetMetricWidgetImageResult>
  7049  	//
  7050  	// <ResponseMetadata>
  7051  	//
  7052  	// <RequestId>6f0d4192-4d42-11e8-82c1-f539a07e0e3b</RequestId>
  7053  	//
  7054  	// </ResponseMetadata>
  7055  	//
  7056  	// </GetMetricWidgetImageResponse>
  7057  	//
  7058  	// The image/png setting is intended only for custom HTTP requests. For most
  7059  	// use cases, and all actions using an Amazon Web Services SDK, you should use
  7060  	// png. If you specify image/png, the HTTP response has a content-type set to
  7061  	// image/png, and the body of the response is a PNG image.
  7062  	OutputFormat *string `type:"string"`
  7063  }
  7064  
  7065  // String returns the string representation.
  7066  //
  7067  // API parameter values that are decorated as "sensitive" in the API will not
  7068  // be included in the string output. The member name will be present, but the
  7069  // value will be replaced with "sensitive".
  7070  func (s GetMetricWidgetImageInput) String() string {
  7071  	return awsutil.Prettify(s)
  7072  }
  7073  
  7074  // GoString returns the string representation.
  7075  //
  7076  // API parameter values that are decorated as "sensitive" in the API will not
  7077  // be included in the string output. The member name will be present, but the
  7078  // value will be replaced with "sensitive".
  7079  func (s GetMetricWidgetImageInput) GoString() string {
  7080  	return s.String()
  7081  }
  7082  
  7083  // Validate inspects the fields of the type to determine if they are valid.
  7084  func (s *GetMetricWidgetImageInput) Validate() error {
  7085  	invalidParams := request.ErrInvalidParams{Context: "GetMetricWidgetImageInput"}
  7086  	if s.MetricWidget == nil {
  7087  		invalidParams.Add(request.NewErrParamRequired("MetricWidget"))
  7088  	}
  7089  
  7090  	if invalidParams.Len() > 0 {
  7091  		return invalidParams
  7092  	}
  7093  	return nil
  7094  }
  7095  
  7096  // SetMetricWidget sets the MetricWidget field's value.
  7097  func (s *GetMetricWidgetImageInput) SetMetricWidget(v string) *GetMetricWidgetImageInput {
  7098  	s.MetricWidget = &v
  7099  	return s
  7100  }
  7101  
  7102  // SetOutputFormat sets the OutputFormat field's value.
  7103  func (s *GetMetricWidgetImageInput) SetOutputFormat(v string) *GetMetricWidgetImageInput {
  7104  	s.OutputFormat = &v
  7105  	return s
  7106  }
  7107  
  7108  type GetMetricWidgetImageOutput struct {
  7109  	_ struct{} `type:"structure"`
  7110  
  7111  	// The image of the graph, in the output format specified. The output is base64-encoded.
  7112  	// MetricWidgetImage is automatically base64 encoded/decoded by the SDK.
  7113  	MetricWidgetImage []byte `type:"blob"`
  7114  }
  7115  
  7116  // String returns the string representation.
  7117  //
  7118  // API parameter values that are decorated as "sensitive" in the API will not
  7119  // be included in the string output. The member name will be present, but the
  7120  // value will be replaced with "sensitive".
  7121  func (s GetMetricWidgetImageOutput) String() string {
  7122  	return awsutil.Prettify(s)
  7123  }
  7124  
  7125  // GoString returns the string representation.
  7126  //
  7127  // API parameter values that are decorated as "sensitive" in the API will not
  7128  // be included in the string output. The member name will be present, but the
  7129  // value will be replaced with "sensitive".
  7130  func (s GetMetricWidgetImageOutput) GoString() string {
  7131  	return s.String()
  7132  }
  7133  
  7134  // SetMetricWidgetImage sets the MetricWidgetImage field's value.
  7135  func (s *GetMetricWidgetImageOutput) SetMetricWidgetImage(v []byte) *GetMetricWidgetImageOutput {
  7136  	s.MetricWidgetImage = v
  7137  	return s
  7138  }
  7139  
  7140  // This structure contains the definition for a Contributor Insights rule.
  7141  type InsightRule struct {
  7142  	_ struct{} `type:"structure"`
  7143  
  7144  	// The definition of the rule, as a JSON object. The definition contains the
  7145  	// keywords used to define contributors, the value to aggregate on if this rule
  7146  	// returns a sum instead of a count, and the filters. For details on the valid
  7147  	// syntax, see Contributor Insights Rule Syntax (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html).
  7148  	//
  7149  	// Definition is a required field
  7150  	Definition *string `min:"1" type:"string" required:"true"`
  7151  
  7152  	// The name of the rule.
  7153  	//
  7154  	// Name is a required field
  7155  	Name *string `min:"1" type:"string" required:"true"`
  7156  
  7157  	// For rules that you create, this is always {"Name": "CloudWatchLogRule", "Version":
  7158  	// 1}. For built-in rules, this is {"Name": "ServiceLogRule", "Version": 1}
  7159  	//
  7160  	// Schema is a required field
  7161  	Schema *string `type:"string" required:"true"`
  7162  
  7163  	// Indicates whether the rule is enabled or disabled.
  7164  	//
  7165  	// State is a required field
  7166  	State *string `min:"1" type:"string" required:"true"`
  7167  }
  7168  
  7169  // String returns the string representation.
  7170  //
  7171  // API parameter values that are decorated as "sensitive" in the API will not
  7172  // be included in the string output. The member name will be present, but the
  7173  // value will be replaced with "sensitive".
  7174  func (s InsightRule) String() string {
  7175  	return awsutil.Prettify(s)
  7176  }
  7177  
  7178  // GoString returns the string representation.
  7179  //
  7180  // API parameter values that are decorated as "sensitive" in the API will not
  7181  // be included in the string output. The member name will be present, but the
  7182  // value will be replaced with "sensitive".
  7183  func (s InsightRule) GoString() string {
  7184  	return s.String()
  7185  }
  7186  
  7187  // SetDefinition sets the Definition field's value.
  7188  func (s *InsightRule) SetDefinition(v string) *InsightRule {
  7189  	s.Definition = &v
  7190  	return s
  7191  }
  7192  
  7193  // SetName sets the Name field's value.
  7194  func (s *InsightRule) SetName(v string) *InsightRule {
  7195  	s.Name = &v
  7196  	return s
  7197  }
  7198  
  7199  // SetSchema sets the Schema field's value.
  7200  func (s *InsightRule) SetSchema(v string) *InsightRule {
  7201  	s.Schema = &v
  7202  	return s
  7203  }
  7204  
  7205  // SetState sets the State field's value.
  7206  func (s *InsightRule) SetState(v string) *InsightRule {
  7207  	s.State = &v
  7208  	return s
  7209  }
  7210  
  7211  // One of the unique contributors found by a Contributor Insights rule. If the
  7212  // rule contains multiple keys, then a unique contributor is a unique combination
  7213  // of values from all the keys in the rule.
  7214  //
  7215  // If the rule contains a single key, then each unique contributor is each unique
  7216  // value for this key.
  7217  //
  7218  // For more information, see GetInsightRuleReport (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetInsightRuleReport.html).
  7219  type InsightRuleContributor struct {
  7220  	_ struct{} `type:"structure"`
  7221  
  7222  	// An approximation of the aggregate value that comes from this contributor.
  7223  	//
  7224  	// ApproximateAggregateValue is a required field
  7225  	ApproximateAggregateValue *float64 `type:"double" required:"true"`
  7226  
  7227  	// An array of the data points where this contributor is present. Only the data
  7228  	// points when this contributor appeared are included in the array.
  7229  	//
  7230  	// Datapoints is a required field
  7231  	Datapoints []*InsightRuleContributorDatapoint `type:"list" required:"true"`
  7232  
  7233  	// One of the log entry field keywords that is used to define contributors for
  7234  	// this rule.
  7235  	//
  7236  	// Keys is a required field
  7237  	Keys []*string `type:"list" required:"true"`
  7238  }
  7239  
  7240  // String returns the string representation.
  7241  //
  7242  // API parameter values that are decorated as "sensitive" in the API will not
  7243  // be included in the string output. The member name will be present, but the
  7244  // value will be replaced with "sensitive".
  7245  func (s InsightRuleContributor) String() string {
  7246  	return awsutil.Prettify(s)
  7247  }
  7248  
  7249  // GoString returns the string representation.
  7250  //
  7251  // API parameter values that are decorated as "sensitive" in the API will not
  7252  // be included in the string output. The member name will be present, but the
  7253  // value will be replaced with "sensitive".
  7254  func (s InsightRuleContributor) GoString() string {
  7255  	return s.String()
  7256  }
  7257  
  7258  // SetApproximateAggregateValue sets the ApproximateAggregateValue field's value.
  7259  func (s *InsightRuleContributor) SetApproximateAggregateValue(v float64) *InsightRuleContributor {
  7260  	s.ApproximateAggregateValue = &v
  7261  	return s
  7262  }
  7263  
  7264  // SetDatapoints sets the Datapoints field's value.
  7265  func (s *InsightRuleContributor) SetDatapoints(v []*InsightRuleContributorDatapoint) *InsightRuleContributor {
  7266  	s.Datapoints = v
  7267  	return s
  7268  }
  7269  
  7270  // SetKeys sets the Keys field's value.
  7271  func (s *InsightRuleContributor) SetKeys(v []*string) *InsightRuleContributor {
  7272  	s.Keys = v
  7273  	return s
  7274  }
  7275  
  7276  // One data point related to one contributor.
  7277  //
  7278  // For more information, see GetInsightRuleReport (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetInsightRuleReport.html)
  7279  // and InsightRuleContributor (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_InsightRuleContributor.html).
  7280  type InsightRuleContributorDatapoint struct {
  7281  	_ struct{} `type:"structure"`
  7282  
  7283  	// The approximate value that this contributor added during this timestamp.
  7284  	//
  7285  	// ApproximateValue is a required field
  7286  	ApproximateValue *float64 `type:"double" required:"true"`
  7287  
  7288  	// The timestamp of the data point.
  7289  	//
  7290  	// Timestamp is a required field
  7291  	Timestamp *time.Time `type:"timestamp" required:"true"`
  7292  }
  7293  
  7294  // String returns the string representation.
  7295  //
  7296  // API parameter values that are decorated as "sensitive" in the API will not
  7297  // be included in the string output. The member name will be present, but the
  7298  // value will be replaced with "sensitive".
  7299  func (s InsightRuleContributorDatapoint) String() string {
  7300  	return awsutil.Prettify(s)
  7301  }
  7302  
  7303  // GoString returns the string representation.
  7304  //
  7305  // API parameter values that are decorated as "sensitive" in the API will not
  7306  // be included in the string output. The member name will be present, but the
  7307  // value will be replaced with "sensitive".
  7308  func (s InsightRuleContributorDatapoint) GoString() string {
  7309  	return s.String()
  7310  }
  7311  
  7312  // SetApproximateValue sets the ApproximateValue field's value.
  7313  func (s *InsightRuleContributorDatapoint) SetApproximateValue(v float64) *InsightRuleContributorDatapoint {
  7314  	s.ApproximateValue = &v
  7315  	return s
  7316  }
  7317  
  7318  // SetTimestamp sets the Timestamp field's value.
  7319  func (s *InsightRuleContributorDatapoint) SetTimestamp(v time.Time) *InsightRuleContributorDatapoint {
  7320  	s.Timestamp = &v
  7321  	return s
  7322  }
  7323  
  7324  // One data point from the metric time series returned in a Contributor Insights
  7325  // rule report.
  7326  //
  7327  // For more information, see GetInsightRuleReport (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetInsightRuleReport.html).
  7328  type InsightRuleMetricDatapoint struct {
  7329  	_ struct{} `type:"structure"`
  7330  
  7331  	// The average value from all contributors during the time period represented
  7332  	// by that data point.
  7333  	//
  7334  	// This statistic is returned only if you included it in the Metrics array in
  7335  	// your request.
  7336  	Average *float64 `type:"double"`
  7337  
  7338  	// The maximum value provided by one contributor during this timestamp. Each
  7339  	// timestamp is evaluated separately, so the identity of the max contributor
  7340  	// could be different for each timestamp.
  7341  	//
  7342  	// This statistic is returned only if you included it in the Metrics array in
  7343  	// your request.
  7344  	MaxContributorValue *float64 `type:"double"`
  7345  
  7346  	// The maximum value from a single occurence from a single contributor during
  7347  	// the time period represented by that data point.
  7348  	//
  7349  	// This statistic is returned only if you included it in the Metrics array in
  7350  	// your request.
  7351  	Maximum *float64 `type:"double"`
  7352  
  7353  	// The minimum value from a single contributor during the time period represented
  7354  	// by that data point.
  7355  	//
  7356  	// This statistic is returned only if you included it in the Metrics array in
  7357  	// your request.
  7358  	Minimum *float64 `type:"double"`
  7359  
  7360  	// The number of occurrences that matched the rule during this data point.
  7361  	//
  7362  	// This statistic is returned only if you included it in the Metrics array in
  7363  	// your request.
  7364  	SampleCount *float64 `type:"double"`
  7365  
  7366  	// The sum of the values from all contributors during the time period represented
  7367  	// by that data point.
  7368  	//
  7369  	// This statistic is returned only if you included it in the Metrics array in
  7370  	// your request.
  7371  	Sum *float64 `type:"double"`
  7372  
  7373  	// The timestamp of the data point.
  7374  	//
  7375  	// Timestamp is a required field
  7376  	Timestamp *time.Time `type:"timestamp" required:"true"`
  7377  
  7378  	// The number of unique contributors who published data during this timestamp.
  7379  	//
  7380  	// This statistic is returned only if you included it in the Metrics array in
  7381  	// your request.
  7382  	UniqueContributors *float64 `type:"double"`
  7383  }
  7384  
  7385  // String returns the string representation.
  7386  //
  7387  // API parameter values that are decorated as "sensitive" in the API will not
  7388  // be included in the string output. The member name will be present, but the
  7389  // value will be replaced with "sensitive".
  7390  func (s InsightRuleMetricDatapoint) String() string {
  7391  	return awsutil.Prettify(s)
  7392  }
  7393  
  7394  // GoString returns the string representation.
  7395  //
  7396  // API parameter values that are decorated as "sensitive" in the API will not
  7397  // be included in the string output. The member name will be present, but the
  7398  // value will be replaced with "sensitive".
  7399  func (s InsightRuleMetricDatapoint) GoString() string {
  7400  	return s.String()
  7401  }
  7402  
  7403  // SetAverage sets the Average field's value.
  7404  func (s *InsightRuleMetricDatapoint) SetAverage(v float64) *InsightRuleMetricDatapoint {
  7405  	s.Average = &v
  7406  	return s
  7407  }
  7408  
  7409  // SetMaxContributorValue sets the MaxContributorValue field's value.
  7410  func (s *InsightRuleMetricDatapoint) SetMaxContributorValue(v float64) *InsightRuleMetricDatapoint {
  7411  	s.MaxContributorValue = &v
  7412  	return s
  7413  }
  7414  
  7415  // SetMaximum sets the Maximum field's value.
  7416  func (s *InsightRuleMetricDatapoint) SetMaximum(v float64) *InsightRuleMetricDatapoint {
  7417  	s.Maximum = &v
  7418  	return s
  7419  }
  7420  
  7421  // SetMinimum sets the Minimum field's value.
  7422  func (s *InsightRuleMetricDatapoint) SetMinimum(v float64) *InsightRuleMetricDatapoint {
  7423  	s.Minimum = &v
  7424  	return s
  7425  }
  7426  
  7427  // SetSampleCount sets the SampleCount field's value.
  7428  func (s *InsightRuleMetricDatapoint) SetSampleCount(v float64) *InsightRuleMetricDatapoint {
  7429  	s.SampleCount = &v
  7430  	return s
  7431  }
  7432  
  7433  // SetSum sets the Sum field's value.
  7434  func (s *InsightRuleMetricDatapoint) SetSum(v float64) *InsightRuleMetricDatapoint {
  7435  	s.Sum = &v
  7436  	return s
  7437  }
  7438  
  7439  // SetTimestamp sets the Timestamp field's value.
  7440  func (s *InsightRuleMetricDatapoint) SetTimestamp(v time.Time) *InsightRuleMetricDatapoint {
  7441  	s.Timestamp = &v
  7442  	return s
  7443  }
  7444  
  7445  // SetUniqueContributors sets the UniqueContributors field's value.
  7446  func (s *InsightRuleMetricDatapoint) SetUniqueContributors(v float64) *InsightRuleMetricDatapoint {
  7447  	s.UniqueContributors = &v
  7448  	return s
  7449  }
  7450  
  7451  // This structure includes the Timezone parameter, which you can use to specify
  7452  // your time zone so that the labels that are associated with returned metrics
  7453  // display the correct time for your time zone.
  7454  //
  7455  // The Timezone value affects a label only if you have a time-based dynamic
  7456  // expression in the label. For more information about dynamic expressions in
  7457  // labels, see Using Dynamic Labels (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html).
  7458  type LabelOptions struct {
  7459  	_ struct{} `type:"structure"`
  7460  
  7461  	// The time zone to use for metric data return in this operation. The format
  7462  	// is + or - followed by four digits. The first two digits indicate the number
  7463  	// of hours ahead or behind of UTC, and the final two digits are the number
  7464  	// of minutes. For example, +0130 indicates a time zone that is 1 hour and 30
  7465  	// minutes ahead of UTC. The default is +0000.
  7466  	Timezone *string `type:"string"`
  7467  }
  7468  
  7469  // String returns the string representation.
  7470  //
  7471  // API parameter values that are decorated as "sensitive" in the API will not
  7472  // be included in the string output. The member name will be present, but the
  7473  // value will be replaced with "sensitive".
  7474  func (s LabelOptions) String() string {
  7475  	return awsutil.Prettify(s)
  7476  }
  7477  
  7478  // GoString returns the string representation.
  7479  //
  7480  // API parameter values that are decorated as "sensitive" in the API will not
  7481  // be included in the string output. The member name will be present, but the
  7482  // value will be replaced with "sensitive".
  7483  func (s LabelOptions) GoString() string {
  7484  	return s.String()
  7485  }
  7486  
  7487  // SetTimezone sets the Timezone field's value.
  7488  func (s *LabelOptions) SetTimezone(v string) *LabelOptions {
  7489  	s.Timezone = &v
  7490  	return s
  7491  }
  7492  
  7493  type ListDashboardsInput struct {
  7494  	_ struct{} `type:"structure"`
  7495  
  7496  	// If you specify this parameter, only the dashboards with names starting with
  7497  	// the specified string are listed. The maximum length is 255, and valid characters
  7498  	// are A-Z, a-z, 0-9, ".", "-", and "_".
  7499  	DashboardNamePrefix *string `type:"string"`
  7500  
  7501  	// The token returned by a previous call to indicate that there is more data
  7502  	// available.
  7503  	NextToken *string `type:"string"`
  7504  }
  7505  
  7506  // String returns the string representation.
  7507  //
  7508  // API parameter values that are decorated as "sensitive" in the API will not
  7509  // be included in the string output. The member name will be present, but the
  7510  // value will be replaced with "sensitive".
  7511  func (s ListDashboardsInput) String() string {
  7512  	return awsutil.Prettify(s)
  7513  }
  7514  
  7515  // GoString returns the string representation.
  7516  //
  7517  // API parameter values that are decorated as "sensitive" in the API will not
  7518  // be included in the string output. The member name will be present, but the
  7519  // value will be replaced with "sensitive".
  7520  func (s ListDashboardsInput) GoString() string {
  7521  	return s.String()
  7522  }
  7523  
  7524  // SetDashboardNamePrefix sets the DashboardNamePrefix field's value.
  7525  func (s *ListDashboardsInput) SetDashboardNamePrefix(v string) *ListDashboardsInput {
  7526  	s.DashboardNamePrefix = &v
  7527  	return s
  7528  }
  7529  
  7530  // SetNextToken sets the NextToken field's value.
  7531  func (s *ListDashboardsInput) SetNextToken(v string) *ListDashboardsInput {
  7532  	s.NextToken = &v
  7533  	return s
  7534  }
  7535  
  7536  type ListDashboardsOutput struct {
  7537  	_ struct{} `type:"structure"`
  7538  
  7539  	// The list of matching dashboards.
  7540  	DashboardEntries []*DashboardEntry `type:"list"`
  7541  
  7542  	// The token that marks the start of the next batch of returned results.
  7543  	NextToken *string `type:"string"`
  7544  }
  7545  
  7546  // String returns the string representation.
  7547  //
  7548  // API parameter values that are decorated as "sensitive" in the API will not
  7549  // be included in the string output. The member name will be present, but the
  7550  // value will be replaced with "sensitive".
  7551  func (s ListDashboardsOutput) String() string {
  7552  	return awsutil.Prettify(s)
  7553  }
  7554  
  7555  // GoString returns the string representation.
  7556  //
  7557  // API parameter values that are decorated as "sensitive" in the API will not
  7558  // be included in the string output. The member name will be present, but the
  7559  // value will be replaced with "sensitive".
  7560  func (s ListDashboardsOutput) GoString() string {
  7561  	return s.String()
  7562  }
  7563  
  7564  // SetDashboardEntries sets the DashboardEntries field's value.
  7565  func (s *ListDashboardsOutput) SetDashboardEntries(v []*DashboardEntry) *ListDashboardsOutput {
  7566  	s.DashboardEntries = v
  7567  	return s
  7568  }
  7569  
  7570  // SetNextToken sets the NextToken field's value.
  7571  func (s *ListDashboardsOutput) SetNextToken(v string) *ListDashboardsOutput {
  7572  	s.NextToken = &v
  7573  	return s
  7574  }
  7575  
  7576  type ListMetricStreamsInput struct {
  7577  	_ struct{} `type:"structure"`
  7578  
  7579  	// The maximum number of results to return in one operation.
  7580  	MaxResults *int64 `min:"1" type:"integer"`
  7581  
  7582  	// Include this value, if it was returned by the previous call, to get the next
  7583  	// set of metric streams.
  7584  	NextToken *string `type:"string"`
  7585  }
  7586  
  7587  // String returns the string representation.
  7588  //
  7589  // API parameter values that are decorated as "sensitive" in the API will not
  7590  // be included in the string output. The member name will be present, but the
  7591  // value will be replaced with "sensitive".
  7592  func (s ListMetricStreamsInput) String() string {
  7593  	return awsutil.Prettify(s)
  7594  }
  7595  
  7596  // GoString returns the string representation.
  7597  //
  7598  // API parameter values that are decorated as "sensitive" in the API will not
  7599  // be included in the string output. The member name will be present, but the
  7600  // value will be replaced with "sensitive".
  7601  func (s ListMetricStreamsInput) GoString() string {
  7602  	return s.String()
  7603  }
  7604  
  7605  // Validate inspects the fields of the type to determine if they are valid.
  7606  func (s *ListMetricStreamsInput) Validate() error {
  7607  	invalidParams := request.ErrInvalidParams{Context: "ListMetricStreamsInput"}
  7608  	if s.MaxResults != nil && *s.MaxResults < 1 {
  7609  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  7610  	}
  7611  
  7612  	if invalidParams.Len() > 0 {
  7613  		return invalidParams
  7614  	}
  7615  	return nil
  7616  }
  7617  
  7618  // SetMaxResults sets the MaxResults field's value.
  7619  func (s *ListMetricStreamsInput) SetMaxResults(v int64) *ListMetricStreamsInput {
  7620  	s.MaxResults = &v
  7621  	return s
  7622  }
  7623  
  7624  // SetNextToken sets the NextToken field's value.
  7625  func (s *ListMetricStreamsInput) SetNextToken(v string) *ListMetricStreamsInput {
  7626  	s.NextToken = &v
  7627  	return s
  7628  }
  7629  
  7630  type ListMetricStreamsOutput struct {
  7631  	_ struct{} `type:"structure"`
  7632  
  7633  	// The array of metric stream information.
  7634  	Entries []*MetricStreamEntry `type:"list"`
  7635  
  7636  	// The token that marks the start of the next batch of returned results. You
  7637  	// can use this token in a subsequent operation to get the next batch of results.
  7638  	NextToken *string `type:"string"`
  7639  }
  7640  
  7641  // String returns the string representation.
  7642  //
  7643  // API parameter values that are decorated as "sensitive" in the API will not
  7644  // be included in the string output. The member name will be present, but the
  7645  // value will be replaced with "sensitive".
  7646  func (s ListMetricStreamsOutput) String() string {
  7647  	return awsutil.Prettify(s)
  7648  }
  7649  
  7650  // GoString returns the string representation.
  7651  //
  7652  // API parameter values that are decorated as "sensitive" in the API will not
  7653  // be included in the string output. The member name will be present, but the
  7654  // value will be replaced with "sensitive".
  7655  func (s ListMetricStreamsOutput) GoString() string {
  7656  	return s.String()
  7657  }
  7658  
  7659  // SetEntries sets the Entries field's value.
  7660  func (s *ListMetricStreamsOutput) SetEntries(v []*MetricStreamEntry) *ListMetricStreamsOutput {
  7661  	s.Entries = v
  7662  	return s
  7663  }
  7664  
  7665  // SetNextToken sets the NextToken field's value.
  7666  func (s *ListMetricStreamsOutput) SetNextToken(v string) *ListMetricStreamsOutput {
  7667  	s.NextToken = &v
  7668  	return s
  7669  }
  7670  
  7671  type ListMetricsInput struct {
  7672  	_ struct{} `type:"structure"`
  7673  
  7674  	// The dimensions to filter against. Only the dimensions that match exactly
  7675  	// will be returned.
  7676  	Dimensions []*DimensionFilter `type:"list"`
  7677  
  7678  	// The name of the metric to filter against. Only the metrics with names that
  7679  	// match exactly will be returned.
  7680  	MetricName *string `min:"1" type:"string"`
  7681  
  7682  	// The metric namespace to filter against. Only the namespace that matches exactly
  7683  	// will be returned.
  7684  	Namespace *string `min:"1" type:"string"`
  7685  
  7686  	// The token returned by a previous call to indicate that there is more data
  7687  	// available.
  7688  	NextToken *string `type:"string"`
  7689  
  7690  	// To filter the results to show only metrics that have had data points published
  7691  	// in the past three hours, specify this parameter with a value of PT3H. This
  7692  	// is the only valid value for this parameter.
  7693  	//
  7694  	// The results that are returned are an approximation of the value you specify.
  7695  	// There is a low probability that the returned results include metrics with
  7696  	// last published data as much as 40 minutes more than the specified time interval.
  7697  	RecentlyActive *string `type:"string" enum:"RecentlyActive"`
  7698  }
  7699  
  7700  // String returns the string representation.
  7701  //
  7702  // API parameter values that are decorated as "sensitive" in the API will not
  7703  // be included in the string output. The member name will be present, but the
  7704  // value will be replaced with "sensitive".
  7705  func (s ListMetricsInput) String() string {
  7706  	return awsutil.Prettify(s)
  7707  }
  7708  
  7709  // GoString returns the string representation.
  7710  //
  7711  // API parameter values that are decorated as "sensitive" in the API will not
  7712  // be included in the string output. The member name will be present, but the
  7713  // value will be replaced with "sensitive".
  7714  func (s ListMetricsInput) GoString() string {
  7715  	return s.String()
  7716  }
  7717  
  7718  // Validate inspects the fields of the type to determine if they are valid.
  7719  func (s *ListMetricsInput) Validate() error {
  7720  	invalidParams := request.ErrInvalidParams{Context: "ListMetricsInput"}
  7721  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  7722  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  7723  	}
  7724  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  7725  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  7726  	}
  7727  	if s.Dimensions != nil {
  7728  		for i, v := range s.Dimensions {
  7729  			if v == nil {
  7730  				continue
  7731  			}
  7732  			if err := v.Validate(); err != nil {
  7733  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  7734  			}
  7735  		}
  7736  	}
  7737  
  7738  	if invalidParams.Len() > 0 {
  7739  		return invalidParams
  7740  	}
  7741  	return nil
  7742  }
  7743  
  7744  // SetDimensions sets the Dimensions field's value.
  7745  func (s *ListMetricsInput) SetDimensions(v []*DimensionFilter) *ListMetricsInput {
  7746  	s.Dimensions = v
  7747  	return s
  7748  }
  7749  
  7750  // SetMetricName sets the MetricName field's value.
  7751  func (s *ListMetricsInput) SetMetricName(v string) *ListMetricsInput {
  7752  	s.MetricName = &v
  7753  	return s
  7754  }
  7755  
  7756  // SetNamespace sets the Namespace field's value.
  7757  func (s *ListMetricsInput) SetNamespace(v string) *ListMetricsInput {
  7758  	s.Namespace = &v
  7759  	return s
  7760  }
  7761  
  7762  // SetNextToken sets the NextToken field's value.
  7763  func (s *ListMetricsInput) SetNextToken(v string) *ListMetricsInput {
  7764  	s.NextToken = &v
  7765  	return s
  7766  }
  7767  
  7768  // SetRecentlyActive sets the RecentlyActive field's value.
  7769  func (s *ListMetricsInput) SetRecentlyActive(v string) *ListMetricsInput {
  7770  	s.RecentlyActive = &v
  7771  	return s
  7772  }
  7773  
  7774  type ListMetricsOutput struct {
  7775  	_ struct{} `type:"structure"`
  7776  
  7777  	// The metrics that match your request.
  7778  	Metrics []*Metric `type:"list"`
  7779  
  7780  	// The token that marks the start of the next batch of returned results.
  7781  	NextToken *string `type:"string"`
  7782  }
  7783  
  7784  // String returns the string representation.
  7785  //
  7786  // API parameter values that are decorated as "sensitive" in the API will not
  7787  // be included in the string output. The member name will be present, but the
  7788  // value will be replaced with "sensitive".
  7789  func (s ListMetricsOutput) String() string {
  7790  	return awsutil.Prettify(s)
  7791  }
  7792  
  7793  // GoString returns the string representation.
  7794  //
  7795  // API parameter values that are decorated as "sensitive" in the API will not
  7796  // be included in the string output. The member name will be present, but the
  7797  // value will be replaced with "sensitive".
  7798  func (s ListMetricsOutput) GoString() string {
  7799  	return s.String()
  7800  }
  7801  
  7802  // SetMetrics sets the Metrics field's value.
  7803  func (s *ListMetricsOutput) SetMetrics(v []*Metric) *ListMetricsOutput {
  7804  	s.Metrics = v
  7805  	return s
  7806  }
  7807  
  7808  // SetNextToken sets the NextToken field's value.
  7809  func (s *ListMetricsOutput) SetNextToken(v string) *ListMetricsOutput {
  7810  	s.NextToken = &v
  7811  	return s
  7812  }
  7813  
  7814  type ListTagsForResourceInput struct {
  7815  	_ struct{} `type:"structure"`
  7816  
  7817  	// The ARN of the CloudWatch resource that you want to view tags for.
  7818  	//
  7819  	// The ARN format of an alarm is arn:aws:cloudwatch:Region:account-id:alarm:alarm-name
  7820  	//
  7821  	// The ARN format of a Contributor Insights rule is arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name
  7822  	//
  7823  	// For more information about ARN format, see Resource Types Defined by Amazon
  7824  	// CloudWatch (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies)
  7825  	// in the Amazon Web Services General Reference.
  7826  	//
  7827  	// ResourceARN is a required field
  7828  	ResourceARN *string `min:"1" type:"string" required:"true"`
  7829  }
  7830  
  7831  // String returns the string representation.
  7832  //
  7833  // API parameter values that are decorated as "sensitive" in the API will not
  7834  // be included in the string output. The member name will be present, but the
  7835  // value will be replaced with "sensitive".
  7836  func (s ListTagsForResourceInput) String() string {
  7837  	return awsutil.Prettify(s)
  7838  }
  7839  
  7840  // GoString returns the string representation.
  7841  //
  7842  // API parameter values that are decorated as "sensitive" in the API will not
  7843  // be included in the string output. The member name will be present, but the
  7844  // value will be replaced with "sensitive".
  7845  func (s ListTagsForResourceInput) GoString() string {
  7846  	return s.String()
  7847  }
  7848  
  7849  // Validate inspects the fields of the type to determine if they are valid.
  7850  func (s *ListTagsForResourceInput) Validate() error {
  7851  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  7852  	if s.ResourceARN == nil {
  7853  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  7854  	}
  7855  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
  7856  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
  7857  	}
  7858  
  7859  	if invalidParams.Len() > 0 {
  7860  		return invalidParams
  7861  	}
  7862  	return nil
  7863  }
  7864  
  7865  // SetResourceARN sets the ResourceARN field's value.
  7866  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
  7867  	s.ResourceARN = &v
  7868  	return s
  7869  }
  7870  
  7871  type ListTagsForResourceOutput struct {
  7872  	_ struct{} `type:"structure"`
  7873  
  7874  	// The list of tag keys and values associated with the resource you specified.
  7875  	Tags []*Tag `type:"list"`
  7876  }
  7877  
  7878  // String returns the string representation.
  7879  //
  7880  // API parameter values that are decorated as "sensitive" in the API will not
  7881  // be included in the string output. The member name will be present, but the
  7882  // value will be replaced with "sensitive".
  7883  func (s ListTagsForResourceOutput) String() string {
  7884  	return awsutil.Prettify(s)
  7885  }
  7886  
  7887  // GoString returns the string representation.
  7888  //
  7889  // API parameter values that are decorated as "sensitive" in the API will not
  7890  // be included in the string output. The member name will be present, but the
  7891  // value will be replaced with "sensitive".
  7892  func (s ListTagsForResourceOutput) GoString() string {
  7893  	return s.String()
  7894  }
  7895  
  7896  // SetTags sets the Tags field's value.
  7897  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
  7898  	s.Tags = v
  7899  	return s
  7900  }
  7901  
  7902  // A message returned by the GetMetricDataAPI, including a code and a description.
  7903  //
  7904  // If a cross-Region GetMetricData operation fails with a code of Forbidden
  7905  // and a value of Authentication too complex to retrieve cross region data,
  7906  // you can correct the problem by running the GetMetricData operation in the
  7907  // same Region where the metric data is.
  7908  type MessageData struct {
  7909  	_ struct{} `type:"structure"`
  7910  
  7911  	// The error code or status code associated with the message.
  7912  	Code *string `type:"string"`
  7913  
  7914  	// The message text.
  7915  	Value *string `type:"string"`
  7916  }
  7917  
  7918  // String returns the string representation.
  7919  //
  7920  // API parameter values that are decorated as "sensitive" in the API will not
  7921  // be included in the string output. The member name will be present, but the
  7922  // value will be replaced with "sensitive".
  7923  func (s MessageData) String() string {
  7924  	return awsutil.Prettify(s)
  7925  }
  7926  
  7927  // GoString returns the string representation.
  7928  //
  7929  // API parameter values that are decorated as "sensitive" in the API will not
  7930  // be included in the string output. The member name will be present, but the
  7931  // value will be replaced with "sensitive".
  7932  func (s MessageData) GoString() string {
  7933  	return s.String()
  7934  }
  7935  
  7936  // SetCode sets the Code field's value.
  7937  func (s *MessageData) SetCode(v string) *MessageData {
  7938  	s.Code = &v
  7939  	return s
  7940  }
  7941  
  7942  // SetValue sets the Value field's value.
  7943  func (s *MessageData) SetValue(v string) *MessageData {
  7944  	s.Value = &v
  7945  	return s
  7946  }
  7947  
  7948  // Represents a specific metric.
  7949  type Metric struct {
  7950  	_ struct{} `type:"structure"`
  7951  
  7952  	// The dimensions for the metric.
  7953  	Dimensions []*Dimension `type:"list"`
  7954  
  7955  	// The name of the metric. This is a required field.
  7956  	MetricName *string `min:"1" type:"string"`
  7957  
  7958  	// The namespace of the metric.
  7959  	Namespace *string `min:"1" type:"string"`
  7960  }
  7961  
  7962  // String returns the string representation.
  7963  //
  7964  // API parameter values that are decorated as "sensitive" in the API will not
  7965  // be included in the string output. The member name will be present, but the
  7966  // value will be replaced with "sensitive".
  7967  func (s Metric) String() string {
  7968  	return awsutil.Prettify(s)
  7969  }
  7970  
  7971  // GoString returns the string representation.
  7972  //
  7973  // API parameter values that are decorated as "sensitive" in the API will not
  7974  // be included in the string output. The member name will be present, but the
  7975  // value will be replaced with "sensitive".
  7976  func (s Metric) GoString() string {
  7977  	return s.String()
  7978  }
  7979  
  7980  // Validate inspects the fields of the type to determine if they are valid.
  7981  func (s *Metric) Validate() error {
  7982  	invalidParams := request.ErrInvalidParams{Context: "Metric"}
  7983  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  7984  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  7985  	}
  7986  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  7987  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  7988  	}
  7989  	if s.Dimensions != nil {
  7990  		for i, v := range s.Dimensions {
  7991  			if v == nil {
  7992  				continue
  7993  			}
  7994  			if err := v.Validate(); err != nil {
  7995  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  7996  			}
  7997  		}
  7998  	}
  7999  
  8000  	if invalidParams.Len() > 0 {
  8001  		return invalidParams
  8002  	}
  8003  	return nil
  8004  }
  8005  
  8006  // SetDimensions sets the Dimensions field's value.
  8007  func (s *Metric) SetDimensions(v []*Dimension) *Metric {
  8008  	s.Dimensions = v
  8009  	return s
  8010  }
  8011  
  8012  // SetMetricName sets the MetricName field's value.
  8013  func (s *Metric) SetMetricName(v string) *Metric {
  8014  	s.MetricName = &v
  8015  	return s
  8016  }
  8017  
  8018  // SetNamespace sets the Namespace field's value.
  8019  func (s *Metric) SetNamespace(v string) *Metric {
  8020  	s.Namespace = &v
  8021  	return s
  8022  }
  8023  
  8024  // The details about a metric alarm.
  8025  type MetricAlarm struct {
  8026  	_ struct{} `type:"structure"`
  8027  
  8028  	// Indicates whether actions should be executed during any changes to the alarm
  8029  	// state.
  8030  	ActionsEnabled *bool `type:"boolean"`
  8031  
  8032  	// The actions to execute when this alarm transitions to the ALARM state from
  8033  	// any other state. Each action is specified as an Amazon Resource Name (ARN).
  8034  	AlarmActions []*string `type:"list"`
  8035  
  8036  	// The Amazon Resource Name (ARN) of the alarm.
  8037  	AlarmArn *string `min:"1" type:"string"`
  8038  
  8039  	// The time stamp of the last update to the alarm configuration.
  8040  	AlarmConfigurationUpdatedTimestamp *time.Time `type:"timestamp"`
  8041  
  8042  	// The description of the alarm.
  8043  	AlarmDescription *string `type:"string"`
  8044  
  8045  	// The name of the alarm.
  8046  	AlarmName *string `min:"1" type:"string"`
  8047  
  8048  	// The arithmetic operation to use when comparing the specified statistic and
  8049  	// threshold. The specified statistic value is used as the first operand.
  8050  	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
  8051  
  8052  	// The number of data points that must be breaching to trigger the alarm.
  8053  	DatapointsToAlarm *int64 `min:"1" type:"integer"`
  8054  
  8055  	// The dimensions for the metric associated with the alarm.
  8056  	Dimensions []*Dimension `type:"list"`
  8057  
  8058  	// Used only for alarms based on percentiles. If ignore, the alarm state does
  8059  	// not change during periods with too few data points to be statistically significant.
  8060  	// If evaluate or this parameter is not used, the alarm is always evaluated
  8061  	// and possibly changes state no matter how many data points are available.
  8062  	EvaluateLowSampleCountPercentile *string `min:"1" type:"string"`
  8063  
  8064  	// The number of periods over which data is compared to the specified threshold.
  8065  	EvaluationPeriods *int64 `min:"1" type:"integer"`
  8066  
  8067  	// The percentile statistic for the metric associated with the alarm. Specify
  8068  	// a value between p0.0 and p100.
  8069  	ExtendedStatistic *string `type:"string"`
  8070  
  8071  	// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA
  8072  	// state from any other state. Each action is specified as an Amazon Resource
  8073  	// Name (ARN).
  8074  	InsufficientDataActions []*string `type:"list"`
  8075  
  8076  	// The name of the metric associated with the alarm, if this is an alarm based
  8077  	// on a single metric.
  8078  	MetricName *string `min:"1" type:"string"`
  8079  
  8080  	// An array of MetricDataQuery structures, used in an alarm based on a metric
  8081  	// math expression. Each structure either retrieves a metric or performs a math
  8082  	// expression. One item in the Metrics array is the math expression that the
  8083  	// alarm watches. This expression by designated by having ReturnData set to
  8084  	// true.
  8085  	Metrics []*MetricDataQuery `type:"list"`
  8086  
  8087  	// The namespace of the metric associated with the alarm.
  8088  	Namespace *string `min:"1" type:"string"`
  8089  
  8090  	// The actions to execute when this alarm transitions to the OK state from any
  8091  	// other state. Each action is specified as an Amazon Resource Name (ARN).
  8092  	OKActions []*string `type:"list"`
  8093  
  8094  	// The period, in seconds, over which the statistic is applied.
  8095  	Period *int64 `min:"1" type:"integer"`
  8096  
  8097  	// An explanation for the alarm state, in text format.
  8098  	StateReason *string `type:"string"`
  8099  
  8100  	// An explanation for the alarm state, in JSON format.
  8101  	StateReasonData *string `type:"string"`
  8102  
  8103  	// The time stamp of the last update to the alarm state.
  8104  	StateUpdatedTimestamp *time.Time `type:"timestamp"`
  8105  
  8106  	// The state value for the alarm.
  8107  	StateValue *string `type:"string" enum:"StateValue"`
  8108  
  8109  	// The statistic for the metric associated with the alarm, other than percentile.
  8110  	// For percentile statistics, use ExtendedStatistic.
  8111  	Statistic *string `type:"string" enum:"Statistic"`
  8112  
  8113  	// The value to compare with the specified statistic.
  8114  	Threshold *float64 `type:"double"`
  8115  
  8116  	// In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND
  8117  	// function used as the threshold for the alarm.
  8118  	ThresholdMetricId *string `min:"1" type:"string"`
  8119  
  8120  	// Sets how this alarm is to handle missing data points. If this parameter is
  8121  	// omitted, the default behavior of missing is used.
  8122  	TreatMissingData *string `min:"1" type:"string"`
  8123  
  8124  	// The unit of the metric associated with the alarm.
  8125  	Unit *string `type:"string" enum:"StandardUnit"`
  8126  }
  8127  
  8128  // String returns the string representation.
  8129  //
  8130  // API parameter values that are decorated as "sensitive" in the API will not
  8131  // be included in the string output. The member name will be present, but the
  8132  // value will be replaced with "sensitive".
  8133  func (s MetricAlarm) String() string {
  8134  	return awsutil.Prettify(s)
  8135  }
  8136  
  8137  // GoString returns the string representation.
  8138  //
  8139  // API parameter values that are decorated as "sensitive" in the API will not
  8140  // be included in the string output. The member name will be present, but the
  8141  // value will be replaced with "sensitive".
  8142  func (s MetricAlarm) GoString() string {
  8143  	return s.String()
  8144  }
  8145  
  8146  // SetActionsEnabled sets the ActionsEnabled field's value.
  8147  func (s *MetricAlarm) SetActionsEnabled(v bool) *MetricAlarm {
  8148  	s.ActionsEnabled = &v
  8149  	return s
  8150  }
  8151  
  8152  // SetAlarmActions sets the AlarmActions field's value.
  8153  func (s *MetricAlarm) SetAlarmActions(v []*string) *MetricAlarm {
  8154  	s.AlarmActions = v
  8155  	return s
  8156  }
  8157  
  8158  // SetAlarmArn sets the AlarmArn field's value.
  8159  func (s *MetricAlarm) SetAlarmArn(v string) *MetricAlarm {
  8160  	s.AlarmArn = &v
  8161  	return s
  8162  }
  8163  
  8164  // SetAlarmConfigurationUpdatedTimestamp sets the AlarmConfigurationUpdatedTimestamp field's value.
  8165  func (s *MetricAlarm) SetAlarmConfigurationUpdatedTimestamp(v time.Time) *MetricAlarm {
  8166  	s.AlarmConfigurationUpdatedTimestamp = &v
  8167  	return s
  8168  }
  8169  
  8170  // SetAlarmDescription sets the AlarmDescription field's value.
  8171  func (s *MetricAlarm) SetAlarmDescription(v string) *MetricAlarm {
  8172  	s.AlarmDescription = &v
  8173  	return s
  8174  }
  8175  
  8176  // SetAlarmName sets the AlarmName field's value.
  8177  func (s *MetricAlarm) SetAlarmName(v string) *MetricAlarm {
  8178  	s.AlarmName = &v
  8179  	return s
  8180  }
  8181  
  8182  // SetComparisonOperator sets the ComparisonOperator field's value.
  8183  func (s *MetricAlarm) SetComparisonOperator(v string) *MetricAlarm {
  8184  	s.ComparisonOperator = &v
  8185  	return s
  8186  }
  8187  
  8188  // SetDatapointsToAlarm sets the DatapointsToAlarm field's value.
  8189  func (s *MetricAlarm) SetDatapointsToAlarm(v int64) *MetricAlarm {
  8190  	s.DatapointsToAlarm = &v
  8191  	return s
  8192  }
  8193  
  8194  // SetDimensions sets the Dimensions field's value.
  8195  func (s *MetricAlarm) SetDimensions(v []*Dimension) *MetricAlarm {
  8196  	s.Dimensions = v
  8197  	return s
  8198  }
  8199  
  8200  // SetEvaluateLowSampleCountPercentile sets the EvaluateLowSampleCountPercentile field's value.
  8201  func (s *MetricAlarm) SetEvaluateLowSampleCountPercentile(v string) *MetricAlarm {
  8202  	s.EvaluateLowSampleCountPercentile = &v
  8203  	return s
  8204  }
  8205  
  8206  // SetEvaluationPeriods sets the EvaluationPeriods field's value.
  8207  func (s *MetricAlarm) SetEvaluationPeriods(v int64) *MetricAlarm {
  8208  	s.EvaluationPeriods = &v
  8209  	return s
  8210  }
  8211  
  8212  // SetExtendedStatistic sets the ExtendedStatistic field's value.
  8213  func (s *MetricAlarm) SetExtendedStatistic(v string) *MetricAlarm {
  8214  	s.ExtendedStatistic = &v
  8215  	return s
  8216  }
  8217  
  8218  // SetInsufficientDataActions sets the InsufficientDataActions field's value.
  8219  func (s *MetricAlarm) SetInsufficientDataActions(v []*string) *MetricAlarm {
  8220  	s.InsufficientDataActions = v
  8221  	return s
  8222  }
  8223  
  8224  // SetMetricName sets the MetricName field's value.
  8225  func (s *MetricAlarm) SetMetricName(v string) *MetricAlarm {
  8226  	s.MetricName = &v
  8227  	return s
  8228  }
  8229  
  8230  // SetMetrics sets the Metrics field's value.
  8231  func (s *MetricAlarm) SetMetrics(v []*MetricDataQuery) *MetricAlarm {
  8232  	s.Metrics = v
  8233  	return s
  8234  }
  8235  
  8236  // SetNamespace sets the Namespace field's value.
  8237  func (s *MetricAlarm) SetNamespace(v string) *MetricAlarm {
  8238  	s.Namespace = &v
  8239  	return s
  8240  }
  8241  
  8242  // SetOKActions sets the OKActions field's value.
  8243  func (s *MetricAlarm) SetOKActions(v []*string) *MetricAlarm {
  8244  	s.OKActions = v
  8245  	return s
  8246  }
  8247  
  8248  // SetPeriod sets the Period field's value.
  8249  func (s *MetricAlarm) SetPeriod(v int64) *MetricAlarm {
  8250  	s.Period = &v
  8251  	return s
  8252  }
  8253  
  8254  // SetStateReason sets the StateReason field's value.
  8255  func (s *MetricAlarm) SetStateReason(v string) *MetricAlarm {
  8256  	s.StateReason = &v
  8257  	return s
  8258  }
  8259  
  8260  // SetStateReasonData sets the StateReasonData field's value.
  8261  func (s *MetricAlarm) SetStateReasonData(v string) *MetricAlarm {
  8262  	s.StateReasonData = &v
  8263  	return s
  8264  }
  8265  
  8266  // SetStateUpdatedTimestamp sets the StateUpdatedTimestamp field's value.
  8267  func (s *MetricAlarm) SetStateUpdatedTimestamp(v time.Time) *MetricAlarm {
  8268  	s.StateUpdatedTimestamp = &v
  8269  	return s
  8270  }
  8271  
  8272  // SetStateValue sets the StateValue field's value.
  8273  func (s *MetricAlarm) SetStateValue(v string) *MetricAlarm {
  8274  	s.StateValue = &v
  8275  	return s
  8276  }
  8277  
  8278  // SetStatistic sets the Statistic field's value.
  8279  func (s *MetricAlarm) SetStatistic(v string) *MetricAlarm {
  8280  	s.Statistic = &v
  8281  	return s
  8282  }
  8283  
  8284  // SetThreshold sets the Threshold field's value.
  8285  func (s *MetricAlarm) SetThreshold(v float64) *MetricAlarm {
  8286  	s.Threshold = &v
  8287  	return s
  8288  }
  8289  
  8290  // SetThresholdMetricId sets the ThresholdMetricId field's value.
  8291  func (s *MetricAlarm) SetThresholdMetricId(v string) *MetricAlarm {
  8292  	s.ThresholdMetricId = &v
  8293  	return s
  8294  }
  8295  
  8296  // SetTreatMissingData sets the TreatMissingData field's value.
  8297  func (s *MetricAlarm) SetTreatMissingData(v string) *MetricAlarm {
  8298  	s.TreatMissingData = &v
  8299  	return s
  8300  }
  8301  
  8302  // SetUnit sets the Unit field's value.
  8303  func (s *MetricAlarm) SetUnit(v string) *MetricAlarm {
  8304  	s.Unit = &v
  8305  	return s
  8306  }
  8307  
  8308  // This structure is used in both GetMetricData and PutMetricAlarm. The supported
  8309  // use of this structure is different for those two operations.
  8310  //
  8311  // When used in GetMetricData, it indicates the metric data to return, and whether
  8312  // this call is just retrieving a batch set of data for one metric, or is performing
  8313  // a math expression on metric data. A single GetMetricData call can include
  8314  // up to 500 MetricDataQuery structures.
  8315  //
  8316  // When used in PutMetricAlarm, it enables you to create an alarm based on a
  8317  // metric math expression. Each MetricDataQuery in the array specifies either
  8318  // a metric to retrieve, or a math expression to be performed on retrieved metrics.
  8319  // A single PutMetricAlarm call can include up to 20 MetricDataQuery structures
  8320  // in the array. The 20 structures can include as many as 10 structures that
  8321  // contain a MetricStat parameter to retrieve a metric, and as many as 10 structures
  8322  // that contain the Expression parameter to perform a math expression. Of those
  8323  // Expression structures, one must have True as the value for ReturnData. The
  8324  // result of this expression is the value the alarm watches.
  8325  //
  8326  // Any expression used in a PutMetricAlarm operation must return a single time
  8327  // series. For more information, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
  8328  // in the Amazon CloudWatch User Guide.
  8329  //
  8330  // Some of the parameters of this structure also have different uses whether
  8331  // you are using this structure in a GetMetricData operation or a PutMetricAlarm
  8332  // operation. These differences are explained in the following parameter list.
  8333  type MetricDataQuery struct {
  8334  	_ struct{} `type:"structure"`
  8335  
  8336  	// The ID of the account where the metrics are located, if this is a cross-account
  8337  	// alarm.
  8338  	//
  8339  	// Use this field only for PutMetricAlarm operations. It is not used in GetMetricData
  8340  	// operations.
  8341  	AccountId *string `min:"1" type:"string"`
  8342  
  8343  	// The math expression to be performed on the returned data, if this object
  8344  	// is performing a math expression. This expression can use the Id of the other
  8345  	// metrics to refer to those metrics, and can also use the Id of other expressions
  8346  	// to use the result of those expressions. For more information about metric
  8347  	// math expressions, see Metric Math Syntax and Functions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
  8348  	// in the Amazon CloudWatch User Guide.
  8349  	//
  8350  	// Within each MetricDataQuery object, you must specify either Expression or
  8351  	// MetricStat but not both.
  8352  	Expression *string `min:"1" type:"string"`
  8353  
  8354  	// A short name used to tie this object to the results in the response. This
  8355  	// name must be unique within a single call to GetMetricData. If you are performing
  8356  	// math expressions on this set of data, this name represents that data and
  8357  	// can serve as a variable in the mathematical expression. The valid characters
  8358  	// are letters, numbers, and underscore. The first character must be a lowercase
  8359  	// letter.
  8360  	//
  8361  	// Id is a required field
  8362  	Id *string `min:"1" type:"string" required:"true"`
  8363  
  8364  	// A human-readable label for this metric or expression. This is especially
  8365  	// useful if this is an expression, so that you know what the value represents.
  8366  	// If the metric or expression is shown in a CloudWatch dashboard widget, the
  8367  	// label is shown. If Label is omitted, CloudWatch generates a default.
  8368  	//
  8369  	// You can put dynamic expressions into a label, so that it is more descriptive.
  8370  	// For more information, see Using Dynamic Labels (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph-dynamic-labels.html).
  8371  	Label *string `type:"string"`
  8372  
  8373  	// The metric to be returned, along with statistics, period, and units. Use
  8374  	// this parameter only if this object is retrieving a metric and not performing
  8375  	// a math expression on returned data.
  8376  	//
  8377  	// Within one MetricDataQuery object, you must specify either Expression or
  8378  	// MetricStat but not both.
  8379  	MetricStat *MetricStat `type:"structure"`
  8380  
  8381  	// The granularity, in seconds, of the returned data points. For metrics with
  8382  	// regular resolution, a period can be as short as one minute (60 seconds) and
  8383  	// must be a multiple of 60. For high-resolution metrics that are collected
  8384  	// at intervals of less than one minute, the period can be 1, 5, 10, 30, 60,
  8385  	// or any multiple of 60. High-resolution metrics are those metrics stored by
  8386  	// a PutMetricData operation that includes a StorageResolution of 1 second.
  8387  	Period *int64 `min:"1" type:"integer"`
  8388  
  8389  	// When used in GetMetricData, this option indicates whether to return the timestamps
  8390  	// and raw data values of this metric. If you are performing this call just
  8391  	// to do math expressions and do not also need the raw data returned, you can
  8392  	// specify False. If you omit this, the default of True is used.
  8393  	//
  8394  	// When used in PutMetricAlarm, specify True for the one expression result to
  8395  	// use as the alarm. For all other metrics and expressions in the same PutMetricAlarm
  8396  	// operation, specify ReturnData as False.
  8397  	ReturnData *bool `type:"boolean"`
  8398  }
  8399  
  8400  // String returns the string representation.
  8401  //
  8402  // API parameter values that are decorated as "sensitive" in the API will not
  8403  // be included in the string output. The member name will be present, but the
  8404  // value will be replaced with "sensitive".
  8405  func (s MetricDataQuery) String() string {
  8406  	return awsutil.Prettify(s)
  8407  }
  8408  
  8409  // GoString returns the string representation.
  8410  //
  8411  // API parameter values that are decorated as "sensitive" in the API will not
  8412  // be included in the string output. The member name will be present, but the
  8413  // value will be replaced with "sensitive".
  8414  func (s MetricDataQuery) GoString() string {
  8415  	return s.String()
  8416  }
  8417  
  8418  // Validate inspects the fields of the type to determine if they are valid.
  8419  func (s *MetricDataQuery) Validate() error {
  8420  	invalidParams := request.ErrInvalidParams{Context: "MetricDataQuery"}
  8421  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8422  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8423  	}
  8424  	if s.Expression != nil && len(*s.Expression) < 1 {
  8425  		invalidParams.Add(request.NewErrParamMinLen("Expression", 1))
  8426  	}
  8427  	if s.Id == nil {
  8428  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8429  	}
  8430  	if s.Id != nil && len(*s.Id) < 1 {
  8431  		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
  8432  	}
  8433  	if s.Period != nil && *s.Period < 1 {
  8434  		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
  8435  	}
  8436  	if s.MetricStat != nil {
  8437  		if err := s.MetricStat.Validate(); err != nil {
  8438  			invalidParams.AddNested("MetricStat", err.(request.ErrInvalidParams))
  8439  		}
  8440  	}
  8441  
  8442  	if invalidParams.Len() > 0 {
  8443  		return invalidParams
  8444  	}
  8445  	return nil
  8446  }
  8447  
  8448  // SetAccountId sets the AccountId field's value.
  8449  func (s *MetricDataQuery) SetAccountId(v string) *MetricDataQuery {
  8450  	s.AccountId = &v
  8451  	return s
  8452  }
  8453  
  8454  // SetExpression sets the Expression field's value.
  8455  func (s *MetricDataQuery) SetExpression(v string) *MetricDataQuery {
  8456  	s.Expression = &v
  8457  	return s
  8458  }
  8459  
  8460  // SetId sets the Id field's value.
  8461  func (s *MetricDataQuery) SetId(v string) *MetricDataQuery {
  8462  	s.Id = &v
  8463  	return s
  8464  }
  8465  
  8466  // SetLabel sets the Label field's value.
  8467  func (s *MetricDataQuery) SetLabel(v string) *MetricDataQuery {
  8468  	s.Label = &v
  8469  	return s
  8470  }
  8471  
  8472  // SetMetricStat sets the MetricStat field's value.
  8473  func (s *MetricDataQuery) SetMetricStat(v *MetricStat) *MetricDataQuery {
  8474  	s.MetricStat = v
  8475  	return s
  8476  }
  8477  
  8478  // SetPeriod sets the Period field's value.
  8479  func (s *MetricDataQuery) SetPeriod(v int64) *MetricDataQuery {
  8480  	s.Period = &v
  8481  	return s
  8482  }
  8483  
  8484  // SetReturnData sets the ReturnData field's value.
  8485  func (s *MetricDataQuery) SetReturnData(v bool) *MetricDataQuery {
  8486  	s.ReturnData = &v
  8487  	return s
  8488  }
  8489  
  8490  // A GetMetricData call returns an array of MetricDataResult structures. Each
  8491  // of these structures includes the data points for that metric, along with
  8492  // the timestamps of those data points and other identifying information.
  8493  type MetricDataResult struct {
  8494  	_ struct{} `type:"structure"`
  8495  
  8496  	// The short name you specified to represent this metric.
  8497  	Id *string `min:"1" type:"string"`
  8498  
  8499  	// The human-readable label associated with the data.
  8500  	Label *string `type:"string"`
  8501  
  8502  	// A list of messages with additional information about the data returned.
  8503  	Messages []*MessageData `type:"list"`
  8504  
  8505  	// The status of the returned data. Complete indicates that all data points
  8506  	// in the requested time range were returned. PartialData means that an incomplete
  8507  	// set of data points were returned. You can use the NextToken value that was
  8508  	// returned and repeat your request to get more data points. NextToken is not
  8509  	// returned if you are performing a math expression. InternalError indicates
  8510  	// that an error occurred. Retry your request using NextToken, if present.
  8511  	StatusCode *string `type:"string" enum:"StatusCode"`
  8512  
  8513  	// The timestamps for the data points, formatted in Unix timestamp format. The
  8514  	// number of timestamps always matches the number of values and the value for
  8515  	// Timestamps[x] is Values[x].
  8516  	Timestamps []*time.Time `type:"list"`
  8517  
  8518  	// The data points for the metric corresponding to Timestamps. The number of
  8519  	// values always matches the number of timestamps and the timestamp for Values[x]
  8520  	// is Timestamps[x].
  8521  	Values []*float64 `type:"list"`
  8522  }
  8523  
  8524  // String returns the string representation.
  8525  //
  8526  // API parameter values that are decorated as "sensitive" in the API will not
  8527  // be included in the string output. The member name will be present, but the
  8528  // value will be replaced with "sensitive".
  8529  func (s MetricDataResult) String() string {
  8530  	return awsutil.Prettify(s)
  8531  }
  8532  
  8533  // GoString returns the string representation.
  8534  //
  8535  // API parameter values that are decorated as "sensitive" in the API will not
  8536  // be included in the string output. The member name will be present, but the
  8537  // value will be replaced with "sensitive".
  8538  func (s MetricDataResult) GoString() string {
  8539  	return s.String()
  8540  }
  8541  
  8542  // SetId sets the Id field's value.
  8543  func (s *MetricDataResult) SetId(v string) *MetricDataResult {
  8544  	s.Id = &v
  8545  	return s
  8546  }
  8547  
  8548  // SetLabel sets the Label field's value.
  8549  func (s *MetricDataResult) SetLabel(v string) *MetricDataResult {
  8550  	s.Label = &v
  8551  	return s
  8552  }
  8553  
  8554  // SetMessages sets the Messages field's value.
  8555  func (s *MetricDataResult) SetMessages(v []*MessageData) *MetricDataResult {
  8556  	s.Messages = v
  8557  	return s
  8558  }
  8559  
  8560  // SetStatusCode sets the StatusCode field's value.
  8561  func (s *MetricDataResult) SetStatusCode(v string) *MetricDataResult {
  8562  	s.StatusCode = &v
  8563  	return s
  8564  }
  8565  
  8566  // SetTimestamps sets the Timestamps field's value.
  8567  func (s *MetricDataResult) SetTimestamps(v []*time.Time) *MetricDataResult {
  8568  	s.Timestamps = v
  8569  	return s
  8570  }
  8571  
  8572  // SetValues sets the Values field's value.
  8573  func (s *MetricDataResult) SetValues(v []*float64) *MetricDataResult {
  8574  	s.Values = v
  8575  	return s
  8576  }
  8577  
  8578  // Encapsulates the information sent to either create a metric or add new values
  8579  // to be aggregated into an existing metric.
  8580  type MetricDatum struct {
  8581  	_ struct{} `type:"structure"`
  8582  
  8583  	// Array of numbers that is used along with the Values array. Each number in
  8584  	// the Count array is the number of times the corresponding value in the Values
  8585  	// array occurred during the period.
  8586  	//
  8587  	// If you omit the Counts array, the default of 1 is used as the value for each
  8588  	// count. If you include a Counts array, it must include the same amount of
  8589  	// values as the Values array.
  8590  	Counts []*float64 `type:"list"`
  8591  
  8592  	// The dimensions associated with the metric.
  8593  	Dimensions []*Dimension `type:"list"`
  8594  
  8595  	// The name of the metric.
  8596  	//
  8597  	// MetricName is a required field
  8598  	MetricName *string `min:"1" type:"string" required:"true"`
  8599  
  8600  	// The statistical values for the metric.
  8601  	StatisticValues *StatisticSet `type:"structure"`
  8602  
  8603  	// Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution
  8604  	// metric, so that CloudWatch stores the metric with sub-minute resolution down
  8605  	// to one second. Setting this to 60 specifies this metric as a regular-resolution
  8606  	// metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution
  8607  	// is available only for custom metrics. For more information about high-resolution
  8608  	// metrics, see High-Resolution Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html#high-resolution-metrics)
  8609  	// in the Amazon CloudWatch User Guide.
  8610  	//
  8611  	// This field is optional, if you do not specify it the default of 60 is used.
  8612  	StorageResolution *int64 `min:"1" type:"integer"`
  8613  
  8614  	// The time the metric data was received, expressed as the number of milliseconds
  8615  	// since Jan 1, 1970 00:00:00 UTC.
  8616  	Timestamp *time.Time `type:"timestamp"`
  8617  
  8618  	// When you are using a Put operation, this defines what unit you want to use
  8619  	// when storing the metric.
  8620  	//
  8621  	// In a Get operation, this displays the unit that is used for the metric.
  8622  	Unit *string `type:"string" enum:"StandardUnit"`
  8623  
  8624  	// The value for the metric.
  8625  	//
  8626  	// Although the parameter accepts numbers of type Double, CloudWatch rejects
  8627  	// values that are either too small or too large. Values must be in the range
  8628  	// of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity,
  8629  	// -Infinity) are not supported.
  8630  	Value *float64 `type:"double"`
  8631  
  8632  	// Array of numbers representing the values for the metric during the period.
  8633  	// Each unique value is listed just once in this array, and the corresponding
  8634  	// number in the Counts array specifies the number of times that value occurred
  8635  	// during the period. You can include up to 150 unique values in each PutMetricData
  8636  	// action that specifies a Values array.
  8637  	//
  8638  	// Although the Values array accepts numbers of type Double, CloudWatch rejects
  8639  	// values that are either too small or too large. Values must be in the range
  8640  	// of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity,
  8641  	// -Infinity) are not supported.
  8642  	Values []*float64 `type:"list"`
  8643  }
  8644  
  8645  // String returns the string representation.
  8646  //
  8647  // API parameter values that are decorated as "sensitive" in the API will not
  8648  // be included in the string output. The member name will be present, but the
  8649  // value will be replaced with "sensitive".
  8650  func (s MetricDatum) String() string {
  8651  	return awsutil.Prettify(s)
  8652  }
  8653  
  8654  // GoString returns the string representation.
  8655  //
  8656  // API parameter values that are decorated as "sensitive" in the API will not
  8657  // be included in the string output. The member name will be present, but the
  8658  // value will be replaced with "sensitive".
  8659  func (s MetricDatum) GoString() string {
  8660  	return s.String()
  8661  }
  8662  
  8663  // Validate inspects the fields of the type to determine if they are valid.
  8664  func (s *MetricDatum) Validate() error {
  8665  	invalidParams := request.ErrInvalidParams{Context: "MetricDatum"}
  8666  	if s.MetricName == nil {
  8667  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  8668  	}
  8669  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  8670  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  8671  	}
  8672  	if s.StorageResolution != nil && *s.StorageResolution < 1 {
  8673  		invalidParams.Add(request.NewErrParamMinValue("StorageResolution", 1))
  8674  	}
  8675  	if s.Dimensions != nil {
  8676  		for i, v := range s.Dimensions {
  8677  			if v == nil {
  8678  				continue
  8679  			}
  8680  			if err := v.Validate(); err != nil {
  8681  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  8682  			}
  8683  		}
  8684  	}
  8685  	if s.StatisticValues != nil {
  8686  		if err := s.StatisticValues.Validate(); err != nil {
  8687  			invalidParams.AddNested("StatisticValues", err.(request.ErrInvalidParams))
  8688  		}
  8689  	}
  8690  
  8691  	if invalidParams.Len() > 0 {
  8692  		return invalidParams
  8693  	}
  8694  	return nil
  8695  }
  8696  
  8697  // SetCounts sets the Counts field's value.
  8698  func (s *MetricDatum) SetCounts(v []*float64) *MetricDatum {
  8699  	s.Counts = v
  8700  	return s
  8701  }
  8702  
  8703  // SetDimensions sets the Dimensions field's value.
  8704  func (s *MetricDatum) SetDimensions(v []*Dimension) *MetricDatum {
  8705  	s.Dimensions = v
  8706  	return s
  8707  }
  8708  
  8709  // SetMetricName sets the MetricName field's value.
  8710  func (s *MetricDatum) SetMetricName(v string) *MetricDatum {
  8711  	s.MetricName = &v
  8712  	return s
  8713  }
  8714  
  8715  // SetStatisticValues sets the StatisticValues field's value.
  8716  func (s *MetricDatum) SetStatisticValues(v *StatisticSet) *MetricDatum {
  8717  	s.StatisticValues = v
  8718  	return s
  8719  }
  8720  
  8721  // SetStorageResolution sets the StorageResolution field's value.
  8722  func (s *MetricDatum) SetStorageResolution(v int64) *MetricDatum {
  8723  	s.StorageResolution = &v
  8724  	return s
  8725  }
  8726  
  8727  // SetTimestamp sets the Timestamp field's value.
  8728  func (s *MetricDatum) SetTimestamp(v time.Time) *MetricDatum {
  8729  	s.Timestamp = &v
  8730  	return s
  8731  }
  8732  
  8733  // SetUnit sets the Unit field's value.
  8734  func (s *MetricDatum) SetUnit(v string) *MetricDatum {
  8735  	s.Unit = &v
  8736  	return s
  8737  }
  8738  
  8739  // SetValue sets the Value field's value.
  8740  func (s *MetricDatum) SetValue(v float64) *MetricDatum {
  8741  	s.Value = &v
  8742  	return s
  8743  }
  8744  
  8745  // SetValues sets the Values field's value.
  8746  func (s *MetricDatum) SetValues(v []*float64) *MetricDatum {
  8747  	s.Values = v
  8748  	return s
  8749  }
  8750  
  8751  // This structure defines the metric to be returned, along with the statistics,
  8752  // period, and units.
  8753  type MetricStat struct {
  8754  	_ struct{} `type:"structure"`
  8755  
  8756  	// The metric to return, including the metric name, namespace, and dimensions.
  8757  	//
  8758  	// Metric is a required field
  8759  	Metric *Metric `type:"structure" required:"true"`
  8760  
  8761  	// The granularity, in seconds, of the returned data points. For metrics with
  8762  	// regular resolution, a period can be as short as one minute (60 seconds) and
  8763  	// must be a multiple of 60. For high-resolution metrics that are collected
  8764  	// at intervals of less than one minute, the period can be 1, 5, 10, 30, 60,
  8765  	// or any multiple of 60. High-resolution metrics are those metrics stored by
  8766  	// a PutMetricData call that includes a StorageResolution of 1 second.
  8767  	//
  8768  	// If the StartTime parameter specifies a time stamp that is greater than 3
  8769  	// hours ago, you must specify the period as follows or no data points in that
  8770  	// time range is returned:
  8771  	//
  8772  	//    * Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds
  8773  	//    (1 minute).
  8774  	//
  8775  	//    * Start time between 15 and 63 days ago - Use a multiple of 300 seconds
  8776  	//    (5 minutes).
  8777  	//
  8778  	//    * Start time greater than 63 days ago - Use a multiple of 3600 seconds
  8779  	//    (1 hour).
  8780  	//
  8781  	// Period is a required field
  8782  	Period *int64 `min:"1" type:"integer" required:"true"`
  8783  
  8784  	// The statistic to return. It can include any CloudWatch statistic or extended
  8785  	// statistic.
  8786  	//
  8787  	// Stat is a required field
  8788  	Stat *string `type:"string" required:"true"`
  8789  
  8790  	// When you are using a Put operation, this defines what unit you want to use
  8791  	// when storing the metric.
  8792  	//
  8793  	// In a Get operation, if you omit Unit then all data that was collected with
  8794  	// any unit is returned, along with the corresponding units that were specified
  8795  	// when the data was reported to CloudWatch. If you specify a unit, the operation
  8796  	// returns only data that was collected with that unit specified. If you specify
  8797  	// a unit that does not match the data collected, the results of the operation
  8798  	// are null. CloudWatch does not perform unit conversions.
  8799  	Unit *string `type:"string" enum:"StandardUnit"`
  8800  }
  8801  
  8802  // String returns the string representation.
  8803  //
  8804  // API parameter values that are decorated as "sensitive" in the API will not
  8805  // be included in the string output. The member name will be present, but the
  8806  // value will be replaced with "sensitive".
  8807  func (s MetricStat) String() string {
  8808  	return awsutil.Prettify(s)
  8809  }
  8810  
  8811  // GoString returns the string representation.
  8812  //
  8813  // API parameter values that are decorated as "sensitive" in the API will not
  8814  // be included in the string output. The member name will be present, but the
  8815  // value will be replaced with "sensitive".
  8816  func (s MetricStat) GoString() string {
  8817  	return s.String()
  8818  }
  8819  
  8820  // Validate inspects the fields of the type to determine if they are valid.
  8821  func (s *MetricStat) Validate() error {
  8822  	invalidParams := request.ErrInvalidParams{Context: "MetricStat"}
  8823  	if s.Metric == nil {
  8824  		invalidParams.Add(request.NewErrParamRequired("Metric"))
  8825  	}
  8826  	if s.Period == nil {
  8827  		invalidParams.Add(request.NewErrParamRequired("Period"))
  8828  	}
  8829  	if s.Period != nil && *s.Period < 1 {
  8830  		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
  8831  	}
  8832  	if s.Stat == nil {
  8833  		invalidParams.Add(request.NewErrParamRequired("Stat"))
  8834  	}
  8835  	if s.Metric != nil {
  8836  		if err := s.Metric.Validate(); err != nil {
  8837  			invalidParams.AddNested("Metric", err.(request.ErrInvalidParams))
  8838  		}
  8839  	}
  8840  
  8841  	if invalidParams.Len() > 0 {
  8842  		return invalidParams
  8843  	}
  8844  	return nil
  8845  }
  8846  
  8847  // SetMetric sets the Metric field's value.
  8848  func (s *MetricStat) SetMetric(v *Metric) *MetricStat {
  8849  	s.Metric = v
  8850  	return s
  8851  }
  8852  
  8853  // SetPeriod sets the Period field's value.
  8854  func (s *MetricStat) SetPeriod(v int64) *MetricStat {
  8855  	s.Period = &v
  8856  	return s
  8857  }
  8858  
  8859  // SetStat sets the Stat field's value.
  8860  func (s *MetricStat) SetStat(v string) *MetricStat {
  8861  	s.Stat = &v
  8862  	return s
  8863  }
  8864  
  8865  // SetUnit sets the Unit field's value.
  8866  func (s *MetricStat) SetUnit(v string) *MetricStat {
  8867  	s.Unit = &v
  8868  	return s
  8869  }
  8870  
  8871  // This structure contains the configuration information about one metric stream.
  8872  type MetricStreamEntry struct {
  8873  	_ struct{} `type:"structure"`
  8874  
  8875  	// The ARN of the metric stream.
  8876  	Arn *string `min:"1" type:"string"`
  8877  
  8878  	// The date that the metric stream was originally created.
  8879  	CreationDate *time.Time `type:"timestamp"`
  8880  
  8881  	// The ARN of the Kinesis Firehose devlivery stream that is used for this metric
  8882  	// stream.
  8883  	FirehoseArn *string `min:"1" type:"string"`
  8884  
  8885  	// The date that the configuration of this metric stream was most recently updated.
  8886  	LastUpdateDate *time.Time `type:"timestamp"`
  8887  
  8888  	// The name of the metric stream.
  8889  	Name *string `min:"1" type:"string"`
  8890  
  8891  	// The output format of this metric stream. Valid values are json and opentelemetry0.7.
  8892  	OutputFormat *string `min:"1" type:"string" enum:"MetricStreamOutputFormat"`
  8893  
  8894  	// The current state of this stream. Valid values are running and stopped.
  8895  	State *string `type:"string"`
  8896  }
  8897  
  8898  // String returns the string representation.
  8899  //
  8900  // API parameter values that are decorated as "sensitive" in the API will not
  8901  // be included in the string output. The member name will be present, but the
  8902  // value will be replaced with "sensitive".
  8903  func (s MetricStreamEntry) String() string {
  8904  	return awsutil.Prettify(s)
  8905  }
  8906  
  8907  // GoString returns the string representation.
  8908  //
  8909  // API parameter values that are decorated as "sensitive" in the API will not
  8910  // be included in the string output. The member name will be present, but the
  8911  // value will be replaced with "sensitive".
  8912  func (s MetricStreamEntry) GoString() string {
  8913  	return s.String()
  8914  }
  8915  
  8916  // SetArn sets the Arn field's value.
  8917  func (s *MetricStreamEntry) SetArn(v string) *MetricStreamEntry {
  8918  	s.Arn = &v
  8919  	return s
  8920  }
  8921  
  8922  // SetCreationDate sets the CreationDate field's value.
  8923  func (s *MetricStreamEntry) SetCreationDate(v time.Time) *MetricStreamEntry {
  8924  	s.CreationDate = &v
  8925  	return s
  8926  }
  8927  
  8928  // SetFirehoseArn sets the FirehoseArn field's value.
  8929  func (s *MetricStreamEntry) SetFirehoseArn(v string) *MetricStreamEntry {
  8930  	s.FirehoseArn = &v
  8931  	return s
  8932  }
  8933  
  8934  // SetLastUpdateDate sets the LastUpdateDate field's value.
  8935  func (s *MetricStreamEntry) SetLastUpdateDate(v time.Time) *MetricStreamEntry {
  8936  	s.LastUpdateDate = &v
  8937  	return s
  8938  }
  8939  
  8940  // SetName sets the Name field's value.
  8941  func (s *MetricStreamEntry) SetName(v string) *MetricStreamEntry {
  8942  	s.Name = &v
  8943  	return s
  8944  }
  8945  
  8946  // SetOutputFormat sets the OutputFormat field's value.
  8947  func (s *MetricStreamEntry) SetOutputFormat(v string) *MetricStreamEntry {
  8948  	s.OutputFormat = &v
  8949  	return s
  8950  }
  8951  
  8952  // SetState sets the State field's value.
  8953  func (s *MetricStreamEntry) SetState(v string) *MetricStreamEntry {
  8954  	s.State = &v
  8955  	return s
  8956  }
  8957  
  8958  // This structure contains the name of one of the metric namespaces that is
  8959  // listed in a filter of a metric stream.
  8960  type MetricStreamFilter struct {
  8961  	_ struct{} `type:"structure"`
  8962  
  8963  	// The name of the metric namespace in the filter.
  8964  	Namespace *string `min:"1" type:"string"`
  8965  }
  8966  
  8967  // String returns the string representation.
  8968  //
  8969  // API parameter values that are decorated as "sensitive" in the API will not
  8970  // be included in the string output. The member name will be present, but the
  8971  // value will be replaced with "sensitive".
  8972  func (s MetricStreamFilter) String() string {
  8973  	return awsutil.Prettify(s)
  8974  }
  8975  
  8976  // GoString returns the string representation.
  8977  //
  8978  // API parameter values that are decorated as "sensitive" in the API will not
  8979  // be included in the string output. The member name will be present, but the
  8980  // value will be replaced with "sensitive".
  8981  func (s MetricStreamFilter) GoString() string {
  8982  	return s.String()
  8983  }
  8984  
  8985  // Validate inspects the fields of the type to determine if they are valid.
  8986  func (s *MetricStreamFilter) Validate() error {
  8987  	invalidParams := request.ErrInvalidParams{Context: "MetricStreamFilter"}
  8988  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  8989  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  8990  	}
  8991  
  8992  	if invalidParams.Len() > 0 {
  8993  		return invalidParams
  8994  	}
  8995  	return nil
  8996  }
  8997  
  8998  // SetNamespace sets the Namespace field's value.
  8999  func (s *MetricStreamFilter) SetNamespace(v string) *MetricStreamFilter {
  9000  	s.Namespace = &v
  9001  	return s
  9002  }
  9003  
  9004  // This array is empty if the API operation was successful for all the rules
  9005  // specified in the request. If the operation could not process one of the rules,
  9006  // the following data is returned for each of those rules.
  9007  type PartialFailure struct {
  9008  	_ struct{} `type:"structure"`
  9009  
  9010  	// The type of error.
  9011  	ExceptionType *string `type:"string"`
  9012  
  9013  	// The code of the error.
  9014  	FailureCode *string `type:"string"`
  9015  
  9016  	// A description of the error.
  9017  	FailureDescription *string `type:"string"`
  9018  
  9019  	// The specified rule that could not be deleted.
  9020  	FailureResource *string `type:"string"`
  9021  }
  9022  
  9023  // String returns the string representation.
  9024  //
  9025  // API parameter values that are decorated as "sensitive" in the API will not
  9026  // be included in the string output. The member name will be present, but the
  9027  // value will be replaced with "sensitive".
  9028  func (s PartialFailure) String() string {
  9029  	return awsutil.Prettify(s)
  9030  }
  9031  
  9032  // GoString returns the string representation.
  9033  //
  9034  // API parameter values that are decorated as "sensitive" in the API will not
  9035  // be included in the string output. The member name will be present, but the
  9036  // value will be replaced with "sensitive".
  9037  func (s PartialFailure) GoString() string {
  9038  	return s.String()
  9039  }
  9040  
  9041  // SetExceptionType sets the ExceptionType field's value.
  9042  func (s *PartialFailure) SetExceptionType(v string) *PartialFailure {
  9043  	s.ExceptionType = &v
  9044  	return s
  9045  }
  9046  
  9047  // SetFailureCode sets the FailureCode field's value.
  9048  func (s *PartialFailure) SetFailureCode(v string) *PartialFailure {
  9049  	s.FailureCode = &v
  9050  	return s
  9051  }
  9052  
  9053  // SetFailureDescription sets the FailureDescription field's value.
  9054  func (s *PartialFailure) SetFailureDescription(v string) *PartialFailure {
  9055  	s.FailureDescription = &v
  9056  	return s
  9057  }
  9058  
  9059  // SetFailureResource sets the FailureResource field's value.
  9060  func (s *PartialFailure) SetFailureResource(v string) *PartialFailure {
  9061  	s.FailureResource = &v
  9062  	return s
  9063  }
  9064  
  9065  type PutAnomalyDetectorInput struct {
  9066  	_ struct{} `type:"structure"`
  9067  
  9068  	// The configuration specifies details about how the anomaly detection model
  9069  	// is to be trained, including time ranges to exclude when training and updating
  9070  	// the model. You can specify as many as 10 time ranges.
  9071  	//
  9072  	// The configuration can also include the time zone to use for the metric.
  9073  	Configuration *AnomalyDetectorConfiguration `type:"structure"`
  9074  
  9075  	// The metric dimensions to create the anomaly detection model for.
  9076  	Dimensions []*Dimension `type:"list"`
  9077  
  9078  	// The name of the metric to create the anomaly detection model for.
  9079  	//
  9080  	// MetricName is a required field
  9081  	MetricName *string `min:"1" type:"string" required:"true"`
  9082  
  9083  	// The namespace of the metric to create the anomaly detection model for.
  9084  	//
  9085  	// Namespace is a required field
  9086  	Namespace *string `min:"1" type:"string" required:"true"`
  9087  
  9088  	// The statistic to use for the metric and the anomaly detection model.
  9089  	//
  9090  	// Stat is a required field
  9091  	Stat *string `type:"string" required:"true"`
  9092  }
  9093  
  9094  // String returns the string representation.
  9095  //
  9096  // API parameter values that are decorated as "sensitive" in the API will not
  9097  // be included in the string output. The member name will be present, but the
  9098  // value will be replaced with "sensitive".
  9099  func (s PutAnomalyDetectorInput) String() string {
  9100  	return awsutil.Prettify(s)
  9101  }
  9102  
  9103  // GoString returns the string representation.
  9104  //
  9105  // API parameter values that are decorated as "sensitive" in the API will not
  9106  // be included in the string output. The member name will be present, but the
  9107  // value will be replaced with "sensitive".
  9108  func (s PutAnomalyDetectorInput) GoString() string {
  9109  	return s.String()
  9110  }
  9111  
  9112  // Validate inspects the fields of the type to determine if they are valid.
  9113  func (s *PutAnomalyDetectorInput) Validate() error {
  9114  	invalidParams := request.ErrInvalidParams{Context: "PutAnomalyDetectorInput"}
  9115  	if s.MetricName == nil {
  9116  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  9117  	}
  9118  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  9119  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  9120  	}
  9121  	if s.Namespace == nil {
  9122  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
  9123  	}
  9124  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  9125  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  9126  	}
  9127  	if s.Stat == nil {
  9128  		invalidParams.Add(request.NewErrParamRequired("Stat"))
  9129  	}
  9130  	if s.Configuration != nil {
  9131  		if err := s.Configuration.Validate(); err != nil {
  9132  			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
  9133  		}
  9134  	}
  9135  	if s.Dimensions != nil {
  9136  		for i, v := range s.Dimensions {
  9137  			if v == nil {
  9138  				continue
  9139  			}
  9140  			if err := v.Validate(); err != nil {
  9141  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  9142  			}
  9143  		}
  9144  	}
  9145  
  9146  	if invalidParams.Len() > 0 {
  9147  		return invalidParams
  9148  	}
  9149  	return nil
  9150  }
  9151  
  9152  // SetConfiguration sets the Configuration field's value.
  9153  func (s *PutAnomalyDetectorInput) SetConfiguration(v *AnomalyDetectorConfiguration) *PutAnomalyDetectorInput {
  9154  	s.Configuration = v
  9155  	return s
  9156  }
  9157  
  9158  // SetDimensions sets the Dimensions field's value.
  9159  func (s *PutAnomalyDetectorInput) SetDimensions(v []*Dimension) *PutAnomalyDetectorInput {
  9160  	s.Dimensions = v
  9161  	return s
  9162  }
  9163  
  9164  // SetMetricName sets the MetricName field's value.
  9165  func (s *PutAnomalyDetectorInput) SetMetricName(v string) *PutAnomalyDetectorInput {
  9166  	s.MetricName = &v
  9167  	return s
  9168  }
  9169  
  9170  // SetNamespace sets the Namespace field's value.
  9171  func (s *PutAnomalyDetectorInput) SetNamespace(v string) *PutAnomalyDetectorInput {
  9172  	s.Namespace = &v
  9173  	return s
  9174  }
  9175  
  9176  // SetStat sets the Stat field's value.
  9177  func (s *PutAnomalyDetectorInput) SetStat(v string) *PutAnomalyDetectorInput {
  9178  	s.Stat = &v
  9179  	return s
  9180  }
  9181  
  9182  type PutAnomalyDetectorOutput struct {
  9183  	_ struct{} `type:"structure"`
  9184  }
  9185  
  9186  // String returns the string representation.
  9187  //
  9188  // API parameter values that are decorated as "sensitive" in the API will not
  9189  // be included in the string output. The member name will be present, but the
  9190  // value will be replaced with "sensitive".
  9191  func (s PutAnomalyDetectorOutput) String() string {
  9192  	return awsutil.Prettify(s)
  9193  }
  9194  
  9195  // GoString returns the string representation.
  9196  //
  9197  // API parameter values that are decorated as "sensitive" in the API will not
  9198  // be included in the string output. The member name will be present, but the
  9199  // value will be replaced with "sensitive".
  9200  func (s PutAnomalyDetectorOutput) GoString() string {
  9201  	return s.String()
  9202  }
  9203  
  9204  type PutCompositeAlarmInput struct {
  9205  	_ struct{} `type:"structure"`
  9206  
  9207  	// Indicates whether actions should be executed during any changes to the alarm
  9208  	// state of the composite alarm. The default is TRUE.
  9209  	ActionsEnabled *bool `type:"boolean"`
  9210  
  9211  	// The actions to execute when this alarm transitions to the ALARM state from
  9212  	// any other state. Each action is specified as an Amazon Resource Name (ARN).
  9213  	//
  9214  	// Valid Values: arn:aws:sns:region:account-id:sns-topic-name | arn:aws:ssm:region:account-id:opsitem:severity
  9215  	AlarmActions []*string `type:"list"`
  9216  
  9217  	// The description for the composite alarm.
  9218  	AlarmDescription *string `type:"string"`
  9219  
  9220  	// The name for the composite alarm. This name must be unique within the Region.
  9221  	//
  9222  	// AlarmName is a required field
  9223  	AlarmName *string `min:"1" type:"string" required:"true"`
  9224  
  9225  	// An expression that specifies which other alarms are to be evaluated to determine
  9226  	// this composite alarm's state. For each alarm that you reference, you designate
  9227  	// a function that specifies whether that alarm needs to be in ALARM state,
  9228  	// OK state, or INSUFFICIENT_DATA state. You can use operators (AND, OR and
  9229  	// NOT) to combine multiple functions in a single expression. You can use parenthesis
  9230  	// to logically group the functions in your expression.
  9231  	//
  9232  	// You can use either alarm names or ARNs to reference the other alarms that
  9233  	// are to be evaluated.
  9234  	//
  9235  	// Functions can include the following:
  9236  	//
  9237  	//    * ALARM("alarm-name or alarm-ARN") is TRUE if the named alarm is in ALARM
  9238  	//    state.
  9239  	//
  9240  	//    * OK("alarm-name or alarm-ARN") is TRUE if the named alarm is in OK state.
  9241  	//
  9242  	//    * INSUFFICIENT_DATA("alarm-name or alarm-ARN") is TRUE if the named alarm
  9243  	//    is in INSUFFICIENT_DATA state.
  9244  	//
  9245  	//    * TRUE always evaluates to TRUE.
  9246  	//
  9247  	//    * FALSE always evaluates to FALSE.
  9248  	//
  9249  	// TRUE and FALSE are useful for testing a complex AlarmRule structure, and
  9250  	// for testing your alarm actions.
  9251  	//
  9252  	// Alarm names specified in AlarmRule can be surrounded with double-quotes ("),
  9253  	// but do not have to be.
  9254  	//
  9255  	// The following are some examples of AlarmRule:
  9256  	//
  9257  	//    * ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh) specifies
  9258  	//    that the composite alarm goes into ALARM state only if both CPUUtilizationTooHigh
  9259  	//    and DiskReadOpsTooHigh alarms are in ALARM state.
  9260  	//
  9261  	//    * ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress) specifies
  9262  	//    that the alarm goes to ALARM state if CPUUtilizationTooHigh is in ALARM
  9263  	//    state and DeploymentInProgress is not in ALARM state. This example reduces
  9264  	//    alarm noise during a known deployment window.
  9265  	//
  9266  	//    * (ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh)
  9267  	//    goes into ALARM state if CPUUtilizationTooHigh OR DiskReadOpsTooHigh is
  9268  	//    in ALARM state, and if NetworkOutTooHigh is in OK state. This provides
  9269  	//    another example of using a composite alarm to prevent noise. This rule
  9270  	//    ensures that you are not notified with an alarm action on high CPU or
  9271  	//    disk usage if a known network problem is also occurring.
  9272  	//
  9273  	// The AlarmRule can specify as many as 100 "children" alarms. The AlarmRule
  9274  	// expression can have as many as 500 elements. Elements are child alarms, TRUE
  9275  	// or FALSE statements, and parentheses.
  9276  	//
  9277  	// AlarmRule is a required field
  9278  	AlarmRule *string `min:"1" type:"string" required:"true"`
  9279  
  9280  	// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA
  9281  	// state from any other state. Each action is specified as an Amazon Resource
  9282  	// Name (ARN).
  9283  	//
  9284  	// Valid Values: arn:aws:sns:region:account-id:sns-topic-name
  9285  	InsufficientDataActions []*string `type:"list"`
  9286  
  9287  	// The actions to execute when this alarm transitions to an OK state from any
  9288  	// other state. Each action is specified as an Amazon Resource Name (ARN).
  9289  	//
  9290  	// Valid Values: arn:aws:sns:region:account-id:sns-topic-name
  9291  	OKActions []*string `type:"list"`
  9292  
  9293  	// A list of key-value pairs to associate with the composite alarm. You can
  9294  	// associate as many as 50 tags with an alarm.
  9295  	//
  9296  	// Tags can help you organize and categorize your resources. You can also use
  9297  	// them to scope user permissions, by granting a user permission to access or
  9298  	// change only resources with certain tag values.
  9299  	Tags []*Tag `type:"list"`
  9300  }
  9301  
  9302  // String returns the string representation.
  9303  //
  9304  // API parameter values that are decorated as "sensitive" in the API will not
  9305  // be included in the string output. The member name will be present, but the
  9306  // value will be replaced with "sensitive".
  9307  func (s PutCompositeAlarmInput) String() string {
  9308  	return awsutil.Prettify(s)
  9309  }
  9310  
  9311  // GoString returns the string representation.
  9312  //
  9313  // API parameter values that are decorated as "sensitive" in the API will not
  9314  // be included in the string output. The member name will be present, but the
  9315  // value will be replaced with "sensitive".
  9316  func (s PutCompositeAlarmInput) GoString() string {
  9317  	return s.String()
  9318  }
  9319  
  9320  // Validate inspects the fields of the type to determine if they are valid.
  9321  func (s *PutCompositeAlarmInput) Validate() error {
  9322  	invalidParams := request.ErrInvalidParams{Context: "PutCompositeAlarmInput"}
  9323  	if s.AlarmName == nil {
  9324  		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
  9325  	}
  9326  	if s.AlarmName != nil && len(*s.AlarmName) < 1 {
  9327  		invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
  9328  	}
  9329  	if s.AlarmRule == nil {
  9330  		invalidParams.Add(request.NewErrParamRequired("AlarmRule"))
  9331  	}
  9332  	if s.AlarmRule != nil && len(*s.AlarmRule) < 1 {
  9333  		invalidParams.Add(request.NewErrParamMinLen("AlarmRule", 1))
  9334  	}
  9335  	if s.Tags != nil {
  9336  		for i, v := range s.Tags {
  9337  			if v == nil {
  9338  				continue
  9339  			}
  9340  			if err := v.Validate(); err != nil {
  9341  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9342  			}
  9343  		}
  9344  	}
  9345  
  9346  	if invalidParams.Len() > 0 {
  9347  		return invalidParams
  9348  	}
  9349  	return nil
  9350  }
  9351  
  9352  // SetActionsEnabled sets the ActionsEnabled field's value.
  9353  func (s *PutCompositeAlarmInput) SetActionsEnabled(v bool) *PutCompositeAlarmInput {
  9354  	s.ActionsEnabled = &v
  9355  	return s
  9356  }
  9357  
  9358  // SetAlarmActions sets the AlarmActions field's value.
  9359  func (s *PutCompositeAlarmInput) SetAlarmActions(v []*string) *PutCompositeAlarmInput {
  9360  	s.AlarmActions = v
  9361  	return s
  9362  }
  9363  
  9364  // SetAlarmDescription sets the AlarmDescription field's value.
  9365  func (s *PutCompositeAlarmInput) SetAlarmDescription(v string) *PutCompositeAlarmInput {
  9366  	s.AlarmDescription = &v
  9367  	return s
  9368  }
  9369  
  9370  // SetAlarmName sets the AlarmName field's value.
  9371  func (s *PutCompositeAlarmInput) SetAlarmName(v string) *PutCompositeAlarmInput {
  9372  	s.AlarmName = &v
  9373  	return s
  9374  }
  9375  
  9376  // SetAlarmRule sets the AlarmRule field's value.
  9377  func (s *PutCompositeAlarmInput) SetAlarmRule(v string) *PutCompositeAlarmInput {
  9378  	s.AlarmRule = &v
  9379  	return s
  9380  }
  9381  
  9382  // SetInsufficientDataActions sets the InsufficientDataActions field's value.
  9383  func (s *PutCompositeAlarmInput) SetInsufficientDataActions(v []*string) *PutCompositeAlarmInput {
  9384  	s.InsufficientDataActions = v
  9385  	return s
  9386  }
  9387  
  9388  // SetOKActions sets the OKActions field's value.
  9389  func (s *PutCompositeAlarmInput) SetOKActions(v []*string) *PutCompositeAlarmInput {
  9390  	s.OKActions = v
  9391  	return s
  9392  }
  9393  
  9394  // SetTags sets the Tags field's value.
  9395  func (s *PutCompositeAlarmInput) SetTags(v []*Tag) *PutCompositeAlarmInput {
  9396  	s.Tags = v
  9397  	return s
  9398  }
  9399  
  9400  type PutCompositeAlarmOutput struct {
  9401  	_ struct{} `type:"structure"`
  9402  }
  9403  
  9404  // String returns the string representation.
  9405  //
  9406  // API parameter values that are decorated as "sensitive" in the API will not
  9407  // be included in the string output. The member name will be present, but the
  9408  // value will be replaced with "sensitive".
  9409  func (s PutCompositeAlarmOutput) String() string {
  9410  	return awsutil.Prettify(s)
  9411  }
  9412  
  9413  // GoString returns the string representation.
  9414  //
  9415  // API parameter values that are decorated as "sensitive" in the API will not
  9416  // be included in the string output. The member name will be present, but the
  9417  // value will be replaced with "sensitive".
  9418  func (s PutCompositeAlarmOutput) GoString() string {
  9419  	return s.String()
  9420  }
  9421  
  9422  type PutDashboardInput struct {
  9423  	_ struct{} `type:"structure"`
  9424  
  9425  	// The detailed information about the dashboard in JSON format, including the
  9426  	// widgets to include and their location on the dashboard. This parameter is
  9427  	// required.
  9428  	//
  9429  	// For more information about the syntax, see Dashboard Body Structure and Syntax
  9430  	// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html).
  9431  	//
  9432  	// DashboardBody is a required field
  9433  	DashboardBody *string `type:"string" required:"true"`
  9434  
  9435  	// The name of the dashboard. If a dashboard with this name already exists,
  9436  	// this call modifies that dashboard, replacing its current contents. Otherwise,
  9437  	// a new dashboard is created. The maximum length is 255, and valid characters
  9438  	// are A-Z, a-z, 0-9, "-", and "_". This parameter is required.
  9439  	//
  9440  	// DashboardName is a required field
  9441  	DashboardName *string `type:"string" required:"true"`
  9442  }
  9443  
  9444  // String returns the string representation.
  9445  //
  9446  // API parameter values that are decorated as "sensitive" in the API will not
  9447  // be included in the string output. The member name will be present, but the
  9448  // value will be replaced with "sensitive".
  9449  func (s PutDashboardInput) String() string {
  9450  	return awsutil.Prettify(s)
  9451  }
  9452  
  9453  // GoString returns the string representation.
  9454  //
  9455  // API parameter values that are decorated as "sensitive" in the API will not
  9456  // be included in the string output. The member name will be present, but the
  9457  // value will be replaced with "sensitive".
  9458  func (s PutDashboardInput) GoString() string {
  9459  	return s.String()
  9460  }
  9461  
  9462  // Validate inspects the fields of the type to determine if they are valid.
  9463  func (s *PutDashboardInput) Validate() error {
  9464  	invalidParams := request.ErrInvalidParams{Context: "PutDashboardInput"}
  9465  	if s.DashboardBody == nil {
  9466  		invalidParams.Add(request.NewErrParamRequired("DashboardBody"))
  9467  	}
  9468  	if s.DashboardName == nil {
  9469  		invalidParams.Add(request.NewErrParamRequired("DashboardName"))
  9470  	}
  9471  
  9472  	if invalidParams.Len() > 0 {
  9473  		return invalidParams
  9474  	}
  9475  	return nil
  9476  }
  9477  
  9478  // SetDashboardBody sets the DashboardBody field's value.
  9479  func (s *PutDashboardInput) SetDashboardBody(v string) *PutDashboardInput {
  9480  	s.DashboardBody = &v
  9481  	return s
  9482  }
  9483  
  9484  // SetDashboardName sets the DashboardName field's value.
  9485  func (s *PutDashboardInput) SetDashboardName(v string) *PutDashboardInput {
  9486  	s.DashboardName = &v
  9487  	return s
  9488  }
  9489  
  9490  type PutDashboardOutput struct {
  9491  	_ struct{} `type:"structure"`
  9492  
  9493  	// If the input for PutDashboard was correct and the dashboard was successfully
  9494  	// created or modified, this result is empty.
  9495  	//
  9496  	// If this result includes only warning messages, then the input was valid enough
  9497  	// for the dashboard to be created or modified, but some elements of the dashboard
  9498  	// might not render.
  9499  	//
  9500  	// If this result includes error messages, the input was not valid and the operation
  9501  	// failed.
  9502  	DashboardValidationMessages []*DashboardValidationMessage `type:"list"`
  9503  }
  9504  
  9505  // String returns the string representation.
  9506  //
  9507  // API parameter values that are decorated as "sensitive" in the API will not
  9508  // be included in the string output. The member name will be present, but the
  9509  // value will be replaced with "sensitive".
  9510  func (s PutDashboardOutput) String() string {
  9511  	return awsutil.Prettify(s)
  9512  }
  9513  
  9514  // GoString returns the string representation.
  9515  //
  9516  // API parameter values that are decorated as "sensitive" in the API will not
  9517  // be included in the string output. The member name will be present, but the
  9518  // value will be replaced with "sensitive".
  9519  func (s PutDashboardOutput) GoString() string {
  9520  	return s.String()
  9521  }
  9522  
  9523  // SetDashboardValidationMessages sets the DashboardValidationMessages field's value.
  9524  func (s *PutDashboardOutput) SetDashboardValidationMessages(v []*DashboardValidationMessage) *PutDashboardOutput {
  9525  	s.DashboardValidationMessages = v
  9526  	return s
  9527  }
  9528  
  9529  type PutInsightRuleInput struct {
  9530  	_ struct{} `type:"structure"`
  9531  
  9532  	// The definition of the rule, as a JSON object. For details on the valid syntax,
  9533  	// see Contributor Insights Rule Syntax (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html).
  9534  	//
  9535  	// RuleDefinition is a required field
  9536  	RuleDefinition *string `min:"1" type:"string" required:"true"`
  9537  
  9538  	// A unique name for the rule.
  9539  	//
  9540  	// RuleName is a required field
  9541  	RuleName *string `min:"1" type:"string" required:"true"`
  9542  
  9543  	// The state of the rule. Valid values are ENABLED and DISABLED.
  9544  	RuleState *string `min:"1" type:"string"`
  9545  
  9546  	// A list of key-value pairs to associate with the Contributor Insights rule.
  9547  	// You can associate as many as 50 tags with a rule.
  9548  	//
  9549  	// Tags can help you organize and categorize your resources. You can also use
  9550  	// them to scope user permissions, by granting a user permission to access or
  9551  	// change only the resources that have certain tag values.
  9552  	//
  9553  	// To be able to associate tags with a rule, you must have the cloudwatch:TagResource
  9554  	// permission in addition to the cloudwatch:PutInsightRule permission.
  9555  	//
  9556  	// If you are using this operation to update an existing Contributor Insights
  9557  	// rule, any tags you specify in this parameter are ignored. To change the tags
  9558  	// of an existing rule, use TagResource (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html).
  9559  	Tags []*Tag `type:"list"`
  9560  }
  9561  
  9562  // String returns the string representation.
  9563  //
  9564  // API parameter values that are decorated as "sensitive" in the API will not
  9565  // be included in the string output. The member name will be present, but the
  9566  // value will be replaced with "sensitive".
  9567  func (s PutInsightRuleInput) String() string {
  9568  	return awsutil.Prettify(s)
  9569  }
  9570  
  9571  // GoString returns the string representation.
  9572  //
  9573  // API parameter values that are decorated as "sensitive" in the API will not
  9574  // be included in the string output. The member name will be present, but the
  9575  // value will be replaced with "sensitive".
  9576  func (s PutInsightRuleInput) GoString() string {
  9577  	return s.String()
  9578  }
  9579  
  9580  // Validate inspects the fields of the type to determine if they are valid.
  9581  func (s *PutInsightRuleInput) Validate() error {
  9582  	invalidParams := request.ErrInvalidParams{Context: "PutInsightRuleInput"}
  9583  	if s.RuleDefinition == nil {
  9584  		invalidParams.Add(request.NewErrParamRequired("RuleDefinition"))
  9585  	}
  9586  	if s.RuleDefinition != nil && len(*s.RuleDefinition) < 1 {
  9587  		invalidParams.Add(request.NewErrParamMinLen("RuleDefinition", 1))
  9588  	}
  9589  	if s.RuleName == nil {
  9590  		invalidParams.Add(request.NewErrParamRequired("RuleName"))
  9591  	}
  9592  	if s.RuleName != nil && len(*s.RuleName) < 1 {
  9593  		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
  9594  	}
  9595  	if s.RuleState != nil && len(*s.RuleState) < 1 {
  9596  		invalidParams.Add(request.NewErrParamMinLen("RuleState", 1))
  9597  	}
  9598  	if s.Tags != nil {
  9599  		for i, v := range s.Tags {
  9600  			if v == nil {
  9601  				continue
  9602  			}
  9603  			if err := v.Validate(); err != nil {
  9604  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9605  			}
  9606  		}
  9607  	}
  9608  
  9609  	if invalidParams.Len() > 0 {
  9610  		return invalidParams
  9611  	}
  9612  	return nil
  9613  }
  9614  
  9615  // SetRuleDefinition sets the RuleDefinition field's value.
  9616  func (s *PutInsightRuleInput) SetRuleDefinition(v string) *PutInsightRuleInput {
  9617  	s.RuleDefinition = &v
  9618  	return s
  9619  }
  9620  
  9621  // SetRuleName sets the RuleName field's value.
  9622  func (s *PutInsightRuleInput) SetRuleName(v string) *PutInsightRuleInput {
  9623  	s.RuleName = &v
  9624  	return s
  9625  }
  9626  
  9627  // SetRuleState sets the RuleState field's value.
  9628  func (s *PutInsightRuleInput) SetRuleState(v string) *PutInsightRuleInput {
  9629  	s.RuleState = &v
  9630  	return s
  9631  }
  9632  
  9633  // SetTags sets the Tags field's value.
  9634  func (s *PutInsightRuleInput) SetTags(v []*Tag) *PutInsightRuleInput {
  9635  	s.Tags = v
  9636  	return s
  9637  }
  9638  
  9639  type PutInsightRuleOutput struct {
  9640  	_ struct{} `type:"structure"`
  9641  }
  9642  
  9643  // String returns the string representation.
  9644  //
  9645  // API parameter values that are decorated as "sensitive" in the API will not
  9646  // be included in the string output. The member name will be present, but the
  9647  // value will be replaced with "sensitive".
  9648  func (s PutInsightRuleOutput) String() string {
  9649  	return awsutil.Prettify(s)
  9650  }
  9651  
  9652  // GoString returns the string representation.
  9653  //
  9654  // API parameter values that are decorated as "sensitive" in the API will not
  9655  // be included in the string output. The member name will be present, but the
  9656  // value will be replaced with "sensitive".
  9657  func (s PutInsightRuleOutput) GoString() string {
  9658  	return s.String()
  9659  }
  9660  
  9661  type PutMetricAlarmInput struct {
  9662  	_ struct{} `type:"structure"`
  9663  
  9664  	// Indicates whether actions should be executed during any changes to the alarm
  9665  	// state. The default is TRUE.
  9666  	ActionsEnabled *bool `type:"boolean"`
  9667  
  9668  	// The actions to execute when this alarm transitions to the ALARM state from
  9669  	// any other state. Each action is specified as an Amazon Resource Name (ARN).
  9670  	//
  9671  	// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
  9672  	// | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot
  9673  	// | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
  9674  	// | arn:aws:ssm:region:account-id:opsitem:severity | arn:aws:ssm-incidents::account-id:response-plan:response-plan-name
  9675  	//
  9676  	// Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
  9677  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
  9678  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
  9679  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0
  9680  	AlarmActions []*string `type:"list"`
  9681  
  9682  	// The description for the alarm.
  9683  	AlarmDescription *string `type:"string"`
  9684  
  9685  	// The name for the alarm. This name must be unique within the Region.
  9686  	//
  9687  	// AlarmName is a required field
  9688  	AlarmName *string `min:"1" type:"string" required:"true"`
  9689  
  9690  	// The arithmetic operation to use when comparing the specified statistic and
  9691  	// threshold. The specified statistic value is used as the first operand.
  9692  	//
  9693  	// The values LessThanLowerOrGreaterThanUpperThreshold, LessThanLowerThreshold,
  9694  	// and GreaterThanUpperThreshold are used only for alarms based on anomaly detection
  9695  	// models.
  9696  	//
  9697  	// ComparisonOperator is a required field
  9698  	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
  9699  
  9700  	// The number of data points that must be breaching to trigger the alarm. This
  9701  	// is used only if you are setting an "M out of N" alarm. In that case, this
  9702  	// value is the M. For more information, see Evaluating an Alarm (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation)
  9703  	// in the Amazon CloudWatch User Guide.
  9704  	DatapointsToAlarm *int64 `min:"1" type:"integer"`
  9705  
  9706  	// The dimensions for the metric specified in MetricName.
  9707  	Dimensions []*Dimension `type:"list"`
  9708  
  9709  	// Used only for alarms based on percentiles. If you specify ignore, the alarm
  9710  	// state does not change during periods with too few data points to be statistically
  9711  	// significant. If you specify evaluate or omit this parameter, the alarm is
  9712  	// always evaluated and possibly changes state no matter how many data points
  9713  	// are available. For more information, see Percentile-Based CloudWatch Alarms
  9714  	// and Low Data Samples (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#percentiles-with-low-samples).
  9715  	//
  9716  	// Valid Values: evaluate | ignore
  9717  	EvaluateLowSampleCountPercentile *string `min:"1" type:"string"`
  9718  
  9719  	// The number of periods over which data is compared to the specified threshold.
  9720  	// If you are setting an alarm that requires that a number of consecutive data
  9721  	// points be breaching to trigger the alarm, this value specifies that number.
  9722  	// If you are setting an "M out of N" alarm, this value is the N.
  9723  	//
  9724  	// An alarm's total current evaluation period can be no longer than one day,
  9725  	// so this number multiplied by Period cannot be more than 86,400 seconds.
  9726  	//
  9727  	// EvaluationPeriods is a required field
  9728  	EvaluationPeriods *int64 `min:"1" type:"integer" required:"true"`
  9729  
  9730  	// The percentile statistic for the metric specified in MetricName. Specify
  9731  	// a value between p0.0 and p100. When you call PutMetricAlarm and specify a
  9732  	// MetricName, you must specify either Statistic or ExtendedStatistic, but not
  9733  	// both.
  9734  	ExtendedStatistic *string `type:"string"`
  9735  
  9736  	// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA
  9737  	// state from any other state. Each action is specified as an Amazon Resource
  9738  	// Name (ARN).
  9739  	//
  9740  	// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
  9741  	// | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot
  9742  	// | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
  9743  	//
  9744  	// Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
  9745  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
  9746  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
  9747  	InsufficientDataActions []*string `type:"list"`
  9748  
  9749  	// The name for the metric associated with the alarm. For each PutMetricAlarm
  9750  	// operation, you must specify either MetricName or a Metrics array.
  9751  	//
  9752  	// If you are creating an alarm based on a math expression, you cannot specify
  9753  	// this parameter, or any of the Dimensions, Period, Namespace, Statistic, or
  9754  	// ExtendedStatistic parameters. Instead, you specify all this information in
  9755  	// the Metrics array.
  9756  	MetricName *string `min:"1" type:"string"`
  9757  
  9758  	// An array of MetricDataQuery structures that enable you to create an alarm
  9759  	// based on the result of a metric math expression. For each PutMetricAlarm
  9760  	// operation, you must specify either MetricName or a Metrics array.
  9761  	//
  9762  	// Each item in the Metrics array either retrieves a metric or performs a math
  9763  	// expression.
  9764  	//
  9765  	// One item in the Metrics array is the expression that the alarm watches. You
  9766  	// designate this expression by setting ReturnData to true for this object in
  9767  	// the array. For more information, see MetricDataQuery (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDataQuery.html).
  9768  	//
  9769  	// If you use the Metrics parameter, you cannot include the MetricName, Dimensions,
  9770  	// Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm
  9771  	// in the same operation. Instead, you retrieve the metrics you are using in
  9772  	// your math expression as part of the Metrics array.
  9773  	Metrics []*MetricDataQuery `type:"list"`
  9774  
  9775  	// The namespace for the metric associated specified in MetricName.
  9776  	Namespace *string `min:"1" type:"string"`
  9777  
  9778  	// The actions to execute when this alarm transitions to an OK state from any
  9779  	// other state. Each action is specified as an Amazon Resource Name (ARN).
  9780  	//
  9781  	// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
  9782  	// | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot
  9783  	// | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
  9784  	//
  9785  	// Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
  9786  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
  9787  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
  9788  	// | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0
  9789  	OKActions []*string `type:"list"`
  9790  
  9791  	// The length, in seconds, used each time the metric specified in MetricName
  9792  	// is evaluated. Valid values are 10, 30, and any multiple of 60.
  9793  	//
  9794  	// Period is required for alarms based on static thresholds. If you are creating
  9795  	// an alarm based on a metric math expression, you specify the period for each
  9796  	// metric within the objects in the Metrics array.
  9797  	//
  9798  	// Be sure to specify 10 or 30 only for metrics that are stored by a PutMetricData
  9799  	// call with a StorageResolution of 1. If you specify a period of 10 or 30 for
  9800  	// a metric that does not have sub-minute resolution, the alarm still attempts
  9801  	// to gather data at the period rate that you specify. In this case, it does
  9802  	// not receive data for the attempts that do not correspond to a one-minute
  9803  	// data resolution, and the alarm might often lapse into INSUFFICENT_DATA status.
  9804  	// Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which
  9805  	// has a higher charge than other alarms. For more information about pricing,
  9806  	// see Amazon CloudWatch Pricing (https://aws.amazon.com/cloudwatch/pricing/).
  9807  	//
  9808  	// An alarm's total current evaluation period can be no longer than one day,
  9809  	// so Period multiplied by EvaluationPeriods cannot be more than 86,400 seconds.
  9810  	Period *int64 `min:"1" type:"integer"`
  9811  
  9812  	// The statistic for the metric specified in MetricName, other than percentile.
  9813  	// For percentile statistics, use ExtendedStatistic. When you call PutMetricAlarm
  9814  	// and specify a MetricName, you must specify either Statistic or ExtendedStatistic,
  9815  	// but not both.
  9816  	Statistic *string `type:"string" enum:"Statistic"`
  9817  
  9818  	// A list of key-value pairs to associate with the alarm. You can associate
  9819  	// as many as 50 tags with an alarm.
  9820  	//
  9821  	// Tags can help you organize and categorize your resources. You can also use
  9822  	// them to scope user permissions by granting a user permission to access or
  9823  	// change only resources with certain tag values.
  9824  	//
  9825  	// If you are using this operation to update an existing alarm, any tags you
  9826  	// specify in this parameter are ignored. To change the tags of an existing
  9827  	// alarm, use TagResource (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html)
  9828  	// or UntagResource (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html).
  9829  	Tags []*Tag `type:"list"`
  9830  
  9831  	// The value against which the specified statistic is compared.
  9832  	//
  9833  	// This parameter is required for alarms based on static thresholds, but should
  9834  	// not be used for alarms based on anomaly detection models.
  9835  	Threshold *float64 `type:"double"`
  9836  
  9837  	// If this is an alarm based on an anomaly detection model, make this value
  9838  	// match the ID of the ANOMALY_DETECTION_BAND function.
  9839  	//
  9840  	// For an example of how to use this parameter, see the Anomaly Detection Model
  9841  	// Alarm example on this page.
  9842  	//
  9843  	// If your alarm uses this parameter, it cannot have Auto Scaling actions.
  9844  	ThresholdMetricId *string `min:"1" type:"string"`
  9845  
  9846  	// Sets how this alarm is to handle missing data points. If TreatMissingData
  9847  	// is omitted, the default behavior of missing is used. For more information,
  9848  	// see Configuring How CloudWatch Alarms Treats Missing Data (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data).
  9849  	//
  9850  	// Valid Values: breaching | notBreaching | ignore | missing
  9851  	TreatMissingData *string `min:"1" type:"string"`
  9852  
  9853  	// The unit of measure for the statistic. For example, the units for the Amazon
  9854  	// EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes
  9855  	// that an instance receives on all network interfaces. You can also specify
  9856  	// a unit when you create a custom metric. Units help provide conceptual meaning
  9857  	// to your data. Metric data points that specify a unit of measure, such as
  9858  	// Percent, are aggregated separately.
  9859  	//
  9860  	// If you don't specify Unit, CloudWatch retrieves all unit types that have
  9861  	// been published for the metric and attempts to evaluate the alarm. Usually,
  9862  	// metrics are published with only one unit, so the alarm works as intended.
  9863  	//
  9864  	// However, if the metric is published with multiple types of units and you
  9865  	// don't specify a unit, the alarm's behavior is not defined and it behaves
  9866  	// predictably.
  9867  	//
  9868  	// We recommend omitting Unit so that you don't inadvertently specify an incorrect
  9869  	// unit that is not published for this metric. Doing so causes the alarm to
  9870  	// be stuck in the INSUFFICIENT DATA state.
  9871  	Unit *string `type:"string" enum:"StandardUnit"`
  9872  }
  9873  
  9874  // String returns the string representation.
  9875  //
  9876  // API parameter values that are decorated as "sensitive" in the API will not
  9877  // be included in the string output. The member name will be present, but the
  9878  // value will be replaced with "sensitive".
  9879  func (s PutMetricAlarmInput) String() string {
  9880  	return awsutil.Prettify(s)
  9881  }
  9882  
  9883  // GoString returns the string representation.
  9884  //
  9885  // API parameter values that are decorated as "sensitive" in the API will not
  9886  // be included in the string output. The member name will be present, but the
  9887  // value will be replaced with "sensitive".
  9888  func (s PutMetricAlarmInput) GoString() string {
  9889  	return s.String()
  9890  }
  9891  
  9892  // Validate inspects the fields of the type to determine if they are valid.
  9893  func (s *PutMetricAlarmInput) Validate() error {
  9894  	invalidParams := request.ErrInvalidParams{Context: "PutMetricAlarmInput"}
  9895  	if s.AlarmName == nil {
  9896  		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
  9897  	}
  9898  	if s.AlarmName != nil && len(*s.AlarmName) < 1 {
  9899  		invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
  9900  	}
  9901  	if s.ComparisonOperator == nil {
  9902  		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
  9903  	}
  9904  	if s.DatapointsToAlarm != nil && *s.DatapointsToAlarm < 1 {
  9905  		invalidParams.Add(request.NewErrParamMinValue("DatapointsToAlarm", 1))
  9906  	}
  9907  	if s.EvaluateLowSampleCountPercentile != nil && len(*s.EvaluateLowSampleCountPercentile) < 1 {
  9908  		invalidParams.Add(request.NewErrParamMinLen("EvaluateLowSampleCountPercentile", 1))
  9909  	}
  9910  	if s.EvaluationPeriods == nil {
  9911  		invalidParams.Add(request.NewErrParamRequired("EvaluationPeriods"))
  9912  	}
  9913  	if s.EvaluationPeriods != nil && *s.EvaluationPeriods < 1 {
  9914  		invalidParams.Add(request.NewErrParamMinValue("EvaluationPeriods", 1))
  9915  	}
  9916  	if s.MetricName != nil && len(*s.MetricName) < 1 {
  9917  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
  9918  	}
  9919  	if s.Namespace != nil && len(*s.Namespace) < 1 {
  9920  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
  9921  	}
  9922  	if s.Period != nil && *s.Period < 1 {
  9923  		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
  9924  	}
  9925  	if s.ThresholdMetricId != nil && len(*s.ThresholdMetricId) < 1 {
  9926  		invalidParams.Add(request.NewErrParamMinLen("ThresholdMetricId", 1))
  9927  	}
  9928  	if s.TreatMissingData != nil && len(*s.TreatMissingData) < 1 {
  9929  		invalidParams.Add(request.NewErrParamMinLen("TreatMissingData", 1))
  9930  	}
  9931  	if s.Dimensions != nil {
  9932  		for i, v := range s.Dimensions {
  9933  			if v == nil {
  9934  				continue
  9935  			}
  9936  			if err := v.Validate(); err != nil {
  9937  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
  9938  			}
  9939  		}
  9940  	}
  9941  	if s.Metrics != nil {
  9942  		for i, v := range s.Metrics {
  9943  			if v == nil {
  9944  				continue
  9945  			}
  9946  			if err := v.Validate(); err != nil {
  9947  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Metrics", i), err.(request.ErrInvalidParams))
  9948  			}
  9949  		}
  9950  	}
  9951  	if s.Tags != nil {
  9952  		for i, v := range s.Tags {
  9953  			if v == nil {
  9954  				continue
  9955  			}
  9956  			if err := v.Validate(); err != nil {
  9957  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9958  			}
  9959  		}
  9960  	}
  9961  
  9962  	if invalidParams.Len() > 0 {
  9963  		return invalidParams
  9964  	}
  9965  	return nil
  9966  }
  9967  
  9968  // SetActionsEnabled sets the ActionsEnabled field's value.
  9969  func (s *PutMetricAlarmInput) SetActionsEnabled(v bool) *PutMetricAlarmInput {
  9970  	s.ActionsEnabled = &v
  9971  	return s
  9972  }
  9973  
  9974  // SetAlarmActions sets the AlarmActions field's value.
  9975  func (s *PutMetricAlarmInput) SetAlarmActions(v []*string) *PutMetricAlarmInput {
  9976  	s.AlarmActions = v
  9977  	return s
  9978  }
  9979  
  9980  // SetAlarmDescription sets the AlarmDescription field's value.
  9981  func (s *PutMetricAlarmInput) SetAlarmDescription(v string) *PutMetricAlarmInput {
  9982  	s.AlarmDescription = &v
  9983  	return s
  9984  }
  9985  
  9986  // SetAlarmName sets the AlarmName field's value.
  9987  func (s *PutMetricAlarmInput) SetAlarmName(v string) *PutMetricAlarmInput {
  9988  	s.AlarmName = &v
  9989  	return s
  9990  }
  9991  
  9992  // SetComparisonOperator sets the ComparisonOperator field's value.
  9993  func (s *PutMetricAlarmInput) SetComparisonOperator(v string) *PutMetricAlarmInput {
  9994  	s.ComparisonOperator = &v
  9995  	return s
  9996  }
  9997  
  9998  // SetDatapointsToAlarm sets the DatapointsToAlarm field's value.
  9999  func (s *PutMetricAlarmInput) SetDatapointsToAlarm(v int64) *PutMetricAlarmInput {
 10000  	s.DatapointsToAlarm = &v
 10001  	return s
 10002  }
 10003  
 10004  // SetDimensions sets the Dimensions field's value.
 10005  func (s *PutMetricAlarmInput) SetDimensions(v []*Dimension) *PutMetricAlarmInput {
 10006  	s.Dimensions = v
 10007  	return s
 10008  }
 10009  
 10010  // SetEvaluateLowSampleCountPercentile sets the EvaluateLowSampleCountPercentile field's value.
 10011  func (s *PutMetricAlarmInput) SetEvaluateLowSampleCountPercentile(v string) *PutMetricAlarmInput {
 10012  	s.EvaluateLowSampleCountPercentile = &v
 10013  	return s
 10014  }
 10015  
 10016  // SetEvaluationPeriods sets the EvaluationPeriods field's value.
 10017  func (s *PutMetricAlarmInput) SetEvaluationPeriods(v int64) *PutMetricAlarmInput {
 10018  	s.EvaluationPeriods = &v
 10019  	return s
 10020  }
 10021  
 10022  // SetExtendedStatistic sets the ExtendedStatistic field's value.
 10023  func (s *PutMetricAlarmInput) SetExtendedStatistic(v string) *PutMetricAlarmInput {
 10024  	s.ExtendedStatistic = &v
 10025  	return s
 10026  }
 10027  
 10028  // SetInsufficientDataActions sets the InsufficientDataActions field's value.
 10029  func (s *PutMetricAlarmInput) SetInsufficientDataActions(v []*string) *PutMetricAlarmInput {
 10030  	s.InsufficientDataActions = v
 10031  	return s
 10032  }
 10033  
 10034  // SetMetricName sets the MetricName field's value.
 10035  func (s *PutMetricAlarmInput) SetMetricName(v string) *PutMetricAlarmInput {
 10036  	s.MetricName = &v
 10037  	return s
 10038  }
 10039  
 10040  // SetMetrics sets the Metrics field's value.
 10041  func (s *PutMetricAlarmInput) SetMetrics(v []*MetricDataQuery) *PutMetricAlarmInput {
 10042  	s.Metrics = v
 10043  	return s
 10044  }
 10045  
 10046  // SetNamespace sets the Namespace field's value.
 10047  func (s *PutMetricAlarmInput) SetNamespace(v string) *PutMetricAlarmInput {
 10048  	s.Namespace = &v
 10049  	return s
 10050  }
 10051  
 10052  // SetOKActions sets the OKActions field's value.
 10053  func (s *PutMetricAlarmInput) SetOKActions(v []*string) *PutMetricAlarmInput {
 10054  	s.OKActions = v
 10055  	return s
 10056  }
 10057  
 10058  // SetPeriod sets the Period field's value.
 10059  func (s *PutMetricAlarmInput) SetPeriod(v int64) *PutMetricAlarmInput {
 10060  	s.Period = &v
 10061  	return s
 10062  }
 10063  
 10064  // SetStatistic sets the Statistic field's value.
 10065  func (s *PutMetricAlarmInput) SetStatistic(v string) *PutMetricAlarmInput {
 10066  	s.Statistic = &v
 10067  	return s
 10068  }
 10069  
 10070  // SetTags sets the Tags field's value.
 10071  func (s *PutMetricAlarmInput) SetTags(v []*Tag) *PutMetricAlarmInput {
 10072  	s.Tags = v
 10073  	return s
 10074  }
 10075  
 10076  // SetThreshold sets the Threshold field's value.
 10077  func (s *PutMetricAlarmInput) SetThreshold(v float64) *PutMetricAlarmInput {
 10078  	s.Threshold = &v
 10079  	return s
 10080  }
 10081  
 10082  // SetThresholdMetricId sets the ThresholdMetricId field's value.
 10083  func (s *PutMetricAlarmInput) SetThresholdMetricId(v string) *PutMetricAlarmInput {
 10084  	s.ThresholdMetricId = &v
 10085  	return s
 10086  }
 10087  
 10088  // SetTreatMissingData sets the TreatMissingData field's value.
 10089  func (s *PutMetricAlarmInput) SetTreatMissingData(v string) *PutMetricAlarmInput {
 10090  	s.TreatMissingData = &v
 10091  	return s
 10092  }
 10093  
 10094  // SetUnit sets the Unit field's value.
 10095  func (s *PutMetricAlarmInput) SetUnit(v string) *PutMetricAlarmInput {
 10096  	s.Unit = &v
 10097  	return s
 10098  }
 10099  
 10100  type PutMetricAlarmOutput struct {
 10101  	_ struct{} `type:"structure"`
 10102  }
 10103  
 10104  // String returns the string representation.
 10105  //
 10106  // API parameter values that are decorated as "sensitive" in the API will not
 10107  // be included in the string output. The member name will be present, but the
 10108  // value will be replaced with "sensitive".
 10109  func (s PutMetricAlarmOutput) String() string {
 10110  	return awsutil.Prettify(s)
 10111  }
 10112  
 10113  // GoString returns the string representation.
 10114  //
 10115  // API parameter values that are decorated as "sensitive" in the API will not
 10116  // be included in the string output. The member name will be present, but the
 10117  // value will be replaced with "sensitive".
 10118  func (s PutMetricAlarmOutput) GoString() string {
 10119  	return s.String()
 10120  }
 10121  
 10122  type PutMetricDataInput struct {
 10123  	_ struct{} `type:"structure"`
 10124  
 10125  	// The data for the metric. The array can include no more than 20 metrics per
 10126  	// call.
 10127  	//
 10128  	// MetricData is a required field
 10129  	MetricData []*MetricDatum `type:"list" required:"true"`
 10130  
 10131  	// The namespace for the metric data.
 10132  	//
 10133  	// To avoid conflicts with Amazon Web Services service namespaces, you should
 10134  	// not specify a namespace that begins with AWS/
 10135  	//
 10136  	// Namespace is a required field
 10137  	Namespace *string `min:"1" type:"string" required:"true"`
 10138  }
 10139  
 10140  // String returns the string representation.
 10141  //
 10142  // API parameter values that are decorated as "sensitive" in the API will not
 10143  // be included in the string output. The member name will be present, but the
 10144  // value will be replaced with "sensitive".
 10145  func (s PutMetricDataInput) String() string {
 10146  	return awsutil.Prettify(s)
 10147  }
 10148  
 10149  // GoString returns the string representation.
 10150  //
 10151  // API parameter values that are decorated as "sensitive" in the API will not
 10152  // be included in the string output. The member name will be present, but the
 10153  // value will be replaced with "sensitive".
 10154  func (s PutMetricDataInput) GoString() string {
 10155  	return s.String()
 10156  }
 10157  
 10158  // Validate inspects the fields of the type to determine if they are valid.
 10159  func (s *PutMetricDataInput) Validate() error {
 10160  	invalidParams := request.ErrInvalidParams{Context: "PutMetricDataInput"}
 10161  	if s.MetricData == nil {
 10162  		invalidParams.Add(request.NewErrParamRequired("MetricData"))
 10163  	}
 10164  	if s.Namespace == nil {
 10165  		invalidParams.Add(request.NewErrParamRequired("Namespace"))
 10166  	}
 10167  	if s.Namespace != nil && len(*s.Namespace) < 1 {
 10168  		invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
 10169  	}
 10170  	if s.MetricData != nil {
 10171  		for i, v := range s.MetricData {
 10172  			if v == nil {
 10173  				continue
 10174  			}
 10175  			if err := v.Validate(); err != nil {
 10176  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricData", i), err.(request.ErrInvalidParams))
 10177  			}
 10178  		}
 10179  	}
 10180  
 10181  	if invalidParams.Len() > 0 {
 10182  		return invalidParams
 10183  	}
 10184  	return nil
 10185  }
 10186  
 10187  // SetMetricData sets the MetricData field's value.
 10188  func (s *PutMetricDataInput) SetMetricData(v []*MetricDatum) *PutMetricDataInput {
 10189  	s.MetricData = v
 10190  	return s
 10191  }
 10192  
 10193  // SetNamespace sets the Namespace field's value.
 10194  func (s *PutMetricDataInput) SetNamespace(v string) *PutMetricDataInput {
 10195  	s.Namespace = &v
 10196  	return s
 10197  }
 10198  
 10199  type PutMetricDataOutput struct {
 10200  	_ struct{} `type:"structure"`
 10201  }
 10202  
 10203  // String returns the string representation.
 10204  //
 10205  // API parameter values that are decorated as "sensitive" in the API will not
 10206  // be included in the string output. The member name will be present, but the
 10207  // value will be replaced with "sensitive".
 10208  func (s PutMetricDataOutput) String() string {
 10209  	return awsutil.Prettify(s)
 10210  }
 10211  
 10212  // GoString returns the string representation.
 10213  //
 10214  // API parameter values that are decorated as "sensitive" in the API will not
 10215  // be included in the string output. The member name will be present, but the
 10216  // value will be replaced with "sensitive".
 10217  func (s PutMetricDataOutput) GoString() string {
 10218  	return s.String()
 10219  }
 10220  
 10221  type PutMetricStreamInput struct {
 10222  	_ struct{} `type:"structure"`
 10223  
 10224  	// If you specify this parameter, the stream sends metrics from all metric namespaces
 10225  	// except for the namespaces that you specify here.
 10226  	//
 10227  	// You cannot include ExcludeFilters and IncludeFilters in the same operation.
 10228  	ExcludeFilters []*MetricStreamFilter `type:"list"`
 10229  
 10230  	// The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric
 10231  	// stream. This Amazon Kinesis Firehose delivery stream must already exist and
 10232  	// must be in the same account as the metric stream.
 10233  	//
 10234  	// FirehoseArn is a required field
 10235  	FirehoseArn *string `min:"1" type:"string" required:"true"`
 10236  
 10237  	// If you specify this parameter, the stream sends only the metrics from the
 10238  	// metric namespaces that you specify here.
 10239  	//
 10240  	// You cannot include IncludeFilters and ExcludeFilters in the same operation.
 10241  	IncludeFilters []*MetricStreamFilter `type:"list"`
 10242  
 10243  	// If you are creating a new metric stream, this is the name for the new stream.
 10244  	// The name must be different than the names of other metric streams in this
 10245  	// account and Region.
 10246  	//
 10247  	// If you are updating a metric stream, specify the name of that stream here.
 10248  	//
 10249  	// Valid characters are A-Z, a-z, 0-9, "-" and "_".
 10250  	//
 10251  	// Name is a required field
 10252  	Name *string `min:"1" type:"string" required:"true"`
 10253  
 10254  	// The output format for the stream. Valid values are json and opentelemetry0.7.
 10255  	// For more information about metric stream output formats, see Metric streams
 10256  	// output formats (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html).
 10257  	//
 10258  	// OutputFormat is a required field
 10259  	OutputFormat *string `min:"1" type:"string" required:"true" enum:"MetricStreamOutputFormat"`
 10260  
 10261  	// The ARN of an IAM role that this metric stream will use to access Amazon
 10262  	// Kinesis Firehose resources. This IAM role must already exist and must be
 10263  	// in the same account as the metric stream. This IAM role must include the
 10264  	// following permissions:
 10265  	//
 10266  	//    * firehose:PutRecord
 10267  	//
 10268  	//    * firehose:PutRecordBatch
 10269  	//
 10270  	// RoleArn is a required field
 10271  	RoleArn *string `min:"1" type:"string" required:"true"`
 10272  
 10273  	// A list of key-value pairs to associate with the metric stream. You can associate
 10274  	// as many as 50 tags with a metric stream.
 10275  	//
 10276  	// Tags can help you organize and categorize your resources. You can also use
 10277  	// them to scope user permissions by granting a user permission to access or
 10278  	// change only resources with certain tag values.
 10279  	//
 10280  	// You can use this parameter only when you are creating a new metric stream.
 10281  	// If you are using this operation to update an existing metric stream, any
 10282  	// tags you specify in this parameter are ignored. To change the tags of an
 10283  	// existing metric stream, use TagResource (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html)
 10284  	// or UntagResource (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html).
 10285  	Tags []*Tag `type:"list"`
 10286  }
 10287  
 10288  // String returns the string representation.
 10289  //
 10290  // API parameter values that are decorated as "sensitive" in the API will not
 10291  // be included in the string output. The member name will be present, but the
 10292  // value will be replaced with "sensitive".
 10293  func (s PutMetricStreamInput) String() string {
 10294  	return awsutil.Prettify(s)
 10295  }
 10296  
 10297  // GoString returns the string representation.
 10298  //
 10299  // API parameter values that are decorated as "sensitive" in the API will not
 10300  // be included in the string output. The member name will be present, but the
 10301  // value will be replaced with "sensitive".
 10302  func (s PutMetricStreamInput) GoString() string {
 10303  	return s.String()
 10304  }
 10305  
 10306  // Validate inspects the fields of the type to determine if they are valid.
 10307  func (s *PutMetricStreamInput) Validate() error {
 10308  	invalidParams := request.ErrInvalidParams{Context: "PutMetricStreamInput"}
 10309  	if s.FirehoseArn == nil {
 10310  		invalidParams.Add(request.NewErrParamRequired("FirehoseArn"))
 10311  	}
 10312  	if s.FirehoseArn != nil && len(*s.FirehoseArn) < 1 {
 10313  		invalidParams.Add(request.NewErrParamMinLen("FirehoseArn", 1))
 10314  	}
 10315  	if s.Name == nil {
 10316  		invalidParams.Add(request.NewErrParamRequired("Name"))
 10317  	}
 10318  	if s.Name != nil && len(*s.Name) < 1 {
 10319  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 10320  	}
 10321  	if s.OutputFormat == nil {
 10322  		invalidParams.Add(request.NewErrParamRequired("OutputFormat"))
 10323  	}
 10324  	if s.OutputFormat != nil && len(*s.OutputFormat) < 1 {
 10325  		invalidParams.Add(request.NewErrParamMinLen("OutputFormat", 1))
 10326  	}
 10327  	if s.RoleArn == nil {
 10328  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
 10329  	}
 10330  	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
 10331  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
 10332  	}
 10333  	if s.ExcludeFilters != nil {
 10334  		for i, v := range s.ExcludeFilters {
 10335  			if v == nil {
 10336  				continue
 10337  			}
 10338  			if err := v.Validate(); err != nil {
 10339  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludeFilters", i), err.(request.ErrInvalidParams))
 10340  			}
 10341  		}
 10342  	}
 10343  	if s.IncludeFilters != nil {
 10344  		for i, v := range s.IncludeFilters {
 10345  			if v == nil {
 10346  				continue
 10347  			}
 10348  			if err := v.Validate(); err != nil {
 10349  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IncludeFilters", i), err.(request.ErrInvalidParams))
 10350  			}
 10351  		}
 10352  	}
 10353  	if s.Tags != nil {
 10354  		for i, v := range s.Tags {
 10355  			if v == nil {
 10356  				continue
 10357  			}
 10358  			if err := v.Validate(); err != nil {
 10359  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 10360  			}
 10361  		}
 10362  	}
 10363  
 10364  	if invalidParams.Len() > 0 {
 10365  		return invalidParams
 10366  	}
 10367  	return nil
 10368  }
 10369  
 10370  // SetExcludeFilters sets the ExcludeFilters field's value.
 10371  func (s *PutMetricStreamInput) SetExcludeFilters(v []*MetricStreamFilter) *PutMetricStreamInput {
 10372  	s.ExcludeFilters = v
 10373  	return s
 10374  }
 10375  
 10376  // SetFirehoseArn sets the FirehoseArn field's value.
 10377  func (s *PutMetricStreamInput) SetFirehoseArn(v string) *PutMetricStreamInput {
 10378  	s.FirehoseArn = &v
 10379  	return s
 10380  }
 10381  
 10382  // SetIncludeFilters sets the IncludeFilters field's value.
 10383  func (s *PutMetricStreamInput) SetIncludeFilters(v []*MetricStreamFilter) *PutMetricStreamInput {
 10384  	s.IncludeFilters = v
 10385  	return s
 10386  }
 10387  
 10388  // SetName sets the Name field's value.
 10389  func (s *PutMetricStreamInput) SetName(v string) *PutMetricStreamInput {
 10390  	s.Name = &v
 10391  	return s
 10392  }
 10393  
 10394  // SetOutputFormat sets the OutputFormat field's value.
 10395  func (s *PutMetricStreamInput) SetOutputFormat(v string) *PutMetricStreamInput {
 10396  	s.OutputFormat = &v
 10397  	return s
 10398  }
 10399  
 10400  // SetRoleArn sets the RoleArn field's value.
 10401  func (s *PutMetricStreamInput) SetRoleArn(v string) *PutMetricStreamInput {
 10402  	s.RoleArn = &v
 10403  	return s
 10404  }
 10405  
 10406  // SetTags sets the Tags field's value.
 10407  func (s *PutMetricStreamInput) SetTags(v []*Tag) *PutMetricStreamInput {
 10408  	s.Tags = v
 10409  	return s
 10410  }
 10411  
 10412  type PutMetricStreamOutput struct {
 10413  	_ struct{} `type:"structure"`
 10414  
 10415  	// The ARN of the metric stream.
 10416  	Arn *string `min:"1" type:"string"`
 10417  }
 10418  
 10419  // String returns the string representation.
 10420  //
 10421  // API parameter values that are decorated as "sensitive" in the API will not
 10422  // be included in the string output. The member name will be present, but the
 10423  // value will be replaced with "sensitive".
 10424  func (s PutMetricStreamOutput) String() string {
 10425  	return awsutil.Prettify(s)
 10426  }
 10427  
 10428  // GoString returns the string representation.
 10429  //
 10430  // API parameter values that are decorated as "sensitive" in the API will not
 10431  // be included in the string output. The member name will be present, but the
 10432  // value will be replaced with "sensitive".
 10433  func (s PutMetricStreamOutput) GoString() string {
 10434  	return s.String()
 10435  }
 10436  
 10437  // SetArn sets the Arn field's value.
 10438  func (s *PutMetricStreamOutput) SetArn(v string) *PutMetricStreamOutput {
 10439  	s.Arn = &v
 10440  	return s
 10441  }
 10442  
 10443  // Specifies one range of days or times to exclude from use for training an
 10444  // anomaly detection model.
 10445  type Range struct {
 10446  	_ struct{} `type:"structure"`
 10447  
 10448  	// The end time of the range to exclude. The format is yyyy-MM-dd'T'HH:mm:ss.
 10449  	// For example, 2019-07-01T23:59:59.
 10450  	//
 10451  	// EndTime is a required field
 10452  	EndTime *time.Time `type:"timestamp" required:"true"`
 10453  
 10454  	// The start time of the range to exclude. The format is yyyy-MM-dd'T'HH:mm:ss.
 10455  	// For example, 2019-07-01T23:59:59.
 10456  	//
 10457  	// StartTime is a required field
 10458  	StartTime *time.Time `type:"timestamp" required:"true"`
 10459  }
 10460  
 10461  // String returns the string representation.
 10462  //
 10463  // API parameter values that are decorated as "sensitive" in the API will not
 10464  // be included in the string output. The member name will be present, but the
 10465  // value will be replaced with "sensitive".
 10466  func (s Range) String() string {
 10467  	return awsutil.Prettify(s)
 10468  }
 10469  
 10470  // GoString returns the string representation.
 10471  //
 10472  // API parameter values that are decorated as "sensitive" in the API will not
 10473  // be included in the string output. The member name will be present, but the
 10474  // value will be replaced with "sensitive".
 10475  func (s Range) GoString() string {
 10476  	return s.String()
 10477  }
 10478  
 10479  // Validate inspects the fields of the type to determine if they are valid.
 10480  func (s *Range) Validate() error {
 10481  	invalidParams := request.ErrInvalidParams{Context: "Range"}
 10482  	if s.EndTime == nil {
 10483  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 10484  	}
 10485  	if s.StartTime == nil {
 10486  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 10487  	}
 10488  
 10489  	if invalidParams.Len() > 0 {
 10490  		return invalidParams
 10491  	}
 10492  	return nil
 10493  }
 10494  
 10495  // SetEndTime sets the EndTime field's value.
 10496  func (s *Range) SetEndTime(v time.Time) *Range {
 10497  	s.EndTime = &v
 10498  	return s
 10499  }
 10500  
 10501  // SetStartTime sets the StartTime field's value.
 10502  func (s *Range) SetStartTime(v time.Time) *Range {
 10503  	s.StartTime = &v
 10504  	return s
 10505  }
 10506  
 10507  type SetAlarmStateInput struct {
 10508  	_ struct{} `type:"structure"`
 10509  
 10510  	// The name of the alarm.
 10511  	//
 10512  	// AlarmName is a required field
 10513  	AlarmName *string `min:"1" type:"string" required:"true"`
 10514  
 10515  	// The reason that this alarm is set to this specific state, in text format.
 10516  	//
 10517  	// StateReason is a required field
 10518  	StateReason *string `type:"string" required:"true"`
 10519  
 10520  	// The reason that this alarm is set to this specific state, in JSON format.
 10521  	//
 10522  	// For SNS or EC2 alarm actions, this is just informational. But for EC2 Auto
 10523  	// Scaling or application Auto Scaling alarm actions, the Auto Scaling policy
 10524  	// uses the information in this field to take the correct action.
 10525  	StateReasonData *string `type:"string"`
 10526  
 10527  	// The value of the state.
 10528  	//
 10529  	// StateValue is a required field
 10530  	StateValue *string `type:"string" required:"true" enum:"StateValue"`
 10531  }
 10532  
 10533  // String returns the string representation.
 10534  //
 10535  // API parameter values that are decorated as "sensitive" in the API will not
 10536  // be included in the string output. The member name will be present, but the
 10537  // value will be replaced with "sensitive".
 10538  func (s SetAlarmStateInput) String() string {
 10539  	return awsutil.Prettify(s)
 10540  }
 10541  
 10542  // GoString returns the string representation.
 10543  //
 10544  // API parameter values that are decorated as "sensitive" in the API will not
 10545  // be included in the string output. The member name will be present, but the
 10546  // value will be replaced with "sensitive".
 10547  func (s SetAlarmStateInput) GoString() string {
 10548  	return s.String()
 10549  }
 10550  
 10551  // Validate inspects the fields of the type to determine if they are valid.
 10552  func (s *SetAlarmStateInput) Validate() error {
 10553  	invalidParams := request.ErrInvalidParams{Context: "SetAlarmStateInput"}
 10554  	if s.AlarmName == nil {
 10555  		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
 10556  	}
 10557  	if s.AlarmName != nil && len(*s.AlarmName) < 1 {
 10558  		invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
 10559  	}
 10560  	if s.StateReason == nil {
 10561  		invalidParams.Add(request.NewErrParamRequired("StateReason"))
 10562  	}
 10563  	if s.StateValue == nil {
 10564  		invalidParams.Add(request.NewErrParamRequired("StateValue"))
 10565  	}
 10566  
 10567  	if invalidParams.Len() > 0 {
 10568  		return invalidParams
 10569  	}
 10570  	return nil
 10571  }
 10572  
 10573  // SetAlarmName sets the AlarmName field's value.
 10574  func (s *SetAlarmStateInput) SetAlarmName(v string) *SetAlarmStateInput {
 10575  	s.AlarmName = &v
 10576  	return s
 10577  }
 10578  
 10579  // SetStateReason sets the StateReason field's value.
 10580  func (s *SetAlarmStateInput) SetStateReason(v string) *SetAlarmStateInput {
 10581  	s.StateReason = &v
 10582  	return s
 10583  }
 10584  
 10585  // SetStateReasonData sets the StateReasonData field's value.
 10586  func (s *SetAlarmStateInput) SetStateReasonData(v string) *SetAlarmStateInput {
 10587  	s.StateReasonData = &v
 10588  	return s
 10589  }
 10590  
 10591  // SetStateValue sets the StateValue field's value.
 10592  func (s *SetAlarmStateInput) SetStateValue(v string) *SetAlarmStateInput {
 10593  	s.StateValue = &v
 10594  	return s
 10595  }
 10596  
 10597  type SetAlarmStateOutput struct {
 10598  	_ struct{} `type:"structure"`
 10599  }
 10600  
 10601  // String returns the string representation.
 10602  //
 10603  // API parameter values that are decorated as "sensitive" in the API will not
 10604  // be included in the string output. The member name will be present, but the
 10605  // value will be replaced with "sensitive".
 10606  func (s SetAlarmStateOutput) String() string {
 10607  	return awsutil.Prettify(s)
 10608  }
 10609  
 10610  // GoString returns the string representation.
 10611  //
 10612  // API parameter values that are decorated as "sensitive" in the API will not
 10613  // be included in the string output. The member name will be present, but the
 10614  // value will be replaced with "sensitive".
 10615  func (s SetAlarmStateOutput) GoString() string {
 10616  	return s.String()
 10617  }
 10618  
 10619  type StartMetricStreamsInput struct {
 10620  	_ struct{} `type:"structure"`
 10621  
 10622  	// The array of the names of metric streams to start streaming.
 10623  	//
 10624  	// This is an "all or nothing" operation. If you do not have permission to access
 10625  	// all of the metric streams that you list here, then none of the streams that
 10626  	// you list in the operation will start streaming.
 10627  	//
 10628  	// Names is a required field
 10629  	Names []*string `type:"list" required:"true"`
 10630  }
 10631  
 10632  // String returns the string representation.
 10633  //
 10634  // API parameter values that are decorated as "sensitive" in the API will not
 10635  // be included in the string output. The member name will be present, but the
 10636  // value will be replaced with "sensitive".
 10637  func (s StartMetricStreamsInput) String() string {
 10638  	return awsutil.Prettify(s)
 10639  }
 10640  
 10641  // GoString returns the string representation.
 10642  //
 10643  // API parameter values that are decorated as "sensitive" in the API will not
 10644  // be included in the string output. The member name will be present, but the
 10645  // value will be replaced with "sensitive".
 10646  func (s StartMetricStreamsInput) GoString() string {
 10647  	return s.String()
 10648  }
 10649  
 10650  // Validate inspects the fields of the type to determine if they are valid.
 10651  func (s *StartMetricStreamsInput) Validate() error {
 10652  	invalidParams := request.ErrInvalidParams{Context: "StartMetricStreamsInput"}
 10653  	if s.Names == nil {
 10654  		invalidParams.Add(request.NewErrParamRequired("Names"))
 10655  	}
 10656  
 10657  	if invalidParams.Len() > 0 {
 10658  		return invalidParams
 10659  	}
 10660  	return nil
 10661  }
 10662  
 10663  // SetNames sets the Names field's value.
 10664  func (s *StartMetricStreamsInput) SetNames(v []*string) *StartMetricStreamsInput {
 10665  	s.Names = v
 10666  	return s
 10667  }
 10668  
 10669  type StartMetricStreamsOutput struct {
 10670  	_ struct{} `type:"structure"`
 10671  }
 10672  
 10673  // String returns the string representation.
 10674  //
 10675  // API parameter values that are decorated as "sensitive" in the API will not
 10676  // be included in the string output. The member name will be present, but the
 10677  // value will be replaced with "sensitive".
 10678  func (s StartMetricStreamsOutput) String() string {
 10679  	return awsutil.Prettify(s)
 10680  }
 10681  
 10682  // GoString returns the string representation.
 10683  //
 10684  // API parameter values that are decorated as "sensitive" in the API will not
 10685  // be included in the string output. The member name will be present, but the
 10686  // value will be replaced with "sensitive".
 10687  func (s StartMetricStreamsOutput) GoString() string {
 10688  	return s.String()
 10689  }
 10690  
 10691  // Represents a set of statistics that describes a specific metric.
 10692  type StatisticSet struct {
 10693  	_ struct{} `type:"structure"`
 10694  
 10695  	// The maximum value of the sample set.
 10696  	//
 10697  	// Maximum is a required field
 10698  	Maximum *float64 `type:"double" required:"true"`
 10699  
 10700  	// The minimum value of the sample set.
 10701  	//
 10702  	// Minimum is a required field
 10703  	Minimum *float64 `type:"double" required:"true"`
 10704  
 10705  	// The number of samples used for the statistic set.
 10706  	//
 10707  	// SampleCount is a required field
 10708  	SampleCount *float64 `type:"double" required:"true"`
 10709  
 10710  	// The sum of values for the sample set.
 10711  	//
 10712  	// Sum is a required field
 10713  	Sum *float64 `type:"double" required:"true"`
 10714  }
 10715  
 10716  // String returns the string representation.
 10717  //
 10718  // API parameter values that are decorated as "sensitive" in the API will not
 10719  // be included in the string output. The member name will be present, but the
 10720  // value will be replaced with "sensitive".
 10721  func (s StatisticSet) String() string {
 10722  	return awsutil.Prettify(s)
 10723  }
 10724  
 10725  // GoString returns the string representation.
 10726  //
 10727  // API parameter values that are decorated as "sensitive" in the API will not
 10728  // be included in the string output. The member name will be present, but the
 10729  // value will be replaced with "sensitive".
 10730  func (s StatisticSet) GoString() string {
 10731  	return s.String()
 10732  }
 10733  
 10734  // Validate inspects the fields of the type to determine if they are valid.
 10735  func (s *StatisticSet) Validate() error {
 10736  	invalidParams := request.ErrInvalidParams{Context: "StatisticSet"}
 10737  	if s.Maximum == nil {
 10738  		invalidParams.Add(request.NewErrParamRequired("Maximum"))
 10739  	}
 10740  	if s.Minimum == nil {
 10741  		invalidParams.Add(request.NewErrParamRequired("Minimum"))
 10742  	}
 10743  	if s.SampleCount == nil {
 10744  		invalidParams.Add(request.NewErrParamRequired("SampleCount"))
 10745  	}
 10746  	if s.Sum == nil {
 10747  		invalidParams.Add(request.NewErrParamRequired("Sum"))
 10748  	}
 10749  
 10750  	if invalidParams.Len() > 0 {
 10751  		return invalidParams
 10752  	}
 10753  	return nil
 10754  }
 10755  
 10756  // SetMaximum sets the Maximum field's value.
 10757  func (s *StatisticSet) SetMaximum(v float64) *StatisticSet {
 10758  	s.Maximum = &v
 10759  	return s
 10760  }
 10761  
 10762  // SetMinimum sets the Minimum field's value.
 10763  func (s *StatisticSet) SetMinimum(v float64) *StatisticSet {
 10764  	s.Minimum = &v
 10765  	return s
 10766  }
 10767  
 10768  // SetSampleCount sets the SampleCount field's value.
 10769  func (s *StatisticSet) SetSampleCount(v float64) *StatisticSet {
 10770  	s.SampleCount = &v
 10771  	return s
 10772  }
 10773  
 10774  // SetSum sets the Sum field's value.
 10775  func (s *StatisticSet) SetSum(v float64) *StatisticSet {
 10776  	s.Sum = &v
 10777  	return s
 10778  }
 10779  
 10780  type StopMetricStreamsInput struct {
 10781  	_ struct{} `type:"structure"`
 10782  
 10783  	// The array of the names of metric streams to stop streaming.
 10784  	//
 10785  	// This is an "all or nothing" operation. If you do not have permission to access
 10786  	// all of the metric streams that you list here, then none of the streams that
 10787  	// you list in the operation will stop streaming.
 10788  	//
 10789  	// Names is a required field
 10790  	Names []*string `type:"list" required:"true"`
 10791  }
 10792  
 10793  // String returns the string representation.
 10794  //
 10795  // API parameter values that are decorated as "sensitive" in the API will not
 10796  // be included in the string output. The member name will be present, but the
 10797  // value will be replaced with "sensitive".
 10798  func (s StopMetricStreamsInput) String() string {
 10799  	return awsutil.Prettify(s)
 10800  }
 10801  
 10802  // GoString returns the string representation.
 10803  //
 10804  // API parameter values that are decorated as "sensitive" in the API will not
 10805  // be included in the string output. The member name will be present, but the
 10806  // value will be replaced with "sensitive".
 10807  func (s StopMetricStreamsInput) GoString() string {
 10808  	return s.String()
 10809  }
 10810  
 10811  // Validate inspects the fields of the type to determine if they are valid.
 10812  func (s *StopMetricStreamsInput) Validate() error {
 10813  	invalidParams := request.ErrInvalidParams{Context: "StopMetricStreamsInput"}
 10814  	if s.Names == nil {
 10815  		invalidParams.Add(request.NewErrParamRequired("Names"))
 10816  	}
 10817  
 10818  	if invalidParams.Len() > 0 {
 10819  		return invalidParams
 10820  	}
 10821  	return nil
 10822  }
 10823  
 10824  // SetNames sets the Names field's value.
 10825  func (s *StopMetricStreamsInput) SetNames(v []*string) *StopMetricStreamsInput {
 10826  	s.Names = v
 10827  	return s
 10828  }
 10829  
 10830  type StopMetricStreamsOutput struct {
 10831  	_ struct{} `type:"structure"`
 10832  }
 10833  
 10834  // String returns the string representation.
 10835  //
 10836  // API parameter values that are decorated as "sensitive" in the API will not
 10837  // be included in the string output. The member name will be present, but the
 10838  // value will be replaced with "sensitive".
 10839  func (s StopMetricStreamsOutput) String() string {
 10840  	return awsutil.Prettify(s)
 10841  }
 10842  
 10843  // GoString returns the string representation.
 10844  //
 10845  // API parameter values that are decorated as "sensitive" in the API will not
 10846  // be included in the string output. The member name will be present, but the
 10847  // value will be replaced with "sensitive".
 10848  func (s StopMetricStreamsOutput) GoString() string {
 10849  	return s.String()
 10850  }
 10851  
 10852  // A key-value pair associated with a CloudWatch resource.
 10853  type Tag struct {
 10854  	_ struct{} `type:"structure"`
 10855  
 10856  	// A string that you can use to assign a value. The combination of tag keys
 10857  	// and values can help you organize and categorize your resources.
 10858  	//
 10859  	// Key is a required field
 10860  	Key *string `min:"1" type:"string" required:"true"`
 10861  
 10862  	// The value for the specified tag key.
 10863  	//
 10864  	// Value is a required field
 10865  	Value *string `type:"string" required:"true"`
 10866  }
 10867  
 10868  // String returns the string representation.
 10869  //
 10870  // API parameter values that are decorated as "sensitive" in the API will not
 10871  // be included in the string output. The member name will be present, but the
 10872  // value will be replaced with "sensitive".
 10873  func (s Tag) String() string {
 10874  	return awsutil.Prettify(s)
 10875  }
 10876  
 10877  // GoString returns the string representation.
 10878  //
 10879  // API parameter values that are decorated as "sensitive" in the API will not
 10880  // be included in the string output. The member name will be present, but the
 10881  // value will be replaced with "sensitive".
 10882  func (s Tag) GoString() string {
 10883  	return s.String()
 10884  }
 10885  
 10886  // Validate inspects the fields of the type to determine if they are valid.
 10887  func (s *Tag) Validate() error {
 10888  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 10889  	if s.Key == nil {
 10890  		invalidParams.Add(request.NewErrParamRequired("Key"))
 10891  	}
 10892  	if s.Key != nil && len(*s.Key) < 1 {
 10893  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 10894  	}
 10895  	if s.Value == nil {
 10896  		invalidParams.Add(request.NewErrParamRequired("Value"))
 10897  	}
 10898  
 10899  	if invalidParams.Len() > 0 {
 10900  		return invalidParams
 10901  	}
 10902  	return nil
 10903  }
 10904  
 10905  // SetKey sets the Key field's value.
 10906  func (s *Tag) SetKey(v string) *Tag {
 10907  	s.Key = &v
 10908  	return s
 10909  }
 10910  
 10911  // SetValue sets the Value field's value.
 10912  func (s *Tag) SetValue(v string) *Tag {
 10913  	s.Value = &v
 10914  	return s
 10915  }
 10916  
 10917  type TagResourceInput struct {
 10918  	_ struct{} `type:"structure"`
 10919  
 10920  	// The ARN of the CloudWatch resource that you're adding tags to.
 10921  	//
 10922  	// The ARN format of an alarm is arn:aws:cloudwatch:Region:account-id:alarm:alarm-name
 10923  	//
 10924  	// The ARN format of a Contributor Insights rule is arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name
 10925  	//
 10926  	// For more information about ARN format, see Resource Types Defined by Amazon
 10927  	// CloudWatch (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies)
 10928  	// in the Amazon Web Services General Reference.
 10929  	//
 10930  	// ResourceARN is a required field
 10931  	ResourceARN *string `min:"1" type:"string" required:"true"`
 10932  
 10933  	// The list of key-value pairs to associate with the alarm.
 10934  	//
 10935  	// Tags is a required field
 10936  	Tags []*Tag `type:"list" required:"true"`
 10937  }
 10938  
 10939  // String returns the string representation.
 10940  //
 10941  // API parameter values that are decorated as "sensitive" in the API will not
 10942  // be included in the string output. The member name will be present, but the
 10943  // value will be replaced with "sensitive".
 10944  func (s TagResourceInput) String() string {
 10945  	return awsutil.Prettify(s)
 10946  }
 10947  
 10948  // GoString returns the string representation.
 10949  //
 10950  // API parameter values that are decorated as "sensitive" in the API will not
 10951  // be included in the string output. The member name will be present, but the
 10952  // value will be replaced with "sensitive".
 10953  func (s TagResourceInput) GoString() string {
 10954  	return s.String()
 10955  }
 10956  
 10957  // Validate inspects the fields of the type to determine if they are valid.
 10958  func (s *TagResourceInput) Validate() error {
 10959  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 10960  	if s.ResourceARN == nil {
 10961  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 10962  	}
 10963  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 10964  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 10965  	}
 10966  	if s.Tags == nil {
 10967  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 10968  	}
 10969  	if s.Tags != nil {
 10970  		for i, v := range s.Tags {
 10971  			if v == nil {
 10972  				continue
 10973  			}
 10974  			if err := v.Validate(); err != nil {
 10975  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 10976  			}
 10977  		}
 10978  	}
 10979  
 10980  	if invalidParams.Len() > 0 {
 10981  		return invalidParams
 10982  	}
 10983  	return nil
 10984  }
 10985  
 10986  // SetResourceARN sets the ResourceARN field's value.
 10987  func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
 10988  	s.ResourceARN = &v
 10989  	return s
 10990  }
 10991  
 10992  // SetTags sets the Tags field's value.
 10993  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 10994  	s.Tags = v
 10995  	return s
 10996  }
 10997  
 10998  type TagResourceOutput struct {
 10999  	_ struct{} `type:"structure"`
 11000  }
 11001  
 11002  // String returns the string representation.
 11003  //
 11004  // API parameter values that are decorated as "sensitive" in the API will not
 11005  // be included in the string output. The member name will be present, but the
 11006  // value will be replaced with "sensitive".
 11007  func (s TagResourceOutput) String() string {
 11008  	return awsutil.Prettify(s)
 11009  }
 11010  
 11011  // GoString returns the string representation.
 11012  //
 11013  // API parameter values that are decorated as "sensitive" in the API will not
 11014  // be included in the string output. The member name will be present, but the
 11015  // value will be replaced with "sensitive".
 11016  func (s TagResourceOutput) GoString() string {
 11017  	return s.String()
 11018  }
 11019  
 11020  type UntagResourceInput struct {
 11021  	_ struct{} `type:"structure"`
 11022  
 11023  	// The ARN of the CloudWatch resource that you're removing tags from.
 11024  	//
 11025  	// The ARN format of an alarm is arn:aws:cloudwatch:Region:account-id:alarm:alarm-name
 11026  	//
 11027  	// The ARN format of a Contributor Insights rule is arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name
 11028  	//
 11029  	// For more information about ARN format, see Resource Types Defined by Amazon
 11030  	// CloudWatch (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies)
 11031  	// in the Amazon Web Services General Reference.
 11032  	//
 11033  	// ResourceARN is a required field
 11034  	ResourceARN *string `min:"1" type:"string" required:"true"`
 11035  
 11036  	// The list of tag keys to remove from the resource.
 11037  	//
 11038  	// TagKeys is a required field
 11039  	TagKeys []*string `type:"list" required:"true"`
 11040  }
 11041  
 11042  // String returns the string representation.
 11043  //
 11044  // API parameter values that are decorated as "sensitive" in the API will not
 11045  // be included in the string output. The member name will be present, but the
 11046  // value will be replaced with "sensitive".
 11047  func (s UntagResourceInput) String() string {
 11048  	return awsutil.Prettify(s)
 11049  }
 11050  
 11051  // GoString returns the string representation.
 11052  //
 11053  // API parameter values that are decorated as "sensitive" in the API will not
 11054  // be included in the string output. The member name will be present, but the
 11055  // value will be replaced with "sensitive".
 11056  func (s UntagResourceInput) GoString() string {
 11057  	return s.String()
 11058  }
 11059  
 11060  // Validate inspects the fields of the type to determine if they are valid.
 11061  func (s *UntagResourceInput) Validate() error {
 11062  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 11063  	if s.ResourceARN == nil {
 11064  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 11065  	}
 11066  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 11067  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 11068  	}
 11069  	if s.TagKeys == nil {
 11070  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 11071  	}
 11072  
 11073  	if invalidParams.Len() > 0 {
 11074  		return invalidParams
 11075  	}
 11076  	return nil
 11077  }
 11078  
 11079  // SetResourceARN sets the ResourceARN field's value.
 11080  func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
 11081  	s.ResourceARN = &v
 11082  	return s
 11083  }
 11084  
 11085  // SetTagKeys sets the TagKeys field's value.
 11086  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 11087  	s.TagKeys = v
 11088  	return s
 11089  }
 11090  
 11091  type UntagResourceOutput struct {
 11092  	_ struct{} `type:"structure"`
 11093  }
 11094  
 11095  // String returns the string representation.
 11096  //
 11097  // API parameter values that are decorated as "sensitive" in the API will not
 11098  // be included in the string output. The member name will be present, but the
 11099  // value will be replaced with "sensitive".
 11100  func (s UntagResourceOutput) String() string {
 11101  	return awsutil.Prettify(s)
 11102  }
 11103  
 11104  // GoString returns the string representation.
 11105  //
 11106  // API parameter values that are decorated as "sensitive" in the API will not
 11107  // be included in the string output. The member name will be present, but the
 11108  // value will be replaced with "sensitive".
 11109  func (s UntagResourceOutput) GoString() string {
 11110  	return s.String()
 11111  }
 11112  
 11113  const (
 11114  	// AlarmTypeCompositeAlarm is a AlarmType enum value
 11115  	AlarmTypeCompositeAlarm = "CompositeAlarm"
 11116  
 11117  	// AlarmTypeMetricAlarm is a AlarmType enum value
 11118  	AlarmTypeMetricAlarm = "MetricAlarm"
 11119  )
 11120  
 11121  // AlarmType_Values returns all elements of the AlarmType enum
 11122  func AlarmType_Values() []string {
 11123  	return []string{
 11124  		AlarmTypeCompositeAlarm,
 11125  		AlarmTypeMetricAlarm,
 11126  	}
 11127  }
 11128  
 11129  const (
 11130  	// AnomalyDetectorStateValuePendingTraining is a AnomalyDetectorStateValue enum value
 11131  	AnomalyDetectorStateValuePendingTraining = "PENDING_TRAINING"
 11132  
 11133  	// AnomalyDetectorStateValueTrainedInsufficientData is a AnomalyDetectorStateValue enum value
 11134  	AnomalyDetectorStateValueTrainedInsufficientData = "TRAINED_INSUFFICIENT_DATA"
 11135  
 11136  	// AnomalyDetectorStateValueTrained is a AnomalyDetectorStateValue enum value
 11137  	AnomalyDetectorStateValueTrained = "TRAINED"
 11138  )
 11139  
 11140  // AnomalyDetectorStateValue_Values returns all elements of the AnomalyDetectorStateValue enum
 11141  func AnomalyDetectorStateValue_Values() []string {
 11142  	return []string{
 11143  		AnomalyDetectorStateValuePendingTraining,
 11144  		AnomalyDetectorStateValueTrainedInsufficientData,
 11145  		AnomalyDetectorStateValueTrained,
 11146  	}
 11147  }
 11148  
 11149  const (
 11150  	// ComparisonOperatorGreaterThanOrEqualToThreshold is a ComparisonOperator enum value
 11151  	ComparisonOperatorGreaterThanOrEqualToThreshold = "GreaterThanOrEqualToThreshold"
 11152  
 11153  	// ComparisonOperatorGreaterThanThreshold is a ComparisonOperator enum value
 11154  	ComparisonOperatorGreaterThanThreshold = "GreaterThanThreshold"
 11155  
 11156  	// ComparisonOperatorLessThanThreshold is a ComparisonOperator enum value
 11157  	ComparisonOperatorLessThanThreshold = "LessThanThreshold"
 11158  
 11159  	// ComparisonOperatorLessThanOrEqualToThreshold is a ComparisonOperator enum value
 11160  	ComparisonOperatorLessThanOrEqualToThreshold = "LessThanOrEqualToThreshold"
 11161  
 11162  	// ComparisonOperatorLessThanLowerOrGreaterThanUpperThreshold is a ComparisonOperator enum value
 11163  	ComparisonOperatorLessThanLowerOrGreaterThanUpperThreshold = "LessThanLowerOrGreaterThanUpperThreshold"
 11164  
 11165  	// ComparisonOperatorLessThanLowerThreshold is a ComparisonOperator enum value
 11166  	ComparisonOperatorLessThanLowerThreshold = "LessThanLowerThreshold"
 11167  
 11168  	// ComparisonOperatorGreaterThanUpperThreshold is a ComparisonOperator enum value
 11169  	ComparisonOperatorGreaterThanUpperThreshold = "GreaterThanUpperThreshold"
 11170  )
 11171  
 11172  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
 11173  func ComparisonOperator_Values() []string {
 11174  	return []string{
 11175  		ComparisonOperatorGreaterThanOrEqualToThreshold,
 11176  		ComparisonOperatorGreaterThanThreshold,
 11177  		ComparisonOperatorLessThanThreshold,
 11178  		ComparisonOperatorLessThanOrEqualToThreshold,
 11179  		ComparisonOperatorLessThanLowerOrGreaterThanUpperThreshold,
 11180  		ComparisonOperatorLessThanLowerThreshold,
 11181  		ComparisonOperatorGreaterThanUpperThreshold,
 11182  	}
 11183  }
 11184  
 11185  const (
 11186  	// HistoryItemTypeConfigurationUpdate is a HistoryItemType enum value
 11187  	HistoryItemTypeConfigurationUpdate = "ConfigurationUpdate"
 11188  
 11189  	// HistoryItemTypeStateUpdate is a HistoryItemType enum value
 11190  	HistoryItemTypeStateUpdate = "StateUpdate"
 11191  
 11192  	// HistoryItemTypeAction is a HistoryItemType enum value
 11193  	HistoryItemTypeAction = "Action"
 11194  )
 11195  
 11196  // HistoryItemType_Values returns all elements of the HistoryItemType enum
 11197  func HistoryItemType_Values() []string {
 11198  	return []string{
 11199  		HistoryItemTypeConfigurationUpdate,
 11200  		HistoryItemTypeStateUpdate,
 11201  		HistoryItemTypeAction,
 11202  	}
 11203  }
 11204  
 11205  const (
 11206  	// MetricStreamOutputFormatJson is a MetricStreamOutputFormat enum value
 11207  	MetricStreamOutputFormatJson = "json"
 11208  
 11209  	// MetricStreamOutputFormatOpentelemetry07 is a MetricStreamOutputFormat enum value
 11210  	MetricStreamOutputFormatOpentelemetry07 = "opentelemetry0.7"
 11211  )
 11212  
 11213  // MetricStreamOutputFormat_Values returns all elements of the MetricStreamOutputFormat enum
 11214  func MetricStreamOutputFormat_Values() []string {
 11215  	return []string{
 11216  		MetricStreamOutputFormatJson,
 11217  		MetricStreamOutputFormatOpentelemetry07,
 11218  	}
 11219  }
 11220  
 11221  const (
 11222  	// RecentlyActivePt3h is a RecentlyActive enum value
 11223  	RecentlyActivePt3h = "PT3H"
 11224  )
 11225  
 11226  // RecentlyActive_Values returns all elements of the RecentlyActive enum
 11227  func RecentlyActive_Values() []string {
 11228  	return []string{
 11229  		RecentlyActivePt3h,
 11230  	}
 11231  }
 11232  
 11233  const (
 11234  	// ScanByTimestampDescending is a ScanBy enum value
 11235  	ScanByTimestampDescending = "TimestampDescending"
 11236  
 11237  	// ScanByTimestampAscending is a ScanBy enum value
 11238  	ScanByTimestampAscending = "TimestampAscending"
 11239  )
 11240  
 11241  // ScanBy_Values returns all elements of the ScanBy enum
 11242  func ScanBy_Values() []string {
 11243  	return []string{
 11244  		ScanByTimestampDescending,
 11245  		ScanByTimestampAscending,
 11246  	}
 11247  }
 11248  
 11249  const (
 11250  	// StandardUnitSeconds is a StandardUnit enum value
 11251  	StandardUnitSeconds = "Seconds"
 11252  
 11253  	// StandardUnitMicroseconds is a StandardUnit enum value
 11254  	StandardUnitMicroseconds = "Microseconds"
 11255  
 11256  	// StandardUnitMilliseconds is a StandardUnit enum value
 11257  	StandardUnitMilliseconds = "Milliseconds"
 11258  
 11259  	// StandardUnitBytes is a StandardUnit enum value
 11260  	StandardUnitBytes = "Bytes"
 11261  
 11262  	// StandardUnitKilobytes is a StandardUnit enum value
 11263  	StandardUnitKilobytes = "Kilobytes"
 11264  
 11265  	// StandardUnitMegabytes is a StandardUnit enum value
 11266  	StandardUnitMegabytes = "Megabytes"
 11267  
 11268  	// StandardUnitGigabytes is a StandardUnit enum value
 11269  	StandardUnitGigabytes = "Gigabytes"
 11270  
 11271  	// StandardUnitTerabytes is a StandardUnit enum value
 11272  	StandardUnitTerabytes = "Terabytes"
 11273  
 11274  	// StandardUnitBits is a StandardUnit enum value
 11275  	StandardUnitBits = "Bits"
 11276  
 11277  	// StandardUnitKilobits is a StandardUnit enum value
 11278  	StandardUnitKilobits = "Kilobits"
 11279  
 11280  	// StandardUnitMegabits is a StandardUnit enum value
 11281  	StandardUnitMegabits = "Megabits"
 11282  
 11283  	// StandardUnitGigabits is a StandardUnit enum value
 11284  	StandardUnitGigabits = "Gigabits"
 11285  
 11286  	// StandardUnitTerabits is a StandardUnit enum value
 11287  	StandardUnitTerabits = "Terabits"
 11288  
 11289  	// StandardUnitPercent is a StandardUnit enum value
 11290  	StandardUnitPercent = "Percent"
 11291  
 11292  	// StandardUnitCount is a StandardUnit enum value
 11293  	StandardUnitCount = "Count"
 11294  
 11295  	// StandardUnitBytesSecond is a StandardUnit enum value
 11296  	StandardUnitBytesSecond = "Bytes/Second"
 11297  
 11298  	// StandardUnitKilobytesSecond is a StandardUnit enum value
 11299  	StandardUnitKilobytesSecond = "Kilobytes/Second"
 11300  
 11301  	// StandardUnitMegabytesSecond is a StandardUnit enum value
 11302  	StandardUnitMegabytesSecond = "Megabytes/Second"
 11303  
 11304  	// StandardUnitGigabytesSecond is a StandardUnit enum value
 11305  	StandardUnitGigabytesSecond = "Gigabytes/Second"
 11306  
 11307  	// StandardUnitTerabytesSecond is a StandardUnit enum value
 11308  	StandardUnitTerabytesSecond = "Terabytes/Second"
 11309  
 11310  	// StandardUnitBitsSecond is a StandardUnit enum value
 11311  	StandardUnitBitsSecond = "Bits/Second"
 11312  
 11313  	// StandardUnitKilobitsSecond is a StandardUnit enum value
 11314  	StandardUnitKilobitsSecond = "Kilobits/Second"
 11315  
 11316  	// StandardUnitMegabitsSecond is a StandardUnit enum value
 11317  	StandardUnitMegabitsSecond = "Megabits/Second"
 11318  
 11319  	// StandardUnitGigabitsSecond is a StandardUnit enum value
 11320  	StandardUnitGigabitsSecond = "Gigabits/Second"
 11321  
 11322  	// StandardUnitTerabitsSecond is a StandardUnit enum value
 11323  	StandardUnitTerabitsSecond = "Terabits/Second"
 11324  
 11325  	// StandardUnitCountSecond is a StandardUnit enum value
 11326  	StandardUnitCountSecond = "Count/Second"
 11327  
 11328  	// StandardUnitNone is a StandardUnit enum value
 11329  	StandardUnitNone = "None"
 11330  )
 11331  
 11332  // StandardUnit_Values returns all elements of the StandardUnit enum
 11333  func StandardUnit_Values() []string {
 11334  	return []string{
 11335  		StandardUnitSeconds,
 11336  		StandardUnitMicroseconds,
 11337  		StandardUnitMilliseconds,
 11338  		StandardUnitBytes,
 11339  		StandardUnitKilobytes,
 11340  		StandardUnitMegabytes,
 11341  		StandardUnitGigabytes,
 11342  		StandardUnitTerabytes,
 11343  		StandardUnitBits,
 11344  		StandardUnitKilobits,
 11345  		StandardUnitMegabits,
 11346  		StandardUnitGigabits,
 11347  		StandardUnitTerabits,
 11348  		StandardUnitPercent,
 11349  		StandardUnitCount,
 11350  		StandardUnitBytesSecond,
 11351  		StandardUnitKilobytesSecond,
 11352  		StandardUnitMegabytesSecond,
 11353  		StandardUnitGigabytesSecond,
 11354  		StandardUnitTerabytesSecond,
 11355  		StandardUnitBitsSecond,
 11356  		StandardUnitKilobitsSecond,
 11357  		StandardUnitMegabitsSecond,
 11358  		StandardUnitGigabitsSecond,
 11359  		StandardUnitTerabitsSecond,
 11360  		StandardUnitCountSecond,
 11361  		StandardUnitNone,
 11362  	}
 11363  }
 11364  
 11365  const (
 11366  	// StateValueOk is a StateValue enum value
 11367  	StateValueOk = "OK"
 11368  
 11369  	// StateValueAlarm is a StateValue enum value
 11370  	StateValueAlarm = "ALARM"
 11371  
 11372  	// StateValueInsufficientData is a StateValue enum value
 11373  	StateValueInsufficientData = "INSUFFICIENT_DATA"
 11374  )
 11375  
 11376  // StateValue_Values returns all elements of the StateValue enum
 11377  func StateValue_Values() []string {
 11378  	return []string{
 11379  		StateValueOk,
 11380  		StateValueAlarm,
 11381  		StateValueInsufficientData,
 11382  	}
 11383  }
 11384  
 11385  const (
 11386  	// StatisticSampleCount is a Statistic enum value
 11387  	StatisticSampleCount = "SampleCount"
 11388  
 11389  	// StatisticAverage is a Statistic enum value
 11390  	StatisticAverage = "Average"
 11391  
 11392  	// StatisticSum is a Statistic enum value
 11393  	StatisticSum = "Sum"
 11394  
 11395  	// StatisticMinimum is a Statistic enum value
 11396  	StatisticMinimum = "Minimum"
 11397  
 11398  	// StatisticMaximum is a Statistic enum value
 11399  	StatisticMaximum = "Maximum"
 11400  )
 11401  
 11402  // Statistic_Values returns all elements of the Statistic enum
 11403  func Statistic_Values() []string {
 11404  	return []string{
 11405  		StatisticSampleCount,
 11406  		StatisticAverage,
 11407  		StatisticSum,
 11408  		StatisticMinimum,
 11409  		StatisticMaximum,
 11410  	}
 11411  }
 11412  
 11413  const (
 11414  	// StatusCodeComplete is a StatusCode enum value
 11415  	StatusCodeComplete = "Complete"
 11416  
 11417  	// StatusCodeInternalError is a StatusCode enum value
 11418  	StatusCodeInternalError = "InternalError"
 11419  
 11420  	// StatusCodePartialData is a StatusCode enum value
 11421  	StatusCodePartialData = "PartialData"
 11422  )
 11423  
 11424  // StatusCode_Values returns all elements of the StatusCode enum
 11425  func StatusCode_Values() []string {
 11426  	return []string{
 11427  		StatusCodeComplete,
 11428  		StatusCodeInternalError,
 11429  		StatusCodePartialData,
 11430  	}
 11431  }