1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloudwatch
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const 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
42func (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
94func (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.
108func (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
115const 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
141func (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
183func (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.
197func (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
204const 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
230func (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
270func (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.
284func (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
291const 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
317func (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
355func (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.
369func (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
376const 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
402func (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
441func (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.
455func (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
462const 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
488func (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
530func (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.
544func (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//
568func (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.
579func (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
603const 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
629func (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
668func (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.
682func (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//
706func (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.
717func (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
741const 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
767func (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
799func (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.
813func (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
820const 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
846func (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
886func (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.
900func (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
907const 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
933func (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
974func (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.
988func (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//
1012func (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.
1023func (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
1047const 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
1073func (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
1102func (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.
1116func (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
1123const 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
1149func (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
1185func (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.
1199func (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
1206const 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
1232func (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
1260func (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.
1274func (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
1281const 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
1307func (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
1346func (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.
1360func (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
1367const 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
1393func (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
1435func (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.
1449func (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
1456const 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
1482func (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
1550func (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.
1564func (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
1571const 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
1597func (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
1676func (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.
1690func (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//
1714func (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.
1725func (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
1749const 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
1775func (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
1869func (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.
1883func (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
1890const 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
1916func (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
1960func (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.
1974func (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
1981const 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
2007func (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
2048func (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.
2062func (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
2069const 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
2095func (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
2142func (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.
2156func (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//
2180func (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.
2191func (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
2215const 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
2241func (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
2288func (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.
2302func (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//
2326func (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.
2337func (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
2361const 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
2387func (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
2443func (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.
2457func (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//
2481func (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.
2492func (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
2516const 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
2542func (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
2581func (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.
2595func (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
2602const 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
2628func (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
2673func (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.
2687func (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
2694const 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
2720func (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
2794func (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.
2808func (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
2815const 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
2841func (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
2893func (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.
2907func (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
2914const 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
2940func (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
2985func (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.
2999func (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
3006const 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
3032func (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
3110func (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.
3124func (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
3131const 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
3157func (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
3245func (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.
3259func (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
3266const 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
3292func (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
3357func (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.
3371func (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
3378const 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
3404func (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
3458func (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.
3472func (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
3479const 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
3505func (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
3544func (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.
3558func (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
3565const 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
3591func (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
3630func (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.
3644func (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
3651const 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
3677func (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
3736func (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.
3750func (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
3757const 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
3783func (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
3825func (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.
3839func (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.
3847type 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".
3874func (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".
3883func (s AlarmHistoryItem) GoString() string {
3884	return s.String()
3885}
3886
3887// SetAlarmName sets the AlarmName field's value.
3888func (s *AlarmHistoryItem) SetAlarmName(v string) *AlarmHistoryItem {
3889	s.AlarmName = &v
3890	return s
3891}
3892
3893// SetAlarmType sets the AlarmType field's value.
3894func (s *AlarmHistoryItem) SetAlarmType(v string) *AlarmHistoryItem {
3895	s.AlarmType = &v
3896	return s
3897}
3898
3899// SetHistoryData sets the HistoryData field's value.
3900func (s *AlarmHistoryItem) SetHistoryData(v string) *AlarmHistoryItem {
3901	s.HistoryData = &v
3902	return s
3903}
3904
3905// SetHistoryItemType sets the HistoryItemType field's value.
3906func (s *AlarmHistoryItem) SetHistoryItemType(v string) *AlarmHistoryItem {
3907	s.HistoryItemType = &v
3908	return s
3909}
3910
3911// SetHistorySummary sets the HistorySummary field's value.
3912func (s *AlarmHistoryItem) SetHistorySummary(v string) *AlarmHistoryItem {
3913	s.HistorySummary = &v
3914	return s
3915}
3916
3917// SetTimestamp sets the Timestamp field's value.
3918func (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.
3926type 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".
3956func (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".
3965func (s AnomalyDetector) GoString() string {
3966	return s.String()
3967}
3968
3969// SetConfiguration sets the Configuration field's value.
3970func (s *AnomalyDetector) SetConfiguration(v *AnomalyDetectorConfiguration) *AnomalyDetector {
3971	s.Configuration = v
3972	return s
3973}
3974
3975// SetDimensions sets the Dimensions field's value.
3976func (s *AnomalyDetector) SetDimensions(v []*Dimension) *AnomalyDetector {
3977	s.Dimensions = v
3978	return s
3979}
3980
3981// SetMetricName sets the MetricName field's value.
3982func (s *AnomalyDetector) SetMetricName(v string) *AnomalyDetector {
3983	s.MetricName = &v
3984	return s
3985}
3986
3987// SetNamespace sets the Namespace field's value.
3988func (s *AnomalyDetector) SetNamespace(v string) *AnomalyDetector {
3989	s.Namespace = &v
3990	return s
3991}
3992
3993// SetStat sets the Stat field's value.
3994func (s *AnomalyDetector) SetStat(v string) *AnomalyDetector {
3995	s.Stat = &v
3996	return s
3997}
3998
3999// SetStateValue sets the StateValue field's value.
4000func (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.
4008type 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".
4031func (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".
4040func (s AnomalyDetectorConfiguration) GoString() string {
4041	return s.String()
4042}
4043
4044// Validate inspects the fields of the type to determine if they are valid.
4045func (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.
4065func (s *AnomalyDetectorConfiguration) SetExcludedTimeRanges(v []*Range) *AnomalyDetectorConfiguration {
4066	s.ExcludedTimeRanges = v
4067	return s
4068}
4069
4070// SetMetricTimezone sets the MetricTimezone field's value.
4071func (s *AnomalyDetectorConfiguration) SetMetricTimezone(v string) *AnomalyDetectorConfiguration {
4072	s.MetricTimezone = &v
4073	return s
4074}
4075
4076// The details about a composite alarm.
4077type 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".
4130func (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".
4139func (s CompositeAlarm) GoString() string {
4140	return s.String()
4141}
4142
4143// SetActionsEnabled sets the ActionsEnabled field's value.
4144func (s *CompositeAlarm) SetActionsEnabled(v bool) *CompositeAlarm {
4145	s.ActionsEnabled = &v
4146	return s
4147}
4148
4149// SetAlarmActions sets the AlarmActions field's value.
4150func (s *CompositeAlarm) SetAlarmActions(v []*string) *CompositeAlarm {
4151	s.AlarmActions = v
4152	return s
4153}
4154
4155// SetAlarmArn sets the AlarmArn field's value.
4156func (s *CompositeAlarm) SetAlarmArn(v string) *CompositeAlarm {
4157	s.AlarmArn = &v
4158	return s
4159}
4160
4161// SetAlarmConfigurationUpdatedTimestamp sets the AlarmConfigurationUpdatedTimestamp field's value.
4162func (s *CompositeAlarm) SetAlarmConfigurationUpdatedTimestamp(v time.Time) *CompositeAlarm {
4163	s.AlarmConfigurationUpdatedTimestamp = &v
4164	return s
4165}
4166
4167// SetAlarmDescription sets the AlarmDescription field's value.
4168func (s *CompositeAlarm) SetAlarmDescription(v string) *CompositeAlarm {
4169	s.AlarmDescription = &v
4170	return s
4171}
4172
4173// SetAlarmName sets the AlarmName field's value.
4174func (s *CompositeAlarm) SetAlarmName(v string) *CompositeAlarm {
4175	s.AlarmName = &v
4176	return s
4177}
4178
4179// SetAlarmRule sets the AlarmRule field's value.
4180func (s *CompositeAlarm) SetAlarmRule(v string) *CompositeAlarm {
4181	s.AlarmRule = &v
4182	return s
4183}
4184
4185// SetInsufficientDataActions sets the InsufficientDataActions field's value.
4186func (s *CompositeAlarm) SetInsufficientDataActions(v []*string) *CompositeAlarm {
4187	s.InsufficientDataActions = v
4188	return s
4189}
4190
4191// SetOKActions sets the OKActions field's value.
4192func (s *CompositeAlarm) SetOKActions(v []*string) *CompositeAlarm {
4193	s.OKActions = v
4194	return s
4195}
4196
4197// SetStateReason sets the StateReason field's value.
4198func (s *CompositeAlarm) SetStateReason(v string) *CompositeAlarm {
4199	s.StateReason = &v
4200	return s
4201}
4202
4203// SetStateReasonData sets the StateReasonData field's value.
4204func (s *CompositeAlarm) SetStateReasonData(v string) *CompositeAlarm {
4205	s.StateReasonData = &v
4206	return s
4207}
4208
4209// SetStateUpdatedTimestamp sets the StateUpdatedTimestamp field's value.
4210func (s *CompositeAlarm) SetStateUpdatedTimestamp(v time.Time) *CompositeAlarm {
4211	s.StateUpdatedTimestamp = &v
4212	return s
4213}
4214
4215// SetStateValue sets the StateValue field's value.
4216func (s *CompositeAlarm) SetStateValue(v string) *CompositeAlarm {
4217	s.StateValue = &v
4218	return s
4219}
4220
4221// Represents a specific dashboard.
4222type 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".
4245func (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".
4254func (s DashboardEntry) GoString() string {
4255	return s.String()
4256}
4257
4258// SetDashboardArn sets the DashboardArn field's value.
4259func (s *DashboardEntry) SetDashboardArn(v string) *DashboardEntry {
4260	s.DashboardArn = &v
4261	return s
4262}
4263
4264// SetDashboardName sets the DashboardName field's value.
4265func (s *DashboardEntry) SetDashboardName(v string) *DashboardEntry {
4266	s.DashboardName = &v
4267	return s
4268}
4269
4270// SetLastModified sets the LastModified field's value.
4271func (s *DashboardEntry) SetLastModified(v time.Time) *DashboardEntry {
4272	s.LastModified = &v
4273	return s
4274}
4275
4276// SetSize sets the Size field's value.
4277func (s *DashboardEntry) SetSize(v int64) *DashboardEntry {
4278	s.Size = &v
4279	return s
4280}
4281
4282// An error or warning for the operation.
4283type 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".
4298func (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".
4307func (s DashboardValidationMessage) GoString() string {
4308	return s.String()
4309}
4310
4311// SetDataPath sets the DataPath field's value.
4312func (s *DashboardValidationMessage) SetDataPath(v string) *DashboardValidationMessage {
4313	s.DataPath = &v
4314	return s
4315}
4316
4317// SetMessage sets the Message field's value.
4318func (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.
4324type 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".
4358func (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".
4367func (s Datapoint) GoString() string {
4368	return s.String()
4369}
4370
4371// SetAverage sets the Average field's value.
4372func (s *Datapoint) SetAverage(v float64) *Datapoint {
4373	s.Average = &v
4374	return s
4375}
4376
4377// SetExtendedStatistics sets the ExtendedStatistics field's value.
4378func (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.
4384func (s *Datapoint) SetMaximum(v float64) *Datapoint {
4385	s.Maximum = &v
4386	return s
4387}
4388
4389// SetMinimum sets the Minimum field's value.
4390func (s *Datapoint) SetMinimum(v float64) *Datapoint {
4391	s.Minimum = &v
4392	return s
4393}
4394
4395// SetSampleCount sets the SampleCount field's value.
4396func (s *Datapoint) SetSampleCount(v float64) *Datapoint {
4397	s.SampleCount = &v
4398	return s
4399}
4400
4401// SetSum sets the Sum field's value.
4402func (s *Datapoint) SetSum(v float64) *Datapoint {
4403	s.Sum = &v
4404	return s
4405}
4406
4407// SetTimestamp sets the Timestamp field's value.
4408func (s *Datapoint) SetTimestamp(v time.Time) *Datapoint {
4409	s.Timestamp = &v
4410	return s
4411}
4412
4413// SetUnit sets the Unit field's value.
4414func (s *Datapoint) SetUnit(v string) *Datapoint {
4415	s.Unit = &v
4416	return s
4417}
4418
4419type 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".
4433func (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".
4442func (s DeleteAlarmsInput) GoString() string {
4443	return s.String()
4444}
4445
4446// Validate inspects the fields of the type to determine if they are valid.
4447func (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.
4460func (s *DeleteAlarmsInput) SetAlarmNames(v []*string) *DeleteAlarmsInput {
4461	s.AlarmNames = v
4462	return s
4463}
4464
4465type 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".
4474func (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".
4483func (s DeleteAlarmsOutput) GoString() string {
4484	return s.String()
4485}
4486
4487type 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".
4514func (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".
4523func (s DeleteAnomalyDetectorInput) GoString() string {
4524	return s.String()
4525}
4526
4527// Validate inspects the fields of the type to determine if they are valid.
4528func (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.
4563func (s *DeleteAnomalyDetectorInput) SetDimensions(v []*Dimension) *DeleteAnomalyDetectorInput {
4564	s.Dimensions = v
4565	return s
4566}
4567
4568// SetMetricName sets the MetricName field's value.
4569func (s *DeleteAnomalyDetectorInput) SetMetricName(v string) *DeleteAnomalyDetectorInput {
4570	s.MetricName = &v
4571	return s
4572}
4573
4574// SetNamespace sets the Namespace field's value.
4575func (s *DeleteAnomalyDetectorInput) SetNamespace(v string) *DeleteAnomalyDetectorInput {
4576	s.Namespace = &v
4577	return s
4578}
4579
4580// SetStat sets the Stat field's value.
4581func (s *DeleteAnomalyDetectorInput) SetStat(v string) *DeleteAnomalyDetectorInput {
4582	s.Stat = &v
4583	return s
4584}
4585
4586type 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".
4595func (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".
4604func (s DeleteAnomalyDetectorOutput) GoString() string {
4605	return s.String()
4606}
4607
4608type 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".
4622func (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".
4631func (s DeleteDashboardsInput) GoString() string {
4632	return s.String()
4633}
4634
4635// Validate inspects the fields of the type to determine if they are valid.
4636func (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.
4649func (s *DeleteDashboardsInput) SetDashboardNames(v []*string) *DeleteDashboardsInput {
4650	s.DashboardNames = v
4651	return s
4652}
4653
4654type 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".
4663func (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".
4672func (s DeleteDashboardsOutput) GoString() string {
4673	return s.String()
4674}
4675
4676type 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".
4691func (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".
4700func (s DeleteInsightRulesInput) GoString() string {
4701	return s.String()
4702}
4703
4704// Validate inspects the fields of the type to determine if they are valid.
4705func (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.
4718func (s *DeleteInsightRulesInput) SetRuleNames(v []*string) *DeleteInsightRulesInput {
4719	s.RuleNames = v
4720	return s
4721}
4722
4723type 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".
4736func (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".
4745func (s DeleteInsightRulesOutput) GoString() string {
4746	return s.String()
4747}
4748
4749// SetFailures sets the Failures field's value.
4750func (s *DeleteInsightRulesOutput) SetFailures(v []*PartialFailure) *DeleteInsightRulesOutput {
4751	s.Failures = v
4752	return s
4753}
4754
4755type 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".
4769func (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".
4778func (s DeleteMetricStreamInput) GoString() string {
4779	return s.String()
4780}
4781
4782// Validate inspects the fields of the type to determine if they are valid.
4783func (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.
4799func (s *DeleteMetricStreamInput) SetName(v string) *DeleteMetricStreamInput {
4800	s.Name = &v
4801	return s
4802}
4803
4804type 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".
4813func (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".
4822func (s DeleteMetricStreamOutput) GoString() string {
4823	return s.String()
4824}
4825
4826type 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".
4864func (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".
4873func (s DescribeAlarmHistoryInput) GoString() string {
4874	return s.String()
4875}
4876
4877// Validate inspects the fields of the type to determine if they are valid.
4878func (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.
4894func (s *DescribeAlarmHistoryInput) SetAlarmName(v string) *DescribeAlarmHistoryInput {
4895	s.AlarmName = &v
4896	return s
4897}
4898
4899// SetAlarmTypes sets the AlarmTypes field's value.
4900func (s *DescribeAlarmHistoryInput) SetAlarmTypes(v []*string) *DescribeAlarmHistoryInput {
4901	s.AlarmTypes = v
4902	return s
4903}
4904
4905// SetEndDate sets the EndDate field's value.
4906func (s *DescribeAlarmHistoryInput) SetEndDate(v time.Time) *DescribeAlarmHistoryInput {
4907	s.EndDate = &v
4908	return s
4909}
4910
4911// SetHistoryItemType sets the HistoryItemType field's value.
4912func (s *DescribeAlarmHistoryInput) SetHistoryItemType(v string) *DescribeAlarmHistoryInput {
4913	s.HistoryItemType = &v
4914	return s
4915}
4916
4917// SetMaxRecords sets the MaxRecords field's value.
4918func (s *DescribeAlarmHistoryInput) SetMaxRecords(v int64) *DescribeAlarmHistoryInput {
4919	s.MaxRecords = &v
4920	return s
4921}
4922
4923// SetNextToken sets the NextToken field's value.
4924func (s *DescribeAlarmHistoryInput) SetNextToken(v string) *DescribeAlarmHistoryInput {
4925	s.NextToken = &v
4926	return s
4927}
4928
4929// SetScanBy sets the ScanBy field's value.
4930func (s *DescribeAlarmHistoryInput) SetScanBy(v string) *DescribeAlarmHistoryInput {
4931	s.ScanBy = &v
4932	return s
4933}
4934
4935// SetStartDate sets the StartDate field's value.
4936func (s *DescribeAlarmHistoryInput) SetStartDate(v time.Time) *DescribeAlarmHistoryInput {
4937	s.StartDate = &v
4938	return s
4939}
4940
4941type 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".
4956func (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".
4965func (s DescribeAlarmHistoryOutput) GoString() string {
4966	return s.String()
4967}
4968
4969// SetAlarmHistoryItems sets the AlarmHistoryItems field's value.
4970func (s *DescribeAlarmHistoryOutput) SetAlarmHistoryItems(v []*AlarmHistoryItem) *DescribeAlarmHistoryOutput {
4971	s.AlarmHistoryItems = v
4972	return s
4973}
4974
4975// SetNextToken sets the NextToken field's value.
4976func (s *DescribeAlarmHistoryOutput) SetNextToken(v string) *DescribeAlarmHistoryOutput {
4977	s.NextToken = &v
4978	return s
4979}
4980
4981type 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".
5018func (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".
5027func (s DescribeAlarmsForMetricInput) GoString() string {
5028	return s.String()
5029}
5030
5031// Validate inspects the fields of the type to determine if they are valid.
5032func (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.
5067func (s *DescribeAlarmsForMetricInput) SetDimensions(v []*Dimension) *DescribeAlarmsForMetricInput {
5068	s.Dimensions = v
5069	return s
5070}
5071
5072// SetExtendedStatistic sets the ExtendedStatistic field's value.
5073func (s *DescribeAlarmsForMetricInput) SetExtendedStatistic(v string) *DescribeAlarmsForMetricInput {
5074	s.ExtendedStatistic = &v
5075	return s
5076}
5077
5078// SetMetricName sets the MetricName field's value.
5079func (s *DescribeAlarmsForMetricInput) SetMetricName(v string) *DescribeAlarmsForMetricInput {
5080	s.MetricName = &v
5081	return s
5082}
5083
5084// SetNamespace sets the Namespace field's value.
5085func (s *DescribeAlarmsForMetricInput) SetNamespace(v string) *DescribeAlarmsForMetricInput {
5086	s.Namespace = &v
5087	return s
5088}
5089
5090// SetPeriod sets the Period field's value.
5091func (s *DescribeAlarmsForMetricInput) SetPeriod(v int64) *DescribeAlarmsForMetricInput {
5092	s.Period = &v
5093	return s
5094}
5095
5096// SetStatistic sets the Statistic field's value.
5097func (s *DescribeAlarmsForMetricInput) SetStatistic(v string) *DescribeAlarmsForMetricInput {
5098	s.Statistic = &v
5099	return s
5100}
5101
5102// SetUnit sets the Unit field's value.
5103func (s *DescribeAlarmsForMetricInput) SetUnit(v string) *DescribeAlarmsForMetricInput {
5104	s.Unit = &v
5105	return s
5106}
5107
5108type 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".
5120func (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".
5129func (s DescribeAlarmsForMetricOutput) GoString() string {
5130	return s.String()
5131}
5132
5133// SetMetricAlarms sets the MetricAlarms field's value.
5134func (s *DescribeAlarmsForMetricOutput) SetMetricAlarms(v []*MetricAlarm) *DescribeAlarmsForMetricOutput {
5135	s.MetricAlarms = v
5136	return s
5137}
5138
5139type 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".
5211func (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".
5220func (s DescribeAlarmsInput) GoString() string {
5221	return s.String()
5222}
5223
5224// Validate inspects the fields of the type to determine if they are valid.
5225func (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.
5250func (s *DescribeAlarmsInput) SetActionPrefix(v string) *DescribeAlarmsInput {
5251	s.ActionPrefix = &v
5252	return s
5253}
5254
5255// SetAlarmNamePrefix sets the AlarmNamePrefix field's value.
5256func (s *DescribeAlarmsInput) SetAlarmNamePrefix(v string) *DescribeAlarmsInput {
5257	s.AlarmNamePrefix = &v
5258	return s
5259}
5260
5261// SetAlarmNames sets the AlarmNames field's value.
5262func (s *DescribeAlarmsInput) SetAlarmNames(v []*string) *DescribeAlarmsInput {
5263	s.AlarmNames = v
5264	return s
5265}
5266
5267// SetAlarmTypes sets the AlarmTypes field's value.
5268func (s *DescribeAlarmsInput) SetAlarmTypes(v []*string) *DescribeAlarmsInput {
5269	s.AlarmTypes = v
5270	return s
5271}
5272
5273// SetChildrenOfAlarmName sets the ChildrenOfAlarmName field's value.
5274func (s *DescribeAlarmsInput) SetChildrenOfAlarmName(v string) *DescribeAlarmsInput {
5275	s.ChildrenOfAlarmName = &v
5276	return s
5277}
5278
5279// SetMaxRecords sets the MaxRecords field's value.
5280func (s *DescribeAlarmsInput) SetMaxRecords(v int64) *DescribeAlarmsInput {
5281	s.MaxRecords = &v
5282	return s
5283}
5284
5285// SetNextToken sets the NextToken field's value.
5286func (s *DescribeAlarmsInput) SetNextToken(v string) *DescribeAlarmsInput {
5287	s.NextToken = &v
5288	return s
5289}
5290
5291// SetParentsOfAlarmName sets the ParentsOfAlarmName field's value.
5292func (s *DescribeAlarmsInput) SetParentsOfAlarmName(v string) *DescribeAlarmsInput {
5293	s.ParentsOfAlarmName = &v
5294	return s
5295}
5296
5297// SetStateValue sets the StateValue field's value.
5298func (s *DescribeAlarmsInput) SetStateValue(v string) *DescribeAlarmsInput {
5299	s.StateValue = &v
5300	return s
5301}
5302
5303type 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".
5321func (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".
5330func (s DescribeAlarmsOutput) GoString() string {
5331	return s.String()
5332}
5333
5334// SetCompositeAlarms sets the CompositeAlarms field's value.
5335func (s *DescribeAlarmsOutput) SetCompositeAlarms(v []*CompositeAlarm) *DescribeAlarmsOutput {
5336	s.CompositeAlarms = v
5337	return s
5338}
5339
5340// SetMetricAlarms sets the MetricAlarms field's value.
5341func (s *DescribeAlarmsOutput) SetMetricAlarms(v []*MetricAlarm) *DescribeAlarmsOutput {
5342	s.MetricAlarms = v
5343	return s
5344}
5345
5346// SetNextToken sets the NextToken field's value.
5347func (s *DescribeAlarmsOutput) SetNextToken(v string) *DescribeAlarmsOutput {
5348	s.NextToken = &v
5349	return s
5350}
5351
5352type 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".
5387func (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".
5396func (s DescribeAnomalyDetectorsInput) GoString() string {
5397	return s.String()
5398}
5399
5400// Validate inspects the fields of the type to determine if they are valid.
5401func (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.
5430func (s *DescribeAnomalyDetectorsInput) SetDimensions(v []*Dimension) *DescribeAnomalyDetectorsInput {
5431	s.Dimensions = v
5432	return s
5433}
5434
5435// SetMaxResults sets the MaxResults field's value.
5436func (s *DescribeAnomalyDetectorsInput) SetMaxResults(v int64) *DescribeAnomalyDetectorsInput {
5437	s.MaxResults = &v
5438	return s
5439}
5440
5441// SetMetricName sets the MetricName field's value.
5442func (s *DescribeAnomalyDetectorsInput) SetMetricName(v string) *DescribeAnomalyDetectorsInput {
5443	s.MetricName = &v
5444	return s
5445}
5446
5447// SetNamespace sets the Namespace field's value.
5448func (s *DescribeAnomalyDetectorsInput) SetNamespace(v string) *DescribeAnomalyDetectorsInput {
5449	s.Namespace = &v
5450	return s
5451}
5452
5453// SetNextToken sets the NextToken field's value.
5454func (s *DescribeAnomalyDetectorsInput) SetNextToken(v string) *DescribeAnomalyDetectorsInput {
5455	s.NextToken = &v
5456	return s
5457}
5458
5459type 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".
5475func (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".
5484func (s DescribeAnomalyDetectorsOutput) GoString() string {
5485	return s.String()
5486}
5487
5488// SetAnomalyDetectors sets the AnomalyDetectors field's value.
5489func (s *DescribeAnomalyDetectorsOutput) SetAnomalyDetectors(v []*AnomalyDetector) *DescribeAnomalyDetectorsOutput {
5490	s.AnomalyDetectors = v
5491	return s
5492}
5493
5494// SetNextToken sets the NextToken field's value.
5495func (s *DescribeAnomalyDetectorsOutput) SetNextToken(v string) *DescribeAnomalyDetectorsOutput {
5496	s.NextToken = &v
5497	return s
5498}
5499
5500type 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".
5517func (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".
5526func (s DescribeInsightRulesInput) GoString() string {
5527	return s.String()
5528}
5529
5530// Validate inspects the fields of the type to determine if they are valid.
5531func (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.
5544func (s *DescribeInsightRulesInput) SetMaxResults(v int64) *DescribeInsightRulesInput {
5545	s.MaxResults = &v
5546	return s
5547}
5548
5549// SetNextToken sets the NextToken field's value.
5550func (s *DescribeInsightRulesInput) SetNextToken(v string) *DescribeInsightRulesInput {
5551	s.NextToken = &v
5552	return s
5553}
5554
5555type 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".
5571func (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".
5580func (s DescribeInsightRulesOutput) GoString() string {
5581	return s.String()
5582}
5583
5584// SetInsightRules sets the InsightRules field's value.
5585func (s *DescribeInsightRulesOutput) SetInsightRules(v []*InsightRule) *DescribeInsightRulesOutput {
5586	s.InsightRules = v
5587	return s
5588}
5589
5590// SetNextToken sets the NextToken field's value.
5591func (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.
5600type 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".
5621func (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".
5630func (s Dimension) GoString() string {
5631	return s.String()
5632}
5633
5634// Validate inspects the fields of the type to determine if they are valid.
5635func (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.
5657func (s *Dimension) SetName(v string) *Dimension {
5658	s.Name = &v
5659	return s
5660}
5661
5662// SetValue sets the Value field's value.
5663func (s *Dimension) SetValue(v string) *Dimension {
5664	s.Value = &v
5665	return s
5666}
5667
5668// Represents filters for a dimension.
5669type 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".
5686func (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".
5695func (s DimensionFilter) GoString() string {
5696	return s.String()
5697}
5698
5699// Validate inspects the fields of the type to determine if they are valid.
5700func (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.
5719func (s *DimensionFilter) SetName(v string) *DimensionFilter {
5720	s.Name = &v
5721	return s
5722}
5723
5724// SetValue sets the Value field's value.
5725func (s *DimensionFilter) SetValue(v string) *DimensionFilter {
5726	s.Value = &v
5727	return s
5728}
5729
5730type 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".
5744func (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".
5753func (s DisableAlarmActionsInput) GoString() string {
5754	return s.String()
5755}
5756
5757// Validate inspects the fields of the type to determine if they are valid.
5758func (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.
5771func (s *DisableAlarmActionsInput) SetAlarmNames(v []*string) *DisableAlarmActionsInput {
5772	s.AlarmNames = v
5773	return s
5774}
5775
5776type 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".
5785func (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".
5794func (s DisableAlarmActionsOutput) GoString() string {
5795	return s.String()
5796}
5797
5798type 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".
5813func (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".
5822func (s DisableInsightRulesInput) GoString() string {
5823	return s.String()
5824}
5825
5826// Validate inspects the fields of the type to determine if they are valid.
5827func (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.
5840func (s *DisableInsightRulesInput) SetRuleNames(v []*string) *DisableInsightRulesInput {
5841	s.RuleNames = v
5842	return s
5843}
5844
5845type 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".
5858func (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".
5867func (s DisableInsightRulesOutput) GoString() string {
5868	return s.String()
5869}
5870
5871// SetFailures sets the Failures field's value.
5872func (s *DisableInsightRulesOutput) SetFailures(v []*PartialFailure) *DisableInsightRulesOutput {
5873	s.Failures = v
5874	return s
5875}
5876
5877type 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".
5891func (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".
5900func (s EnableAlarmActionsInput) GoString() string {
5901	return s.String()
5902}
5903
5904// Validate inspects the fields of the type to determine if they are valid.
5905func (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.
5918func (s *EnableAlarmActionsInput) SetAlarmNames(v []*string) *EnableAlarmActionsInput {
5919	s.AlarmNames = v
5920	return s
5921}
5922
5923type 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".
5932func (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".
5941func (s EnableAlarmActionsOutput) GoString() string {
5942	return s.String()
5943}
5944
5945type 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".
5960func (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".
5969func (s EnableInsightRulesInput) GoString() string {
5970	return s.String()
5971}
5972
5973// Validate inspects the fields of the type to determine if they are valid.
5974func (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.
5987func (s *EnableInsightRulesInput) SetRuleNames(v []*string) *EnableInsightRulesInput {
5988	s.RuleNames = v
5989	return s
5990}
5991
5992type 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".
6005func (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".
6014func (s EnableInsightRulesOutput) GoString() string {
6015	return s.String()
6016}
6017
6018// SetFailures sets the Failures field's value.
6019func (s *EnableInsightRulesOutput) SetFailures(v []*PartialFailure) *EnableInsightRulesOutput {
6020	s.Failures = v
6021	return s
6022}
6023
6024type 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".
6038func (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".
6047func (s GetDashboardInput) GoString() string {
6048	return s.String()
6049}
6050
6051// Validate inspects the fields of the type to determine if they are valid.
6052func (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.
6065func (s *GetDashboardInput) SetDashboardName(v string) *GetDashboardInput {
6066	s.DashboardName = &v
6067	return s
6068}
6069
6070type 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".
6090func (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".
6099func (s GetDashboardOutput) GoString() string {
6100	return s.String()
6101}
6102
6103// SetDashboardArn sets the DashboardArn field's value.
6104func (s *GetDashboardOutput) SetDashboardArn(v string) *GetDashboardOutput {
6105	s.DashboardArn = &v
6106	return s
6107}
6108
6109// SetDashboardBody sets the DashboardBody field's value.
6110func (s *GetDashboardOutput) SetDashboardBody(v string) *GetDashboardOutput {
6111	s.DashboardBody = &v
6112	return s
6113}
6114
6115// SetDashboardName sets the DashboardName field's value.
6116func (s *GetDashboardOutput) SetDashboardName(v string) *GetDashboardOutput {
6117	s.DashboardName = &v
6118	return s
6119}
6120
6121type 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".
6190func (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".
6199func (s GetInsightRuleReportInput) GoString() string {
6200	return s.String()
6201}
6202
6203// Validate inspects the fields of the type to determine if they are valid.
6204func (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.
6235func (s *GetInsightRuleReportInput) SetEndTime(v time.Time) *GetInsightRuleReportInput {
6236	s.EndTime = &v
6237	return s
6238}
6239
6240// SetMaxContributorCount sets the MaxContributorCount field's value.
6241func (s *GetInsightRuleReportInput) SetMaxContributorCount(v int64) *GetInsightRuleReportInput {
6242	s.MaxContributorCount = &v
6243	return s
6244}
6245
6246// SetMetrics sets the Metrics field's value.
6247func (s *GetInsightRuleReportInput) SetMetrics(v []*string) *GetInsightRuleReportInput {
6248	s.Metrics = v
6249	return s
6250}
6251
6252// SetOrderBy sets the OrderBy field's value.
6253func (s *GetInsightRuleReportInput) SetOrderBy(v string) *GetInsightRuleReportInput {
6254	s.OrderBy = &v
6255	return s
6256}
6257
6258// SetPeriod sets the Period field's value.
6259func (s *GetInsightRuleReportInput) SetPeriod(v int64) *GetInsightRuleReportInput {
6260	s.Period = &v
6261	return s
6262}
6263
6264// SetRuleName sets the RuleName field's value.
6265func (s *GetInsightRuleReportInput) SetRuleName(v string) *GetInsightRuleReportInput {
6266	s.RuleName = &v
6267	return s
6268}
6269
6270// SetStartTime sets the StartTime field's value.
6271func (s *GetInsightRuleReportInput) SetStartTime(v time.Time) *GetInsightRuleReportInput {
6272	s.StartTime = &v
6273	return s
6274}
6275
6276type 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".
6310func (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".
6319func (s GetInsightRuleReportOutput) GoString() string {
6320	return s.String()
6321}
6322
6323// SetAggregateValue sets the AggregateValue field's value.
6324func (s *GetInsightRuleReportOutput) SetAggregateValue(v float64) *GetInsightRuleReportOutput {
6325	s.AggregateValue = &v
6326	return s
6327}
6328
6329// SetAggregationStatistic sets the AggregationStatistic field's value.
6330func (s *GetInsightRuleReportOutput) SetAggregationStatistic(v string) *GetInsightRuleReportOutput {
6331	s.AggregationStatistic = &v
6332	return s
6333}
6334
6335// SetApproximateUniqueCount sets the ApproximateUniqueCount field's value.
6336func (s *GetInsightRuleReportOutput) SetApproximateUniqueCount(v int64) *GetInsightRuleReportOutput {
6337	s.ApproximateUniqueCount = &v
6338	return s
6339}
6340
6341// SetContributors sets the Contributors field's value.
6342func (s *GetInsightRuleReportOutput) SetContributors(v []*InsightRuleContributor) *GetInsightRuleReportOutput {
6343	s.Contributors = v
6344	return s
6345}
6346
6347// SetKeyLabels sets the KeyLabels field's value.
6348func (s *GetInsightRuleReportOutput) SetKeyLabels(v []*string) *GetInsightRuleReportOutput {
6349	s.KeyLabels = v
6350	return s
6351}
6352
6353// SetMetricDatapoints sets the MetricDatapoints field's value.
6354func (s *GetInsightRuleReportOutput) SetMetricDatapoints(v []*InsightRuleMetricDatapoint) *GetInsightRuleReportOutput {
6355	s.MetricDatapoints = v
6356	return s
6357}
6358
6359type 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".
6442func (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".
6451func (s GetMetricDataInput) GoString() string {
6452	return s.String()
6453}
6454
6455// Validate inspects the fields of the type to determine if they are valid.
6456func (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.
6485func (s *GetMetricDataInput) SetEndTime(v time.Time) *GetMetricDataInput {
6486	s.EndTime = &v
6487	return s
6488}
6489
6490// SetLabelOptions sets the LabelOptions field's value.
6491func (s *GetMetricDataInput) SetLabelOptions(v *LabelOptions) *GetMetricDataInput {
6492	s.LabelOptions = v
6493	return s
6494}
6495
6496// SetMaxDatapoints sets the MaxDatapoints field's value.
6497func (s *GetMetricDataInput) SetMaxDatapoints(v int64) *GetMetricDataInput {
6498	s.MaxDatapoints = &v
6499	return s
6500}
6501
6502// SetMetricDataQueries sets the MetricDataQueries field's value.
6503func (s *GetMetricDataInput) SetMetricDataQueries(v []*MetricDataQuery) *GetMetricDataInput {
6504	s.MetricDataQueries = v
6505	return s
6506}
6507
6508// SetNextToken sets the NextToken field's value.
6509func (s *GetMetricDataInput) SetNextToken(v string) *GetMetricDataInput {
6510	s.NextToken = &v
6511	return s
6512}
6513
6514// SetScanBy sets the ScanBy field's value.
6515func (s *GetMetricDataInput) SetScanBy(v string) *GetMetricDataInput {
6516	s.ScanBy = &v
6517	return s
6518}
6519
6520// SetStartTime sets the StartTime field's value.
6521func (s *GetMetricDataInput) SetStartTime(v time.Time) *GetMetricDataInput {
6522	s.StartTime = &v
6523	return s
6524}
6525
6526type 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".
6552func (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".
6561func (s GetMetricDataOutput) GoString() string {
6562	return s.String()
6563}
6564
6565// SetMessages sets the Messages field's value.
6566func (s *GetMetricDataOutput) SetMessages(v []*MessageData) *GetMetricDataOutput {
6567	s.Messages = v
6568	return s
6569}
6570
6571// SetMetricDataResults sets the MetricDataResults field's value.
6572func (s *GetMetricDataOutput) SetMetricDataResults(v []*MetricDataResult) *GetMetricDataOutput {
6573	s.MetricDataResults = v
6574	return s
6575}
6576
6577// SetNextToken sets the NextToken field's value.
6578func (s *GetMetricDataOutput) SetNextToken(v string) *GetMetricDataOutput {
6579	s.NextToken = &v
6580	return s
6581}
6582
6583type 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".
6693func (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".
6702func (s GetMetricStatisticsInput) GoString() string {
6703	return s.String()
6704}
6705
6706// Validate inspects the fields of the type to determine if they are valid.
6707func (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.
6757func (s *GetMetricStatisticsInput) SetDimensions(v []*Dimension) *GetMetricStatisticsInput {
6758	s.Dimensions = v
6759	return s
6760}
6761
6762// SetEndTime sets the EndTime field's value.
6763func (s *GetMetricStatisticsInput) SetEndTime(v time.Time) *GetMetricStatisticsInput {
6764	s.EndTime = &v
6765	return s
6766}
6767
6768// SetExtendedStatistics sets the ExtendedStatistics field's value.
6769func (s *GetMetricStatisticsInput) SetExtendedStatistics(v []*string) *GetMetricStatisticsInput {
6770	s.ExtendedStatistics = v
6771	return s
6772}
6773
6774// SetMetricName sets the MetricName field's value.
6775func (s *GetMetricStatisticsInput) SetMetricName(v string) *GetMetricStatisticsInput {
6776	s.MetricName = &v
6777	return s
6778}
6779
6780// SetNamespace sets the Namespace field's value.
6781func (s *GetMetricStatisticsInput) SetNamespace(v string) *GetMetricStatisticsInput {
6782	s.Namespace = &v
6783	return s
6784}
6785
6786// SetPeriod sets the Period field's value.
6787func (s *GetMetricStatisticsInput) SetPeriod(v int64) *GetMetricStatisticsInput {
6788	s.Period = &v
6789	return s
6790}
6791
6792// SetStartTime sets the StartTime field's value.
6793func (s *GetMetricStatisticsInput) SetStartTime(v time.Time) *GetMetricStatisticsInput {
6794	s.StartTime = &v
6795	return s
6796}
6797
6798// SetStatistics sets the Statistics field's value.
6799func (s *GetMetricStatisticsInput) SetStatistics(v []*string) *GetMetricStatisticsInput {
6800	s.Statistics = v
6801	return s
6802}
6803
6804// SetUnit sets the Unit field's value.
6805func (s *GetMetricStatisticsInput) SetUnit(v string) *GetMetricStatisticsInput {
6806	s.Unit = &v
6807	return s
6808}
6809
6810type 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".
6825func (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".
6834func (s GetMetricStatisticsOutput) GoString() string {
6835	return s.String()
6836}
6837
6838// SetDatapoints sets the Datapoints field's value.
6839func (s *GetMetricStatisticsOutput) SetDatapoints(v []*Datapoint) *GetMetricStatisticsOutput {
6840	s.Datapoints = v
6841	return s
6842}
6843
6844// SetLabel sets the Label field's value.
6845func (s *GetMetricStatisticsOutput) SetLabel(v string) *GetMetricStatisticsOutput {
6846	s.Label = &v
6847	return s
6848}
6849
6850type 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".
6864func (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".
6873func (s GetMetricStreamInput) GoString() string {
6874	return s.String()
6875}
6876
6877// Validate inspects the fields of the type to determine if they are valid.
6878func (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.
6894func (s *GetMetricStreamInput) SetName(v string) *GetMetricStreamInput {
6895	s.Name = &v
6896	return s
6897}
6898
6899type 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".
6942func (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".
6951func (s GetMetricStreamOutput) GoString() string {
6952	return s.String()
6953}
6954
6955// SetArn sets the Arn field's value.
6956func (s *GetMetricStreamOutput) SetArn(v string) *GetMetricStreamOutput {
6957	s.Arn = &v
6958	return s
6959}
6960
6961// SetCreationDate sets the CreationDate field's value.
6962func (s *GetMetricStreamOutput) SetCreationDate(v time.Time) *GetMetricStreamOutput {
6963	s.CreationDate = &v
6964	return s
6965}
6966
6967// SetExcludeFilters sets the ExcludeFilters field's value.
6968func (s *GetMetricStreamOutput) SetExcludeFilters(v []*MetricStreamFilter) *GetMetricStreamOutput {
6969	s.ExcludeFilters = v
6970	return s
6971}
6972
6973// SetFirehoseArn sets the FirehoseArn field's value.
6974func (s *GetMetricStreamOutput) SetFirehoseArn(v string) *GetMetricStreamOutput {
6975	s.FirehoseArn = &v
6976	return s
6977}
6978
6979// SetIncludeFilters sets the IncludeFilters field's value.
6980func (s *GetMetricStreamOutput) SetIncludeFilters(v []*MetricStreamFilter) *GetMetricStreamOutput {
6981	s.IncludeFilters = v
6982	return s
6983}
6984
6985// SetLastUpdateDate sets the LastUpdateDate field's value.
6986func (s *GetMetricStreamOutput) SetLastUpdateDate(v time.Time) *GetMetricStreamOutput {
6987	s.LastUpdateDate = &v
6988	return s
6989}
6990
6991// SetName sets the Name field's value.
6992func (s *GetMetricStreamOutput) SetName(v string) *GetMetricStreamOutput {
6993	s.Name = &v
6994	return s
6995}
6996
6997// SetOutputFormat sets the OutputFormat field's value.
6998func (s *GetMetricStreamOutput) SetOutputFormat(v string) *GetMetricStreamOutput {
6999	s.OutputFormat = &v
7000	return s
7001}
7002
7003// SetRoleArn sets the RoleArn field's value.
7004func (s *GetMetricStreamOutput) SetRoleArn(v string) *GetMetricStreamOutput {
7005	s.RoleArn = &v
7006	return s
7007}
7008
7009// SetState sets the State field's value.
7010func (s *GetMetricStreamOutput) SetState(v string) *GetMetricStreamOutput {
7011	s.State = &v
7012	return s
7013}
7014
7015type 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".
7070func (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".
7079func (s GetMetricWidgetImageInput) GoString() string {
7080	return s.String()
7081}
7082
7083// Validate inspects the fields of the type to determine if they are valid.
7084func (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.
7097func (s *GetMetricWidgetImageInput) SetMetricWidget(v string) *GetMetricWidgetImageInput {
7098	s.MetricWidget = &v
7099	return s
7100}
7101
7102// SetOutputFormat sets the OutputFormat field's value.
7103func (s *GetMetricWidgetImageInput) SetOutputFormat(v string) *GetMetricWidgetImageInput {
7104	s.OutputFormat = &v
7105	return s
7106}
7107
7108type 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".
7121func (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".
7130func (s GetMetricWidgetImageOutput) GoString() string {
7131	return s.String()
7132}
7133
7134// SetMetricWidgetImage sets the MetricWidgetImage field's value.
7135func (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.
7141type 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".
7174func (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".
7183func (s InsightRule) GoString() string {
7184	return s.String()
7185}
7186
7187// SetDefinition sets the Definition field's value.
7188func (s *InsightRule) SetDefinition(v string) *InsightRule {
7189	s.Definition = &v
7190	return s
7191}
7192
7193// SetName sets the Name field's value.
7194func (s *InsightRule) SetName(v string) *InsightRule {
7195	s.Name = &v
7196	return s
7197}
7198
7199// SetSchema sets the Schema field's value.
7200func (s *InsightRule) SetSchema(v string) *InsightRule {
7201	s.Schema = &v
7202	return s
7203}
7204
7205// SetState sets the State field's value.
7206func (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).
7219type 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".
7245func (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".
7254func (s InsightRuleContributor) GoString() string {
7255	return s.String()
7256}
7257
7258// SetApproximateAggregateValue sets the ApproximateAggregateValue field's value.
7259func (s *InsightRuleContributor) SetApproximateAggregateValue(v float64) *InsightRuleContributor {
7260	s.ApproximateAggregateValue = &v
7261	return s
7262}
7263
7264// SetDatapoints sets the Datapoints field's value.
7265func (s *InsightRuleContributor) SetDatapoints(v []*InsightRuleContributorDatapoint) *InsightRuleContributor {
7266	s.Datapoints = v
7267	return s
7268}
7269
7270// SetKeys sets the Keys field's value.
7271func (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).
7280type 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".
7299func (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".
7308func (s InsightRuleContributorDatapoint) GoString() string {
7309	return s.String()
7310}
7311
7312// SetApproximateValue sets the ApproximateValue field's value.
7313func (s *InsightRuleContributorDatapoint) SetApproximateValue(v float64) *InsightRuleContributorDatapoint {
7314	s.ApproximateValue = &v
7315	return s
7316}
7317
7318// SetTimestamp sets the Timestamp field's value.
7319func (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).
7328type 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".
7390func (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".
7399func (s InsightRuleMetricDatapoint) GoString() string {
7400	return s.String()
7401}
7402
7403// SetAverage sets the Average field's value.
7404func (s *InsightRuleMetricDatapoint) SetAverage(v float64) *InsightRuleMetricDatapoint {
7405	s.Average = &v
7406	return s
7407}
7408
7409// SetMaxContributorValue sets the MaxContributorValue field's value.
7410func (s *InsightRuleMetricDatapoint) SetMaxContributorValue(v float64) *InsightRuleMetricDatapoint {
7411	s.MaxContributorValue = &v
7412	return s
7413}
7414
7415// SetMaximum sets the Maximum field's value.
7416func (s *InsightRuleMetricDatapoint) SetMaximum(v float64) *InsightRuleMetricDatapoint {
7417	s.Maximum = &v
7418	return s
7419}
7420
7421// SetMinimum sets the Minimum field's value.
7422func (s *InsightRuleMetricDatapoint) SetMinimum(v float64) *InsightRuleMetricDatapoint {
7423	s.Minimum = &v
7424	return s
7425}
7426
7427// SetSampleCount sets the SampleCount field's value.
7428func (s *InsightRuleMetricDatapoint) SetSampleCount(v float64) *InsightRuleMetricDatapoint {
7429	s.SampleCount = &v
7430	return s
7431}
7432
7433// SetSum sets the Sum field's value.
7434func (s *InsightRuleMetricDatapoint) SetSum(v float64) *InsightRuleMetricDatapoint {
7435	s.Sum = &v
7436	return s
7437}
7438
7439// SetTimestamp sets the Timestamp field's value.
7440func (s *InsightRuleMetricDatapoint) SetTimestamp(v time.Time) *InsightRuleMetricDatapoint {
7441	s.Timestamp = &v
7442	return s
7443}
7444
7445// SetUniqueContributors sets the UniqueContributors field's value.
7446func (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).
7458type 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".
7474func (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".
7483func (s LabelOptions) GoString() string {
7484	return s.String()
7485}
7486
7487// SetTimezone sets the Timezone field's value.
7488func (s *LabelOptions) SetTimezone(v string) *LabelOptions {
7489	s.Timezone = &v
7490	return s
7491}
7492
7493type 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".
7511func (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".
7520func (s ListDashboardsInput) GoString() string {
7521	return s.String()
7522}
7523
7524// SetDashboardNamePrefix sets the DashboardNamePrefix field's value.
7525func (s *ListDashboardsInput) SetDashboardNamePrefix(v string) *ListDashboardsInput {
7526	s.DashboardNamePrefix = &v
7527	return s
7528}
7529
7530// SetNextToken sets the NextToken field's value.
7531func (s *ListDashboardsInput) SetNextToken(v string) *ListDashboardsInput {
7532	s.NextToken = &v
7533	return s
7534}
7535
7536type 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".
7551func (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".
7560func (s ListDashboardsOutput) GoString() string {
7561	return s.String()
7562}
7563
7564// SetDashboardEntries sets the DashboardEntries field's value.
7565func (s *ListDashboardsOutput) SetDashboardEntries(v []*DashboardEntry) *ListDashboardsOutput {
7566	s.DashboardEntries = v
7567	return s
7568}
7569
7570// SetNextToken sets the NextToken field's value.
7571func (s *ListDashboardsOutput) SetNextToken(v string) *ListDashboardsOutput {
7572	s.NextToken = &v
7573	return s
7574}
7575
7576type 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".
7592func (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".
7601func (s ListMetricStreamsInput) GoString() string {
7602	return s.String()
7603}
7604
7605// Validate inspects the fields of the type to determine if they are valid.
7606func (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.
7619func (s *ListMetricStreamsInput) SetMaxResults(v int64) *ListMetricStreamsInput {
7620	s.MaxResults = &v
7621	return s
7622}
7623
7624// SetNextToken sets the NextToken field's value.
7625func (s *ListMetricStreamsInput) SetNextToken(v string) *ListMetricStreamsInput {
7626	s.NextToken = &v
7627	return s
7628}
7629
7630type 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".
7646func (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".
7655func (s ListMetricStreamsOutput) GoString() string {
7656	return s.String()
7657}
7658
7659// SetEntries sets the Entries field's value.
7660func (s *ListMetricStreamsOutput) SetEntries(v []*MetricStreamEntry) *ListMetricStreamsOutput {
7661	s.Entries = v
7662	return s
7663}
7664
7665// SetNextToken sets the NextToken field's value.
7666func (s *ListMetricStreamsOutput) SetNextToken(v string) *ListMetricStreamsOutput {
7667	s.NextToken = &v
7668	return s
7669}
7670
7671type 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".
7705func (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".
7714func (s ListMetricsInput) GoString() string {
7715	return s.String()
7716}
7717
7718// Validate inspects the fields of the type to determine if they are valid.
7719func (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.
7745func (s *ListMetricsInput) SetDimensions(v []*DimensionFilter) *ListMetricsInput {
7746	s.Dimensions = v
7747	return s
7748}
7749
7750// SetMetricName sets the MetricName field's value.
7751func (s *ListMetricsInput) SetMetricName(v string) *ListMetricsInput {
7752	s.MetricName = &v
7753	return s
7754}
7755
7756// SetNamespace sets the Namespace field's value.
7757func (s *ListMetricsInput) SetNamespace(v string) *ListMetricsInput {
7758	s.Namespace = &v
7759	return s
7760}
7761
7762// SetNextToken sets the NextToken field's value.
7763func (s *ListMetricsInput) SetNextToken(v string) *ListMetricsInput {
7764	s.NextToken = &v
7765	return s
7766}
7767
7768// SetRecentlyActive sets the RecentlyActive field's value.
7769func (s *ListMetricsInput) SetRecentlyActive(v string) *ListMetricsInput {
7770	s.RecentlyActive = &v
7771	return s
7772}
7773
7774type 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".
7789func (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".
7798func (s ListMetricsOutput) GoString() string {
7799	return s.String()
7800}
7801
7802// SetMetrics sets the Metrics field's value.
7803func (s *ListMetricsOutput) SetMetrics(v []*Metric) *ListMetricsOutput {
7804	s.Metrics = v
7805	return s
7806}
7807
7808// SetNextToken sets the NextToken field's value.
7809func (s *ListMetricsOutput) SetNextToken(v string) *ListMetricsOutput {
7810	s.NextToken = &v
7811	return s
7812}
7813
7814type 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".
7836func (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".
7845func (s ListTagsForResourceInput) GoString() string {
7846	return s.String()
7847}
7848
7849// Validate inspects the fields of the type to determine if they are valid.
7850func (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.
7866func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
7867	s.ResourceARN = &v
7868	return s
7869}
7870
7871type 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".
7883func (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".
7892func (s ListTagsForResourceOutput) GoString() string {
7893	return s.String()
7894}
7895
7896// SetTags sets the Tags field's value.
7897func (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.
7908type 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".
7923func (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".
7932func (s MessageData) GoString() string {
7933	return s.String()
7934}
7935
7936// SetCode sets the Code field's value.
7937func (s *MessageData) SetCode(v string) *MessageData {
7938	s.Code = &v
7939	return s
7940}
7941
7942// SetValue sets the Value field's value.
7943func (s *MessageData) SetValue(v string) *MessageData {
7944	s.Value = &v
7945	return s
7946}
7947
7948// Represents a specific metric.
7949type 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".
7967func (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".
7976func (s Metric) GoString() string {
7977	return s.String()
7978}
7979
7980// Validate inspects the fields of the type to determine if they are valid.
7981func (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.
8007func (s *Metric) SetDimensions(v []*Dimension) *Metric {
8008	s.Dimensions = v
8009	return s
8010}
8011
8012// SetMetricName sets the MetricName field's value.
8013func (s *Metric) SetMetricName(v string) *Metric {
8014	s.MetricName = &v
8015	return s
8016}
8017
8018// SetNamespace sets the Namespace field's value.
8019func (s *Metric) SetNamespace(v string) *Metric {
8020	s.Namespace = &v
8021	return s
8022}
8023
8024// The details about a metric alarm.
8025type 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".
8133func (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".
8142func (s MetricAlarm) GoString() string {
8143	return s.String()
8144}
8145
8146// SetActionsEnabled sets the ActionsEnabled field's value.
8147func (s *MetricAlarm) SetActionsEnabled(v bool) *MetricAlarm {
8148	s.ActionsEnabled = &v
8149	return s
8150}
8151
8152// SetAlarmActions sets the AlarmActions field's value.
8153func (s *MetricAlarm) SetAlarmActions(v []*string) *MetricAlarm {
8154	s.AlarmActions = v
8155	return s
8156}
8157
8158// SetAlarmArn sets the AlarmArn field's value.
8159func (s *MetricAlarm) SetAlarmArn(v string) *MetricAlarm {
8160	s.AlarmArn = &v
8161	return s
8162}
8163
8164// SetAlarmConfigurationUpdatedTimestamp sets the AlarmConfigurationUpdatedTimestamp field's value.
8165func (s *MetricAlarm) SetAlarmConfigurationUpdatedTimestamp(v time.Time) *MetricAlarm {
8166	s.AlarmConfigurationUpdatedTimestamp = &v
8167	return s
8168}
8169
8170// SetAlarmDescription sets the AlarmDescription field's value.
8171func (s *MetricAlarm) SetAlarmDescription(v string) *MetricAlarm {
8172	s.AlarmDescription = &v
8173	return s
8174}
8175
8176// SetAlarmName sets the AlarmName field's value.
8177func (s *MetricAlarm) SetAlarmName(v string) *MetricAlarm {
8178	s.AlarmName = &v
8179	return s
8180}
8181
8182// SetComparisonOperator sets the ComparisonOperator field's value.
8183func (s *MetricAlarm) SetComparisonOperator(v string) *MetricAlarm {
8184	s.ComparisonOperator = &v
8185	return s
8186}
8187
8188// SetDatapointsToAlarm sets the DatapointsToAlarm field's value.
8189func (s *MetricAlarm) SetDatapointsToAlarm(v int64) *MetricAlarm {
8190	s.DatapointsToAlarm = &v
8191	return s
8192}
8193
8194// SetDimensions sets the Dimensions field's value.
8195func (s *MetricAlarm) SetDimensions(v []*Dimension) *MetricAlarm {
8196	s.Dimensions = v
8197	return s
8198}
8199
8200// SetEvaluateLowSampleCountPercentile sets the EvaluateLowSampleCountPercentile field's value.
8201func (s *MetricAlarm) SetEvaluateLowSampleCountPercentile(v string) *MetricAlarm {
8202	s.EvaluateLowSampleCountPercentile = &v
8203	return s
8204}
8205
8206// SetEvaluationPeriods sets the EvaluationPeriods field's value.
8207func (s *MetricAlarm) SetEvaluationPeriods(v int64) *MetricAlarm {
8208	s.EvaluationPeriods = &v
8209	return s
8210}
8211
8212// SetExtendedStatistic sets the ExtendedStatistic field's value.
8213func (s *MetricAlarm) SetExtendedStatistic(v string) *MetricAlarm {
8214	s.ExtendedStatistic = &v
8215	return s
8216}
8217
8218// SetInsufficientDataActions sets the InsufficientDataActions field's value.
8219func (s *MetricAlarm) SetInsufficientDataActions(v []*string) *MetricAlarm {
8220	s.InsufficientDataActions = v
8221	return s
8222}
8223
8224// SetMetricName sets the MetricName field's value.
8225func (s *MetricAlarm) SetMetricName(v string) *MetricAlarm {
8226	s.MetricName = &v
8227	return s
8228}
8229
8230// SetMetrics sets the Metrics field's value.
8231func (s *MetricAlarm) SetMetrics(v []*MetricDataQuery) *MetricAlarm {
8232	s.Metrics = v
8233	return s
8234}
8235
8236// SetNamespace sets the Namespace field's value.
8237func (s *MetricAlarm) SetNamespace(v string) *MetricAlarm {
8238	s.Namespace = &v
8239	return s
8240}
8241
8242// SetOKActions sets the OKActions field's value.
8243func (s *MetricAlarm) SetOKActions(v []*string) *MetricAlarm {
8244	s.OKActions = v
8245	return s
8246}
8247
8248// SetPeriod sets the Period field's value.
8249func (s *MetricAlarm) SetPeriod(v int64) *MetricAlarm {
8250	s.Period = &v
8251	return s
8252}
8253
8254// SetStateReason sets the StateReason field's value.
8255func (s *MetricAlarm) SetStateReason(v string) *MetricAlarm {
8256	s.StateReason = &v
8257	return s
8258}
8259
8260// SetStateReasonData sets the StateReasonData field's value.
8261func (s *MetricAlarm) SetStateReasonData(v string) *MetricAlarm {
8262	s.StateReasonData = &v
8263	return s
8264}
8265
8266// SetStateUpdatedTimestamp sets the StateUpdatedTimestamp field's value.
8267func (s *MetricAlarm) SetStateUpdatedTimestamp(v time.Time) *MetricAlarm {
8268	s.StateUpdatedTimestamp = &v
8269	return s
8270}
8271
8272// SetStateValue sets the StateValue field's value.
8273func (s *MetricAlarm) SetStateValue(v string) *MetricAlarm {
8274	s.StateValue = &v
8275	return s
8276}
8277
8278// SetStatistic sets the Statistic field's value.
8279func (s *MetricAlarm) SetStatistic(v string) *MetricAlarm {
8280	s.Statistic = &v
8281	return s
8282}
8283
8284// SetThreshold sets the Threshold field's value.
8285func (s *MetricAlarm) SetThreshold(v float64) *MetricAlarm {
8286	s.Threshold = &v
8287	return s
8288}
8289
8290// SetThresholdMetricId sets the ThresholdMetricId field's value.
8291func (s *MetricAlarm) SetThresholdMetricId(v string) *MetricAlarm {
8292	s.ThresholdMetricId = &v
8293	return s
8294}
8295
8296// SetTreatMissingData sets the TreatMissingData field's value.
8297func (s *MetricAlarm) SetTreatMissingData(v string) *MetricAlarm {
8298	s.TreatMissingData = &v
8299	return s
8300}
8301
8302// SetUnit sets the Unit field's value.
8303func (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.
8333type 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".
8405func (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".
8414func (s MetricDataQuery) GoString() string {
8415	return s.String()
8416}
8417
8418// Validate inspects the fields of the type to determine if they are valid.
8419func (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.
8449func (s *MetricDataQuery) SetAccountId(v string) *MetricDataQuery {
8450	s.AccountId = &v
8451	return s
8452}
8453
8454// SetExpression sets the Expression field's value.
8455func (s *MetricDataQuery) SetExpression(v string) *MetricDataQuery {
8456	s.Expression = &v
8457	return s
8458}
8459
8460// SetId sets the Id field's value.
8461func (s *MetricDataQuery) SetId(v string) *MetricDataQuery {
8462	s.Id = &v
8463	return s
8464}
8465
8466// SetLabel sets the Label field's value.
8467func (s *MetricDataQuery) SetLabel(v string) *MetricDataQuery {
8468	s.Label = &v
8469	return s
8470}
8471
8472// SetMetricStat sets the MetricStat field's value.
8473func (s *MetricDataQuery) SetMetricStat(v *MetricStat) *MetricDataQuery {
8474	s.MetricStat = v
8475	return s
8476}
8477
8478// SetPeriod sets the Period field's value.
8479func (s *MetricDataQuery) SetPeriod(v int64) *MetricDataQuery {
8480	s.Period = &v
8481	return s
8482}
8483
8484// SetReturnData sets the ReturnData field's value.
8485func (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.
8493type 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".
8529func (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".
8538func (s MetricDataResult) GoString() string {
8539	return s.String()
8540}
8541
8542// SetId sets the Id field's value.
8543func (s *MetricDataResult) SetId(v string) *MetricDataResult {
8544	s.Id = &v
8545	return s
8546}
8547
8548// SetLabel sets the Label field's value.
8549func (s *MetricDataResult) SetLabel(v string) *MetricDataResult {
8550	s.Label = &v
8551	return s
8552}
8553
8554// SetMessages sets the Messages field's value.
8555func (s *MetricDataResult) SetMessages(v []*MessageData) *MetricDataResult {
8556	s.Messages = v
8557	return s
8558}
8559
8560// SetStatusCode sets the StatusCode field's value.
8561func (s *MetricDataResult) SetStatusCode(v string) *MetricDataResult {
8562	s.StatusCode = &v
8563	return s
8564}
8565
8566// SetTimestamps sets the Timestamps field's value.
8567func (s *MetricDataResult) SetTimestamps(v []*time.Time) *MetricDataResult {
8568	s.Timestamps = v
8569	return s
8570}
8571
8572// SetValues sets the Values field's value.
8573func (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.
8580type 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".
8650func (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".
8659func (s MetricDatum) GoString() string {
8660	return s.String()
8661}
8662
8663// Validate inspects the fields of the type to determine if they are valid.
8664func (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.
8698func (s *MetricDatum) SetCounts(v []*float64) *MetricDatum {
8699	s.Counts = v
8700	return s
8701}
8702
8703// SetDimensions sets the Dimensions field's value.
8704func (s *MetricDatum) SetDimensions(v []*Dimension) *MetricDatum {
8705	s.Dimensions = v
8706	return s
8707}
8708
8709// SetMetricName sets the MetricName field's value.
8710func (s *MetricDatum) SetMetricName(v string) *MetricDatum {
8711	s.MetricName = &v
8712	return s
8713}
8714
8715// SetStatisticValues sets the StatisticValues field's value.
8716func (s *MetricDatum) SetStatisticValues(v *StatisticSet) *MetricDatum {
8717	s.StatisticValues = v
8718	return s
8719}
8720
8721// SetStorageResolution sets the StorageResolution field's value.
8722func (s *MetricDatum) SetStorageResolution(v int64) *MetricDatum {
8723	s.StorageResolution = &v
8724	return s
8725}
8726
8727// SetTimestamp sets the Timestamp field's value.
8728func (s *MetricDatum) SetTimestamp(v time.Time) *MetricDatum {
8729	s.Timestamp = &v
8730	return s
8731}
8732
8733// SetUnit sets the Unit field's value.
8734func (s *MetricDatum) SetUnit(v string) *MetricDatum {
8735	s.Unit = &v
8736	return s
8737}
8738
8739// SetValue sets the Value field's value.
8740func (s *MetricDatum) SetValue(v float64) *MetricDatum {
8741	s.Value = &v
8742	return s
8743}
8744
8745// SetValues sets the Values field's value.
8746func (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.
8753type 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".
8807func (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".
8816func (s MetricStat) GoString() string {
8817	return s.String()
8818}
8819
8820// Validate inspects the fields of the type to determine if they are valid.
8821func (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.
8848func (s *MetricStat) SetMetric(v *Metric) *MetricStat {
8849	s.Metric = v
8850	return s
8851}
8852
8853// SetPeriod sets the Period field's value.
8854func (s *MetricStat) SetPeriod(v int64) *MetricStat {
8855	s.Period = &v
8856	return s
8857}
8858
8859// SetStat sets the Stat field's value.
8860func (s *MetricStat) SetStat(v string) *MetricStat {
8861	s.Stat = &v
8862	return s
8863}
8864
8865// SetUnit sets the Unit field's value.
8866func (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.
8872type 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".
8903func (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".
8912func (s MetricStreamEntry) GoString() string {
8913	return s.String()
8914}
8915
8916// SetArn sets the Arn field's value.
8917func (s *MetricStreamEntry) SetArn(v string) *MetricStreamEntry {
8918	s.Arn = &v
8919	return s
8920}
8921
8922// SetCreationDate sets the CreationDate field's value.
8923func (s *MetricStreamEntry) SetCreationDate(v time.Time) *MetricStreamEntry {
8924	s.CreationDate = &v
8925	return s
8926}
8927
8928// SetFirehoseArn sets the FirehoseArn field's value.
8929func (s *MetricStreamEntry) SetFirehoseArn(v string) *MetricStreamEntry {
8930	s.FirehoseArn = &v
8931	return s
8932}
8933
8934// SetLastUpdateDate sets the LastUpdateDate field's value.
8935func (s *MetricStreamEntry) SetLastUpdateDate(v time.Time) *MetricStreamEntry {
8936	s.LastUpdateDate = &v
8937	return s
8938}
8939
8940// SetName sets the Name field's value.
8941func (s *MetricStreamEntry) SetName(v string) *MetricStreamEntry {
8942	s.Name = &v
8943	return s
8944}
8945
8946// SetOutputFormat sets the OutputFormat field's value.
8947func (s *MetricStreamEntry) SetOutputFormat(v string) *MetricStreamEntry {
8948	s.OutputFormat = &v
8949	return s
8950}
8951
8952// SetState sets the State field's value.
8953func (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.
8960type 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".
8972func (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".
8981func (s MetricStreamFilter) GoString() string {
8982	return s.String()
8983}
8984
8985// Validate inspects the fields of the type to determine if they are valid.
8986func (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.
8999func (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.
9007type 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".
9028func (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".
9037func (s PartialFailure) GoString() string {
9038	return s.String()
9039}
9040
9041// SetExceptionType sets the ExceptionType field's value.
9042func (s *PartialFailure) SetExceptionType(v string) *PartialFailure {
9043	s.ExceptionType = &v
9044	return s
9045}
9046
9047// SetFailureCode sets the FailureCode field's value.
9048func (s *PartialFailure) SetFailureCode(v string) *PartialFailure {
9049	s.FailureCode = &v
9050	return s
9051}
9052
9053// SetFailureDescription sets the FailureDescription field's value.
9054func (s *PartialFailure) SetFailureDescription(v string) *PartialFailure {
9055	s.FailureDescription = &v
9056	return s
9057}
9058
9059// SetFailureResource sets the FailureResource field's value.
9060func (s *PartialFailure) SetFailureResource(v string) *PartialFailure {
9061	s.FailureResource = &v
9062	return s
9063}
9064
9065type 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".
9099func (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".
9108func (s PutAnomalyDetectorInput) GoString() string {
9109	return s.String()
9110}
9111
9112// Validate inspects the fields of the type to determine if they are valid.
9113func (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.
9153func (s *PutAnomalyDetectorInput) SetConfiguration(v *AnomalyDetectorConfiguration) *PutAnomalyDetectorInput {
9154	s.Configuration = v
9155	return s
9156}
9157
9158// SetDimensions sets the Dimensions field's value.
9159func (s *PutAnomalyDetectorInput) SetDimensions(v []*Dimension) *PutAnomalyDetectorInput {
9160	s.Dimensions = v
9161	return s
9162}
9163
9164// SetMetricName sets the MetricName field's value.
9165func (s *PutAnomalyDetectorInput) SetMetricName(v string) *PutAnomalyDetectorInput {
9166	s.MetricName = &v
9167	return s
9168}
9169
9170// SetNamespace sets the Namespace field's value.
9171func (s *PutAnomalyDetectorInput) SetNamespace(v string) *PutAnomalyDetectorInput {
9172	s.Namespace = &v
9173	return s
9174}
9175
9176// SetStat sets the Stat field's value.
9177func (s *PutAnomalyDetectorInput) SetStat(v string) *PutAnomalyDetectorInput {
9178	s.Stat = &v
9179	return s
9180}
9181
9182type 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".
9191func (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".
9200func (s PutAnomalyDetectorOutput) GoString() string {
9201	return s.String()
9202}
9203
9204type 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".
9307func (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".
9316func (s PutCompositeAlarmInput) GoString() string {
9317	return s.String()
9318}
9319
9320// Validate inspects the fields of the type to determine if they are valid.
9321func (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.
9353func (s *PutCompositeAlarmInput) SetActionsEnabled(v bool) *PutCompositeAlarmInput {
9354	s.ActionsEnabled = &v
9355	return s
9356}
9357
9358// SetAlarmActions sets the AlarmActions field's value.
9359func (s *PutCompositeAlarmInput) SetAlarmActions(v []*string) *PutCompositeAlarmInput {
9360	s.AlarmActions = v
9361	return s
9362}
9363
9364// SetAlarmDescription sets the AlarmDescription field's value.
9365func (s *PutCompositeAlarmInput) SetAlarmDescription(v string) *PutCompositeAlarmInput {
9366	s.AlarmDescription = &v
9367	return s
9368}
9369
9370// SetAlarmName sets the AlarmName field's value.
9371func (s *PutCompositeAlarmInput) SetAlarmName(v string) *PutCompositeAlarmInput {
9372	s.AlarmName = &v
9373	return s
9374}
9375
9376// SetAlarmRule sets the AlarmRule field's value.
9377func (s *PutCompositeAlarmInput) SetAlarmRule(v string) *PutCompositeAlarmInput {
9378	s.AlarmRule = &v
9379	return s
9380}
9381
9382// SetInsufficientDataActions sets the InsufficientDataActions field's value.
9383func (s *PutCompositeAlarmInput) SetInsufficientDataActions(v []*string) *PutCompositeAlarmInput {
9384	s.InsufficientDataActions = v
9385	return s
9386}
9387
9388// SetOKActions sets the OKActions field's value.
9389func (s *PutCompositeAlarmInput) SetOKActions(v []*string) *PutCompositeAlarmInput {
9390	s.OKActions = v
9391	return s
9392}
9393
9394// SetTags sets the Tags field's value.
9395func (s *PutCompositeAlarmInput) SetTags(v []*Tag) *PutCompositeAlarmInput {
9396	s.Tags = v
9397	return s
9398}
9399
9400type 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".
9409func (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".
9418func (s PutCompositeAlarmOutput) GoString() string {
9419	return s.String()
9420}
9421
9422type 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".
9449func (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".
9458func (s PutDashboardInput) GoString() string {
9459	return s.String()
9460}
9461
9462// Validate inspects the fields of the type to determine if they are valid.
9463func (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.
9479func (s *PutDashboardInput) SetDashboardBody(v string) *PutDashboardInput {
9480	s.DashboardBody = &v
9481	return s
9482}
9483
9484// SetDashboardName sets the DashboardName field's value.
9485func (s *PutDashboardInput) SetDashboardName(v string) *PutDashboardInput {
9486	s.DashboardName = &v
9487	return s
9488}
9489
9490type 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".
9510func (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".
9519func (s PutDashboardOutput) GoString() string {
9520	return s.String()
9521}
9522
9523// SetDashboardValidationMessages sets the DashboardValidationMessages field's value.
9524func (s *PutDashboardOutput) SetDashboardValidationMessages(v []*DashboardValidationMessage) *PutDashboardOutput {
9525	s.DashboardValidationMessages = v
9526	return s
9527}
9528
9529type 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".
9567func (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".
9576func (s PutInsightRuleInput) GoString() string {
9577	return s.String()
9578}
9579
9580// Validate inspects the fields of the type to determine if they are valid.
9581func (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.
9616func (s *PutInsightRuleInput) SetRuleDefinition(v string) *PutInsightRuleInput {
9617	s.RuleDefinition = &v
9618	return s
9619}
9620
9621// SetRuleName sets the RuleName field's value.
9622func (s *PutInsightRuleInput) SetRuleName(v string) *PutInsightRuleInput {
9623	s.RuleName = &v
9624	return s
9625}
9626
9627// SetRuleState sets the RuleState field's value.
9628func (s *PutInsightRuleInput) SetRuleState(v string) *PutInsightRuleInput {
9629	s.RuleState = &v
9630	return s
9631}
9632
9633// SetTags sets the Tags field's value.
9634func (s *PutInsightRuleInput) SetTags(v []*Tag) *PutInsightRuleInput {
9635	s.Tags = v
9636	return s
9637}
9638
9639type 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".
9648func (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".
9657func (s PutInsightRuleOutput) GoString() string {
9658	return s.String()
9659}
9660
9661type 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".
9879func (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".
9888func (s PutMetricAlarmInput) GoString() string {
9889	return s.String()
9890}
9891
9892// Validate inspects the fields of the type to determine if they are valid.
9893func (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.
9969func (s *PutMetricAlarmInput) SetActionsEnabled(v bool) *PutMetricAlarmInput {
9970	s.ActionsEnabled = &v
9971	return s
9972}
9973
9974// SetAlarmActions sets the AlarmActions field's value.
9975func (s *PutMetricAlarmInput) SetAlarmActions(v []*string) *PutMetricAlarmInput {
9976	s.AlarmActions = v
9977	return s
9978}
9979
9980// SetAlarmDescription sets the AlarmDescription field's value.
9981func (s *PutMetricAlarmInput) SetAlarmDescription(v string) *PutMetricAlarmInput {
9982	s.AlarmDescription = &v
9983	return s
9984}
9985
9986// SetAlarmName sets the AlarmName field's value.
9987func (s *PutMetricAlarmInput) SetAlarmName(v string) *PutMetricAlarmInput {
9988	s.AlarmName = &v
9989	return s
9990}
9991
9992// SetComparisonOperator sets the ComparisonOperator field's value.
9993func (s *PutMetricAlarmInput) SetComparisonOperator(v string) *PutMetricAlarmInput {
9994	s.ComparisonOperator = &v
9995	return s
9996}
9997
9998// SetDatapointsToAlarm sets the DatapointsToAlarm field's value.
9999func (s *PutMetricAlarmInput) SetDatapointsToAlarm(v int64) *PutMetricAlarmInput {
10000	s.DatapointsToAlarm = &v
10001	return s
10002}
10003
10004// SetDimensions sets the Dimensions field's value.
10005func (s *PutMetricAlarmInput) SetDimensions(v []*Dimension) *PutMetricAlarmInput {
10006	s.Dimensions = v
10007	return s
10008}
10009
10010// SetEvaluateLowSampleCountPercentile sets the EvaluateLowSampleCountPercentile field's value.
10011func (s *PutMetricAlarmInput) SetEvaluateLowSampleCountPercentile(v string) *PutMetricAlarmInput {
10012	s.EvaluateLowSampleCountPercentile = &v
10013	return s
10014}
10015
10016// SetEvaluationPeriods sets the EvaluationPeriods field's value.
10017func (s *PutMetricAlarmInput) SetEvaluationPeriods(v int64) *PutMetricAlarmInput {
10018	s.EvaluationPeriods = &v
10019	return s
10020}
10021
10022// SetExtendedStatistic sets the ExtendedStatistic field's value.
10023func (s *PutMetricAlarmInput) SetExtendedStatistic(v string) *PutMetricAlarmInput {
10024	s.ExtendedStatistic = &v
10025	return s
10026}
10027
10028// SetInsufficientDataActions sets the InsufficientDataActions field's value.
10029func (s *PutMetricAlarmInput) SetInsufficientDataActions(v []*string) *PutMetricAlarmInput {
10030	s.InsufficientDataActions = v
10031	return s
10032}
10033
10034// SetMetricName sets the MetricName field's value.
10035func (s *PutMetricAlarmInput) SetMetricName(v string) *PutMetricAlarmInput {
10036	s.MetricName = &v
10037	return s
10038}
10039
10040// SetMetrics sets the Metrics field's value.
10041func (s *PutMetricAlarmInput) SetMetrics(v []*MetricDataQuery) *PutMetricAlarmInput {
10042	s.Metrics = v
10043	return s
10044}
10045
10046// SetNamespace sets the Namespace field's value.
10047func (s *PutMetricAlarmInput) SetNamespace(v string) *PutMetricAlarmInput {
10048	s.Namespace = &v
10049	return s
10050}
10051
10052// SetOKActions sets the OKActions field's value.
10053func (s *PutMetricAlarmInput) SetOKActions(v []*string) *PutMetricAlarmInput {
10054	s.OKActions = v
10055	return s
10056}
10057
10058// SetPeriod sets the Period field's value.
10059func (s *PutMetricAlarmInput) SetPeriod(v int64) *PutMetricAlarmInput {
10060	s.Period = &v
10061	return s
10062}
10063
10064// SetStatistic sets the Statistic field's value.
10065func (s *PutMetricAlarmInput) SetStatistic(v string) *PutMetricAlarmInput {
10066	s.Statistic = &v
10067	return s
10068}
10069
10070// SetTags sets the Tags field's value.
10071func (s *PutMetricAlarmInput) SetTags(v []*Tag) *PutMetricAlarmInput {
10072	s.Tags = v
10073	return s
10074}
10075
10076// SetThreshold sets the Threshold field's value.
10077func (s *PutMetricAlarmInput) SetThreshold(v float64) *PutMetricAlarmInput {
10078	s.Threshold = &v
10079	return s
10080}
10081
10082// SetThresholdMetricId sets the ThresholdMetricId field's value.
10083func (s *PutMetricAlarmInput) SetThresholdMetricId(v string) *PutMetricAlarmInput {
10084	s.ThresholdMetricId = &v
10085	return s
10086}
10087
10088// SetTreatMissingData sets the TreatMissingData field's value.
10089func (s *PutMetricAlarmInput) SetTreatMissingData(v string) *PutMetricAlarmInput {
10090	s.TreatMissingData = &v
10091	return s
10092}
10093
10094// SetUnit sets the Unit field's value.
10095func (s *PutMetricAlarmInput) SetUnit(v string) *PutMetricAlarmInput {
10096	s.Unit = &v
10097	return s
10098}
10099
10100type 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".
10109func (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".
10118func (s PutMetricAlarmOutput) GoString() string {
10119	return s.String()
10120}
10121
10122type 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".
10145func (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".
10154func (s PutMetricDataInput) GoString() string {
10155	return s.String()
10156}
10157
10158// Validate inspects the fields of the type to determine if they are valid.
10159func (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.
10188func (s *PutMetricDataInput) SetMetricData(v []*MetricDatum) *PutMetricDataInput {
10189	s.MetricData = v
10190	return s
10191}
10192
10193// SetNamespace sets the Namespace field's value.
10194func (s *PutMetricDataInput) SetNamespace(v string) *PutMetricDataInput {
10195	s.Namespace = &v
10196	return s
10197}
10198
10199type 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".
10208func (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".
10217func (s PutMetricDataOutput) GoString() string {
10218	return s.String()
10219}
10220
10221type 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".
10293func (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".
10302func (s PutMetricStreamInput) GoString() string {
10303	return s.String()
10304}
10305
10306// Validate inspects the fields of the type to determine if they are valid.
10307func (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.
10371func (s *PutMetricStreamInput) SetExcludeFilters(v []*MetricStreamFilter) *PutMetricStreamInput {
10372	s.ExcludeFilters = v
10373	return s
10374}
10375
10376// SetFirehoseArn sets the FirehoseArn field's value.
10377func (s *PutMetricStreamInput) SetFirehoseArn(v string) *PutMetricStreamInput {
10378	s.FirehoseArn = &v
10379	return s
10380}
10381
10382// SetIncludeFilters sets the IncludeFilters field's value.
10383func (s *PutMetricStreamInput) SetIncludeFilters(v []*MetricStreamFilter) *PutMetricStreamInput {
10384	s.IncludeFilters = v
10385	return s
10386}
10387
10388// SetName sets the Name field's value.
10389func (s *PutMetricStreamInput) SetName(v string) *PutMetricStreamInput {
10390	s.Name = &v
10391	return s
10392}
10393
10394// SetOutputFormat sets the OutputFormat field's value.
10395func (s *PutMetricStreamInput) SetOutputFormat(v string) *PutMetricStreamInput {
10396	s.OutputFormat = &v
10397	return s
10398}
10399
10400// SetRoleArn sets the RoleArn field's value.
10401func (s *PutMetricStreamInput) SetRoleArn(v string) *PutMetricStreamInput {
10402	s.RoleArn = &v
10403	return s
10404}
10405
10406// SetTags sets the Tags field's value.
10407func (s *PutMetricStreamInput) SetTags(v []*Tag) *PutMetricStreamInput {
10408	s.Tags = v
10409	return s
10410}
10411
10412type 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".
10424func (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".
10433func (s PutMetricStreamOutput) GoString() string {
10434	return s.String()
10435}
10436
10437// SetArn sets the Arn field's value.
10438func (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.
10445type 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".
10466func (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".
10475func (s Range) GoString() string {
10476	return s.String()
10477}
10478
10479// Validate inspects the fields of the type to determine if they are valid.
10480func (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.
10496func (s *Range) SetEndTime(v time.Time) *Range {
10497	s.EndTime = &v
10498	return s
10499}
10500
10501// SetStartTime sets the StartTime field's value.
10502func (s *Range) SetStartTime(v time.Time) *Range {
10503	s.StartTime = &v
10504	return s
10505}
10506
10507type 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".
10538func (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".
10547func (s SetAlarmStateInput) GoString() string {
10548	return s.String()
10549}
10550
10551// Validate inspects the fields of the type to determine if they are valid.
10552func (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.
10574func (s *SetAlarmStateInput) SetAlarmName(v string) *SetAlarmStateInput {
10575	s.AlarmName = &v
10576	return s
10577}
10578
10579// SetStateReason sets the StateReason field's value.
10580func (s *SetAlarmStateInput) SetStateReason(v string) *SetAlarmStateInput {
10581	s.StateReason = &v
10582	return s
10583}
10584
10585// SetStateReasonData sets the StateReasonData field's value.
10586func (s *SetAlarmStateInput) SetStateReasonData(v string) *SetAlarmStateInput {
10587	s.StateReasonData = &v
10588	return s
10589}
10590
10591// SetStateValue sets the StateValue field's value.
10592func (s *SetAlarmStateInput) SetStateValue(v string) *SetAlarmStateInput {
10593	s.StateValue = &v
10594	return s
10595}
10596
10597type 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".
10606func (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".
10615func (s SetAlarmStateOutput) GoString() string {
10616	return s.String()
10617}
10618
10619type 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".
10637func (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".
10646func (s StartMetricStreamsInput) GoString() string {
10647	return s.String()
10648}
10649
10650// Validate inspects the fields of the type to determine if they are valid.
10651func (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.
10664func (s *StartMetricStreamsInput) SetNames(v []*string) *StartMetricStreamsInput {
10665	s.Names = v
10666	return s
10667}
10668
10669type 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".
10678func (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".
10687func (s StartMetricStreamsOutput) GoString() string {
10688	return s.String()
10689}
10690
10691// Represents a set of statistics that describes a specific metric.
10692type 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".
10721func (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".
10730func (s StatisticSet) GoString() string {
10731	return s.String()
10732}
10733
10734// Validate inspects the fields of the type to determine if they are valid.
10735func (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.
10757func (s *StatisticSet) SetMaximum(v float64) *StatisticSet {
10758	s.Maximum = &v
10759	return s
10760}
10761
10762// SetMinimum sets the Minimum field's value.
10763func (s *StatisticSet) SetMinimum(v float64) *StatisticSet {
10764	s.Minimum = &v
10765	return s
10766}
10767
10768// SetSampleCount sets the SampleCount field's value.
10769func (s *StatisticSet) SetSampleCount(v float64) *StatisticSet {
10770	s.SampleCount = &v
10771	return s
10772}
10773
10774// SetSum sets the Sum field's value.
10775func (s *StatisticSet) SetSum(v float64) *StatisticSet {
10776	s.Sum = &v
10777	return s
10778}
10779
10780type 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".
10798func (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".
10807func (s StopMetricStreamsInput) GoString() string {
10808	return s.String()
10809}
10810
10811// Validate inspects the fields of the type to determine if they are valid.
10812func (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.
10825func (s *StopMetricStreamsInput) SetNames(v []*string) *StopMetricStreamsInput {
10826	s.Names = v
10827	return s
10828}
10829
10830type 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".
10839func (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".
10848func (s StopMetricStreamsOutput) GoString() string {
10849	return s.String()
10850}
10851
10852// A key-value pair associated with a CloudWatch resource.
10853type 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".
10873func (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".
10882func (s Tag) GoString() string {
10883	return s.String()
10884}
10885
10886// Validate inspects the fields of the type to determine if they are valid.
10887func (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.
10906func (s *Tag) SetKey(v string) *Tag {
10907	s.Key = &v
10908	return s
10909}
10910
10911// SetValue sets the Value field's value.
10912func (s *Tag) SetValue(v string) *Tag {
10913	s.Value = &v
10914	return s
10915}
10916
10917type 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".
10944func (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".
10953func (s TagResourceInput) GoString() string {
10954	return s.String()
10955}
10956
10957// Validate inspects the fields of the type to determine if they are valid.
10958func (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.
10987func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
10988	s.ResourceARN = &v
10989	return s
10990}
10991
10992// SetTags sets the Tags field's value.
10993func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
10994	s.Tags = v
10995	return s
10996}
10997
10998type 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".
11007func (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".
11016func (s TagResourceOutput) GoString() string {
11017	return s.String()
11018}
11019
11020type 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".
11047func (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".
11056func (s UntagResourceInput) GoString() string {
11057	return s.String()
11058}
11059
11060// Validate inspects the fields of the type to determine if they are valid.
11061func (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.
11080func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
11081	s.ResourceARN = &v
11082	return s
11083}
11084
11085// SetTagKeys sets the TagKeys field's value.
11086func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
11087	s.TagKeys = v
11088	return s
11089}
11090
11091type 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".
11100func (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".
11109func (s UntagResourceOutput) GoString() string {
11110	return s.String()
11111}
11112
11113const (
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
11122func AlarmType_Values() []string {
11123	return []string{
11124		AlarmTypeCompositeAlarm,
11125		AlarmTypeMetricAlarm,
11126	}
11127}
11128
11129const (
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
11141func AnomalyDetectorStateValue_Values() []string {
11142	return []string{
11143		AnomalyDetectorStateValuePendingTraining,
11144		AnomalyDetectorStateValueTrainedInsufficientData,
11145		AnomalyDetectorStateValueTrained,
11146	}
11147}
11148
11149const (
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
11173func ComparisonOperator_Values() []string {
11174	return []string{
11175		ComparisonOperatorGreaterThanOrEqualToThreshold,
11176		ComparisonOperatorGreaterThanThreshold,
11177		ComparisonOperatorLessThanThreshold,
11178		ComparisonOperatorLessThanOrEqualToThreshold,
11179		ComparisonOperatorLessThanLowerOrGreaterThanUpperThreshold,
11180		ComparisonOperatorLessThanLowerThreshold,
11181		ComparisonOperatorGreaterThanUpperThreshold,
11182	}
11183}
11184
11185const (
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
11197func HistoryItemType_Values() []string {
11198	return []string{
11199		HistoryItemTypeConfigurationUpdate,
11200		HistoryItemTypeStateUpdate,
11201		HistoryItemTypeAction,
11202	}
11203}
11204
11205const (
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
11214func MetricStreamOutputFormat_Values() []string {
11215	return []string{
11216		MetricStreamOutputFormatJson,
11217		MetricStreamOutputFormatOpentelemetry07,
11218	}
11219}
11220
11221const (
11222	// RecentlyActivePt3h is a RecentlyActive enum value
11223	RecentlyActivePt3h = "PT3H"
11224)
11225
11226// RecentlyActive_Values returns all elements of the RecentlyActive enum
11227func RecentlyActive_Values() []string {
11228	return []string{
11229		RecentlyActivePt3h,
11230	}
11231}
11232
11233const (
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
11242func ScanBy_Values() []string {
11243	return []string{
11244		ScanByTimestampDescending,
11245		ScanByTimestampAscending,
11246	}
11247}
11248
11249const (
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
11333func 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
11365const (
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
11377func StateValue_Values() []string {
11378	return []string{
11379		StateValueOk,
11380		StateValueAlarm,
11381		StateValueInsufficientData,
11382	}
11383}
11384
11385const (
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
11403func Statistic_Values() []string {
11404	return []string{
11405		StatisticSampleCount,
11406		StatisticAverage,
11407		StatisticSum,
11408		StatisticMinimum,
11409		StatisticMaximum,
11410	}
11411}
11412
11413const (
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
11425func StatusCode_Values() []string {
11426	return []string{
11427		StatusCodeComplete,
11428		StatusCodeInternalError,
11429		StatusCodePartialData,
11430	}
11431}
11432