1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package devopsguru
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/restjson"
14)
15
16const opAddNotificationChannel = "AddNotificationChannel"
17
18// AddNotificationChannelRequest generates a "aws/request.Request" representing the
19// client's request for the AddNotificationChannel 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 AddNotificationChannel for more information on using the AddNotificationChannel
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 AddNotificationChannelRequest method.
34//    req, resp := client.AddNotificationChannelRequest(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/devops-guru-2020-12-01/AddNotificationChannel
42func (c *DevOpsGuru) AddNotificationChannelRequest(input *AddNotificationChannelInput) (req *request.Request, output *AddNotificationChannelOutput) {
43	op := &request.Operation{
44		Name:       opAddNotificationChannel,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/channels",
47	}
48
49	if input == nil {
50		input = &AddNotificationChannelInput{}
51	}
52
53	output = &AddNotificationChannelOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddNotificationChannel API operation for Amazon DevOps Guru.
59//
60// Adds a notification channel to DevOps Guru. A notification channel is used
61// to notify you about important DevOps Guru events, such as when an insight
62// is generated.
63//
64// If you use an Amazon SNS topic in another account, you must attach a policy
65// to it that grants DevOps Guru permission to it notifications. DevOps Guru
66// adds the required policy on your behalf to send notifications using Amazon
67// SNS in your account. For more information, see Permissions for cross account
68// Amazon SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html).
69//
70// If you use an Amazon SNS topic that is encrypted by an AWS Key Management
71// Service customer-managed key (CMK), then you must add permissions to the
72// CMK. For more information, see Permissions for AWS KMS–encrypted Amazon
73// SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html).
74//
75// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
76// with awserr.Error's Code and Message methods to get detailed information about
77// the error.
78//
79// See the AWS API reference guide for Amazon DevOps Guru's
80// API operation AddNotificationChannel for usage and error information.
81//
82// Returned Error Types:
83//   * AccessDeniedException
84//   You don't have permissions to perform the requested operation. The user or
85//   role that is making the request must have at least one IAM permissions policy
86//   attached that grants the required permissions. For more information, see
87//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
88//   in the IAM User Guide.
89//
90//   * ConflictException
91//   An exception that is thrown when a conflict occurs.
92//
93//   * InternalServerException
94//   An internal failure in an Amazon service occurred.
95//
96//   * ResourceNotFoundException
97//   A requested resource could not be found
98//
99//   * ServiceQuotaExceededException
100//   The request contains a value that exceeds a maximum quota.
101//
102//   * ThrottlingException
103//   The request was denied due to a request throttling.
104//
105//   * ValidationException
106//   Contains information about data passed in to a field during a request that
107//   is not valid.
108//
109// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/AddNotificationChannel
110func (c *DevOpsGuru) AddNotificationChannel(input *AddNotificationChannelInput) (*AddNotificationChannelOutput, error) {
111	req, out := c.AddNotificationChannelRequest(input)
112	return out, req.Send()
113}
114
115// AddNotificationChannelWithContext is the same as AddNotificationChannel with the addition of
116// the ability to pass a context and additional request options.
117//
118// See AddNotificationChannel for details on how to use this API operation.
119//
120// The context must be non-nil and will be used for request cancellation. If
121// the context is nil a panic will occur. In the future the SDK may create
122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
123// for more information on using Contexts.
124func (c *DevOpsGuru) AddNotificationChannelWithContext(ctx aws.Context, input *AddNotificationChannelInput, opts ...request.Option) (*AddNotificationChannelOutput, error) {
125	req, out := c.AddNotificationChannelRequest(input)
126	req.SetContext(ctx)
127	req.ApplyOptions(opts...)
128	return out, req.Send()
129}
130
131const opDescribeAccountHealth = "DescribeAccountHealth"
132
133// DescribeAccountHealthRequest generates a "aws/request.Request" representing the
134// client's request for the DescribeAccountHealth operation. The "output" return
135// value will be populated with the request's response once the request completes
136// successfully.
137//
138// Use "Send" method on the returned Request to send the API call to the service.
139// the "output" return value is not valid until after Send returns without error.
140//
141// See DescribeAccountHealth for more information on using the DescribeAccountHealth
142// API call, and error handling.
143//
144// This method is useful when you want to inject custom logic or configuration
145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
146//
147//
148//    // Example sending a request using the DescribeAccountHealthRequest method.
149//    req, resp := client.DescribeAccountHealthRequest(params)
150//
151//    err := req.Send()
152//    if err == nil { // resp is now filled
153//        fmt.Println(resp)
154//    }
155//
156// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeAccountHealth
157func (c *DevOpsGuru) DescribeAccountHealthRequest(input *DescribeAccountHealthInput) (req *request.Request, output *DescribeAccountHealthOutput) {
158	op := &request.Operation{
159		Name:       opDescribeAccountHealth,
160		HTTPMethod: "GET",
161		HTTPPath:   "/accounts/health",
162	}
163
164	if input == nil {
165		input = &DescribeAccountHealthInput{}
166	}
167
168	output = &DescribeAccountHealthOutput{}
169	req = c.newRequest(op, input, output)
170	return
171}
172
173// DescribeAccountHealth API operation for Amazon DevOps Guru.
174//
175// Returns the number of open reactive insights, the number of open proactive
176// insights, and the number of metrics analyzed in your AWS account. Use these
177// numbers to gauge the health of operations in your AWS account.
178//
179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
180// with awserr.Error's Code and Message methods to get detailed information about
181// the error.
182//
183// See the AWS API reference guide for Amazon DevOps Guru's
184// API operation DescribeAccountHealth for usage and error information.
185//
186// Returned Error Types:
187//   * AccessDeniedException
188//   You don't have permissions to perform the requested operation. The user or
189//   role that is making the request must have at least one IAM permissions policy
190//   attached that grants the required permissions. For more information, see
191//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
192//   in the IAM User Guide.
193//
194//   * InternalServerException
195//   An internal failure in an Amazon service occurred.
196//
197//   * ThrottlingException
198//   The request was denied due to a request throttling.
199//
200//   * ValidationException
201//   Contains information about data passed in to a field during a request that
202//   is not valid.
203//
204// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeAccountHealth
205func (c *DevOpsGuru) DescribeAccountHealth(input *DescribeAccountHealthInput) (*DescribeAccountHealthOutput, error) {
206	req, out := c.DescribeAccountHealthRequest(input)
207	return out, req.Send()
208}
209
210// DescribeAccountHealthWithContext is the same as DescribeAccountHealth with the addition of
211// the ability to pass a context and additional request options.
212//
213// See DescribeAccountHealth for details on how to use this API operation.
214//
215// The context must be non-nil and will be used for request cancellation. If
216// the context is nil a panic will occur. In the future the SDK may create
217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
218// for more information on using Contexts.
219func (c *DevOpsGuru) DescribeAccountHealthWithContext(ctx aws.Context, input *DescribeAccountHealthInput, opts ...request.Option) (*DescribeAccountHealthOutput, error) {
220	req, out := c.DescribeAccountHealthRequest(input)
221	req.SetContext(ctx)
222	req.ApplyOptions(opts...)
223	return out, req.Send()
224}
225
226const opDescribeAccountOverview = "DescribeAccountOverview"
227
228// DescribeAccountOverviewRequest generates a "aws/request.Request" representing the
229// client's request for the DescribeAccountOverview operation. The "output" return
230// value will be populated with the request's response once the request completes
231// successfully.
232//
233// Use "Send" method on the returned Request to send the API call to the service.
234// the "output" return value is not valid until after Send returns without error.
235//
236// See DescribeAccountOverview for more information on using the DescribeAccountOverview
237// API call, and error handling.
238//
239// This method is useful when you want to inject custom logic or configuration
240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
241//
242//
243//    // Example sending a request using the DescribeAccountOverviewRequest method.
244//    req, resp := client.DescribeAccountOverviewRequest(params)
245//
246//    err := req.Send()
247//    if err == nil { // resp is now filled
248//        fmt.Println(resp)
249//    }
250//
251// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeAccountOverview
252func (c *DevOpsGuru) DescribeAccountOverviewRequest(input *DescribeAccountOverviewInput) (req *request.Request, output *DescribeAccountOverviewOutput) {
253	op := &request.Operation{
254		Name:       opDescribeAccountOverview,
255		HTTPMethod: "POST",
256		HTTPPath:   "/accounts/overview",
257	}
258
259	if input == nil {
260		input = &DescribeAccountOverviewInput{}
261	}
262
263	output = &DescribeAccountOverviewOutput{}
264	req = c.newRequest(op, input, output)
265	return
266}
267
268// DescribeAccountOverview API operation for Amazon DevOps Guru.
269//
270// For the time range passed in, returns the number of open reactive insight
271// that were created, the number of open proactive insights that were created,
272// and the Mean Time to Recover (MTTR) for all closed reactive insights.
273//
274// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
275// with awserr.Error's Code and Message methods to get detailed information about
276// the error.
277//
278// See the AWS API reference guide for Amazon DevOps Guru's
279// API operation DescribeAccountOverview for usage and error information.
280//
281// Returned Error Types:
282//   * AccessDeniedException
283//   You don't have permissions to perform the requested operation. The user or
284//   role that is making the request must have at least one IAM permissions policy
285//   attached that grants the required permissions. For more information, see
286//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
287//   in the IAM User Guide.
288//
289//   * InternalServerException
290//   An internal failure in an Amazon service occurred.
291//
292//   * ThrottlingException
293//   The request was denied due to a request throttling.
294//
295//   * ValidationException
296//   Contains information about data passed in to a field during a request that
297//   is not valid.
298//
299// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeAccountOverview
300func (c *DevOpsGuru) DescribeAccountOverview(input *DescribeAccountOverviewInput) (*DescribeAccountOverviewOutput, error) {
301	req, out := c.DescribeAccountOverviewRequest(input)
302	return out, req.Send()
303}
304
305// DescribeAccountOverviewWithContext is the same as DescribeAccountOverview with the addition of
306// the ability to pass a context and additional request options.
307//
308// See DescribeAccountOverview for details on how to use this API operation.
309//
310// The context must be non-nil and will be used for request cancellation. If
311// the context is nil a panic will occur. In the future the SDK may create
312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
313// for more information on using Contexts.
314func (c *DevOpsGuru) DescribeAccountOverviewWithContext(ctx aws.Context, input *DescribeAccountOverviewInput, opts ...request.Option) (*DescribeAccountOverviewOutput, error) {
315	req, out := c.DescribeAccountOverviewRequest(input)
316	req.SetContext(ctx)
317	req.ApplyOptions(opts...)
318	return out, req.Send()
319}
320
321const opDescribeAnomaly = "DescribeAnomaly"
322
323// DescribeAnomalyRequest generates a "aws/request.Request" representing the
324// client's request for the DescribeAnomaly operation. The "output" return
325// value will be populated with the request's response once the request completes
326// successfully.
327//
328// Use "Send" method on the returned Request to send the API call to the service.
329// the "output" return value is not valid until after Send returns without error.
330//
331// See DescribeAnomaly for more information on using the DescribeAnomaly
332// API call, and error handling.
333//
334// This method is useful when you want to inject custom logic or configuration
335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
336//
337//
338//    // Example sending a request using the DescribeAnomalyRequest method.
339//    req, resp := client.DescribeAnomalyRequest(params)
340//
341//    err := req.Send()
342//    if err == nil { // resp is now filled
343//        fmt.Println(resp)
344//    }
345//
346// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeAnomaly
347func (c *DevOpsGuru) DescribeAnomalyRequest(input *DescribeAnomalyInput) (req *request.Request, output *DescribeAnomalyOutput) {
348	op := &request.Operation{
349		Name:       opDescribeAnomaly,
350		HTTPMethod: "GET",
351		HTTPPath:   "/anomalies/{Id}",
352	}
353
354	if input == nil {
355		input = &DescribeAnomalyInput{}
356	}
357
358	output = &DescribeAnomalyOutput{}
359	req = c.newRequest(op, input, output)
360	return
361}
362
363// DescribeAnomaly API operation for Amazon DevOps Guru.
364//
365// Returns details about an anomaly that you specify using its ID.
366//
367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
368// with awserr.Error's Code and Message methods to get detailed information about
369// the error.
370//
371// See the AWS API reference guide for Amazon DevOps Guru's
372// API operation DescribeAnomaly for usage and error information.
373//
374// Returned Error Types:
375//   * AccessDeniedException
376//   You don't have permissions to perform the requested operation. The user or
377//   role that is making the request must have at least one IAM permissions policy
378//   attached that grants the required permissions. For more information, see
379//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
380//   in the IAM User Guide.
381//
382//   * InternalServerException
383//   An internal failure in an Amazon service occurred.
384//
385//   * ResourceNotFoundException
386//   A requested resource could not be found
387//
388//   * ThrottlingException
389//   The request was denied due to a request throttling.
390//
391//   * ValidationException
392//   Contains information about data passed in to a field during a request that
393//   is not valid.
394//
395// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeAnomaly
396func (c *DevOpsGuru) DescribeAnomaly(input *DescribeAnomalyInput) (*DescribeAnomalyOutput, error) {
397	req, out := c.DescribeAnomalyRequest(input)
398	return out, req.Send()
399}
400
401// DescribeAnomalyWithContext is the same as DescribeAnomaly with the addition of
402// the ability to pass a context and additional request options.
403//
404// See DescribeAnomaly for details on how to use this API operation.
405//
406// The context must be non-nil and will be used for request cancellation. If
407// the context is nil a panic will occur. In the future the SDK may create
408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
409// for more information on using Contexts.
410func (c *DevOpsGuru) DescribeAnomalyWithContext(ctx aws.Context, input *DescribeAnomalyInput, opts ...request.Option) (*DescribeAnomalyOutput, error) {
411	req, out := c.DescribeAnomalyRequest(input)
412	req.SetContext(ctx)
413	req.ApplyOptions(opts...)
414	return out, req.Send()
415}
416
417const opDescribeFeedback = "DescribeFeedback"
418
419// DescribeFeedbackRequest generates a "aws/request.Request" representing the
420// client's request for the DescribeFeedback operation. The "output" return
421// value will be populated with the request's response once the request completes
422// successfully.
423//
424// Use "Send" method on the returned Request to send the API call to the service.
425// the "output" return value is not valid until after Send returns without error.
426//
427// See DescribeFeedback for more information on using the DescribeFeedback
428// API call, and error handling.
429//
430// This method is useful when you want to inject custom logic or configuration
431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
432//
433//
434//    // Example sending a request using the DescribeFeedbackRequest method.
435//    req, resp := client.DescribeFeedbackRequest(params)
436//
437//    err := req.Send()
438//    if err == nil { // resp is now filled
439//        fmt.Println(resp)
440//    }
441//
442// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeFeedback
443func (c *DevOpsGuru) DescribeFeedbackRequest(input *DescribeFeedbackInput) (req *request.Request, output *DescribeFeedbackOutput) {
444	op := &request.Operation{
445		Name:       opDescribeFeedback,
446		HTTPMethod: "POST",
447		HTTPPath:   "/feedback",
448	}
449
450	if input == nil {
451		input = &DescribeFeedbackInput{}
452	}
453
454	output = &DescribeFeedbackOutput{}
455	req = c.newRequest(op, input, output)
456	return
457}
458
459// DescribeFeedback API operation for Amazon DevOps Guru.
460//
461// Returns the most recent feedback submitted in the current AWS account and
462// Region.
463//
464// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
465// with awserr.Error's Code and Message methods to get detailed information about
466// the error.
467//
468// See the AWS API reference guide for Amazon DevOps Guru's
469// API operation DescribeFeedback for usage and error information.
470//
471// Returned Error Types:
472//   * AccessDeniedException
473//   You don't have permissions to perform the requested operation. The user or
474//   role that is making the request must have at least one IAM permissions policy
475//   attached that grants the required permissions. For more information, see
476//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
477//   in the IAM User Guide.
478//
479//   * InternalServerException
480//   An internal failure in an Amazon service occurred.
481//
482//   * ResourceNotFoundException
483//   A requested resource could not be found
484//
485//   * ThrottlingException
486//   The request was denied due to a request throttling.
487//
488//   * ValidationException
489//   Contains information about data passed in to a field during a request that
490//   is not valid.
491//
492// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeFeedback
493func (c *DevOpsGuru) DescribeFeedback(input *DescribeFeedbackInput) (*DescribeFeedbackOutput, error) {
494	req, out := c.DescribeFeedbackRequest(input)
495	return out, req.Send()
496}
497
498// DescribeFeedbackWithContext is the same as DescribeFeedback with the addition of
499// the ability to pass a context and additional request options.
500//
501// See DescribeFeedback for details on how to use this API operation.
502//
503// The context must be non-nil and will be used for request cancellation. If
504// the context is nil a panic will occur. In the future the SDK may create
505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
506// for more information on using Contexts.
507func (c *DevOpsGuru) DescribeFeedbackWithContext(ctx aws.Context, input *DescribeFeedbackInput, opts ...request.Option) (*DescribeFeedbackOutput, error) {
508	req, out := c.DescribeFeedbackRequest(input)
509	req.SetContext(ctx)
510	req.ApplyOptions(opts...)
511	return out, req.Send()
512}
513
514const opDescribeInsight = "DescribeInsight"
515
516// DescribeInsightRequest generates a "aws/request.Request" representing the
517// client's request for the DescribeInsight operation. The "output" return
518// value will be populated with the request's response once the request completes
519// successfully.
520//
521// Use "Send" method on the returned Request to send the API call to the service.
522// the "output" return value is not valid until after Send returns without error.
523//
524// See DescribeInsight for more information on using the DescribeInsight
525// API call, and error handling.
526//
527// This method is useful when you want to inject custom logic or configuration
528// into the SDK's request lifecycle. Such as custom headers, or retry logic.
529//
530//
531//    // Example sending a request using the DescribeInsightRequest method.
532//    req, resp := client.DescribeInsightRequest(params)
533//
534//    err := req.Send()
535//    if err == nil { // resp is now filled
536//        fmt.Println(resp)
537//    }
538//
539// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeInsight
540func (c *DevOpsGuru) DescribeInsightRequest(input *DescribeInsightInput) (req *request.Request, output *DescribeInsightOutput) {
541	op := &request.Operation{
542		Name:       opDescribeInsight,
543		HTTPMethod: "GET",
544		HTTPPath:   "/insights/{Id}",
545	}
546
547	if input == nil {
548		input = &DescribeInsightInput{}
549	}
550
551	output = &DescribeInsightOutput{}
552	req = c.newRequest(op, input, output)
553	return
554}
555
556// DescribeInsight API operation for Amazon DevOps Guru.
557//
558// Returns details about an insight that you specify using its ID.
559//
560// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
561// with awserr.Error's Code and Message methods to get detailed information about
562// the error.
563//
564// See the AWS API reference guide for Amazon DevOps Guru's
565// API operation DescribeInsight for usage and error information.
566//
567// Returned Error Types:
568//   * AccessDeniedException
569//   You don't have permissions to perform the requested operation. The user or
570//   role that is making the request must have at least one IAM permissions policy
571//   attached that grants the required permissions. For more information, see
572//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
573//   in the IAM User Guide.
574//
575//   * InternalServerException
576//   An internal failure in an Amazon service occurred.
577//
578//   * ResourceNotFoundException
579//   A requested resource could not be found
580//
581//   * ThrottlingException
582//   The request was denied due to a request throttling.
583//
584//   * ValidationException
585//   Contains information about data passed in to a field during a request that
586//   is not valid.
587//
588// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeInsight
589func (c *DevOpsGuru) DescribeInsight(input *DescribeInsightInput) (*DescribeInsightOutput, error) {
590	req, out := c.DescribeInsightRequest(input)
591	return out, req.Send()
592}
593
594// DescribeInsightWithContext is the same as DescribeInsight with the addition of
595// the ability to pass a context and additional request options.
596//
597// See DescribeInsight for details on how to use this API operation.
598//
599// The context must be non-nil and will be used for request cancellation. If
600// the context is nil a panic will occur. In the future the SDK may create
601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
602// for more information on using Contexts.
603func (c *DevOpsGuru) DescribeInsightWithContext(ctx aws.Context, input *DescribeInsightInput, opts ...request.Option) (*DescribeInsightOutput, error) {
604	req, out := c.DescribeInsightRequest(input)
605	req.SetContext(ctx)
606	req.ApplyOptions(opts...)
607	return out, req.Send()
608}
609
610const opDescribeResourceCollectionHealth = "DescribeResourceCollectionHealth"
611
612// DescribeResourceCollectionHealthRequest generates a "aws/request.Request" representing the
613// client's request for the DescribeResourceCollectionHealth operation. The "output" return
614// value will be populated with the request's response once the request completes
615// successfully.
616//
617// Use "Send" method on the returned Request to send the API call to the service.
618// the "output" return value is not valid until after Send returns without error.
619//
620// See DescribeResourceCollectionHealth for more information on using the DescribeResourceCollectionHealth
621// API call, and error handling.
622//
623// This method is useful when you want to inject custom logic or configuration
624// into the SDK's request lifecycle. Such as custom headers, or retry logic.
625//
626//
627//    // Example sending a request using the DescribeResourceCollectionHealthRequest method.
628//    req, resp := client.DescribeResourceCollectionHealthRequest(params)
629//
630//    err := req.Send()
631//    if err == nil { // resp is now filled
632//        fmt.Println(resp)
633//    }
634//
635// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeResourceCollectionHealth
636func (c *DevOpsGuru) DescribeResourceCollectionHealthRequest(input *DescribeResourceCollectionHealthInput) (req *request.Request, output *DescribeResourceCollectionHealthOutput) {
637	op := &request.Operation{
638		Name:       opDescribeResourceCollectionHealth,
639		HTTPMethod: "GET",
640		HTTPPath:   "/accounts/health/resource-collection/{ResourceCollectionType}",
641		Paginator: &request.Paginator{
642			InputTokens:     []string{"NextToken"},
643			OutputTokens:    []string{"NextToken"},
644			LimitToken:      "",
645			TruncationToken: "",
646		},
647	}
648
649	if input == nil {
650		input = &DescribeResourceCollectionHealthInput{}
651	}
652
653	output = &DescribeResourceCollectionHealthOutput{}
654	req = c.newRequest(op, input, output)
655	return
656}
657
658// DescribeResourceCollectionHealth API operation for Amazon DevOps Guru.
659//
660// Returns the number of open proactive insights, open reactive insights, and
661// the Mean Time to Recover (MTTR) for all closed insights in resource collections
662// in your account. You specify the type of AWS resources collection. The one
663// type of AWS resource collection supported is AWS CloudFormation stacks. DevOps
664// Guru can be configured to analyze only the AWS resources that are defined
665// in the stacks. You can specify up to 500 AWS CloudFormation stacks.
666//
667// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
668// with awserr.Error's Code and Message methods to get detailed information about
669// the error.
670//
671// See the AWS API reference guide for Amazon DevOps Guru's
672// API operation DescribeResourceCollectionHealth for usage and error information.
673//
674// Returned Error Types:
675//   * AccessDeniedException
676//   You don't have permissions to perform the requested operation. The user or
677//   role that is making the request must have at least one IAM permissions policy
678//   attached that grants the required permissions. For more information, see
679//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
680//   in the IAM User Guide.
681//
682//   * InternalServerException
683//   An internal failure in an Amazon service occurred.
684//
685//   * ThrottlingException
686//   The request was denied due to a request throttling.
687//
688//   * ValidationException
689//   Contains information about data passed in to a field during a request that
690//   is not valid.
691//
692// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeResourceCollectionHealth
693func (c *DevOpsGuru) DescribeResourceCollectionHealth(input *DescribeResourceCollectionHealthInput) (*DescribeResourceCollectionHealthOutput, error) {
694	req, out := c.DescribeResourceCollectionHealthRequest(input)
695	return out, req.Send()
696}
697
698// DescribeResourceCollectionHealthWithContext is the same as DescribeResourceCollectionHealth with the addition of
699// the ability to pass a context and additional request options.
700//
701// See DescribeResourceCollectionHealth for details on how to use this API operation.
702//
703// The context must be non-nil and will be used for request cancellation. If
704// the context is nil a panic will occur. In the future the SDK may create
705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
706// for more information on using Contexts.
707func (c *DevOpsGuru) DescribeResourceCollectionHealthWithContext(ctx aws.Context, input *DescribeResourceCollectionHealthInput, opts ...request.Option) (*DescribeResourceCollectionHealthOutput, error) {
708	req, out := c.DescribeResourceCollectionHealthRequest(input)
709	req.SetContext(ctx)
710	req.ApplyOptions(opts...)
711	return out, req.Send()
712}
713
714// DescribeResourceCollectionHealthPages iterates over the pages of a DescribeResourceCollectionHealth operation,
715// calling the "fn" function with the response data for each page. To stop
716// iterating, return false from the fn function.
717//
718// See DescribeResourceCollectionHealth method for more information on how to use this operation.
719//
720// Note: This operation can generate multiple requests to a service.
721//
722//    // Example iterating over at most 3 pages of a DescribeResourceCollectionHealth operation.
723//    pageNum := 0
724//    err := client.DescribeResourceCollectionHealthPages(params,
725//        func(page *devopsguru.DescribeResourceCollectionHealthOutput, lastPage bool) bool {
726//            pageNum++
727//            fmt.Println(page)
728//            return pageNum <= 3
729//        })
730//
731func (c *DevOpsGuru) DescribeResourceCollectionHealthPages(input *DescribeResourceCollectionHealthInput, fn func(*DescribeResourceCollectionHealthOutput, bool) bool) error {
732	return c.DescribeResourceCollectionHealthPagesWithContext(aws.BackgroundContext(), input, fn)
733}
734
735// DescribeResourceCollectionHealthPagesWithContext same as DescribeResourceCollectionHealthPages except
736// it takes a Context and allows setting request options on the pages.
737//
738// The context must be non-nil and will be used for request cancellation. If
739// the context is nil a panic will occur. In the future the SDK may create
740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
741// for more information on using Contexts.
742func (c *DevOpsGuru) DescribeResourceCollectionHealthPagesWithContext(ctx aws.Context, input *DescribeResourceCollectionHealthInput, fn func(*DescribeResourceCollectionHealthOutput, bool) bool, opts ...request.Option) error {
743	p := request.Pagination{
744		NewRequest: func() (*request.Request, error) {
745			var inCpy *DescribeResourceCollectionHealthInput
746			if input != nil {
747				tmp := *input
748				inCpy = &tmp
749			}
750			req, _ := c.DescribeResourceCollectionHealthRequest(inCpy)
751			req.SetContext(ctx)
752			req.ApplyOptions(opts...)
753			return req, nil
754		},
755	}
756
757	for p.Next() {
758		if !fn(p.Page().(*DescribeResourceCollectionHealthOutput), !p.HasNextPage()) {
759			break
760		}
761	}
762
763	return p.Err()
764}
765
766const opDescribeServiceIntegration = "DescribeServiceIntegration"
767
768// DescribeServiceIntegrationRequest generates a "aws/request.Request" representing the
769// client's request for the DescribeServiceIntegration operation. The "output" return
770// value will be populated with the request's response once the request completes
771// successfully.
772//
773// Use "Send" method on the returned Request to send the API call to the service.
774// the "output" return value is not valid until after Send returns without error.
775//
776// See DescribeServiceIntegration for more information on using the DescribeServiceIntegration
777// API call, and error handling.
778//
779// This method is useful when you want to inject custom logic or configuration
780// into the SDK's request lifecycle. Such as custom headers, or retry logic.
781//
782//
783//    // Example sending a request using the DescribeServiceIntegrationRequest method.
784//    req, resp := client.DescribeServiceIntegrationRequest(params)
785//
786//    err := req.Send()
787//    if err == nil { // resp is now filled
788//        fmt.Println(resp)
789//    }
790//
791// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeServiceIntegration
792func (c *DevOpsGuru) DescribeServiceIntegrationRequest(input *DescribeServiceIntegrationInput) (req *request.Request, output *DescribeServiceIntegrationOutput) {
793	op := &request.Operation{
794		Name:       opDescribeServiceIntegration,
795		HTTPMethod: "GET",
796		HTTPPath:   "/service-integrations",
797	}
798
799	if input == nil {
800		input = &DescribeServiceIntegrationInput{}
801	}
802
803	output = &DescribeServiceIntegrationOutput{}
804	req = c.newRequest(op, input, output)
805	return
806}
807
808// DescribeServiceIntegration API operation for Amazon DevOps Guru.
809//
810// Returns the integration status of services that are integrated with DevOps
811// Guru. The one service that can be integrated with DevOps Guru is AWS Systems
812// Manager, which can be used to create an OpsItem for each generated insight.
813//
814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
815// with awserr.Error's Code and Message methods to get detailed information about
816// the error.
817//
818// See the AWS API reference guide for Amazon DevOps Guru's
819// API operation DescribeServiceIntegration for usage and error information.
820//
821// Returned Error Types:
822//   * AccessDeniedException
823//   You don't have permissions to perform the requested operation. The user or
824//   role that is making the request must have at least one IAM permissions policy
825//   attached that grants the required permissions. For more information, see
826//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
827//   in the IAM User Guide.
828//
829//   * InternalServerException
830//   An internal failure in an Amazon service occurred.
831//
832//   * ThrottlingException
833//   The request was denied due to a request throttling.
834//
835//   * ValidationException
836//   Contains information about data passed in to a field during a request that
837//   is not valid.
838//
839// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/DescribeServiceIntegration
840func (c *DevOpsGuru) DescribeServiceIntegration(input *DescribeServiceIntegrationInput) (*DescribeServiceIntegrationOutput, error) {
841	req, out := c.DescribeServiceIntegrationRequest(input)
842	return out, req.Send()
843}
844
845// DescribeServiceIntegrationWithContext is the same as DescribeServiceIntegration with the addition of
846// the ability to pass a context and additional request options.
847//
848// See DescribeServiceIntegration for details on how to use this API operation.
849//
850// The context must be non-nil and will be used for request cancellation. If
851// the context is nil a panic will occur. In the future the SDK may create
852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
853// for more information on using Contexts.
854func (c *DevOpsGuru) DescribeServiceIntegrationWithContext(ctx aws.Context, input *DescribeServiceIntegrationInput, opts ...request.Option) (*DescribeServiceIntegrationOutput, error) {
855	req, out := c.DescribeServiceIntegrationRequest(input)
856	req.SetContext(ctx)
857	req.ApplyOptions(opts...)
858	return out, req.Send()
859}
860
861const opGetCostEstimation = "GetCostEstimation"
862
863// GetCostEstimationRequest generates a "aws/request.Request" representing the
864// client's request for the GetCostEstimation operation. The "output" return
865// value will be populated with the request's response once the request completes
866// successfully.
867//
868// Use "Send" method on the returned Request to send the API call to the service.
869// the "output" return value is not valid until after Send returns without error.
870//
871// See GetCostEstimation for more information on using the GetCostEstimation
872// API call, and error handling.
873//
874// This method is useful when you want to inject custom logic or configuration
875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
876//
877//
878//    // Example sending a request using the GetCostEstimationRequest method.
879//    req, resp := client.GetCostEstimationRequest(params)
880//
881//    err := req.Send()
882//    if err == nil { // resp is now filled
883//        fmt.Println(resp)
884//    }
885//
886// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/GetCostEstimation
887func (c *DevOpsGuru) GetCostEstimationRequest(input *GetCostEstimationInput) (req *request.Request, output *GetCostEstimationOutput) {
888	op := &request.Operation{
889		Name:       opGetCostEstimation,
890		HTTPMethod: "GET",
891		HTTPPath:   "/cost-estimation",
892		Paginator: &request.Paginator{
893			InputTokens:     []string{"NextToken"},
894			OutputTokens:    []string{"NextToken"},
895			LimitToken:      "",
896			TruncationToken: "",
897		},
898	}
899
900	if input == nil {
901		input = &GetCostEstimationInput{}
902	}
903
904	output = &GetCostEstimationOutput{}
905	req = c.newRequest(op, input, output)
906	return
907}
908
909// GetCostEstimation API operation for Amazon DevOps Guru.
910//
911// Returns an estimate of the monthly cost for DevOps Guru to analyze your AWS
912// resources. For more information, see Estimate your Amazon DevOps Guru costs
913// (https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html)
914// and Amazon DevOps Guru pricing (http://aws.amazon.com/devops-guru/pricing/).
915//
916// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
917// with awserr.Error's Code and Message methods to get detailed information about
918// the error.
919//
920// See the AWS API reference guide for Amazon DevOps Guru's
921// API operation GetCostEstimation for usage and error information.
922//
923// Returned Error Types:
924//   * AccessDeniedException
925//   You don't have permissions to perform the requested operation. The user or
926//   role that is making the request must have at least one IAM permissions policy
927//   attached that grants the required permissions. For more information, see
928//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
929//   in the IAM User Guide.
930//
931//   * InternalServerException
932//   An internal failure in an Amazon service occurred.
933//
934//   * ResourceNotFoundException
935//   A requested resource could not be found
936//
937//   * ThrottlingException
938//   The request was denied due to a request throttling.
939//
940//   * ValidationException
941//   Contains information about data passed in to a field during a request that
942//   is not valid.
943//
944// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/GetCostEstimation
945func (c *DevOpsGuru) GetCostEstimation(input *GetCostEstimationInput) (*GetCostEstimationOutput, error) {
946	req, out := c.GetCostEstimationRequest(input)
947	return out, req.Send()
948}
949
950// GetCostEstimationWithContext is the same as GetCostEstimation with the addition of
951// the ability to pass a context and additional request options.
952//
953// See GetCostEstimation for details on how to use this API operation.
954//
955// The context must be non-nil and will be used for request cancellation. If
956// the context is nil a panic will occur. In the future the SDK may create
957// sub-contexts for http.Requests. See https://golang.org/pkg/context/
958// for more information on using Contexts.
959func (c *DevOpsGuru) GetCostEstimationWithContext(ctx aws.Context, input *GetCostEstimationInput, opts ...request.Option) (*GetCostEstimationOutput, error) {
960	req, out := c.GetCostEstimationRequest(input)
961	req.SetContext(ctx)
962	req.ApplyOptions(opts...)
963	return out, req.Send()
964}
965
966// GetCostEstimationPages iterates over the pages of a GetCostEstimation operation,
967// calling the "fn" function with the response data for each page. To stop
968// iterating, return false from the fn function.
969//
970// See GetCostEstimation method for more information on how to use this operation.
971//
972// Note: This operation can generate multiple requests to a service.
973//
974//    // Example iterating over at most 3 pages of a GetCostEstimation operation.
975//    pageNum := 0
976//    err := client.GetCostEstimationPages(params,
977//        func(page *devopsguru.GetCostEstimationOutput, lastPage bool) bool {
978//            pageNum++
979//            fmt.Println(page)
980//            return pageNum <= 3
981//        })
982//
983func (c *DevOpsGuru) GetCostEstimationPages(input *GetCostEstimationInput, fn func(*GetCostEstimationOutput, bool) bool) error {
984	return c.GetCostEstimationPagesWithContext(aws.BackgroundContext(), input, fn)
985}
986
987// GetCostEstimationPagesWithContext same as GetCostEstimationPages except
988// it takes a Context and allows setting request options on the pages.
989//
990// The context must be non-nil and will be used for request cancellation. If
991// the context is nil a panic will occur. In the future the SDK may create
992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
993// for more information on using Contexts.
994func (c *DevOpsGuru) GetCostEstimationPagesWithContext(ctx aws.Context, input *GetCostEstimationInput, fn func(*GetCostEstimationOutput, bool) bool, opts ...request.Option) error {
995	p := request.Pagination{
996		NewRequest: func() (*request.Request, error) {
997			var inCpy *GetCostEstimationInput
998			if input != nil {
999				tmp := *input
1000				inCpy = &tmp
1001			}
1002			req, _ := c.GetCostEstimationRequest(inCpy)
1003			req.SetContext(ctx)
1004			req.ApplyOptions(opts...)
1005			return req, nil
1006		},
1007	}
1008
1009	for p.Next() {
1010		if !fn(p.Page().(*GetCostEstimationOutput), !p.HasNextPage()) {
1011			break
1012		}
1013	}
1014
1015	return p.Err()
1016}
1017
1018const opGetResourceCollection = "GetResourceCollection"
1019
1020// GetResourceCollectionRequest generates a "aws/request.Request" representing the
1021// client's request for the GetResourceCollection operation. The "output" return
1022// value will be populated with the request's response once the request completes
1023// successfully.
1024//
1025// Use "Send" method on the returned Request to send the API call to the service.
1026// the "output" return value is not valid until after Send returns without error.
1027//
1028// See GetResourceCollection for more information on using the GetResourceCollection
1029// API call, and error handling.
1030//
1031// This method is useful when you want to inject custom logic or configuration
1032// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1033//
1034//
1035//    // Example sending a request using the GetResourceCollectionRequest method.
1036//    req, resp := client.GetResourceCollectionRequest(params)
1037//
1038//    err := req.Send()
1039//    if err == nil { // resp is now filled
1040//        fmt.Println(resp)
1041//    }
1042//
1043// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/GetResourceCollection
1044func (c *DevOpsGuru) GetResourceCollectionRequest(input *GetResourceCollectionInput) (req *request.Request, output *GetResourceCollectionOutput) {
1045	op := &request.Operation{
1046		Name:       opGetResourceCollection,
1047		HTTPMethod: "GET",
1048		HTTPPath:   "/resource-collections/{ResourceCollectionType}",
1049		Paginator: &request.Paginator{
1050			InputTokens:     []string{"NextToken"},
1051			OutputTokens:    []string{"NextToken"},
1052			LimitToken:      "",
1053			TruncationToken: "",
1054		},
1055	}
1056
1057	if input == nil {
1058		input = &GetResourceCollectionInput{}
1059	}
1060
1061	output = &GetResourceCollectionOutput{}
1062	req = c.newRequest(op, input, output)
1063	return
1064}
1065
1066// GetResourceCollection API operation for Amazon DevOps Guru.
1067//
1068// Returns lists AWS resources that are of the specified resource collection
1069// type. The one type of AWS resource collection supported is AWS CloudFormation
1070// stacks. DevOps Guru can be configured to analyze only the AWS resources that
1071// are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks.
1072//
1073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1074// with awserr.Error's Code and Message methods to get detailed information about
1075// the error.
1076//
1077// See the AWS API reference guide for Amazon DevOps Guru's
1078// API operation GetResourceCollection for usage and error information.
1079//
1080// Returned Error Types:
1081//   * AccessDeniedException
1082//   You don't have permissions to perform the requested operation. The user or
1083//   role that is making the request must have at least one IAM permissions policy
1084//   attached that grants the required permissions. For more information, see
1085//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
1086//   in the IAM User Guide.
1087//
1088//   * InternalServerException
1089//   An internal failure in an Amazon service occurred.
1090//
1091//   * ResourceNotFoundException
1092//   A requested resource could not be found
1093//
1094//   * ThrottlingException
1095//   The request was denied due to a request throttling.
1096//
1097//   * ValidationException
1098//   Contains information about data passed in to a field during a request that
1099//   is not valid.
1100//
1101// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/GetResourceCollection
1102func (c *DevOpsGuru) GetResourceCollection(input *GetResourceCollectionInput) (*GetResourceCollectionOutput, error) {
1103	req, out := c.GetResourceCollectionRequest(input)
1104	return out, req.Send()
1105}
1106
1107// GetResourceCollectionWithContext is the same as GetResourceCollection with the addition of
1108// the ability to pass a context and additional request options.
1109//
1110// See GetResourceCollection 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 *DevOpsGuru) GetResourceCollectionWithContext(ctx aws.Context, input *GetResourceCollectionInput, opts ...request.Option) (*GetResourceCollectionOutput, error) {
1117	req, out := c.GetResourceCollectionRequest(input)
1118	req.SetContext(ctx)
1119	req.ApplyOptions(opts...)
1120	return out, req.Send()
1121}
1122
1123// GetResourceCollectionPages iterates over the pages of a GetResourceCollection operation,
1124// calling the "fn" function with the response data for each page. To stop
1125// iterating, return false from the fn function.
1126//
1127// See GetResourceCollection method for more information on how to use this operation.
1128//
1129// Note: This operation can generate multiple requests to a service.
1130//
1131//    // Example iterating over at most 3 pages of a GetResourceCollection operation.
1132//    pageNum := 0
1133//    err := client.GetResourceCollectionPages(params,
1134//        func(page *devopsguru.GetResourceCollectionOutput, lastPage bool) bool {
1135//            pageNum++
1136//            fmt.Println(page)
1137//            return pageNum <= 3
1138//        })
1139//
1140func (c *DevOpsGuru) GetResourceCollectionPages(input *GetResourceCollectionInput, fn func(*GetResourceCollectionOutput, bool) bool) error {
1141	return c.GetResourceCollectionPagesWithContext(aws.BackgroundContext(), input, fn)
1142}
1143
1144// GetResourceCollectionPagesWithContext same as GetResourceCollectionPages except
1145// it takes a Context and allows setting request options on the pages.
1146//
1147// The context must be non-nil and will be used for request cancellation. If
1148// the context is nil a panic will occur. In the future the SDK may create
1149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1150// for more information on using Contexts.
1151func (c *DevOpsGuru) GetResourceCollectionPagesWithContext(ctx aws.Context, input *GetResourceCollectionInput, fn func(*GetResourceCollectionOutput, bool) bool, opts ...request.Option) error {
1152	p := request.Pagination{
1153		NewRequest: func() (*request.Request, error) {
1154			var inCpy *GetResourceCollectionInput
1155			if input != nil {
1156				tmp := *input
1157				inCpy = &tmp
1158			}
1159			req, _ := c.GetResourceCollectionRequest(inCpy)
1160			req.SetContext(ctx)
1161			req.ApplyOptions(opts...)
1162			return req, nil
1163		},
1164	}
1165
1166	for p.Next() {
1167		if !fn(p.Page().(*GetResourceCollectionOutput), !p.HasNextPage()) {
1168			break
1169		}
1170	}
1171
1172	return p.Err()
1173}
1174
1175const opListAnomaliesForInsight = "ListAnomaliesForInsight"
1176
1177// ListAnomaliesForInsightRequest generates a "aws/request.Request" representing the
1178// client's request for the ListAnomaliesForInsight operation. The "output" return
1179// value will be populated with the request's response once the request completes
1180// successfully.
1181//
1182// Use "Send" method on the returned Request to send the API call to the service.
1183// the "output" return value is not valid until after Send returns without error.
1184//
1185// See ListAnomaliesForInsight for more information on using the ListAnomaliesForInsight
1186// API call, and error handling.
1187//
1188// This method is useful when you want to inject custom logic or configuration
1189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1190//
1191//
1192//    // Example sending a request using the ListAnomaliesForInsightRequest method.
1193//    req, resp := client.ListAnomaliesForInsightRequest(params)
1194//
1195//    err := req.Send()
1196//    if err == nil { // resp is now filled
1197//        fmt.Println(resp)
1198//    }
1199//
1200// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListAnomaliesForInsight
1201func (c *DevOpsGuru) ListAnomaliesForInsightRequest(input *ListAnomaliesForInsightInput) (req *request.Request, output *ListAnomaliesForInsightOutput) {
1202	op := &request.Operation{
1203		Name:       opListAnomaliesForInsight,
1204		HTTPMethod: "POST",
1205		HTTPPath:   "/anomalies/insight/{InsightId}",
1206		Paginator: &request.Paginator{
1207			InputTokens:     []string{"NextToken"},
1208			OutputTokens:    []string{"NextToken"},
1209			LimitToken:      "MaxResults",
1210			TruncationToken: "",
1211		},
1212	}
1213
1214	if input == nil {
1215		input = &ListAnomaliesForInsightInput{}
1216	}
1217
1218	output = &ListAnomaliesForInsightOutput{}
1219	req = c.newRequest(op, input, output)
1220	return
1221}
1222
1223// ListAnomaliesForInsight API operation for Amazon DevOps Guru.
1224//
1225// Returns a list of the anomalies that belong to an insight that you specify
1226// using its ID.
1227//
1228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1229// with awserr.Error's Code and Message methods to get detailed information about
1230// the error.
1231//
1232// See the AWS API reference guide for Amazon DevOps Guru's
1233// API operation ListAnomaliesForInsight for usage and error information.
1234//
1235// Returned Error Types:
1236//   * AccessDeniedException
1237//   You don't have permissions to perform the requested operation. The user or
1238//   role that is making the request must have at least one IAM permissions policy
1239//   attached that grants the required permissions. For more information, see
1240//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
1241//   in the IAM User Guide.
1242//
1243//   * InternalServerException
1244//   An internal failure in an Amazon service occurred.
1245//
1246//   * ResourceNotFoundException
1247//   A requested resource could not be found
1248//
1249//   * ThrottlingException
1250//   The request was denied due to a request throttling.
1251//
1252//   * ValidationException
1253//   Contains information about data passed in to a field during a request that
1254//   is not valid.
1255//
1256// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListAnomaliesForInsight
1257func (c *DevOpsGuru) ListAnomaliesForInsight(input *ListAnomaliesForInsightInput) (*ListAnomaliesForInsightOutput, error) {
1258	req, out := c.ListAnomaliesForInsightRequest(input)
1259	return out, req.Send()
1260}
1261
1262// ListAnomaliesForInsightWithContext is the same as ListAnomaliesForInsight with the addition of
1263// the ability to pass a context and additional request options.
1264//
1265// See ListAnomaliesForInsight for details on how to use this API operation.
1266//
1267// The context must be non-nil and will be used for request cancellation. If
1268// the context is nil a panic will occur. In the future the SDK may create
1269// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1270// for more information on using Contexts.
1271func (c *DevOpsGuru) ListAnomaliesForInsightWithContext(ctx aws.Context, input *ListAnomaliesForInsightInput, opts ...request.Option) (*ListAnomaliesForInsightOutput, error) {
1272	req, out := c.ListAnomaliesForInsightRequest(input)
1273	req.SetContext(ctx)
1274	req.ApplyOptions(opts...)
1275	return out, req.Send()
1276}
1277
1278// ListAnomaliesForInsightPages iterates over the pages of a ListAnomaliesForInsight operation,
1279// calling the "fn" function with the response data for each page. To stop
1280// iterating, return false from the fn function.
1281//
1282// See ListAnomaliesForInsight method for more information on how to use this operation.
1283//
1284// Note: This operation can generate multiple requests to a service.
1285//
1286//    // Example iterating over at most 3 pages of a ListAnomaliesForInsight operation.
1287//    pageNum := 0
1288//    err := client.ListAnomaliesForInsightPages(params,
1289//        func(page *devopsguru.ListAnomaliesForInsightOutput, lastPage bool) bool {
1290//            pageNum++
1291//            fmt.Println(page)
1292//            return pageNum <= 3
1293//        })
1294//
1295func (c *DevOpsGuru) ListAnomaliesForInsightPages(input *ListAnomaliesForInsightInput, fn func(*ListAnomaliesForInsightOutput, bool) bool) error {
1296	return c.ListAnomaliesForInsightPagesWithContext(aws.BackgroundContext(), input, fn)
1297}
1298
1299// ListAnomaliesForInsightPagesWithContext same as ListAnomaliesForInsightPages except
1300// it takes a Context and allows setting request options on the pages.
1301//
1302// The context must be non-nil and will be used for request cancellation. If
1303// the context is nil a panic will occur. In the future the SDK may create
1304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1305// for more information on using Contexts.
1306func (c *DevOpsGuru) ListAnomaliesForInsightPagesWithContext(ctx aws.Context, input *ListAnomaliesForInsightInput, fn func(*ListAnomaliesForInsightOutput, bool) bool, opts ...request.Option) error {
1307	p := request.Pagination{
1308		NewRequest: func() (*request.Request, error) {
1309			var inCpy *ListAnomaliesForInsightInput
1310			if input != nil {
1311				tmp := *input
1312				inCpy = &tmp
1313			}
1314			req, _ := c.ListAnomaliesForInsightRequest(inCpy)
1315			req.SetContext(ctx)
1316			req.ApplyOptions(opts...)
1317			return req, nil
1318		},
1319	}
1320
1321	for p.Next() {
1322		if !fn(p.Page().(*ListAnomaliesForInsightOutput), !p.HasNextPage()) {
1323			break
1324		}
1325	}
1326
1327	return p.Err()
1328}
1329
1330const opListEvents = "ListEvents"
1331
1332// ListEventsRequest generates a "aws/request.Request" representing the
1333// client's request for the ListEvents operation. The "output" return
1334// value will be populated with the request's response once the request completes
1335// successfully.
1336//
1337// Use "Send" method on the returned Request to send the API call to the service.
1338// the "output" return value is not valid until after Send returns without error.
1339//
1340// See ListEvents for more information on using the ListEvents
1341// API call, and error handling.
1342//
1343// This method is useful when you want to inject custom logic or configuration
1344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1345//
1346//
1347//    // Example sending a request using the ListEventsRequest method.
1348//    req, resp := client.ListEventsRequest(params)
1349//
1350//    err := req.Send()
1351//    if err == nil { // resp is now filled
1352//        fmt.Println(resp)
1353//    }
1354//
1355// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListEvents
1356func (c *DevOpsGuru) ListEventsRequest(input *ListEventsInput) (req *request.Request, output *ListEventsOutput) {
1357	op := &request.Operation{
1358		Name:       opListEvents,
1359		HTTPMethod: "POST",
1360		HTTPPath:   "/events",
1361		Paginator: &request.Paginator{
1362			InputTokens:     []string{"NextToken"},
1363			OutputTokens:    []string{"NextToken"},
1364			LimitToken:      "MaxResults",
1365			TruncationToken: "",
1366		},
1367	}
1368
1369	if input == nil {
1370		input = &ListEventsInput{}
1371	}
1372
1373	output = &ListEventsOutput{}
1374	req = c.newRequest(op, input, output)
1375	return
1376}
1377
1378// ListEvents API operation for Amazon DevOps Guru.
1379//
1380// Returns a list of the events emitted by the resources that are evaluated
1381// by DevOps Guru. You can use filters to specify which events are returned.
1382//
1383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1384// with awserr.Error's Code and Message methods to get detailed information about
1385// the error.
1386//
1387// See the AWS API reference guide for Amazon DevOps Guru's
1388// API operation ListEvents for usage and error information.
1389//
1390// Returned Error Types:
1391//   * AccessDeniedException
1392//   You don't have permissions to perform the requested operation. The user or
1393//   role that is making the request must have at least one IAM permissions policy
1394//   attached that grants the required permissions. For more information, see
1395//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
1396//   in the IAM User Guide.
1397//
1398//   * InternalServerException
1399//   An internal failure in an Amazon service occurred.
1400//
1401//   * ResourceNotFoundException
1402//   A requested resource could not be found
1403//
1404//   * ThrottlingException
1405//   The request was denied due to a request throttling.
1406//
1407//   * ValidationException
1408//   Contains information about data passed in to a field during a request that
1409//   is not valid.
1410//
1411// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListEvents
1412func (c *DevOpsGuru) ListEvents(input *ListEventsInput) (*ListEventsOutput, error) {
1413	req, out := c.ListEventsRequest(input)
1414	return out, req.Send()
1415}
1416
1417// ListEventsWithContext is the same as ListEvents with the addition of
1418// the ability to pass a context and additional request options.
1419//
1420// See ListEvents for details on how to use this API operation.
1421//
1422// The context must be non-nil and will be used for request cancellation. If
1423// the context is nil a panic will occur. In the future the SDK may create
1424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1425// for more information on using Contexts.
1426func (c *DevOpsGuru) ListEventsWithContext(ctx aws.Context, input *ListEventsInput, opts ...request.Option) (*ListEventsOutput, error) {
1427	req, out := c.ListEventsRequest(input)
1428	req.SetContext(ctx)
1429	req.ApplyOptions(opts...)
1430	return out, req.Send()
1431}
1432
1433// ListEventsPages iterates over the pages of a ListEvents operation,
1434// calling the "fn" function with the response data for each page. To stop
1435// iterating, return false from the fn function.
1436//
1437// See ListEvents method for more information on how to use this operation.
1438//
1439// Note: This operation can generate multiple requests to a service.
1440//
1441//    // Example iterating over at most 3 pages of a ListEvents operation.
1442//    pageNum := 0
1443//    err := client.ListEventsPages(params,
1444//        func(page *devopsguru.ListEventsOutput, lastPage bool) bool {
1445//            pageNum++
1446//            fmt.Println(page)
1447//            return pageNum <= 3
1448//        })
1449//
1450func (c *DevOpsGuru) ListEventsPages(input *ListEventsInput, fn func(*ListEventsOutput, bool) bool) error {
1451	return c.ListEventsPagesWithContext(aws.BackgroundContext(), input, fn)
1452}
1453
1454// ListEventsPagesWithContext same as ListEventsPages except
1455// it takes a Context and allows setting request options on the pages.
1456//
1457// The context must be non-nil and will be used for request cancellation. If
1458// the context is nil a panic will occur. In the future the SDK may create
1459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1460// for more information on using Contexts.
1461func (c *DevOpsGuru) ListEventsPagesWithContext(ctx aws.Context, input *ListEventsInput, fn func(*ListEventsOutput, bool) bool, opts ...request.Option) error {
1462	p := request.Pagination{
1463		NewRequest: func() (*request.Request, error) {
1464			var inCpy *ListEventsInput
1465			if input != nil {
1466				tmp := *input
1467				inCpy = &tmp
1468			}
1469			req, _ := c.ListEventsRequest(inCpy)
1470			req.SetContext(ctx)
1471			req.ApplyOptions(opts...)
1472			return req, nil
1473		},
1474	}
1475
1476	for p.Next() {
1477		if !fn(p.Page().(*ListEventsOutput), !p.HasNextPage()) {
1478			break
1479		}
1480	}
1481
1482	return p.Err()
1483}
1484
1485const opListInsights = "ListInsights"
1486
1487// ListInsightsRequest generates a "aws/request.Request" representing the
1488// client's request for the ListInsights operation. The "output" return
1489// value will be populated with the request's response once the request completes
1490// successfully.
1491//
1492// Use "Send" method on the returned Request to send the API call to the service.
1493// the "output" return value is not valid until after Send returns without error.
1494//
1495// See ListInsights for more information on using the ListInsights
1496// API call, and error handling.
1497//
1498// This method is useful when you want to inject custom logic or configuration
1499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1500//
1501//
1502//    // Example sending a request using the ListInsightsRequest method.
1503//    req, resp := client.ListInsightsRequest(params)
1504//
1505//    err := req.Send()
1506//    if err == nil { // resp is now filled
1507//        fmt.Println(resp)
1508//    }
1509//
1510// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListInsights
1511func (c *DevOpsGuru) ListInsightsRequest(input *ListInsightsInput) (req *request.Request, output *ListInsightsOutput) {
1512	op := &request.Operation{
1513		Name:       opListInsights,
1514		HTTPMethod: "POST",
1515		HTTPPath:   "/insights",
1516		Paginator: &request.Paginator{
1517			InputTokens:     []string{"NextToken"},
1518			OutputTokens:    []string{"NextToken"},
1519			LimitToken:      "MaxResults",
1520			TruncationToken: "",
1521		},
1522	}
1523
1524	if input == nil {
1525		input = &ListInsightsInput{}
1526	}
1527
1528	output = &ListInsightsOutput{}
1529	req = c.newRequest(op, input, output)
1530	return
1531}
1532
1533// ListInsights API operation for Amazon DevOps Guru.
1534//
1535// Returns a list of insights in your AWS account. You can specify which insights
1536// are returned by their start time and status (ONGOING, CLOSED, or ANY).
1537//
1538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1539// with awserr.Error's Code and Message methods to get detailed information about
1540// the error.
1541//
1542// See the AWS API reference guide for Amazon DevOps Guru's
1543// API operation ListInsights for usage and error information.
1544//
1545// Returned Error Types:
1546//   * AccessDeniedException
1547//   You don't have permissions to perform the requested operation. The user or
1548//   role that is making the request must have at least one IAM permissions policy
1549//   attached that grants the required permissions. For more information, see
1550//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
1551//   in the IAM User Guide.
1552//
1553//   * InternalServerException
1554//   An internal failure in an Amazon service occurred.
1555//
1556//   * ThrottlingException
1557//   The request was denied due to a request throttling.
1558//
1559//   * ValidationException
1560//   Contains information about data passed in to a field during a request that
1561//   is not valid.
1562//
1563// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListInsights
1564func (c *DevOpsGuru) ListInsights(input *ListInsightsInput) (*ListInsightsOutput, error) {
1565	req, out := c.ListInsightsRequest(input)
1566	return out, req.Send()
1567}
1568
1569// ListInsightsWithContext is the same as ListInsights with the addition of
1570// the ability to pass a context and additional request options.
1571//
1572// See ListInsights for details on how to use this API operation.
1573//
1574// The context must be non-nil and will be used for request cancellation. If
1575// the context is nil a panic will occur. In the future the SDK may create
1576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1577// for more information on using Contexts.
1578func (c *DevOpsGuru) ListInsightsWithContext(ctx aws.Context, input *ListInsightsInput, opts ...request.Option) (*ListInsightsOutput, error) {
1579	req, out := c.ListInsightsRequest(input)
1580	req.SetContext(ctx)
1581	req.ApplyOptions(opts...)
1582	return out, req.Send()
1583}
1584
1585// ListInsightsPages iterates over the pages of a ListInsights operation,
1586// calling the "fn" function with the response data for each page. To stop
1587// iterating, return false from the fn function.
1588//
1589// See ListInsights method for more information on how to use this operation.
1590//
1591// Note: This operation can generate multiple requests to a service.
1592//
1593//    // Example iterating over at most 3 pages of a ListInsights operation.
1594//    pageNum := 0
1595//    err := client.ListInsightsPages(params,
1596//        func(page *devopsguru.ListInsightsOutput, lastPage bool) bool {
1597//            pageNum++
1598//            fmt.Println(page)
1599//            return pageNum <= 3
1600//        })
1601//
1602func (c *DevOpsGuru) ListInsightsPages(input *ListInsightsInput, fn func(*ListInsightsOutput, bool) bool) error {
1603	return c.ListInsightsPagesWithContext(aws.BackgroundContext(), input, fn)
1604}
1605
1606// ListInsightsPagesWithContext same as ListInsightsPages except
1607// it takes a Context and allows setting request options on the pages.
1608//
1609// The context must be non-nil and will be used for request cancellation. If
1610// the context is nil a panic will occur. In the future the SDK may create
1611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1612// for more information on using Contexts.
1613func (c *DevOpsGuru) ListInsightsPagesWithContext(ctx aws.Context, input *ListInsightsInput, fn func(*ListInsightsOutput, bool) bool, opts ...request.Option) error {
1614	p := request.Pagination{
1615		NewRequest: func() (*request.Request, error) {
1616			var inCpy *ListInsightsInput
1617			if input != nil {
1618				tmp := *input
1619				inCpy = &tmp
1620			}
1621			req, _ := c.ListInsightsRequest(inCpy)
1622			req.SetContext(ctx)
1623			req.ApplyOptions(opts...)
1624			return req, nil
1625		},
1626	}
1627
1628	for p.Next() {
1629		if !fn(p.Page().(*ListInsightsOutput), !p.HasNextPage()) {
1630			break
1631		}
1632	}
1633
1634	return p.Err()
1635}
1636
1637const opListNotificationChannels = "ListNotificationChannels"
1638
1639// ListNotificationChannelsRequest generates a "aws/request.Request" representing the
1640// client's request for the ListNotificationChannels operation. The "output" return
1641// value will be populated with the request's response once the request completes
1642// successfully.
1643//
1644// Use "Send" method on the returned Request to send the API call to the service.
1645// the "output" return value is not valid until after Send returns without error.
1646//
1647// See ListNotificationChannels for more information on using the ListNotificationChannels
1648// API call, and error handling.
1649//
1650// This method is useful when you want to inject custom logic or configuration
1651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1652//
1653//
1654//    // Example sending a request using the ListNotificationChannelsRequest method.
1655//    req, resp := client.ListNotificationChannelsRequest(params)
1656//
1657//    err := req.Send()
1658//    if err == nil { // resp is now filled
1659//        fmt.Println(resp)
1660//    }
1661//
1662// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListNotificationChannels
1663func (c *DevOpsGuru) ListNotificationChannelsRequest(input *ListNotificationChannelsInput) (req *request.Request, output *ListNotificationChannelsOutput) {
1664	op := &request.Operation{
1665		Name:       opListNotificationChannels,
1666		HTTPMethod: "POST",
1667		HTTPPath:   "/channels",
1668		Paginator: &request.Paginator{
1669			InputTokens:     []string{"NextToken"},
1670			OutputTokens:    []string{"NextToken"},
1671			LimitToken:      "",
1672			TruncationToken: "",
1673		},
1674	}
1675
1676	if input == nil {
1677		input = &ListNotificationChannelsInput{}
1678	}
1679
1680	output = &ListNotificationChannelsOutput{}
1681	req = c.newRequest(op, input, output)
1682	return
1683}
1684
1685// ListNotificationChannels API operation for Amazon DevOps Guru.
1686//
1687// Returns a list of notification channels configured for DevOps Guru. Each
1688// notification channel is used to notify you when DevOps Guru generates an
1689// insight that contains information about how to improve your operations. The
1690// one supported notification channel is Amazon Simple Notification Service
1691// (Amazon SNS).
1692//
1693// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1694// with awserr.Error's Code and Message methods to get detailed information about
1695// the error.
1696//
1697// See the AWS API reference guide for Amazon DevOps Guru's
1698// API operation ListNotificationChannels for usage and error information.
1699//
1700// Returned Error Types:
1701//   * AccessDeniedException
1702//   You don't have permissions to perform the requested operation. The user or
1703//   role that is making the request must have at least one IAM permissions policy
1704//   attached that grants the required permissions. For more information, see
1705//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
1706//   in the IAM User Guide.
1707//
1708//   * InternalServerException
1709//   An internal failure in an Amazon service occurred.
1710//
1711//   * ThrottlingException
1712//   The request was denied due to a request throttling.
1713//
1714//   * ValidationException
1715//   Contains information about data passed in to a field during a request that
1716//   is not valid.
1717//
1718// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListNotificationChannels
1719func (c *DevOpsGuru) ListNotificationChannels(input *ListNotificationChannelsInput) (*ListNotificationChannelsOutput, error) {
1720	req, out := c.ListNotificationChannelsRequest(input)
1721	return out, req.Send()
1722}
1723
1724// ListNotificationChannelsWithContext is the same as ListNotificationChannels with the addition of
1725// the ability to pass a context and additional request options.
1726//
1727// See ListNotificationChannels for details on how to use this API operation.
1728//
1729// The context must be non-nil and will be used for request cancellation. If
1730// the context is nil a panic will occur. In the future the SDK may create
1731// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1732// for more information on using Contexts.
1733func (c *DevOpsGuru) ListNotificationChannelsWithContext(ctx aws.Context, input *ListNotificationChannelsInput, opts ...request.Option) (*ListNotificationChannelsOutput, error) {
1734	req, out := c.ListNotificationChannelsRequest(input)
1735	req.SetContext(ctx)
1736	req.ApplyOptions(opts...)
1737	return out, req.Send()
1738}
1739
1740// ListNotificationChannelsPages iterates over the pages of a ListNotificationChannels operation,
1741// calling the "fn" function with the response data for each page. To stop
1742// iterating, return false from the fn function.
1743//
1744// See ListNotificationChannels method for more information on how to use this operation.
1745//
1746// Note: This operation can generate multiple requests to a service.
1747//
1748//    // Example iterating over at most 3 pages of a ListNotificationChannels operation.
1749//    pageNum := 0
1750//    err := client.ListNotificationChannelsPages(params,
1751//        func(page *devopsguru.ListNotificationChannelsOutput, lastPage bool) bool {
1752//            pageNum++
1753//            fmt.Println(page)
1754//            return pageNum <= 3
1755//        })
1756//
1757func (c *DevOpsGuru) ListNotificationChannelsPages(input *ListNotificationChannelsInput, fn func(*ListNotificationChannelsOutput, bool) bool) error {
1758	return c.ListNotificationChannelsPagesWithContext(aws.BackgroundContext(), input, fn)
1759}
1760
1761// ListNotificationChannelsPagesWithContext same as ListNotificationChannelsPages except
1762// it takes a Context and allows setting request options on the pages.
1763//
1764// The context must be non-nil and will be used for request cancellation. If
1765// the context is nil a panic will occur. In the future the SDK may create
1766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1767// for more information on using Contexts.
1768func (c *DevOpsGuru) ListNotificationChannelsPagesWithContext(ctx aws.Context, input *ListNotificationChannelsInput, fn func(*ListNotificationChannelsOutput, bool) bool, opts ...request.Option) error {
1769	p := request.Pagination{
1770		NewRequest: func() (*request.Request, error) {
1771			var inCpy *ListNotificationChannelsInput
1772			if input != nil {
1773				tmp := *input
1774				inCpy = &tmp
1775			}
1776			req, _ := c.ListNotificationChannelsRequest(inCpy)
1777			req.SetContext(ctx)
1778			req.ApplyOptions(opts...)
1779			return req, nil
1780		},
1781	}
1782
1783	for p.Next() {
1784		if !fn(p.Page().(*ListNotificationChannelsOutput), !p.HasNextPage()) {
1785			break
1786		}
1787	}
1788
1789	return p.Err()
1790}
1791
1792const opListRecommendations = "ListRecommendations"
1793
1794// ListRecommendationsRequest generates a "aws/request.Request" representing the
1795// client's request for the ListRecommendations operation. The "output" return
1796// value will be populated with the request's response once the request completes
1797// successfully.
1798//
1799// Use "Send" method on the returned Request to send the API call to the service.
1800// the "output" return value is not valid until after Send returns without error.
1801//
1802// See ListRecommendations for more information on using the ListRecommendations
1803// API call, and error handling.
1804//
1805// This method is useful when you want to inject custom logic or configuration
1806// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1807//
1808//
1809//    // Example sending a request using the ListRecommendationsRequest method.
1810//    req, resp := client.ListRecommendationsRequest(params)
1811//
1812//    err := req.Send()
1813//    if err == nil { // resp is now filled
1814//        fmt.Println(resp)
1815//    }
1816//
1817// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListRecommendations
1818func (c *DevOpsGuru) ListRecommendationsRequest(input *ListRecommendationsInput) (req *request.Request, output *ListRecommendationsOutput) {
1819	op := &request.Operation{
1820		Name:       opListRecommendations,
1821		HTTPMethod: "POST",
1822		HTTPPath:   "/recommendations",
1823		Paginator: &request.Paginator{
1824			InputTokens:     []string{"NextToken"},
1825			OutputTokens:    []string{"NextToken"},
1826			LimitToken:      "",
1827			TruncationToken: "",
1828		},
1829	}
1830
1831	if input == nil {
1832		input = &ListRecommendationsInput{}
1833	}
1834
1835	output = &ListRecommendationsOutput{}
1836	req = c.newRequest(op, input, output)
1837	return
1838}
1839
1840// ListRecommendations API operation for Amazon DevOps Guru.
1841//
1842// Returns a list of a specified insight's recommendations. Each recommendation
1843// includes a list of related metrics and a list of related events.
1844//
1845// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1846// with awserr.Error's Code and Message methods to get detailed information about
1847// the error.
1848//
1849// See the AWS API reference guide for Amazon DevOps Guru's
1850// API operation ListRecommendations for usage and error information.
1851//
1852// Returned Error Types:
1853//   * AccessDeniedException
1854//   You don't have permissions to perform the requested operation. The user or
1855//   role that is making the request must have at least one IAM permissions policy
1856//   attached that grants the required permissions. For more information, see
1857//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
1858//   in the IAM User Guide.
1859//
1860//   * InternalServerException
1861//   An internal failure in an Amazon service occurred.
1862//
1863//   * ResourceNotFoundException
1864//   A requested resource could not be found
1865//
1866//   * ThrottlingException
1867//   The request was denied due to a request throttling.
1868//
1869//   * ValidationException
1870//   Contains information about data passed in to a field during a request that
1871//   is not valid.
1872//
1873// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/ListRecommendations
1874func (c *DevOpsGuru) ListRecommendations(input *ListRecommendationsInput) (*ListRecommendationsOutput, error) {
1875	req, out := c.ListRecommendationsRequest(input)
1876	return out, req.Send()
1877}
1878
1879// ListRecommendationsWithContext is the same as ListRecommendations with the addition of
1880// the ability to pass a context and additional request options.
1881//
1882// See ListRecommendations for details on how to use this API operation.
1883//
1884// The context must be non-nil and will be used for request cancellation. If
1885// the context is nil a panic will occur. In the future the SDK may create
1886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1887// for more information on using Contexts.
1888func (c *DevOpsGuru) ListRecommendationsWithContext(ctx aws.Context, input *ListRecommendationsInput, opts ...request.Option) (*ListRecommendationsOutput, error) {
1889	req, out := c.ListRecommendationsRequest(input)
1890	req.SetContext(ctx)
1891	req.ApplyOptions(opts...)
1892	return out, req.Send()
1893}
1894
1895// ListRecommendationsPages iterates over the pages of a ListRecommendations operation,
1896// calling the "fn" function with the response data for each page. To stop
1897// iterating, return false from the fn function.
1898//
1899// See ListRecommendations method for more information on how to use this operation.
1900//
1901// Note: This operation can generate multiple requests to a service.
1902//
1903//    // Example iterating over at most 3 pages of a ListRecommendations operation.
1904//    pageNum := 0
1905//    err := client.ListRecommendationsPages(params,
1906//        func(page *devopsguru.ListRecommendationsOutput, lastPage bool) bool {
1907//            pageNum++
1908//            fmt.Println(page)
1909//            return pageNum <= 3
1910//        })
1911//
1912func (c *DevOpsGuru) ListRecommendationsPages(input *ListRecommendationsInput, fn func(*ListRecommendationsOutput, bool) bool) error {
1913	return c.ListRecommendationsPagesWithContext(aws.BackgroundContext(), input, fn)
1914}
1915
1916// ListRecommendationsPagesWithContext same as ListRecommendationsPages except
1917// it takes a Context and allows setting request options on the pages.
1918//
1919// The context must be non-nil and will be used for request cancellation. If
1920// the context is nil a panic will occur. In the future the SDK may create
1921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1922// for more information on using Contexts.
1923func (c *DevOpsGuru) ListRecommendationsPagesWithContext(ctx aws.Context, input *ListRecommendationsInput, fn func(*ListRecommendationsOutput, bool) bool, opts ...request.Option) error {
1924	p := request.Pagination{
1925		NewRequest: func() (*request.Request, error) {
1926			var inCpy *ListRecommendationsInput
1927			if input != nil {
1928				tmp := *input
1929				inCpy = &tmp
1930			}
1931			req, _ := c.ListRecommendationsRequest(inCpy)
1932			req.SetContext(ctx)
1933			req.ApplyOptions(opts...)
1934			return req, nil
1935		},
1936	}
1937
1938	for p.Next() {
1939		if !fn(p.Page().(*ListRecommendationsOutput), !p.HasNextPage()) {
1940			break
1941		}
1942	}
1943
1944	return p.Err()
1945}
1946
1947const opPutFeedback = "PutFeedback"
1948
1949// PutFeedbackRequest generates a "aws/request.Request" representing the
1950// client's request for the PutFeedback operation. The "output" return
1951// value will be populated with the request's response once the request completes
1952// successfully.
1953//
1954// Use "Send" method on the returned Request to send the API call to the service.
1955// the "output" return value is not valid until after Send returns without error.
1956//
1957// See PutFeedback for more information on using the PutFeedback
1958// API call, and error handling.
1959//
1960// This method is useful when you want to inject custom logic or configuration
1961// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1962//
1963//
1964//    // Example sending a request using the PutFeedbackRequest method.
1965//    req, resp := client.PutFeedbackRequest(params)
1966//
1967//    err := req.Send()
1968//    if err == nil { // resp is now filled
1969//        fmt.Println(resp)
1970//    }
1971//
1972// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/PutFeedback
1973func (c *DevOpsGuru) PutFeedbackRequest(input *PutFeedbackInput) (req *request.Request, output *PutFeedbackOutput) {
1974	op := &request.Operation{
1975		Name:       opPutFeedback,
1976		HTTPMethod: "PUT",
1977		HTTPPath:   "/feedback",
1978	}
1979
1980	if input == nil {
1981		input = &PutFeedbackInput{}
1982	}
1983
1984	output = &PutFeedbackOutput{}
1985	req = c.newRequest(op, input, output)
1986	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1987	return
1988}
1989
1990// PutFeedback API operation for Amazon DevOps Guru.
1991//
1992// Collects customer feedback about the specified insight.
1993//
1994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1995// with awserr.Error's Code and Message methods to get detailed information about
1996// the error.
1997//
1998// See the AWS API reference guide for Amazon DevOps Guru's
1999// API operation PutFeedback for usage and error information.
2000//
2001// Returned Error Types:
2002//   * AccessDeniedException
2003//   You don't have permissions to perform the requested operation. The user or
2004//   role that is making the request must have at least one IAM permissions policy
2005//   attached that grants the required permissions. For more information, see
2006//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2007//   in the IAM User Guide.
2008//
2009//   * ConflictException
2010//   An exception that is thrown when a conflict occurs.
2011//
2012//   * InternalServerException
2013//   An internal failure in an Amazon service occurred.
2014//
2015//   * ResourceNotFoundException
2016//   A requested resource could not be found
2017//
2018//   * ThrottlingException
2019//   The request was denied due to a request throttling.
2020//
2021//   * ValidationException
2022//   Contains information about data passed in to a field during a request that
2023//   is not valid.
2024//
2025// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/PutFeedback
2026func (c *DevOpsGuru) PutFeedback(input *PutFeedbackInput) (*PutFeedbackOutput, error) {
2027	req, out := c.PutFeedbackRequest(input)
2028	return out, req.Send()
2029}
2030
2031// PutFeedbackWithContext is the same as PutFeedback with the addition of
2032// the ability to pass a context and additional request options.
2033//
2034// See PutFeedback for details on how to use this API operation.
2035//
2036// The context must be non-nil and will be used for request cancellation. If
2037// the context is nil a panic will occur. In the future the SDK may create
2038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2039// for more information on using Contexts.
2040func (c *DevOpsGuru) PutFeedbackWithContext(ctx aws.Context, input *PutFeedbackInput, opts ...request.Option) (*PutFeedbackOutput, error) {
2041	req, out := c.PutFeedbackRequest(input)
2042	req.SetContext(ctx)
2043	req.ApplyOptions(opts...)
2044	return out, req.Send()
2045}
2046
2047const opRemoveNotificationChannel = "RemoveNotificationChannel"
2048
2049// RemoveNotificationChannelRequest generates a "aws/request.Request" representing the
2050// client's request for the RemoveNotificationChannel operation. The "output" return
2051// value will be populated with the request's response once the request completes
2052// successfully.
2053//
2054// Use "Send" method on the returned Request to send the API call to the service.
2055// the "output" return value is not valid until after Send returns without error.
2056//
2057// See RemoveNotificationChannel for more information on using the RemoveNotificationChannel
2058// API call, and error handling.
2059//
2060// This method is useful when you want to inject custom logic or configuration
2061// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2062//
2063//
2064//    // Example sending a request using the RemoveNotificationChannelRequest method.
2065//    req, resp := client.RemoveNotificationChannelRequest(params)
2066//
2067//    err := req.Send()
2068//    if err == nil { // resp is now filled
2069//        fmt.Println(resp)
2070//    }
2071//
2072// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/RemoveNotificationChannel
2073func (c *DevOpsGuru) RemoveNotificationChannelRequest(input *RemoveNotificationChannelInput) (req *request.Request, output *RemoveNotificationChannelOutput) {
2074	op := &request.Operation{
2075		Name:       opRemoveNotificationChannel,
2076		HTTPMethod: "DELETE",
2077		HTTPPath:   "/channels/{Id}",
2078	}
2079
2080	if input == nil {
2081		input = &RemoveNotificationChannelInput{}
2082	}
2083
2084	output = &RemoveNotificationChannelOutput{}
2085	req = c.newRequest(op, input, output)
2086	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2087	return
2088}
2089
2090// RemoveNotificationChannel API operation for Amazon DevOps Guru.
2091//
2092// Removes a notification channel from DevOps Guru. A notification channel is
2093// used to notify you when DevOps Guru generates an insight that contains information
2094// about how to improve your operations.
2095//
2096// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2097// with awserr.Error's Code and Message methods to get detailed information about
2098// the error.
2099//
2100// See the AWS API reference guide for Amazon DevOps Guru's
2101// API operation RemoveNotificationChannel for usage and error information.
2102//
2103// Returned Error Types:
2104//   * AccessDeniedException
2105//   You don't have permissions to perform the requested operation. The user or
2106//   role that is making the request must have at least one IAM permissions policy
2107//   attached that grants the required permissions. For more information, see
2108//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2109//   in the IAM User Guide.
2110//
2111//   * ConflictException
2112//   An exception that is thrown when a conflict occurs.
2113//
2114//   * InternalServerException
2115//   An internal failure in an Amazon service occurred.
2116//
2117//   * ResourceNotFoundException
2118//   A requested resource could not be found
2119//
2120//   * ThrottlingException
2121//   The request was denied due to a request throttling.
2122//
2123//   * ValidationException
2124//   Contains information about data passed in to a field during a request that
2125//   is not valid.
2126//
2127// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/RemoveNotificationChannel
2128func (c *DevOpsGuru) RemoveNotificationChannel(input *RemoveNotificationChannelInput) (*RemoveNotificationChannelOutput, error) {
2129	req, out := c.RemoveNotificationChannelRequest(input)
2130	return out, req.Send()
2131}
2132
2133// RemoveNotificationChannelWithContext is the same as RemoveNotificationChannel with the addition of
2134// the ability to pass a context and additional request options.
2135//
2136// See RemoveNotificationChannel for details on how to use this API operation.
2137//
2138// The context must be non-nil and will be used for request cancellation. If
2139// the context is nil a panic will occur. In the future the SDK may create
2140// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2141// for more information on using Contexts.
2142func (c *DevOpsGuru) RemoveNotificationChannelWithContext(ctx aws.Context, input *RemoveNotificationChannelInput, opts ...request.Option) (*RemoveNotificationChannelOutput, error) {
2143	req, out := c.RemoveNotificationChannelRequest(input)
2144	req.SetContext(ctx)
2145	req.ApplyOptions(opts...)
2146	return out, req.Send()
2147}
2148
2149const opSearchInsights = "SearchInsights"
2150
2151// SearchInsightsRequest generates a "aws/request.Request" representing the
2152// client's request for the SearchInsights operation. The "output" return
2153// value will be populated with the request's response once the request completes
2154// successfully.
2155//
2156// Use "Send" method on the returned Request to send the API call to the service.
2157// the "output" return value is not valid until after Send returns without error.
2158//
2159// See SearchInsights for more information on using the SearchInsights
2160// API call, and error handling.
2161//
2162// This method is useful when you want to inject custom logic or configuration
2163// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2164//
2165//
2166//    // Example sending a request using the SearchInsightsRequest method.
2167//    req, resp := client.SearchInsightsRequest(params)
2168//
2169//    err := req.Send()
2170//    if err == nil { // resp is now filled
2171//        fmt.Println(resp)
2172//    }
2173//
2174// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/SearchInsights
2175func (c *DevOpsGuru) SearchInsightsRequest(input *SearchInsightsInput) (req *request.Request, output *SearchInsightsOutput) {
2176	op := &request.Operation{
2177		Name:       opSearchInsights,
2178		HTTPMethod: "POST",
2179		HTTPPath:   "/insights/search",
2180		Paginator: &request.Paginator{
2181			InputTokens:     []string{"NextToken"},
2182			OutputTokens:    []string{"NextToken"},
2183			LimitToken:      "MaxResults",
2184			TruncationToken: "",
2185		},
2186	}
2187
2188	if input == nil {
2189		input = &SearchInsightsInput{}
2190	}
2191
2192	output = &SearchInsightsOutput{}
2193	req = c.newRequest(op, input, output)
2194	return
2195}
2196
2197// SearchInsights API operation for Amazon DevOps Guru.
2198//
2199// Returns a list of insights in your AWS account. You can specify which insights
2200// are returned by their start time, one or more statuses (ONGOING, CLOSED,
2201// and CLOSED), one or more severities (LOW, MEDIUM, and HIGH), and type (REACTIVE
2202// or PROACTIVE).
2203//
2204// Use the Filters parameter to specify status and severity search parameters.
2205// Use the Type parameter to specify REACTIVE or PROACTIVE in your search.
2206//
2207// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2208// with awserr.Error's Code and Message methods to get detailed information about
2209// the error.
2210//
2211// See the AWS API reference guide for Amazon DevOps Guru's
2212// API operation SearchInsights for usage and error information.
2213//
2214// Returned Error Types:
2215//   * AccessDeniedException
2216//   You don't have permissions to perform the requested operation. The user or
2217//   role that is making the request must have at least one IAM permissions policy
2218//   attached that grants the required permissions. For more information, see
2219//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2220//   in the IAM User Guide.
2221//
2222//   * InternalServerException
2223//   An internal failure in an Amazon service occurred.
2224//
2225//   * ThrottlingException
2226//   The request was denied due to a request throttling.
2227//
2228//   * ValidationException
2229//   Contains information about data passed in to a field during a request that
2230//   is not valid.
2231//
2232// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/SearchInsights
2233func (c *DevOpsGuru) SearchInsights(input *SearchInsightsInput) (*SearchInsightsOutput, error) {
2234	req, out := c.SearchInsightsRequest(input)
2235	return out, req.Send()
2236}
2237
2238// SearchInsightsWithContext is the same as SearchInsights with the addition of
2239// the ability to pass a context and additional request options.
2240//
2241// See SearchInsights for details on how to use this API operation.
2242//
2243// The context must be non-nil and will be used for request cancellation. If
2244// the context is nil a panic will occur. In the future the SDK may create
2245// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2246// for more information on using Contexts.
2247func (c *DevOpsGuru) SearchInsightsWithContext(ctx aws.Context, input *SearchInsightsInput, opts ...request.Option) (*SearchInsightsOutput, error) {
2248	req, out := c.SearchInsightsRequest(input)
2249	req.SetContext(ctx)
2250	req.ApplyOptions(opts...)
2251	return out, req.Send()
2252}
2253
2254// SearchInsightsPages iterates over the pages of a SearchInsights operation,
2255// calling the "fn" function with the response data for each page. To stop
2256// iterating, return false from the fn function.
2257//
2258// See SearchInsights method for more information on how to use this operation.
2259//
2260// Note: This operation can generate multiple requests to a service.
2261//
2262//    // Example iterating over at most 3 pages of a SearchInsights operation.
2263//    pageNum := 0
2264//    err := client.SearchInsightsPages(params,
2265//        func(page *devopsguru.SearchInsightsOutput, lastPage bool) bool {
2266//            pageNum++
2267//            fmt.Println(page)
2268//            return pageNum <= 3
2269//        })
2270//
2271func (c *DevOpsGuru) SearchInsightsPages(input *SearchInsightsInput, fn func(*SearchInsightsOutput, bool) bool) error {
2272	return c.SearchInsightsPagesWithContext(aws.BackgroundContext(), input, fn)
2273}
2274
2275// SearchInsightsPagesWithContext same as SearchInsightsPages except
2276// it takes a Context and allows setting request options on the pages.
2277//
2278// The context must be non-nil and will be used for request cancellation. If
2279// the context is nil a panic will occur. In the future the SDK may create
2280// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2281// for more information on using Contexts.
2282func (c *DevOpsGuru) SearchInsightsPagesWithContext(ctx aws.Context, input *SearchInsightsInput, fn func(*SearchInsightsOutput, bool) bool, opts ...request.Option) error {
2283	p := request.Pagination{
2284		NewRequest: func() (*request.Request, error) {
2285			var inCpy *SearchInsightsInput
2286			if input != nil {
2287				tmp := *input
2288				inCpy = &tmp
2289			}
2290			req, _ := c.SearchInsightsRequest(inCpy)
2291			req.SetContext(ctx)
2292			req.ApplyOptions(opts...)
2293			return req, nil
2294		},
2295	}
2296
2297	for p.Next() {
2298		if !fn(p.Page().(*SearchInsightsOutput), !p.HasNextPage()) {
2299			break
2300		}
2301	}
2302
2303	return p.Err()
2304}
2305
2306const opStartCostEstimation = "StartCostEstimation"
2307
2308// StartCostEstimationRequest generates a "aws/request.Request" representing the
2309// client's request for the StartCostEstimation operation. The "output" return
2310// value will be populated with the request's response once the request completes
2311// successfully.
2312//
2313// Use "Send" method on the returned Request to send the API call to the service.
2314// the "output" return value is not valid until after Send returns without error.
2315//
2316// See StartCostEstimation for more information on using the StartCostEstimation
2317// API call, and error handling.
2318//
2319// This method is useful when you want to inject custom logic or configuration
2320// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2321//
2322//
2323//    // Example sending a request using the StartCostEstimationRequest method.
2324//    req, resp := client.StartCostEstimationRequest(params)
2325//
2326//    err := req.Send()
2327//    if err == nil { // resp is now filled
2328//        fmt.Println(resp)
2329//    }
2330//
2331// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/StartCostEstimation
2332func (c *DevOpsGuru) StartCostEstimationRequest(input *StartCostEstimationInput) (req *request.Request, output *StartCostEstimationOutput) {
2333	op := &request.Operation{
2334		Name:       opStartCostEstimation,
2335		HTTPMethod: "PUT",
2336		HTTPPath:   "/cost-estimation",
2337	}
2338
2339	if input == nil {
2340		input = &StartCostEstimationInput{}
2341	}
2342
2343	output = &StartCostEstimationOutput{}
2344	req = c.newRequest(op, input, output)
2345	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2346	return
2347}
2348
2349// StartCostEstimation API operation for Amazon DevOps Guru.
2350//
2351// Starts the creation of an estimate of the monthly cost to analyze your AWS
2352// resources.
2353//
2354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2355// with awserr.Error's Code and Message methods to get detailed information about
2356// the error.
2357//
2358// See the AWS API reference guide for Amazon DevOps Guru's
2359// API operation StartCostEstimation for usage and error information.
2360//
2361// Returned Error Types:
2362//   * AccessDeniedException
2363//   You don't have permissions to perform the requested operation. The user or
2364//   role that is making the request must have at least one IAM permissions policy
2365//   attached that grants the required permissions. For more information, see
2366//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2367//   in the IAM User Guide.
2368//
2369//   * ConflictException
2370//   An exception that is thrown when a conflict occurs.
2371//
2372//   * InternalServerException
2373//   An internal failure in an Amazon service occurred.
2374//
2375//   * ResourceNotFoundException
2376//   A requested resource could not be found
2377//
2378//   * ThrottlingException
2379//   The request was denied due to a request throttling.
2380//
2381//   * ValidationException
2382//   Contains information about data passed in to a field during a request that
2383//   is not valid.
2384//
2385// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/StartCostEstimation
2386func (c *DevOpsGuru) StartCostEstimation(input *StartCostEstimationInput) (*StartCostEstimationOutput, error) {
2387	req, out := c.StartCostEstimationRequest(input)
2388	return out, req.Send()
2389}
2390
2391// StartCostEstimationWithContext is the same as StartCostEstimation with the addition of
2392// the ability to pass a context and additional request options.
2393//
2394// See StartCostEstimation for details on how to use this API operation.
2395//
2396// The context must be non-nil and will be used for request cancellation. If
2397// the context is nil a panic will occur. In the future the SDK may create
2398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2399// for more information on using Contexts.
2400func (c *DevOpsGuru) StartCostEstimationWithContext(ctx aws.Context, input *StartCostEstimationInput, opts ...request.Option) (*StartCostEstimationOutput, error) {
2401	req, out := c.StartCostEstimationRequest(input)
2402	req.SetContext(ctx)
2403	req.ApplyOptions(opts...)
2404	return out, req.Send()
2405}
2406
2407const opUpdateResourceCollection = "UpdateResourceCollection"
2408
2409// UpdateResourceCollectionRequest generates a "aws/request.Request" representing the
2410// client's request for the UpdateResourceCollection operation. The "output" return
2411// value will be populated with the request's response once the request completes
2412// successfully.
2413//
2414// Use "Send" method on the returned Request to send the API call to the service.
2415// the "output" return value is not valid until after Send returns without error.
2416//
2417// See UpdateResourceCollection for more information on using the UpdateResourceCollection
2418// API call, and error handling.
2419//
2420// This method is useful when you want to inject custom logic or configuration
2421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2422//
2423//
2424//    // Example sending a request using the UpdateResourceCollectionRequest method.
2425//    req, resp := client.UpdateResourceCollectionRequest(params)
2426//
2427//    err := req.Send()
2428//    if err == nil { // resp is now filled
2429//        fmt.Println(resp)
2430//    }
2431//
2432// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/UpdateResourceCollection
2433func (c *DevOpsGuru) UpdateResourceCollectionRequest(input *UpdateResourceCollectionInput) (req *request.Request, output *UpdateResourceCollectionOutput) {
2434	op := &request.Operation{
2435		Name:       opUpdateResourceCollection,
2436		HTTPMethod: "PUT",
2437		HTTPPath:   "/resource-collections",
2438	}
2439
2440	if input == nil {
2441		input = &UpdateResourceCollectionInput{}
2442	}
2443
2444	output = &UpdateResourceCollectionOutput{}
2445	req = c.newRequest(op, input, output)
2446	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2447	return
2448}
2449
2450// UpdateResourceCollection API operation for Amazon DevOps Guru.
2451//
2452// Updates the collection of resources that DevOps Guru analyzes. The one type
2453// of AWS resource collection supported is AWS CloudFormation stacks. DevOps
2454// Guru can be configured to analyze only the AWS resources that are defined
2455// in the stacks. You can specify up to 500 AWS CloudFormation stacks. This
2456// method also creates the IAM role required for you to use DevOps Guru.
2457//
2458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2459// with awserr.Error's Code and Message methods to get detailed information about
2460// the error.
2461//
2462// See the AWS API reference guide for Amazon DevOps Guru's
2463// API operation UpdateResourceCollection for usage and error information.
2464//
2465// Returned Error Types:
2466//   * AccessDeniedException
2467//   You don't have permissions to perform the requested operation. The user or
2468//   role that is making the request must have at least one IAM permissions policy
2469//   attached that grants the required permissions. For more information, see
2470//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2471//   in the IAM User Guide.
2472//
2473//   * ConflictException
2474//   An exception that is thrown when a conflict occurs.
2475//
2476//   * InternalServerException
2477//   An internal failure in an Amazon service occurred.
2478//
2479//   * ThrottlingException
2480//   The request was denied due to a request throttling.
2481//
2482//   * ValidationException
2483//   Contains information about data passed in to a field during a request that
2484//   is not valid.
2485//
2486// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/UpdateResourceCollection
2487func (c *DevOpsGuru) UpdateResourceCollection(input *UpdateResourceCollectionInput) (*UpdateResourceCollectionOutput, error) {
2488	req, out := c.UpdateResourceCollectionRequest(input)
2489	return out, req.Send()
2490}
2491
2492// UpdateResourceCollectionWithContext is the same as UpdateResourceCollection with the addition of
2493// the ability to pass a context and additional request options.
2494//
2495// See UpdateResourceCollection for details on how to use this API operation.
2496//
2497// The context must be non-nil and will be used for request cancellation. If
2498// the context is nil a panic will occur. In the future the SDK may create
2499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2500// for more information on using Contexts.
2501func (c *DevOpsGuru) UpdateResourceCollectionWithContext(ctx aws.Context, input *UpdateResourceCollectionInput, opts ...request.Option) (*UpdateResourceCollectionOutput, error) {
2502	req, out := c.UpdateResourceCollectionRequest(input)
2503	req.SetContext(ctx)
2504	req.ApplyOptions(opts...)
2505	return out, req.Send()
2506}
2507
2508const opUpdateServiceIntegration = "UpdateServiceIntegration"
2509
2510// UpdateServiceIntegrationRequest generates a "aws/request.Request" representing the
2511// client's request for the UpdateServiceIntegration operation. The "output" return
2512// value will be populated with the request's response once the request completes
2513// successfully.
2514//
2515// Use "Send" method on the returned Request to send the API call to the service.
2516// the "output" return value is not valid until after Send returns without error.
2517//
2518// See UpdateServiceIntegration for more information on using the UpdateServiceIntegration
2519// API call, and error handling.
2520//
2521// This method is useful when you want to inject custom logic or configuration
2522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2523//
2524//
2525//    // Example sending a request using the UpdateServiceIntegrationRequest method.
2526//    req, resp := client.UpdateServiceIntegrationRequest(params)
2527//
2528//    err := req.Send()
2529//    if err == nil { // resp is now filled
2530//        fmt.Println(resp)
2531//    }
2532//
2533// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/UpdateServiceIntegration
2534func (c *DevOpsGuru) UpdateServiceIntegrationRequest(input *UpdateServiceIntegrationInput) (req *request.Request, output *UpdateServiceIntegrationOutput) {
2535	op := &request.Operation{
2536		Name:       opUpdateServiceIntegration,
2537		HTTPMethod: "PUT",
2538		HTTPPath:   "/service-integrations",
2539	}
2540
2541	if input == nil {
2542		input = &UpdateServiceIntegrationInput{}
2543	}
2544
2545	output = &UpdateServiceIntegrationOutput{}
2546	req = c.newRequest(op, input, output)
2547	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2548	return
2549}
2550
2551// UpdateServiceIntegration API operation for Amazon DevOps Guru.
2552//
2553// Enables or disables integration with a service that can be integrated with
2554// DevOps Guru. The one service that can be integrated with DevOps Guru is AWS
2555// Systems Manager, which can be used to create an OpsItem for each generated
2556// insight.
2557//
2558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2559// with awserr.Error's Code and Message methods to get detailed information about
2560// the error.
2561//
2562// See the AWS API reference guide for Amazon DevOps Guru's
2563// API operation UpdateServiceIntegration for usage and error information.
2564//
2565// Returned Error Types:
2566//   * AccessDeniedException
2567//   You don't have permissions to perform the requested operation. The user or
2568//   role that is making the request must have at least one IAM permissions policy
2569//   attached that grants the required permissions. For more information, see
2570//   Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2571//   in the IAM User Guide.
2572//
2573//   * ConflictException
2574//   An exception that is thrown when a conflict occurs.
2575//
2576//   * InternalServerException
2577//   An internal failure in an Amazon service occurred.
2578//
2579//   * ThrottlingException
2580//   The request was denied due to a request throttling.
2581//
2582//   * ValidationException
2583//   Contains information about data passed in to a field during a request that
2584//   is not valid.
2585//
2586// See also, https://docs.aws.amazon.com/goto/WebAPI/devops-guru-2020-12-01/UpdateServiceIntegration
2587func (c *DevOpsGuru) UpdateServiceIntegration(input *UpdateServiceIntegrationInput) (*UpdateServiceIntegrationOutput, error) {
2588	req, out := c.UpdateServiceIntegrationRequest(input)
2589	return out, req.Send()
2590}
2591
2592// UpdateServiceIntegrationWithContext is the same as UpdateServiceIntegration with the addition of
2593// the ability to pass a context and additional request options.
2594//
2595// See UpdateServiceIntegration for details on how to use this API operation.
2596//
2597// The context must be non-nil and will be used for request cancellation. If
2598// the context is nil a panic will occur. In the future the SDK may create
2599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2600// for more information on using Contexts.
2601func (c *DevOpsGuru) UpdateServiceIntegrationWithContext(ctx aws.Context, input *UpdateServiceIntegrationInput, opts ...request.Option) (*UpdateServiceIntegrationOutput, error) {
2602	req, out := c.UpdateServiceIntegrationRequest(input)
2603	req.SetContext(ctx)
2604	req.ApplyOptions(opts...)
2605	return out, req.Send()
2606}
2607
2608// You don't have permissions to perform the requested operation. The user or
2609// role that is making the request must have at least one IAM permissions policy
2610// attached that grants the required permissions. For more information, see
2611// Access Management (https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)
2612// in the IAM User Guide.
2613type AccessDeniedException struct {
2614	_            struct{}                  `type:"structure"`
2615	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2616
2617	Message_ *string `locationName:"Message" type:"string"`
2618}
2619
2620// String returns the string representation.
2621//
2622// API parameter values that are decorated as "sensitive" in the API will not
2623// be included in the string output. The member name will be present, but the
2624// value will be replaced with "sensitive".
2625func (s AccessDeniedException) String() string {
2626	return awsutil.Prettify(s)
2627}
2628
2629// GoString returns the string representation.
2630//
2631// API parameter values that are decorated as "sensitive" in the API will not
2632// be included in the string output. The member name will be present, but the
2633// value will be replaced with "sensitive".
2634func (s AccessDeniedException) GoString() string {
2635	return s.String()
2636}
2637
2638func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
2639	return &AccessDeniedException{
2640		RespMetadata: v,
2641	}
2642}
2643
2644// Code returns the exception type name.
2645func (s *AccessDeniedException) Code() string {
2646	return "AccessDeniedException"
2647}
2648
2649// Message returns the exception's message.
2650func (s *AccessDeniedException) Message() string {
2651	if s.Message_ != nil {
2652		return *s.Message_
2653	}
2654	return ""
2655}
2656
2657// OrigErr always returns nil, satisfies awserr.Error interface.
2658func (s *AccessDeniedException) OrigErr() error {
2659	return nil
2660}
2661
2662func (s *AccessDeniedException) Error() string {
2663	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2664}
2665
2666// Status code returns the HTTP status code for the request's response error.
2667func (s *AccessDeniedException) StatusCode() int {
2668	return s.RespMetadata.StatusCode
2669}
2670
2671// RequestID returns the service's response RequestID for request.
2672func (s *AccessDeniedException) RequestID() string {
2673	return s.RespMetadata.RequestID
2674}
2675
2676type AddNotificationChannelInput struct {
2677	_ struct{} `type:"structure"`
2678
2679	// A NotificationChannelConfig object that specifies what type of notification
2680	// channel to add. The one supported notification channel is Amazon Simple Notification
2681	// Service (Amazon SNS).
2682	//
2683	// Config is a required field
2684	Config *NotificationChannelConfig `type:"structure" required:"true"`
2685}
2686
2687// String returns the string representation.
2688//
2689// API parameter values that are decorated as "sensitive" in the API will not
2690// be included in the string output. The member name will be present, but the
2691// value will be replaced with "sensitive".
2692func (s AddNotificationChannelInput) String() string {
2693	return awsutil.Prettify(s)
2694}
2695
2696// GoString returns the string representation.
2697//
2698// API parameter values that are decorated as "sensitive" in the API will not
2699// be included in the string output. The member name will be present, but the
2700// value will be replaced with "sensitive".
2701func (s AddNotificationChannelInput) GoString() string {
2702	return s.String()
2703}
2704
2705// Validate inspects the fields of the type to determine if they are valid.
2706func (s *AddNotificationChannelInput) Validate() error {
2707	invalidParams := request.ErrInvalidParams{Context: "AddNotificationChannelInput"}
2708	if s.Config == nil {
2709		invalidParams.Add(request.NewErrParamRequired("Config"))
2710	}
2711	if s.Config != nil {
2712		if err := s.Config.Validate(); err != nil {
2713			invalidParams.AddNested("Config", err.(request.ErrInvalidParams))
2714		}
2715	}
2716
2717	if invalidParams.Len() > 0 {
2718		return invalidParams
2719	}
2720	return nil
2721}
2722
2723// SetConfig sets the Config field's value.
2724func (s *AddNotificationChannelInput) SetConfig(v *NotificationChannelConfig) *AddNotificationChannelInput {
2725	s.Config = v
2726	return s
2727}
2728
2729type AddNotificationChannelOutput struct {
2730	_ struct{} `type:"structure"`
2731
2732	// The ID of the added notification channel.
2733	//
2734	// Id is a required field
2735	Id *string `min:"36" type:"string" required:"true"`
2736}
2737
2738// String returns the string representation.
2739//
2740// API parameter values that are decorated as "sensitive" in the API will not
2741// be included in the string output. The member name will be present, but the
2742// value will be replaced with "sensitive".
2743func (s AddNotificationChannelOutput) String() string {
2744	return awsutil.Prettify(s)
2745}
2746
2747// GoString returns the string representation.
2748//
2749// API parameter values that are decorated as "sensitive" in the API will not
2750// be included in the string output. The member name will be present, but the
2751// value will be replaced with "sensitive".
2752func (s AddNotificationChannelOutput) GoString() string {
2753	return s.String()
2754}
2755
2756// SetId sets the Id field's value.
2757func (s *AddNotificationChannelOutput) SetId(v string) *AddNotificationChannelOutput {
2758	s.Id = &v
2759	return s
2760}
2761
2762// A time range that specifies when DevOps Guru opens and then closes an anomaly.
2763// This is different from AnomalyTimeRange, which specifies the time range when
2764// DevOps Guru actually observes the anomalous behavior.
2765type AnomalyReportedTimeRange struct {
2766	_ struct{} `type:"structure"`
2767
2768	// The time when an anomaly is closed.
2769	CloseTime *time.Time `type:"timestamp"`
2770
2771	// The time when an anomaly is opened.
2772	//
2773	// OpenTime is a required field
2774	OpenTime *time.Time `type:"timestamp" required:"true"`
2775}
2776
2777// String returns the string representation.
2778//
2779// API parameter values that are decorated as "sensitive" in the API will not
2780// be included in the string output. The member name will be present, but the
2781// value will be replaced with "sensitive".
2782func (s AnomalyReportedTimeRange) String() string {
2783	return awsutil.Prettify(s)
2784}
2785
2786// GoString returns the string representation.
2787//
2788// API parameter values that are decorated as "sensitive" in the API will not
2789// be included in the string output. The member name will be present, but the
2790// value will be replaced with "sensitive".
2791func (s AnomalyReportedTimeRange) GoString() string {
2792	return s.String()
2793}
2794
2795// SetCloseTime sets the CloseTime field's value.
2796func (s *AnomalyReportedTimeRange) SetCloseTime(v time.Time) *AnomalyReportedTimeRange {
2797	s.CloseTime = &v
2798	return s
2799}
2800
2801// SetOpenTime sets the OpenTime field's value.
2802func (s *AnomalyReportedTimeRange) SetOpenTime(v time.Time) *AnomalyReportedTimeRange {
2803	s.OpenTime = &v
2804	return s
2805}
2806
2807// Details about the source of the anomalous operational data that triggered
2808// the anomaly. The one supported source is Amazon CloudWatch metrics.
2809type AnomalySourceDetails struct {
2810	_ struct{} `type:"structure"`
2811
2812	// An array of CloudWatchMetricsDetail object that contains information about
2813	// the analyzed metrics that displayed anomalous behavior.
2814	CloudWatchMetrics []*CloudWatchMetricsDetail `type:"list"`
2815}
2816
2817// String returns the string representation.
2818//
2819// API parameter values that are decorated as "sensitive" in the API will not
2820// be included in the string output. The member name will be present, but the
2821// value will be replaced with "sensitive".
2822func (s AnomalySourceDetails) String() string {
2823	return awsutil.Prettify(s)
2824}
2825
2826// GoString returns the string representation.
2827//
2828// API parameter values that are decorated as "sensitive" in the API will not
2829// be included in the string output. The member name will be present, but the
2830// value will be replaced with "sensitive".
2831func (s AnomalySourceDetails) GoString() string {
2832	return s.String()
2833}
2834
2835// SetCloudWatchMetrics sets the CloudWatchMetrics field's value.
2836func (s *AnomalySourceDetails) SetCloudWatchMetrics(v []*CloudWatchMetricsDetail) *AnomalySourceDetails {
2837	s.CloudWatchMetrics = v
2838	return s
2839}
2840
2841// A time range that specifies when the observed unusual behavior in an anomaly
2842// started and ended. This is different from AnomalyReportedTimeRange, which
2843// specifies the time range when DevOps Guru opens and then closes an anomaly.
2844type AnomalyTimeRange struct {
2845	_ struct{} `type:"structure"`
2846
2847	// The time when the anomalous behavior ended.
2848	EndTime *time.Time `type:"timestamp"`
2849
2850	// The time when the anomalous behavior started.
2851	//
2852	// StartTime is a required field
2853	StartTime *time.Time `type:"timestamp" required:"true"`
2854}
2855
2856// String returns the string representation.
2857//
2858// API parameter values that are decorated as "sensitive" in the API will not
2859// be included in the string output. The member name will be present, but the
2860// value will be replaced with "sensitive".
2861func (s AnomalyTimeRange) String() string {
2862	return awsutil.Prettify(s)
2863}
2864
2865// GoString returns the string representation.
2866//
2867// API parameter values that are decorated as "sensitive" in the API will not
2868// be included in the string output. The member name will be present, but the
2869// value will be replaced with "sensitive".
2870func (s AnomalyTimeRange) GoString() string {
2871	return s.String()
2872}
2873
2874// SetEndTime sets the EndTime field's value.
2875func (s *AnomalyTimeRange) SetEndTime(v time.Time) *AnomalyTimeRange {
2876	s.EndTime = &v
2877	return s
2878}
2879
2880// SetStartTime sets the StartTime field's value.
2881func (s *AnomalyTimeRange) SetStartTime(v time.Time) *AnomalyTimeRange {
2882	s.StartTime = &v
2883	return s
2884}
2885
2886// Information about AWS CloudFormation stacks. You can use up to 500 stacks
2887// to specify which AWS resources in your account to analyze. For more information,
2888// see Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)
2889// in the AWS CloudFormation User Guide.
2890type CloudFormationCollection struct {
2891	_ struct{} `type:"structure"`
2892
2893	// An array of CloudFormation stack names.
2894	StackNames []*string `type:"list"`
2895}
2896
2897// String returns the string representation.
2898//
2899// API parameter values that are decorated as "sensitive" in the API will not
2900// be included in the string output. The member name will be present, but the
2901// value will be replaced with "sensitive".
2902func (s CloudFormationCollection) String() string {
2903	return awsutil.Prettify(s)
2904}
2905
2906// GoString returns the string representation.
2907//
2908// API parameter values that are decorated as "sensitive" in the API will not
2909// be included in the string output. The member name will be present, but the
2910// value will be replaced with "sensitive".
2911func (s CloudFormationCollection) GoString() string {
2912	return s.String()
2913}
2914
2915// SetStackNames sets the StackNames field's value.
2916func (s *CloudFormationCollection) SetStackNames(v []*string) *CloudFormationCollection {
2917	s.StackNames = v
2918	return s
2919}
2920
2921// Information about AWS CloudFormation stacks. You can use up to 500 stacks
2922// to specify which AWS resources in your account to analyze. For more information,
2923// see Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)
2924// in the AWS CloudFormation User Guide.
2925type CloudFormationCollectionFilter struct {
2926	_ struct{} `type:"structure"`
2927
2928	// An array of CloudFormation stack names.
2929	StackNames []*string `type:"list"`
2930}
2931
2932// String returns the string representation.
2933//
2934// API parameter values that are decorated as "sensitive" in the API will not
2935// be included in the string output. The member name will be present, but the
2936// value will be replaced with "sensitive".
2937func (s CloudFormationCollectionFilter) String() string {
2938	return awsutil.Prettify(s)
2939}
2940
2941// GoString returns the string representation.
2942//
2943// API parameter values that are decorated as "sensitive" in the API will not
2944// be included in the string output. The member name will be present, but the
2945// value will be replaced with "sensitive".
2946func (s CloudFormationCollectionFilter) GoString() string {
2947	return s.String()
2948}
2949
2950// SetStackNames sets the StackNames field's value.
2951func (s *CloudFormationCollectionFilter) SetStackNames(v []*string) *CloudFormationCollectionFilter {
2952	s.StackNames = v
2953	return s
2954}
2955
2956// Information about an AWS CloudFormation stack used to create a monthly cost
2957// estimate for DevOps Guru to analyze AWS resources. The maximum number of
2958// stacks you can specify for a cost estimate is one. The estimate created is
2959// for the cost to analyze the AWS resources defined by the stack. For more
2960// information, see Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)
2961// in the AWS CloudFormation User Guide.
2962type CloudFormationCostEstimationResourceCollectionFilter struct {
2963	_ struct{} `type:"structure"`
2964
2965	// An array of CloudFormation stack names. Its size is fixed at 1 item.
2966	StackNames []*string `min:"1" type:"list"`
2967}
2968
2969// String returns the string representation.
2970//
2971// API parameter values that are decorated as "sensitive" in the API will not
2972// be included in the string output. The member name will be present, but the
2973// value will be replaced with "sensitive".
2974func (s CloudFormationCostEstimationResourceCollectionFilter) String() string {
2975	return awsutil.Prettify(s)
2976}
2977
2978// GoString returns the string representation.
2979//
2980// API parameter values that are decorated as "sensitive" in the API will not
2981// be included in the string output. The member name will be present, but the
2982// value will be replaced with "sensitive".
2983func (s CloudFormationCostEstimationResourceCollectionFilter) GoString() string {
2984	return s.String()
2985}
2986
2987// Validate inspects the fields of the type to determine if they are valid.
2988func (s *CloudFormationCostEstimationResourceCollectionFilter) Validate() error {
2989	invalidParams := request.ErrInvalidParams{Context: "CloudFormationCostEstimationResourceCollectionFilter"}
2990	if s.StackNames != nil && len(s.StackNames) < 1 {
2991		invalidParams.Add(request.NewErrParamMinLen("StackNames", 1))
2992	}
2993
2994	if invalidParams.Len() > 0 {
2995		return invalidParams
2996	}
2997	return nil
2998}
2999
3000// SetStackNames sets the StackNames field's value.
3001func (s *CloudFormationCostEstimationResourceCollectionFilter) SetStackNames(v []*string) *CloudFormationCostEstimationResourceCollectionFilter {
3002	s.StackNames = v
3003	return s
3004}
3005
3006// Information about the health of AWS resources in your account that are specified
3007// by an AWS CloudFormation stack.
3008type CloudFormationHealth struct {
3009	_ struct{} `type:"structure"`
3010
3011	// Information about the health of the AWS resources in your account that are
3012	// specified by an AWS CloudFormation stack, including the number of open proactive,
3013	// open reactive insights, and the Mean Time to Recover (MTTR) of closed insights.
3014	Insight *InsightHealth `type:"structure"`
3015
3016	// The name of the CloudFormation stack.
3017	StackName *string `min:"1" type:"string"`
3018}
3019
3020// String returns the string representation.
3021//
3022// API parameter values that are decorated as "sensitive" in the API will not
3023// be included in the string output. The member name will be present, but the
3024// value will be replaced with "sensitive".
3025func (s CloudFormationHealth) String() string {
3026	return awsutil.Prettify(s)
3027}
3028
3029// GoString returns the string representation.
3030//
3031// API parameter values that are decorated as "sensitive" in the API will not
3032// be included in the string output. The member name will be present, but the
3033// value will be replaced with "sensitive".
3034func (s CloudFormationHealth) GoString() string {
3035	return s.String()
3036}
3037
3038// SetInsight sets the Insight field's value.
3039func (s *CloudFormationHealth) SetInsight(v *InsightHealth) *CloudFormationHealth {
3040	s.Insight = v
3041	return s
3042}
3043
3044// SetStackName sets the StackName field's value.
3045func (s *CloudFormationHealth) SetStackName(v string) *CloudFormationHealth {
3046	s.StackName = &v
3047	return s
3048}
3049
3050// Information about an Amazon CloudWatch metric.
3051type CloudWatchMetricsDetail struct {
3052	_ struct{} `type:"structure"`
3053
3054	// An array of CloudWatch dimensions associated with
3055	Dimensions []*CloudWatchMetricsDimension `type:"list"`
3056
3057	// The name of the CloudWatch metric.
3058	MetricName *string `type:"string"`
3059
3060	// The namespace of the CloudWatch metric. A namespace is a container for CloudWatch
3061	// metrics.
3062	Namespace *string `type:"string"`
3063
3064	// The length of time associated with the CloudWatch metric in number of seconds.
3065	Period *int64 `type:"integer"`
3066
3067	// The type of statistic associated with the CloudWatch metric. For more information,
3068	// see Statistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic)
3069	// in the Amazon CloudWatch User Guide.
3070	Stat *string `type:"string" enum:"CloudWatchMetricsStat"`
3071
3072	// The unit of measure used for the CloudWatch metric. For example, Bytes, Seconds,
3073	// Count, and Percent.
3074	Unit *string `type:"string"`
3075}
3076
3077// String returns the string representation.
3078//
3079// API parameter values that are decorated as "sensitive" in the API will not
3080// be included in the string output. The member name will be present, but the
3081// value will be replaced with "sensitive".
3082func (s CloudWatchMetricsDetail) String() string {
3083	return awsutil.Prettify(s)
3084}
3085
3086// GoString returns the string representation.
3087//
3088// API parameter values that are decorated as "sensitive" in the API will not
3089// be included in the string output. The member name will be present, but the
3090// value will be replaced with "sensitive".
3091func (s CloudWatchMetricsDetail) GoString() string {
3092	return s.String()
3093}
3094
3095// SetDimensions sets the Dimensions field's value.
3096func (s *CloudWatchMetricsDetail) SetDimensions(v []*CloudWatchMetricsDimension) *CloudWatchMetricsDetail {
3097	s.Dimensions = v
3098	return s
3099}
3100
3101// SetMetricName sets the MetricName field's value.
3102func (s *CloudWatchMetricsDetail) SetMetricName(v string) *CloudWatchMetricsDetail {
3103	s.MetricName = &v
3104	return s
3105}
3106
3107// SetNamespace sets the Namespace field's value.
3108func (s *CloudWatchMetricsDetail) SetNamespace(v string) *CloudWatchMetricsDetail {
3109	s.Namespace = &v
3110	return s
3111}
3112
3113// SetPeriod sets the Period field's value.
3114func (s *CloudWatchMetricsDetail) SetPeriod(v int64) *CloudWatchMetricsDetail {
3115	s.Period = &v
3116	return s
3117}
3118
3119// SetStat sets the Stat field's value.
3120func (s *CloudWatchMetricsDetail) SetStat(v string) *CloudWatchMetricsDetail {
3121	s.Stat = &v
3122	return s
3123}
3124
3125// SetUnit sets the Unit field's value.
3126func (s *CloudWatchMetricsDetail) SetUnit(v string) *CloudWatchMetricsDetail {
3127	s.Unit = &v
3128	return s
3129}
3130
3131// The dimension of a Amazon CloudWatch metric that is used when DevOps Guru
3132// analyzes the resources in your account for operational problems and anomalous
3133// behavior. A dimension is a name/value pair that is part of the identity of
3134// a metric. A metric can have up to 10 dimensions. For more information, see
3135// Dimensions (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Dimension)
3136// in the Amazon CloudWatch User Guide.
3137type CloudWatchMetricsDimension struct {
3138	_ struct{} `type:"structure"`
3139
3140	// The name of the CloudWatch dimension.
3141	Name *string `type:"string"`
3142
3143	// The value of the CloudWatch dimension.
3144	Value *string `type:"string"`
3145}
3146
3147// String returns the string representation.
3148//
3149// API parameter values that are decorated as "sensitive" in the API will not
3150// be included in the string output. The member name will be present, but the
3151// value will be replaced with "sensitive".
3152func (s CloudWatchMetricsDimension) String() string {
3153	return awsutil.Prettify(s)
3154}
3155
3156// GoString returns the string representation.
3157//
3158// API parameter values that are decorated as "sensitive" in the API will not
3159// be included in the string output. The member name will be present, but the
3160// value will be replaced with "sensitive".
3161func (s CloudWatchMetricsDimension) GoString() string {
3162	return s.String()
3163}
3164
3165// SetName sets the Name field's value.
3166func (s *CloudWatchMetricsDimension) SetName(v string) *CloudWatchMetricsDimension {
3167	s.Name = &v
3168	return s
3169}
3170
3171// SetValue sets the Value field's value.
3172func (s *CloudWatchMetricsDimension) SetValue(v string) *CloudWatchMetricsDimension {
3173	s.Value = &v
3174	return s
3175}
3176
3177// An exception that is thrown when a conflict occurs.
3178type ConflictException struct {
3179	_            struct{}                  `type:"structure"`
3180	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3181
3182	Message_ *string `locationName:"Message" type:"string"`
3183
3184	// The ID of the AWS resource in which a conflict occurred.
3185	//
3186	// ResourceId is a required field
3187	ResourceId *string `type:"string" required:"true"`
3188
3189	// The type of the AWS resource in which a conflict occurred.
3190	//
3191	// ResourceType is a required field
3192	ResourceType *string `type:"string" required:"true"`
3193}
3194
3195// String returns the string representation.
3196//
3197// API parameter values that are decorated as "sensitive" in the API will not
3198// be included in the string output. The member name will be present, but the
3199// value will be replaced with "sensitive".
3200func (s ConflictException) String() string {
3201	return awsutil.Prettify(s)
3202}
3203
3204// GoString returns the string representation.
3205//
3206// API parameter values that are decorated as "sensitive" in the API will not
3207// be included in the string output. The member name will be present, but the
3208// value will be replaced with "sensitive".
3209func (s ConflictException) GoString() string {
3210	return s.String()
3211}
3212
3213func newErrorConflictException(v protocol.ResponseMetadata) error {
3214	return &ConflictException{
3215		RespMetadata: v,
3216	}
3217}
3218
3219// Code returns the exception type name.
3220func (s *ConflictException) Code() string {
3221	return "ConflictException"
3222}
3223
3224// Message returns the exception's message.
3225func (s *ConflictException) Message() string {
3226	if s.Message_ != nil {
3227		return *s.Message_
3228	}
3229	return ""
3230}
3231
3232// OrigErr always returns nil, satisfies awserr.Error interface.
3233func (s *ConflictException) OrigErr() error {
3234	return nil
3235}
3236
3237func (s *ConflictException) Error() string {
3238	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
3239}
3240
3241// Status code returns the HTTP status code for the request's response error.
3242func (s *ConflictException) StatusCode() int {
3243	return s.RespMetadata.StatusCode
3244}
3245
3246// RequestID returns the service's response RequestID for request.
3247func (s *ConflictException) RequestID() string {
3248	return s.RespMetadata.RequestID
3249}
3250
3251// Information about a filter used to specify which AWS resources are analyzed
3252// to create a monthly DevOps Guru cost estimate. For more information, see
3253// Estimate your Amazon DevOps Guru costs (https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html)
3254// and Amazon DevOps Guru pricing (http://aws.amazon.com/devops-guru/pricing/).
3255type CostEstimationResourceCollectionFilter struct {
3256	_ struct{} `type:"structure"`
3257
3258	// An object that specifies the CloudFormation stack that defines the AWS resources
3259	// used to create a monthly estimate for DevOps Guru.
3260	CloudFormation *CloudFormationCostEstimationResourceCollectionFilter `type:"structure"`
3261}
3262
3263// String returns the string representation.
3264//
3265// API parameter values that are decorated as "sensitive" in the API will not
3266// be included in the string output. The member name will be present, but the
3267// value will be replaced with "sensitive".
3268func (s CostEstimationResourceCollectionFilter) String() string {
3269	return awsutil.Prettify(s)
3270}
3271
3272// GoString returns the string representation.
3273//
3274// API parameter values that are decorated as "sensitive" in the API will not
3275// be included in the string output. The member name will be present, but the
3276// value will be replaced with "sensitive".
3277func (s CostEstimationResourceCollectionFilter) GoString() string {
3278	return s.String()
3279}
3280
3281// Validate inspects the fields of the type to determine if they are valid.
3282func (s *CostEstimationResourceCollectionFilter) Validate() error {
3283	invalidParams := request.ErrInvalidParams{Context: "CostEstimationResourceCollectionFilter"}
3284	if s.CloudFormation != nil {
3285		if err := s.CloudFormation.Validate(); err != nil {
3286			invalidParams.AddNested("CloudFormation", err.(request.ErrInvalidParams))
3287		}
3288	}
3289
3290	if invalidParams.Len() > 0 {
3291		return invalidParams
3292	}
3293	return nil
3294}
3295
3296// SetCloudFormation sets the CloudFormation field's value.
3297func (s *CostEstimationResourceCollectionFilter) SetCloudFormation(v *CloudFormationCostEstimationResourceCollectionFilter) *CostEstimationResourceCollectionFilter {
3298	s.CloudFormation = v
3299	return s
3300}
3301
3302// The time range of a cost estimation.
3303type CostEstimationTimeRange struct {
3304	_ struct{} `type:"structure"`
3305
3306	// The end time of the cost estimation.
3307	EndTime *time.Time `type:"timestamp"`
3308
3309	// The start time of the cost estimation.
3310	StartTime *time.Time `type:"timestamp"`
3311}
3312
3313// String returns the string representation.
3314//
3315// API parameter values that are decorated as "sensitive" in the API will not
3316// be included in the string output. The member name will be present, but the
3317// value will be replaced with "sensitive".
3318func (s CostEstimationTimeRange) String() string {
3319	return awsutil.Prettify(s)
3320}
3321
3322// GoString returns the string representation.
3323//
3324// API parameter values that are decorated as "sensitive" in the API will not
3325// be included in the string output. The member name will be present, but the
3326// value will be replaced with "sensitive".
3327func (s CostEstimationTimeRange) GoString() string {
3328	return s.String()
3329}
3330
3331// SetEndTime sets the EndTime field's value.
3332func (s *CostEstimationTimeRange) SetEndTime(v time.Time) *CostEstimationTimeRange {
3333	s.EndTime = &v
3334	return s
3335}
3336
3337// SetStartTime sets the StartTime field's value.
3338func (s *CostEstimationTimeRange) SetStartTime(v time.Time) *CostEstimationTimeRange {
3339	s.StartTime = &v
3340	return s
3341}
3342
3343type DescribeAccountHealthInput struct {
3344	_ struct{} `type:"structure" nopayload:"true"`
3345}
3346
3347// String returns the string representation.
3348//
3349// API parameter values that are decorated as "sensitive" in the API will not
3350// be included in the string output. The member name will be present, but the
3351// value will be replaced with "sensitive".
3352func (s DescribeAccountHealthInput) String() string {
3353	return awsutil.Prettify(s)
3354}
3355
3356// GoString returns the string representation.
3357//
3358// API parameter values that are decorated as "sensitive" in the API will not
3359// be included in the string output. The member name will be present, but the
3360// value will be replaced with "sensitive".
3361func (s DescribeAccountHealthInput) GoString() string {
3362	return s.String()
3363}
3364
3365type DescribeAccountHealthOutput struct {
3366	_ struct{} `type:"structure"`
3367
3368	// An integer that specifies the number of metrics that have been analyzed in
3369	// your AWS account.
3370	//
3371	// MetricsAnalyzed is a required field
3372	MetricsAnalyzed *int64 `type:"integer" required:"true"`
3373
3374	// An integer that specifies the number of open proactive insights in your AWS
3375	// account.
3376	//
3377	// OpenProactiveInsights is a required field
3378	OpenProactiveInsights *int64 `type:"integer" required:"true"`
3379
3380	// An integer that specifies the number of open reactive insights in your AWS
3381	// account.
3382	//
3383	// OpenReactiveInsights is a required field
3384	OpenReactiveInsights *int64 `type:"integer" required:"true"`
3385
3386	// The number of Amazon DevOps Guru resource analysis hours billed to the current
3387	// AWS account in the last hour.
3388	//
3389	// ResourceHours is a required field
3390	ResourceHours *int64 `type:"long" required:"true"`
3391}
3392
3393// String returns the string representation.
3394//
3395// API parameter values that are decorated as "sensitive" in the API will not
3396// be included in the string output. The member name will be present, but the
3397// value will be replaced with "sensitive".
3398func (s DescribeAccountHealthOutput) String() string {
3399	return awsutil.Prettify(s)
3400}
3401
3402// GoString returns the string representation.
3403//
3404// API parameter values that are decorated as "sensitive" in the API will not
3405// be included in the string output. The member name will be present, but the
3406// value will be replaced with "sensitive".
3407func (s DescribeAccountHealthOutput) GoString() string {
3408	return s.String()
3409}
3410
3411// SetMetricsAnalyzed sets the MetricsAnalyzed field's value.
3412func (s *DescribeAccountHealthOutput) SetMetricsAnalyzed(v int64) *DescribeAccountHealthOutput {
3413	s.MetricsAnalyzed = &v
3414	return s
3415}
3416
3417// SetOpenProactiveInsights sets the OpenProactiveInsights field's value.
3418func (s *DescribeAccountHealthOutput) SetOpenProactiveInsights(v int64) *DescribeAccountHealthOutput {
3419	s.OpenProactiveInsights = &v
3420	return s
3421}
3422
3423// SetOpenReactiveInsights sets the OpenReactiveInsights field's value.
3424func (s *DescribeAccountHealthOutput) SetOpenReactiveInsights(v int64) *DescribeAccountHealthOutput {
3425	s.OpenReactiveInsights = &v
3426	return s
3427}
3428
3429// SetResourceHours sets the ResourceHours field's value.
3430func (s *DescribeAccountHealthOutput) SetResourceHours(v int64) *DescribeAccountHealthOutput {
3431	s.ResourceHours = &v
3432	return s
3433}
3434
3435type DescribeAccountOverviewInput struct {
3436	_ struct{} `type:"structure"`
3437
3438	// The start of the time range passed in. The start time granularity is at the
3439	// day level. The floor of the start time is used. Returned information occurred
3440	// after this day.
3441	//
3442	// FromTime is a required field
3443	FromTime *time.Time `type:"timestamp" required:"true"`
3444
3445	// The end of the time range passed in. The start time granularity is at the
3446	// day level. The floor of the start time is used. Returned information occurred
3447	// before this day. If this is not specified, then the current day is used.
3448	ToTime *time.Time `type:"timestamp"`
3449}
3450
3451// String returns the string representation.
3452//
3453// API parameter values that are decorated as "sensitive" in the API will not
3454// be included in the string output. The member name will be present, but the
3455// value will be replaced with "sensitive".
3456func (s DescribeAccountOverviewInput) String() string {
3457	return awsutil.Prettify(s)
3458}
3459
3460// GoString returns the string representation.
3461//
3462// API parameter values that are decorated as "sensitive" in the API will not
3463// be included in the string output. The member name will be present, but the
3464// value will be replaced with "sensitive".
3465func (s DescribeAccountOverviewInput) GoString() string {
3466	return s.String()
3467}
3468
3469// Validate inspects the fields of the type to determine if they are valid.
3470func (s *DescribeAccountOverviewInput) Validate() error {
3471	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountOverviewInput"}
3472	if s.FromTime == nil {
3473		invalidParams.Add(request.NewErrParamRequired("FromTime"))
3474	}
3475
3476	if invalidParams.Len() > 0 {
3477		return invalidParams
3478	}
3479	return nil
3480}
3481
3482// SetFromTime sets the FromTime field's value.
3483func (s *DescribeAccountOverviewInput) SetFromTime(v time.Time) *DescribeAccountOverviewInput {
3484	s.FromTime = &v
3485	return s
3486}
3487
3488// SetToTime sets the ToTime field's value.
3489func (s *DescribeAccountOverviewInput) SetToTime(v time.Time) *DescribeAccountOverviewInput {
3490	s.ToTime = &v
3491	return s
3492}
3493
3494type DescribeAccountOverviewOutput struct {
3495	_ struct{} `type:"structure"`
3496
3497	// The Mean Time to Recover (MTTR) for all closed insights that were created
3498	// during the time range passed in.
3499	//
3500	// MeanTimeToRecoverInMilliseconds is a required field
3501	MeanTimeToRecoverInMilliseconds *int64 `type:"long" required:"true"`
3502
3503	// An integer that specifies the number of open proactive insights in your AWS
3504	// account that were created during the time range passed in.
3505	//
3506	// ProactiveInsights is a required field
3507	ProactiveInsights *int64 `type:"integer" required:"true"`
3508
3509	// An integer that specifies the number of open reactive insights in your AWS
3510	// account that were created during the time range passed in.
3511	//
3512	// ReactiveInsights is a required field
3513	ReactiveInsights *int64 `type:"integer" required:"true"`
3514}
3515
3516// String returns the string representation.
3517//
3518// API parameter values that are decorated as "sensitive" in the API will not
3519// be included in the string output. The member name will be present, but the
3520// value will be replaced with "sensitive".
3521func (s DescribeAccountOverviewOutput) String() string {
3522	return awsutil.Prettify(s)
3523}
3524
3525// GoString returns the string representation.
3526//
3527// API parameter values that are decorated as "sensitive" in the API will not
3528// be included in the string output. The member name will be present, but the
3529// value will be replaced with "sensitive".
3530func (s DescribeAccountOverviewOutput) GoString() string {
3531	return s.String()
3532}
3533
3534// SetMeanTimeToRecoverInMilliseconds sets the MeanTimeToRecoverInMilliseconds field's value.
3535func (s *DescribeAccountOverviewOutput) SetMeanTimeToRecoverInMilliseconds(v int64) *DescribeAccountOverviewOutput {
3536	s.MeanTimeToRecoverInMilliseconds = &v
3537	return s
3538}
3539
3540// SetProactiveInsights sets the ProactiveInsights field's value.
3541func (s *DescribeAccountOverviewOutput) SetProactiveInsights(v int64) *DescribeAccountOverviewOutput {
3542	s.ProactiveInsights = &v
3543	return s
3544}
3545
3546// SetReactiveInsights sets the ReactiveInsights field's value.
3547func (s *DescribeAccountOverviewOutput) SetReactiveInsights(v int64) *DescribeAccountOverviewOutput {
3548	s.ReactiveInsights = &v
3549	return s
3550}
3551
3552type DescribeAnomalyInput struct {
3553	_ struct{} `type:"structure" nopayload:"true"`
3554
3555	// The ID of the anomaly.
3556	//
3557	// Id is a required field
3558	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
3559}
3560
3561// String returns the string representation.
3562//
3563// API parameter values that are decorated as "sensitive" in the API will not
3564// be included in the string output. The member name will be present, but the
3565// value will be replaced with "sensitive".
3566func (s DescribeAnomalyInput) String() string {
3567	return awsutil.Prettify(s)
3568}
3569
3570// GoString returns the string representation.
3571//
3572// API parameter values that are decorated as "sensitive" in the API will not
3573// be included in the string output. The member name will be present, but the
3574// value will be replaced with "sensitive".
3575func (s DescribeAnomalyInput) GoString() string {
3576	return s.String()
3577}
3578
3579// Validate inspects the fields of the type to determine if they are valid.
3580func (s *DescribeAnomalyInput) Validate() error {
3581	invalidParams := request.ErrInvalidParams{Context: "DescribeAnomalyInput"}
3582	if s.Id == nil {
3583		invalidParams.Add(request.NewErrParamRequired("Id"))
3584	}
3585	if s.Id != nil && len(*s.Id) < 1 {
3586		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
3587	}
3588
3589	if invalidParams.Len() > 0 {
3590		return invalidParams
3591	}
3592	return nil
3593}
3594
3595// SetId sets the Id field's value.
3596func (s *DescribeAnomalyInput) SetId(v string) *DescribeAnomalyInput {
3597	s.Id = &v
3598	return s
3599}
3600
3601type DescribeAnomalyOutput struct {
3602	_ struct{} `type:"structure"`
3603
3604	// A ReactiveAnomaly object that represents the requested anomaly.
3605	ProactiveAnomaly *ProactiveAnomaly `type:"structure"`
3606
3607	// A ProactiveAnomaly object that represents the requested anomaly.
3608	ReactiveAnomaly *ReactiveAnomaly `type:"structure"`
3609}
3610
3611// String returns the string representation.
3612//
3613// API parameter values that are decorated as "sensitive" in the API will not
3614// be included in the string output. The member name will be present, but the
3615// value will be replaced with "sensitive".
3616func (s DescribeAnomalyOutput) String() string {
3617	return awsutil.Prettify(s)
3618}
3619
3620// GoString returns the string representation.
3621//
3622// API parameter values that are decorated as "sensitive" in the API will not
3623// be included in the string output. The member name will be present, but the
3624// value will be replaced with "sensitive".
3625func (s DescribeAnomalyOutput) GoString() string {
3626	return s.String()
3627}
3628
3629// SetProactiveAnomaly sets the ProactiveAnomaly field's value.
3630func (s *DescribeAnomalyOutput) SetProactiveAnomaly(v *ProactiveAnomaly) *DescribeAnomalyOutput {
3631	s.ProactiveAnomaly = v
3632	return s
3633}
3634
3635// SetReactiveAnomaly sets the ReactiveAnomaly field's value.
3636func (s *DescribeAnomalyOutput) SetReactiveAnomaly(v *ReactiveAnomaly) *DescribeAnomalyOutput {
3637	s.ReactiveAnomaly = v
3638	return s
3639}
3640
3641type DescribeFeedbackInput struct {
3642	_ struct{} `type:"structure"`
3643
3644	// The ID of the insight for which the feedback was provided.
3645	InsightId *string `min:"1" type:"string"`
3646}
3647
3648// String returns the string representation.
3649//
3650// API parameter values that are decorated as "sensitive" in the API will not
3651// be included in the string output. The member name will be present, but the
3652// value will be replaced with "sensitive".
3653func (s DescribeFeedbackInput) String() string {
3654	return awsutil.Prettify(s)
3655}
3656
3657// GoString returns the string representation.
3658//
3659// API parameter values that are decorated as "sensitive" in the API will not
3660// be included in the string output. The member name will be present, but the
3661// value will be replaced with "sensitive".
3662func (s DescribeFeedbackInput) GoString() string {
3663	return s.String()
3664}
3665
3666// Validate inspects the fields of the type to determine if they are valid.
3667func (s *DescribeFeedbackInput) Validate() error {
3668	invalidParams := request.ErrInvalidParams{Context: "DescribeFeedbackInput"}
3669	if s.InsightId != nil && len(*s.InsightId) < 1 {
3670		invalidParams.Add(request.NewErrParamMinLen("InsightId", 1))
3671	}
3672
3673	if invalidParams.Len() > 0 {
3674		return invalidParams
3675	}
3676	return nil
3677}
3678
3679// SetInsightId sets the InsightId field's value.
3680func (s *DescribeFeedbackInput) SetInsightId(v string) *DescribeFeedbackInput {
3681	s.InsightId = &v
3682	return s
3683}
3684
3685type DescribeFeedbackOutput struct {
3686	_ struct{} `type:"structure"`
3687
3688	// Information about insight feedback received from a customer.
3689	InsightFeedback *InsightFeedback `type:"structure"`
3690}
3691
3692// String returns the string representation.
3693//
3694// API parameter values that are decorated as "sensitive" in the API will not
3695// be included in the string output. The member name will be present, but the
3696// value will be replaced with "sensitive".
3697func (s DescribeFeedbackOutput) String() string {
3698	return awsutil.Prettify(s)
3699}
3700
3701// GoString returns the string representation.
3702//
3703// API parameter values that are decorated as "sensitive" in the API will not
3704// be included in the string output. The member name will be present, but the
3705// value will be replaced with "sensitive".
3706func (s DescribeFeedbackOutput) GoString() string {
3707	return s.String()
3708}
3709
3710// SetInsightFeedback sets the InsightFeedback field's value.
3711func (s *DescribeFeedbackOutput) SetInsightFeedback(v *InsightFeedback) *DescribeFeedbackOutput {
3712	s.InsightFeedback = v
3713	return s
3714}
3715
3716type DescribeInsightInput struct {
3717	_ struct{} `type:"structure" nopayload:"true"`
3718
3719	// The ID of the insight.
3720	//
3721	// Id is a required field
3722	Id *string `location:"uri" locationName:"Id" min:"1" type:"string" required:"true"`
3723}
3724
3725// String returns the string representation.
3726//
3727// API parameter values that are decorated as "sensitive" in the API will not
3728// be included in the string output. The member name will be present, but the
3729// value will be replaced with "sensitive".
3730func (s DescribeInsightInput) String() string {
3731	return awsutil.Prettify(s)
3732}
3733
3734// GoString returns the string representation.
3735//
3736// API parameter values that are decorated as "sensitive" in the API will not
3737// be included in the string output. The member name will be present, but the
3738// value will be replaced with "sensitive".
3739func (s DescribeInsightInput) GoString() string {
3740	return s.String()
3741}
3742
3743// Validate inspects the fields of the type to determine if they are valid.
3744func (s *DescribeInsightInput) Validate() error {
3745	invalidParams := request.ErrInvalidParams{Context: "DescribeInsightInput"}
3746	if s.Id == nil {
3747		invalidParams.Add(request.NewErrParamRequired("Id"))
3748	}
3749	if s.Id != nil && len(*s.Id) < 1 {
3750		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
3751	}
3752
3753	if invalidParams.Len() > 0 {
3754		return invalidParams
3755	}
3756	return nil
3757}
3758
3759// SetId sets the Id field's value.
3760func (s *DescribeInsightInput) SetId(v string) *DescribeInsightInput {
3761	s.Id = &v
3762	return s
3763}
3764
3765type DescribeInsightOutput struct {
3766	_ struct{} `type:"structure"`
3767
3768	// A ProactiveInsight object that represents the requested insight.
3769	ProactiveInsight *ProactiveInsight `type:"structure"`
3770
3771	// A ReactiveInsight object that represents the requested insight.
3772	ReactiveInsight *ReactiveInsight `type:"structure"`
3773}
3774
3775// String returns the string representation.
3776//
3777// API parameter values that are decorated as "sensitive" in the API will not
3778// be included in the string output. The member name will be present, but the
3779// value will be replaced with "sensitive".
3780func (s DescribeInsightOutput) String() string {
3781	return awsutil.Prettify(s)
3782}
3783
3784// GoString returns the string representation.
3785//
3786// API parameter values that are decorated as "sensitive" in the API will not
3787// be included in the string output. The member name will be present, but the
3788// value will be replaced with "sensitive".
3789func (s DescribeInsightOutput) GoString() string {
3790	return s.String()
3791}
3792
3793// SetProactiveInsight sets the ProactiveInsight field's value.
3794func (s *DescribeInsightOutput) SetProactiveInsight(v *ProactiveInsight) *DescribeInsightOutput {
3795	s.ProactiveInsight = v
3796	return s
3797}
3798
3799// SetReactiveInsight sets the ReactiveInsight field's value.
3800func (s *DescribeInsightOutput) SetReactiveInsight(v *ReactiveInsight) *DescribeInsightOutput {
3801	s.ReactiveInsight = v
3802	return s
3803}
3804
3805type DescribeResourceCollectionHealthInput struct {
3806	_ struct{} `type:"structure" nopayload:"true"`
3807
3808	// The pagination token to use to retrieve the next page of results for this
3809	// operation. If this value is null, it retrieves the first page.
3810	NextToken *string `location:"querystring" locationName:"NextToken" min:"36" type:"string"`
3811
3812	// An AWS resource collection type. This type specifies how analyzed AWS resources
3813	// are defined. The one type of AWS resource collection supported is AWS CloudFormation
3814	// stacks. DevOps Guru can be configured to analyze only the AWS resources that
3815	// are defined in the stacks. You can specify up to 500 AWS CloudFormation stacks.
3816	//
3817	// ResourceCollectionType is a required field
3818	ResourceCollectionType *string `location:"uri" locationName:"ResourceCollectionType" type:"string" required:"true" enum:"ResourceCollectionType"`
3819}
3820
3821// String returns the string representation.
3822//
3823// API parameter values that are decorated as "sensitive" in the API will not
3824// be included in the string output. The member name will be present, but the
3825// value will be replaced with "sensitive".
3826func (s DescribeResourceCollectionHealthInput) String() string {
3827	return awsutil.Prettify(s)
3828}
3829
3830// GoString returns the string representation.
3831//
3832// API parameter values that are decorated as "sensitive" in the API will not
3833// be included in the string output. The member name will be present, but the
3834// value will be replaced with "sensitive".
3835func (s DescribeResourceCollectionHealthInput) GoString() string {
3836	return s.String()
3837}
3838
3839// Validate inspects the fields of the type to determine if they are valid.
3840func (s *DescribeResourceCollectionHealthInput) Validate() error {
3841	invalidParams := request.ErrInvalidParams{Context: "DescribeResourceCollectionHealthInput"}
3842	if s.NextToken != nil && len(*s.NextToken) < 36 {
3843		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
3844	}
3845	if s.ResourceCollectionType == nil {
3846		invalidParams.Add(request.NewErrParamRequired("ResourceCollectionType"))
3847	}
3848	if s.ResourceCollectionType != nil && len(*s.ResourceCollectionType) < 1 {
3849		invalidParams.Add(request.NewErrParamMinLen("ResourceCollectionType", 1))
3850	}
3851
3852	if invalidParams.Len() > 0 {
3853		return invalidParams
3854	}
3855	return nil
3856}
3857
3858// SetNextToken sets the NextToken field's value.
3859func (s *DescribeResourceCollectionHealthInput) SetNextToken(v string) *DescribeResourceCollectionHealthInput {
3860	s.NextToken = &v
3861	return s
3862}
3863
3864// SetResourceCollectionType sets the ResourceCollectionType field's value.
3865func (s *DescribeResourceCollectionHealthInput) SetResourceCollectionType(v string) *DescribeResourceCollectionHealthInput {
3866	s.ResourceCollectionType = &v
3867	return s
3868}
3869
3870type DescribeResourceCollectionHealthOutput struct {
3871	_ struct{} `type:"structure"`
3872
3873	// The returned CloudFormationHealthOverview object that contains an InsightHealthOverview
3874	// object with the requested system health information.
3875	//
3876	// CloudFormation is a required field
3877	CloudFormation []*CloudFormationHealth `type:"list" required:"true"`
3878
3879	// The pagination token to use to retrieve the next page of results for this
3880	// operation. If there are no more pages, this value is null.
3881	NextToken *string `min:"36" type:"string"`
3882
3883	// An array of ServiceHealth objects that describes the health of the AWS services
3884	// associated with the resources in the collection.
3885	Service []*ServiceHealth `type:"list"`
3886}
3887
3888// String returns the string representation.
3889//
3890// API parameter values that are decorated as "sensitive" in the API will not
3891// be included in the string output. The member name will be present, but the
3892// value will be replaced with "sensitive".
3893func (s DescribeResourceCollectionHealthOutput) String() string {
3894	return awsutil.Prettify(s)
3895}
3896
3897// GoString returns the string representation.
3898//
3899// API parameter values that are decorated as "sensitive" in the API will not
3900// be included in the string output. The member name will be present, but the
3901// value will be replaced with "sensitive".
3902func (s DescribeResourceCollectionHealthOutput) GoString() string {
3903	return s.String()
3904}
3905
3906// SetCloudFormation sets the CloudFormation field's value.
3907func (s *DescribeResourceCollectionHealthOutput) SetCloudFormation(v []*CloudFormationHealth) *DescribeResourceCollectionHealthOutput {
3908	s.CloudFormation = v
3909	return s
3910}
3911
3912// SetNextToken sets the NextToken field's value.
3913func (s *DescribeResourceCollectionHealthOutput) SetNextToken(v string) *DescribeResourceCollectionHealthOutput {
3914	s.NextToken = &v
3915	return s
3916}
3917
3918// SetService sets the Service field's value.
3919func (s *DescribeResourceCollectionHealthOutput) SetService(v []*ServiceHealth) *DescribeResourceCollectionHealthOutput {
3920	s.Service = v
3921	return s
3922}
3923
3924type DescribeServiceIntegrationInput struct {
3925	_ struct{} `type:"structure" nopayload:"true"`
3926}
3927
3928// String returns the string representation.
3929//
3930// API parameter values that are decorated as "sensitive" in the API will not
3931// be included in the string output. The member name will be present, but the
3932// value will be replaced with "sensitive".
3933func (s DescribeServiceIntegrationInput) String() string {
3934	return awsutil.Prettify(s)
3935}
3936
3937// GoString returns the string representation.
3938//
3939// API parameter values that are decorated as "sensitive" in the API will not
3940// be included in the string output. The member name will be present, but the
3941// value will be replaced with "sensitive".
3942func (s DescribeServiceIntegrationInput) GoString() string {
3943	return s.String()
3944}
3945
3946type DescribeServiceIntegrationOutput struct {
3947	_ struct{} `type:"structure"`
3948
3949	// Information about the integration of DevOps Guru with another AWS service,
3950	// such as AWS Systems Manager.
3951	ServiceIntegration *ServiceIntegrationConfig `type:"structure"`
3952}
3953
3954// String returns the string representation.
3955//
3956// API parameter values that are decorated as "sensitive" in the API will not
3957// be included in the string output. The member name will be present, but the
3958// value will be replaced with "sensitive".
3959func (s DescribeServiceIntegrationOutput) String() string {
3960	return awsutil.Prettify(s)
3961}
3962
3963// GoString returns the string representation.
3964//
3965// API parameter values that are decorated as "sensitive" in the API will not
3966// be included in the string output. The member name will be present, but the
3967// value will be replaced with "sensitive".
3968func (s DescribeServiceIntegrationOutput) GoString() string {
3969	return s.String()
3970}
3971
3972// SetServiceIntegration sets the ServiceIntegration field's value.
3973func (s *DescribeServiceIntegrationOutput) SetServiceIntegration(v *ServiceIntegrationConfig) *DescribeServiceIntegrationOutput {
3974	s.ServiceIntegration = v
3975	return s
3976}
3977
3978// A range of time that specifies when anomalous behavior in an anomaly or insight
3979// ended.
3980type EndTimeRange struct {
3981	_ struct{} `type:"structure"`
3982
3983	// The earliest end time in the time range.
3984	FromTime *time.Time `type:"timestamp"`
3985
3986	// The latest end time in the time range.
3987	ToTime *time.Time `type:"timestamp"`
3988}
3989
3990// String returns the string representation.
3991//
3992// API parameter values that are decorated as "sensitive" in the API will not
3993// be included in the string output. The member name will be present, but the
3994// value will be replaced with "sensitive".
3995func (s EndTimeRange) String() string {
3996	return awsutil.Prettify(s)
3997}
3998
3999// GoString returns the string representation.
4000//
4001// API parameter values that are decorated as "sensitive" in the API will not
4002// be included in the string output. The member name will be present, but the
4003// value will be replaced with "sensitive".
4004func (s EndTimeRange) GoString() string {
4005	return s.String()
4006}
4007
4008// SetFromTime sets the FromTime field's value.
4009func (s *EndTimeRange) SetFromTime(v time.Time) *EndTimeRange {
4010	s.FromTime = &v
4011	return s
4012}
4013
4014// SetToTime sets the ToTime field's value.
4015func (s *EndTimeRange) SetToTime(v time.Time) *EndTimeRange {
4016	s.ToTime = &v
4017	return s
4018}
4019
4020// An AWS resource event. AWS resource events and metrics are analyzed by DevOps
4021// Guru to find anomalous behavior and provide recommendations to improve your
4022// operational solutions.
4023type Event struct {
4024	_ struct{} `type:"structure"`
4025
4026	// The source, AWS_CLOUD_TRAIL or AWS_CODE_DEPLOY, where DevOps Guru analysis
4027	// found the event.
4028	DataSource *string `type:"string" enum:"EventDataSource"`
4029
4030	// The class of the event. The class specifies what the event is related to,
4031	// such as an infrastructure change, a deployment, or a schema change.
4032	EventClass *string `type:"string" enum:"EventClass"`
4033
4034	// The AWS source that emitted the event.
4035	EventSource *string `min:"10" type:"string"`
4036
4037	// The ID of the event.
4038	Id *string `type:"string"`
4039
4040	// The name of the event.
4041	Name *string `type:"string"`
4042
4043	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
4044	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
4045	// be configured to analyze only the AWS resources that are defined in the stacks.
4046	// You can specify up to 500 AWS CloudFormation stacks.
4047	ResourceCollection *ResourceCollection `type:"structure"`
4048
4049	// An EventResource object that contains information about the resource that
4050	// emitted the event.
4051	Resources []*EventResource `type:"list"`
4052
4053	// A Timestamp that specifies the time the event occurred.
4054	Time *time.Time `type:"timestamp"`
4055}
4056
4057// String returns the string representation.
4058//
4059// API parameter values that are decorated as "sensitive" in the API will not
4060// be included in the string output. The member name will be present, but the
4061// value will be replaced with "sensitive".
4062func (s Event) String() string {
4063	return awsutil.Prettify(s)
4064}
4065
4066// GoString returns the string representation.
4067//
4068// API parameter values that are decorated as "sensitive" in the API will not
4069// be included in the string output. The member name will be present, but the
4070// value will be replaced with "sensitive".
4071func (s Event) GoString() string {
4072	return s.String()
4073}
4074
4075// SetDataSource sets the DataSource field's value.
4076func (s *Event) SetDataSource(v string) *Event {
4077	s.DataSource = &v
4078	return s
4079}
4080
4081// SetEventClass sets the EventClass field's value.
4082func (s *Event) SetEventClass(v string) *Event {
4083	s.EventClass = &v
4084	return s
4085}
4086
4087// SetEventSource sets the EventSource field's value.
4088func (s *Event) SetEventSource(v string) *Event {
4089	s.EventSource = &v
4090	return s
4091}
4092
4093// SetId sets the Id field's value.
4094func (s *Event) SetId(v string) *Event {
4095	s.Id = &v
4096	return s
4097}
4098
4099// SetName sets the Name field's value.
4100func (s *Event) SetName(v string) *Event {
4101	s.Name = &v
4102	return s
4103}
4104
4105// SetResourceCollection sets the ResourceCollection field's value.
4106func (s *Event) SetResourceCollection(v *ResourceCollection) *Event {
4107	s.ResourceCollection = v
4108	return s
4109}
4110
4111// SetResources sets the Resources field's value.
4112func (s *Event) SetResources(v []*EventResource) *Event {
4113	s.Resources = v
4114	return s
4115}
4116
4117// SetTime sets the Time field's value.
4118func (s *Event) SetTime(v time.Time) *Event {
4119	s.Time = &v
4120	return s
4121}
4122
4123// The AWS resource that emitted an event. AWS resource events and metrics are
4124// analyzed by DevOps Guru to find anomalous behavior and provide recommendations
4125// to improve your operational solutions.
4126type EventResource struct {
4127	_ struct{} `type:"structure"`
4128
4129	// The Amazon Resource Name (ARN) of the resource that emitted an event.
4130	Arn *string `min:"36" type:"string"`
4131
4132	// The name of the resource that emitted an event.
4133	Name *string `type:"string"`
4134
4135	// The type of resource that emitted an event.
4136	Type *string `type:"string"`
4137}
4138
4139// String returns the string representation.
4140//
4141// API parameter values that are decorated as "sensitive" in the API will not
4142// be included in the string output. The member name will be present, but the
4143// value will be replaced with "sensitive".
4144func (s EventResource) String() string {
4145	return awsutil.Prettify(s)
4146}
4147
4148// GoString returns the string representation.
4149//
4150// API parameter values that are decorated as "sensitive" in the API will not
4151// be included in the string output. The member name will be present, but the
4152// value will be replaced with "sensitive".
4153func (s EventResource) GoString() string {
4154	return s.String()
4155}
4156
4157// SetArn sets the Arn field's value.
4158func (s *EventResource) SetArn(v string) *EventResource {
4159	s.Arn = &v
4160	return s
4161}
4162
4163// SetName sets the Name field's value.
4164func (s *EventResource) SetName(v string) *EventResource {
4165	s.Name = &v
4166	return s
4167}
4168
4169// SetType sets the Type field's value.
4170func (s *EventResource) SetType(v string) *EventResource {
4171	s.Type = &v
4172	return s
4173}
4174
4175// The time range during which an AWS event occurred. AWS resource events and
4176// metrics are analyzed by DevOps Guru to find anomalous behavior and provide
4177// recommendations to improve your operational solutions.
4178type EventTimeRange struct {
4179	_ struct{} `type:"structure"`
4180
4181	// The time when the event started.
4182	//
4183	// FromTime is a required field
4184	FromTime *time.Time `type:"timestamp" required:"true"`
4185
4186	// The time when the event ended.
4187	//
4188	// ToTime is a required field
4189	ToTime *time.Time `type:"timestamp" required:"true"`
4190}
4191
4192// String returns the string representation.
4193//
4194// API parameter values that are decorated as "sensitive" in the API will not
4195// be included in the string output. The member name will be present, but the
4196// value will be replaced with "sensitive".
4197func (s EventTimeRange) String() string {
4198	return awsutil.Prettify(s)
4199}
4200
4201// GoString returns the string representation.
4202//
4203// API parameter values that are decorated as "sensitive" in the API will not
4204// be included in the string output. The member name will be present, but the
4205// value will be replaced with "sensitive".
4206func (s EventTimeRange) GoString() string {
4207	return s.String()
4208}
4209
4210// Validate inspects the fields of the type to determine if they are valid.
4211func (s *EventTimeRange) Validate() error {
4212	invalidParams := request.ErrInvalidParams{Context: "EventTimeRange"}
4213	if s.FromTime == nil {
4214		invalidParams.Add(request.NewErrParamRequired("FromTime"))
4215	}
4216	if s.ToTime == nil {
4217		invalidParams.Add(request.NewErrParamRequired("ToTime"))
4218	}
4219
4220	if invalidParams.Len() > 0 {
4221		return invalidParams
4222	}
4223	return nil
4224}
4225
4226// SetFromTime sets the FromTime field's value.
4227func (s *EventTimeRange) SetFromTime(v time.Time) *EventTimeRange {
4228	s.FromTime = &v
4229	return s
4230}
4231
4232// SetToTime sets the ToTime field's value.
4233func (s *EventTimeRange) SetToTime(v time.Time) *EventTimeRange {
4234	s.ToTime = &v
4235	return s
4236}
4237
4238type GetCostEstimationInput struct {
4239	_ struct{} `type:"structure" nopayload:"true"`
4240
4241	// The pagination token to use to retrieve the next page of results for this
4242	// operation. If this value is null, it retrieves the first page.
4243	NextToken *string `location:"querystring" locationName:"NextToken" min:"36" type:"string"`
4244}
4245
4246// String returns the string representation.
4247//
4248// API parameter values that are decorated as "sensitive" in the API will not
4249// be included in the string output. The member name will be present, but the
4250// value will be replaced with "sensitive".
4251func (s GetCostEstimationInput) String() string {
4252	return awsutil.Prettify(s)
4253}
4254
4255// GoString returns the string representation.
4256//
4257// API parameter values that are decorated as "sensitive" in the API will not
4258// be included in the string output. The member name will be present, but the
4259// value will be replaced with "sensitive".
4260func (s GetCostEstimationInput) GoString() string {
4261	return s.String()
4262}
4263
4264// Validate inspects the fields of the type to determine if they are valid.
4265func (s *GetCostEstimationInput) Validate() error {
4266	invalidParams := request.ErrInvalidParams{Context: "GetCostEstimationInput"}
4267	if s.NextToken != nil && len(*s.NextToken) < 36 {
4268		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
4269	}
4270
4271	if invalidParams.Len() > 0 {
4272		return invalidParams
4273	}
4274	return nil
4275}
4276
4277// SetNextToken sets the NextToken field's value.
4278func (s *GetCostEstimationInput) SetNextToken(v string) *GetCostEstimationInput {
4279	s.NextToken = &v
4280	return s
4281}
4282
4283type GetCostEstimationOutput struct {
4284	_ struct{} `type:"structure"`
4285
4286	// An array of ResourceCost objects that each contains details about the monthly
4287	// cost estimate to analyze one of your AWS resources.
4288	Costs []*ServiceResourceCost `type:"list"`
4289
4290	// The pagination token to use to retrieve the next page of results for this
4291	// operation. If there are no more pages, this value is null.
4292	NextToken *string `min:"36" type:"string"`
4293
4294	// The collection of the AWS resources used to create your monthly DevOps Guru
4295	// cost estimate.
4296	ResourceCollection *CostEstimationResourceCollectionFilter `type:"structure"`
4297
4298	// The status of creating this cost estimate. If it's still in progress, the
4299	// status ONGOING is returned. If it is finished, the status COMPLETED is returned.
4300	Status *string `type:"string" enum:"CostEstimationStatus"`
4301
4302	// The start and end time of the cost estimation.
4303	TimeRange *CostEstimationTimeRange `type:"structure"`
4304
4305	// The estimated monthly cost to analyze the AWS resources. This value is the
4306	// sum of the estimated costs to analyze each resource in the Costs object in
4307	// this response.
4308	TotalCost *float64 `type:"double"`
4309}
4310
4311// String returns the string representation.
4312//
4313// API parameter values that are decorated as "sensitive" in the API will not
4314// be included in the string output. The member name will be present, but the
4315// value will be replaced with "sensitive".
4316func (s GetCostEstimationOutput) String() string {
4317	return awsutil.Prettify(s)
4318}
4319
4320// GoString returns the string representation.
4321//
4322// API parameter values that are decorated as "sensitive" in the API will not
4323// be included in the string output. The member name will be present, but the
4324// value will be replaced with "sensitive".
4325func (s GetCostEstimationOutput) GoString() string {
4326	return s.String()
4327}
4328
4329// SetCosts sets the Costs field's value.
4330func (s *GetCostEstimationOutput) SetCosts(v []*ServiceResourceCost) *GetCostEstimationOutput {
4331	s.Costs = v
4332	return s
4333}
4334
4335// SetNextToken sets the NextToken field's value.
4336func (s *GetCostEstimationOutput) SetNextToken(v string) *GetCostEstimationOutput {
4337	s.NextToken = &v
4338	return s
4339}
4340
4341// SetResourceCollection sets the ResourceCollection field's value.
4342func (s *GetCostEstimationOutput) SetResourceCollection(v *CostEstimationResourceCollectionFilter) *GetCostEstimationOutput {
4343	s.ResourceCollection = v
4344	return s
4345}
4346
4347// SetStatus sets the Status field's value.
4348func (s *GetCostEstimationOutput) SetStatus(v string) *GetCostEstimationOutput {
4349	s.Status = &v
4350	return s
4351}
4352
4353// SetTimeRange sets the TimeRange field's value.
4354func (s *GetCostEstimationOutput) SetTimeRange(v *CostEstimationTimeRange) *GetCostEstimationOutput {
4355	s.TimeRange = v
4356	return s
4357}
4358
4359// SetTotalCost sets the TotalCost field's value.
4360func (s *GetCostEstimationOutput) SetTotalCost(v float64) *GetCostEstimationOutput {
4361	s.TotalCost = &v
4362	return s
4363}
4364
4365type GetResourceCollectionInput struct {
4366	_ struct{} `type:"structure" nopayload:"true"`
4367
4368	// The pagination token to use to retrieve the next page of results for this
4369	// operation. If this value is null, it retrieves the first page.
4370	NextToken *string `location:"querystring" locationName:"NextToken" min:"36" type:"string"`
4371
4372	// The type of AWS resource collections to return. The one valid value is CLOUD_FORMATION
4373	// for AWS CloudFormation stacks.
4374	//
4375	// ResourceCollectionType is a required field
4376	ResourceCollectionType *string `location:"uri" locationName:"ResourceCollectionType" type:"string" required:"true" enum:"ResourceCollectionType"`
4377}
4378
4379// String returns the string representation.
4380//
4381// API parameter values that are decorated as "sensitive" in the API will not
4382// be included in the string output. The member name will be present, but the
4383// value will be replaced with "sensitive".
4384func (s GetResourceCollectionInput) String() string {
4385	return awsutil.Prettify(s)
4386}
4387
4388// GoString returns the string representation.
4389//
4390// API parameter values that are decorated as "sensitive" in the API will not
4391// be included in the string output. The member name will be present, but the
4392// value will be replaced with "sensitive".
4393func (s GetResourceCollectionInput) GoString() string {
4394	return s.String()
4395}
4396
4397// Validate inspects the fields of the type to determine if they are valid.
4398func (s *GetResourceCollectionInput) Validate() error {
4399	invalidParams := request.ErrInvalidParams{Context: "GetResourceCollectionInput"}
4400	if s.NextToken != nil && len(*s.NextToken) < 36 {
4401		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
4402	}
4403	if s.ResourceCollectionType == nil {
4404		invalidParams.Add(request.NewErrParamRequired("ResourceCollectionType"))
4405	}
4406	if s.ResourceCollectionType != nil && len(*s.ResourceCollectionType) < 1 {
4407		invalidParams.Add(request.NewErrParamMinLen("ResourceCollectionType", 1))
4408	}
4409
4410	if invalidParams.Len() > 0 {
4411		return invalidParams
4412	}
4413	return nil
4414}
4415
4416// SetNextToken sets the NextToken field's value.
4417func (s *GetResourceCollectionInput) SetNextToken(v string) *GetResourceCollectionInput {
4418	s.NextToken = &v
4419	return s
4420}
4421
4422// SetResourceCollectionType sets the ResourceCollectionType field's value.
4423func (s *GetResourceCollectionInput) SetResourceCollectionType(v string) *GetResourceCollectionInput {
4424	s.ResourceCollectionType = &v
4425	return s
4426}
4427
4428type GetResourceCollectionOutput struct {
4429	_ struct{} `type:"structure"`
4430
4431	// The pagination token to use to retrieve the next page of results for this
4432	// operation. If there are no more pages, this value is null.
4433	NextToken *string `min:"36" type:"string"`
4434
4435	// The requested list of AWS resource collections. The one type of AWS resource
4436	// collection supported is AWS CloudFormation stacks. DevOps Guru can be configured
4437	// to analyze only the AWS resources that are defined in the stacks. You can
4438	// specify up to 500 AWS CloudFormation stacks.
4439	ResourceCollection *ResourceCollectionFilter `type:"structure"`
4440}
4441
4442// String returns the string representation.
4443//
4444// API parameter values that are decorated as "sensitive" in the API will not
4445// be included in the string output. The member name will be present, but the
4446// value will be replaced with "sensitive".
4447func (s GetResourceCollectionOutput) String() string {
4448	return awsutil.Prettify(s)
4449}
4450
4451// GoString returns the string representation.
4452//
4453// API parameter values that are decorated as "sensitive" in the API will not
4454// be included in the string output. The member name will be present, but the
4455// value will be replaced with "sensitive".
4456func (s GetResourceCollectionOutput) GoString() string {
4457	return s.String()
4458}
4459
4460// SetNextToken sets the NextToken field's value.
4461func (s *GetResourceCollectionOutput) SetNextToken(v string) *GetResourceCollectionOutput {
4462	s.NextToken = &v
4463	return s
4464}
4465
4466// SetResourceCollection sets the ResourceCollection field's value.
4467func (s *GetResourceCollectionOutput) SetResourceCollection(v *ResourceCollectionFilter) *GetResourceCollectionOutput {
4468	s.ResourceCollection = v
4469	return s
4470}
4471
4472// Information about insight feedback received from a customer.
4473type InsightFeedback struct {
4474	_ struct{} `type:"structure"`
4475
4476	// The feedback provided by the customer.
4477	Feedback *string `type:"string" enum:"InsightFeedbackOption"`
4478
4479	// The insight feedback ID.
4480	Id *string `min:"1" type:"string"`
4481}
4482
4483// String returns the string representation.
4484//
4485// API parameter values that are decorated as "sensitive" in the API will not
4486// be included in the string output. The member name will be present, but the
4487// value will be replaced with "sensitive".
4488func (s InsightFeedback) String() string {
4489	return awsutil.Prettify(s)
4490}
4491
4492// GoString returns the string representation.
4493//
4494// API parameter values that are decorated as "sensitive" in the API will not
4495// be included in the string output. The member name will be present, but the
4496// value will be replaced with "sensitive".
4497func (s InsightFeedback) GoString() string {
4498	return s.String()
4499}
4500
4501// Validate inspects the fields of the type to determine if they are valid.
4502func (s *InsightFeedback) Validate() error {
4503	invalidParams := request.ErrInvalidParams{Context: "InsightFeedback"}
4504	if s.Id != nil && len(*s.Id) < 1 {
4505		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
4506	}
4507
4508	if invalidParams.Len() > 0 {
4509		return invalidParams
4510	}
4511	return nil
4512}
4513
4514// SetFeedback sets the Feedback field's value.
4515func (s *InsightFeedback) SetFeedback(v string) *InsightFeedback {
4516	s.Feedback = &v
4517	return s
4518}
4519
4520// SetId sets the Id field's value.
4521func (s *InsightFeedback) SetId(v string) *InsightFeedback {
4522	s.Id = &v
4523	return s
4524}
4525
4526// Information about the number of open reactive and proactive insights that
4527// can be used to gauge the health of your system.
4528type InsightHealth struct {
4529	_ struct{} `type:"structure"`
4530
4531	// The Meant Time to Recover (MTTR) for the insight.
4532	MeanTimeToRecoverInMilliseconds *int64 `type:"long"`
4533
4534	// The number of open proactive insights.
4535	OpenProactiveInsights *int64 `type:"integer"`
4536
4537	// The number of open reactive insights.
4538	OpenReactiveInsights *int64 `type:"integer"`
4539}
4540
4541// String returns the string representation.
4542//
4543// API parameter values that are decorated as "sensitive" in the API will not
4544// be included in the string output. The member name will be present, but the
4545// value will be replaced with "sensitive".
4546func (s InsightHealth) String() string {
4547	return awsutil.Prettify(s)
4548}
4549
4550// GoString returns the string representation.
4551//
4552// API parameter values that are decorated as "sensitive" in the API will not
4553// be included in the string output. The member name will be present, but the
4554// value will be replaced with "sensitive".
4555func (s InsightHealth) GoString() string {
4556	return s.String()
4557}
4558
4559// SetMeanTimeToRecoverInMilliseconds sets the MeanTimeToRecoverInMilliseconds field's value.
4560func (s *InsightHealth) SetMeanTimeToRecoverInMilliseconds(v int64) *InsightHealth {
4561	s.MeanTimeToRecoverInMilliseconds = &v
4562	return s
4563}
4564
4565// SetOpenProactiveInsights sets the OpenProactiveInsights field's value.
4566func (s *InsightHealth) SetOpenProactiveInsights(v int64) *InsightHealth {
4567	s.OpenProactiveInsights = &v
4568	return s
4569}
4570
4571// SetOpenReactiveInsights sets the OpenReactiveInsights field's value.
4572func (s *InsightHealth) SetOpenReactiveInsights(v int64) *InsightHealth {
4573	s.OpenReactiveInsights = &v
4574	return s
4575}
4576
4577// A time ranged that specifies when the observed behavior in an insight started
4578// and ended.
4579type InsightTimeRange struct {
4580	_ struct{} `type:"structure"`
4581
4582	// The time when the behavior described in an insight ended.
4583	EndTime *time.Time `type:"timestamp"`
4584
4585	// The time when the behavior described in an insight started.
4586	//
4587	// StartTime is a required field
4588	StartTime *time.Time `type:"timestamp" required:"true"`
4589}
4590
4591// String returns the string representation.
4592//
4593// API parameter values that are decorated as "sensitive" in the API will not
4594// be included in the string output. The member name will be present, but the
4595// value will be replaced with "sensitive".
4596func (s InsightTimeRange) String() string {
4597	return awsutil.Prettify(s)
4598}
4599
4600// GoString returns the string representation.
4601//
4602// API parameter values that are decorated as "sensitive" in the API will not
4603// be included in the string output. The member name will be present, but the
4604// value will be replaced with "sensitive".
4605func (s InsightTimeRange) GoString() string {
4606	return s.String()
4607}
4608
4609// SetEndTime sets the EndTime field's value.
4610func (s *InsightTimeRange) SetEndTime(v time.Time) *InsightTimeRange {
4611	s.EndTime = &v
4612	return s
4613}
4614
4615// SetStartTime sets the StartTime field's value.
4616func (s *InsightTimeRange) SetStartTime(v time.Time) *InsightTimeRange {
4617	s.StartTime = &v
4618	return s
4619}
4620
4621// An internal failure in an Amazon service occurred.
4622type InternalServerException struct {
4623	_            struct{}                  `type:"structure"`
4624	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4625
4626	Message_ *string `locationName:"Message" type:"string"`
4627
4628	// The number of seconds after which the action that caused the internal server
4629	// exception can be retried.
4630	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
4631}
4632
4633// String returns the string representation.
4634//
4635// API parameter values that are decorated as "sensitive" in the API will not
4636// be included in the string output. The member name will be present, but the
4637// value will be replaced with "sensitive".
4638func (s InternalServerException) String() string {
4639	return awsutil.Prettify(s)
4640}
4641
4642// GoString returns the string representation.
4643//
4644// API parameter values that are decorated as "sensitive" in the API will not
4645// be included in the string output. The member name will be present, but the
4646// value will be replaced with "sensitive".
4647func (s InternalServerException) GoString() string {
4648	return s.String()
4649}
4650
4651func newErrorInternalServerException(v protocol.ResponseMetadata) error {
4652	return &InternalServerException{
4653		RespMetadata: v,
4654	}
4655}
4656
4657// Code returns the exception type name.
4658func (s *InternalServerException) Code() string {
4659	return "InternalServerException"
4660}
4661
4662// Message returns the exception's message.
4663func (s *InternalServerException) Message() string {
4664	if s.Message_ != nil {
4665		return *s.Message_
4666	}
4667	return ""
4668}
4669
4670// OrigErr always returns nil, satisfies awserr.Error interface.
4671func (s *InternalServerException) OrigErr() error {
4672	return nil
4673}
4674
4675func (s *InternalServerException) Error() string {
4676	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4677}
4678
4679// Status code returns the HTTP status code for the request's response error.
4680func (s *InternalServerException) StatusCode() int {
4681	return s.RespMetadata.StatusCode
4682}
4683
4684// RequestID returns the service's response RequestID for request.
4685func (s *InternalServerException) RequestID() string {
4686	return s.RespMetadata.RequestID
4687}
4688
4689type ListAnomaliesForInsightInput struct {
4690	_ struct{} `type:"structure"`
4691
4692	// The ID of the insight. The returned anomalies belong to this insight.
4693	//
4694	// InsightId is a required field
4695	InsightId *string `location:"uri" locationName:"InsightId" min:"1" type:"string" required:"true"`
4696
4697	// The maximum number of results to return with a single call. To retrieve the
4698	// remaining results, make another call with the returned nextToken value.
4699	MaxResults *int64 `min:"1" type:"integer"`
4700
4701	// The pagination token to use to retrieve the next page of results for this
4702	// operation. If this value is null, it retrieves the first page.
4703	NextToken *string `min:"36" type:"string"`
4704
4705	// A time range used to specify when the requested anomalies started. All returned
4706	// anomalies started during this time range.
4707	StartTimeRange *StartTimeRange `type:"structure"`
4708}
4709
4710// String returns the string representation.
4711//
4712// API parameter values that are decorated as "sensitive" in the API will not
4713// be included in the string output. The member name will be present, but the
4714// value will be replaced with "sensitive".
4715func (s ListAnomaliesForInsightInput) String() string {
4716	return awsutil.Prettify(s)
4717}
4718
4719// GoString returns the string representation.
4720//
4721// API parameter values that are decorated as "sensitive" in the API will not
4722// be included in the string output. The member name will be present, but the
4723// value will be replaced with "sensitive".
4724func (s ListAnomaliesForInsightInput) GoString() string {
4725	return s.String()
4726}
4727
4728// Validate inspects the fields of the type to determine if they are valid.
4729func (s *ListAnomaliesForInsightInput) Validate() error {
4730	invalidParams := request.ErrInvalidParams{Context: "ListAnomaliesForInsightInput"}
4731	if s.InsightId == nil {
4732		invalidParams.Add(request.NewErrParamRequired("InsightId"))
4733	}
4734	if s.InsightId != nil && len(*s.InsightId) < 1 {
4735		invalidParams.Add(request.NewErrParamMinLen("InsightId", 1))
4736	}
4737	if s.MaxResults != nil && *s.MaxResults < 1 {
4738		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4739	}
4740	if s.NextToken != nil && len(*s.NextToken) < 36 {
4741		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
4742	}
4743
4744	if invalidParams.Len() > 0 {
4745		return invalidParams
4746	}
4747	return nil
4748}
4749
4750// SetInsightId sets the InsightId field's value.
4751func (s *ListAnomaliesForInsightInput) SetInsightId(v string) *ListAnomaliesForInsightInput {
4752	s.InsightId = &v
4753	return s
4754}
4755
4756// SetMaxResults sets the MaxResults field's value.
4757func (s *ListAnomaliesForInsightInput) SetMaxResults(v int64) *ListAnomaliesForInsightInput {
4758	s.MaxResults = &v
4759	return s
4760}
4761
4762// SetNextToken sets the NextToken field's value.
4763func (s *ListAnomaliesForInsightInput) SetNextToken(v string) *ListAnomaliesForInsightInput {
4764	s.NextToken = &v
4765	return s
4766}
4767
4768// SetStartTimeRange sets the StartTimeRange field's value.
4769func (s *ListAnomaliesForInsightInput) SetStartTimeRange(v *StartTimeRange) *ListAnomaliesForInsightInput {
4770	s.StartTimeRange = v
4771	return s
4772}
4773
4774type ListAnomaliesForInsightOutput struct {
4775	_ struct{} `type:"structure"`
4776
4777	// The pagination token to use to retrieve the next page of results for this
4778	// operation. If there are no more pages, this value is null.
4779	NextToken *string `min:"36" type:"string"`
4780
4781	// An array of ProactiveAnomalySummary objects that represent the requested
4782	// anomalies
4783	ProactiveAnomalies []*ProactiveAnomalySummary `type:"list"`
4784
4785	// An array of ReactiveAnomalySummary objects that represent the requested anomalies
4786	ReactiveAnomalies []*ReactiveAnomalySummary `type:"list"`
4787}
4788
4789// String returns the string representation.
4790//
4791// API parameter values that are decorated as "sensitive" in the API will not
4792// be included in the string output. The member name will be present, but the
4793// value will be replaced with "sensitive".
4794func (s ListAnomaliesForInsightOutput) String() string {
4795	return awsutil.Prettify(s)
4796}
4797
4798// GoString returns the string representation.
4799//
4800// API parameter values that are decorated as "sensitive" in the API will not
4801// be included in the string output. The member name will be present, but the
4802// value will be replaced with "sensitive".
4803func (s ListAnomaliesForInsightOutput) GoString() string {
4804	return s.String()
4805}
4806
4807// SetNextToken sets the NextToken field's value.
4808func (s *ListAnomaliesForInsightOutput) SetNextToken(v string) *ListAnomaliesForInsightOutput {
4809	s.NextToken = &v
4810	return s
4811}
4812
4813// SetProactiveAnomalies sets the ProactiveAnomalies field's value.
4814func (s *ListAnomaliesForInsightOutput) SetProactiveAnomalies(v []*ProactiveAnomalySummary) *ListAnomaliesForInsightOutput {
4815	s.ProactiveAnomalies = v
4816	return s
4817}
4818
4819// SetReactiveAnomalies sets the ReactiveAnomalies field's value.
4820func (s *ListAnomaliesForInsightOutput) SetReactiveAnomalies(v []*ReactiveAnomalySummary) *ListAnomaliesForInsightOutput {
4821	s.ReactiveAnomalies = v
4822	return s
4823}
4824
4825// Filters you can use to specify which events are returned when ListEvents
4826// is called.
4827type ListEventsFilters struct {
4828	_ struct{} `type:"structure"`
4829
4830	// The source, AWS_CLOUD_TRAIL or AWS_CODE_DEPLOY, of the events you want returned.
4831	DataSource *string `type:"string" enum:"EventDataSource"`
4832
4833	// The class of the events you want to filter for, such as an infrastructure
4834	// change, a deployment, or a schema change.
4835	EventClass *string `type:"string" enum:"EventClass"`
4836
4837	// The AWS source that emitted the events you want to filter for.
4838	EventSource *string `min:"10" type:"string"`
4839
4840	// A time range during which you want the filtered events to have occurred.
4841	EventTimeRange *EventTimeRange `type:"structure"`
4842
4843	// An ID of an insight that is related to the events you want to filter for.
4844	InsightId *string `min:"1" type:"string"`
4845
4846	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
4847	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
4848	// be configured to analyze only the AWS resources that are defined in the stacks.
4849	// You can specify up to 500 AWS CloudFormation stacks.
4850	ResourceCollection *ResourceCollection `type:"structure"`
4851}
4852
4853// String returns the string representation.
4854//
4855// API parameter values that are decorated as "sensitive" in the API will not
4856// be included in the string output. The member name will be present, but the
4857// value will be replaced with "sensitive".
4858func (s ListEventsFilters) String() string {
4859	return awsutil.Prettify(s)
4860}
4861
4862// GoString returns the string representation.
4863//
4864// API parameter values that are decorated as "sensitive" in the API will not
4865// be included in the string output. The member name will be present, but the
4866// value will be replaced with "sensitive".
4867func (s ListEventsFilters) GoString() string {
4868	return s.String()
4869}
4870
4871// Validate inspects the fields of the type to determine if they are valid.
4872func (s *ListEventsFilters) Validate() error {
4873	invalidParams := request.ErrInvalidParams{Context: "ListEventsFilters"}
4874	if s.EventSource != nil && len(*s.EventSource) < 10 {
4875		invalidParams.Add(request.NewErrParamMinLen("EventSource", 10))
4876	}
4877	if s.InsightId != nil && len(*s.InsightId) < 1 {
4878		invalidParams.Add(request.NewErrParamMinLen("InsightId", 1))
4879	}
4880	if s.EventTimeRange != nil {
4881		if err := s.EventTimeRange.Validate(); err != nil {
4882			invalidParams.AddNested("EventTimeRange", err.(request.ErrInvalidParams))
4883		}
4884	}
4885
4886	if invalidParams.Len() > 0 {
4887		return invalidParams
4888	}
4889	return nil
4890}
4891
4892// SetDataSource sets the DataSource field's value.
4893func (s *ListEventsFilters) SetDataSource(v string) *ListEventsFilters {
4894	s.DataSource = &v
4895	return s
4896}
4897
4898// SetEventClass sets the EventClass field's value.
4899func (s *ListEventsFilters) SetEventClass(v string) *ListEventsFilters {
4900	s.EventClass = &v
4901	return s
4902}
4903
4904// SetEventSource sets the EventSource field's value.
4905func (s *ListEventsFilters) SetEventSource(v string) *ListEventsFilters {
4906	s.EventSource = &v
4907	return s
4908}
4909
4910// SetEventTimeRange sets the EventTimeRange field's value.
4911func (s *ListEventsFilters) SetEventTimeRange(v *EventTimeRange) *ListEventsFilters {
4912	s.EventTimeRange = v
4913	return s
4914}
4915
4916// SetInsightId sets the InsightId field's value.
4917func (s *ListEventsFilters) SetInsightId(v string) *ListEventsFilters {
4918	s.InsightId = &v
4919	return s
4920}
4921
4922// SetResourceCollection sets the ResourceCollection field's value.
4923func (s *ListEventsFilters) SetResourceCollection(v *ResourceCollection) *ListEventsFilters {
4924	s.ResourceCollection = v
4925	return s
4926}
4927
4928type ListEventsInput struct {
4929	_ struct{} `type:"structure"`
4930
4931	// A ListEventsFilters object used to specify which events to return.
4932	//
4933	// Filters is a required field
4934	Filters *ListEventsFilters `type:"structure" required:"true"`
4935
4936	// The maximum number of results to return with a single call. To retrieve the
4937	// remaining results, make another call with the returned nextToken value.
4938	MaxResults *int64 `min:"1" type:"integer"`
4939
4940	// The pagination token to use to retrieve the next page of results for this
4941	// operation. If this value is null, it retrieves the first page.
4942	NextToken *string `min:"36" type:"string"`
4943}
4944
4945// String returns the string representation.
4946//
4947// API parameter values that are decorated as "sensitive" in the API will not
4948// be included in the string output. The member name will be present, but the
4949// value will be replaced with "sensitive".
4950func (s ListEventsInput) String() string {
4951	return awsutil.Prettify(s)
4952}
4953
4954// GoString returns the string representation.
4955//
4956// API parameter values that are decorated as "sensitive" in the API will not
4957// be included in the string output. The member name will be present, but the
4958// value will be replaced with "sensitive".
4959func (s ListEventsInput) GoString() string {
4960	return s.String()
4961}
4962
4963// Validate inspects the fields of the type to determine if they are valid.
4964func (s *ListEventsInput) Validate() error {
4965	invalidParams := request.ErrInvalidParams{Context: "ListEventsInput"}
4966	if s.Filters == nil {
4967		invalidParams.Add(request.NewErrParamRequired("Filters"))
4968	}
4969	if s.MaxResults != nil && *s.MaxResults < 1 {
4970		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4971	}
4972	if s.NextToken != nil && len(*s.NextToken) < 36 {
4973		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
4974	}
4975	if s.Filters != nil {
4976		if err := s.Filters.Validate(); err != nil {
4977			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
4978		}
4979	}
4980
4981	if invalidParams.Len() > 0 {
4982		return invalidParams
4983	}
4984	return nil
4985}
4986
4987// SetFilters sets the Filters field's value.
4988func (s *ListEventsInput) SetFilters(v *ListEventsFilters) *ListEventsInput {
4989	s.Filters = v
4990	return s
4991}
4992
4993// SetMaxResults sets the MaxResults field's value.
4994func (s *ListEventsInput) SetMaxResults(v int64) *ListEventsInput {
4995	s.MaxResults = &v
4996	return s
4997}
4998
4999// SetNextToken sets the NextToken field's value.
5000func (s *ListEventsInput) SetNextToken(v string) *ListEventsInput {
5001	s.NextToken = &v
5002	return s
5003}
5004
5005type ListEventsOutput struct {
5006	_ struct{} `type:"structure"`
5007
5008	// A list of the requested events.
5009	//
5010	// Events is a required field
5011	Events []*Event `type:"list" required:"true"`
5012
5013	// The pagination token to use to retrieve the next page of results for this
5014	// operation. If there are no more pages, this value is null.
5015	NextToken *string `min:"36" type:"string"`
5016}
5017
5018// String returns the string representation.
5019//
5020// API parameter values that are decorated as "sensitive" in the API will not
5021// be included in the string output. The member name will be present, but the
5022// value will be replaced with "sensitive".
5023func (s ListEventsOutput) String() string {
5024	return awsutil.Prettify(s)
5025}
5026
5027// GoString returns the string representation.
5028//
5029// API parameter values that are decorated as "sensitive" in the API will not
5030// be included in the string output. The member name will be present, but the
5031// value will be replaced with "sensitive".
5032func (s ListEventsOutput) GoString() string {
5033	return s.String()
5034}
5035
5036// SetEvents sets the Events field's value.
5037func (s *ListEventsOutput) SetEvents(v []*Event) *ListEventsOutput {
5038	s.Events = v
5039	return s
5040}
5041
5042// SetNextToken sets the NextToken field's value.
5043func (s *ListEventsOutput) SetNextToken(v string) *ListEventsOutput {
5044	s.NextToken = &v
5045	return s
5046}
5047
5048// Used to filter for insights that have any status.
5049type ListInsightsAnyStatusFilter struct {
5050	_ struct{} `type:"structure"`
5051
5052	// A time range used to specify when the behavior of the filtered insights started.
5053	//
5054	// StartTimeRange is a required field
5055	StartTimeRange *StartTimeRange `type:"structure" required:"true"`
5056
5057	// Use to filter for either REACTIVE or PROACTIVE insights.
5058	//
5059	// Type is a required field
5060	Type *string `type:"string" required:"true" enum:"InsightType"`
5061}
5062
5063// String returns the string representation.
5064//
5065// API parameter values that are decorated as "sensitive" in the API will not
5066// be included in the string output. The member name will be present, but the
5067// value will be replaced with "sensitive".
5068func (s ListInsightsAnyStatusFilter) String() string {
5069	return awsutil.Prettify(s)
5070}
5071
5072// GoString returns the string representation.
5073//
5074// API parameter values that are decorated as "sensitive" in the API will not
5075// be included in the string output. The member name will be present, but the
5076// value will be replaced with "sensitive".
5077func (s ListInsightsAnyStatusFilter) GoString() string {
5078	return s.String()
5079}
5080
5081// Validate inspects the fields of the type to determine if they are valid.
5082func (s *ListInsightsAnyStatusFilter) Validate() error {
5083	invalidParams := request.ErrInvalidParams{Context: "ListInsightsAnyStatusFilter"}
5084	if s.StartTimeRange == nil {
5085		invalidParams.Add(request.NewErrParamRequired("StartTimeRange"))
5086	}
5087	if s.Type == nil {
5088		invalidParams.Add(request.NewErrParamRequired("Type"))
5089	}
5090
5091	if invalidParams.Len() > 0 {
5092		return invalidParams
5093	}
5094	return nil
5095}
5096
5097// SetStartTimeRange sets the StartTimeRange field's value.
5098func (s *ListInsightsAnyStatusFilter) SetStartTimeRange(v *StartTimeRange) *ListInsightsAnyStatusFilter {
5099	s.StartTimeRange = v
5100	return s
5101}
5102
5103// SetType sets the Type field's value.
5104func (s *ListInsightsAnyStatusFilter) SetType(v string) *ListInsightsAnyStatusFilter {
5105	s.Type = &v
5106	return s
5107}
5108
5109// Used to filter for insights that have the status CLOSED.
5110type ListInsightsClosedStatusFilter struct {
5111	_ struct{} `type:"structure"`
5112
5113	// A time range used to specify when the behavior of the filtered insights ended.
5114	//
5115	// EndTimeRange is a required field
5116	EndTimeRange *EndTimeRange `type:"structure" required:"true"`
5117
5118	// Use to filter for either REACTIVE or PROACTIVE insights.
5119	//
5120	// Type is a required field
5121	Type *string `type:"string" required:"true" enum:"InsightType"`
5122}
5123
5124// String 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 ListInsightsClosedStatusFilter) String() string {
5130	return awsutil.Prettify(s)
5131}
5132
5133// GoString returns the string representation.
5134//
5135// API parameter values that are decorated as "sensitive" in the API will not
5136// be included in the string output. The member name will be present, but the
5137// value will be replaced with "sensitive".
5138func (s ListInsightsClosedStatusFilter) GoString() string {
5139	return s.String()
5140}
5141
5142// Validate inspects the fields of the type to determine if they are valid.
5143func (s *ListInsightsClosedStatusFilter) Validate() error {
5144	invalidParams := request.ErrInvalidParams{Context: "ListInsightsClosedStatusFilter"}
5145	if s.EndTimeRange == nil {
5146		invalidParams.Add(request.NewErrParamRequired("EndTimeRange"))
5147	}
5148	if s.Type == nil {
5149		invalidParams.Add(request.NewErrParamRequired("Type"))
5150	}
5151
5152	if invalidParams.Len() > 0 {
5153		return invalidParams
5154	}
5155	return nil
5156}
5157
5158// SetEndTimeRange sets the EndTimeRange field's value.
5159func (s *ListInsightsClosedStatusFilter) SetEndTimeRange(v *EndTimeRange) *ListInsightsClosedStatusFilter {
5160	s.EndTimeRange = v
5161	return s
5162}
5163
5164// SetType sets the Type field's value.
5165func (s *ListInsightsClosedStatusFilter) SetType(v string) *ListInsightsClosedStatusFilter {
5166	s.Type = &v
5167	return s
5168}
5169
5170type ListInsightsInput struct {
5171	_ struct{} `type:"structure"`
5172
5173	// The maximum number of results to return with a single call. To retrieve the
5174	// remaining results, make another call with the returned nextToken value.
5175	MaxResults *int64 `min:"1" type:"integer"`
5176
5177	// The pagination token to use to retrieve the next page of results for this
5178	// operation. If this value is null, it retrieves the first page.
5179	NextToken *string `min:"36" type:"string"`
5180
5181	// A filter used to filter the returned insights by their status. You can specify
5182	// one status filter.
5183	//
5184	// StatusFilter is a required field
5185	StatusFilter *ListInsightsStatusFilter `type:"structure" required:"true"`
5186}
5187
5188// String returns the string representation.
5189//
5190// API parameter values that are decorated as "sensitive" in the API will not
5191// be included in the string output. The member name will be present, but the
5192// value will be replaced with "sensitive".
5193func (s ListInsightsInput) String() string {
5194	return awsutil.Prettify(s)
5195}
5196
5197// GoString returns the string representation.
5198//
5199// API parameter values that are decorated as "sensitive" in the API will not
5200// be included in the string output. The member name will be present, but the
5201// value will be replaced with "sensitive".
5202func (s ListInsightsInput) GoString() string {
5203	return s.String()
5204}
5205
5206// Validate inspects the fields of the type to determine if they are valid.
5207func (s *ListInsightsInput) Validate() error {
5208	invalidParams := request.ErrInvalidParams{Context: "ListInsightsInput"}
5209	if s.MaxResults != nil && *s.MaxResults < 1 {
5210		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5211	}
5212	if s.NextToken != nil && len(*s.NextToken) < 36 {
5213		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
5214	}
5215	if s.StatusFilter == nil {
5216		invalidParams.Add(request.NewErrParamRequired("StatusFilter"))
5217	}
5218	if s.StatusFilter != nil {
5219		if err := s.StatusFilter.Validate(); err != nil {
5220			invalidParams.AddNested("StatusFilter", err.(request.ErrInvalidParams))
5221		}
5222	}
5223
5224	if invalidParams.Len() > 0 {
5225		return invalidParams
5226	}
5227	return nil
5228}
5229
5230// SetMaxResults sets the MaxResults field's value.
5231func (s *ListInsightsInput) SetMaxResults(v int64) *ListInsightsInput {
5232	s.MaxResults = &v
5233	return s
5234}
5235
5236// SetNextToken sets the NextToken field's value.
5237func (s *ListInsightsInput) SetNextToken(v string) *ListInsightsInput {
5238	s.NextToken = &v
5239	return s
5240}
5241
5242// SetStatusFilter sets the StatusFilter field's value.
5243func (s *ListInsightsInput) SetStatusFilter(v *ListInsightsStatusFilter) *ListInsightsInput {
5244	s.StatusFilter = v
5245	return s
5246}
5247
5248// Used to filter for insights that have the status ONGOING.
5249type ListInsightsOngoingStatusFilter struct {
5250	_ struct{} `type:"structure"`
5251
5252	// Use to filter for either REACTIVE or PROACTIVE insights.
5253	//
5254	// Type is a required field
5255	Type *string `type:"string" required:"true" enum:"InsightType"`
5256}
5257
5258// String returns the string representation.
5259//
5260// API parameter values that are decorated as "sensitive" in the API will not
5261// be included in the string output. The member name will be present, but the
5262// value will be replaced with "sensitive".
5263func (s ListInsightsOngoingStatusFilter) String() string {
5264	return awsutil.Prettify(s)
5265}
5266
5267// GoString returns the string representation.
5268//
5269// API parameter values that are decorated as "sensitive" in the API will not
5270// be included in the string output. The member name will be present, but the
5271// value will be replaced with "sensitive".
5272func (s ListInsightsOngoingStatusFilter) GoString() string {
5273	return s.String()
5274}
5275
5276// Validate inspects the fields of the type to determine if they are valid.
5277func (s *ListInsightsOngoingStatusFilter) Validate() error {
5278	invalidParams := request.ErrInvalidParams{Context: "ListInsightsOngoingStatusFilter"}
5279	if s.Type == nil {
5280		invalidParams.Add(request.NewErrParamRequired("Type"))
5281	}
5282
5283	if invalidParams.Len() > 0 {
5284		return invalidParams
5285	}
5286	return nil
5287}
5288
5289// SetType sets the Type field's value.
5290func (s *ListInsightsOngoingStatusFilter) SetType(v string) *ListInsightsOngoingStatusFilter {
5291	s.Type = &v
5292	return s
5293}
5294
5295type ListInsightsOutput struct {
5296	_ struct{} `type:"structure"`
5297
5298	// The pagination token to use to retrieve the next page of results for this
5299	// operation. If there are no more pages, this value is null.
5300	NextToken *string `min:"36" type:"string"`
5301
5302	// The returned list of proactive insights.
5303	ProactiveInsights []*ProactiveInsightSummary `type:"list"`
5304
5305	// The returned list of reactive insights.
5306	ReactiveInsights []*ReactiveInsightSummary `type:"list"`
5307}
5308
5309// String returns the string representation.
5310//
5311// API parameter values that are decorated as "sensitive" in the API will not
5312// be included in the string output. The member name will be present, but the
5313// value will be replaced with "sensitive".
5314func (s ListInsightsOutput) String() string {
5315	return awsutil.Prettify(s)
5316}
5317
5318// GoString returns the string representation.
5319//
5320// API parameter values that are decorated as "sensitive" in the API will not
5321// be included in the string output. The member name will be present, but the
5322// value will be replaced with "sensitive".
5323func (s ListInsightsOutput) GoString() string {
5324	return s.String()
5325}
5326
5327// SetNextToken sets the NextToken field's value.
5328func (s *ListInsightsOutput) SetNextToken(v string) *ListInsightsOutput {
5329	s.NextToken = &v
5330	return s
5331}
5332
5333// SetProactiveInsights sets the ProactiveInsights field's value.
5334func (s *ListInsightsOutput) SetProactiveInsights(v []*ProactiveInsightSummary) *ListInsightsOutput {
5335	s.ProactiveInsights = v
5336	return s
5337}
5338
5339// SetReactiveInsights sets the ReactiveInsights field's value.
5340func (s *ListInsightsOutput) SetReactiveInsights(v []*ReactiveInsightSummary) *ListInsightsOutput {
5341	s.ReactiveInsights = v
5342	return s
5343}
5344
5345// A filter used by ListInsights to specify which insights to return.
5346type ListInsightsStatusFilter struct {
5347	_ struct{} `type:"structure"`
5348
5349	// A ListInsightsAnyStatusFilter that specifies insights of any status that
5350	// are either REACTIVE or PROACTIVE.
5351	Any *ListInsightsAnyStatusFilter `type:"structure"`
5352
5353	// A ListInsightsClosedStatusFilter that specifies closed insights that are
5354	// either REACTIVE or PROACTIVE.
5355	Closed *ListInsightsClosedStatusFilter `type:"structure"`
5356
5357	// A ListInsightsAnyStatusFilter that specifies ongoing insights that are either
5358	// REACTIVE or PROACTIVE.
5359	Ongoing *ListInsightsOngoingStatusFilter `type:"structure"`
5360}
5361
5362// String returns the string representation.
5363//
5364// API parameter values that are decorated as "sensitive" in the API will not
5365// be included in the string output. The member name will be present, but the
5366// value will be replaced with "sensitive".
5367func (s ListInsightsStatusFilter) String() string {
5368	return awsutil.Prettify(s)
5369}
5370
5371// GoString returns the string representation.
5372//
5373// API parameter values that are decorated as "sensitive" in the API will not
5374// be included in the string output. The member name will be present, but the
5375// value will be replaced with "sensitive".
5376func (s ListInsightsStatusFilter) GoString() string {
5377	return s.String()
5378}
5379
5380// Validate inspects the fields of the type to determine if they are valid.
5381func (s *ListInsightsStatusFilter) Validate() error {
5382	invalidParams := request.ErrInvalidParams{Context: "ListInsightsStatusFilter"}
5383	if s.Any != nil {
5384		if err := s.Any.Validate(); err != nil {
5385			invalidParams.AddNested("Any", err.(request.ErrInvalidParams))
5386		}
5387	}
5388	if s.Closed != nil {
5389		if err := s.Closed.Validate(); err != nil {
5390			invalidParams.AddNested("Closed", err.(request.ErrInvalidParams))
5391		}
5392	}
5393	if s.Ongoing != nil {
5394		if err := s.Ongoing.Validate(); err != nil {
5395			invalidParams.AddNested("Ongoing", err.(request.ErrInvalidParams))
5396		}
5397	}
5398
5399	if invalidParams.Len() > 0 {
5400		return invalidParams
5401	}
5402	return nil
5403}
5404
5405// SetAny sets the Any field's value.
5406func (s *ListInsightsStatusFilter) SetAny(v *ListInsightsAnyStatusFilter) *ListInsightsStatusFilter {
5407	s.Any = v
5408	return s
5409}
5410
5411// SetClosed sets the Closed field's value.
5412func (s *ListInsightsStatusFilter) SetClosed(v *ListInsightsClosedStatusFilter) *ListInsightsStatusFilter {
5413	s.Closed = v
5414	return s
5415}
5416
5417// SetOngoing sets the Ongoing field's value.
5418func (s *ListInsightsStatusFilter) SetOngoing(v *ListInsightsOngoingStatusFilter) *ListInsightsStatusFilter {
5419	s.Ongoing = v
5420	return s
5421}
5422
5423type ListNotificationChannelsInput struct {
5424	_ struct{} `type:"structure"`
5425
5426	// The pagination token to use to retrieve the next page of results for this
5427	// operation. If this value is null, it retrieves the first page.
5428	NextToken *string `min:"36" type:"string"`
5429}
5430
5431// String returns the string representation.
5432//
5433// API parameter values that are decorated as "sensitive" in the API will not
5434// be included in the string output. The member name will be present, but the
5435// value will be replaced with "sensitive".
5436func (s ListNotificationChannelsInput) String() string {
5437	return awsutil.Prettify(s)
5438}
5439
5440// GoString returns the string representation.
5441//
5442// API parameter values that are decorated as "sensitive" in the API will not
5443// be included in the string output. The member name will be present, but the
5444// value will be replaced with "sensitive".
5445func (s ListNotificationChannelsInput) GoString() string {
5446	return s.String()
5447}
5448
5449// Validate inspects the fields of the type to determine if they are valid.
5450func (s *ListNotificationChannelsInput) Validate() error {
5451	invalidParams := request.ErrInvalidParams{Context: "ListNotificationChannelsInput"}
5452	if s.NextToken != nil && len(*s.NextToken) < 36 {
5453		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
5454	}
5455
5456	if invalidParams.Len() > 0 {
5457		return invalidParams
5458	}
5459	return nil
5460}
5461
5462// SetNextToken sets the NextToken field's value.
5463func (s *ListNotificationChannelsInput) SetNextToken(v string) *ListNotificationChannelsInput {
5464	s.NextToken = &v
5465	return s
5466}
5467
5468type ListNotificationChannelsOutput struct {
5469	_ struct{} `type:"structure"`
5470
5471	// An array that contains the requested notification channels.
5472	Channels []*NotificationChannel `type:"list"`
5473
5474	// The pagination token to use to retrieve the next page of results for this
5475	// operation. If there are no more pages, this value is null.
5476	NextToken *string `min:"36" type:"string"`
5477}
5478
5479// String 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 ListNotificationChannelsOutput) String() string {
5485	return awsutil.Prettify(s)
5486}
5487
5488// GoString returns the string representation.
5489//
5490// API parameter values that are decorated as "sensitive" in the API will not
5491// be included in the string output. The member name will be present, but the
5492// value will be replaced with "sensitive".
5493func (s ListNotificationChannelsOutput) GoString() string {
5494	return s.String()
5495}
5496
5497// SetChannels sets the Channels field's value.
5498func (s *ListNotificationChannelsOutput) SetChannels(v []*NotificationChannel) *ListNotificationChannelsOutput {
5499	s.Channels = v
5500	return s
5501}
5502
5503// SetNextToken sets the NextToken field's value.
5504func (s *ListNotificationChannelsOutput) SetNextToken(v string) *ListNotificationChannelsOutput {
5505	s.NextToken = &v
5506	return s
5507}
5508
5509type ListRecommendationsInput struct {
5510	_ struct{} `type:"structure"`
5511
5512	// The ID of the requested insight.
5513	//
5514	// InsightId is a required field
5515	InsightId *string `min:"1" type:"string" required:"true"`
5516
5517	// A locale that specifies the language to use for recommendations.
5518	Locale *string `type:"string" enum:"Locale"`
5519
5520	// The pagination token to use to retrieve the next page of results for this
5521	// operation. If this value is null, it retrieves the first page.
5522	NextToken *string `min:"36" type:"string"`
5523}
5524
5525// String returns the string representation.
5526//
5527// API parameter values that are decorated as "sensitive" in the API will not
5528// be included in the string output. The member name will be present, but the
5529// value will be replaced with "sensitive".
5530func (s ListRecommendationsInput) String() string {
5531	return awsutil.Prettify(s)
5532}
5533
5534// GoString returns the string representation.
5535//
5536// API parameter values that are decorated as "sensitive" in the API will not
5537// be included in the string output. The member name will be present, but the
5538// value will be replaced with "sensitive".
5539func (s ListRecommendationsInput) GoString() string {
5540	return s.String()
5541}
5542
5543// Validate inspects the fields of the type to determine if they are valid.
5544func (s *ListRecommendationsInput) Validate() error {
5545	invalidParams := request.ErrInvalidParams{Context: "ListRecommendationsInput"}
5546	if s.InsightId == nil {
5547		invalidParams.Add(request.NewErrParamRequired("InsightId"))
5548	}
5549	if s.InsightId != nil && len(*s.InsightId) < 1 {
5550		invalidParams.Add(request.NewErrParamMinLen("InsightId", 1))
5551	}
5552	if s.NextToken != nil && len(*s.NextToken) < 36 {
5553		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
5554	}
5555
5556	if invalidParams.Len() > 0 {
5557		return invalidParams
5558	}
5559	return nil
5560}
5561
5562// SetInsightId sets the InsightId field's value.
5563func (s *ListRecommendationsInput) SetInsightId(v string) *ListRecommendationsInput {
5564	s.InsightId = &v
5565	return s
5566}
5567
5568// SetLocale sets the Locale field's value.
5569func (s *ListRecommendationsInput) SetLocale(v string) *ListRecommendationsInput {
5570	s.Locale = &v
5571	return s
5572}
5573
5574// SetNextToken sets the NextToken field's value.
5575func (s *ListRecommendationsInput) SetNextToken(v string) *ListRecommendationsInput {
5576	s.NextToken = &v
5577	return s
5578}
5579
5580type ListRecommendationsOutput struct {
5581	_ struct{} `type:"structure"`
5582
5583	// The pagination token to use to retrieve the next page of results for this
5584	// operation. If there are no more pages, this value is null.
5585	NextToken *string `min:"36" type:"string"`
5586
5587	// An array of the requested recommendations.
5588	Recommendations []*Recommendation `type:"list"`
5589}
5590
5591// String returns the string representation.
5592//
5593// API parameter values that are decorated as "sensitive" in the API will not
5594// be included in the string output. The member name will be present, but the
5595// value will be replaced with "sensitive".
5596func (s ListRecommendationsOutput) String() string {
5597	return awsutil.Prettify(s)
5598}
5599
5600// GoString returns the string representation.
5601//
5602// API parameter values that are decorated as "sensitive" in the API will not
5603// be included in the string output. The member name will be present, but the
5604// value will be replaced with "sensitive".
5605func (s ListRecommendationsOutput) GoString() string {
5606	return s.String()
5607}
5608
5609// SetNextToken sets the NextToken field's value.
5610func (s *ListRecommendationsOutput) SetNextToken(v string) *ListRecommendationsOutput {
5611	s.NextToken = &v
5612	return s
5613}
5614
5615// SetRecommendations sets the Recommendations field's value.
5616func (s *ListRecommendationsOutput) SetRecommendations(v []*Recommendation) *ListRecommendationsOutput {
5617	s.Recommendations = v
5618	return s
5619}
5620
5621// Information about a notification channel. A notification channel is used
5622// to notify you when DevOps Guru creates an insight. The one supported notification
5623// channel is Amazon Simple Notification Service (Amazon SNS).
5624//
5625// If you use an Amazon SNS topic in another account, you must attach a policy
5626// to it that grants DevOps Guru permission to it notifications. DevOps Guru
5627// adds the required policy on your behalf to send notifications using Amazon
5628// SNS in your account. For more information, see Permissions for cross account
5629// Amazon SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html).
5630//
5631// If you use an Amazon SNS topic that is encrypted by an AWS Key Management
5632// Service customer-managed key (CMK), then you must add permissions to the
5633// CMK. For more information, see Permissions for AWS KMS–encrypted Amazon
5634// SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html).
5635type NotificationChannel struct {
5636	_ struct{} `type:"structure"`
5637
5638	// A NotificationChannelConfig object that contains information about configured
5639	// notification channels.
5640	Config *NotificationChannelConfig `type:"structure"`
5641
5642	// The ID of a notification channel.
5643	Id *string `min:"36" type:"string"`
5644}
5645
5646// String returns the string representation.
5647//
5648// API parameter values that are decorated as "sensitive" in the API will not
5649// be included in the string output. The member name will be present, but the
5650// value will be replaced with "sensitive".
5651func (s NotificationChannel) String() string {
5652	return awsutil.Prettify(s)
5653}
5654
5655// GoString returns the string representation.
5656//
5657// API parameter values that are decorated as "sensitive" in the API will not
5658// be included in the string output. The member name will be present, but the
5659// value will be replaced with "sensitive".
5660func (s NotificationChannel) GoString() string {
5661	return s.String()
5662}
5663
5664// SetConfig sets the Config field's value.
5665func (s *NotificationChannel) SetConfig(v *NotificationChannelConfig) *NotificationChannel {
5666	s.Config = v
5667	return s
5668}
5669
5670// SetId sets the Id field's value.
5671func (s *NotificationChannel) SetId(v string) *NotificationChannel {
5672	s.Id = &v
5673	return s
5674}
5675
5676// Information about notification channels you have configured with DevOps Guru.
5677// The one supported notification channel is Amazon Simple Notification Service
5678// (Amazon SNS).
5679type NotificationChannelConfig struct {
5680	_ struct{} `type:"structure"`
5681
5682	// Information about a notification channel configured in DevOps Guru to send
5683	// notifications when insights are created.
5684	//
5685	// If you use an Amazon SNS topic in another account, you must attach a policy
5686	// to it that grants DevOps Guru permission to it notifications. DevOps Guru
5687	// adds the required policy on your behalf to send notifications using Amazon
5688	// SNS in your account. For more information, see Permissions for cross account
5689	// Amazon SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html).
5690	//
5691	// If you use an Amazon SNS topic that is encrypted by an AWS Key Management
5692	// Service customer-managed key (CMK), then you must add permissions to the
5693	// CMK. For more information, see Permissions for AWS KMS–encrypted Amazon
5694	// SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html).
5695	//
5696	// Sns is a required field
5697	Sns *SnsChannelConfig `type:"structure" required:"true"`
5698}
5699
5700// String returns the string representation.
5701//
5702// API parameter values that are decorated as "sensitive" in the API will not
5703// be included in the string output. The member name will be present, but the
5704// value will be replaced with "sensitive".
5705func (s NotificationChannelConfig) String() string {
5706	return awsutil.Prettify(s)
5707}
5708
5709// GoString returns the string representation.
5710//
5711// API parameter values that are decorated as "sensitive" in the API will not
5712// be included in the string output. The member name will be present, but the
5713// value will be replaced with "sensitive".
5714func (s NotificationChannelConfig) GoString() string {
5715	return s.String()
5716}
5717
5718// Validate inspects the fields of the type to determine if they are valid.
5719func (s *NotificationChannelConfig) Validate() error {
5720	invalidParams := request.ErrInvalidParams{Context: "NotificationChannelConfig"}
5721	if s.Sns == nil {
5722		invalidParams.Add(request.NewErrParamRequired("Sns"))
5723	}
5724	if s.Sns != nil {
5725		if err := s.Sns.Validate(); err != nil {
5726			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
5727		}
5728	}
5729
5730	if invalidParams.Len() > 0 {
5731		return invalidParams
5732	}
5733	return nil
5734}
5735
5736// SetSns sets the Sns field's value.
5737func (s *NotificationChannelConfig) SetSns(v *SnsChannelConfig) *NotificationChannelConfig {
5738	s.Sns = v
5739	return s
5740}
5741
5742// Information about whether DevOps Guru is configured to create an OpsItem
5743// in AWS Systems Manager OpsCenter for each created insight.
5744type OpsCenterIntegration struct {
5745	_ struct{} `type:"structure"`
5746
5747	// Specifies if DevOps Guru is enabled to create an AWS Systems Manager OpsItem
5748	// for each created insight.
5749	OptInStatus *string `type:"string" enum:"OptInStatus"`
5750}
5751
5752// String returns the string representation.
5753//
5754// API parameter values that are decorated as "sensitive" in the API will not
5755// be included in the string output. The member name will be present, but the
5756// value will be replaced with "sensitive".
5757func (s OpsCenterIntegration) String() string {
5758	return awsutil.Prettify(s)
5759}
5760
5761// GoString returns the string representation.
5762//
5763// API parameter values that are decorated as "sensitive" in the API will not
5764// be included in the string output. The member name will be present, but the
5765// value will be replaced with "sensitive".
5766func (s OpsCenterIntegration) GoString() string {
5767	return s.String()
5768}
5769
5770// SetOptInStatus sets the OptInStatus field's value.
5771func (s *OpsCenterIntegration) SetOptInStatus(v string) *OpsCenterIntegration {
5772	s.OptInStatus = &v
5773	return s
5774}
5775
5776// Information about whether DevOps Guru is configured to create an OpsItem
5777// in AWS Systems Manager OpsCenter for each created insight.
5778type OpsCenterIntegrationConfig struct {
5779	_ struct{} `type:"structure"`
5780
5781	// Specifies if DevOps Guru is enabled to create an AWS Systems Manager OpsItem
5782	// for each created insight.
5783	OptInStatus *string `type:"string" enum:"OptInStatus"`
5784}
5785
5786// String returns the string representation.
5787//
5788// API parameter values that are decorated as "sensitive" in the API will not
5789// be included in the string output. The member name will be present, but the
5790// value will be replaced with "sensitive".
5791func (s OpsCenterIntegrationConfig) String() string {
5792	return awsutil.Prettify(s)
5793}
5794
5795// GoString returns the string representation.
5796//
5797// API parameter values that are decorated as "sensitive" in the API will not
5798// be included in the string output. The member name will be present, but the
5799// value will be replaced with "sensitive".
5800func (s OpsCenterIntegrationConfig) GoString() string {
5801	return s.String()
5802}
5803
5804// SetOptInStatus sets the OptInStatus field's value.
5805func (s *OpsCenterIntegrationConfig) SetOptInStatus(v string) *OpsCenterIntegrationConfig {
5806	s.OptInStatus = &v
5807	return s
5808}
5809
5810// The time range during which anomalous behavior in a proactive anomaly or
5811// an insight is expected to occur.
5812type PredictionTimeRange struct {
5813	_ struct{} `type:"structure"`
5814
5815	// The time when the behavior in a proactive insight is expected to end.
5816	EndTime *time.Time `type:"timestamp"`
5817
5818	// The time range during which a metric limit is expected to be exceeded. This
5819	// applies to proactive insights only.
5820	//
5821	// StartTime is a required field
5822	StartTime *time.Time `type:"timestamp" required:"true"`
5823}
5824
5825// String returns the string representation.
5826//
5827// API parameter values that are decorated as "sensitive" in the API will not
5828// be included in the string output. The member name will be present, but the
5829// value will be replaced with "sensitive".
5830func (s PredictionTimeRange) String() string {
5831	return awsutil.Prettify(s)
5832}
5833
5834// GoString returns the string representation.
5835//
5836// API parameter values that are decorated as "sensitive" in the API will not
5837// be included in the string output. The member name will be present, but the
5838// value will be replaced with "sensitive".
5839func (s PredictionTimeRange) GoString() string {
5840	return s.String()
5841}
5842
5843// SetEndTime sets the EndTime field's value.
5844func (s *PredictionTimeRange) SetEndTime(v time.Time) *PredictionTimeRange {
5845	s.EndTime = &v
5846	return s
5847}
5848
5849// SetStartTime sets the StartTime field's value.
5850func (s *PredictionTimeRange) SetStartTime(v time.Time) *PredictionTimeRange {
5851	s.StartTime = &v
5852	return s
5853}
5854
5855// Information about an anomaly. This object is returned by ListAnomalies.
5856type ProactiveAnomaly struct {
5857	_ struct{} `type:"structure"`
5858
5859	// A AnomalyReportedTimeRange object that specifies the time range between when
5860	// the anomaly is opened and the time when it is closed.
5861	AnomalyReportedTimeRange *AnomalyReportedTimeRange `type:"structure"`
5862
5863	// A time range that specifies when the observed unusual behavior in an anomaly
5864	// started and ended. This is different from AnomalyReportedTimeRange, which
5865	// specifies the time range when DevOps Guru opens and then closes an anomaly.
5866	AnomalyTimeRange *AnomalyTimeRange `type:"structure"`
5867
5868	// The ID of the insight that contains this anomaly. An insight is composed
5869	// of related anomalies.
5870	AssociatedInsightId *string `min:"1" type:"string"`
5871
5872	// The ID of a proactive anomaly.
5873	Id *string `min:"1" type:"string"`
5874
5875	// A threshold that was exceeded by behavior in analyzed resources. Exceeding
5876	// this threshold is related to the anomalous behavior that generated this anomaly.
5877	Limit *float64 `type:"double"`
5878
5879	// The time range during which anomalous behavior in a proactive anomaly or
5880	// an insight is expected to occur.
5881	PredictionTimeRange *PredictionTimeRange `type:"structure"`
5882
5883	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
5884	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
5885	// be configured to analyze only the AWS resources that are defined in the stacks.
5886	// You can specify up to 500 AWS CloudFormation stacks.
5887	ResourceCollection *ResourceCollection `type:"structure"`
5888
5889	// The severity of a proactive anomaly.
5890	Severity *string `type:"string" enum:"AnomalySeverity"`
5891
5892	// Details about the source of the analyzed operational data that triggered
5893	// the anomaly. The one supported source is Amazon CloudWatch metrics.
5894	SourceDetails *AnomalySourceDetails `type:"structure"`
5895
5896	// The status of a proactive anomaly.
5897	Status *string `type:"string" enum:"AnomalyStatus"`
5898
5899	// The time of the anomaly's most recent update.
5900	UpdateTime *time.Time `type:"timestamp"`
5901}
5902
5903// String returns the string representation.
5904//
5905// API parameter values that are decorated as "sensitive" in the API will not
5906// be included in the string output. The member name will be present, but the
5907// value will be replaced with "sensitive".
5908func (s ProactiveAnomaly) String() string {
5909	return awsutil.Prettify(s)
5910}
5911
5912// GoString returns the string representation.
5913//
5914// API parameter values that are decorated as "sensitive" in the API will not
5915// be included in the string output. The member name will be present, but the
5916// value will be replaced with "sensitive".
5917func (s ProactiveAnomaly) GoString() string {
5918	return s.String()
5919}
5920
5921// SetAnomalyReportedTimeRange sets the AnomalyReportedTimeRange field's value.
5922func (s *ProactiveAnomaly) SetAnomalyReportedTimeRange(v *AnomalyReportedTimeRange) *ProactiveAnomaly {
5923	s.AnomalyReportedTimeRange = v
5924	return s
5925}
5926
5927// SetAnomalyTimeRange sets the AnomalyTimeRange field's value.
5928func (s *ProactiveAnomaly) SetAnomalyTimeRange(v *AnomalyTimeRange) *ProactiveAnomaly {
5929	s.AnomalyTimeRange = v
5930	return s
5931}
5932
5933// SetAssociatedInsightId sets the AssociatedInsightId field's value.
5934func (s *ProactiveAnomaly) SetAssociatedInsightId(v string) *ProactiveAnomaly {
5935	s.AssociatedInsightId = &v
5936	return s
5937}
5938
5939// SetId sets the Id field's value.
5940func (s *ProactiveAnomaly) SetId(v string) *ProactiveAnomaly {
5941	s.Id = &v
5942	return s
5943}
5944
5945// SetLimit sets the Limit field's value.
5946func (s *ProactiveAnomaly) SetLimit(v float64) *ProactiveAnomaly {
5947	s.Limit = &v
5948	return s
5949}
5950
5951// SetPredictionTimeRange sets the PredictionTimeRange field's value.
5952func (s *ProactiveAnomaly) SetPredictionTimeRange(v *PredictionTimeRange) *ProactiveAnomaly {
5953	s.PredictionTimeRange = v
5954	return s
5955}
5956
5957// SetResourceCollection sets the ResourceCollection field's value.
5958func (s *ProactiveAnomaly) SetResourceCollection(v *ResourceCollection) *ProactiveAnomaly {
5959	s.ResourceCollection = v
5960	return s
5961}
5962
5963// SetSeverity sets the Severity field's value.
5964func (s *ProactiveAnomaly) SetSeverity(v string) *ProactiveAnomaly {
5965	s.Severity = &v
5966	return s
5967}
5968
5969// SetSourceDetails sets the SourceDetails field's value.
5970func (s *ProactiveAnomaly) SetSourceDetails(v *AnomalySourceDetails) *ProactiveAnomaly {
5971	s.SourceDetails = v
5972	return s
5973}
5974
5975// SetStatus sets the Status field's value.
5976func (s *ProactiveAnomaly) SetStatus(v string) *ProactiveAnomaly {
5977	s.Status = &v
5978	return s
5979}
5980
5981// SetUpdateTime sets the UpdateTime field's value.
5982func (s *ProactiveAnomaly) SetUpdateTime(v time.Time) *ProactiveAnomaly {
5983	s.UpdateTime = &v
5984	return s
5985}
5986
5987// Details about a proactive anomaly. This object is returned by DescribeAnomaly.
5988type ProactiveAnomalySummary struct {
5989	_ struct{} `type:"structure"`
5990
5991	// A AnomalyReportedTimeRange object that specifies the time range between when
5992	// the anomaly is opened and the time when it is closed.
5993	AnomalyReportedTimeRange *AnomalyReportedTimeRange `type:"structure"`
5994
5995	// A time range that specifies when the observed unusual behavior in an anomaly
5996	// started and ended. This is different from AnomalyReportedTimeRange, which
5997	// specifies the time range when DevOps Guru opens and then closes an anomaly.
5998	AnomalyTimeRange *AnomalyTimeRange `type:"structure"`
5999
6000	// The ID of the insight that contains this anomaly. An insight is composed
6001	// of related anomalies.
6002	AssociatedInsightId *string `min:"1" type:"string"`
6003
6004	// The ID of the anomaly.
6005	Id *string `min:"1" type:"string"`
6006
6007	// A threshold that was exceeded by behavior in analyzed resources. Exceeding
6008	// this threshold is related to the anomalous behavior that generated this anomaly.
6009	Limit *float64 `type:"double"`
6010
6011	// The time range during which anomalous behavior in a proactive anomaly or
6012	// an insight is expected to occur.
6013	PredictionTimeRange *PredictionTimeRange `type:"structure"`
6014
6015	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6016	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6017	// be configured to analyze only the AWS resources that are defined in the stacks.
6018	// You can specify up to 500 AWS CloudFormation stacks.
6019	ResourceCollection *ResourceCollection `type:"structure"`
6020
6021	// The severity of the anomaly.
6022	Severity *string `type:"string" enum:"AnomalySeverity"`
6023
6024	// Details about the source of the analyzed operational data that triggered
6025	// the anomaly. The one supported source is Amazon CloudWatch metrics.
6026	SourceDetails *AnomalySourceDetails `type:"structure"`
6027
6028	// The status of the anomaly.
6029	Status *string `type:"string" enum:"AnomalyStatus"`
6030
6031	// The time of the anomaly's most recent update.
6032	UpdateTime *time.Time `type:"timestamp"`
6033}
6034
6035// String returns the string representation.
6036//
6037// API parameter values that are decorated as "sensitive" in the API will not
6038// be included in the string output. The member name will be present, but the
6039// value will be replaced with "sensitive".
6040func (s ProactiveAnomalySummary) String() string {
6041	return awsutil.Prettify(s)
6042}
6043
6044// GoString returns the string representation.
6045//
6046// API parameter values that are decorated as "sensitive" in the API will not
6047// be included in the string output. The member name will be present, but the
6048// value will be replaced with "sensitive".
6049func (s ProactiveAnomalySummary) GoString() string {
6050	return s.String()
6051}
6052
6053// SetAnomalyReportedTimeRange sets the AnomalyReportedTimeRange field's value.
6054func (s *ProactiveAnomalySummary) SetAnomalyReportedTimeRange(v *AnomalyReportedTimeRange) *ProactiveAnomalySummary {
6055	s.AnomalyReportedTimeRange = v
6056	return s
6057}
6058
6059// SetAnomalyTimeRange sets the AnomalyTimeRange field's value.
6060func (s *ProactiveAnomalySummary) SetAnomalyTimeRange(v *AnomalyTimeRange) *ProactiveAnomalySummary {
6061	s.AnomalyTimeRange = v
6062	return s
6063}
6064
6065// SetAssociatedInsightId sets the AssociatedInsightId field's value.
6066func (s *ProactiveAnomalySummary) SetAssociatedInsightId(v string) *ProactiveAnomalySummary {
6067	s.AssociatedInsightId = &v
6068	return s
6069}
6070
6071// SetId sets the Id field's value.
6072func (s *ProactiveAnomalySummary) SetId(v string) *ProactiveAnomalySummary {
6073	s.Id = &v
6074	return s
6075}
6076
6077// SetLimit sets the Limit field's value.
6078func (s *ProactiveAnomalySummary) SetLimit(v float64) *ProactiveAnomalySummary {
6079	s.Limit = &v
6080	return s
6081}
6082
6083// SetPredictionTimeRange sets the PredictionTimeRange field's value.
6084func (s *ProactiveAnomalySummary) SetPredictionTimeRange(v *PredictionTimeRange) *ProactiveAnomalySummary {
6085	s.PredictionTimeRange = v
6086	return s
6087}
6088
6089// SetResourceCollection sets the ResourceCollection field's value.
6090func (s *ProactiveAnomalySummary) SetResourceCollection(v *ResourceCollection) *ProactiveAnomalySummary {
6091	s.ResourceCollection = v
6092	return s
6093}
6094
6095// SetSeverity sets the Severity field's value.
6096func (s *ProactiveAnomalySummary) SetSeverity(v string) *ProactiveAnomalySummary {
6097	s.Severity = &v
6098	return s
6099}
6100
6101// SetSourceDetails sets the SourceDetails field's value.
6102func (s *ProactiveAnomalySummary) SetSourceDetails(v *AnomalySourceDetails) *ProactiveAnomalySummary {
6103	s.SourceDetails = v
6104	return s
6105}
6106
6107// SetStatus sets the Status field's value.
6108func (s *ProactiveAnomalySummary) SetStatus(v string) *ProactiveAnomalySummary {
6109	s.Status = &v
6110	return s
6111}
6112
6113// SetUpdateTime sets the UpdateTime field's value.
6114func (s *ProactiveAnomalySummary) SetUpdateTime(v time.Time) *ProactiveAnomalySummary {
6115	s.UpdateTime = &v
6116	return s
6117}
6118
6119// Details about a proactive insight. This object is returned by ListInsights.
6120type ProactiveInsight struct {
6121	_ struct{} `type:"structure"`
6122
6123	// The ID of the proactive insight.
6124	Id *string `min:"1" type:"string"`
6125
6126	// A time ranged that specifies when the observed behavior in an insight started
6127	// and ended.
6128	InsightTimeRange *InsightTimeRange `type:"structure"`
6129
6130	// The name of the proactive insight.
6131	Name *string `min:"1" type:"string"`
6132
6133	// The time range during which anomalous behavior in a proactive anomaly or
6134	// an insight is expected to occur.
6135	PredictionTimeRange *PredictionTimeRange `type:"structure"`
6136
6137	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6138	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6139	// be configured to analyze only the AWS resources that are defined in the stacks.
6140	// You can specify up to 500 AWS CloudFormation stacks.
6141	ResourceCollection *ResourceCollection `type:"structure"`
6142
6143	// The severity of the proactive insight.
6144	Severity *string `type:"string" enum:"InsightSeverity"`
6145
6146	// The ID of the AWS System Manager OpsItem created for this insight. You must
6147	// enable the creation of OpstItems insights before they are created for each
6148	// insight.
6149	SsmOpsItemId *string `min:"1" type:"string"`
6150
6151	// The status of the proactive insight.
6152	Status *string `type:"string" enum:"InsightStatus"`
6153}
6154
6155// String returns the string representation.
6156//
6157// API parameter values that are decorated as "sensitive" in the API will not
6158// be included in the string output. The member name will be present, but the
6159// value will be replaced with "sensitive".
6160func (s ProactiveInsight) String() string {
6161	return awsutil.Prettify(s)
6162}
6163
6164// GoString returns the string representation.
6165//
6166// API parameter values that are decorated as "sensitive" in the API will not
6167// be included in the string output. The member name will be present, but the
6168// value will be replaced with "sensitive".
6169func (s ProactiveInsight) GoString() string {
6170	return s.String()
6171}
6172
6173// SetId sets the Id field's value.
6174func (s *ProactiveInsight) SetId(v string) *ProactiveInsight {
6175	s.Id = &v
6176	return s
6177}
6178
6179// SetInsightTimeRange sets the InsightTimeRange field's value.
6180func (s *ProactiveInsight) SetInsightTimeRange(v *InsightTimeRange) *ProactiveInsight {
6181	s.InsightTimeRange = v
6182	return s
6183}
6184
6185// SetName sets the Name field's value.
6186func (s *ProactiveInsight) SetName(v string) *ProactiveInsight {
6187	s.Name = &v
6188	return s
6189}
6190
6191// SetPredictionTimeRange sets the PredictionTimeRange field's value.
6192func (s *ProactiveInsight) SetPredictionTimeRange(v *PredictionTimeRange) *ProactiveInsight {
6193	s.PredictionTimeRange = v
6194	return s
6195}
6196
6197// SetResourceCollection sets the ResourceCollection field's value.
6198func (s *ProactiveInsight) SetResourceCollection(v *ResourceCollection) *ProactiveInsight {
6199	s.ResourceCollection = v
6200	return s
6201}
6202
6203// SetSeverity sets the Severity field's value.
6204func (s *ProactiveInsight) SetSeverity(v string) *ProactiveInsight {
6205	s.Severity = &v
6206	return s
6207}
6208
6209// SetSsmOpsItemId sets the SsmOpsItemId field's value.
6210func (s *ProactiveInsight) SetSsmOpsItemId(v string) *ProactiveInsight {
6211	s.SsmOpsItemId = &v
6212	return s
6213}
6214
6215// SetStatus sets the Status field's value.
6216func (s *ProactiveInsight) SetStatus(v string) *ProactiveInsight {
6217	s.Status = &v
6218	return s
6219}
6220
6221// Details about a proactive insight. This object is returned by DescribeInsight.
6222type ProactiveInsightSummary struct {
6223	_ struct{} `type:"structure"`
6224
6225	// The ID of the proactive insight.
6226	Id *string `min:"1" type:"string"`
6227
6228	// A time ranged that specifies when the observed behavior in an insight started
6229	// and ended.
6230	InsightTimeRange *InsightTimeRange `type:"structure"`
6231
6232	// The name of the proactive insight.
6233	Name *string `min:"1" type:"string"`
6234
6235	// The time range during which anomalous behavior in a proactive anomaly or
6236	// an insight is expected to occur.
6237	PredictionTimeRange *PredictionTimeRange `type:"structure"`
6238
6239	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6240	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6241	// be configured to analyze only the AWS resources that are defined in the stacks.
6242	// You can specify up to 500 AWS CloudFormation stacks.
6243	ResourceCollection *ResourceCollection `type:"structure"`
6244
6245	// A collection of the names of AWS services.
6246	ServiceCollection *ServiceCollection `type:"structure"`
6247
6248	// The severity of the proactive insight.
6249	Severity *string `type:"string" enum:"InsightSeverity"`
6250
6251	// The status of the proactive insight.
6252	Status *string `type:"string" enum:"InsightStatus"`
6253}
6254
6255// String returns the string representation.
6256//
6257// API parameter values that are decorated as "sensitive" in the API will not
6258// be included in the string output. The member name will be present, but the
6259// value will be replaced with "sensitive".
6260func (s ProactiveInsightSummary) String() string {
6261	return awsutil.Prettify(s)
6262}
6263
6264// GoString returns the string representation.
6265//
6266// API parameter values that are decorated as "sensitive" in the API will not
6267// be included in the string output. The member name will be present, but the
6268// value will be replaced with "sensitive".
6269func (s ProactiveInsightSummary) GoString() string {
6270	return s.String()
6271}
6272
6273// SetId sets the Id field's value.
6274func (s *ProactiveInsightSummary) SetId(v string) *ProactiveInsightSummary {
6275	s.Id = &v
6276	return s
6277}
6278
6279// SetInsightTimeRange sets the InsightTimeRange field's value.
6280func (s *ProactiveInsightSummary) SetInsightTimeRange(v *InsightTimeRange) *ProactiveInsightSummary {
6281	s.InsightTimeRange = v
6282	return s
6283}
6284
6285// SetName sets the Name field's value.
6286func (s *ProactiveInsightSummary) SetName(v string) *ProactiveInsightSummary {
6287	s.Name = &v
6288	return s
6289}
6290
6291// SetPredictionTimeRange sets the PredictionTimeRange field's value.
6292func (s *ProactiveInsightSummary) SetPredictionTimeRange(v *PredictionTimeRange) *ProactiveInsightSummary {
6293	s.PredictionTimeRange = v
6294	return s
6295}
6296
6297// SetResourceCollection sets the ResourceCollection field's value.
6298func (s *ProactiveInsightSummary) SetResourceCollection(v *ResourceCollection) *ProactiveInsightSummary {
6299	s.ResourceCollection = v
6300	return s
6301}
6302
6303// SetServiceCollection sets the ServiceCollection field's value.
6304func (s *ProactiveInsightSummary) SetServiceCollection(v *ServiceCollection) *ProactiveInsightSummary {
6305	s.ServiceCollection = v
6306	return s
6307}
6308
6309// SetSeverity sets the Severity field's value.
6310func (s *ProactiveInsightSummary) SetSeverity(v string) *ProactiveInsightSummary {
6311	s.Severity = &v
6312	return s
6313}
6314
6315// SetStatus sets the Status field's value.
6316func (s *ProactiveInsightSummary) SetStatus(v string) *ProactiveInsightSummary {
6317	s.Status = &v
6318	return s
6319}
6320
6321type PutFeedbackInput struct {
6322	_ struct{} `type:"structure"`
6323
6324	// The feedback from customers is about the recommendations in this insight.
6325	InsightFeedback *InsightFeedback `type:"structure"`
6326}
6327
6328// String returns the string representation.
6329//
6330// API parameter values that are decorated as "sensitive" in the API will not
6331// be included in the string output. The member name will be present, but the
6332// value will be replaced with "sensitive".
6333func (s PutFeedbackInput) String() string {
6334	return awsutil.Prettify(s)
6335}
6336
6337// GoString returns the string representation.
6338//
6339// API parameter values that are decorated as "sensitive" in the API will not
6340// be included in the string output. The member name will be present, but the
6341// value will be replaced with "sensitive".
6342func (s PutFeedbackInput) GoString() string {
6343	return s.String()
6344}
6345
6346// Validate inspects the fields of the type to determine if they are valid.
6347func (s *PutFeedbackInput) Validate() error {
6348	invalidParams := request.ErrInvalidParams{Context: "PutFeedbackInput"}
6349	if s.InsightFeedback != nil {
6350		if err := s.InsightFeedback.Validate(); err != nil {
6351			invalidParams.AddNested("InsightFeedback", err.(request.ErrInvalidParams))
6352		}
6353	}
6354
6355	if invalidParams.Len() > 0 {
6356		return invalidParams
6357	}
6358	return nil
6359}
6360
6361// SetInsightFeedback sets the InsightFeedback field's value.
6362func (s *PutFeedbackInput) SetInsightFeedback(v *InsightFeedback) *PutFeedbackInput {
6363	s.InsightFeedback = v
6364	return s
6365}
6366
6367type PutFeedbackOutput struct {
6368	_ struct{} `type:"structure"`
6369}
6370
6371// String returns the string representation.
6372//
6373// API parameter values that are decorated as "sensitive" in the API will not
6374// be included in the string output. The member name will be present, but the
6375// value will be replaced with "sensitive".
6376func (s PutFeedbackOutput) String() string {
6377	return awsutil.Prettify(s)
6378}
6379
6380// GoString returns the string representation.
6381//
6382// API parameter values that are decorated as "sensitive" in the API will not
6383// be included in the string output. The member name will be present, but the
6384// value will be replaced with "sensitive".
6385func (s PutFeedbackOutput) GoString() string {
6386	return s.String()
6387}
6388
6389// Details about a reactive anomaly. This object is returned by ListAnomalies.
6390type ReactiveAnomaly struct {
6391	_ struct{} `type:"structure"`
6392
6393	// A AnomalyReportedTimeRange object that specifies the time range between when
6394	// the anomaly is opened and the time when it is closed.
6395	AnomalyReportedTimeRange *AnomalyReportedTimeRange `type:"structure"`
6396
6397	// A time range that specifies when the observed unusual behavior in an anomaly
6398	// started and ended. This is different from AnomalyReportedTimeRange, which
6399	// specifies the time range when DevOps Guru opens and then closes an anomaly.
6400	AnomalyTimeRange *AnomalyTimeRange `type:"structure"`
6401
6402	// The ID of the insight that contains this anomaly. An insight is composed
6403	// of related anomalies.
6404	AssociatedInsightId *string `min:"1" type:"string"`
6405
6406	// The ID of the reactive anomaly.
6407	Id *string `min:"1" type:"string"`
6408
6409	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6410	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6411	// be configured to analyze only the AWS resources that are defined in the stacks.
6412	// You can specify up to 500 AWS CloudFormation stacks.
6413	ResourceCollection *ResourceCollection `type:"structure"`
6414
6415	// The severity of the anomaly.
6416	Severity *string `type:"string" enum:"AnomalySeverity"`
6417
6418	// Details about the source of the analyzed operational data that triggered
6419	// the anomaly. The one supported source is Amazon CloudWatch metrics.
6420	SourceDetails *AnomalySourceDetails `type:"structure"`
6421
6422	// The status of the anomaly.
6423	Status *string `type:"string" enum:"AnomalyStatus"`
6424}
6425
6426// String returns the string representation.
6427//
6428// API parameter values that are decorated as "sensitive" in the API will not
6429// be included in the string output. The member name will be present, but the
6430// value will be replaced with "sensitive".
6431func (s ReactiveAnomaly) String() string {
6432	return awsutil.Prettify(s)
6433}
6434
6435// GoString returns the string representation.
6436//
6437// API parameter values that are decorated as "sensitive" in the API will not
6438// be included in the string output. The member name will be present, but the
6439// value will be replaced with "sensitive".
6440func (s ReactiveAnomaly) GoString() string {
6441	return s.String()
6442}
6443
6444// SetAnomalyReportedTimeRange sets the AnomalyReportedTimeRange field's value.
6445func (s *ReactiveAnomaly) SetAnomalyReportedTimeRange(v *AnomalyReportedTimeRange) *ReactiveAnomaly {
6446	s.AnomalyReportedTimeRange = v
6447	return s
6448}
6449
6450// SetAnomalyTimeRange sets the AnomalyTimeRange field's value.
6451func (s *ReactiveAnomaly) SetAnomalyTimeRange(v *AnomalyTimeRange) *ReactiveAnomaly {
6452	s.AnomalyTimeRange = v
6453	return s
6454}
6455
6456// SetAssociatedInsightId sets the AssociatedInsightId field's value.
6457func (s *ReactiveAnomaly) SetAssociatedInsightId(v string) *ReactiveAnomaly {
6458	s.AssociatedInsightId = &v
6459	return s
6460}
6461
6462// SetId sets the Id field's value.
6463func (s *ReactiveAnomaly) SetId(v string) *ReactiveAnomaly {
6464	s.Id = &v
6465	return s
6466}
6467
6468// SetResourceCollection sets the ResourceCollection field's value.
6469func (s *ReactiveAnomaly) SetResourceCollection(v *ResourceCollection) *ReactiveAnomaly {
6470	s.ResourceCollection = v
6471	return s
6472}
6473
6474// SetSeverity sets the Severity field's value.
6475func (s *ReactiveAnomaly) SetSeverity(v string) *ReactiveAnomaly {
6476	s.Severity = &v
6477	return s
6478}
6479
6480// SetSourceDetails sets the SourceDetails field's value.
6481func (s *ReactiveAnomaly) SetSourceDetails(v *AnomalySourceDetails) *ReactiveAnomaly {
6482	s.SourceDetails = v
6483	return s
6484}
6485
6486// SetStatus sets the Status field's value.
6487func (s *ReactiveAnomaly) SetStatus(v string) *ReactiveAnomaly {
6488	s.Status = &v
6489	return s
6490}
6491
6492// Details about a reactive anomaly. This object is returned by DescribeAnomaly.
6493type ReactiveAnomalySummary struct {
6494	_ struct{} `type:"structure"`
6495
6496	// A AnomalyReportedTimeRange object that specifies the time range between when
6497	// the anomaly is opened and the time when it is closed.
6498	AnomalyReportedTimeRange *AnomalyReportedTimeRange `type:"structure"`
6499
6500	// A time range that specifies when the observed unusual behavior in an anomaly
6501	// started and ended. This is different from AnomalyReportedTimeRange, which
6502	// specifies the time range when DevOps Guru opens and then closes an anomaly.
6503	AnomalyTimeRange *AnomalyTimeRange `type:"structure"`
6504
6505	// The ID of the insight that contains this anomaly. An insight is composed
6506	// of related anomalies.
6507	AssociatedInsightId *string `min:"1" type:"string"`
6508
6509	// The ID of the reactive anomaly.
6510	Id *string `min:"1" type:"string"`
6511
6512	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6513	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6514	// be configured to analyze only the AWS resources that are defined in the stacks.
6515	// You can specify up to 500 AWS CloudFormation stacks.
6516	ResourceCollection *ResourceCollection `type:"structure"`
6517
6518	// The severity of the reactive anomaly.
6519	Severity *string `type:"string" enum:"AnomalySeverity"`
6520
6521	// Details about the source of the analyzed operational data that triggered
6522	// the anomaly. The one supported source is Amazon CloudWatch metrics.
6523	SourceDetails *AnomalySourceDetails `type:"structure"`
6524
6525	// The status of the reactive anomaly.
6526	Status *string `type:"string" enum:"AnomalyStatus"`
6527}
6528
6529// String returns the string representation.
6530//
6531// API parameter values that are decorated as "sensitive" in the API will not
6532// be included in the string output. The member name will be present, but the
6533// value will be replaced with "sensitive".
6534func (s ReactiveAnomalySummary) String() string {
6535	return awsutil.Prettify(s)
6536}
6537
6538// GoString returns the string representation.
6539//
6540// API parameter values that are decorated as "sensitive" in the API will not
6541// be included in the string output. The member name will be present, but the
6542// value will be replaced with "sensitive".
6543func (s ReactiveAnomalySummary) GoString() string {
6544	return s.String()
6545}
6546
6547// SetAnomalyReportedTimeRange sets the AnomalyReportedTimeRange field's value.
6548func (s *ReactiveAnomalySummary) SetAnomalyReportedTimeRange(v *AnomalyReportedTimeRange) *ReactiveAnomalySummary {
6549	s.AnomalyReportedTimeRange = v
6550	return s
6551}
6552
6553// SetAnomalyTimeRange sets the AnomalyTimeRange field's value.
6554func (s *ReactiveAnomalySummary) SetAnomalyTimeRange(v *AnomalyTimeRange) *ReactiveAnomalySummary {
6555	s.AnomalyTimeRange = v
6556	return s
6557}
6558
6559// SetAssociatedInsightId sets the AssociatedInsightId field's value.
6560func (s *ReactiveAnomalySummary) SetAssociatedInsightId(v string) *ReactiveAnomalySummary {
6561	s.AssociatedInsightId = &v
6562	return s
6563}
6564
6565// SetId sets the Id field's value.
6566func (s *ReactiveAnomalySummary) SetId(v string) *ReactiveAnomalySummary {
6567	s.Id = &v
6568	return s
6569}
6570
6571// SetResourceCollection sets the ResourceCollection field's value.
6572func (s *ReactiveAnomalySummary) SetResourceCollection(v *ResourceCollection) *ReactiveAnomalySummary {
6573	s.ResourceCollection = v
6574	return s
6575}
6576
6577// SetSeverity sets the Severity field's value.
6578func (s *ReactiveAnomalySummary) SetSeverity(v string) *ReactiveAnomalySummary {
6579	s.Severity = &v
6580	return s
6581}
6582
6583// SetSourceDetails sets the SourceDetails field's value.
6584func (s *ReactiveAnomalySummary) SetSourceDetails(v *AnomalySourceDetails) *ReactiveAnomalySummary {
6585	s.SourceDetails = v
6586	return s
6587}
6588
6589// SetStatus sets the Status field's value.
6590func (s *ReactiveAnomalySummary) SetStatus(v string) *ReactiveAnomalySummary {
6591	s.Status = &v
6592	return s
6593}
6594
6595// Information about a reactive insight. This object is returned by ListInsights.
6596type ReactiveInsight struct {
6597	_ struct{} `type:"structure"`
6598
6599	// The ID of a reactive insight.
6600	Id *string `min:"1" type:"string"`
6601
6602	// A time ranged that specifies when the observed behavior in an insight started
6603	// and ended.
6604	InsightTimeRange *InsightTimeRange `type:"structure"`
6605
6606	// The name of a reactive insight.
6607	Name *string `min:"1" type:"string"`
6608
6609	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6610	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6611	// be configured to analyze only the AWS resources that are defined in the stacks.
6612	// You can specify up to 500 AWS CloudFormation stacks.
6613	ResourceCollection *ResourceCollection `type:"structure"`
6614
6615	// The severity of a reactive insight.
6616	Severity *string `type:"string" enum:"InsightSeverity"`
6617
6618	// The ID of the AWS System Manager OpsItem created for this insight. You must
6619	// enable the creation of OpstItems insights before they are created for each
6620	// insight.
6621	SsmOpsItemId *string `min:"1" type:"string"`
6622
6623	// The status of a reactive insight.
6624	Status *string `type:"string" enum:"InsightStatus"`
6625}
6626
6627// String returns the string representation.
6628//
6629// API parameter values that are decorated as "sensitive" in the API will not
6630// be included in the string output. The member name will be present, but the
6631// value will be replaced with "sensitive".
6632func (s ReactiveInsight) String() string {
6633	return awsutil.Prettify(s)
6634}
6635
6636// GoString returns the string representation.
6637//
6638// API parameter values that are decorated as "sensitive" in the API will not
6639// be included in the string output. The member name will be present, but the
6640// value will be replaced with "sensitive".
6641func (s ReactiveInsight) GoString() string {
6642	return s.String()
6643}
6644
6645// SetId sets the Id field's value.
6646func (s *ReactiveInsight) SetId(v string) *ReactiveInsight {
6647	s.Id = &v
6648	return s
6649}
6650
6651// SetInsightTimeRange sets the InsightTimeRange field's value.
6652func (s *ReactiveInsight) SetInsightTimeRange(v *InsightTimeRange) *ReactiveInsight {
6653	s.InsightTimeRange = v
6654	return s
6655}
6656
6657// SetName sets the Name field's value.
6658func (s *ReactiveInsight) SetName(v string) *ReactiveInsight {
6659	s.Name = &v
6660	return s
6661}
6662
6663// SetResourceCollection sets the ResourceCollection field's value.
6664func (s *ReactiveInsight) SetResourceCollection(v *ResourceCollection) *ReactiveInsight {
6665	s.ResourceCollection = v
6666	return s
6667}
6668
6669// SetSeverity sets the Severity field's value.
6670func (s *ReactiveInsight) SetSeverity(v string) *ReactiveInsight {
6671	s.Severity = &v
6672	return s
6673}
6674
6675// SetSsmOpsItemId sets the SsmOpsItemId field's value.
6676func (s *ReactiveInsight) SetSsmOpsItemId(v string) *ReactiveInsight {
6677	s.SsmOpsItemId = &v
6678	return s
6679}
6680
6681// SetStatus sets the Status field's value.
6682func (s *ReactiveInsight) SetStatus(v string) *ReactiveInsight {
6683	s.Status = &v
6684	return s
6685}
6686
6687// Information about a reactive insight. This object is returned by DescribeInsight.
6688type ReactiveInsightSummary struct {
6689	_ struct{} `type:"structure"`
6690
6691	// The ID of a reactive summary.
6692	Id *string `min:"1" type:"string"`
6693
6694	// A time ranged that specifies when the observed behavior in an insight started
6695	// and ended.
6696	InsightTimeRange *InsightTimeRange `type:"structure"`
6697
6698	// The name of a reactive insight.
6699	Name *string `min:"1" type:"string"`
6700
6701	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
6702	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
6703	// be configured to analyze only the AWS resources that are defined in the stacks.
6704	// You can specify up to 500 AWS CloudFormation stacks.
6705	ResourceCollection *ResourceCollection `type:"structure"`
6706
6707	// A collection of the names of AWS services.
6708	ServiceCollection *ServiceCollection `type:"structure"`
6709
6710	// The severity of a reactive insight.
6711	Severity *string `type:"string" enum:"InsightSeverity"`
6712
6713	// The status of a reactive insight.
6714	Status *string `type:"string" enum:"InsightStatus"`
6715}
6716
6717// String returns the string representation.
6718//
6719// API parameter values that are decorated as "sensitive" in the API will not
6720// be included in the string output. The member name will be present, but the
6721// value will be replaced with "sensitive".
6722func (s ReactiveInsightSummary) String() string {
6723	return awsutil.Prettify(s)
6724}
6725
6726// GoString returns the string representation.
6727//
6728// API parameter values that are decorated as "sensitive" in the API will not
6729// be included in the string output. The member name will be present, but the
6730// value will be replaced with "sensitive".
6731func (s ReactiveInsightSummary) GoString() string {
6732	return s.String()
6733}
6734
6735// SetId sets the Id field's value.
6736func (s *ReactiveInsightSummary) SetId(v string) *ReactiveInsightSummary {
6737	s.Id = &v
6738	return s
6739}
6740
6741// SetInsightTimeRange sets the InsightTimeRange field's value.
6742func (s *ReactiveInsightSummary) SetInsightTimeRange(v *InsightTimeRange) *ReactiveInsightSummary {
6743	s.InsightTimeRange = v
6744	return s
6745}
6746
6747// SetName sets the Name field's value.
6748func (s *ReactiveInsightSummary) SetName(v string) *ReactiveInsightSummary {
6749	s.Name = &v
6750	return s
6751}
6752
6753// SetResourceCollection sets the ResourceCollection field's value.
6754func (s *ReactiveInsightSummary) SetResourceCollection(v *ResourceCollection) *ReactiveInsightSummary {
6755	s.ResourceCollection = v
6756	return s
6757}
6758
6759// SetServiceCollection sets the ServiceCollection field's value.
6760func (s *ReactiveInsightSummary) SetServiceCollection(v *ServiceCollection) *ReactiveInsightSummary {
6761	s.ServiceCollection = v
6762	return s
6763}
6764
6765// SetSeverity sets the Severity field's value.
6766func (s *ReactiveInsightSummary) SetSeverity(v string) *ReactiveInsightSummary {
6767	s.Severity = &v
6768	return s
6769}
6770
6771// SetStatus sets the Status field's value.
6772func (s *ReactiveInsightSummary) SetStatus(v string) *ReactiveInsightSummary {
6773	s.Status = &v
6774	return s
6775}
6776
6777// Recommendation information to help you remediate detected anomalous behavior
6778// that generated an insight.
6779type Recommendation struct {
6780	_ struct{} `type:"structure"`
6781
6782	// A description of the problem.
6783	Description *string `type:"string"`
6784
6785	// A hyperlink to information to help you address the problem.
6786	Link *string `type:"string"`
6787
6788	// The name of the recommendation.
6789	Name *string `type:"string"`
6790
6791	// The reason DevOps Guru flagged the anomalous behavior as a problem.
6792	Reason *string `type:"string"`
6793
6794	// Anomalies that are related to the problem. Use these Anomalies to learn more
6795	// about what's happening and to help address the issue.
6796	RelatedAnomalies []*RecommendationRelatedAnomaly `type:"list"`
6797
6798	// Events that are related to the problem. Use these events to learn more about
6799	// what's happening and to help address the issue.
6800	RelatedEvents []*RecommendationRelatedEvent `type:"list"`
6801}
6802
6803// String returns the string representation.
6804//
6805// API parameter values that are decorated as "sensitive" in the API will not
6806// be included in the string output. The member name will be present, but the
6807// value will be replaced with "sensitive".
6808func (s Recommendation) String() string {
6809	return awsutil.Prettify(s)
6810}
6811
6812// GoString returns the string representation.
6813//
6814// API parameter values that are decorated as "sensitive" in the API will not
6815// be included in the string output. The member name will be present, but the
6816// value will be replaced with "sensitive".
6817func (s Recommendation) GoString() string {
6818	return s.String()
6819}
6820
6821// SetDescription sets the Description field's value.
6822func (s *Recommendation) SetDescription(v string) *Recommendation {
6823	s.Description = &v
6824	return s
6825}
6826
6827// SetLink sets the Link field's value.
6828func (s *Recommendation) SetLink(v string) *Recommendation {
6829	s.Link = &v
6830	return s
6831}
6832
6833// SetName sets the Name field's value.
6834func (s *Recommendation) SetName(v string) *Recommendation {
6835	s.Name = &v
6836	return s
6837}
6838
6839// SetReason sets the Reason field's value.
6840func (s *Recommendation) SetReason(v string) *Recommendation {
6841	s.Reason = &v
6842	return s
6843}
6844
6845// SetRelatedAnomalies sets the RelatedAnomalies field's value.
6846func (s *Recommendation) SetRelatedAnomalies(v []*RecommendationRelatedAnomaly) *Recommendation {
6847	s.RelatedAnomalies = v
6848	return s
6849}
6850
6851// SetRelatedEvents sets the RelatedEvents field's value.
6852func (s *Recommendation) SetRelatedEvents(v []*RecommendationRelatedEvent) *Recommendation {
6853	s.RelatedEvents = v
6854	return s
6855}
6856
6857// Information about an anomaly that is related to a recommendation.
6858type RecommendationRelatedAnomaly struct {
6859	_ struct{} `type:"structure"`
6860
6861	// An array of objects that represent resources in which DevOps Guru detected
6862	// anomalous behavior. Each object contains the name and type of the resource.
6863	Resources []*RecommendationRelatedAnomalyResource `type:"list"`
6864
6865	// Information about where the anomalous behavior related the recommendation
6866	// was found. For example, details in Amazon CloudWatch metrics.
6867	SourceDetails []*RecommendationRelatedAnomalySourceDetail `type:"list"`
6868}
6869
6870// String returns the string representation.
6871//
6872// API parameter values that are decorated as "sensitive" in the API will not
6873// be included in the string output. The member name will be present, but the
6874// value will be replaced with "sensitive".
6875func (s RecommendationRelatedAnomaly) String() string {
6876	return awsutil.Prettify(s)
6877}
6878
6879// GoString returns the string representation.
6880//
6881// API parameter values that are decorated as "sensitive" in the API will not
6882// be included in the string output. The member name will be present, but the
6883// value will be replaced with "sensitive".
6884func (s RecommendationRelatedAnomaly) GoString() string {
6885	return s.String()
6886}
6887
6888// SetResources sets the Resources field's value.
6889func (s *RecommendationRelatedAnomaly) SetResources(v []*RecommendationRelatedAnomalyResource) *RecommendationRelatedAnomaly {
6890	s.Resources = v
6891	return s
6892}
6893
6894// SetSourceDetails sets the SourceDetails field's value.
6895func (s *RecommendationRelatedAnomaly) SetSourceDetails(v []*RecommendationRelatedAnomalySourceDetail) *RecommendationRelatedAnomaly {
6896	s.SourceDetails = v
6897	return s
6898}
6899
6900// Information about a resource in which DevOps Guru detected anomalous behavior.
6901type RecommendationRelatedAnomalyResource struct {
6902	_ struct{} `type:"structure"`
6903
6904	// The name of the resource.
6905	Name *string `type:"string"`
6906
6907	// The type of the resource.
6908	Type *string `type:"string"`
6909}
6910
6911// String returns the string representation.
6912//
6913// API parameter values that are decorated as "sensitive" in the API will not
6914// be included in the string output. The member name will be present, but the
6915// value will be replaced with "sensitive".
6916func (s RecommendationRelatedAnomalyResource) String() string {
6917	return awsutil.Prettify(s)
6918}
6919
6920// GoString returns the string representation.
6921//
6922// API parameter values that are decorated as "sensitive" in the API will not
6923// be included in the string output. The member name will be present, but the
6924// value will be replaced with "sensitive".
6925func (s RecommendationRelatedAnomalyResource) GoString() string {
6926	return s.String()
6927}
6928
6929// SetName sets the Name field's value.
6930func (s *RecommendationRelatedAnomalyResource) SetName(v string) *RecommendationRelatedAnomalyResource {
6931	s.Name = &v
6932	return s
6933}
6934
6935// SetType sets the Type field's value.
6936func (s *RecommendationRelatedAnomalyResource) SetType(v string) *RecommendationRelatedAnomalyResource {
6937	s.Type = &v
6938	return s
6939}
6940
6941// Contains an array of RecommendationRelatedCloudWatchMetricsSourceDetail objects
6942// that contain the name and namespace of an Amazon CloudWatch metric.
6943type RecommendationRelatedAnomalySourceDetail struct {
6944	_ struct{} `type:"structure"`
6945
6946	// An array of CloudWatchMetricsDetail objects that contains information about
6947	// the analyzed metrics that displayed anomalous behavior.
6948	CloudWatchMetrics []*RecommendationRelatedCloudWatchMetricsSourceDetail `type:"list"`
6949}
6950
6951// String returns the string representation.
6952//
6953// API parameter values that are decorated as "sensitive" in the API will not
6954// be included in the string output. The member name will be present, but the
6955// value will be replaced with "sensitive".
6956func (s RecommendationRelatedAnomalySourceDetail) String() string {
6957	return awsutil.Prettify(s)
6958}
6959
6960// GoString returns the string representation.
6961//
6962// API parameter values that are decorated as "sensitive" in the API will not
6963// be included in the string output. The member name will be present, but the
6964// value will be replaced with "sensitive".
6965func (s RecommendationRelatedAnomalySourceDetail) GoString() string {
6966	return s.String()
6967}
6968
6969// SetCloudWatchMetrics sets the CloudWatchMetrics field's value.
6970func (s *RecommendationRelatedAnomalySourceDetail) SetCloudWatchMetrics(v []*RecommendationRelatedCloudWatchMetricsSourceDetail) *RecommendationRelatedAnomalySourceDetail {
6971	s.CloudWatchMetrics = v
6972	return s
6973}
6974
6975// Information about an Amazon CloudWatch metric that is analyzed by DevOps
6976// Guru. It is one of many analyzed metrics that are used to generate insights.
6977type RecommendationRelatedCloudWatchMetricsSourceDetail struct {
6978	_ struct{} `type:"structure"`
6979
6980	// The name of the CloudWatch metric.
6981	MetricName *string `type:"string"`
6982
6983	// The namespace of the CloudWatch metric. A namespace is a container for CloudWatch
6984	// metrics.
6985	Namespace *string `type:"string"`
6986}
6987
6988// String returns the string representation.
6989//
6990// API parameter values that are decorated as "sensitive" in the API will not
6991// be included in the string output. The member name will be present, but the
6992// value will be replaced with "sensitive".
6993func (s RecommendationRelatedCloudWatchMetricsSourceDetail) String() string {
6994	return awsutil.Prettify(s)
6995}
6996
6997// GoString returns the string representation.
6998//
6999// API parameter values that are decorated as "sensitive" in the API will not
7000// be included in the string output. The member name will be present, but the
7001// value will be replaced with "sensitive".
7002func (s RecommendationRelatedCloudWatchMetricsSourceDetail) GoString() string {
7003	return s.String()
7004}
7005
7006// SetMetricName sets the MetricName field's value.
7007func (s *RecommendationRelatedCloudWatchMetricsSourceDetail) SetMetricName(v string) *RecommendationRelatedCloudWatchMetricsSourceDetail {
7008	s.MetricName = &v
7009	return s
7010}
7011
7012// SetNamespace sets the Namespace field's value.
7013func (s *RecommendationRelatedCloudWatchMetricsSourceDetail) SetNamespace(v string) *RecommendationRelatedCloudWatchMetricsSourceDetail {
7014	s.Namespace = &v
7015	return s
7016}
7017
7018// Information about an event that is related to a recommendation.
7019type RecommendationRelatedEvent struct {
7020	_ struct{} `type:"structure"`
7021
7022	// The name of the event. This corresponds to the Name field in an Event object.
7023	Name *string `type:"string"`
7024
7025	// A ResourceCollection object that contains arrays of the names of AWS CloudFormation
7026	// stacks. You can specify up to 500 AWS CloudFormation stacks.
7027	Resources []*RecommendationRelatedEventResource `type:"list"`
7028}
7029
7030// String returns the string representation.
7031//
7032// API parameter values that are decorated as "sensitive" in the API will not
7033// be included in the string output. The member name will be present, but the
7034// value will be replaced with "sensitive".
7035func (s RecommendationRelatedEvent) String() string {
7036	return awsutil.Prettify(s)
7037}
7038
7039// GoString returns the string representation.
7040//
7041// API parameter values that are decorated as "sensitive" in the API will not
7042// be included in the string output. The member name will be present, but the
7043// value will be replaced with "sensitive".
7044func (s RecommendationRelatedEvent) GoString() string {
7045	return s.String()
7046}
7047
7048// SetName sets the Name field's value.
7049func (s *RecommendationRelatedEvent) SetName(v string) *RecommendationRelatedEvent {
7050	s.Name = &v
7051	return s
7052}
7053
7054// SetResources sets the Resources field's value.
7055func (s *RecommendationRelatedEvent) SetResources(v []*RecommendationRelatedEventResource) *RecommendationRelatedEvent {
7056	s.Resources = v
7057	return s
7058}
7059
7060// Information about an AWS resource that emitted and event that is related
7061// to a recommendation in an insight.
7062type RecommendationRelatedEventResource struct {
7063	_ struct{} `type:"structure"`
7064
7065	// The name of the resource that emitted the event. This corresponds to the
7066	// Name field in an EventResource object.
7067	Name *string `type:"string"`
7068
7069	// The type of the resource that emitted the event. This corresponds to the
7070	// Type field in an EventResource object.
7071	Type *string `type:"string"`
7072}
7073
7074// String 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 RecommendationRelatedEventResource) String() string {
7080	return awsutil.Prettify(s)
7081}
7082
7083// GoString returns the string representation.
7084//
7085// API parameter values that are decorated as "sensitive" in the API will not
7086// be included in the string output. The member name will be present, but the
7087// value will be replaced with "sensitive".
7088func (s RecommendationRelatedEventResource) GoString() string {
7089	return s.String()
7090}
7091
7092// SetName sets the Name field's value.
7093func (s *RecommendationRelatedEventResource) SetName(v string) *RecommendationRelatedEventResource {
7094	s.Name = &v
7095	return s
7096}
7097
7098// SetType sets the Type field's value.
7099func (s *RecommendationRelatedEventResource) SetType(v string) *RecommendationRelatedEventResource {
7100	s.Type = &v
7101	return s
7102}
7103
7104type RemoveNotificationChannelInput struct {
7105	_ struct{} `type:"structure" nopayload:"true"`
7106
7107	// The ID of the notification channel to be removed.
7108	//
7109	// Id is a required field
7110	Id *string `location:"uri" locationName:"Id" min:"36" type:"string" required:"true"`
7111}
7112
7113// String returns the string representation.
7114//
7115// API parameter values that are decorated as "sensitive" in the API will not
7116// be included in the string output. The member name will be present, but the
7117// value will be replaced with "sensitive".
7118func (s RemoveNotificationChannelInput) String() string {
7119	return awsutil.Prettify(s)
7120}
7121
7122// GoString returns the string representation.
7123//
7124// API parameter values that are decorated as "sensitive" in the API will not
7125// be included in the string output. The member name will be present, but the
7126// value will be replaced with "sensitive".
7127func (s RemoveNotificationChannelInput) GoString() string {
7128	return s.String()
7129}
7130
7131// Validate inspects the fields of the type to determine if they are valid.
7132func (s *RemoveNotificationChannelInput) Validate() error {
7133	invalidParams := request.ErrInvalidParams{Context: "RemoveNotificationChannelInput"}
7134	if s.Id == nil {
7135		invalidParams.Add(request.NewErrParamRequired("Id"))
7136	}
7137	if s.Id != nil && len(*s.Id) < 36 {
7138		invalidParams.Add(request.NewErrParamMinLen("Id", 36))
7139	}
7140
7141	if invalidParams.Len() > 0 {
7142		return invalidParams
7143	}
7144	return nil
7145}
7146
7147// SetId sets the Id field's value.
7148func (s *RemoveNotificationChannelInput) SetId(v string) *RemoveNotificationChannelInput {
7149	s.Id = &v
7150	return s
7151}
7152
7153type RemoveNotificationChannelOutput struct {
7154	_ struct{} `type:"structure"`
7155}
7156
7157// String returns the string representation.
7158//
7159// API parameter values that are decorated as "sensitive" in the API will not
7160// be included in the string output. The member name will be present, but the
7161// value will be replaced with "sensitive".
7162func (s RemoveNotificationChannelOutput) String() string {
7163	return awsutil.Prettify(s)
7164}
7165
7166// GoString returns the string representation.
7167//
7168// API parameter values that are decorated as "sensitive" in the API will not
7169// be included in the string output. The member name will be present, but the
7170// value will be replaced with "sensitive".
7171func (s RemoveNotificationChannelOutput) GoString() string {
7172	return s.String()
7173}
7174
7175// A collection of AWS resources supported by DevOps Guru. The one type of AWS
7176// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
7177// be configured to analyze only the AWS resources that are defined in the stacks.
7178// You can specify up to 500 AWS CloudFormation stacks.
7179type ResourceCollection struct {
7180	_ struct{} `type:"structure"`
7181
7182	// An array of the names of AWS CloudFormation stacks. The stacks define AWS
7183	// resources that DevOps Guru analyzes. You can specify up to 500 AWS CloudFormation
7184	// stacks.
7185	CloudFormation *CloudFormationCollection `type:"structure"`
7186}
7187
7188// String returns the string representation.
7189//
7190// API parameter values that are decorated as "sensitive" in the API will not
7191// be included in the string output. The member name will be present, but the
7192// value will be replaced with "sensitive".
7193func (s ResourceCollection) String() string {
7194	return awsutil.Prettify(s)
7195}
7196
7197// GoString returns the string representation.
7198//
7199// API parameter values that are decorated as "sensitive" in the API will not
7200// be included in the string output. The member name will be present, but the
7201// value will be replaced with "sensitive".
7202func (s ResourceCollection) GoString() string {
7203	return s.String()
7204}
7205
7206// SetCloudFormation sets the CloudFormation field's value.
7207func (s *ResourceCollection) SetCloudFormation(v *CloudFormationCollection) *ResourceCollection {
7208	s.CloudFormation = v
7209	return s
7210}
7211
7212// Information about a filter used to specify which AWS resources are analyzed
7213// for anomalous behavior by DevOps Guru.
7214type ResourceCollectionFilter struct {
7215	_ struct{} `type:"structure"`
7216
7217	// Information about AWS CloudFormation stacks. You can use up to 500 stacks
7218	// to specify which AWS resources in your account to analyze. For more information,
7219	// see Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html)
7220	// in the AWS CloudFormation User Guide.
7221	CloudFormation *CloudFormationCollectionFilter `type:"structure"`
7222}
7223
7224// String returns the string representation.
7225//
7226// API parameter values that are decorated as "sensitive" in the API will not
7227// be included in the string output. The member name will be present, but the
7228// value will be replaced with "sensitive".
7229func (s ResourceCollectionFilter) String() string {
7230	return awsutil.Prettify(s)
7231}
7232
7233// GoString returns the string representation.
7234//
7235// API parameter values that are decorated as "sensitive" in the API will not
7236// be included in the string output. The member name will be present, but the
7237// value will be replaced with "sensitive".
7238func (s ResourceCollectionFilter) GoString() string {
7239	return s.String()
7240}
7241
7242// SetCloudFormation sets the CloudFormation field's value.
7243func (s *ResourceCollectionFilter) SetCloudFormation(v *CloudFormationCollectionFilter) *ResourceCollectionFilter {
7244	s.CloudFormation = v
7245	return s
7246}
7247
7248// A requested resource could not be found
7249type ResourceNotFoundException struct {
7250	_            struct{}                  `type:"structure"`
7251	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7252
7253	Message_ *string `locationName:"Message" type:"string"`
7254
7255	// The ID of the AWS resource that could not be found.
7256	//
7257	// ResourceId is a required field
7258	ResourceId *string `type:"string" required:"true"`
7259
7260	// The type of the AWS resource that could not be found.
7261	//
7262	// ResourceType is a required field
7263	ResourceType *string `type:"string" required:"true"`
7264}
7265
7266// String returns the string representation.
7267//
7268// API parameter values that are decorated as "sensitive" in the API will not
7269// be included in the string output. The member name will be present, but the
7270// value will be replaced with "sensitive".
7271func (s ResourceNotFoundException) String() string {
7272	return awsutil.Prettify(s)
7273}
7274
7275// GoString returns the string representation.
7276//
7277// API parameter values that are decorated as "sensitive" in the API will not
7278// be included in the string output. The member name will be present, but the
7279// value will be replaced with "sensitive".
7280func (s ResourceNotFoundException) GoString() string {
7281	return s.String()
7282}
7283
7284func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
7285	return &ResourceNotFoundException{
7286		RespMetadata: v,
7287	}
7288}
7289
7290// Code returns the exception type name.
7291func (s *ResourceNotFoundException) Code() string {
7292	return "ResourceNotFoundException"
7293}
7294
7295// Message returns the exception's message.
7296func (s *ResourceNotFoundException) Message() string {
7297	if s.Message_ != nil {
7298		return *s.Message_
7299	}
7300	return ""
7301}
7302
7303// OrigErr always returns nil, satisfies awserr.Error interface.
7304func (s *ResourceNotFoundException) OrigErr() error {
7305	return nil
7306}
7307
7308func (s *ResourceNotFoundException) Error() string {
7309	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7310}
7311
7312// Status code returns the HTTP status code for the request's response error.
7313func (s *ResourceNotFoundException) StatusCode() int {
7314	return s.RespMetadata.StatusCode
7315}
7316
7317// RequestID returns the service's response RequestID for request.
7318func (s *ResourceNotFoundException) RequestID() string {
7319	return s.RespMetadata.RequestID
7320}
7321
7322// Specifies one or more severity values and one or more status values that
7323// are used to search for insights.
7324type SearchInsightsFilters struct {
7325	_ struct{} `type:"structure"`
7326
7327	// A collection of AWS resources supported by DevOps Guru. The one type of AWS
7328	// resource collection supported is AWS CloudFormation stacks. DevOps Guru can
7329	// be configured to analyze only the AWS resources that are defined in the stacks.
7330	// You can specify up to 500 AWS CloudFormation stacks.
7331	ResourceCollection *ResourceCollection `type:"structure"`
7332
7333	// A collection of the names of AWS services.
7334	ServiceCollection *ServiceCollection `type:"structure"`
7335
7336	// An array of severity values used to search for insights.
7337	Severities []*string `type:"list"`
7338
7339	// An array of status values used to search for insights.
7340	Statuses []*string `type:"list"`
7341}
7342
7343// String returns the string representation.
7344//
7345// API parameter values that are decorated as "sensitive" in the API will not
7346// be included in the string output. The member name will be present, but the
7347// value will be replaced with "sensitive".
7348func (s SearchInsightsFilters) String() string {
7349	return awsutil.Prettify(s)
7350}
7351
7352// GoString returns the string representation.
7353//
7354// API parameter values that are decorated as "sensitive" in the API will not
7355// be included in the string output. The member name will be present, but the
7356// value will be replaced with "sensitive".
7357func (s SearchInsightsFilters) GoString() string {
7358	return s.String()
7359}
7360
7361// SetResourceCollection sets the ResourceCollection field's value.
7362func (s *SearchInsightsFilters) SetResourceCollection(v *ResourceCollection) *SearchInsightsFilters {
7363	s.ResourceCollection = v
7364	return s
7365}
7366
7367// SetServiceCollection sets the ServiceCollection field's value.
7368func (s *SearchInsightsFilters) SetServiceCollection(v *ServiceCollection) *SearchInsightsFilters {
7369	s.ServiceCollection = v
7370	return s
7371}
7372
7373// SetSeverities sets the Severities field's value.
7374func (s *SearchInsightsFilters) SetSeverities(v []*string) *SearchInsightsFilters {
7375	s.Severities = v
7376	return s
7377}
7378
7379// SetStatuses sets the Statuses field's value.
7380func (s *SearchInsightsFilters) SetStatuses(v []*string) *SearchInsightsFilters {
7381	s.Statuses = v
7382	return s
7383}
7384
7385type SearchInsightsInput struct {
7386	_ struct{} `type:"structure"`
7387
7388	// A SearchInsightsFilters object that is used to set the severity and status
7389	// filters on your insight search.
7390	Filters *SearchInsightsFilters `type:"structure"`
7391
7392	// The maximum number of results to return with a single call. To retrieve the
7393	// remaining results, make another call with the returned nextToken value.
7394	MaxResults *int64 `min:"1" type:"integer"`
7395
7396	// The pagination token to use to retrieve the next page of results for this
7397	// operation. If this value is null, it retrieves the first page.
7398	NextToken *string `min:"36" type:"string"`
7399
7400	// The start of the time range passed in. Returned insights occurred after this
7401	// time.
7402	//
7403	// StartTimeRange is a required field
7404	StartTimeRange *StartTimeRange `type:"structure" required:"true"`
7405
7406	// The type of insights you are searching for (REACTIVE or PROACTIVE).
7407	//
7408	// Type is a required field
7409	Type *string `type:"string" required:"true" enum:"InsightType"`
7410}
7411
7412// String returns the string representation.
7413//
7414// API parameter values that are decorated as "sensitive" in the API will not
7415// be included in the string output. The member name will be present, but the
7416// value will be replaced with "sensitive".
7417func (s SearchInsightsInput) String() string {
7418	return awsutil.Prettify(s)
7419}
7420
7421// GoString returns the string representation.
7422//
7423// API parameter values that are decorated as "sensitive" in the API will not
7424// be included in the string output. The member name will be present, but the
7425// value will be replaced with "sensitive".
7426func (s SearchInsightsInput) GoString() string {
7427	return s.String()
7428}
7429
7430// Validate inspects the fields of the type to determine if they are valid.
7431func (s *SearchInsightsInput) Validate() error {
7432	invalidParams := request.ErrInvalidParams{Context: "SearchInsightsInput"}
7433	if s.MaxResults != nil && *s.MaxResults < 1 {
7434		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7435	}
7436	if s.NextToken != nil && len(*s.NextToken) < 36 {
7437		invalidParams.Add(request.NewErrParamMinLen("NextToken", 36))
7438	}
7439	if s.StartTimeRange == nil {
7440		invalidParams.Add(request.NewErrParamRequired("StartTimeRange"))
7441	}
7442	if s.Type == nil {
7443		invalidParams.Add(request.NewErrParamRequired("Type"))
7444	}
7445
7446	if invalidParams.Len() > 0 {
7447		return invalidParams
7448	}
7449	return nil
7450}
7451
7452// SetFilters sets the Filters field's value.
7453func (s *SearchInsightsInput) SetFilters(v *SearchInsightsFilters) *SearchInsightsInput {
7454	s.Filters = v
7455	return s
7456}
7457
7458// SetMaxResults sets the MaxResults field's value.
7459func (s *SearchInsightsInput) SetMaxResults(v int64) *SearchInsightsInput {
7460	s.MaxResults = &v
7461	return s
7462}
7463
7464// SetNextToken sets the NextToken field's value.
7465func (s *SearchInsightsInput) SetNextToken(v string) *SearchInsightsInput {
7466	s.NextToken = &v
7467	return s
7468}
7469
7470// SetStartTimeRange sets the StartTimeRange field's value.
7471func (s *SearchInsightsInput) SetStartTimeRange(v *StartTimeRange) *SearchInsightsInput {
7472	s.StartTimeRange = v
7473	return s
7474}
7475
7476// SetType sets the Type field's value.
7477func (s *SearchInsightsInput) SetType(v string) *SearchInsightsInput {
7478	s.Type = &v
7479	return s
7480}
7481
7482type SearchInsightsOutput struct {
7483	_ struct{} `type:"structure"`
7484
7485	// The pagination token to use to retrieve the next page of results for this
7486	// operation. If there are no more pages, this value is null.
7487	NextToken *string `min:"36" type:"string"`
7488
7489	// The returned proactive insights.
7490	ProactiveInsights []*ProactiveInsightSummary `type:"list"`
7491
7492	// The returned reactive insights.
7493	ReactiveInsights []*ReactiveInsightSummary `type:"list"`
7494}
7495
7496// String returns the string representation.
7497//
7498// API parameter values that are decorated as "sensitive" in the API will not
7499// be included in the string output. The member name will be present, but the
7500// value will be replaced with "sensitive".
7501func (s SearchInsightsOutput) String() string {
7502	return awsutil.Prettify(s)
7503}
7504
7505// GoString returns the string representation.
7506//
7507// API parameter values that are decorated as "sensitive" in the API will not
7508// be included in the string output. The member name will be present, but the
7509// value will be replaced with "sensitive".
7510func (s SearchInsightsOutput) GoString() string {
7511	return s.String()
7512}
7513
7514// SetNextToken sets the NextToken field's value.
7515func (s *SearchInsightsOutput) SetNextToken(v string) *SearchInsightsOutput {
7516	s.NextToken = &v
7517	return s
7518}
7519
7520// SetProactiveInsights sets the ProactiveInsights field's value.
7521func (s *SearchInsightsOutput) SetProactiveInsights(v []*ProactiveInsightSummary) *SearchInsightsOutput {
7522	s.ProactiveInsights = v
7523	return s
7524}
7525
7526// SetReactiveInsights sets the ReactiveInsights field's value.
7527func (s *SearchInsightsOutput) SetReactiveInsights(v []*ReactiveInsightSummary) *SearchInsightsOutput {
7528	s.ReactiveInsights = v
7529	return s
7530}
7531
7532// A collection of the names of AWS services.
7533type ServiceCollection struct {
7534	_ struct{} `type:"structure"`
7535
7536	// An array of strings that each specifies the name of an AWS service.
7537	ServiceNames []*string `type:"list"`
7538}
7539
7540// String returns the string representation.
7541//
7542// API parameter values that are decorated as "sensitive" in the API will not
7543// be included in the string output. The member name will be present, but the
7544// value will be replaced with "sensitive".
7545func (s ServiceCollection) String() string {
7546	return awsutil.Prettify(s)
7547}
7548
7549// GoString returns the string representation.
7550//
7551// API parameter values that are decorated as "sensitive" in the API will not
7552// be included in the string output. The member name will be present, but the
7553// value will be replaced with "sensitive".
7554func (s ServiceCollection) GoString() string {
7555	return s.String()
7556}
7557
7558// SetServiceNames sets the ServiceNames field's value.
7559func (s *ServiceCollection) SetServiceNames(v []*string) *ServiceCollection {
7560	s.ServiceNames = v
7561	return s
7562}
7563
7564// Represents the health of an AWS service.
7565type ServiceHealth struct {
7566	_ struct{} `type:"structure"`
7567
7568	// Represents the health of an AWS service. This is a ServiceInsightHealth that
7569	// contains the number of open proactive and reactive insights for this service.
7570	Insight *ServiceInsightHealth `type:"structure"`
7571
7572	// The name of the AWS service.
7573	ServiceName *string `type:"string" enum:"ServiceName"`
7574}
7575
7576// String returns the string representation.
7577//
7578// API parameter values that are decorated as "sensitive" in the API will not
7579// be included in the string output. The member name will be present, but the
7580// value will be replaced with "sensitive".
7581func (s ServiceHealth) String() string {
7582	return awsutil.Prettify(s)
7583}
7584
7585// GoString returns the string representation.
7586//
7587// API parameter values that are decorated as "sensitive" in the API will not
7588// be included in the string output. The member name will be present, but the
7589// value will be replaced with "sensitive".
7590func (s ServiceHealth) GoString() string {
7591	return s.String()
7592}
7593
7594// SetInsight sets the Insight field's value.
7595func (s *ServiceHealth) SetInsight(v *ServiceInsightHealth) *ServiceHealth {
7596	s.Insight = v
7597	return s
7598}
7599
7600// SetServiceName sets the ServiceName field's value.
7601func (s *ServiceHealth) SetServiceName(v string) *ServiceHealth {
7602	s.ServiceName = &v
7603	return s
7604}
7605
7606// Contains the number of open proactive and reactive insights in an analyzed
7607// AWS service.
7608type ServiceInsightHealth struct {
7609	_ struct{} `type:"structure"`
7610
7611	// The number of open proactive insights in the AWS service
7612	OpenProactiveInsights *int64 `type:"integer"`
7613
7614	// The number of open reactive insights in the AWS service
7615	OpenReactiveInsights *int64 `type:"integer"`
7616}
7617
7618// String returns the string representation.
7619//
7620// API parameter values that are decorated as "sensitive" in the API will not
7621// be included in the string output. The member name will be present, but the
7622// value will be replaced with "sensitive".
7623func (s ServiceInsightHealth) String() string {
7624	return awsutil.Prettify(s)
7625}
7626
7627// GoString returns the string representation.
7628//
7629// API parameter values that are decorated as "sensitive" in the API will not
7630// be included in the string output. The member name will be present, but the
7631// value will be replaced with "sensitive".
7632func (s ServiceInsightHealth) GoString() string {
7633	return s.String()
7634}
7635
7636// SetOpenProactiveInsights sets the OpenProactiveInsights field's value.
7637func (s *ServiceInsightHealth) SetOpenProactiveInsights(v int64) *ServiceInsightHealth {
7638	s.OpenProactiveInsights = &v
7639	return s
7640}
7641
7642// SetOpenReactiveInsights sets the OpenReactiveInsights field's value.
7643func (s *ServiceInsightHealth) SetOpenReactiveInsights(v int64) *ServiceInsightHealth {
7644	s.OpenReactiveInsights = &v
7645	return s
7646}
7647
7648// Information about the integration of DevOps Guru with another AWS service,
7649// such as AWS Systems Manager.
7650type ServiceIntegrationConfig struct {
7651	_ struct{} `type:"structure"`
7652
7653	// Information about whether DevOps Guru is configured to create an OpsItem
7654	// in AWS Systems Manager OpsCenter for each created insight.
7655	OpsCenter *OpsCenterIntegration `type:"structure"`
7656}
7657
7658// String returns the string representation.
7659//
7660// API parameter values that are decorated as "sensitive" in the API will not
7661// be included in the string output. The member name will be present, but the
7662// value will be replaced with "sensitive".
7663func (s ServiceIntegrationConfig) String() string {
7664	return awsutil.Prettify(s)
7665}
7666
7667// GoString returns the string representation.
7668//
7669// API parameter values that are decorated as "sensitive" in the API will not
7670// be included in the string output. The member name will be present, but the
7671// value will be replaced with "sensitive".
7672func (s ServiceIntegrationConfig) GoString() string {
7673	return s.String()
7674}
7675
7676// SetOpsCenter sets the OpsCenter field's value.
7677func (s *ServiceIntegrationConfig) SetOpsCenter(v *OpsCenterIntegration) *ServiceIntegrationConfig {
7678	s.OpsCenter = v
7679	return s
7680}
7681
7682// The request contains a value that exceeds a maximum quota.
7683type ServiceQuotaExceededException struct {
7684	_            struct{}                  `type:"structure"`
7685	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7686
7687	Message_ *string `locationName:"Message" type:"string"`
7688}
7689
7690// String returns the string representation.
7691//
7692// API parameter values that are decorated as "sensitive" in the API will not
7693// be included in the string output. The member name will be present, but the
7694// value will be replaced with "sensitive".
7695func (s ServiceQuotaExceededException) String() string {
7696	return awsutil.Prettify(s)
7697}
7698
7699// GoString returns the string representation.
7700//
7701// API parameter values that are decorated as "sensitive" in the API will not
7702// be included in the string output. The member name will be present, but the
7703// value will be replaced with "sensitive".
7704func (s ServiceQuotaExceededException) GoString() string {
7705	return s.String()
7706}
7707
7708func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
7709	return &ServiceQuotaExceededException{
7710		RespMetadata: v,
7711	}
7712}
7713
7714// Code returns the exception type name.
7715func (s *ServiceQuotaExceededException) Code() string {
7716	return "ServiceQuotaExceededException"
7717}
7718
7719// Message returns the exception's message.
7720func (s *ServiceQuotaExceededException) Message() string {
7721	if s.Message_ != nil {
7722		return *s.Message_
7723	}
7724	return ""
7725}
7726
7727// OrigErr always returns nil, satisfies awserr.Error interface.
7728func (s *ServiceQuotaExceededException) OrigErr() error {
7729	return nil
7730}
7731
7732func (s *ServiceQuotaExceededException) Error() string {
7733	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7734}
7735
7736// Status code returns the HTTP status code for the request's response error.
7737func (s *ServiceQuotaExceededException) StatusCode() int {
7738	return s.RespMetadata.StatusCode
7739}
7740
7741// RequestID returns the service's response RequestID for request.
7742func (s *ServiceQuotaExceededException) RequestID() string {
7743	return s.RespMetadata.RequestID
7744}
7745
7746// An object that contains information about the estimated monthly cost to analyze
7747// an AWS resource. For more information, see Estimate your Amazon DevOps Guru
7748// costs (https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html)
7749// and Amazon DevOps Guru pricing (http://aws.amazon.com/devops-guru/pricing/).
7750type ServiceResourceCost struct {
7751	_ struct{} `type:"structure"`
7752
7753	// The total estimated monthly cost to analyze the active resources for this
7754	// resource.
7755	Cost *float64 `type:"double"`
7756
7757	// The number of active resources analyzed for this service to create a monthly
7758	// cost estimate.
7759	Count *int64 `type:"integer"`
7760
7761	// The state of the resource. The resource is ACTIVE if it produces metrics,
7762	// events, or logs within an hour, otherwise it is INACTIVE. You pay for the
7763	// number of active AWS resource hours analyzed for each resource. Inactive
7764	// resources are not charged.
7765	State *string `type:"string" enum:"CostEstimationServiceResourceState"`
7766
7767	// The type of the AWS resource.
7768	Type *string `min:"1" type:"string"`
7769
7770	// The price per hour to analyze the resources in the service. For more information,
7771	// see Estimate your Amazon DevOps Guru costs (https://docs.aws.amazon.com/devops-guru/latest/userguide/cost-estimate.html)
7772	// and Amazon DevOps Guru pricing (http://aws.amazon.com/devops-guru/pricing/).
7773	UnitCost *float64 `type:"double"`
7774}
7775
7776// String returns the string representation.
7777//
7778// API parameter values that are decorated as "sensitive" in the API will not
7779// be included in the string output. The member name will be present, but the
7780// value will be replaced with "sensitive".
7781func (s ServiceResourceCost) String() string {
7782	return awsutil.Prettify(s)
7783}
7784
7785// GoString returns the string representation.
7786//
7787// API parameter values that are decorated as "sensitive" in the API will not
7788// be included in the string output. The member name will be present, but the
7789// value will be replaced with "sensitive".
7790func (s ServiceResourceCost) GoString() string {
7791	return s.String()
7792}
7793
7794// SetCost sets the Cost field's value.
7795func (s *ServiceResourceCost) SetCost(v float64) *ServiceResourceCost {
7796	s.Cost = &v
7797	return s
7798}
7799
7800// SetCount sets the Count field's value.
7801func (s *ServiceResourceCost) SetCount(v int64) *ServiceResourceCost {
7802	s.Count = &v
7803	return s
7804}
7805
7806// SetState sets the State field's value.
7807func (s *ServiceResourceCost) SetState(v string) *ServiceResourceCost {
7808	s.State = &v
7809	return s
7810}
7811
7812// SetType sets the Type field's value.
7813func (s *ServiceResourceCost) SetType(v string) *ServiceResourceCost {
7814	s.Type = &v
7815	return s
7816}
7817
7818// SetUnitCost sets the UnitCost field's value.
7819func (s *ServiceResourceCost) SetUnitCost(v float64) *ServiceResourceCost {
7820	s.UnitCost = &v
7821	return s
7822}
7823
7824// Contains the Amazon Resource Name (ARN) of an Amazon Simple Notification
7825// Service topic.
7826//
7827// If you use an Amazon SNS topic in another account, you must attach a policy
7828// to it that grants DevOps Guru permission to it notifications. DevOps Guru
7829// adds the required policy on your behalf to send notifications using Amazon
7830// SNS in your account. For more information, see Permissions for cross account
7831// Amazon SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-required-permissions.html).
7832//
7833// If you use an Amazon SNS topic that is encrypted by an AWS Key Management
7834// Service customer-managed key (CMK), then you must add permissions to the
7835// CMK. For more information, see Permissions for AWS KMS–encrypted Amazon
7836// SNS topics (https://docs.aws.amazon.com/devops-guru/latest/userguide/sns-kms-permissions.html).
7837type SnsChannelConfig struct {
7838	_ struct{} `type:"structure"`
7839
7840	// The Amazon Resource Name (ARN) of an Amazon Simple Notification Service topic.
7841	TopicArn *string `min:"36" type:"string"`
7842}
7843
7844// String returns the string representation.
7845//
7846// API parameter values that are decorated as "sensitive" in the API will not
7847// be included in the string output. The member name will be present, but the
7848// value will be replaced with "sensitive".
7849func (s SnsChannelConfig) String() string {
7850	return awsutil.Prettify(s)
7851}
7852
7853// GoString returns the string representation.
7854//
7855// API parameter values that are decorated as "sensitive" in the API will not
7856// be included in the string output. The member name will be present, but the
7857// value will be replaced with "sensitive".
7858func (s SnsChannelConfig) GoString() string {
7859	return s.String()
7860}
7861
7862// Validate inspects the fields of the type to determine if they are valid.
7863func (s *SnsChannelConfig) Validate() error {
7864	invalidParams := request.ErrInvalidParams{Context: "SnsChannelConfig"}
7865	if s.TopicArn != nil && len(*s.TopicArn) < 36 {
7866		invalidParams.Add(request.NewErrParamMinLen("TopicArn", 36))
7867	}
7868
7869	if invalidParams.Len() > 0 {
7870		return invalidParams
7871	}
7872	return nil
7873}
7874
7875// SetTopicArn sets the TopicArn field's value.
7876func (s *SnsChannelConfig) SetTopicArn(v string) *SnsChannelConfig {
7877	s.TopicArn = &v
7878	return s
7879}
7880
7881type StartCostEstimationInput struct {
7882	_ struct{} `type:"structure"`
7883
7884	// The idempotency token used to identify each cost estimate request.
7885	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
7886
7887	// The collection of AWS resources used to create a monthly DevOps Guru cost
7888	// estimate.
7889	//
7890	// ResourceCollection is a required field
7891	ResourceCollection *CostEstimationResourceCollectionFilter `type:"structure" required:"true"`
7892}
7893
7894// String returns the string representation.
7895//
7896// API parameter values that are decorated as "sensitive" in the API will not
7897// be included in the string output. The member name will be present, but the
7898// value will be replaced with "sensitive".
7899func (s StartCostEstimationInput) String() string {
7900	return awsutil.Prettify(s)
7901}
7902
7903// GoString returns the string representation.
7904//
7905// API parameter values that are decorated as "sensitive" in the API will not
7906// be included in the string output. The member name will be present, but the
7907// value will be replaced with "sensitive".
7908func (s StartCostEstimationInput) GoString() string {
7909	return s.String()
7910}
7911
7912// Validate inspects the fields of the type to determine if they are valid.
7913func (s *StartCostEstimationInput) Validate() error {
7914	invalidParams := request.ErrInvalidParams{Context: "StartCostEstimationInput"}
7915	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
7916		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
7917	}
7918	if s.ResourceCollection == nil {
7919		invalidParams.Add(request.NewErrParamRequired("ResourceCollection"))
7920	}
7921	if s.ResourceCollection != nil {
7922		if err := s.ResourceCollection.Validate(); err != nil {
7923			invalidParams.AddNested("ResourceCollection", err.(request.ErrInvalidParams))
7924		}
7925	}
7926
7927	if invalidParams.Len() > 0 {
7928		return invalidParams
7929	}
7930	return nil
7931}
7932
7933// SetClientToken sets the ClientToken field's value.
7934func (s *StartCostEstimationInput) SetClientToken(v string) *StartCostEstimationInput {
7935	s.ClientToken = &v
7936	return s
7937}
7938
7939// SetResourceCollection sets the ResourceCollection field's value.
7940func (s *StartCostEstimationInput) SetResourceCollection(v *CostEstimationResourceCollectionFilter) *StartCostEstimationInput {
7941	s.ResourceCollection = v
7942	return s
7943}
7944
7945type StartCostEstimationOutput struct {
7946	_ struct{} `type:"structure"`
7947}
7948
7949// String returns the string representation.
7950//
7951// API parameter values that are decorated as "sensitive" in the API will not
7952// be included in the string output. The member name will be present, but the
7953// value will be replaced with "sensitive".
7954func (s StartCostEstimationOutput) String() string {
7955	return awsutil.Prettify(s)
7956}
7957
7958// GoString returns the string representation.
7959//
7960// API parameter values that are decorated as "sensitive" in the API will not
7961// be included in the string output. The member name will be present, but the
7962// value will be replaced with "sensitive".
7963func (s StartCostEstimationOutput) GoString() string {
7964	return s.String()
7965}
7966
7967// A time range used to specify when the behavior of an insight or anomaly started.
7968type StartTimeRange struct {
7969	_ struct{} `type:"structure"`
7970
7971	// The start time of the time range.
7972	FromTime *time.Time `type:"timestamp"`
7973
7974	// The end time of the time range.
7975	ToTime *time.Time `type:"timestamp"`
7976}
7977
7978// String returns the string representation.
7979//
7980// API parameter values that are decorated as "sensitive" in the API will not
7981// be included in the string output. The member name will be present, but the
7982// value will be replaced with "sensitive".
7983func (s StartTimeRange) String() string {
7984	return awsutil.Prettify(s)
7985}
7986
7987// GoString returns the string representation.
7988//
7989// API parameter values that are decorated as "sensitive" in the API will not
7990// be included in the string output. The member name will be present, but the
7991// value will be replaced with "sensitive".
7992func (s StartTimeRange) GoString() string {
7993	return s.String()
7994}
7995
7996// SetFromTime sets the FromTime field's value.
7997func (s *StartTimeRange) SetFromTime(v time.Time) *StartTimeRange {
7998	s.FromTime = &v
7999	return s
8000}
8001
8002// SetToTime sets the ToTime field's value.
8003func (s *StartTimeRange) SetToTime(v time.Time) *StartTimeRange {
8004	s.ToTime = &v
8005	return s
8006}
8007
8008// The request was denied due to a request throttling.
8009type ThrottlingException struct {
8010	_            struct{}                  `type:"structure"`
8011	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8012
8013	Message_ *string `locationName:"Message" type:"string"`
8014
8015	// The code of the quota that was exceeded, causing the throttling exception.
8016	QuotaCode *string `type:"string"`
8017
8018	// The number of seconds after which the action that caused the throttling exception
8019	// can be retried.
8020	RetryAfterSeconds *int64 `location:"header" locationName:"Retry-After" type:"integer"`
8021
8022	// The code of the service that caused the throttling exception.
8023	ServiceCode *string `type:"string"`
8024}
8025
8026// String returns the string representation.
8027//
8028// API parameter values that are decorated as "sensitive" in the API will not
8029// be included in the string output. The member name will be present, but the
8030// value will be replaced with "sensitive".
8031func (s ThrottlingException) String() string {
8032	return awsutil.Prettify(s)
8033}
8034
8035// GoString returns the string representation.
8036//
8037// API parameter values that are decorated as "sensitive" in the API will not
8038// be included in the string output. The member name will be present, but the
8039// value will be replaced with "sensitive".
8040func (s ThrottlingException) GoString() string {
8041	return s.String()
8042}
8043
8044func newErrorThrottlingException(v protocol.ResponseMetadata) error {
8045	return &ThrottlingException{
8046		RespMetadata: v,
8047	}
8048}
8049
8050// Code returns the exception type name.
8051func (s *ThrottlingException) Code() string {
8052	return "ThrottlingException"
8053}
8054
8055// Message returns the exception's message.
8056func (s *ThrottlingException) Message() string {
8057	if s.Message_ != nil {
8058		return *s.Message_
8059	}
8060	return ""
8061}
8062
8063// OrigErr always returns nil, satisfies awserr.Error interface.
8064func (s *ThrottlingException) OrigErr() error {
8065	return nil
8066}
8067
8068func (s *ThrottlingException) Error() string {
8069	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8070}
8071
8072// Status code returns the HTTP status code for the request's response error.
8073func (s *ThrottlingException) StatusCode() int {
8074	return s.RespMetadata.StatusCode
8075}
8076
8077// RequestID returns the service's response RequestID for request.
8078func (s *ThrottlingException) RequestID() string {
8079	return s.RespMetadata.RequestID
8080}
8081
8082// Contains the names of AWS CloudFormation stacks used to update a collection
8083// of stacks. You can specify up to 500 AWS CloudFormation stacks.
8084type UpdateCloudFormationCollectionFilter struct {
8085	_ struct{} `type:"structure"`
8086
8087	// An array of the names of the AWS CloudFormation stacks to update. You can
8088	// specify up to 500 AWS CloudFormation stacks.
8089	StackNames []*string `type:"list"`
8090}
8091
8092// String returns the string representation.
8093//
8094// API parameter values that are decorated as "sensitive" in the API will not
8095// be included in the string output. The member name will be present, but the
8096// value will be replaced with "sensitive".
8097func (s UpdateCloudFormationCollectionFilter) String() string {
8098	return awsutil.Prettify(s)
8099}
8100
8101// GoString returns the string representation.
8102//
8103// API parameter values that are decorated as "sensitive" in the API will not
8104// be included in the string output. The member name will be present, but the
8105// value will be replaced with "sensitive".
8106func (s UpdateCloudFormationCollectionFilter) GoString() string {
8107	return s.String()
8108}
8109
8110// SetStackNames sets the StackNames field's value.
8111func (s *UpdateCloudFormationCollectionFilter) SetStackNames(v []*string) *UpdateCloudFormationCollectionFilter {
8112	s.StackNames = v
8113	return s
8114}
8115
8116// Contains information used to update a collection of AWS resources.
8117type UpdateResourceCollectionFilter struct {
8118	_ struct{} `type:"structure"`
8119
8120	// An collection of AWS CloudFormation stacks. You can specify up to 500 AWS
8121	// CloudFormation stacks.
8122	CloudFormation *UpdateCloudFormationCollectionFilter `type:"structure"`
8123}
8124
8125// String returns the string representation.
8126//
8127// API parameter values that are decorated as "sensitive" in the API will not
8128// be included in the string output. The member name will be present, but the
8129// value will be replaced with "sensitive".
8130func (s UpdateResourceCollectionFilter) String() string {
8131	return awsutil.Prettify(s)
8132}
8133
8134// GoString returns the string representation.
8135//
8136// API parameter values that are decorated as "sensitive" in the API will not
8137// be included in the string output. The member name will be present, but the
8138// value will be replaced with "sensitive".
8139func (s UpdateResourceCollectionFilter) GoString() string {
8140	return s.String()
8141}
8142
8143// SetCloudFormation sets the CloudFormation field's value.
8144func (s *UpdateResourceCollectionFilter) SetCloudFormation(v *UpdateCloudFormationCollectionFilter) *UpdateResourceCollectionFilter {
8145	s.CloudFormation = v
8146	return s
8147}
8148
8149type UpdateResourceCollectionInput struct {
8150	_ struct{} `type:"structure"`
8151
8152	// Specifies if the resource collection in the request is added or deleted to
8153	// the resource collection.
8154	//
8155	// Action is a required field
8156	Action *string `type:"string" required:"true" enum:"UpdateResourceCollectionAction"`
8157
8158	// Contains information used to update a collection of AWS resources.
8159	//
8160	// ResourceCollection is a required field
8161	ResourceCollection *UpdateResourceCollectionFilter `type:"structure" required:"true"`
8162}
8163
8164// String returns the string representation.
8165//
8166// API parameter values that are decorated as "sensitive" in the API will not
8167// be included in the string output. The member name will be present, but the
8168// value will be replaced with "sensitive".
8169func (s UpdateResourceCollectionInput) String() string {
8170	return awsutil.Prettify(s)
8171}
8172
8173// GoString returns the string representation.
8174//
8175// API parameter values that are decorated as "sensitive" in the API will not
8176// be included in the string output. The member name will be present, but the
8177// value will be replaced with "sensitive".
8178func (s UpdateResourceCollectionInput) GoString() string {
8179	return s.String()
8180}
8181
8182// Validate inspects the fields of the type to determine if they are valid.
8183func (s *UpdateResourceCollectionInput) Validate() error {
8184	invalidParams := request.ErrInvalidParams{Context: "UpdateResourceCollectionInput"}
8185	if s.Action == nil {
8186		invalidParams.Add(request.NewErrParamRequired("Action"))
8187	}
8188	if s.ResourceCollection == nil {
8189		invalidParams.Add(request.NewErrParamRequired("ResourceCollection"))
8190	}
8191
8192	if invalidParams.Len() > 0 {
8193		return invalidParams
8194	}
8195	return nil
8196}
8197
8198// SetAction sets the Action field's value.
8199func (s *UpdateResourceCollectionInput) SetAction(v string) *UpdateResourceCollectionInput {
8200	s.Action = &v
8201	return s
8202}
8203
8204// SetResourceCollection sets the ResourceCollection field's value.
8205func (s *UpdateResourceCollectionInput) SetResourceCollection(v *UpdateResourceCollectionFilter) *UpdateResourceCollectionInput {
8206	s.ResourceCollection = v
8207	return s
8208}
8209
8210type UpdateResourceCollectionOutput struct {
8211	_ struct{} `type:"structure"`
8212}
8213
8214// String returns the string representation.
8215//
8216// API parameter values that are decorated as "sensitive" in the API will not
8217// be included in the string output. The member name will be present, but the
8218// value will be replaced with "sensitive".
8219func (s UpdateResourceCollectionOutput) String() string {
8220	return awsutil.Prettify(s)
8221}
8222
8223// GoString returns the string representation.
8224//
8225// API parameter values that are decorated as "sensitive" in the API will not
8226// be included in the string output. The member name will be present, but the
8227// value will be replaced with "sensitive".
8228func (s UpdateResourceCollectionOutput) GoString() string {
8229	return s.String()
8230}
8231
8232// Information about updating the integration status of an AWS service, such
8233// as AWS Systems Manager, with DevOps Guru.
8234type UpdateServiceIntegrationConfig struct {
8235	_ struct{} `type:"structure"`
8236
8237	// Information about whether DevOps Guru is configured to create an OpsItem
8238	// in AWS Systems Manager OpsCenter for each created insight.
8239	OpsCenter *OpsCenterIntegrationConfig `type:"structure"`
8240}
8241
8242// String returns the string representation.
8243//
8244// API parameter values that are decorated as "sensitive" in the API will not
8245// be included in the string output. The member name will be present, but the
8246// value will be replaced with "sensitive".
8247func (s UpdateServiceIntegrationConfig) String() string {
8248	return awsutil.Prettify(s)
8249}
8250
8251// GoString returns the string representation.
8252//
8253// API parameter values that are decorated as "sensitive" in the API will not
8254// be included in the string output. The member name will be present, but the
8255// value will be replaced with "sensitive".
8256func (s UpdateServiceIntegrationConfig) GoString() string {
8257	return s.String()
8258}
8259
8260// SetOpsCenter sets the OpsCenter field's value.
8261func (s *UpdateServiceIntegrationConfig) SetOpsCenter(v *OpsCenterIntegrationConfig) *UpdateServiceIntegrationConfig {
8262	s.OpsCenter = v
8263	return s
8264}
8265
8266type UpdateServiceIntegrationInput struct {
8267	_ struct{} `type:"structure"`
8268
8269	// An IntegratedServiceConfig object used to specify the integrated service
8270	// you want to update, and whether you want to update it to enabled or disabled.
8271	//
8272	// ServiceIntegration is a required field
8273	ServiceIntegration *UpdateServiceIntegrationConfig `type:"structure" required:"true"`
8274}
8275
8276// String returns the string representation.
8277//
8278// API parameter values that are decorated as "sensitive" in the API will not
8279// be included in the string output. The member name will be present, but the
8280// value will be replaced with "sensitive".
8281func (s UpdateServiceIntegrationInput) String() string {
8282	return awsutil.Prettify(s)
8283}
8284
8285// GoString returns the string representation.
8286//
8287// API parameter values that are decorated as "sensitive" in the API will not
8288// be included in the string output. The member name will be present, but the
8289// value will be replaced with "sensitive".
8290func (s UpdateServiceIntegrationInput) GoString() string {
8291	return s.String()
8292}
8293
8294// Validate inspects the fields of the type to determine if they are valid.
8295func (s *UpdateServiceIntegrationInput) Validate() error {
8296	invalidParams := request.ErrInvalidParams{Context: "UpdateServiceIntegrationInput"}
8297	if s.ServiceIntegration == nil {
8298		invalidParams.Add(request.NewErrParamRequired("ServiceIntegration"))
8299	}
8300
8301	if invalidParams.Len() > 0 {
8302		return invalidParams
8303	}
8304	return nil
8305}
8306
8307// SetServiceIntegration sets the ServiceIntegration field's value.
8308func (s *UpdateServiceIntegrationInput) SetServiceIntegration(v *UpdateServiceIntegrationConfig) *UpdateServiceIntegrationInput {
8309	s.ServiceIntegration = v
8310	return s
8311}
8312
8313type UpdateServiceIntegrationOutput struct {
8314	_ struct{} `type:"structure"`
8315}
8316
8317// String returns the string representation.
8318//
8319// API parameter values that are decorated as "sensitive" in the API will not
8320// be included in the string output. The member name will be present, but the
8321// value will be replaced with "sensitive".
8322func (s UpdateServiceIntegrationOutput) String() string {
8323	return awsutil.Prettify(s)
8324}
8325
8326// GoString returns the string representation.
8327//
8328// API parameter values that are decorated as "sensitive" in the API will not
8329// be included in the string output. The member name will be present, but the
8330// value will be replaced with "sensitive".
8331func (s UpdateServiceIntegrationOutput) GoString() string {
8332	return s.String()
8333}
8334
8335// Contains information about data passed in to a field during a request that
8336// is not valid.
8337type ValidationException struct {
8338	_            struct{}                  `type:"structure"`
8339	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8340
8341	// An array of fields that are associated with the validation exception.
8342	Fields []*ValidationExceptionField `type:"list"`
8343
8344	// A message that describes the validation exception.
8345	Message_ *string `locationName:"Message" type:"string"`
8346
8347	// The reason the validation exception was thrown.
8348	Reason *string `type:"string" enum:"ValidationExceptionReason"`
8349}
8350
8351// String returns the string representation.
8352//
8353// API parameter values that are decorated as "sensitive" in the API will not
8354// be included in the string output. The member name will be present, but the
8355// value will be replaced with "sensitive".
8356func (s ValidationException) String() string {
8357	return awsutil.Prettify(s)
8358}
8359
8360// GoString returns the string representation.
8361//
8362// API parameter values that are decorated as "sensitive" in the API will not
8363// be included in the string output. The member name will be present, but the
8364// value will be replaced with "sensitive".
8365func (s ValidationException) GoString() string {
8366	return s.String()
8367}
8368
8369func newErrorValidationException(v protocol.ResponseMetadata) error {
8370	return &ValidationException{
8371		RespMetadata: v,
8372	}
8373}
8374
8375// Code returns the exception type name.
8376func (s *ValidationException) Code() string {
8377	return "ValidationException"
8378}
8379
8380// Message returns the exception's message.
8381func (s *ValidationException) Message() string {
8382	if s.Message_ != nil {
8383		return *s.Message_
8384	}
8385	return ""
8386}
8387
8388// OrigErr always returns nil, satisfies awserr.Error interface.
8389func (s *ValidationException) OrigErr() error {
8390	return nil
8391}
8392
8393func (s *ValidationException) Error() string {
8394	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8395}
8396
8397// Status code returns the HTTP status code for the request's response error.
8398func (s *ValidationException) StatusCode() int {
8399	return s.RespMetadata.StatusCode
8400}
8401
8402// RequestID returns the service's response RequestID for request.
8403func (s *ValidationException) RequestID() string {
8404	return s.RespMetadata.RequestID
8405}
8406
8407// The field associated with the validation exception.
8408type ValidationExceptionField struct {
8409	_ struct{} `type:"structure"`
8410
8411	// The message associated with the validation exception with information to
8412	// help determine its cause.
8413	//
8414	// Message is a required field
8415	Message *string `type:"string" required:"true"`
8416
8417	// The name of the field.
8418	//
8419	// Name is a required field
8420	Name *string `type:"string" required:"true"`
8421}
8422
8423// String returns the string representation.
8424//
8425// API parameter values that are decorated as "sensitive" in the API will not
8426// be included in the string output. The member name will be present, but the
8427// value will be replaced with "sensitive".
8428func (s ValidationExceptionField) String() string {
8429	return awsutil.Prettify(s)
8430}
8431
8432// GoString returns the string representation.
8433//
8434// API parameter values that are decorated as "sensitive" in the API will not
8435// be included in the string output. The member name will be present, but the
8436// value will be replaced with "sensitive".
8437func (s ValidationExceptionField) GoString() string {
8438	return s.String()
8439}
8440
8441// SetMessage sets the Message field's value.
8442func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField {
8443	s.Message = &v
8444	return s
8445}
8446
8447// SetName sets the Name field's value.
8448func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField {
8449	s.Name = &v
8450	return s
8451}
8452
8453const (
8454	// AnomalySeverityLow is a AnomalySeverity enum value
8455	AnomalySeverityLow = "LOW"
8456
8457	// AnomalySeverityMedium is a AnomalySeverity enum value
8458	AnomalySeverityMedium = "MEDIUM"
8459
8460	// AnomalySeverityHigh is a AnomalySeverity enum value
8461	AnomalySeverityHigh = "HIGH"
8462)
8463
8464// AnomalySeverity_Values returns all elements of the AnomalySeverity enum
8465func AnomalySeverity_Values() []string {
8466	return []string{
8467		AnomalySeverityLow,
8468		AnomalySeverityMedium,
8469		AnomalySeverityHigh,
8470	}
8471}
8472
8473const (
8474	// AnomalyStatusOngoing is a AnomalyStatus enum value
8475	AnomalyStatusOngoing = "ONGOING"
8476
8477	// AnomalyStatusClosed is a AnomalyStatus enum value
8478	AnomalyStatusClosed = "CLOSED"
8479)
8480
8481// AnomalyStatus_Values returns all elements of the AnomalyStatus enum
8482func AnomalyStatus_Values() []string {
8483	return []string{
8484		AnomalyStatusOngoing,
8485		AnomalyStatusClosed,
8486	}
8487}
8488
8489const (
8490	// CloudWatchMetricsStatSum is a CloudWatchMetricsStat enum value
8491	CloudWatchMetricsStatSum = "Sum"
8492
8493	// CloudWatchMetricsStatAverage is a CloudWatchMetricsStat enum value
8494	CloudWatchMetricsStatAverage = "Average"
8495
8496	// CloudWatchMetricsStatSampleCount is a CloudWatchMetricsStat enum value
8497	CloudWatchMetricsStatSampleCount = "SampleCount"
8498
8499	// CloudWatchMetricsStatMinimum is a CloudWatchMetricsStat enum value
8500	CloudWatchMetricsStatMinimum = "Minimum"
8501
8502	// CloudWatchMetricsStatMaximum is a CloudWatchMetricsStat enum value
8503	CloudWatchMetricsStatMaximum = "Maximum"
8504
8505	// CloudWatchMetricsStatP99 is a CloudWatchMetricsStat enum value
8506	CloudWatchMetricsStatP99 = "p99"
8507
8508	// CloudWatchMetricsStatP90 is a CloudWatchMetricsStat enum value
8509	CloudWatchMetricsStatP90 = "p90"
8510
8511	// CloudWatchMetricsStatP50 is a CloudWatchMetricsStat enum value
8512	CloudWatchMetricsStatP50 = "p50"
8513)
8514
8515// CloudWatchMetricsStat_Values returns all elements of the CloudWatchMetricsStat enum
8516func CloudWatchMetricsStat_Values() []string {
8517	return []string{
8518		CloudWatchMetricsStatSum,
8519		CloudWatchMetricsStatAverage,
8520		CloudWatchMetricsStatSampleCount,
8521		CloudWatchMetricsStatMinimum,
8522		CloudWatchMetricsStatMaximum,
8523		CloudWatchMetricsStatP99,
8524		CloudWatchMetricsStatP90,
8525		CloudWatchMetricsStatP50,
8526	}
8527}
8528
8529const (
8530	// CostEstimationServiceResourceStateActive is a CostEstimationServiceResourceState enum value
8531	CostEstimationServiceResourceStateActive = "ACTIVE"
8532
8533	// CostEstimationServiceResourceStateInactive is a CostEstimationServiceResourceState enum value
8534	CostEstimationServiceResourceStateInactive = "INACTIVE"
8535)
8536
8537// CostEstimationServiceResourceState_Values returns all elements of the CostEstimationServiceResourceState enum
8538func CostEstimationServiceResourceState_Values() []string {
8539	return []string{
8540		CostEstimationServiceResourceStateActive,
8541		CostEstimationServiceResourceStateInactive,
8542	}
8543}
8544
8545const (
8546	// CostEstimationStatusOngoing is a CostEstimationStatus enum value
8547	CostEstimationStatusOngoing = "ONGOING"
8548
8549	// CostEstimationStatusCompleted is a CostEstimationStatus enum value
8550	CostEstimationStatusCompleted = "COMPLETED"
8551)
8552
8553// CostEstimationStatus_Values returns all elements of the CostEstimationStatus enum
8554func CostEstimationStatus_Values() []string {
8555	return []string{
8556		CostEstimationStatusOngoing,
8557		CostEstimationStatusCompleted,
8558	}
8559}
8560
8561const (
8562	// EventClassInfrastructure is a EventClass enum value
8563	EventClassInfrastructure = "INFRASTRUCTURE"
8564
8565	// EventClassDeployment is a EventClass enum value
8566	EventClassDeployment = "DEPLOYMENT"
8567
8568	// EventClassSecurityChange is a EventClass enum value
8569	EventClassSecurityChange = "SECURITY_CHANGE"
8570
8571	// EventClassConfigChange is a EventClass enum value
8572	EventClassConfigChange = "CONFIG_CHANGE"
8573
8574	// EventClassSchemaChange is a EventClass enum value
8575	EventClassSchemaChange = "SCHEMA_CHANGE"
8576)
8577
8578// EventClass_Values returns all elements of the EventClass enum
8579func EventClass_Values() []string {
8580	return []string{
8581		EventClassInfrastructure,
8582		EventClassDeployment,
8583		EventClassSecurityChange,
8584		EventClassConfigChange,
8585		EventClassSchemaChange,
8586	}
8587}
8588
8589const (
8590	// EventDataSourceAwsCloudTrail is a EventDataSource enum value
8591	EventDataSourceAwsCloudTrail = "AWS_CLOUD_TRAIL"
8592
8593	// EventDataSourceAwsCodeDeploy is a EventDataSource enum value
8594	EventDataSourceAwsCodeDeploy = "AWS_CODE_DEPLOY"
8595)
8596
8597// EventDataSource_Values returns all elements of the EventDataSource enum
8598func EventDataSource_Values() []string {
8599	return []string{
8600		EventDataSourceAwsCloudTrail,
8601		EventDataSourceAwsCodeDeploy,
8602	}
8603}
8604
8605const (
8606	// InsightFeedbackOptionValidCollection is a InsightFeedbackOption enum value
8607	InsightFeedbackOptionValidCollection = "VALID_COLLECTION"
8608
8609	// InsightFeedbackOptionRecommendationUseful is a InsightFeedbackOption enum value
8610	InsightFeedbackOptionRecommendationUseful = "RECOMMENDATION_USEFUL"
8611
8612	// InsightFeedbackOptionAlertTooSensitive is a InsightFeedbackOption enum value
8613	InsightFeedbackOptionAlertTooSensitive = "ALERT_TOO_SENSITIVE"
8614
8615	// InsightFeedbackOptionDataNoisyAnomaly is a InsightFeedbackOption enum value
8616	InsightFeedbackOptionDataNoisyAnomaly = "DATA_NOISY_ANOMALY"
8617
8618	// InsightFeedbackOptionDataIncorrect is a InsightFeedbackOption enum value
8619	InsightFeedbackOptionDataIncorrect = "DATA_INCORRECT"
8620)
8621
8622// InsightFeedbackOption_Values returns all elements of the InsightFeedbackOption enum
8623func InsightFeedbackOption_Values() []string {
8624	return []string{
8625		InsightFeedbackOptionValidCollection,
8626		InsightFeedbackOptionRecommendationUseful,
8627		InsightFeedbackOptionAlertTooSensitive,
8628		InsightFeedbackOptionDataNoisyAnomaly,
8629		InsightFeedbackOptionDataIncorrect,
8630	}
8631}
8632
8633const (
8634	// InsightSeverityLow is a InsightSeverity enum value
8635	InsightSeverityLow = "LOW"
8636
8637	// InsightSeverityMedium is a InsightSeverity enum value
8638	InsightSeverityMedium = "MEDIUM"
8639
8640	// InsightSeverityHigh is a InsightSeverity enum value
8641	InsightSeverityHigh = "HIGH"
8642)
8643
8644// InsightSeverity_Values returns all elements of the InsightSeverity enum
8645func InsightSeverity_Values() []string {
8646	return []string{
8647		InsightSeverityLow,
8648		InsightSeverityMedium,
8649		InsightSeverityHigh,
8650	}
8651}
8652
8653const (
8654	// InsightStatusOngoing is a InsightStatus enum value
8655	InsightStatusOngoing = "ONGOING"
8656
8657	// InsightStatusClosed is a InsightStatus enum value
8658	InsightStatusClosed = "CLOSED"
8659)
8660
8661// InsightStatus_Values returns all elements of the InsightStatus enum
8662func InsightStatus_Values() []string {
8663	return []string{
8664		InsightStatusOngoing,
8665		InsightStatusClosed,
8666	}
8667}
8668
8669const (
8670	// InsightTypeReactive is a InsightType enum value
8671	InsightTypeReactive = "REACTIVE"
8672
8673	// InsightTypeProactive is a InsightType enum value
8674	InsightTypeProactive = "PROACTIVE"
8675)
8676
8677// InsightType_Values returns all elements of the InsightType enum
8678func InsightType_Values() []string {
8679	return []string{
8680		InsightTypeReactive,
8681		InsightTypeProactive,
8682	}
8683}
8684
8685const (
8686	// LocaleDeDe is a Locale enum value
8687	LocaleDeDe = "DE_DE"
8688
8689	// LocaleEnUs is a Locale enum value
8690	LocaleEnUs = "EN_US"
8691
8692	// LocaleEnGb is a Locale enum value
8693	LocaleEnGb = "EN_GB"
8694
8695	// LocaleEsEs is a Locale enum value
8696	LocaleEsEs = "ES_ES"
8697
8698	// LocaleFrFr is a Locale enum value
8699	LocaleFrFr = "FR_FR"
8700
8701	// LocaleItIt is a Locale enum value
8702	LocaleItIt = "IT_IT"
8703
8704	// LocaleJaJp is a Locale enum value
8705	LocaleJaJp = "JA_JP"
8706
8707	// LocaleKoKr is a Locale enum value
8708	LocaleKoKr = "KO_KR"
8709
8710	// LocalePtBr is a Locale enum value
8711	LocalePtBr = "PT_BR"
8712
8713	// LocaleZhCn is a Locale enum value
8714	LocaleZhCn = "ZH_CN"
8715
8716	// LocaleZhTw is a Locale enum value
8717	LocaleZhTw = "ZH_TW"
8718)
8719
8720// Locale_Values returns all elements of the Locale enum
8721func Locale_Values() []string {
8722	return []string{
8723		LocaleDeDe,
8724		LocaleEnUs,
8725		LocaleEnGb,
8726		LocaleEsEs,
8727		LocaleFrFr,
8728		LocaleItIt,
8729		LocaleJaJp,
8730		LocaleKoKr,
8731		LocalePtBr,
8732		LocaleZhCn,
8733		LocaleZhTw,
8734	}
8735}
8736
8737// Specifies if DevOps Guru is enabled to create an AWS Systems Manager OpsItem
8738// for each created insight.
8739const (
8740	// OptInStatusEnabled is a OptInStatus enum value
8741	OptInStatusEnabled = "ENABLED"
8742
8743	// OptInStatusDisabled is a OptInStatus enum value
8744	OptInStatusDisabled = "DISABLED"
8745)
8746
8747// OptInStatus_Values returns all elements of the OptInStatus enum
8748func OptInStatus_Values() []string {
8749	return []string{
8750		OptInStatusEnabled,
8751		OptInStatusDisabled,
8752	}
8753}
8754
8755const (
8756	// ResourceCollectionTypeAwsCloudFormation is a ResourceCollectionType enum value
8757	ResourceCollectionTypeAwsCloudFormation = "AWS_CLOUD_FORMATION"
8758
8759	// ResourceCollectionTypeAwsService is a ResourceCollectionType enum value
8760	ResourceCollectionTypeAwsService = "AWS_SERVICE"
8761)
8762
8763// ResourceCollectionType_Values returns all elements of the ResourceCollectionType enum
8764func ResourceCollectionType_Values() []string {
8765	return []string{
8766		ResourceCollectionTypeAwsCloudFormation,
8767		ResourceCollectionTypeAwsService,
8768	}
8769}
8770
8771const (
8772	// ServiceNameApiGateway is a ServiceName enum value
8773	ServiceNameApiGateway = "API_GATEWAY"
8774
8775	// ServiceNameApplicationElb is a ServiceName enum value
8776	ServiceNameApplicationElb = "APPLICATION_ELB"
8777
8778	// ServiceNameAutoScalingGroup is a ServiceName enum value
8779	ServiceNameAutoScalingGroup = "AUTO_SCALING_GROUP"
8780
8781	// ServiceNameCloudFront is a ServiceName enum value
8782	ServiceNameCloudFront = "CLOUD_FRONT"
8783
8784	// ServiceNameDynamoDb is a ServiceName enum value
8785	ServiceNameDynamoDb = "DYNAMO_DB"
8786
8787	// ServiceNameEc2 is a ServiceName enum value
8788	ServiceNameEc2 = "EC2"
8789
8790	// ServiceNameEcs is a ServiceName enum value
8791	ServiceNameEcs = "ECS"
8792
8793	// ServiceNameEks is a ServiceName enum value
8794	ServiceNameEks = "EKS"
8795
8796	// ServiceNameElasticBeanstalk is a ServiceName enum value
8797	ServiceNameElasticBeanstalk = "ELASTIC_BEANSTALK"
8798
8799	// ServiceNameElastiCache is a ServiceName enum value
8800	ServiceNameElastiCache = "ELASTI_CACHE"
8801
8802	// ServiceNameElb is a ServiceName enum value
8803	ServiceNameElb = "ELB"
8804
8805	// ServiceNameEs is a ServiceName enum value
8806	ServiceNameEs = "ES"
8807
8808	// ServiceNameKinesis is a ServiceName enum value
8809	ServiceNameKinesis = "KINESIS"
8810
8811	// ServiceNameLambda is a ServiceName enum value
8812	ServiceNameLambda = "LAMBDA"
8813
8814	// ServiceNameNatGateway is a ServiceName enum value
8815	ServiceNameNatGateway = "NAT_GATEWAY"
8816
8817	// ServiceNameNetworkElb is a ServiceName enum value
8818	ServiceNameNetworkElb = "NETWORK_ELB"
8819
8820	// ServiceNameRds is a ServiceName enum value
8821	ServiceNameRds = "RDS"
8822
8823	// ServiceNameRedshift is a ServiceName enum value
8824	ServiceNameRedshift = "REDSHIFT"
8825
8826	// ServiceNameRoute53 is a ServiceName enum value
8827	ServiceNameRoute53 = "ROUTE_53"
8828
8829	// ServiceNameS3 is a ServiceName enum value
8830	ServiceNameS3 = "S3"
8831
8832	// ServiceNameSageMaker is a ServiceName enum value
8833	ServiceNameSageMaker = "SAGE_MAKER"
8834
8835	// ServiceNameSns is a ServiceName enum value
8836	ServiceNameSns = "SNS"
8837
8838	// ServiceNameSqs is a ServiceName enum value
8839	ServiceNameSqs = "SQS"
8840
8841	// ServiceNameStepFunctions is a ServiceName enum value
8842	ServiceNameStepFunctions = "STEP_FUNCTIONS"
8843
8844	// ServiceNameSwf is a ServiceName enum value
8845	ServiceNameSwf = "SWF"
8846)
8847
8848// ServiceName_Values returns all elements of the ServiceName enum
8849func ServiceName_Values() []string {
8850	return []string{
8851		ServiceNameApiGateway,
8852		ServiceNameApplicationElb,
8853		ServiceNameAutoScalingGroup,
8854		ServiceNameCloudFront,
8855		ServiceNameDynamoDb,
8856		ServiceNameEc2,
8857		ServiceNameEcs,
8858		ServiceNameEks,
8859		ServiceNameElasticBeanstalk,
8860		ServiceNameElastiCache,
8861		ServiceNameElb,
8862		ServiceNameEs,
8863		ServiceNameKinesis,
8864		ServiceNameLambda,
8865		ServiceNameNatGateway,
8866		ServiceNameNetworkElb,
8867		ServiceNameRds,
8868		ServiceNameRedshift,
8869		ServiceNameRoute53,
8870		ServiceNameS3,
8871		ServiceNameSageMaker,
8872		ServiceNameSns,
8873		ServiceNameSqs,
8874		ServiceNameStepFunctions,
8875		ServiceNameSwf,
8876	}
8877}
8878
8879const (
8880	// UpdateResourceCollectionActionAdd is a UpdateResourceCollectionAction enum value
8881	UpdateResourceCollectionActionAdd = "ADD"
8882
8883	// UpdateResourceCollectionActionRemove is a UpdateResourceCollectionAction enum value
8884	UpdateResourceCollectionActionRemove = "REMOVE"
8885)
8886
8887// UpdateResourceCollectionAction_Values returns all elements of the UpdateResourceCollectionAction enum
8888func UpdateResourceCollectionAction_Values() []string {
8889	return []string{
8890		UpdateResourceCollectionActionAdd,
8891		UpdateResourceCollectionActionRemove,
8892	}
8893}
8894
8895const (
8896	// ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value
8897	ValidationExceptionReasonUnknownOperation = "UNKNOWN_OPERATION"
8898
8899	// ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value
8900	ValidationExceptionReasonCannotParse = "CANNOT_PARSE"
8901
8902	// ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value
8903	ValidationExceptionReasonFieldValidationFailed = "FIELD_VALIDATION_FAILED"
8904
8905	// ValidationExceptionReasonOther is a ValidationExceptionReason enum value
8906	ValidationExceptionReasonOther = "OTHER"
8907)
8908
8909// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
8910func ValidationExceptionReason_Values() []string {
8911	return []string{
8912		ValidationExceptionReasonUnknownOperation,
8913		ValidationExceptionReasonCannotParse,
8914		ValidationExceptionReasonFieldValidationFailed,
8915		ValidationExceptionReasonOther,
8916	}
8917}
8918