1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package codeguruprofiler
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 opAddNotificationChannels = "AddNotificationChannels"
17
18// AddNotificationChannelsRequest generates a "aws/request.Request" representing the
19// client's request for the AddNotificationChannels 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 AddNotificationChannels for more information on using the AddNotificationChannels
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 AddNotificationChannelsRequest method.
34//    req, resp := client.AddNotificationChannelsRequest(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/codeguruprofiler-2019-07-18/AddNotificationChannels
42func (c *CodeGuruProfiler) AddNotificationChannelsRequest(input *AddNotificationChannelsInput) (req *request.Request, output *AddNotificationChannelsOutput) {
43	op := &request.Operation{
44		Name:       opAddNotificationChannels,
45		HTTPMethod: "POST",
46		HTTPPath:   "/profilingGroups/{profilingGroupName}/notificationConfiguration",
47	}
48
49	if input == nil {
50		input = &AddNotificationChannelsInput{}
51	}
52
53	output = &AddNotificationChannelsOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddNotificationChannels API operation for Amazon CodeGuru Profiler.
59//
60// Add up to 2 anomaly notifications channels for a profiling group.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for Amazon CodeGuru Profiler's
67// API operation AddNotificationChannels for usage and error information.
68//
69// Returned Error Types:
70//   * ServiceQuotaExceededException
71//   You have exceeded your service quota. To perform the requested action, remove
72//   some of the relevant resources, or use Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html)
73//   to request a service quota increase.
74//
75//   * InternalServerException
76//   The server encountered an internal error and is unable to complete the request.
77//
78//   * ConflictException
79//   The requested operation would cause a conflict with the current state of
80//   a service resource associated with the request. Resolve the conflict before
81//   retrying this request.
82//
83//   * ValidationException
84//   The parameter is not valid.
85//
86//   * ThrottlingException
87//   The request was denied due to request throttling.
88//
89//   * ResourceNotFoundException
90//   The resource specified in the request does not exist.
91//
92// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/AddNotificationChannels
93func (c *CodeGuruProfiler) AddNotificationChannels(input *AddNotificationChannelsInput) (*AddNotificationChannelsOutput, error) {
94	req, out := c.AddNotificationChannelsRequest(input)
95	return out, req.Send()
96}
97
98// AddNotificationChannelsWithContext is the same as AddNotificationChannels with the addition of
99// the ability to pass a context and additional request options.
100//
101// See AddNotificationChannels for details on how to use this API operation.
102//
103// The context must be non-nil and will be used for request cancellation. If
104// the context is nil a panic will occur. In the future the SDK may create
105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
106// for more information on using Contexts.
107func (c *CodeGuruProfiler) AddNotificationChannelsWithContext(ctx aws.Context, input *AddNotificationChannelsInput, opts ...request.Option) (*AddNotificationChannelsOutput, error) {
108	req, out := c.AddNotificationChannelsRequest(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opBatchGetFrameMetricData = "BatchGetFrameMetricData"
115
116// BatchGetFrameMetricDataRequest generates a "aws/request.Request" representing the
117// client's request for the BatchGetFrameMetricData operation. The "output" return
118// value will be populated with the request's response once the request completes
119// successfully.
120//
121// Use "Send" method on the returned Request to send the API call to the service.
122// the "output" return value is not valid until after Send returns without error.
123//
124// See BatchGetFrameMetricData for more information on using the BatchGetFrameMetricData
125// API call, and error handling.
126//
127// This method is useful when you want to inject custom logic or configuration
128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
129//
130//
131//    // Example sending a request using the BatchGetFrameMetricDataRequest method.
132//    req, resp := client.BatchGetFrameMetricDataRequest(params)
133//
134//    err := req.Send()
135//    if err == nil { // resp is now filled
136//        fmt.Println(resp)
137//    }
138//
139// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData
140func (c *CodeGuruProfiler) BatchGetFrameMetricDataRequest(input *BatchGetFrameMetricDataInput) (req *request.Request, output *BatchGetFrameMetricDataOutput) {
141	op := &request.Operation{
142		Name:       opBatchGetFrameMetricData,
143		HTTPMethod: "POST",
144		HTTPPath:   "/profilingGroups/{profilingGroupName}/frames/-/metrics",
145	}
146
147	if input == nil {
148		input = &BatchGetFrameMetricDataInput{}
149	}
150
151	output = &BatchGetFrameMetricDataOutput{}
152	req = c.newRequest(op, input, output)
153	return
154}
155
156// BatchGetFrameMetricData API operation for Amazon CodeGuru Profiler.
157//
158// Returns the time series of values for a requested list of frame metrics from
159// a time period.
160//
161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
162// with awserr.Error's Code and Message methods to get detailed information about
163// the error.
164//
165// See the AWS API reference guide for Amazon CodeGuru Profiler's
166// API operation BatchGetFrameMetricData for usage and error information.
167//
168// Returned Error Types:
169//   * InternalServerException
170//   The server encountered an internal error and is unable to complete the request.
171//
172//   * ValidationException
173//   The parameter is not valid.
174//
175//   * ThrottlingException
176//   The request was denied due to request throttling.
177//
178//   * ResourceNotFoundException
179//   The resource specified in the request does not exist.
180//
181// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData
182func (c *CodeGuruProfiler) BatchGetFrameMetricData(input *BatchGetFrameMetricDataInput) (*BatchGetFrameMetricDataOutput, error) {
183	req, out := c.BatchGetFrameMetricDataRequest(input)
184	return out, req.Send()
185}
186
187// BatchGetFrameMetricDataWithContext is the same as BatchGetFrameMetricData with the addition of
188// the ability to pass a context and additional request options.
189//
190// See BatchGetFrameMetricData for details on how to use this API operation.
191//
192// The context must be non-nil and will be used for request cancellation. If
193// the context is nil a panic will occur. In the future the SDK may create
194// sub-contexts for http.Requests. See https://golang.org/pkg/context/
195// for more information on using Contexts.
196func (c *CodeGuruProfiler) BatchGetFrameMetricDataWithContext(ctx aws.Context, input *BatchGetFrameMetricDataInput, opts ...request.Option) (*BatchGetFrameMetricDataOutput, error) {
197	req, out := c.BatchGetFrameMetricDataRequest(input)
198	req.SetContext(ctx)
199	req.ApplyOptions(opts...)
200	return out, req.Send()
201}
202
203const opConfigureAgent = "ConfigureAgent"
204
205// ConfigureAgentRequest generates a "aws/request.Request" representing the
206// client's request for the ConfigureAgent operation. The "output" return
207// value will be populated with the request's response once the request completes
208// successfully.
209//
210// Use "Send" method on the returned Request to send the API call to the service.
211// the "output" return value is not valid until after Send returns without error.
212//
213// See ConfigureAgent for more information on using the ConfigureAgent
214// API call, and error handling.
215//
216// This method is useful when you want to inject custom logic or configuration
217// into the SDK's request lifecycle. Such as custom headers, or retry logic.
218//
219//
220//    // Example sending a request using the ConfigureAgentRequest method.
221//    req, resp := client.ConfigureAgentRequest(params)
222//
223//    err := req.Send()
224//    if err == nil { // resp is now filled
225//        fmt.Println(resp)
226//    }
227//
228// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ConfigureAgent
229func (c *CodeGuruProfiler) ConfigureAgentRequest(input *ConfigureAgentInput) (req *request.Request, output *ConfigureAgentOutput) {
230	op := &request.Operation{
231		Name:       opConfigureAgent,
232		HTTPMethod: "POST",
233		HTTPPath:   "/profilingGroups/{profilingGroupName}/configureAgent",
234	}
235
236	if input == nil {
237		input = &ConfigureAgentInput{}
238	}
239
240	output = &ConfigureAgentOutput{}
241	req = c.newRequest(op, input, output)
242	return
243}
244
245// ConfigureAgent API operation for Amazon CodeGuru Profiler.
246//
247// Used by profiler agents to report their current state and to receive remote
248// configuration updates. For example, ConfigureAgent can be used to tell an
249// agent whether to profile or not and for how long to return profiling data.
250//
251// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
252// with awserr.Error's Code and Message methods to get detailed information about
253// the error.
254//
255// See the AWS API reference guide for Amazon CodeGuru Profiler's
256// API operation ConfigureAgent for usage and error information.
257//
258// Returned Error Types:
259//   * InternalServerException
260//   The server encountered an internal error and is unable to complete the request.
261//
262//   * ValidationException
263//   The parameter is not valid.
264//
265//   * ThrottlingException
266//   The request was denied due to request throttling.
267//
268//   * ResourceNotFoundException
269//   The resource specified in the request does not exist.
270//
271// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ConfigureAgent
272func (c *CodeGuruProfiler) ConfigureAgent(input *ConfigureAgentInput) (*ConfigureAgentOutput, error) {
273	req, out := c.ConfigureAgentRequest(input)
274	return out, req.Send()
275}
276
277// ConfigureAgentWithContext is the same as ConfigureAgent with the addition of
278// the ability to pass a context and additional request options.
279//
280// See ConfigureAgent for details on how to use this API operation.
281//
282// The context must be non-nil and will be used for request cancellation. If
283// the context is nil a panic will occur. In the future the SDK may create
284// sub-contexts for http.Requests. See https://golang.org/pkg/context/
285// for more information on using Contexts.
286func (c *CodeGuruProfiler) ConfigureAgentWithContext(ctx aws.Context, input *ConfigureAgentInput, opts ...request.Option) (*ConfigureAgentOutput, error) {
287	req, out := c.ConfigureAgentRequest(input)
288	req.SetContext(ctx)
289	req.ApplyOptions(opts...)
290	return out, req.Send()
291}
292
293const opCreateProfilingGroup = "CreateProfilingGroup"
294
295// CreateProfilingGroupRequest generates a "aws/request.Request" representing the
296// client's request for the CreateProfilingGroup operation. The "output" return
297// value will be populated with the request's response once the request completes
298// successfully.
299//
300// Use "Send" method on the returned Request to send the API call to the service.
301// the "output" return value is not valid until after Send returns without error.
302//
303// See CreateProfilingGroup for more information on using the CreateProfilingGroup
304// API call, and error handling.
305//
306// This method is useful when you want to inject custom logic or configuration
307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
308//
309//
310//    // Example sending a request using the CreateProfilingGroupRequest method.
311//    req, resp := client.CreateProfilingGroupRequest(params)
312//
313//    err := req.Send()
314//    if err == nil { // resp is now filled
315//        fmt.Println(resp)
316//    }
317//
318// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/CreateProfilingGroup
319func (c *CodeGuruProfiler) CreateProfilingGroupRequest(input *CreateProfilingGroupInput) (req *request.Request, output *CreateProfilingGroupOutput) {
320	op := &request.Operation{
321		Name:       opCreateProfilingGroup,
322		HTTPMethod: "POST",
323		HTTPPath:   "/profilingGroups",
324	}
325
326	if input == nil {
327		input = &CreateProfilingGroupInput{}
328	}
329
330	output = &CreateProfilingGroupOutput{}
331	req = c.newRequest(op, input, output)
332	return
333}
334
335// CreateProfilingGroup API operation for Amazon CodeGuru Profiler.
336//
337// Creates a profiling group.
338//
339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
340// with awserr.Error's Code and Message methods to get detailed information about
341// the error.
342//
343// See the AWS API reference guide for Amazon CodeGuru Profiler's
344// API operation CreateProfilingGroup for usage and error information.
345//
346// Returned Error Types:
347//   * ServiceQuotaExceededException
348//   You have exceeded your service quota. To perform the requested action, remove
349//   some of the relevant resources, or use Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html)
350//   to request a service quota increase.
351//
352//   * InternalServerException
353//   The server encountered an internal error and is unable to complete the request.
354//
355//   * ConflictException
356//   The requested operation would cause a conflict with the current state of
357//   a service resource associated with the request. Resolve the conflict before
358//   retrying this request.
359//
360//   * ValidationException
361//   The parameter is not valid.
362//
363//   * ThrottlingException
364//   The request was denied due to request throttling.
365//
366// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/CreateProfilingGroup
367func (c *CodeGuruProfiler) CreateProfilingGroup(input *CreateProfilingGroupInput) (*CreateProfilingGroupOutput, error) {
368	req, out := c.CreateProfilingGroupRequest(input)
369	return out, req.Send()
370}
371
372// CreateProfilingGroupWithContext is the same as CreateProfilingGroup with the addition of
373// the ability to pass a context and additional request options.
374//
375// See CreateProfilingGroup for details on how to use this API operation.
376//
377// The context must be non-nil and will be used for request cancellation. If
378// the context is nil a panic will occur. In the future the SDK may create
379// sub-contexts for http.Requests. See https://golang.org/pkg/context/
380// for more information on using Contexts.
381func (c *CodeGuruProfiler) CreateProfilingGroupWithContext(ctx aws.Context, input *CreateProfilingGroupInput, opts ...request.Option) (*CreateProfilingGroupOutput, error) {
382	req, out := c.CreateProfilingGroupRequest(input)
383	req.SetContext(ctx)
384	req.ApplyOptions(opts...)
385	return out, req.Send()
386}
387
388const opDeleteProfilingGroup = "DeleteProfilingGroup"
389
390// DeleteProfilingGroupRequest generates a "aws/request.Request" representing the
391// client's request for the DeleteProfilingGroup operation. The "output" return
392// value will be populated with the request's response once the request completes
393// successfully.
394//
395// Use "Send" method on the returned Request to send the API call to the service.
396// the "output" return value is not valid until after Send returns without error.
397//
398// See DeleteProfilingGroup for more information on using the DeleteProfilingGroup
399// API call, and error handling.
400//
401// This method is useful when you want to inject custom logic or configuration
402// into the SDK's request lifecycle. Such as custom headers, or retry logic.
403//
404//
405//    // Example sending a request using the DeleteProfilingGroupRequest method.
406//    req, resp := client.DeleteProfilingGroupRequest(params)
407//
408//    err := req.Send()
409//    if err == nil { // resp is now filled
410//        fmt.Println(resp)
411//    }
412//
413// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DeleteProfilingGroup
414func (c *CodeGuruProfiler) DeleteProfilingGroupRequest(input *DeleteProfilingGroupInput) (req *request.Request, output *DeleteProfilingGroupOutput) {
415	op := &request.Operation{
416		Name:       opDeleteProfilingGroup,
417		HTTPMethod: "DELETE",
418		HTTPPath:   "/profilingGroups/{profilingGroupName}",
419	}
420
421	if input == nil {
422		input = &DeleteProfilingGroupInput{}
423	}
424
425	output = &DeleteProfilingGroupOutput{}
426	req = c.newRequest(op, input, output)
427	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
428	return
429}
430
431// DeleteProfilingGroup API operation for Amazon CodeGuru Profiler.
432//
433// Deletes a profiling group.
434//
435// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
436// with awserr.Error's Code and Message methods to get detailed information about
437// the error.
438//
439// See the AWS API reference guide for Amazon CodeGuru Profiler's
440// API operation DeleteProfilingGroup for usage and error information.
441//
442// Returned Error Types:
443//   * InternalServerException
444//   The server encountered an internal error and is unable to complete the request.
445//
446//   * ConflictException
447//   The requested operation would cause a conflict with the current state of
448//   a service resource associated with the request. Resolve the conflict before
449//   retrying this request.
450//
451//   * ValidationException
452//   The parameter is not valid.
453//
454//   * ThrottlingException
455//   The request was denied due to request throttling.
456//
457//   * ResourceNotFoundException
458//   The resource specified in the request does not exist.
459//
460// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DeleteProfilingGroup
461func (c *CodeGuruProfiler) DeleteProfilingGroup(input *DeleteProfilingGroupInput) (*DeleteProfilingGroupOutput, error) {
462	req, out := c.DeleteProfilingGroupRequest(input)
463	return out, req.Send()
464}
465
466// DeleteProfilingGroupWithContext is the same as DeleteProfilingGroup with the addition of
467// the ability to pass a context and additional request options.
468//
469// See DeleteProfilingGroup for details on how to use this API operation.
470//
471// The context must be non-nil and will be used for request cancellation. If
472// the context is nil a panic will occur. In the future the SDK may create
473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
474// for more information on using Contexts.
475func (c *CodeGuruProfiler) DeleteProfilingGroupWithContext(ctx aws.Context, input *DeleteProfilingGroupInput, opts ...request.Option) (*DeleteProfilingGroupOutput, error) {
476	req, out := c.DeleteProfilingGroupRequest(input)
477	req.SetContext(ctx)
478	req.ApplyOptions(opts...)
479	return out, req.Send()
480}
481
482const opDescribeProfilingGroup = "DescribeProfilingGroup"
483
484// DescribeProfilingGroupRequest generates a "aws/request.Request" representing the
485// client's request for the DescribeProfilingGroup operation. The "output" return
486// value will be populated with the request's response once the request completes
487// successfully.
488//
489// Use "Send" method on the returned Request to send the API call to the service.
490// the "output" return value is not valid until after Send returns without error.
491//
492// See DescribeProfilingGroup for more information on using the DescribeProfilingGroup
493// API call, and error handling.
494//
495// This method is useful when you want to inject custom logic or configuration
496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
497//
498//
499//    // Example sending a request using the DescribeProfilingGroupRequest method.
500//    req, resp := client.DescribeProfilingGroupRequest(params)
501//
502//    err := req.Send()
503//    if err == nil { // resp is now filled
504//        fmt.Println(resp)
505//    }
506//
507// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DescribeProfilingGroup
508func (c *CodeGuruProfiler) DescribeProfilingGroupRequest(input *DescribeProfilingGroupInput) (req *request.Request, output *DescribeProfilingGroupOutput) {
509	op := &request.Operation{
510		Name:       opDescribeProfilingGroup,
511		HTTPMethod: "GET",
512		HTTPPath:   "/profilingGroups/{profilingGroupName}",
513	}
514
515	if input == nil {
516		input = &DescribeProfilingGroupInput{}
517	}
518
519	output = &DescribeProfilingGroupOutput{}
520	req = c.newRequest(op, input, output)
521	return
522}
523
524// DescribeProfilingGroup API operation for Amazon CodeGuru Profiler.
525//
526// Returns a ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
527// object that contains information about the requested profiling group.
528//
529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
530// with awserr.Error's Code and Message methods to get detailed information about
531// the error.
532//
533// See the AWS API reference guide for Amazon CodeGuru Profiler's
534// API operation DescribeProfilingGroup for usage and error information.
535//
536// Returned Error Types:
537//   * InternalServerException
538//   The server encountered an internal error and is unable to complete the request.
539//
540//   * ValidationException
541//   The parameter is not valid.
542//
543//   * ThrottlingException
544//   The request was denied due to request throttling.
545//
546//   * ResourceNotFoundException
547//   The resource specified in the request does not exist.
548//
549// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DescribeProfilingGroup
550func (c *CodeGuruProfiler) DescribeProfilingGroup(input *DescribeProfilingGroupInput) (*DescribeProfilingGroupOutput, error) {
551	req, out := c.DescribeProfilingGroupRequest(input)
552	return out, req.Send()
553}
554
555// DescribeProfilingGroupWithContext is the same as DescribeProfilingGroup with the addition of
556// the ability to pass a context and additional request options.
557//
558// See DescribeProfilingGroup for details on how to use this API operation.
559//
560// The context must be non-nil and will be used for request cancellation. If
561// the context is nil a panic will occur. In the future the SDK may create
562// sub-contexts for http.Requests. See https://golang.org/pkg/context/
563// for more information on using Contexts.
564func (c *CodeGuruProfiler) DescribeProfilingGroupWithContext(ctx aws.Context, input *DescribeProfilingGroupInput, opts ...request.Option) (*DescribeProfilingGroupOutput, error) {
565	req, out := c.DescribeProfilingGroupRequest(input)
566	req.SetContext(ctx)
567	req.ApplyOptions(opts...)
568	return out, req.Send()
569}
570
571const opGetFindingsReportAccountSummary = "GetFindingsReportAccountSummary"
572
573// GetFindingsReportAccountSummaryRequest generates a "aws/request.Request" representing the
574// client's request for the GetFindingsReportAccountSummary operation. The "output" return
575// value will be populated with the request's response once the request completes
576// successfully.
577//
578// Use "Send" method on the returned Request to send the API call to the service.
579// the "output" return value is not valid until after Send returns without error.
580//
581// See GetFindingsReportAccountSummary for more information on using the GetFindingsReportAccountSummary
582// API call, and error handling.
583//
584// This method is useful when you want to inject custom logic or configuration
585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
586//
587//
588//    // Example sending a request using the GetFindingsReportAccountSummaryRequest method.
589//    req, resp := client.GetFindingsReportAccountSummaryRequest(params)
590//
591//    err := req.Send()
592//    if err == nil { // resp is now filled
593//        fmt.Println(resp)
594//    }
595//
596// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary
597func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryRequest(input *GetFindingsReportAccountSummaryInput) (req *request.Request, output *GetFindingsReportAccountSummaryOutput) {
598	op := &request.Operation{
599		Name:       opGetFindingsReportAccountSummary,
600		HTTPMethod: "GET",
601		HTTPPath:   "/internal/findingsReports",
602		Paginator: &request.Paginator{
603			InputTokens:     []string{"nextToken"},
604			OutputTokens:    []string{"nextToken"},
605			LimitToken:      "maxResults",
606			TruncationToken: "",
607		},
608	}
609
610	if input == nil {
611		input = &GetFindingsReportAccountSummaryInput{}
612	}
613
614	output = &GetFindingsReportAccountSummaryOutput{}
615	req = c.newRequest(op, input, output)
616	return
617}
618
619// GetFindingsReportAccountSummary API operation for Amazon CodeGuru Profiler.
620//
621// Returns a list of FindingsReportSummary (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html)
622// objects that contain analysis results for all profiling groups in your AWS
623// account.
624//
625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
626// with awserr.Error's Code and Message methods to get detailed information about
627// the error.
628//
629// See the AWS API reference guide for Amazon CodeGuru Profiler's
630// API operation GetFindingsReportAccountSummary for usage and error information.
631//
632// Returned Error Types:
633//   * InternalServerException
634//   The server encountered an internal error and is unable to complete the request.
635//
636//   * ValidationException
637//   The parameter is not valid.
638//
639//   * ThrottlingException
640//   The request was denied due to request throttling.
641//
642// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary
643func (c *CodeGuruProfiler) GetFindingsReportAccountSummary(input *GetFindingsReportAccountSummaryInput) (*GetFindingsReportAccountSummaryOutput, error) {
644	req, out := c.GetFindingsReportAccountSummaryRequest(input)
645	return out, req.Send()
646}
647
648// GetFindingsReportAccountSummaryWithContext is the same as GetFindingsReportAccountSummary with the addition of
649// the ability to pass a context and additional request options.
650//
651// See GetFindingsReportAccountSummary for details on how to use this API operation.
652//
653// The context must be non-nil and will be used for request cancellation. If
654// the context is nil a panic will occur. In the future the SDK may create
655// sub-contexts for http.Requests. See https://golang.org/pkg/context/
656// for more information on using Contexts.
657func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryWithContext(ctx aws.Context, input *GetFindingsReportAccountSummaryInput, opts ...request.Option) (*GetFindingsReportAccountSummaryOutput, error) {
658	req, out := c.GetFindingsReportAccountSummaryRequest(input)
659	req.SetContext(ctx)
660	req.ApplyOptions(opts...)
661	return out, req.Send()
662}
663
664// GetFindingsReportAccountSummaryPages iterates over the pages of a GetFindingsReportAccountSummary operation,
665// calling the "fn" function with the response data for each page. To stop
666// iterating, return false from the fn function.
667//
668// See GetFindingsReportAccountSummary method for more information on how to use this operation.
669//
670// Note: This operation can generate multiple requests to a service.
671//
672//    // Example iterating over at most 3 pages of a GetFindingsReportAccountSummary operation.
673//    pageNum := 0
674//    err := client.GetFindingsReportAccountSummaryPages(params,
675//        func(page *codeguruprofiler.GetFindingsReportAccountSummaryOutput, lastPage bool) bool {
676//            pageNum++
677//            fmt.Println(page)
678//            return pageNum <= 3
679//        })
680//
681func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryPages(input *GetFindingsReportAccountSummaryInput, fn func(*GetFindingsReportAccountSummaryOutput, bool) bool) error {
682	return c.GetFindingsReportAccountSummaryPagesWithContext(aws.BackgroundContext(), input, fn)
683}
684
685// GetFindingsReportAccountSummaryPagesWithContext same as GetFindingsReportAccountSummaryPages except
686// it takes a Context and allows setting request options on the pages.
687//
688// The context must be non-nil and will be used for request cancellation. If
689// the context is nil a panic will occur. In the future the SDK may create
690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
691// for more information on using Contexts.
692func (c *CodeGuruProfiler) GetFindingsReportAccountSummaryPagesWithContext(ctx aws.Context, input *GetFindingsReportAccountSummaryInput, fn func(*GetFindingsReportAccountSummaryOutput, bool) bool, opts ...request.Option) error {
693	p := request.Pagination{
694		NewRequest: func() (*request.Request, error) {
695			var inCpy *GetFindingsReportAccountSummaryInput
696			if input != nil {
697				tmp := *input
698				inCpy = &tmp
699			}
700			req, _ := c.GetFindingsReportAccountSummaryRequest(inCpy)
701			req.SetContext(ctx)
702			req.ApplyOptions(opts...)
703			return req, nil
704		},
705	}
706
707	for p.Next() {
708		if !fn(p.Page().(*GetFindingsReportAccountSummaryOutput), !p.HasNextPage()) {
709			break
710		}
711	}
712
713	return p.Err()
714}
715
716const opGetNotificationConfiguration = "GetNotificationConfiguration"
717
718// GetNotificationConfigurationRequest generates a "aws/request.Request" representing the
719// client's request for the GetNotificationConfiguration operation. The "output" return
720// value will be populated with the request's response once the request completes
721// successfully.
722//
723// Use "Send" method on the returned Request to send the API call to the service.
724// the "output" return value is not valid until after Send returns without error.
725//
726// See GetNotificationConfiguration for more information on using the GetNotificationConfiguration
727// API call, and error handling.
728//
729// This method is useful when you want to inject custom logic or configuration
730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
731//
732//
733//    // Example sending a request using the GetNotificationConfigurationRequest method.
734//    req, resp := client.GetNotificationConfigurationRequest(params)
735//
736//    err := req.Send()
737//    if err == nil { // resp is now filled
738//        fmt.Println(resp)
739//    }
740//
741// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration
742func (c *CodeGuruProfiler) GetNotificationConfigurationRequest(input *GetNotificationConfigurationInput) (req *request.Request, output *GetNotificationConfigurationOutput) {
743	op := &request.Operation{
744		Name:       opGetNotificationConfiguration,
745		HTTPMethod: "GET",
746		HTTPPath:   "/profilingGroups/{profilingGroupName}/notificationConfiguration",
747	}
748
749	if input == nil {
750		input = &GetNotificationConfigurationInput{}
751	}
752
753	output = &GetNotificationConfigurationOutput{}
754	req = c.newRequest(op, input, output)
755	return
756}
757
758// GetNotificationConfiguration API operation for Amazon CodeGuru Profiler.
759//
760// Get the current configuration for anomaly notifications for a profiling group.
761//
762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
763// with awserr.Error's Code and Message methods to get detailed information about
764// the error.
765//
766// See the AWS API reference guide for Amazon CodeGuru Profiler's
767// API operation GetNotificationConfiguration for usage and error information.
768//
769// Returned Error Types:
770//   * InternalServerException
771//   The server encountered an internal error and is unable to complete the request.
772//
773//   * ValidationException
774//   The parameter is not valid.
775//
776//   * ThrottlingException
777//   The request was denied due to request throttling.
778//
779//   * ResourceNotFoundException
780//   The resource specified in the request does not exist.
781//
782// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration
783func (c *CodeGuruProfiler) GetNotificationConfiguration(input *GetNotificationConfigurationInput) (*GetNotificationConfigurationOutput, error) {
784	req, out := c.GetNotificationConfigurationRequest(input)
785	return out, req.Send()
786}
787
788// GetNotificationConfigurationWithContext is the same as GetNotificationConfiguration with the addition of
789// the ability to pass a context and additional request options.
790//
791// See GetNotificationConfiguration for details on how to use this API operation.
792//
793// The context must be non-nil and will be used for request cancellation. If
794// the context is nil a panic will occur. In the future the SDK may create
795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
796// for more information on using Contexts.
797func (c *CodeGuruProfiler) GetNotificationConfigurationWithContext(ctx aws.Context, input *GetNotificationConfigurationInput, opts ...request.Option) (*GetNotificationConfigurationOutput, error) {
798	req, out := c.GetNotificationConfigurationRequest(input)
799	req.SetContext(ctx)
800	req.ApplyOptions(opts...)
801	return out, req.Send()
802}
803
804const opGetPolicy = "GetPolicy"
805
806// GetPolicyRequest generates a "aws/request.Request" representing the
807// client's request for the GetPolicy operation. The "output" return
808// value will be populated with the request's response once the request completes
809// successfully.
810//
811// Use "Send" method on the returned Request to send the API call to the service.
812// the "output" return value is not valid until after Send returns without error.
813//
814// See GetPolicy for more information on using the GetPolicy
815// API call, and error handling.
816//
817// This method is useful when you want to inject custom logic or configuration
818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
819//
820//
821//    // Example sending a request using the GetPolicyRequest method.
822//    req, resp := client.GetPolicyRequest(params)
823//
824//    err := req.Send()
825//    if err == nil { // resp is now filled
826//        fmt.Println(resp)
827//    }
828//
829// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy
830func (c *CodeGuruProfiler) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
831	op := &request.Operation{
832		Name:       opGetPolicy,
833		HTTPMethod: "GET",
834		HTTPPath:   "/profilingGroups/{profilingGroupName}/policy",
835	}
836
837	if input == nil {
838		input = &GetPolicyInput{}
839	}
840
841	output = &GetPolicyOutput{}
842	req = c.newRequest(op, input, output)
843	return
844}
845
846// GetPolicy API operation for Amazon CodeGuru Profiler.
847//
848// Returns the JSON-formatted resource-based policy on a profiling group.
849//
850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
851// with awserr.Error's Code and Message methods to get detailed information about
852// the error.
853//
854// See the AWS API reference guide for Amazon CodeGuru Profiler's
855// API operation GetPolicy for usage and error information.
856//
857// Returned Error Types:
858//   * InternalServerException
859//   The server encountered an internal error and is unable to complete the request.
860//
861//   * ThrottlingException
862//   The request was denied due to request throttling.
863//
864//   * ResourceNotFoundException
865//   The resource specified in the request does not exist.
866//
867// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy
868func (c *CodeGuruProfiler) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
869	req, out := c.GetPolicyRequest(input)
870	return out, req.Send()
871}
872
873// GetPolicyWithContext is the same as GetPolicy with the addition of
874// the ability to pass a context and additional request options.
875//
876// See GetPolicy for details on how to use this API operation.
877//
878// The context must be non-nil and will be used for request cancellation. If
879// the context is nil a panic will occur. In the future the SDK may create
880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
881// for more information on using Contexts.
882func (c *CodeGuruProfiler) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
883	req, out := c.GetPolicyRequest(input)
884	req.SetContext(ctx)
885	req.ApplyOptions(opts...)
886	return out, req.Send()
887}
888
889const opGetProfile = "GetProfile"
890
891// GetProfileRequest generates a "aws/request.Request" representing the
892// client's request for the GetProfile operation. The "output" return
893// value will be populated with the request's response once the request completes
894// successfully.
895//
896// Use "Send" method on the returned Request to send the API call to the service.
897// the "output" return value is not valid until after Send returns without error.
898//
899// See GetProfile for more information on using the GetProfile
900// API call, and error handling.
901//
902// This method is useful when you want to inject custom logic or configuration
903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
904//
905//
906//    // Example sending a request using the GetProfileRequest method.
907//    req, resp := client.GetProfileRequest(params)
908//
909//    err := req.Send()
910//    if err == nil { // resp is now filled
911//        fmt.Println(resp)
912//    }
913//
914// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile
915func (c *CodeGuruProfiler) GetProfileRequest(input *GetProfileInput) (req *request.Request, output *GetProfileOutput) {
916	op := &request.Operation{
917		Name:       opGetProfile,
918		HTTPMethod: "GET",
919		HTTPPath:   "/profilingGroups/{profilingGroupName}/profile",
920	}
921
922	if input == nil {
923		input = &GetProfileInput{}
924	}
925
926	output = &GetProfileOutput{}
927	req = c.newRequest(op, input, output)
928	return
929}
930
931// GetProfile API operation for Amazon CodeGuru Profiler.
932//
933// Gets the aggregated profile of a profiling group for a specified time range.
934// Amazon CodeGuru Profiler collects posted agent profiles for a profiling group
935// into aggregated profiles.
936//
937//    <note> <p> Because aggregated profiles expire over time <code>GetProfile</code>
938//    is not idempotent. </p> </note> <p> Specify the time range for the requested
939//    aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>,
940//    <code>endTime</code>, <code>period</code>. The maximum time range allowed
941//    is 7 days. If you specify all 3 parameters, an exception is thrown. If
942//    you specify only <code>period</code>, the latest aggregated profile is
943//    returned. </p> <p> Aggregated profiles are available with aggregation
944//    periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation
945//    period of an aggregated profile determines how long it is retained. For
946//    more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html">
947//    <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation
948//    period determines how long it is retained by CodeGuru Profiler. </p> <ul>
949//    <li> <p> If the aggregation period is 5 minutes, the aggregated profile
950//    is retained for 15 days. </p> </li> <li> <p> If the aggregation period
951//    is 1 hour, the aggregated profile is retained for 60 days. </p> </li>
952//    <li> <p> If the aggregation period is 1 day, the aggregated profile is
953//    retained for 3 years. </p> </li> </ul> <p>There are two use cases for
954//    calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return
955//    an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html">
956//    <code>ListProfileTimes</code> </a> to view the time ranges of existing
957//    aggregated profiles. Use them in a <code>GetProfile</code> request to
958//    return a specific, existing aggregated profile. </p> </li> <li> <p> If
959//    you want to return an aggregated profile for a time range that doesn't
960//    align with an existing aggregated profile, then CodeGuru Profiler makes
961//    a best effort to combine existing aggregated profiles from the requested
962//    time range and return them as one aggregated profile. </p> <p> If aggregated
963//    profiles do not exist for the full time range requested, then aggregated
964//    profiles for a smaller time range are returned. For example, if the requested
965//    time range is from 00:00 to 00:20, and the existing aggregated profiles
966//    are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20
967//    are returned. </p> </li> </ol>
968//
969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
970// with awserr.Error's Code and Message methods to get detailed information about
971// the error.
972//
973// See the AWS API reference guide for Amazon CodeGuru Profiler's
974// API operation GetProfile for usage and error information.
975//
976// Returned Error Types:
977//   * InternalServerException
978//   The server encountered an internal error and is unable to complete the request.
979//
980//   * ValidationException
981//   The parameter is not valid.
982//
983//   * ThrottlingException
984//   The request was denied due to request throttling.
985//
986//   * ResourceNotFoundException
987//   The resource specified in the request does not exist.
988//
989// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile
990func (c *CodeGuruProfiler) GetProfile(input *GetProfileInput) (*GetProfileOutput, error) {
991	req, out := c.GetProfileRequest(input)
992	return out, req.Send()
993}
994
995// GetProfileWithContext is the same as GetProfile with the addition of
996// the ability to pass a context and additional request options.
997//
998// See GetProfile for details on how to use this API operation.
999//
1000// The context must be non-nil and will be used for request cancellation. If
1001// the context is nil a panic will occur. In the future the SDK may create
1002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1003// for more information on using Contexts.
1004func (c *CodeGuruProfiler) GetProfileWithContext(ctx aws.Context, input *GetProfileInput, opts ...request.Option) (*GetProfileOutput, error) {
1005	req, out := c.GetProfileRequest(input)
1006	req.SetContext(ctx)
1007	req.ApplyOptions(opts...)
1008	return out, req.Send()
1009}
1010
1011const opGetRecommendations = "GetRecommendations"
1012
1013// GetRecommendationsRequest generates a "aws/request.Request" representing the
1014// client's request for the GetRecommendations operation. The "output" return
1015// value will be populated with the request's response once the request completes
1016// successfully.
1017//
1018// Use "Send" method on the returned Request to send the API call to the service.
1019// the "output" return value is not valid until after Send returns without error.
1020//
1021// See GetRecommendations for more information on using the GetRecommendations
1022// API call, and error handling.
1023//
1024// This method is useful when you want to inject custom logic or configuration
1025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1026//
1027//
1028//    // Example sending a request using the GetRecommendationsRequest method.
1029//    req, resp := client.GetRecommendationsRequest(params)
1030//
1031//    err := req.Send()
1032//    if err == nil { // resp is now filled
1033//        fmt.Println(resp)
1034//    }
1035//
1036// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations
1037func (c *CodeGuruProfiler) GetRecommendationsRequest(input *GetRecommendationsInput) (req *request.Request, output *GetRecommendationsOutput) {
1038	op := &request.Operation{
1039		Name:       opGetRecommendations,
1040		HTTPMethod: "GET",
1041		HTTPPath:   "/internal/profilingGroups/{profilingGroupName}/recommendations",
1042	}
1043
1044	if input == nil {
1045		input = &GetRecommendationsInput{}
1046	}
1047
1048	output = &GetRecommendationsOutput{}
1049	req = c.newRequest(op, input, output)
1050	return
1051}
1052
1053// GetRecommendations API operation for Amazon CodeGuru Profiler.
1054//
1055// Returns a list of Recommendation (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html)
1056// objects that contain recommendations for a profiling group for a given time
1057// period. A list of Anomaly (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html)
1058// objects that contains details about anomalies detected in the profiling group
1059// for the same time period is also returned.
1060//
1061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1062// with awserr.Error's Code and Message methods to get detailed information about
1063// the error.
1064//
1065// See the AWS API reference guide for Amazon CodeGuru Profiler's
1066// API operation GetRecommendations for usage and error information.
1067//
1068// Returned Error Types:
1069//   * InternalServerException
1070//   The server encountered an internal error and is unable to complete the request.
1071//
1072//   * ValidationException
1073//   The parameter is not valid.
1074//
1075//   * ThrottlingException
1076//   The request was denied due to request throttling.
1077//
1078//   * ResourceNotFoundException
1079//   The resource specified in the request does not exist.
1080//
1081// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations
1082func (c *CodeGuruProfiler) GetRecommendations(input *GetRecommendationsInput) (*GetRecommendationsOutput, error) {
1083	req, out := c.GetRecommendationsRequest(input)
1084	return out, req.Send()
1085}
1086
1087// GetRecommendationsWithContext is the same as GetRecommendations with the addition of
1088// the ability to pass a context and additional request options.
1089//
1090// See GetRecommendations for details on how to use this API operation.
1091//
1092// The context must be non-nil and will be used for request cancellation. If
1093// the context is nil a panic will occur. In the future the SDK may create
1094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1095// for more information on using Contexts.
1096func (c *CodeGuruProfiler) GetRecommendationsWithContext(ctx aws.Context, input *GetRecommendationsInput, opts ...request.Option) (*GetRecommendationsOutput, error) {
1097	req, out := c.GetRecommendationsRequest(input)
1098	req.SetContext(ctx)
1099	req.ApplyOptions(opts...)
1100	return out, req.Send()
1101}
1102
1103const opListFindingsReports = "ListFindingsReports"
1104
1105// ListFindingsReportsRequest generates a "aws/request.Request" representing the
1106// client's request for the ListFindingsReports operation. The "output" return
1107// value will be populated with the request's response once the request completes
1108// successfully.
1109//
1110// Use "Send" method on the returned Request to send the API call to the service.
1111// the "output" return value is not valid until after Send returns without error.
1112//
1113// See ListFindingsReports for more information on using the ListFindingsReports
1114// API call, and error handling.
1115//
1116// This method is useful when you want to inject custom logic or configuration
1117// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1118//
1119//
1120//    // Example sending a request using the ListFindingsReportsRequest method.
1121//    req, resp := client.ListFindingsReportsRequest(params)
1122//
1123//    err := req.Send()
1124//    if err == nil { // resp is now filled
1125//        fmt.Println(resp)
1126//    }
1127//
1128// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports
1129func (c *CodeGuruProfiler) ListFindingsReportsRequest(input *ListFindingsReportsInput) (req *request.Request, output *ListFindingsReportsOutput) {
1130	op := &request.Operation{
1131		Name:       opListFindingsReports,
1132		HTTPMethod: "GET",
1133		HTTPPath:   "/internal/profilingGroups/{profilingGroupName}/findingsReports",
1134		Paginator: &request.Paginator{
1135			InputTokens:     []string{"nextToken"},
1136			OutputTokens:    []string{"nextToken"},
1137			LimitToken:      "maxResults",
1138			TruncationToken: "",
1139		},
1140	}
1141
1142	if input == nil {
1143		input = &ListFindingsReportsInput{}
1144	}
1145
1146	output = &ListFindingsReportsOutput{}
1147	req = c.newRequest(op, input, output)
1148	return
1149}
1150
1151// ListFindingsReports API operation for Amazon CodeGuru Profiler.
1152//
1153// List the available reports for a given profiling group and time range.
1154//
1155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1156// with awserr.Error's Code and Message methods to get detailed information about
1157// the error.
1158//
1159// See the AWS API reference guide for Amazon CodeGuru Profiler's
1160// API operation ListFindingsReports for usage and error information.
1161//
1162// Returned Error Types:
1163//   * InternalServerException
1164//   The server encountered an internal error and is unable to complete the request.
1165//
1166//   * ValidationException
1167//   The parameter is not valid.
1168//
1169//   * ThrottlingException
1170//   The request was denied due to request throttling.
1171//
1172//   * ResourceNotFoundException
1173//   The resource specified in the request does not exist.
1174//
1175// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports
1176func (c *CodeGuruProfiler) ListFindingsReports(input *ListFindingsReportsInput) (*ListFindingsReportsOutput, error) {
1177	req, out := c.ListFindingsReportsRequest(input)
1178	return out, req.Send()
1179}
1180
1181// ListFindingsReportsWithContext is the same as ListFindingsReports with the addition of
1182// the ability to pass a context and additional request options.
1183//
1184// See ListFindingsReports for details on how to use this API operation.
1185//
1186// The context must be non-nil and will be used for request cancellation. If
1187// the context is nil a panic will occur. In the future the SDK may create
1188// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1189// for more information on using Contexts.
1190func (c *CodeGuruProfiler) ListFindingsReportsWithContext(ctx aws.Context, input *ListFindingsReportsInput, opts ...request.Option) (*ListFindingsReportsOutput, error) {
1191	req, out := c.ListFindingsReportsRequest(input)
1192	req.SetContext(ctx)
1193	req.ApplyOptions(opts...)
1194	return out, req.Send()
1195}
1196
1197// ListFindingsReportsPages iterates over the pages of a ListFindingsReports operation,
1198// calling the "fn" function with the response data for each page. To stop
1199// iterating, return false from the fn function.
1200//
1201// See ListFindingsReports method for more information on how to use this operation.
1202//
1203// Note: This operation can generate multiple requests to a service.
1204//
1205//    // Example iterating over at most 3 pages of a ListFindingsReports operation.
1206//    pageNum := 0
1207//    err := client.ListFindingsReportsPages(params,
1208//        func(page *codeguruprofiler.ListFindingsReportsOutput, lastPage bool) bool {
1209//            pageNum++
1210//            fmt.Println(page)
1211//            return pageNum <= 3
1212//        })
1213//
1214func (c *CodeGuruProfiler) ListFindingsReportsPages(input *ListFindingsReportsInput, fn func(*ListFindingsReportsOutput, bool) bool) error {
1215	return c.ListFindingsReportsPagesWithContext(aws.BackgroundContext(), input, fn)
1216}
1217
1218// ListFindingsReportsPagesWithContext same as ListFindingsReportsPages except
1219// it takes a Context and allows setting request options on the pages.
1220//
1221// The context must be non-nil and will be used for request cancellation. If
1222// the context is nil a panic will occur. In the future the SDK may create
1223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1224// for more information on using Contexts.
1225func (c *CodeGuruProfiler) ListFindingsReportsPagesWithContext(ctx aws.Context, input *ListFindingsReportsInput, fn func(*ListFindingsReportsOutput, bool) bool, opts ...request.Option) error {
1226	p := request.Pagination{
1227		NewRequest: func() (*request.Request, error) {
1228			var inCpy *ListFindingsReportsInput
1229			if input != nil {
1230				tmp := *input
1231				inCpy = &tmp
1232			}
1233			req, _ := c.ListFindingsReportsRequest(inCpy)
1234			req.SetContext(ctx)
1235			req.ApplyOptions(opts...)
1236			return req, nil
1237		},
1238	}
1239
1240	for p.Next() {
1241		if !fn(p.Page().(*ListFindingsReportsOutput), !p.HasNextPage()) {
1242			break
1243		}
1244	}
1245
1246	return p.Err()
1247}
1248
1249const opListProfileTimes = "ListProfileTimes"
1250
1251// ListProfileTimesRequest generates a "aws/request.Request" representing the
1252// client's request for the ListProfileTimes operation. The "output" return
1253// value will be populated with the request's response once the request completes
1254// successfully.
1255//
1256// Use "Send" method on the returned Request to send the API call to the service.
1257// the "output" return value is not valid until after Send returns without error.
1258//
1259// See ListProfileTimes for more information on using the ListProfileTimes
1260// API call, and error handling.
1261//
1262// This method is useful when you want to inject custom logic or configuration
1263// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1264//
1265//
1266//    // Example sending a request using the ListProfileTimesRequest method.
1267//    req, resp := client.ListProfileTimesRequest(params)
1268//
1269//    err := req.Send()
1270//    if err == nil { // resp is now filled
1271//        fmt.Println(resp)
1272//    }
1273//
1274// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes
1275func (c *CodeGuruProfiler) ListProfileTimesRequest(input *ListProfileTimesInput) (req *request.Request, output *ListProfileTimesOutput) {
1276	op := &request.Operation{
1277		Name:       opListProfileTimes,
1278		HTTPMethod: "GET",
1279		HTTPPath:   "/profilingGroups/{profilingGroupName}/profileTimes",
1280		Paginator: &request.Paginator{
1281			InputTokens:     []string{"nextToken"},
1282			OutputTokens:    []string{"nextToken"},
1283			LimitToken:      "maxResults",
1284			TruncationToken: "",
1285		},
1286	}
1287
1288	if input == nil {
1289		input = &ListProfileTimesInput{}
1290	}
1291
1292	output = &ListProfileTimesOutput{}
1293	req = c.newRequest(op, input, output)
1294	return
1295}
1296
1297// ListProfileTimes API operation for Amazon CodeGuru Profiler.
1298//
1299// Lists the start times of the available aggregated profiles of a profiling
1300// group for an aggregation period within the specified time range.
1301//
1302// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1303// with awserr.Error's Code and Message methods to get detailed information about
1304// the error.
1305//
1306// See the AWS API reference guide for Amazon CodeGuru Profiler's
1307// API operation ListProfileTimes for usage and error information.
1308//
1309// Returned Error Types:
1310//   * InternalServerException
1311//   The server encountered an internal error and is unable to complete the request.
1312//
1313//   * ValidationException
1314//   The parameter is not valid.
1315//
1316//   * ThrottlingException
1317//   The request was denied due to request throttling.
1318//
1319//   * ResourceNotFoundException
1320//   The resource specified in the request does not exist.
1321//
1322// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes
1323func (c *CodeGuruProfiler) ListProfileTimes(input *ListProfileTimesInput) (*ListProfileTimesOutput, error) {
1324	req, out := c.ListProfileTimesRequest(input)
1325	return out, req.Send()
1326}
1327
1328// ListProfileTimesWithContext is the same as ListProfileTimes with the addition of
1329// the ability to pass a context and additional request options.
1330//
1331// See ListProfileTimes for details on how to use this API operation.
1332//
1333// The context must be non-nil and will be used for request cancellation. If
1334// the context is nil a panic will occur. In the future the SDK may create
1335// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1336// for more information on using Contexts.
1337func (c *CodeGuruProfiler) ListProfileTimesWithContext(ctx aws.Context, input *ListProfileTimesInput, opts ...request.Option) (*ListProfileTimesOutput, error) {
1338	req, out := c.ListProfileTimesRequest(input)
1339	req.SetContext(ctx)
1340	req.ApplyOptions(opts...)
1341	return out, req.Send()
1342}
1343
1344// ListProfileTimesPages iterates over the pages of a ListProfileTimes operation,
1345// calling the "fn" function with the response data for each page. To stop
1346// iterating, return false from the fn function.
1347//
1348// See ListProfileTimes method for more information on how to use this operation.
1349//
1350// Note: This operation can generate multiple requests to a service.
1351//
1352//    // Example iterating over at most 3 pages of a ListProfileTimes operation.
1353//    pageNum := 0
1354//    err := client.ListProfileTimesPages(params,
1355//        func(page *codeguruprofiler.ListProfileTimesOutput, lastPage bool) bool {
1356//            pageNum++
1357//            fmt.Println(page)
1358//            return pageNum <= 3
1359//        })
1360//
1361func (c *CodeGuruProfiler) ListProfileTimesPages(input *ListProfileTimesInput, fn func(*ListProfileTimesOutput, bool) bool) error {
1362	return c.ListProfileTimesPagesWithContext(aws.BackgroundContext(), input, fn)
1363}
1364
1365// ListProfileTimesPagesWithContext same as ListProfileTimesPages except
1366// it takes a Context and allows setting request options on the pages.
1367//
1368// The context must be non-nil and will be used for request cancellation. If
1369// the context is nil a panic will occur. In the future the SDK may create
1370// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1371// for more information on using Contexts.
1372func (c *CodeGuruProfiler) ListProfileTimesPagesWithContext(ctx aws.Context, input *ListProfileTimesInput, fn func(*ListProfileTimesOutput, bool) bool, opts ...request.Option) error {
1373	p := request.Pagination{
1374		NewRequest: func() (*request.Request, error) {
1375			var inCpy *ListProfileTimesInput
1376			if input != nil {
1377				tmp := *input
1378				inCpy = &tmp
1379			}
1380			req, _ := c.ListProfileTimesRequest(inCpy)
1381			req.SetContext(ctx)
1382			req.ApplyOptions(opts...)
1383			return req, nil
1384		},
1385	}
1386
1387	for p.Next() {
1388		if !fn(p.Page().(*ListProfileTimesOutput), !p.HasNextPage()) {
1389			break
1390		}
1391	}
1392
1393	return p.Err()
1394}
1395
1396const opListProfilingGroups = "ListProfilingGroups"
1397
1398// ListProfilingGroupsRequest generates a "aws/request.Request" representing the
1399// client's request for the ListProfilingGroups operation. The "output" return
1400// value will be populated with the request's response once the request completes
1401// successfully.
1402//
1403// Use "Send" method on the returned Request to send the API call to the service.
1404// the "output" return value is not valid until after Send returns without error.
1405//
1406// See ListProfilingGroups for more information on using the ListProfilingGroups
1407// API call, and error handling.
1408//
1409// This method is useful when you want to inject custom logic or configuration
1410// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1411//
1412//
1413//    // Example sending a request using the ListProfilingGroupsRequest method.
1414//    req, resp := client.ListProfilingGroupsRequest(params)
1415//
1416//    err := req.Send()
1417//    if err == nil { // resp is now filled
1418//        fmt.Println(resp)
1419//    }
1420//
1421// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups
1422func (c *CodeGuruProfiler) ListProfilingGroupsRequest(input *ListProfilingGroupsInput) (req *request.Request, output *ListProfilingGroupsOutput) {
1423	op := &request.Operation{
1424		Name:       opListProfilingGroups,
1425		HTTPMethod: "GET",
1426		HTTPPath:   "/profilingGroups",
1427		Paginator: &request.Paginator{
1428			InputTokens:     []string{"nextToken"},
1429			OutputTokens:    []string{"nextToken"},
1430			LimitToken:      "maxResults",
1431			TruncationToken: "",
1432		},
1433	}
1434
1435	if input == nil {
1436		input = &ListProfilingGroupsInput{}
1437	}
1438
1439	output = &ListProfilingGroupsOutput{}
1440	req = c.newRequest(op, input, output)
1441	return
1442}
1443
1444// ListProfilingGroups API operation for Amazon CodeGuru Profiler.
1445//
1446// Returns a list of profiling groups. The profiling groups are returned as
1447// ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
1448// objects.
1449//
1450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1451// with awserr.Error's Code and Message methods to get detailed information about
1452// the error.
1453//
1454// See the AWS API reference guide for Amazon CodeGuru Profiler's
1455// API operation ListProfilingGroups for usage and error information.
1456//
1457// Returned Error Types:
1458//   * InternalServerException
1459//   The server encountered an internal error and is unable to complete the request.
1460//
1461//   * ThrottlingException
1462//   The request was denied due to request throttling.
1463//
1464// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups
1465func (c *CodeGuruProfiler) ListProfilingGroups(input *ListProfilingGroupsInput) (*ListProfilingGroupsOutput, error) {
1466	req, out := c.ListProfilingGroupsRequest(input)
1467	return out, req.Send()
1468}
1469
1470// ListProfilingGroupsWithContext is the same as ListProfilingGroups with the addition of
1471// the ability to pass a context and additional request options.
1472//
1473// See ListProfilingGroups for details on how to use this API operation.
1474//
1475// The context must be non-nil and will be used for request cancellation. If
1476// the context is nil a panic will occur. In the future the SDK may create
1477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1478// for more information on using Contexts.
1479func (c *CodeGuruProfiler) ListProfilingGroupsWithContext(ctx aws.Context, input *ListProfilingGroupsInput, opts ...request.Option) (*ListProfilingGroupsOutput, error) {
1480	req, out := c.ListProfilingGroupsRequest(input)
1481	req.SetContext(ctx)
1482	req.ApplyOptions(opts...)
1483	return out, req.Send()
1484}
1485
1486// ListProfilingGroupsPages iterates over the pages of a ListProfilingGroups operation,
1487// calling the "fn" function with the response data for each page. To stop
1488// iterating, return false from the fn function.
1489//
1490// See ListProfilingGroups method for more information on how to use this operation.
1491//
1492// Note: This operation can generate multiple requests to a service.
1493//
1494//    // Example iterating over at most 3 pages of a ListProfilingGroups operation.
1495//    pageNum := 0
1496//    err := client.ListProfilingGroupsPages(params,
1497//        func(page *codeguruprofiler.ListProfilingGroupsOutput, lastPage bool) bool {
1498//            pageNum++
1499//            fmt.Println(page)
1500//            return pageNum <= 3
1501//        })
1502//
1503func (c *CodeGuruProfiler) ListProfilingGroupsPages(input *ListProfilingGroupsInput, fn func(*ListProfilingGroupsOutput, bool) bool) error {
1504	return c.ListProfilingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
1505}
1506
1507// ListProfilingGroupsPagesWithContext same as ListProfilingGroupsPages except
1508// it takes a Context and allows setting request options on the pages.
1509//
1510// The context must be non-nil and will be used for request cancellation. If
1511// the context is nil a panic will occur. In the future the SDK may create
1512// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1513// for more information on using Contexts.
1514func (c *CodeGuruProfiler) ListProfilingGroupsPagesWithContext(ctx aws.Context, input *ListProfilingGroupsInput, fn func(*ListProfilingGroupsOutput, bool) bool, opts ...request.Option) error {
1515	p := request.Pagination{
1516		NewRequest: func() (*request.Request, error) {
1517			var inCpy *ListProfilingGroupsInput
1518			if input != nil {
1519				tmp := *input
1520				inCpy = &tmp
1521			}
1522			req, _ := c.ListProfilingGroupsRequest(inCpy)
1523			req.SetContext(ctx)
1524			req.ApplyOptions(opts...)
1525			return req, nil
1526		},
1527	}
1528
1529	for p.Next() {
1530		if !fn(p.Page().(*ListProfilingGroupsOutput), !p.HasNextPage()) {
1531			break
1532		}
1533	}
1534
1535	return p.Err()
1536}
1537
1538const opListTagsForResource = "ListTagsForResource"
1539
1540// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1541// client's request for the ListTagsForResource operation. The "output" return
1542// value will be populated with the request's response once the request completes
1543// successfully.
1544//
1545// Use "Send" method on the returned Request to send the API call to the service.
1546// the "output" return value is not valid until after Send returns without error.
1547//
1548// See ListTagsForResource for more information on using the ListTagsForResource
1549// API call, and error handling.
1550//
1551// This method is useful when you want to inject custom logic or configuration
1552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1553//
1554//
1555//    // Example sending a request using the ListTagsForResourceRequest method.
1556//    req, resp := client.ListTagsForResourceRequest(params)
1557//
1558//    err := req.Send()
1559//    if err == nil { // resp is now filled
1560//        fmt.Println(resp)
1561//    }
1562//
1563// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListTagsForResource
1564func (c *CodeGuruProfiler) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1565	op := &request.Operation{
1566		Name:       opListTagsForResource,
1567		HTTPMethod: "GET",
1568		HTTPPath:   "/tags/{resourceArn}",
1569	}
1570
1571	if input == nil {
1572		input = &ListTagsForResourceInput{}
1573	}
1574
1575	output = &ListTagsForResourceOutput{}
1576	req = c.newRequest(op, input, output)
1577	return
1578}
1579
1580// ListTagsForResource API operation for Amazon CodeGuru Profiler.
1581//
1582// Returns a list of the tags that are assigned to a specified resource.
1583//
1584// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1585// with awserr.Error's Code and Message methods to get detailed information about
1586// the error.
1587//
1588// See the AWS API reference guide for Amazon CodeGuru Profiler's
1589// API operation ListTagsForResource for usage and error information.
1590//
1591// Returned Error Types:
1592//   * InternalServerException
1593//   The server encountered an internal error and is unable to complete the request.
1594//
1595//   * ValidationException
1596//   The parameter is not valid.
1597//
1598//   * ResourceNotFoundException
1599//   The resource specified in the request does not exist.
1600//
1601// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListTagsForResource
1602func (c *CodeGuruProfiler) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1603	req, out := c.ListTagsForResourceRequest(input)
1604	return out, req.Send()
1605}
1606
1607// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1608// the ability to pass a context and additional request options.
1609//
1610// See ListTagsForResource for details on how to use this API operation.
1611//
1612// The context must be non-nil and will be used for request cancellation. If
1613// the context is nil a panic will occur. In the future the SDK may create
1614// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1615// for more information on using Contexts.
1616func (c *CodeGuruProfiler) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1617	req, out := c.ListTagsForResourceRequest(input)
1618	req.SetContext(ctx)
1619	req.ApplyOptions(opts...)
1620	return out, req.Send()
1621}
1622
1623const opPostAgentProfile = "PostAgentProfile"
1624
1625// PostAgentProfileRequest generates a "aws/request.Request" representing the
1626// client's request for the PostAgentProfile operation. The "output" return
1627// value will be populated with the request's response once the request completes
1628// successfully.
1629//
1630// Use "Send" method on the returned Request to send the API call to the service.
1631// the "output" return value is not valid until after Send returns without error.
1632//
1633// See PostAgentProfile for more information on using the PostAgentProfile
1634// API call, and error handling.
1635//
1636// This method is useful when you want to inject custom logic or configuration
1637// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1638//
1639//
1640//    // Example sending a request using the PostAgentProfileRequest method.
1641//    req, resp := client.PostAgentProfileRequest(params)
1642//
1643//    err := req.Send()
1644//    if err == nil { // resp is now filled
1645//        fmt.Println(resp)
1646//    }
1647//
1648// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile
1649func (c *CodeGuruProfiler) PostAgentProfileRequest(input *PostAgentProfileInput) (req *request.Request, output *PostAgentProfileOutput) {
1650	op := &request.Operation{
1651		Name:       opPostAgentProfile,
1652		HTTPMethod: "POST",
1653		HTTPPath:   "/profilingGroups/{profilingGroupName}/agentProfile",
1654	}
1655
1656	if input == nil {
1657		input = &PostAgentProfileInput{}
1658	}
1659
1660	output = &PostAgentProfileOutput{}
1661	req = c.newRequest(op, input, output)
1662	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1663	return
1664}
1665
1666// PostAgentProfile API operation for Amazon CodeGuru Profiler.
1667//
1668// Submits profiling data to an aggregated profile of a profiling group. To
1669// get an aggregated profile that is created with this profiling data, use GetProfile
1670// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html).
1671//
1672// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1673// with awserr.Error's Code and Message methods to get detailed information about
1674// the error.
1675//
1676// See the AWS API reference guide for Amazon CodeGuru Profiler's
1677// API operation PostAgentProfile for usage and error information.
1678//
1679// Returned Error Types:
1680//   * InternalServerException
1681//   The server encountered an internal error and is unable to complete the request.
1682//
1683//   * ValidationException
1684//   The parameter is not valid.
1685//
1686//   * ThrottlingException
1687//   The request was denied due to request throttling.
1688//
1689//   * ResourceNotFoundException
1690//   The resource specified in the request does not exist.
1691//
1692// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile
1693func (c *CodeGuruProfiler) PostAgentProfile(input *PostAgentProfileInput) (*PostAgentProfileOutput, error) {
1694	req, out := c.PostAgentProfileRequest(input)
1695	return out, req.Send()
1696}
1697
1698// PostAgentProfileWithContext is the same as PostAgentProfile with the addition of
1699// the ability to pass a context and additional request options.
1700//
1701// See PostAgentProfile for details on how to use this API operation.
1702//
1703// The context must be non-nil and will be used for request cancellation. If
1704// the context is nil a panic will occur. In the future the SDK may create
1705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1706// for more information on using Contexts.
1707func (c *CodeGuruProfiler) PostAgentProfileWithContext(ctx aws.Context, input *PostAgentProfileInput, opts ...request.Option) (*PostAgentProfileOutput, error) {
1708	req, out := c.PostAgentProfileRequest(input)
1709	req.SetContext(ctx)
1710	req.ApplyOptions(opts...)
1711	return out, req.Send()
1712}
1713
1714const opPutPermission = "PutPermission"
1715
1716// PutPermissionRequest generates a "aws/request.Request" representing the
1717// client's request for the PutPermission operation. The "output" return
1718// value will be populated with the request's response once the request completes
1719// successfully.
1720//
1721// Use "Send" method on the returned Request to send the API call to the service.
1722// the "output" return value is not valid until after Send returns without error.
1723//
1724// See PutPermission for more information on using the PutPermission
1725// API call, and error handling.
1726//
1727// This method is useful when you want to inject custom logic or configuration
1728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1729//
1730//
1731//    // Example sending a request using the PutPermissionRequest method.
1732//    req, resp := client.PutPermissionRequest(params)
1733//
1734//    err := req.Send()
1735//    if err == nil { // resp is now filled
1736//        fmt.Println(resp)
1737//    }
1738//
1739// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission
1740func (c *CodeGuruProfiler) PutPermissionRequest(input *PutPermissionInput) (req *request.Request, output *PutPermissionOutput) {
1741	op := &request.Operation{
1742		Name:       opPutPermission,
1743		HTTPMethod: "PUT",
1744		HTTPPath:   "/profilingGroups/{profilingGroupName}/policy/{actionGroup}",
1745	}
1746
1747	if input == nil {
1748		input = &PutPermissionInput{}
1749	}
1750
1751	output = &PutPermissionOutput{}
1752	req = c.newRequest(op, input, output)
1753	return
1754}
1755
1756// PutPermission API operation for Amazon CodeGuru Profiler.
1757//
1758// Adds permissions to a profiling group's resource-based policy that are provided
1759// using an action group. If a profiling group doesn't have a resource-based
1760// policy, one is created for it using the permissions in the action group and
1761// the roles and users in the principals parameter.
1762//
1763//    <p> The one supported action group that can be added is <code>agentPermission</code>
1764//    which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions.
1765//    For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based
1766//    policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User
1767//    Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html">
1768//    <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html">
1769//    <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code>
1770//    on a profiling group, do not specify a <code>revisionId</code> because
1771//    it doesn't have a resource-based policy. Subsequent calls must provide
1772//    a <code>revisionId</code> to specify which revision of the resource-based
1773//    policy to add the permissions to. </p> <p> The response contains the profiling
1774//    group's JSON-formatted resource policy. </p>
1775//
1776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1777// with awserr.Error's Code and Message methods to get detailed information about
1778// the error.
1779//
1780// See the AWS API reference guide for Amazon CodeGuru Profiler's
1781// API operation PutPermission for usage and error information.
1782//
1783// Returned Error Types:
1784//   * InternalServerException
1785//   The server encountered an internal error and is unable to complete the request.
1786//
1787//   * ConflictException
1788//   The requested operation would cause a conflict with the current state of
1789//   a service resource associated with the request. Resolve the conflict before
1790//   retrying this request.
1791//
1792//   * ValidationException
1793//   The parameter is not valid.
1794//
1795//   * ThrottlingException
1796//   The request was denied due to request throttling.
1797//
1798//   * ResourceNotFoundException
1799//   The resource specified in the request does not exist.
1800//
1801// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission
1802func (c *CodeGuruProfiler) PutPermission(input *PutPermissionInput) (*PutPermissionOutput, error) {
1803	req, out := c.PutPermissionRequest(input)
1804	return out, req.Send()
1805}
1806
1807// PutPermissionWithContext is the same as PutPermission with the addition of
1808// the ability to pass a context and additional request options.
1809//
1810// See PutPermission for details on how to use this API operation.
1811//
1812// The context must be non-nil and will be used for request cancellation. If
1813// the context is nil a panic will occur. In the future the SDK may create
1814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1815// for more information on using Contexts.
1816func (c *CodeGuruProfiler) PutPermissionWithContext(ctx aws.Context, input *PutPermissionInput, opts ...request.Option) (*PutPermissionOutput, error) {
1817	req, out := c.PutPermissionRequest(input)
1818	req.SetContext(ctx)
1819	req.ApplyOptions(opts...)
1820	return out, req.Send()
1821}
1822
1823const opRemoveNotificationChannel = "RemoveNotificationChannel"
1824
1825// RemoveNotificationChannelRequest generates a "aws/request.Request" representing the
1826// client's request for the RemoveNotificationChannel operation. The "output" return
1827// value will be populated with the request's response once the request completes
1828// successfully.
1829//
1830// Use "Send" method on the returned Request to send the API call to the service.
1831// the "output" return value is not valid until after Send returns without error.
1832//
1833// See RemoveNotificationChannel for more information on using the RemoveNotificationChannel
1834// API call, and error handling.
1835//
1836// This method is useful when you want to inject custom logic or configuration
1837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1838//
1839//
1840//    // Example sending a request using the RemoveNotificationChannelRequest method.
1841//    req, resp := client.RemoveNotificationChannelRequest(params)
1842//
1843//    err := req.Send()
1844//    if err == nil { // resp is now filled
1845//        fmt.Println(resp)
1846//    }
1847//
1848// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel
1849func (c *CodeGuruProfiler) RemoveNotificationChannelRequest(input *RemoveNotificationChannelInput) (req *request.Request, output *RemoveNotificationChannelOutput) {
1850	op := &request.Operation{
1851		Name:       opRemoveNotificationChannel,
1852		HTTPMethod: "DELETE",
1853		HTTPPath:   "/profilingGroups/{profilingGroupName}/notificationConfiguration/{channelId}",
1854	}
1855
1856	if input == nil {
1857		input = &RemoveNotificationChannelInput{}
1858	}
1859
1860	output = &RemoveNotificationChannelOutput{}
1861	req = c.newRequest(op, input, output)
1862	return
1863}
1864
1865// RemoveNotificationChannel API operation for Amazon CodeGuru Profiler.
1866//
1867// Remove one anomaly notifications channel for a profiling group.
1868//
1869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1870// with awserr.Error's Code and Message methods to get detailed information about
1871// the error.
1872//
1873// See the AWS API reference guide for Amazon CodeGuru Profiler's
1874// API operation RemoveNotificationChannel for usage and error information.
1875//
1876// Returned Error Types:
1877//   * InternalServerException
1878//   The server encountered an internal error and is unable to complete the request.
1879//
1880//   * ValidationException
1881//   The parameter is not valid.
1882//
1883//   * ThrottlingException
1884//   The request was denied due to request throttling.
1885//
1886//   * ResourceNotFoundException
1887//   The resource specified in the request does not exist.
1888//
1889// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel
1890func (c *CodeGuruProfiler) RemoveNotificationChannel(input *RemoveNotificationChannelInput) (*RemoveNotificationChannelOutput, error) {
1891	req, out := c.RemoveNotificationChannelRequest(input)
1892	return out, req.Send()
1893}
1894
1895// RemoveNotificationChannelWithContext is the same as RemoveNotificationChannel with the addition of
1896// the ability to pass a context and additional request options.
1897//
1898// See RemoveNotificationChannel for details on how to use this API operation.
1899//
1900// The context must be non-nil and will be used for request cancellation. If
1901// the context is nil a panic will occur. In the future the SDK may create
1902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1903// for more information on using Contexts.
1904func (c *CodeGuruProfiler) RemoveNotificationChannelWithContext(ctx aws.Context, input *RemoveNotificationChannelInput, opts ...request.Option) (*RemoveNotificationChannelOutput, error) {
1905	req, out := c.RemoveNotificationChannelRequest(input)
1906	req.SetContext(ctx)
1907	req.ApplyOptions(opts...)
1908	return out, req.Send()
1909}
1910
1911const opRemovePermission = "RemovePermission"
1912
1913// RemovePermissionRequest generates a "aws/request.Request" representing the
1914// client's request for the RemovePermission operation. The "output" return
1915// value will be populated with the request's response once the request completes
1916// successfully.
1917//
1918// Use "Send" method on the returned Request to send the API call to the service.
1919// the "output" return value is not valid until after Send returns without error.
1920//
1921// See RemovePermission for more information on using the RemovePermission
1922// API call, and error handling.
1923//
1924// This method is useful when you want to inject custom logic or configuration
1925// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1926//
1927//
1928//    // Example sending a request using the RemovePermissionRequest method.
1929//    req, resp := client.RemovePermissionRequest(params)
1930//
1931//    err := req.Send()
1932//    if err == nil { // resp is now filled
1933//        fmt.Println(resp)
1934//    }
1935//
1936// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission
1937func (c *CodeGuruProfiler) RemovePermissionRequest(input *RemovePermissionInput) (req *request.Request, output *RemovePermissionOutput) {
1938	op := &request.Operation{
1939		Name:       opRemovePermission,
1940		HTTPMethod: "DELETE",
1941		HTTPPath:   "/profilingGroups/{profilingGroupName}/policy/{actionGroup}",
1942	}
1943
1944	if input == nil {
1945		input = &RemovePermissionInput{}
1946	}
1947
1948	output = &RemovePermissionOutput{}
1949	req = c.newRequest(op, input, output)
1950	return
1951}
1952
1953// RemovePermission API operation for Amazon CodeGuru Profiler.
1954//
1955// Removes permissions from a profiling group's resource-based policy that are
1956// provided using an action group. The one supported action group that can be
1957// removed is agentPermission which grants ConfigureAgent and PostAgent permissions.
1958// For more information, see Resource-based policies in CodeGuru Profiler (https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html)
1959// in the Amazon CodeGuru Profiler User Guide, ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html),
1960// and PostAgentProfile (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html).
1961//
1962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1963// with awserr.Error's Code and Message methods to get detailed information about
1964// the error.
1965//
1966// See the AWS API reference guide for Amazon CodeGuru Profiler's
1967// API operation RemovePermission for usage and error information.
1968//
1969// Returned Error Types:
1970//   * InternalServerException
1971//   The server encountered an internal error and is unable to complete the request.
1972//
1973//   * ConflictException
1974//   The requested operation would cause a conflict with the current state of
1975//   a service resource associated with the request. Resolve the conflict before
1976//   retrying this request.
1977//
1978//   * ValidationException
1979//   The parameter is not valid.
1980//
1981//   * ThrottlingException
1982//   The request was denied due to request throttling.
1983//
1984//   * ResourceNotFoundException
1985//   The resource specified in the request does not exist.
1986//
1987// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission
1988func (c *CodeGuruProfiler) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) {
1989	req, out := c.RemovePermissionRequest(input)
1990	return out, req.Send()
1991}
1992
1993// RemovePermissionWithContext is the same as RemovePermission with the addition of
1994// the ability to pass a context and additional request options.
1995//
1996// See RemovePermission for details on how to use this API operation.
1997//
1998// The context must be non-nil and will be used for request cancellation. If
1999// the context is nil a panic will occur. In the future the SDK may create
2000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2001// for more information on using Contexts.
2002func (c *CodeGuruProfiler) RemovePermissionWithContext(ctx aws.Context, input *RemovePermissionInput, opts ...request.Option) (*RemovePermissionOutput, error) {
2003	req, out := c.RemovePermissionRequest(input)
2004	req.SetContext(ctx)
2005	req.ApplyOptions(opts...)
2006	return out, req.Send()
2007}
2008
2009const opSubmitFeedback = "SubmitFeedback"
2010
2011// SubmitFeedbackRequest generates a "aws/request.Request" representing the
2012// client's request for the SubmitFeedback operation. The "output" return
2013// value will be populated with the request's response once the request completes
2014// successfully.
2015//
2016// Use "Send" method on the returned Request to send the API call to the service.
2017// the "output" return value is not valid until after Send returns without error.
2018//
2019// See SubmitFeedback for more information on using the SubmitFeedback
2020// API call, and error handling.
2021//
2022// This method is useful when you want to inject custom logic or configuration
2023// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2024//
2025//
2026//    // Example sending a request using the SubmitFeedbackRequest method.
2027//    req, resp := client.SubmitFeedbackRequest(params)
2028//
2029//    err := req.Send()
2030//    if err == nil { // resp is now filled
2031//        fmt.Println(resp)
2032//    }
2033//
2034// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback
2035func (c *CodeGuruProfiler) SubmitFeedbackRequest(input *SubmitFeedbackInput) (req *request.Request, output *SubmitFeedbackOutput) {
2036	op := &request.Operation{
2037		Name:       opSubmitFeedback,
2038		HTTPMethod: "POST",
2039		HTTPPath:   "/internal/profilingGroups/{profilingGroupName}/anomalies/{anomalyInstanceId}/feedback",
2040	}
2041
2042	if input == nil {
2043		input = &SubmitFeedbackInput{}
2044	}
2045
2046	output = &SubmitFeedbackOutput{}
2047	req = c.newRequest(op, input, output)
2048	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2049	return
2050}
2051
2052// SubmitFeedback API operation for Amazon CodeGuru Profiler.
2053//
2054// Sends feedback to CodeGuru Profiler about whether the anomaly detected by
2055// the analysis is useful or not.
2056//
2057// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2058// with awserr.Error's Code and Message methods to get detailed information about
2059// the error.
2060//
2061// See the AWS API reference guide for Amazon CodeGuru Profiler's
2062// API operation SubmitFeedback for usage and error information.
2063//
2064// Returned Error Types:
2065//   * InternalServerException
2066//   The server encountered an internal error and is unable to complete the request.
2067//
2068//   * ValidationException
2069//   The parameter is not valid.
2070//
2071//   * ThrottlingException
2072//   The request was denied due to request throttling.
2073//
2074//   * ResourceNotFoundException
2075//   The resource specified in the request does not exist.
2076//
2077// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback
2078func (c *CodeGuruProfiler) SubmitFeedback(input *SubmitFeedbackInput) (*SubmitFeedbackOutput, error) {
2079	req, out := c.SubmitFeedbackRequest(input)
2080	return out, req.Send()
2081}
2082
2083// SubmitFeedbackWithContext is the same as SubmitFeedback with the addition of
2084// the ability to pass a context and additional request options.
2085//
2086// See SubmitFeedback for details on how to use this API operation.
2087//
2088// The context must be non-nil and will be used for request cancellation. If
2089// the context is nil a panic will occur. In the future the SDK may create
2090// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2091// for more information on using Contexts.
2092func (c *CodeGuruProfiler) SubmitFeedbackWithContext(ctx aws.Context, input *SubmitFeedbackInput, opts ...request.Option) (*SubmitFeedbackOutput, error) {
2093	req, out := c.SubmitFeedbackRequest(input)
2094	req.SetContext(ctx)
2095	req.ApplyOptions(opts...)
2096	return out, req.Send()
2097}
2098
2099const opTagResource = "TagResource"
2100
2101// TagResourceRequest generates a "aws/request.Request" representing the
2102// client's request for the TagResource operation. The "output" return
2103// value will be populated with the request's response once the request completes
2104// successfully.
2105//
2106// Use "Send" method on the returned Request to send the API call to the service.
2107// the "output" return value is not valid until after Send returns without error.
2108//
2109// See TagResource for more information on using the TagResource
2110// API call, and error handling.
2111//
2112// This method is useful when you want to inject custom logic or configuration
2113// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2114//
2115//
2116//    // Example sending a request using the TagResourceRequest method.
2117//    req, resp := client.TagResourceRequest(params)
2118//
2119//    err := req.Send()
2120//    if err == nil { // resp is now filled
2121//        fmt.Println(resp)
2122//    }
2123//
2124// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/TagResource
2125func (c *CodeGuruProfiler) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2126	op := &request.Operation{
2127		Name:       opTagResource,
2128		HTTPMethod: "POST",
2129		HTTPPath:   "/tags/{resourceArn}",
2130	}
2131
2132	if input == nil {
2133		input = &TagResourceInput{}
2134	}
2135
2136	output = &TagResourceOutput{}
2137	req = c.newRequest(op, input, output)
2138	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2139	return
2140}
2141
2142// TagResource API operation for Amazon CodeGuru Profiler.
2143//
2144// Use to assign one or more tags to a resource.
2145//
2146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2147// with awserr.Error's Code and Message methods to get detailed information about
2148// the error.
2149//
2150// See the AWS API reference guide for Amazon CodeGuru Profiler's
2151// API operation TagResource for usage and error information.
2152//
2153// Returned Error Types:
2154//   * InternalServerException
2155//   The server encountered an internal error and is unable to complete the request.
2156//
2157//   * ValidationException
2158//   The parameter is not valid.
2159//
2160//   * ResourceNotFoundException
2161//   The resource specified in the request does not exist.
2162//
2163// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/TagResource
2164func (c *CodeGuruProfiler) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2165	req, out := c.TagResourceRequest(input)
2166	return out, req.Send()
2167}
2168
2169// TagResourceWithContext is the same as TagResource with the addition of
2170// the ability to pass a context and additional request options.
2171//
2172// See TagResource for details on how to use this API operation.
2173//
2174// The context must be non-nil and will be used for request cancellation. If
2175// the context is nil a panic will occur. In the future the SDK may create
2176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2177// for more information on using Contexts.
2178func (c *CodeGuruProfiler) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2179	req, out := c.TagResourceRequest(input)
2180	req.SetContext(ctx)
2181	req.ApplyOptions(opts...)
2182	return out, req.Send()
2183}
2184
2185const opUntagResource = "UntagResource"
2186
2187// UntagResourceRequest generates a "aws/request.Request" representing the
2188// client's request for the UntagResource operation. The "output" return
2189// value will be populated with the request's response once the request completes
2190// successfully.
2191//
2192// Use "Send" method on the returned Request to send the API call to the service.
2193// the "output" return value is not valid until after Send returns without error.
2194//
2195// See UntagResource for more information on using the UntagResource
2196// API call, and error handling.
2197//
2198// This method is useful when you want to inject custom logic or configuration
2199// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2200//
2201//
2202//    // Example sending a request using the UntagResourceRequest method.
2203//    req, resp := client.UntagResourceRequest(params)
2204//
2205//    err := req.Send()
2206//    if err == nil { // resp is now filled
2207//        fmt.Println(resp)
2208//    }
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UntagResource
2211func (c *CodeGuruProfiler) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2212	op := &request.Operation{
2213		Name:       opUntagResource,
2214		HTTPMethod: "DELETE",
2215		HTTPPath:   "/tags/{resourceArn}",
2216	}
2217
2218	if input == nil {
2219		input = &UntagResourceInput{}
2220	}
2221
2222	output = &UntagResourceOutput{}
2223	req = c.newRequest(op, input, output)
2224	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2225	return
2226}
2227
2228// UntagResource API operation for Amazon CodeGuru Profiler.
2229//
2230// Use to remove one or more tags from a resource.
2231//
2232// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2233// with awserr.Error's Code and Message methods to get detailed information about
2234// the error.
2235//
2236// See the AWS API reference guide for Amazon CodeGuru Profiler's
2237// API operation UntagResource for usage and error information.
2238//
2239// Returned Error Types:
2240//   * InternalServerException
2241//   The server encountered an internal error and is unable to complete the request.
2242//
2243//   * ValidationException
2244//   The parameter is not valid.
2245//
2246//   * ResourceNotFoundException
2247//   The resource specified in the request does not exist.
2248//
2249// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UntagResource
2250func (c *CodeGuruProfiler) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2251	req, out := c.UntagResourceRequest(input)
2252	return out, req.Send()
2253}
2254
2255// UntagResourceWithContext is the same as UntagResource with the addition of
2256// the ability to pass a context and additional request options.
2257//
2258// See UntagResource for details on how to use this API operation.
2259//
2260// The context must be non-nil and will be used for request cancellation. If
2261// the context is nil a panic will occur. In the future the SDK may create
2262// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2263// for more information on using Contexts.
2264func (c *CodeGuruProfiler) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2265	req, out := c.UntagResourceRequest(input)
2266	req.SetContext(ctx)
2267	req.ApplyOptions(opts...)
2268	return out, req.Send()
2269}
2270
2271const opUpdateProfilingGroup = "UpdateProfilingGroup"
2272
2273// UpdateProfilingGroupRequest generates a "aws/request.Request" representing the
2274// client's request for the UpdateProfilingGroup operation. The "output" return
2275// value will be populated with the request's response once the request completes
2276// successfully.
2277//
2278// Use "Send" method on the returned Request to send the API call to the service.
2279// the "output" return value is not valid until after Send returns without error.
2280//
2281// See UpdateProfilingGroup for more information on using the UpdateProfilingGroup
2282// API call, and error handling.
2283//
2284// This method is useful when you want to inject custom logic or configuration
2285// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2286//
2287//
2288//    // Example sending a request using the UpdateProfilingGroupRequest method.
2289//    req, resp := client.UpdateProfilingGroupRequest(params)
2290//
2291//    err := req.Send()
2292//    if err == nil { // resp is now filled
2293//        fmt.Println(resp)
2294//    }
2295//
2296// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup
2297func (c *CodeGuruProfiler) UpdateProfilingGroupRequest(input *UpdateProfilingGroupInput) (req *request.Request, output *UpdateProfilingGroupOutput) {
2298	op := &request.Operation{
2299		Name:       opUpdateProfilingGroup,
2300		HTTPMethod: "PUT",
2301		HTTPPath:   "/profilingGroups/{profilingGroupName}",
2302	}
2303
2304	if input == nil {
2305		input = &UpdateProfilingGroupInput{}
2306	}
2307
2308	output = &UpdateProfilingGroupOutput{}
2309	req = c.newRequest(op, input, output)
2310	return
2311}
2312
2313// UpdateProfilingGroup API operation for Amazon CodeGuru Profiler.
2314//
2315// Updates a profiling group.
2316//
2317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2318// with awserr.Error's Code and Message methods to get detailed information about
2319// the error.
2320//
2321// See the AWS API reference guide for Amazon CodeGuru Profiler's
2322// API operation UpdateProfilingGroup for usage and error information.
2323//
2324// Returned Error Types:
2325//   * InternalServerException
2326//   The server encountered an internal error and is unable to complete the request.
2327//
2328//   * ConflictException
2329//   The requested operation would cause a conflict with the current state of
2330//   a service resource associated with the request. Resolve the conflict before
2331//   retrying this request.
2332//
2333//   * ValidationException
2334//   The parameter is not valid.
2335//
2336//   * ThrottlingException
2337//   The request was denied due to request throttling.
2338//
2339//   * ResourceNotFoundException
2340//   The resource specified in the request does not exist.
2341//
2342// See also, https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup
2343func (c *CodeGuruProfiler) UpdateProfilingGroup(input *UpdateProfilingGroupInput) (*UpdateProfilingGroupOutput, error) {
2344	req, out := c.UpdateProfilingGroupRequest(input)
2345	return out, req.Send()
2346}
2347
2348// UpdateProfilingGroupWithContext is the same as UpdateProfilingGroup with the addition of
2349// the ability to pass a context and additional request options.
2350//
2351// See UpdateProfilingGroup for details on how to use this API operation.
2352//
2353// The context must be non-nil and will be used for request cancellation. If
2354// the context is nil a panic will occur. In the future the SDK may create
2355// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2356// for more information on using Contexts.
2357func (c *CodeGuruProfiler) UpdateProfilingGroupWithContext(ctx aws.Context, input *UpdateProfilingGroupInput, opts ...request.Option) (*UpdateProfilingGroupOutput, error) {
2358	req, out := c.UpdateProfilingGroupRequest(input)
2359	req.SetContext(ctx)
2360	req.ApplyOptions(opts...)
2361	return out, req.Send()
2362}
2363
2364// The structure representing the AddNotificationChannelsRequest.
2365type AddNotificationChannelsInput struct {
2366	_ struct{} `type:"structure"`
2367
2368	// One or 2 channels to report to when anomalies are detected.
2369	//
2370	// Channels is a required field
2371	Channels []*Channel `locationName:"channels" min:"1" type:"list" required:"true"`
2372
2373	// The name of the profiling group that we are setting up notifications for.
2374	//
2375	// ProfilingGroupName is a required field
2376	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
2377}
2378
2379// String returns the string representation
2380func (s AddNotificationChannelsInput) String() string {
2381	return awsutil.Prettify(s)
2382}
2383
2384// GoString returns the string representation
2385func (s AddNotificationChannelsInput) GoString() string {
2386	return s.String()
2387}
2388
2389// Validate inspects the fields of the type to determine if they are valid.
2390func (s *AddNotificationChannelsInput) Validate() error {
2391	invalidParams := request.ErrInvalidParams{Context: "AddNotificationChannelsInput"}
2392	if s.Channels == nil {
2393		invalidParams.Add(request.NewErrParamRequired("Channels"))
2394	}
2395	if s.Channels != nil && len(s.Channels) < 1 {
2396		invalidParams.Add(request.NewErrParamMinLen("Channels", 1))
2397	}
2398	if s.ProfilingGroupName == nil {
2399		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
2400	}
2401	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
2402		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
2403	}
2404	if s.Channels != nil {
2405		for i, v := range s.Channels {
2406			if v == nil {
2407				continue
2408			}
2409			if err := v.Validate(); err != nil {
2410				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Channels", i), err.(request.ErrInvalidParams))
2411			}
2412		}
2413	}
2414
2415	if invalidParams.Len() > 0 {
2416		return invalidParams
2417	}
2418	return nil
2419}
2420
2421// SetChannels sets the Channels field's value.
2422func (s *AddNotificationChannelsInput) SetChannels(v []*Channel) *AddNotificationChannelsInput {
2423	s.Channels = v
2424	return s
2425}
2426
2427// SetProfilingGroupName sets the ProfilingGroupName field's value.
2428func (s *AddNotificationChannelsInput) SetProfilingGroupName(v string) *AddNotificationChannelsInput {
2429	s.ProfilingGroupName = &v
2430	return s
2431}
2432
2433// The structure representing the AddNotificationChannelsResponse.
2434type AddNotificationChannelsOutput struct {
2435	_ struct{} `type:"structure"`
2436
2437	// The new notification configuration for this profiling group.
2438	NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure"`
2439}
2440
2441// String returns the string representation
2442func (s AddNotificationChannelsOutput) String() string {
2443	return awsutil.Prettify(s)
2444}
2445
2446// GoString returns the string representation
2447func (s AddNotificationChannelsOutput) GoString() string {
2448	return s.String()
2449}
2450
2451// SetNotificationConfiguration sets the NotificationConfiguration field's value.
2452func (s *AddNotificationChannelsOutput) SetNotificationConfiguration(v *NotificationConfiguration) *AddNotificationChannelsOutput {
2453	s.NotificationConfiguration = v
2454	return s
2455}
2456
2457// The response of ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html)
2458// that specifies if an agent profiles or not and for how long to return profiling
2459// data.
2460type AgentConfiguration struct {
2461	_ struct{} `type:"structure"`
2462
2463	// Parameters used by the profiler. The valid parameters are:
2464	//
2465	//    * MaxStackDepth - The maximum depth of the stacks in the code that is
2466	//    represented in the profile. For example, if CodeGuru Profiler finds a
2467	//    method A, which calls method B, which calls method C, which calls method
2468	//    D, then the depth is 4. If the maxDepth is set to 2, then the profiler
2469	//    evaluates A and B.
2470	//
2471	//    * MemoryUsageLimitPercent - The percentage of memory that is used by the
2472	//    profiler.
2473	//
2474	//    * MinimumTimeForReportingInMilliseconds - The minimum time in milliseconds
2475	//    between sending reports.
2476	//
2477	//    * ReportingIntervalInMilliseconds - The reporting interval in milliseconds
2478	//    used to report profiles.
2479	//
2480	//    * SamplingIntervalInMilliseconds - The sampling interval in milliseconds
2481	//    that is used to profile samples.
2482	AgentParameters map[string]*string `locationName:"agentParameters" type:"map"`
2483
2484	// How long a profiling agent should send profiling data using ConfigureAgent
2485	// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html).
2486	// For example, if this is set to 300, the profiling agent calls ConfigureAgent
2487	// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html)
2488	// every 5 minutes to submit the profiled data collected during that period.
2489	//
2490	// PeriodInSeconds is a required field
2491	PeriodInSeconds *int64 `locationName:"periodInSeconds" type:"integer" required:"true"`
2492
2493	// A Boolean that specifies whether the profiling agent collects profiling data
2494	// or not. Set to true to enable profiling.
2495	//
2496	// ShouldProfile is a required field
2497	ShouldProfile *bool `locationName:"shouldProfile" type:"boolean" required:"true"`
2498}
2499
2500// String returns the string representation
2501func (s AgentConfiguration) String() string {
2502	return awsutil.Prettify(s)
2503}
2504
2505// GoString returns the string representation
2506func (s AgentConfiguration) GoString() string {
2507	return s.String()
2508}
2509
2510// SetAgentParameters sets the AgentParameters field's value.
2511func (s *AgentConfiguration) SetAgentParameters(v map[string]*string) *AgentConfiguration {
2512	s.AgentParameters = v
2513	return s
2514}
2515
2516// SetPeriodInSeconds sets the PeriodInSeconds field's value.
2517func (s *AgentConfiguration) SetPeriodInSeconds(v int64) *AgentConfiguration {
2518	s.PeriodInSeconds = &v
2519	return s
2520}
2521
2522// SetShouldProfile sets the ShouldProfile field's value.
2523func (s *AgentConfiguration) SetShouldProfile(v bool) *AgentConfiguration {
2524	s.ShouldProfile = &v
2525	return s
2526}
2527
2528// Specifies whether profiling is enabled or disabled for a profiling group.
2529// It is used by ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html)
2530// to enable or disable profiling for a profiling group.
2531type AgentOrchestrationConfig struct {
2532	_ struct{} `type:"structure"`
2533
2534	// A Boolean that specifies whether the profiling agent collects profiling data
2535	// or not. Set to true to enable profiling.
2536	//
2537	// ProfilingEnabled is a required field
2538	ProfilingEnabled *bool `locationName:"profilingEnabled" type:"boolean" required:"true"`
2539}
2540
2541// String returns the string representation
2542func (s AgentOrchestrationConfig) String() string {
2543	return awsutil.Prettify(s)
2544}
2545
2546// GoString returns the string representation
2547func (s AgentOrchestrationConfig) GoString() string {
2548	return s.String()
2549}
2550
2551// Validate inspects the fields of the type to determine if they are valid.
2552func (s *AgentOrchestrationConfig) Validate() error {
2553	invalidParams := request.ErrInvalidParams{Context: "AgentOrchestrationConfig"}
2554	if s.ProfilingEnabled == nil {
2555		invalidParams.Add(request.NewErrParamRequired("ProfilingEnabled"))
2556	}
2557
2558	if invalidParams.Len() > 0 {
2559		return invalidParams
2560	}
2561	return nil
2562}
2563
2564// SetProfilingEnabled sets the ProfilingEnabled field's value.
2565func (s *AgentOrchestrationConfig) SetProfilingEnabled(v bool) *AgentOrchestrationConfig {
2566	s.ProfilingEnabled = &v
2567	return s
2568}
2569
2570// Specifies the aggregation period and aggregation start time for an aggregated
2571// profile. An aggregated profile is used to collect posted agent profiles during
2572// an aggregation period. There are three possible aggregation periods (1 day,
2573// 1 hour, or 5 minutes).
2574type AggregatedProfileTime struct {
2575	_ struct{} `type:"structure"`
2576
2577	// The aggregation period. This indicates the period during which an aggregation
2578	// profile collects posted agent profiles for a profiling group. Use one of
2579	// three valid durations that are specified using the ISO 8601 format.
2580	//
2581	//    * P1D — 1 day
2582	//
2583	//    * PT1H — 1 hour
2584	//
2585	//    * PT5M — 5 minutes
2586	Period *string `locationName:"period" type:"string" enum:"AggregationPeriod"`
2587
2588	// The time that aggregation of posted agent profiles for a profiling group
2589	// starts. The aggregation profile contains profiles posted by the agent starting
2590	// at this time for an aggregation period specified by the period property of
2591	// the AggregatedProfileTime object.
2592	//
2593	// Specify start using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2594	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2595	Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
2596}
2597
2598// String returns the string representation
2599func (s AggregatedProfileTime) String() string {
2600	return awsutil.Prettify(s)
2601}
2602
2603// GoString returns the string representation
2604func (s AggregatedProfileTime) GoString() string {
2605	return s.String()
2606}
2607
2608// SetPeriod sets the Period field's value.
2609func (s *AggregatedProfileTime) SetPeriod(v string) *AggregatedProfileTime {
2610	s.Period = &v
2611	return s
2612}
2613
2614// SetStart sets the Start field's value.
2615func (s *AggregatedProfileTime) SetStart(v time.Time) *AggregatedProfileTime {
2616	s.Start = &v
2617	return s
2618}
2619
2620// Details about an anomaly in a specific metric of application profile. The
2621// anomaly is detected using analysis of the metric data over a period of time.
2622type Anomaly struct {
2623	_ struct{} `type:"structure"`
2624
2625	// A list of the instances of the detected anomalies during the requested period.
2626	//
2627	// Instances is a required field
2628	Instances []*AnomalyInstance `locationName:"instances" type:"list" required:"true"`
2629
2630	// Details about the metric that the analysis used when it detected the anomaly.
2631	// The metric includes the name of the frame that was analyzed with the type
2632	// and thread states used to derive the metric value for that frame.
2633	//
2634	// Metric is a required field
2635	Metric *Metric `locationName:"metric" type:"structure" required:"true"`
2636
2637	// The reason for which metric was flagged as anomalous.
2638	//
2639	// Reason is a required field
2640	Reason *string `locationName:"reason" type:"string" required:"true"`
2641}
2642
2643// String returns the string representation
2644func (s Anomaly) String() string {
2645	return awsutil.Prettify(s)
2646}
2647
2648// GoString returns the string representation
2649func (s Anomaly) GoString() string {
2650	return s.String()
2651}
2652
2653// SetInstances sets the Instances field's value.
2654func (s *Anomaly) SetInstances(v []*AnomalyInstance) *Anomaly {
2655	s.Instances = v
2656	return s
2657}
2658
2659// SetMetric sets the Metric field's value.
2660func (s *Anomaly) SetMetric(v *Metric) *Anomaly {
2661	s.Metric = v
2662	return s
2663}
2664
2665// SetReason sets the Reason field's value.
2666func (s *Anomaly) SetReason(v string) *Anomaly {
2667	s.Reason = &v
2668	return s
2669}
2670
2671// The specific duration in which the metric is flagged as anomalous.
2672type AnomalyInstance struct {
2673	_ struct{} `type:"structure"`
2674
2675	// The end time of the period during which the metric is flagged as anomalous.
2676	// This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2677	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2678	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
2679
2680	// The universally unique identifier (UUID) of an instance of an anomaly in
2681	// a metric.
2682	//
2683	// Id is a required field
2684	Id *string `locationName:"id" type:"string" required:"true"`
2685
2686	// The start time of the period during which the metric is flagged as anomalous.
2687	// This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2688	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2689	//
2690	// StartTime is a required field
2691	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
2692
2693	// Feedback type on a specific instance of anomaly submitted by the user.
2694	UserFeedback *UserFeedback `locationName:"userFeedback" type:"structure"`
2695}
2696
2697// String returns the string representation
2698func (s AnomalyInstance) String() string {
2699	return awsutil.Prettify(s)
2700}
2701
2702// GoString returns the string representation
2703func (s AnomalyInstance) GoString() string {
2704	return s.String()
2705}
2706
2707// SetEndTime sets the EndTime field's value.
2708func (s *AnomalyInstance) SetEndTime(v time.Time) *AnomalyInstance {
2709	s.EndTime = &v
2710	return s
2711}
2712
2713// SetId sets the Id field's value.
2714func (s *AnomalyInstance) SetId(v string) *AnomalyInstance {
2715	s.Id = &v
2716	return s
2717}
2718
2719// SetStartTime sets the StartTime field's value.
2720func (s *AnomalyInstance) SetStartTime(v time.Time) *AnomalyInstance {
2721	s.StartTime = &v
2722	return s
2723}
2724
2725// SetUserFeedback sets the UserFeedback field's value.
2726func (s *AnomalyInstance) SetUserFeedback(v *UserFeedback) *AnomalyInstance {
2727	s.UserFeedback = v
2728	return s
2729}
2730
2731// The structure representing the BatchGetFrameMetricDataRequest.
2732type BatchGetFrameMetricDataInput struct {
2733	_ struct{} `type:"structure"`
2734
2735	// The end time of the time period for the returned time series values. This
2736	// is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2737	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2738	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
2739
2740	// The details of the metrics that are used to request a time series of values.
2741	// The metric includes the name of the frame, the aggregation type to calculate
2742	// the metric value for the frame, and the thread states to use to get the count
2743	// for the metric value of the frame.
2744	FrameMetrics []*FrameMetric `locationName:"frameMetrics" type:"list"`
2745
2746	// The duration of the frame metrics used to return the time series values.
2747	// Specify using the ISO 8601 format. The maximum period duration is one day
2748	// (PT24H or P1D).
2749	Period *string `location:"querystring" locationName:"period" min:"1" type:"string"`
2750
2751	// The name of the profiling group associated with the the frame metrics used
2752	// to return the time series values.
2753	//
2754	// ProfilingGroupName is a required field
2755	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
2756
2757	// The start time of the time period for the frame metrics used to return the
2758	// time series values. This is specified using the ISO 8601 format. For example,
2759	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
2760	// PM UTC.
2761	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
2762
2763	// The requested resolution of time steps for the returned time series of values.
2764	// If the requested target resolution is not available due to data not being
2765	// retained we provide a best effort result by falling back to the most granular
2766	// available resolution after the target resolution. There are 3 valid values.
2767	//
2768	//    * P1D — 1 day
2769	//
2770	//    * PT1H — 1 hour
2771	//
2772	//    * PT5M — 5 minutes
2773	TargetResolution *string `location:"querystring" locationName:"targetResolution" type:"string" enum:"AggregationPeriod"`
2774}
2775
2776// String returns the string representation
2777func (s BatchGetFrameMetricDataInput) String() string {
2778	return awsutil.Prettify(s)
2779}
2780
2781// GoString returns the string representation
2782func (s BatchGetFrameMetricDataInput) GoString() string {
2783	return s.String()
2784}
2785
2786// Validate inspects the fields of the type to determine if they are valid.
2787func (s *BatchGetFrameMetricDataInput) Validate() error {
2788	invalidParams := request.ErrInvalidParams{Context: "BatchGetFrameMetricDataInput"}
2789	if s.Period != nil && len(*s.Period) < 1 {
2790		invalidParams.Add(request.NewErrParamMinLen("Period", 1))
2791	}
2792	if s.ProfilingGroupName == nil {
2793		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
2794	}
2795	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
2796		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
2797	}
2798	if s.FrameMetrics != nil {
2799		for i, v := range s.FrameMetrics {
2800			if v == nil {
2801				continue
2802			}
2803			if err := v.Validate(); err != nil {
2804				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FrameMetrics", i), err.(request.ErrInvalidParams))
2805			}
2806		}
2807	}
2808
2809	if invalidParams.Len() > 0 {
2810		return invalidParams
2811	}
2812	return nil
2813}
2814
2815// SetEndTime sets the EndTime field's value.
2816func (s *BatchGetFrameMetricDataInput) SetEndTime(v time.Time) *BatchGetFrameMetricDataInput {
2817	s.EndTime = &v
2818	return s
2819}
2820
2821// SetFrameMetrics sets the FrameMetrics field's value.
2822func (s *BatchGetFrameMetricDataInput) SetFrameMetrics(v []*FrameMetric) *BatchGetFrameMetricDataInput {
2823	s.FrameMetrics = v
2824	return s
2825}
2826
2827// SetPeriod sets the Period field's value.
2828func (s *BatchGetFrameMetricDataInput) SetPeriod(v string) *BatchGetFrameMetricDataInput {
2829	s.Period = &v
2830	return s
2831}
2832
2833// SetProfilingGroupName sets the ProfilingGroupName field's value.
2834func (s *BatchGetFrameMetricDataInput) SetProfilingGroupName(v string) *BatchGetFrameMetricDataInput {
2835	s.ProfilingGroupName = &v
2836	return s
2837}
2838
2839// SetStartTime sets the StartTime field's value.
2840func (s *BatchGetFrameMetricDataInput) SetStartTime(v time.Time) *BatchGetFrameMetricDataInput {
2841	s.StartTime = &v
2842	return s
2843}
2844
2845// SetTargetResolution sets the TargetResolution field's value.
2846func (s *BatchGetFrameMetricDataInput) SetTargetResolution(v string) *BatchGetFrameMetricDataInput {
2847	s.TargetResolution = &v
2848	return s
2849}
2850
2851// The structure representing the BatchGetFrameMetricDataResponse.
2852type BatchGetFrameMetricDataOutput struct {
2853	_ struct{} `type:"structure"`
2854
2855	// The end time of the time period for the returned time series values. This
2856	// is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2857	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2858	//
2859	// EndTime is a required field
2860	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
2861
2862	// List of instances, or time steps, in the time series. For example, if the
2863	// period is one day (PT24H)), and the resolution is five minutes (PT5M), then
2864	// there are 288 endTimes in the list that are each five minutes appart.
2865	//
2866	// EndTimes is a required field
2867	EndTimes []*TimestampStructure `locationName:"endTimes" type:"list" required:"true"`
2868
2869	// Details of the metrics to request a time series of values. The metric includes
2870	// the name of the frame, the aggregation type to calculate the metric value
2871	// for the frame, and the thread states to use to get the count for the metric
2872	// value of the frame.
2873	//
2874	// FrameMetricData is a required field
2875	FrameMetricData []*FrameMetricDatum `locationName:"frameMetricData" type:"list" required:"true"`
2876
2877	// Resolution or granularity of the profile data used to generate the time series.
2878	// This is the value used to jump through time steps in a time series. There
2879	// are 3 valid values.
2880	//
2881	//    * P1D — 1 day
2882	//
2883	//    * PT1H — 1 hour
2884	//
2885	//    * PT5M — 5 minutes
2886	//
2887	// Resolution is a required field
2888	Resolution *string `locationName:"resolution" type:"string" required:"true" enum:"AggregationPeriod"`
2889
2890	// The start time of the time period for the returned time series values. This
2891	// is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2892	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2893	//
2894	// StartTime is a required field
2895	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
2896
2897	// List of instances which remained unprocessed. This will create a missing
2898	// time step in the list of end times.
2899	//
2900	// UnprocessedEndTimes is a required field
2901	UnprocessedEndTimes map[string][]*TimestampStructure `locationName:"unprocessedEndTimes" type:"map" required:"true"`
2902}
2903
2904// String returns the string representation
2905func (s BatchGetFrameMetricDataOutput) String() string {
2906	return awsutil.Prettify(s)
2907}
2908
2909// GoString returns the string representation
2910func (s BatchGetFrameMetricDataOutput) GoString() string {
2911	return s.String()
2912}
2913
2914// SetEndTime sets the EndTime field's value.
2915func (s *BatchGetFrameMetricDataOutput) SetEndTime(v time.Time) *BatchGetFrameMetricDataOutput {
2916	s.EndTime = &v
2917	return s
2918}
2919
2920// SetEndTimes sets the EndTimes field's value.
2921func (s *BatchGetFrameMetricDataOutput) SetEndTimes(v []*TimestampStructure) *BatchGetFrameMetricDataOutput {
2922	s.EndTimes = v
2923	return s
2924}
2925
2926// SetFrameMetricData sets the FrameMetricData field's value.
2927func (s *BatchGetFrameMetricDataOutput) SetFrameMetricData(v []*FrameMetricDatum) *BatchGetFrameMetricDataOutput {
2928	s.FrameMetricData = v
2929	return s
2930}
2931
2932// SetResolution sets the Resolution field's value.
2933func (s *BatchGetFrameMetricDataOutput) SetResolution(v string) *BatchGetFrameMetricDataOutput {
2934	s.Resolution = &v
2935	return s
2936}
2937
2938// SetStartTime sets the StartTime field's value.
2939func (s *BatchGetFrameMetricDataOutput) SetStartTime(v time.Time) *BatchGetFrameMetricDataOutput {
2940	s.StartTime = &v
2941	return s
2942}
2943
2944// SetUnprocessedEndTimes sets the UnprocessedEndTimes field's value.
2945func (s *BatchGetFrameMetricDataOutput) SetUnprocessedEndTimes(v map[string][]*TimestampStructure) *BatchGetFrameMetricDataOutput {
2946	s.UnprocessedEndTimes = v
2947	return s
2948}
2949
2950// Notification medium for users to get alerted for events that occur in application
2951// profile. We support SNS topic as a notification channel.
2952type Channel struct {
2953	_ struct{} `type:"structure"`
2954
2955	// List of publishers for different type of events that may be detected in an
2956	// application from the profile. Anomaly detection is the only event publisher
2957	// in Profiler.
2958	//
2959	// EventPublishers is a required field
2960	EventPublishers []*string `locationName:"eventPublishers" min:"1" type:"list" required:"true"`
2961
2962	// Unique identifier for each Channel in the notification configuration of a
2963	// Profiling Group. A random UUID for channelId is used when adding a channel
2964	// to the notification configuration if not specified in the request.
2965	Id *string `locationName:"id" type:"string"`
2966
2967	// Unique arn of the resource to be used for notifications. We support a valid
2968	// SNS topic arn as a channel uri.
2969	//
2970	// Uri is a required field
2971	Uri *string `locationName:"uri" type:"string" required:"true"`
2972}
2973
2974// String returns the string representation
2975func (s Channel) String() string {
2976	return awsutil.Prettify(s)
2977}
2978
2979// GoString returns the string representation
2980func (s Channel) GoString() string {
2981	return s.String()
2982}
2983
2984// Validate inspects the fields of the type to determine if they are valid.
2985func (s *Channel) Validate() error {
2986	invalidParams := request.ErrInvalidParams{Context: "Channel"}
2987	if s.EventPublishers == nil {
2988		invalidParams.Add(request.NewErrParamRequired("EventPublishers"))
2989	}
2990	if s.EventPublishers != nil && len(s.EventPublishers) < 1 {
2991		invalidParams.Add(request.NewErrParamMinLen("EventPublishers", 1))
2992	}
2993	if s.Uri == nil {
2994		invalidParams.Add(request.NewErrParamRequired("Uri"))
2995	}
2996
2997	if invalidParams.Len() > 0 {
2998		return invalidParams
2999	}
3000	return nil
3001}
3002
3003// SetEventPublishers sets the EventPublishers field's value.
3004func (s *Channel) SetEventPublishers(v []*string) *Channel {
3005	s.EventPublishers = v
3006	return s
3007}
3008
3009// SetId sets the Id field's value.
3010func (s *Channel) SetId(v string) *Channel {
3011	s.Id = &v
3012	return s
3013}
3014
3015// SetUri sets the Uri field's value.
3016func (s *Channel) SetUri(v string) *Channel {
3017	s.Uri = &v
3018	return s
3019}
3020
3021// The structure representing the configureAgentRequest.
3022type ConfigureAgentInput struct {
3023	_ struct{} `type:"structure"`
3024
3025	// A universally unique identifier (UUID) for a profiling instance. For example,
3026	// if the profiling instance is an Amazon EC2 instance, it is the instance ID.
3027	// If it is an AWS Fargate container, it is the container's task ID.
3028	FleetInstanceId *string `locationName:"fleetInstanceId" min:"1" type:"string"`
3029
3030	// Metadata captured about the compute platform the agent is running on. It
3031	// includes information about sampling and reporting. The valid fields are:
3032	//
3033	//    * COMPUTE_PLATFORM - The compute platform on which the agent is running
3034	//
3035	//    * AGENT_ID - The ID for an agent instance.
3036	//
3037	//    * AWS_REQUEST_ID - The AWS request ID of a Lambda invocation.
3038	//
3039	//    * EXECUTION_ENVIRONMENT - The execution environment a Lambda function
3040	//    is running on.
3041	//
3042	//    * LAMBDA_FUNCTION_ARN - The Amazon Resource Name (ARN) that is used to
3043	//    invoke a Lambda function.
3044	//
3045	//    * LAMBDA_MEMORY_LIMIT_IN_MB - The memory allocated to a Lambda function.
3046	//
3047	//    * LAMBDA_REMAINING_TIME_IN_MILLISECONDS - The time in milliseconds before
3048	//    execution of a Lambda function times out.
3049	//
3050	//    * LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS - The time in milliseconds
3051	//    between two invocations of a Lambda function.
3052	//
3053	//    * LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS - The time in milliseconds
3054	//    for the previous Lambda invocation.
3055	Metadata map[string]*string `locationName:"metadata" type:"map"`
3056
3057	// The name of the profiling group for which the configured agent is collecting
3058	// profiling data.
3059	//
3060	// ProfilingGroupName is a required field
3061	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3062}
3063
3064// String returns the string representation
3065func (s ConfigureAgentInput) String() string {
3066	return awsutil.Prettify(s)
3067}
3068
3069// GoString returns the string representation
3070func (s ConfigureAgentInput) GoString() string {
3071	return s.String()
3072}
3073
3074// Validate inspects the fields of the type to determine if they are valid.
3075func (s *ConfigureAgentInput) Validate() error {
3076	invalidParams := request.ErrInvalidParams{Context: "ConfigureAgentInput"}
3077	if s.FleetInstanceId != nil && len(*s.FleetInstanceId) < 1 {
3078		invalidParams.Add(request.NewErrParamMinLen("FleetInstanceId", 1))
3079	}
3080	if s.ProfilingGroupName == nil {
3081		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3082	}
3083	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3084		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3085	}
3086
3087	if invalidParams.Len() > 0 {
3088		return invalidParams
3089	}
3090	return nil
3091}
3092
3093// SetFleetInstanceId sets the FleetInstanceId field's value.
3094func (s *ConfigureAgentInput) SetFleetInstanceId(v string) *ConfigureAgentInput {
3095	s.FleetInstanceId = &v
3096	return s
3097}
3098
3099// SetMetadata sets the Metadata field's value.
3100func (s *ConfigureAgentInput) SetMetadata(v map[string]*string) *ConfigureAgentInput {
3101	s.Metadata = v
3102	return s
3103}
3104
3105// SetProfilingGroupName sets the ProfilingGroupName field's value.
3106func (s *ConfigureAgentInput) SetProfilingGroupName(v string) *ConfigureAgentInput {
3107	s.ProfilingGroupName = &v
3108	return s
3109}
3110
3111// The structure representing the configureAgentResponse.
3112type ConfigureAgentOutput struct {
3113	_ struct{} `type:"structure" payload:"Configuration"`
3114
3115	// An AgentConfiguration (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html)
3116	// object that specifies if an agent profiles or not and for how long to return
3117	// profiling data.
3118	//
3119	// Configuration is a required field
3120	Configuration *AgentConfiguration `locationName:"configuration" type:"structure" required:"true"`
3121}
3122
3123// String returns the string representation
3124func (s ConfigureAgentOutput) String() string {
3125	return awsutil.Prettify(s)
3126}
3127
3128// GoString returns the string representation
3129func (s ConfigureAgentOutput) GoString() string {
3130	return s.String()
3131}
3132
3133// SetConfiguration sets the Configuration field's value.
3134func (s *ConfigureAgentOutput) SetConfiguration(v *AgentConfiguration) *ConfigureAgentOutput {
3135	s.Configuration = v
3136	return s
3137}
3138
3139// The requested operation would cause a conflict with the current state of
3140// a service resource associated with the request. Resolve the conflict before
3141// retrying this request.
3142type ConflictException struct {
3143	_            struct{}                  `type:"structure"`
3144	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3145
3146	Message_ *string `locationName:"message" type:"string"`
3147}
3148
3149// String returns the string representation
3150func (s ConflictException) String() string {
3151	return awsutil.Prettify(s)
3152}
3153
3154// GoString returns the string representation
3155func (s ConflictException) GoString() string {
3156	return s.String()
3157}
3158
3159func newErrorConflictException(v protocol.ResponseMetadata) error {
3160	return &ConflictException{
3161		RespMetadata: v,
3162	}
3163}
3164
3165// Code returns the exception type name.
3166func (s *ConflictException) Code() string {
3167	return "ConflictException"
3168}
3169
3170// Message returns the exception's message.
3171func (s *ConflictException) Message() string {
3172	if s.Message_ != nil {
3173		return *s.Message_
3174	}
3175	return ""
3176}
3177
3178// OrigErr always returns nil, satisfies awserr.Error interface.
3179func (s *ConflictException) OrigErr() error {
3180	return nil
3181}
3182
3183func (s *ConflictException) Error() string {
3184	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3185}
3186
3187// Status code returns the HTTP status code for the request's response error.
3188func (s *ConflictException) StatusCode() int {
3189	return s.RespMetadata.StatusCode
3190}
3191
3192// RequestID returns the service's response RequestID for request.
3193func (s *ConflictException) RequestID() string {
3194	return s.RespMetadata.RequestID
3195}
3196
3197// The structure representing the createProfiliingGroupRequest.
3198type CreateProfilingGroupInput struct {
3199	_ struct{} `type:"structure"`
3200
3201	// Specifies whether profiling is enabled or disabled for the created profiling
3202	// group.
3203	AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"`
3204
3205	// Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to
3206	// prevent the accidental creation of duplicate profiling groups if there are
3207	// failures and retries.
3208	ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`
3209
3210	// The compute platform of the profiling group. Use AWSLambda if your application
3211	// runs on AWS Lambda. Use Default if your application runs on a compute platform
3212	// that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server,
3213	// or a different platform. If not specified, Default is used.
3214	ComputePlatform *string `locationName:"computePlatform" type:"string" enum:"ComputePlatform"`
3215
3216	// The name of the profiling group to create.
3217	//
3218	// ProfilingGroupName is a required field
3219	ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3220
3221	// A list of tags to add to the created profiling group.
3222	Tags map[string]*string `locationName:"tags" type:"map"`
3223}
3224
3225// String returns the string representation
3226func (s CreateProfilingGroupInput) String() string {
3227	return awsutil.Prettify(s)
3228}
3229
3230// GoString returns the string representation
3231func (s CreateProfilingGroupInput) GoString() string {
3232	return s.String()
3233}
3234
3235// Validate inspects the fields of the type to determine if they are valid.
3236func (s *CreateProfilingGroupInput) Validate() error {
3237	invalidParams := request.ErrInvalidParams{Context: "CreateProfilingGroupInput"}
3238	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
3239		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
3240	}
3241	if s.ProfilingGroupName == nil {
3242		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3243	}
3244	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3245		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3246	}
3247	if s.AgentOrchestrationConfig != nil {
3248		if err := s.AgentOrchestrationConfig.Validate(); err != nil {
3249			invalidParams.AddNested("AgentOrchestrationConfig", err.(request.ErrInvalidParams))
3250		}
3251	}
3252
3253	if invalidParams.Len() > 0 {
3254		return invalidParams
3255	}
3256	return nil
3257}
3258
3259// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
3260func (s *CreateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *CreateProfilingGroupInput {
3261	s.AgentOrchestrationConfig = v
3262	return s
3263}
3264
3265// SetClientToken sets the ClientToken field's value.
3266func (s *CreateProfilingGroupInput) SetClientToken(v string) *CreateProfilingGroupInput {
3267	s.ClientToken = &v
3268	return s
3269}
3270
3271// SetComputePlatform sets the ComputePlatform field's value.
3272func (s *CreateProfilingGroupInput) SetComputePlatform(v string) *CreateProfilingGroupInput {
3273	s.ComputePlatform = &v
3274	return s
3275}
3276
3277// SetProfilingGroupName sets the ProfilingGroupName field's value.
3278func (s *CreateProfilingGroupInput) SetProfilingGroupName(v string) *CreateProfilingGroupInput {
3279	s.ProfilingGroupName = &v
3280	return s
3281}
3282
3283// SetTags sets the Tags field's value.
3284func (s *CreateProfilingGroupInput) SetTags(v map[string]*string) *CreateProfilingGroupInput {
3285	s.Tags = v
3286	return s
3287}
3288
3289// The structure representing the createProfilingGroupResponse.
3290type CreateProfilingGroupOutput struct {
3291	_ struct{} `type:"structure" payload:"ProfilingGroup"`
3292
3293	// The returned ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
3294	// object that contains information about the created profiling group.
3295	//
3296	// ProfilingGroup is a required field
3297	ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"`
3298}
3299
3300// String returns the string representation
3301func (s CreateProfilingGroupOutput) String() string {
3302	return awsutil.Prettify(s)
3303}
3304
3305// GoString returns the string representation
3306func (s CreateProfilingGroupOutput) GoString() string {
3307	return s.String()
3308}
3309
3310// SetProfilingGroup sets the ProfilingGroup field's value.
3311func (s *CreateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *CreateProfilingGroupOutput {
3312	s.ProfilingGroup = v
3313	return s
3314}
3315
3316// The structure representing the deleteProfilingGroupRequest.
3317type DeleteProfilingGroupInput struct {
3318	_ struct{} `type:"structure"`
3319
3320	// The name of the profiling group to delete.
3321	//
3322	// ProfilingGroupName is a required field
3323	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3324}
3325
3326// String returns the string representation
3327func (s DeleteProfilingGroupInput) String() string {
3328	return awsutil.Prettify(s)
3329}
3330
3331// GoString returns the string representation
3332func (s DeleteProfilingGroupInput) GoString() string {
3333	return s.String()
3334}
3335
3336// Validate inspects the fields of the type to determine if they are valid.
3337func (s *DeleteProfilingGroupInput) Validate() error {
3338	invalidParams := request.ErrInvalidParams{Context: "DeleteProfilingGroupInput"}
3339	if s.ProfilingGroupName == nil {
3340		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3341	}
3342	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3343		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3344	}
3345
3346	if invalidParams.Len() > 0 {
3347		return invalidParams
3348	}
3349	return nil
3350}
3351
3352// SetProfilingGroupName sets the ProfilingGroupName field's value.
3353func (s *DeleteProfilingGroupInput) SetProfilingGroupName(v string) *DeleteProfilingGroupInput {
3354	s.ProfilingGroupName = &v
3355	return s
3356}
3357
3358// The structure representing the deleteProfilingGroupResponse.
3359type DeleteProfilingGroupOutput struct {
3360	_ struct{} `type:"structure"`
3361}
3362
3363// String returns the string representation
3364func (s DeleteProfilingGroupOutput) String() string {
3365	return awsutil.Prettify(s)
3366}
3367
3368// GoString returns the string representation
3369func (s DeleteProfilingGroupOutput) GoString() string {
3370	return s.String()
3371}
3372
3373// The structure representing the describeProfilingGroupRequest.
3374type DescribeProfilingGroupInput struct {
3375	_ struct{} `type:"structure"`
3376
3377	// The name of the profiling group to get information about.
3378	//
3379	// ProfilingGroupName is a required field
3380	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3381}
3382
3383// String returns the string representation
3384func (s DescribeProfilingGroupInput) String() string {
3385	return awsutil.Prettify(s)
3386}
3387
3388// GoString returns the string representation
3389func (s DescribeProfilingGroupInput) GoString() string {
3390	return s.String()
3391}
3392
3393// Validate inspects the fields of the type to determine if they are valid.
3394func (s *DescribeProfilingGroupInput) Validate() error {
3395	invalidParams := request.ErrInvalidParams{Context: "DescribeProfilingGroupInput"}
3396	if s.ProfilingGroupName == nil {
3397		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3398	}
3399	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3400		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3401	}
3402
3403	if invalidParams.Len() > 0 {
3404		return invalidParams
3405	}
3406	return nil
3407}
3408
3409// SetProfilingGroupName sets the ProfilingGroupName field's value.
3410func (s *DescribeProfilingGroupInput) SetProfilingGroupName(v string) *DescribeProfilingGroupInput {
3411	s.ProfilingGroupName = &v
3412	return s
3413}
3414
3415// The structure representing the describeProfilingGroupResponse.
3416type DescribeProfilingGroupOutput struct {
3417	_ struct{} `type:"structure" payload:"ProfilingGroup"`
3418
3419	// The returned ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
3420	// object that contains information about the requested profiling group.
3421	//
3422	// ProfilingGroup is a required field
3423	ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"`
3424}
3425
3426// String returns the string representation
3427func (s DescribeProfilingGroupOutput) String() string {
3428	return awsutil.Prettify(s)
3429}
3430
3431// GoString returns the string representation
3432func (s DescribeProfilingGroupOutput) GoString() string {
3433	return s.String()
3434}
3435
3436// SetProfilingGroup sets the ProfilingGroup field's value.
3437func (s *DescribeProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *DescribeProfilingGroupOutput {
3438	s.ProfilingGroup = v
3439	return s
3440}
3441
3442// Information about potential recommendations that might be created from the
3443// analysis of profiling data.
3444type FindingsReportSummary struct {
3445	_ struct{} `type:"structure"`
3446
3447	// The universally unique identifier (UUID) of the recommendation report.
3448	Id *string `locationName:"id" type:"string"`
3449
3450	// The end time of the period during which the metric is flagged as anomalous.
3451	// This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
3452	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
3453	ProfileEndTime *time.Time `locationName:"profileEndTime" type:"timestamp" timestampFormat:"iso8601"`
3454
3455	// The start time of the profile the analysis data is about. This is specified
3456	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
3457	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
3458	ProfileStartTime *time.Time `locationName:"profileStartTime" type:"timestamp" timestampFormat:"iso8601"`
3459
3460	// The name of the profiling group that is associated with the analysis data.
3461	ProfilingGroupName *string `locationName:"profilingGroupName" type:"string"`
3462
3463	// The total number of different recommendations that were found by the analysis.
3464	TotalNumberOfFindings *int64 `locationName:"totalNumberOfFindings" type:"integer"`
3465}
3466
3467// String returns the string representation
3468func (s FindingsReportSummary) String() string {
3469	return awsutil.Prettify(s)
3470}
3471
3472// GoString returns the string representation
3473func (s FindingsReportSummary) GoString() string {
3474	return s.String()
3475}
3476
3477// SetId sets the Id field's value.
3478func (s *FindingsReportSummary) SetId(v string) *FindingsReportSummary {
3479	s.Id = &v
3480	return s
3481}
3482
3483// SetProfileEndTime sets the ProfileEndTime field's value.
3484func (s *FindingsReportSummary) SetProfileEndTime(v time.Time) *FindingsReportSummary {
3485	s.ProfileEndTime = &v
3486	return s
3487}
3488
3489// SetProfileStartTime sets the ProfileStartTime field's value.
3490func (s *FindingsReportSummary) SetProfileStartTime(v time.Time) *FindingsReportSummary {
3491	s.ProfileStartTime = &v
3492	return s
3493}
3494
3495// SetProfilingGroupName sets the ProfilingGroupName field's value.
3496func (s *FindingsReportSummary) SetProfilingGroupName(v string) *FindingsReportSummary {
3497	s.ProfilingGroupName = &v
3498	return s
3499}
3500
3501// SetTotalNumberOfFindings sets the TotalNumberOfFindings field's value.
3502func (s *FindingsReportSummary) SetTotalNumberOfFindings(v int64) *FindingsReportSummary {
3503	s.TotalNumberOfFindings = &v
3504	return s
3505}
3506
3507// The frame name, metric type, and thread states. These are used to derive
3508// the value of the metric for the frame.
3509type FrameMetric struct {
3510	_ struct{} `type:"structure"`
3511
3512	// Name of the method common across the multiple occurrences of a frame in an
3513	// application profile.
3514	//
3515	// FrameName is a required field
3516	FrameName *string `locationName:"frameName" type:"string" required:"true"`
3517
3518	// List of application runtime thread states used to get the counts for a frame
3519	// a derive a metric value.
3520	//
3521	// ThreadStates is a required field
3522	ThreadStates []*string `locationName:"threadStates" type:"list" required:"true"`
3523
3524	// A type of aggregation that specifies how a metric for a frame is analyzed.
3525	// The supported value AggregatedRelativeTotalTime is an aggregation of the
3526	// metric value for one frame that is calculated across the occurrences of all
3527	// frames in a profile.
3528	//
3529	// Type is a required field
3530	Type *string `locationName:"type" type:"string" required:"true" enum:"MetricType"`
3531}
3532
3533// String returns the string representation
3534func (s FrameMetric) String() string {
3535	return awsutil.Prettify(s)
3536}
3537
3538// GoString returns the string representation
3539func (s FrameMetric) GoString() string {
3540	return s.String()
3541}
3542
3543// Validate inspects the fields of the type to determine if they are valid.
3544func (s *FrameMetric) Validate() error {
3545	invalidParams := request.ErrInvalidParams{Context: "FrameMetric"}
3546	if s.FrameName == nil {
3547		invalidParams.Add(request.NewErrParamRequired("FrameName"))
3548	}
3549	if s.ThreadStates == nil {
3550		invalidParams.Add(request.NewErrParamRequired("ThreadStates"))
3551	}
3552	if s.Type == nil {
3553		invalidParams.Add(request.NewErrParamRequired("Type"))
3554	}
3555
3556	if invalidParams.Len() > 0 {
3557		return invalidParams
3558	}
3559	return nil
3560}
3561
3562// SetFrameName sets the FrameName field's value.
3563func (s *FrameMetric) SetFrameName(v string) *FrameMetric {
3564	s.FrameName = &v
3565	return s
3566}
3567
3568// SetThreadStates sets the ThreadStates field's value.
3569func (s *FrameMetric) SetThreadStates(v []*string) *FrameMetric {
3570	s.ThreadStates = v
3571	return s
3572}
3573
3574// SetType sets the Type field's value.
3575func (s *FrameMetric) SetType(v string) *FrameMetric {
3576	s.Type = &v
3577	return s
3578}
3579
3580// Information about a frame metric and its values.
3581type FrameMetricDatum struct {
3582	_ struct{} `type:"structure"`
3583
3584	// The frame name, metric type, and thread states. These are used to derive
3585	// the value of the metric for the frame.
3586	//
3587	// FrameMetric is a required field
3588	FrameMetric *FrameMetric `locationName:"frameMetric" type:"structure" required:"true"`
3589
3590	// A list of values that are associated with a frame metric.
3591	//
3592	// Values is a required field
3593	Values []*float64 `locationName:"values" type:"list" required:"true"`
3594}
3595
3596// String returns the string representation
3597func (s FrameMetricDatum) String() string {
3598	return awsutil.Prettify(s)
3599}
3600
3601// GoString returns the string representation
3602func (s FrameMetricDatum) GoString() string {
3603	return s.String()
3604}
3605
3606// SetFrameMetric sets the FrameMetric field's value.
3607func (s *FrameMetricDatum) SetFrameMetric(v *FrameMetric) *FrameMetricDatum {
3608	s.FrameMetric = v
3609	return s
3610}
3611
3612// SetValues sets the Values field's value.
3613func (s *FrameMetricDatum) SetValues(v []*float64) *FrameMetricDatum {
3614	s.Values = v
3615	return s
3616}
3617
3618// The structure representing the GetFindingsReportAccountSummaryRequest.
3619type GetFindingsReportAccountSummaryInput struct {
3620	_ struct{} `type:"structure"`
3621
3622	// A Boolean value indicating whether to only return reports from daily profiles.
3623	// If set to True, only analysis data from daily profiles is returned. If set
3624	// to False, analysis data is returned from smaller time windows (for example,
3625	// one hour).
3626	DailyReportsOnly *bool `location:"querystring" locationName:"dailyReportsOnly" type:"boolean"`
3627
3628	// The maximum number of results returned by GetFindingsReportAccountSummary
3629	// in paginated output. When this parameter is used, GetFindingsReportAccountSummary
3630	// only returns maxResults results in a single page along with a nextToken response
3631	// element. The remaining results of the initial request can be seen by sending
3632	// another GetFindingsReportAccountSummary request with the returned nextToken
3633	// value.
3634	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3635
3636	// The nextToken value returned from a previous paginated GetFindingsReportAccountSummary
3637	// request where maxResults was used and the results exceeded the value of that
3638	// parameter. Pagination continues from the end of the previous results that
3639	// returned the nextToken value.
3640	//
3641	// This token should be treated as an opaque identifier that is only used to
3642	// retrieve the next items in a list and not for other programmatic purposes.
3643	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
3644}
3645
3646// String returns the string representation
3647func (s GetFindingsReportAccountSummaryInput) String() string {
3648	return awsutil.Prettify(s)
3649}
3650
3651// GoString returns the string representation
3652func (s GetFindingsReportAccountSummaryInput) GoString() string {
3653	return s.String()
3654}
3655
3656// Validate inspects the fields of the type to determine if they are valid.
3657func (s *GetFindingsReportAccountSummaryInput) Validate() error {
3658	invalidParams := request.ErrInvalidParams{Context: "GetFindingsReportAccountSummaryInput"}
3659	if s.MaxResults != nil && *s.MaxResults < 1 {
3660		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3661	}
3662	if s.NextToken != nil && len(*s.NextToken) < 1 {
3663		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3664	}
3665
3666	if invalidParams.Len() > 0 {
3667		return invalidParams
3668	}
3669	return nil
3670}
3671
3672// SetDailyReportsOnly sets the DailyReportsOnly field's value.
3673func (s *GetFindingsReportAccountSummaryInput) SetDailyReportsOnly(v bool) *GetFindingsReportAccountSummaryInput {
3674	s.DailyReportsOnly = &v
3675	return s
3676}
3677
3678// SetMaxResults sets the MaxResults field's value.
3679func (s *GetFindingsReportAccountSummaryInput) SetMaxResults(v int64) *GetFindingsReportAccountSummaryInput {
3680	s.MaxResults = &v
3681	return s
3682}
3683
3684// SetNextToken sets the NextToken field's value.
3685func (s *GetFindingsReportAccountSummaryInput) SetNextToken(v string) *GetFindingsReportAccountSummaryInput {
3686	s.NextToken = &v
3687	return s
3688}
3689
3690// The structure representing the GetFindingsReportAccountSummaryResponse.
3691type GetFindingsReportAccountSummaryOutput struct {
3692	_ struct{} `type:"structure"`
3693
3694	// The nextToken value to include in a future GetFindingsReportAccountSummary
3695	// request. When the results of a GetFindingsReportAccountSummary request exceed
3696	// maxResults, this value can be used to retrieve the next page of results.
3697	// This value is null when there are no more results to return.
3698	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3699
3700	// The return list of FindingsReportSummary (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html)
3701	// objects taht contain summaries of analysis results for all profiling groups
3702	// in your AWS account.
3703	//
3704	// ReportSummaries is a required field
3705	ReportSummaries []*FindingsReportSummary `locationName:"reportSummaries" type:"list" required:"true"`
3706}
3707
3708// String returns the string representation
3709func (s GetFindingsReportAccountSummaryOutput) String() string {
3710	return awsutil.Prettify(s)
3711}
3712
3713// GoString returns the string representation
3714func (s GetFindingsReportAccountSummaryOutput) GoString() string {
3715	return s.String()
3716}
3717
3718// SetNextToken sets the NextToken field's value.
3719func (s *GetFindingsReportAccountSummaryOutput) SetNextToken(v string) *GetFindingsReportAccountSummaryOutput {
3720	s.NextToken = &v
3721	return s
3722}
3723
3724// SetReportSummaries sets the ReportSummaries field's value.
3725func (s *GetFindingsReportAccountSummaryOutput) SetReportSummaries(v []*FindingsReportSummary) *GetFindingsReportAccountSummaryOutput {
3726	s.ReportSummaries = v
3727	return s
3728}
3729
3730// The structure representing the GetNotificationConfigurationRequest.
3731type GetNotificationConfigurationInput struct {
3732	_ struct{} `type:"structure"`
3733
3734	// The name of the profiling group we want to get the notification configuration
3735	// for.
3736	//
3737	// ProfilingGroupName is a required field
3738	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3739}
3740
3741// String returns the string representation
3742func (s GetNotificationConfigurationInput) String() string {
3743	return awsutil.Prettify(s)
3744}
3745
3746// GoString returns the string representation
3747func (s GetNotificationConfigurationInput) GoString() string {
3748	return s.String()
3749}
3750
3751// Validate inspects the fields of the type to determine if they are valid.
3752func (s *GetNotificationConfigurationInput) Validate() error {
3753	invalidParams := request.ErrInvalidParams{Context: "GetNotificationConfigurationInput"}
3754	if s.ProfilingGroupName == nil {
3755		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3756	}
3757	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3758		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3759	}
3760
3761	if invalidParams.Len() > 0 {
3762		return invalidParams
3763	}
3764	return nil
3765}
3766
3767// SetProfilingGroupName sets the ProfilingGroupName field's value.
3768func (s *GetNotificationConfigurationInput) SetProfilingGroupName(v string) *GetNotificationConfigurationInput {
3769	s.ProfilingGroupName = &v
3770	return s
3771}
3772
3773// The structure representing the GetNotificationConfigurationResponse.
3774type GetNotificationConfigurationOutput struct {
3775	_ struct{} `type:"structure"`
3776
3777	// The current notification configuration for this profiling group.
3778	//
3779	// NotificationConfiguration is a required field
3780	NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure" required:"true"`
3781}
3782
3783// String returns the string representation
3784func (s GetNotificationConfigurationOutput) String() string {
3785	return awsutil.Prettify(s)
3786}
3787
3788// GoString returns the string representation
3789func (s GetNotificationConfigurationOutput) GoString() string {
3790	return s.String()
3791}
3792
3793// SetNotificationConfiguration sets the NotificationConfiguration field's value.
3794func (s *GetNotificationConfigurationOutput) SetNotificationConfiguration(v *NotificationConfiguration) *GetNotificationConfigurationOutput {
3795	s.NotificationConfiguration = v
3796	return s
3797}
3798
3799// The structure representing the getPolicyRequest.
3800type GetPolicyInput struct {
3801	_ struct{} `type:"structure"`
3802
3803	// The name of the profiling group.
3804	//
3805	// ProfilingGroupName is a required field
3806	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3807}
3808
3809// String returns the string representation
3810func (s GetPolicyInput) String() string {
3811	return awsutil.Prettify(s)
3812}
3813
3814// GoString returns the string representation
3815func (s GetPolicyInput) GoString() string {
3816	return s.String()
3817}
3818
3819// Validate inspects the fields of the type to determine if they are valid.
3820func (s *GetPolicyInput) Validate() error {
3821	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
3822	if s.ProfilingGroupName == nil {
3823		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3824	}
3825	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3826		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3827	}
3828
3829	if invalidParams.Len() > 0 {
3830		return invalidParams
3831	}
3832	return nil
3833}
3834
3835// SetProfilingGroupName sets the ProfilingGroupName field's value.
3836func (s *GetPolicyInput) SetProfilingGroupName(v string) *GetPolicyInput {
3837	s.ProfilingGroupName = &v
3838	return s
3839}
3840
3841// The structure representing the getPolicyResponse.
3842type GetPolicyOutput struct {
3843	_ struct{} `type:"structure"`
3844
3845	// The JSON-formatted resource-based policy attached to the ProfilingGroup.
3846	//
3847	// Policy is a required field
3848	Policy *string `locationName:"policy" type:"string" required:"true"`
3849
3850	// A unique identifier for the current revision of the returned policy.
3851	//
3852	// RevisionId is a required field
3853	RevisionId *string `locationName:"revisionId" type:"string" required:"true"`
3854}
3855
3856// String returns the string representation
3857func (s GetPolicyOutput) String() string {
3858	return awsutil.Prettify(s)
3859}
3860
3861// GoString returns the string representation
3862func (s GetPolicyOutput) GoString() string {
3863	return s.String()
3864}
3865
3866// SetPolicy sets the Policy field's value.
3867func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput {
3868	s.Policy = &v
3869	return s
3870}
3871
3872// SetRevisionId sets the RevisionId field's value.
3873func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput {
3874	s.RevisionId = &v
3875	return s
3876}
3877
3878// The structure representing the getProfileRequest.
3879type GetProfileInput struct {
3880	_ struct{} `type:"structure"`
3881
3882	// The format of the returned profiling data. The format maps to the Accept
3883	// and Content-Type headers of the HTTP request. You can specify one of the
3884	// following: or the default .
3885	//
3886	//    <ul> <li> <p> <code>application/json</code> — standard JSON format </p>
3887	//    </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion
3888	//    data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon
3889	//    Ion</a>. </p> </li> </ul>
3890	Accept *string `location:"header" locationName:"Accept" type:"string"`
3891
3892	// The end time of the requested profile. Specify using the ISO 8601 format.
3893	// For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June
3894	// 1, 2020 1:15:02 PM UTC.
3895	//
3896	// If you specify endTime, then you must also specify period or startTime, but
3897	// not both.
3898	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
3899
3900	// The maximum depth of the stacks in the code that is represented in the aggregated
3901	// profile. For example, if CodeGuru Profiler finds a method A, which calls
3902	// method B, which calls method C, which calls method D, then the depth is 4.
3903	// If the maxDepth is set to 2, then the aggregated profile contains representations
3904	// of methods A and B.
3905	MaxDepth *int64 `location:"querystring" locationName:"maxDepth" min:"1" type:"integer"`
3906
3907	// Used with startTime or endTime to specify the time range for the returned
3908	// aggregated profile. Specify using the ISO 8601 format. For example, P1DT1H1M1S.
3909	//
3910	//    <p> To get the latest aggregated profile, specify only <code>period</code>.
3911	//    </p>
3912	Period *string `location:"querystring" locationName:"period" min:"1" type:"string"`
3913
3914	// The name of the profiling group to get.
3915	//
3916	// ProfilingGroupName is a required field
3917	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3918
3919	// The start time of the profile to get. Specify using the ISO 8601 format.
3920	// For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June
3921	// 1, 2020 1:15:02 PM UTC.
3922	//
3923	//    <p> If you specify <code>startTime</code>, then you must also specify
3924	//    <code>period</code> or <code>endTime</code>, but not both. </p>
3925	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
3926}
3927
3928// String returns the string representation
3929func (s GetProfileInput) String() string {
3930	return awsutil.Prettify(s)
3931}
3932
3933// GoString returns the string representation
3934func (s GetProfileInput) GoString() string {
3935	return s.String()
3936}
3937
3938// Validate inspects the fields of the type to determine if they are valid.
3939func (s *GetProfileInput) Validate() error {
3940	invalidParams := request.ErrInvalidParams{Context: "GetProfileInput"}
3941	if s.MaxDepth != nil && *s.MaxDepth < 1 {
3942		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
3943	}
3944	if s.Period != nil && len(*s.Period) < 1 {
3945		invalidParams.Add(request.NewErrParamMinLen("Period", 1))
3946	}
3947	if s.ProfilingGroupName == nil {
3948		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3949	}
3950	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3951		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3952	}
3953
3954	if invalidParams.Len() > 0 {
3955		return invalidParams
3956	}
3957	return nil
3958}
3959
3960// SetAccept sets the Accept field's value.
3961func (s *GetProfileInput) SetAccept(v string) *GetProfileInput {
3962	s.Accept = &v
3963	return s
3964}
3965
3966// SetEndTime sets the EndTime field's value.
3967func (s *GetProfileInput) SetEndTime(v time.Time) *GetProfileInput {
3968	s.EndTime = &v
3969	return s
3970}
3971
3972// SetMaxDepth sets the MaxDepth field's value.
3973func (s *GetProfileInput) SetMaxDepth(v int64) *GetProfileInput {
3974	s.MaxDepth = &v
3975	return s
3976}
3977
3978// SetPeriod sets the Period field's value.
3979func (s *GetProfileInput) SetPeriod(v string) *GetProfileInput {
3980	s.Period = &v
3981	return s
3982}
3983
3984// SetProfilingGroupName sets the ProfilingGroupName field's value.
3985func (s *GetProfileInput) SetProfilingGroupName(v string) *GetProfileInput {
3986	s.ProfilingGroupName = &v
3987	return s
3988}
3989
3990// SetStartTime sets the StartTime field's value.
3991func (s *GetProfileInput) SetStartTime(v time.Time) *GetProfileInput {
3992	s.StartTime = &v
3993	return s
3994}
3995
3996// The structure representing the getProfileResponse.
3997type GetProfileOutput struct {
3998	_ struct{} `type:"structure" payload:"Profile"`
3999
4000	// The content encoding of the profile.
4001	ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"`
4002
4003	// The content type of the profile in the payload. It is either application/json
4004	// or the default application/x-amzn-ion.
4005	//
4006	// ContentType is a required field
4007	ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"`
4008
4009	// Information about the profile.
4010	//
4011	// Profile is a required field
4012	Profile []byte `locationName:"profile" type:"blob" required:"true"`
4013}
4014
4015// String returns the string representation
4016func (s GetProfileOutput) String() string {
4017	return awsutil.Prettify(s)
4018}
4019
4020// GoString returns the string representation
4021func (s GetProfileOutput) GoString() string {
4022	return s.String()
4023}
4024
4025// SetContentEncoding sets the ContentEncoding field's value.
4026func (s *GetProfileOutput) SetContentEncoding(v string) *GetProfileOutput {
4027	s.ContentEncoding = &v
4028	return s
4029}
4030
4031// SetContentType sets the ContentType field's value.
4032func (s *GetProfileOutput) SetContentType(v string) *GetProfileOutput {
4033	s.ContentType = &v
4034	return s
4035}
4036
4037// SetProfile sets the Profile field's value.
4038func (s *GetProfileOutput) SetProfile(v []byte) *GetProfileOutput {
4039	s.Profile = v
4040	return s
4041}
4042
4043// The structure representing the GetRecommendationsRequest.
4044type GetRecommendationsInput struct {
4045	_ struct{} `type:"structure"`
4046
4047	// The start time of the profile to get analysis data about. You must specify
4048	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4049	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4050	// PM UTC.
4051	//
4052	// EndTime is a required field
4053	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4054
4055	// The language used to provide analysis. Specify using a string that is one
4056	// of the following BCP 47 language codes.
4057	//
4058	//    * de-DE - German, Germany
4059	//
4060	//    * en-GB - English, United Kingdom
4061	//
4062	//    * en-US - English, United States
4063	//
4064	//    * es-ES - Spanish, Spain
4065	//
4066	//    * fr-FR - French, France
4067	//
4068	//    * it-IT - Italian, Italy
4069	//
4070	//    * ja-JP - Japanese, Japan
4071	//
4072	//    * ko-KR - Korean, Republic of Korea
4073	//
4074	//    * pt-BR - Portugese, Brazil
4075	//
4076	//    * zh-CN - Chinese, China
4077	//
4078	//    * zh-TW - Chinese, Taiwan
4079	Locale *string `location:"querystring" locationName:"locale" type:"string"`
4080
4081	// The name of the profiling group to get analysis data about.
4082	//
4083	// ProfilingGroupName is a required field
4084	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4085
4086	// The end time of the profile to get analysis data about. You must specify
4087	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4088	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4089	// PM UTC.
4090	//
4091	// StartTime is a required field
4092	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4093}
4094
4095// String returns the string representation
4096func (s GetRecommendationsInput) String() string {
4097	return awsutil.Prettify(s)
4098}
4099
4100// GoString returns the string representation
4101func (s GetRecommendationsInput) GoString() string {
4102	return s.String()
4103}
4104
4105// Validate inspects the fields of the type to determine if they are valid.
4106func (s *GetRecommendationsInput) Validate() error {
4107	invalidParams := request.ErrInvalidParams{Context: "GetRecommendationsInput"}
4108	if s.EndTime == nil {
4109		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4110	}
4111	if s.ProfilingGroupName == nil {
4112		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4113	}
4114	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4115		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4116	}
4117	if s.StartTime == nil {
4118		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4119	}
4120
4121	if invalidParams.Len() > 0 {
4122		return invalidParams
4123	}
4124	return nil
4125}
4126
4127// SetEndTime sets the EndTime field's value.
4128func (s *GetRecommendationsInput) SetEndTime(v time.Time) *GetRecommendationsInput {
4129	s.EndTime = &v
4130	return s
4131}
4132
4133// SetLocale sets the Locale field's value.
4134func (s *GetRecommendationsInput) SetLocale(v string) *GetRecommendationsInput {
4135	s.Locale = &v
4136	return s
4137}
4138
4139// SetProfilingGroupName sets the ProfilingGroupName field's value.
4140func (s *GetRecommendationsInput) SetProfilingGroupName(v string) *GetRecommendationsInput {
4141	s.ProfilingGroupName = &v
4142	return s
4143}
4144
4145// SetStartTime sets the StartTime field's value.
4146func (s *GetRecommendationsInput) SetStartTime(v time.Time) *GetRecommendationsInput {
4147	s.StartTime = &v
4148	return s
4149}
4150
4151// The structure representing the GetRecommendationsResponse.
4152type GetRecommendationsOutput struct {
4153	_ struct{} `type:"structure"`
4154
4155	// The list of anomalies that the analysis has found for this profile.
4156	//
4157	// Anomalies is a required field
4158	Anomalies []*Anomaly `locationName:"anomalies" type:"list" required:"true"`
4159
4160	// The end time of the profile the analysis data is about. This is specified
4161	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
4162	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
4163	//
4164	// ProfileEndTime is a required field
4165	ProfileEndTime *time.Time `locationName:"profileEndTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4166
4167	// The start time of the profile the analysis data is about. This is specified
4168	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
4169	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
4170	//
4171	// ProfileStartTime is a required field
4172	ProfileStartTime *time.Time `locationName:"profileStartTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4173
4174	// The name of the profiling group the analysis data is about.
4175	//
4176	// ProfilingGroupName is a required field
4177	ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4178
4179	// The list of recommendations that the analysis found for this profile.
4180	//
4181	// Recommendations is a required field
4182	Recommendations []*Recommendation `locationName:"recommendations" type:"list" required:"true"`
4183}
4184
4185// String returns the string representation
4186func (s GetRecommendationsOutput) String() string {
4187	return awsutil.Prettify(s)
4188}
4189
4190// GoString returns the string representation
4191func (s GetRecommendationsOutput) GoString() string {
4192	return s.String()
4193}
4194
4195// SetAnomalies sets the Anomalies field's value.
4196func (s *GetRecommendationsOutput) SetAnomalies(v []*Anomaly) *GetRecommendationsOutput {
4197	s.Anomalies = v
4198	return s
4199}
4200
4201// SetProfileEndTime sets the ProfileEndTime field's value.
4202func (s *GetRecommendationsOutput) SetProfileEndTime(v time.Time) *GetRecommendationsOutput {
4203	s.ProfileEndTime = &v
4204	return s
4205}
4206
4207// SetProfileStartTime sets the ProfileStartTime field's value.
4208func (s *GetRecommendationsOutput) SetProfileStartTime(v time.Time) *GetRecommendationsOutput {
4209	s.ProfileStartTime = &v
4210	return s
4211}
4212
4213// SetProfilingGroupName sets the ProfilingGroupName field's value.
4214func (s *GetRecommendationsOutput) SetProfilingGroupName(v string) *GetRecommendationsOutput {
4215	s.ProfilingGroupName = &v
4216	return s
4217}
4218
4219// SetRecommendations sets the Recommendations field's value.
4220func (s *GetRecommendationsOutput) SetRecommendations(v []*Recommendation) *GetRecommendationsOutput {
4221	s.Recommendations = v
4222	return s
4223}
4224
4225// The server encountered an internal error and is unable to complete the request.
4226type InternalServerException struct {
4227	_            struct{}                  `type:"structure"`
4228	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4229
4230	Message_ *string `locationName:"message" type:"string"`
4231}
4232
4233// String returns the string representation
4234func (s InternalServerException) String() string {
4235	return awsutil.Prettify(s)
4236}
4237
4238// GoString returns the string representation
4239func (s InternalServerException) GoString() string {
4240	return s.String()
4241}
4242
4243func newErrorInternalServerException(v protocol.ResponseMetadata) error {
4244	return &InternalServerException{
4245		RespMetadata: v,
4246	}
4247}
4248
4249// Code returns the exception type name.
4250func (s *InternalServerException) Code() string {
4251	return "InternalServerException"
4252}
4253
4254// Message returns the exception's message.
4255func (s *InternalServerException) Message() string {
4256	if s.Message_ != nil {
4257		return *s.Message_
4258	}
4259	return ""
4260}
4261
4262// OrigErr always returns nil, satisfies awserr.Error interface.
4263func (s *InternalServerException) OrigErr() error {
4264	return nil
4265}
4266
4267func (s *InternalServerException) Error() string {
4268	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4269}
4270
4271// Status code returns the HTTP status code for the request's response error.
4272func (s *InternalServerException) StatusCode() int {
4273	return s.RespMetadata.StatusCode
4274}
4275
4276// RequestID returns the service's response RequestID for request.
4277func (s *InternalServerException) RequestID() string {
4278	return s.RespMetadata.RequestID
4279}
4280
4281// The structure representing the ListFindingsReportsRequest.
4282type ListFindingsReportsInput struct {
4283	_ struct{} `type:"structure"`
4284
4285	// A Boolean value indicating whether to only return reports from daily profiles.
4286	// If set to True, only analysis data from daily profiles is returned. If set
4287	// to False, analysis data is returned from smaller time windows (for example,
4288	// one hour).
4289	DailyReportsOnly *bool `location:"querystring" locationName:"dailyReportsOnly" type:"boolean"`
4290
4291	// The end time of the profile to get analysis data about. You must specify
4292	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4293	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4294	// PM UTC.
4295	//
4296	// EndTime is a required field
4297	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4298
4299	// The maximum number of report results returned by ListFindingsReports in paginated
4300	// output. When this parameter is used, ListFindingsReports only returns maxResults
4301	// results in a single page along with a nextToken response element. The remaining
4302	// results of the initial request can be seen by sending another ListFindingsReports
4303	// request with the returned nextToken value.
4304	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
4305
4306	// The nextToken value returned from a previous paginated ListFindingsReportsRequest
4307	// request where maxResults was used and the results exceeded the value of that
4308	// parameter. Pagination continues from the end of the previous results that
4309	// returned the nextToken value.
4310	//
4311	// This token should be treated as an opaque identifier that is only used to
4312	// retrieve the next items in a list and not for other programmatic purposes.
4313	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
4314
4315	// The name of the profiling group from which to search for analysis data.
4316	//
4317	// ProfilingGroupName is a required field
4318	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4319
4320	// The start time of the profile to get analysis data about. You must specify
4321	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4322	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4323	// PM UTC.
4324	//
4325	// StartTime is a required field
4326	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4327}
4328
4329// String returns the string representation
4330func (s ListFindingsReportsInput) String() string {
4331	return awsutil.Prettify(s)
4332}
4333
4334// GoString returns the string representation
4335func (s ListFindingsReportsInput) GoString() string {
4336	return s.String()
4337}
4338
4339// Validate inspects the fields of the type to determine if they are valid.
4340func (s *ListFindingsReportsInput) Validate() error {
4341	invalidParams := request.ErrInvalidParams{Context: "ListFindingsReportsInput"}
4342	if s.EndTime == nil {
4343		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4344	}
4345	if s.MaxResults != nil && *s.MaxResults < 1 {
4346		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4347	}
4348	if s.NextToken != nil && len(*s.NextToken) < 1 {
4349		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4350	}
4351	if s.ProfilingGroupName == nil {
4352		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4353	}
4354	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4355		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4356	}
4357	if s.StartTime == nil {
4358		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4359	}
4360
4361	if invalidParams.Len() > 0 {
4362		return invalidParams
4363	}
4364	return nil
4365}
4366
4367// SetDailyReportsOnly sets the DailyReportsOnly field's value.
4368func (s *ListFindingsReportsInput) SetDailyReportsOnly(v bool) *ListFindingsReportsInput {
4369	s.DailyReportsOnly = &v
4370	return s
4371}
4372
4373// SetEndTime sets the EndTime field's value.
4374func (s *ListFindingsReportsInput) SetEndTime(v time.Time) *ListFindingsReportsInput {
4375	s.EndTime = &v
4376	return s
4377}
4378
4379// SetMaxResults sets the MaxResults field's value.
4380func (s *ListFindingsReportsInput) SetMaxResults(v int64) *ListFindingsReportsInput {
4381	s.MaxResults = &v
4382	return s
4383}
4384
4385// SetNextToken sets the NextToken field's value.
4386func (s *ListFindingsReportsInput) SetNextToken(v string) *ListFindingsReportsInput {
4387	s.NextToken = &v
4388	return s
4389}
4390
4391// SetProfilingGroupName sets the ProfilingGroupName field's value.
4392func (s *ListFindingsReportsInput) SetProfilingGroupName(v string) *ListFindingsReportsInput {
4393	s.ProfilingGroupName = &v
4394	return s
4395}
4396
4397// SetStartTime sets the StartTime field's value.
4398func (s *ListFindingsReportsInput) SetStartTime(v time.Time) *ListFindingsReportsInput {
4399	s.StartTime = &v
4400	return s
4401}
4402
4403// The structure representing the ListFindingsReportsResponse.
4404type ListFindingsReportsOutput struct {
4405	_ struct{} `type:"structure"`
4406
4407	// The list of analysis results summaries.
4408	//
4409	// FindingsReportSummaries is a required field
4410	FindingsReportSummaries []*FindingsReportSummary `locationName:"findingsReportSummaries" type:"list" required:"true"`
4411
4412	// The nextToken value to include in a future ListFindingsReports request. When
4413	// the results of a ListFindingsReports request exceed maxResults, this value
4414	// can be used to retrieve the next page of results. This value is null when
4415	// there are no more results to return.
4416	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
4417}
4418
4419// String returns the string representation
4420func (s ListFindingsReportsOutput) String() string {
4421	return awsutil.Prettify(s)
4422}
4423
4424// GoString returns the string representation
4425func (s ListFindingsReportsOutput) GoString() string {
4426	return s.String()
4427}
4428
4429// SetFindingsReportSummaries sets the FindingsReportSummaries field's value.
4430func (s *ListFindingsReportsOutput) SetFindingsReportSummaries(v []*FindingsReportSummary) *ListFindingsReportsOutput {
4431	s.FindingsReportSummaries = v
4432	return s
4433}
4434
4435// SetNextToken sets the NextToken field's value.
4436func (s *ListFindingsReportsOutput) SetNextToken(v string) *ListFindingsReportsOutput {
4437	s.NextToken = &v
4438	return s
4439}
4440
4441// The structure representing the listProfileTimesRequest.
4442type ListProfileTimesInput struct {
4443	_ struct{} `type:"structure"`
4444
4445	// The end time of the time range from which to list the profiles.
4446	//
4447	// EndTime is a required field
4448	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4449
4450	// The maximum number of profile time results returned by ListProfileTimes in
4451	// paginated output. When this parameter is used, ListProfileTimes only returns
4452	// maxResults results in a single page with a nextToken response element. The
4453	// remaining results of the initial request can be seen by sending another ListProfileTimes
4454	// request with the returned nextToken value.
4455	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
4456
4457	// The nextToken value returned from a previous paginated ListProfileTimes request
4458	// where maxResults was used and the results exceeded the value of that parameter.
4459	// Pagination continues from the end of the previous results that returned the
4460	// nextToken value.
4461	//
4462	// This token should be treated as an opaque identifier that is only used to
4463	// retrieve the next items in a list and not for other programmatic purposes.
4464	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
4465
4466	// The order (ascending or descending by start time of the profile) to use when
4467	// listing profiles. Defaults to TIMESTAMP_DESCENDING.
4468	OrderBy *string `location:"querystring" locationName:"orderBy" type:"string" enum:"OrderBy"`
4469
4470	// The aggregation period. This specifies the period during which an aggregation
4471	// profile collects posted agent profiles for a profiling group. There are 3
4472	// valid values.
4473	//
4474	//    * P1D — 1 day
4475	//
4476	//    * PT1H — 1 hour
4477	//
4478	//    * PT5M — 5 minutes
4479	//
4480	// Period is a required field
4481	Period *string `location:"querystring" locationName:"period" type:"string" required:"true" enum:"AggregationPeriod"`
4482
4483	// The name of the profiling group.
4484	//
4485	// ProfilingGroupName is a required field
4486	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4487
4488	// The start time of the time range from which to list the profiles.
4489	//
4490	// StartTime is a required field
4491	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4492}
4493
4494// String returns the string representation
4495func (s ListProfileTimesInput) String() string {
4496	return awsutil.Prettify(s)
4497}
4498
4499// GoString returns the string representation
4500func (s ListProfileTimesInput) GoString() string {
4501	return s.String()
4502}
4503
4504// Validate inspects the fields of the type to determine if they are valid.
4505func (s *ListProfileTimesInput) Validate() error {
4506	invalidParams := request.ErrInvalidParams{Context: "ListProfileTimesInput"}
4507	if s.EndTime == nil {
4508		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4509	}
4510	if s.MaxResults != nil && *s.MaxResults < 1 {
4511		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4512	}
4513	if s.NextToken != nil && len(*s.NextToken) < 1 {
4514		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4515	}
4516	if s.Period == nil {
4517		invalidParams.Add(request.NewErrParamRequired("Period"))
4518	}
4519	if s.ProfilingGroupName == nil {
4520		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4521	}
4522	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4523		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4524	}
4525	if s.StartTime == nil {
4526		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4527	}
4528
4529	if invalidParams.Len() > 0 {
4530		return invalidParams
4531	}
4532	return nil
4533}
4534
4535// SetEndTime sets the EndTime field's value.
4536func (s *ListProfileTimesInput) SetEndTime(v time.Time) *ListProfileTimesInput {
4537	s.EndTime = &v
4538	return s
4539}
4540
4541// SetMaxResults sets the MaxResults field's value.
4542func (s *ListProfileTimesInput) SetMaxResults(v int64) *ListProfileTimesInput {
4543	s.MaxResults = &v
4544	return s
4545}
4546
4547// SetNextToken sets the NextToken field's value.
4548func (s *ListProfileTimesInput) SetNextToken(v string) *ListProfileTimesInput {
4549	s.NextToken = &v
4550	return s
4551}
4552
4553// SetOrderBy sets the OrderBy field's value.
4554func (s *ListProfileTimesInput) SetOrderBy(v string) *ListProfileTimesInput {
4555	s.OrderBy = &v
4556	return s
4557}
4558
4559// SetPeriod sets the Period field's value.
4560func (s *ListProfileTimesInput) SetPeriod(v string) *ListProfileTimesInput {
4561	s.Period = &v
4562	return s
4563}
4564
4565// SetProfilingGroupName sets the ProfilingGroupName field's value.
4566func (s *ListProfileTimesInput) SetProfilingGroupName(v string) *ListProfileTimesInput {
4567	s.ProfilingGroupName = &v
4568	return s
4569}
4570
4571// SetStartTime sets the StartTime field's value.
4572func (s *ListProfileTimesInput) SetStartTime(v time.Time) *ListProfileTimesInput {
4573	s.StartTime = &v
4574	return s
4575}
4576
4577// The structure representing the listProfileTimesResponse.
4578type ListProfileTimesOutput struct {
4579	_ struct{} `type:"structure"`
4580
4581	// The nextToken value to include in a future ListProfileTimes request. When
4582	// the results of a ListProfileTimes request exceed maxResults, this value can
4583	// be used to retrieve the next page of results. This value is null when there
4584	// are no more results to return.
4585	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
4586
4587	// The list of start times of the available profiles for the aggregation period
4588	// in the specified time range.
4589	//
4590	// ProfileTimes is a required field
4591	ProfileTimes []*ProfileTime `locationName:"profileTimes" type:"list" required:"true"`
4592}
4593
4594// String returns the string representation
4595func (s ListProfileTimesOutput) String() string {
4596	return awsutil.Prettify(s)
4597}
4598
4599// GoString returns the string representation
4600func (s ListProfileTimesOutput) GoString() string {
4601	return s.String()
4602}
4603
4604// SetNextToken sets the NextToken field's value.
4605func (s *ListProfileTimesOutput) SetNextToken(v string) *ListProfileTimesOutput {
4606	s.NextToken = &v
4607	return s
4608}
4609
4610// SetProfileTimes sets the ProfileTimes field's value.
4611func (s *ListProfileTimesOutput) SetProfileTimes(v []*ProfileTime) *ListProfileTimesOutput {
4612	s.ProfileTimes = v
4613	return s
4614}
4615
4616// The structure representing the listProfilingGroupsRequest.
4617type ListProfilingGroupsInput struct {
4618	_ struct{} `type:"structure"`
4619
4620	// A Boolean value indicating whether to include a description. If true, then
4621	// a list of ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
4622	// objects that contain detailed information about profiling groups is returned.
4623	// If false, then a list of profiling group names is returned.
4624	IncludeDescription *bool `location:"querystring" locationName:"includeDescription" type:"boolean"`
4625
4626	// The maximum number of profiling groups results returned by ListProfilingGroups
4627	// in paginated output. When this parameter is used, ListProfilingGroups only
4628	// returns maxResults results in a single page along with a nextToken response
4629	// element. The remaining results of the initial request can be seen by sending
4630	// another ListProfilingGroups request with the returned nextToken value.
4631	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
4632
4633	// The nextToken value returned from a previous paginated ListProfilingGroups
4634	// request where maxResults was used and the results exceeded the value of that
4635	// parameter. Pagination continues from the end of the previous results that
4636	// returned the nextToken value.
4637	//
4638	// This token should be treated as an opaque identifier that is only used to
4639	// retrieve the next items in a list and not for other programmatic purposes.
4640	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
4641}
4642
4643// String returns the string representation
4644func (s ListProfilingGroupsInput) String() string {
4645	return awsutil.Prettify(s)
4646}
4647
4648// GoString returns the string representation
4649func (s ListProfilingGroupsInput) GoString() string {
4650	return s.String()
4651}
4652
4653// Validate inspects the fields of the type to determine if they are valid.
4654func (s *ListProfilingGroupsInput) Validate() error {
4655	invalidParams := request.ErrInvalidParams{Context: "ListProfilingGroupsInput"}
4656	if s.MaxResults != nil && *s.MaxResults < 1 {
4657		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4658	}
4659	if s.NextToken != nil && len(*s.NextToken) < 1 {
4660		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4661	}
4662
4663	if invalidParams.Len() > 0 {
4664		return invalidParams
4665	}
4666	return nil
4667}
4668
4669// SetIncludeDescription sets the IncludeDescription field's value.
4670func (s *ListProfilingGroupsInput) SetIncludeDescription(v bool) *ListProfilingGroupsInput {
4671	s.IncludeDescription = &v
4672	return s
4673}
4674
4675// SetMaxResults sets the MaxResults field's value.
4676func (s *ListProfilingGroupsInput) SetMaxResults(v int64) *ListProfilingGroupsInput {
4677	s.MaxResults = &v
4678	return s
4679}
4680
4681// SetNextToken sets the NextToken field's value.
4682func (s *ListProfilingGroupsInput) SetNextToken(v string) *ListProfilingGroupsInput {
4683	s.NextToken = &v
4684	return s
4685}
4686
4687// The structure representing the listProfilingGroupsResponse.
4688type ListProfilingGroupsOutput struct {
4689	_ struct{} `type:"structure"`
4690
4691	// The nextToken value to include in a future ListProfilingGroups request. When
4692	// the results of a ListProfilingGroups request exceed maxResults, this value
4693	// can be used to retrieve the next page of results. This value is null when
4694	// there are no more results to return.
4695	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
4696
4697	// A returned list of profiling group names. A list of the names is returned
4698	// only if includeDescription is false, otherwise a list of ProfilingGroupDescription
4699	// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
4700	// objects is returned.
4701	//
4702	// ProfilingGroupNames is a required field
4703	ProfilingGroupNames []*string `locationName:"profilingGroupNames" type:"list" required:"true"`
4704
4705	// A returned list ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
4706	// objects. A list of ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
4707	// objects is returned only if includeDescription is true, otherwise a list
4708	// of profiling group names is returned.
4709	ProfilingGroups []*ProfilingGroupDescription `locationName:"profilingGroups" type:"list"`
4710}
4711
4712// String returns the string representation
4713func (s ListProfilingGroupsOutput) String() string {
4714	return awsutil.Prettify(s)
4715}
4716
4717// GoString returns the string representation
4718func (s ListProfilingGroupsOutput) GoString() string {
4719	return s.String()
4720}
4721
4722// SetNextToken sets the NextToken field's value.
4723func (s *ListProfilingGroupsOutput) SetNextToken(v string) *ListProfilingGroupsOutput {
4724	s.NextToken = &v
4725	return s
4726}
4727
4728// SetProfilingGroupNames sets the ProfilingGroupNames field's value.
4729func (s *ListProfilingGroupsOutput) SetProfilingGroupNames(v []*string) *ListProfilingGroupsOutput {
4730	s.ProfilingGroupNames = v
4731	return s
4732}
4733
4734// SetProfilingGroups sets the ProfilingGroups field's value.
4735func (s *ListProfilingGroupsOutput) SetProfilingGroups(v []*ProfilingGroupDescription) *ListProfilingGroupsOutput {
4736	s.ProfilingGroups = v
4737	return s
4738}
4739
4740type ListTagsForResourceInput struct {
4741	_ struct{} `type:"structure"`
4742
4743	// The Amazon Resource Name (ARN) of the resource that contains the tags to
4744	// return.
4745	//
4746	// ResourceArn is a required field
4747	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
4748}
4749
4750// String returns the string representation
4751func (s ListTagsForResourceInput) String() string {
4752	return awsutil.Prettify(s)
4753}
4754
4755// GoString returns the string representation
4756func (s ListTagsForResourceInput) GoString() string {
4757	return s.String()
4758}
4759
4760// Validate inspects the fields of the type to determine if they are valid.
4761func (s *ListTagsForResourceInput) Validate() error {
4762	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
4763	if s.ResourceArn == nil {
4764		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4765	}
4766	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4767		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4768	}
4769
4770	if invalidParams.Len() > 0 {
4771		return invalidParams
4772	}
4773	return nil
4774}
4775
4776// SetResourceArn sets the ResourceArn field's value.
4777func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
4778	s.ResourceArn = &v
4779	return s
4780}
4781
4782type ListTagsForResourceOutput struct {
4783	_ struct{} `type:"structure"`
4784
4785	// The list of tags assigned to the specified resource. This is the list of
4786	// tags returned in the response.
4787	Tags map[string]*string `locationName:"tags" type:"map"`
4788}
4789
4790// String returns the string representation
4791func (s ListTagsForResourceOutput) String() string {
4792	return awsutil.Prettify(s)
4793}
4794
4795// GoString returns the string representation
4796func (s ListTagsForResourceOutput) GoString() string {
4797	return s.String()
4798}
4799
4800// SetTags sets the Tags field's value.
4801func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
4802	s.Tags = v
4803	return s
4804}
4805
4806// The part of a profile that contains a recommendation found during analysis.
4807type Match struct {
4808	_ struct{} `type:"structure"`
4809
4810	// The location in the profiling graph that contains a recommendation found
4811	// during analysis.
4812	FrameAddress *string `locationName:"frameAddress" type:"string"`
4813
4814	// The target frame that triggered a match.
4815	TargetFramesIndex *int64 `locationName:"targetFramesIndex" type:"integer"`
4816
4817	// The value in the profile data that exceeded the recommendation threshold.
4818	ThresholdBreachValue *float64 `locationName:"thresholdBreachValue" type:"double"`
4819}
4820
4821// String returns the string representation
4822func (s Match) String() string {
4823	return awsutil.Prettify(s)
4824}
4825
4826// GoString returns the string representation
4827func (s Match) GoString() string {
4828	return s.String()
4829}
4830
4831// SetFrameAddress sets the FrameAddress field's value.
4832func (s *Match) SetFrameAddress(v string) *Match {
4833	s.FrameAddress = &v
4834	return s
4835}
4836
4837// SetTargetFramesIndex sets the TargetFramesIndex field's value.
4838func (s *Match) SetTargetFramesIndex(v int64) *Match {
4839	s.TargetFramesIndex = &v
4840	return s
4841}
4842
4843// SetThresholdBreachValue sets the ThresholdBreachValue field's value.
4844func (s *Match) SetThresholdBreachValue(v float64) *Match {
4845	s.ThresholdBreachValue = &v
4846	return s
4847}
4848
4849// Details about the metric that the analysis used when it detected the anomaly.
4850// The metric what is analyzed to create recommendations. It includes the name
4851// of the frame that was analyzed and the type and thread states used to derive
4852// the metric value for that frame.
4853type Metric struct {
4854	_ struct{} `type:"structure"`
4855
4856	// The name of the method that appears as a frame in any stack in a profile.
4857	//
4858	// FrameName is a required field
4859	FrameName *string `locationName:"frameName" type:"string" required:"true"`
4860
4861	// The list of application runtime thread states that is used to calculate the
4862	// metric value for the frame.
4863	//
4864	// ThreadStates is a required field
4865	ThreadStates []*string `locationName:"threadStates" type:"list" required:"true"`
4866
4867	// A type that specifies how a metric for a frame is analyzed. The supported
4868	// value AggregatedRelativeTotalTime is an aggregation of the metric value for
4869	// one frame that is calculated across the occurences of all frames in a profile.
4870	//
4871	// Type is a required field
4872	Type *string `locationName:"type" type:"string" required:"true" enum:"MetricType"`
4873}
4874
4875// String returns the string representation
4876func (s Metric) String() string {
4877	return awsutil.Prettify(s)
4878}
4879
4880// GoString returns the string representation
4881func (s Metric) GoString() string {
4882	return s.String()
4883}
4884
4885// SetFrameName sets the FrameName field's value.
4886func (s *Metric) SetFrameName(v string) *Metric {
4887	s.FrameName = &v
4888	return s
4889}
4890
4891// SetThreadStates sets the ThreadStates field's value.
4892func (s *Metric) SetThreadStates(v []*string) *Metric {
4893	s.ThreadStates = v
4894	return s
4895}
4896
4897// SetType sets the Type field's value.
4898func (s *Metric) SetType(v string) *Metric {
4899	s.Type = &v
4900	return s
4901}
4902
4903// The configuration for notifications stored for each profiling group. This
4904// includes up to to two channels and a list of event publishers associated
4905// with each channel.
4906type NotificationConfiguration struct {
4907	_ struct{} `type:"structure"`
4908
4909	// List of up to two channels to be used for sending notifications for events
4910	// detected from the application profile.
4911	Channels []*Channel `locationName:"channels" min:"1" type:"list"`
4912}
4913
4914// String returns the string representation
4915func (s NotificationConfiguration) String() string {
4916	return awsutil.Prettify(s)
4917}
4918
4919// GoString returns the string representation
4920func (s NotificationConfiguration) GoString() string {
4921	return s.String()
4922}
4923
4924// SetChannels sets the Channels field's value.
4925func (s *NotificationConfiguration) SetChannels(v []*Channel) *NotificationConfiguration {
4926	s.Channels = v
4927	return s
4928}
4929
4930// A set of rules used to make a recommendation during an analysis.
4931type Pattern struct {
4932	_ struct{} `type:"structure"`
4933
4934	// A list of the different counters used to determine if there is a match.
4935	CountersToAggregate []*string `locationName:"countersToAggregate" type:"list"`
4936
4937	// The description of the recommendation. This explains a potential inefficiency
4938	// in a profiled application.
4939	Description *string `locationName:"description" type:"string"`
4940
4941	// The universally unique identifier (UUID) of this pattern.
4942	Id *string `locationName:"id" type:"string"`
4943
4944	// The name for this pattern.
4945	Name *string `locationName:"name" type:"string"`
4946
4947	// A string that contains the steps recommended to address the potential inefficiency.
4948	ResolutionSteps *string `locationName:"resolutionSteps" type:"string"`
4949
4950	// A list of frame names that were searched during the analysis that generated
4951	// a recommendation.
4952	TargetFrames [][]*string `locationName:"targetFrames" type:"list"`
4953
4954	// The percentage of time an application spends in one method that triggers
4955	// a recommendation. The percentage of time is the same as the percentage of
4956	// the total gathered sample counts during analysis.
4957	ThresholdPercent *float64 `locationName:"thresholdPercent" type:"double"`
4958}
4959
4960// String returns the string representation
4961func (s Pattern) String() string {
4962	return awsutil.Prettify(s)
4963}
4964
4965// GoString returns the string representation
4966func (s Pattern) GoString() string {
4967	return s.String()
4968}
4969
4970// SetCountersToAggregate sets the CountersToAggregate field's value.
4971func (s *Pattern) SetCountersToAggregate(v []*string) *Pattern {
4972	s.CountersToAggregate = v
4973	return s
4974}
4975
4976// SetDescription sets the Description field's value.
4977func (s *Pattern) SetDescription(v string) *Pattern {
4978	s.Description = &v
4979	return s
4980}
4981
4982// SetId sets the Id field's value.
4983func (s *Pattern) SetId(v string) *Pattern {
4984	s.Id = &v
4985	return s
4986}
4987
4988// SetName sets the Name field's value.
4989func (s *Pattern) SetName(v string) *Pattern {
4990	s.Name = &v
4991	return s
4992}
4993
4994// SetResolutionSteps sets the ResolutionSteps field's value.
4995func (s *Pattern) SetResolutionSteps(v string) *Pattern {
4996	s.ResolutionSteps = &v
4997	return s
4998}
4999
5000// SetTargetFrames sets the TargetFrames field's value.
5001func (s *Pattern) SetTargetFrames(v [][]*string) *Pattern {
5002	s.TargetFrames = v
5003	return s
5004}
5005
5006// SetThresholdPercent sets the ThresholdPercent field's value.
5007func (s *Pattern) SetThresholdPercent(v float64) *Pattern {
5008	s.ThresholdPercent = &v
5009	return s
5010}
5011
5012// The structure representing the postAgentProfileRequest.
5013type PostAgentProfileInput struct {
5014	_ struct{} `type:"structure" payload:"AgentProfile"`
5015
5016	// The submitted profiling data.
5017	//
5018	// AgentProfile is a required field
5019	AgentProfile []byte `locationName:"agentProfile" type:"blob" required:"true"`
5020
5021	// The format of the submitted profiling data. The format maps to the Accept
5022	// and Content-Type headers of the HTTP request. You can specify one of the
5023	// following: or the default .
5024	//
5025	//    <ul> <li> <p> <code>application/json</code> — standard JSON format </p>
5026	//    </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion
5027	//    data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon
5028	//    Ion</a>. </p> </li> </ul>
5029	//
5030	// ContentType is a required field
5031	ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"`
5032
5033	// Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to
5034	// prevent the accidental submission of duplicate profiling data if there are
5035	// failures and retries.
5036	ProfileToken *string `location:"querystring" locationName:"profileToken" min:"1" type:"string" idempotencyToken:"true"`
5037
5038	// The name of the profiling group with the aggregated profile that receives
5039	// the submitted profiling data.
5040	//
5041	// ProfilingGroupName is a required field
5042	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5043}
5044
5045// String returns the string representation
5046func (s PostAgentProfileInput) String() string {
5047	return awsutil.Prettify(s)
5048}
5049
5050// GoString returns the string representation
5051func (s PostAgentProfileInput) GoString() string {
5052	return s.String()
5053}
5054
5055// Validate inspects the fields of the type to determine if they are valid.
5056func (s *PostAgentProfileInput) Validate() error {
5057	invalidParams := request.ErrInvalidParams{Context: "PostAgentProfileInput"}
5058	if s.AgentProfile == nil {
5059		invalidParams.Add(request.NewErrParamRequired("AgentProfile"))
5060	}
5061	if s.ContentType == nil {
5062		invalidParams.Add(request.NewErrParamRequired("ContentType"))
5063	}
5064	if s.ProfileToken != nil && len(*s.ProfileToken) < 1 {
5065		invalidParams.Add(request.NewErrParamMinLen("ProfileToken", 1))
5066	}
5067	if s.ProfilingGroupName == nil {
5068		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5069	}
5070	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5071		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5072	}
5073
5074	if invalidParams.Len() > 0 {
5075		return invalidParams
5076	}
5077	return nil
5078}
5079
5080// SetAgentProfile sets the AgentProfile field's value.
5081func (s *PostAgentProfileInput) SetAgentProfile(v []byte) *PostAgentProfileInput {
5082	s.AgentProfile = v
5083	return s
5084}
5085
5086// SetContentType sets the ContentType field's value.
5087func (s *PostAgentProfileInput) SetContentType(v string) *PostAgentProfileInput {
5088	s.ContentType = &v
5089	return s
5090}
5091
5092// SetProfileToken sets the ProfileToken field's value.
5093func (s *PostAgentProfileInput) SetProfileToken(v string) *PostAgentProfileInput {
5094	s.ProfileToken = &v
5095	return s
5096}
5097
5098// SetProfilingGroupName sets the ProfilingGroupName field's value.
5099func (s *PostAgentProfileInput) SetProfilingGroupName(v string) *PostAgentProfileInput {
5100	s.ProfilingGroupName = &v
5101	return s
5102}
5103
5104// The structure representing the postAgentProfileResponse.
5105type PostAgentProfileOutput struct {
5106	_ struct{} `type:"structure"`
5107}
5108
5109// String returns the string representation
5110func (s PostAgentProfileOutput) String() string {
5111	return awsutil.Prettify(s)
5112}
5113
5114// GoString returns the string representation
5115func (s PostAgentProfileOutput) GoString() string {
5116	return s.String()
5117}
5118
5119// Contains the start time of a profile.
5120type ProfileTime struct {
5121	_ struct{} `type:"structure"`
5122
5123	// The start time of a profile. It is specified using the ISO 8601 format. For
5124	// example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020
5125	// 1:15:02 PM UTC.
5126	Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
5127}
5128
5129// String returns the string representation
5130func (s ProfileTime) String() string {
5131	return awsutil.Prettify(s)
5132}
5133
5134// GoString returns the string representation
5135func (s ProfileTime) GoString() string {
5136	return s.String()
5137}
5138
5139// SetStart sets the Start field's value.
5140func (s *ProfileTime) SetStart(v time.Time) *ProfileTime {
5141	s.Start = &v
5142	return s
5143}
5144
5145// Contains information about a profiling group.
5146type ProfilingGroupDescription struct {
5147	_ struct{} `type:"structure"`
5148
5149	// An AgentOrchestrationConfig (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html)
5150	// object that indicates if the profiling group is enabled for profiled or not.
5151	AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"`
5152
5153	// The Amazon Resource Name (ARN) identifying the profiling group resource.
5154	Arn *string `locationName:"arn" type:"string"`
5155
5156	// The compute platform of the profiling group. If it is set to AWSLambda, then
5157	// the profiled application runs on AWS Lambda. If it is set to Default, then
5158	// the profiled application runs on a compute platform that is not AWS Lambda,
5159	// such an Amazon EC2 instance, an on-premises server, or a different platform.
5160	// The default is Default.
5161	ComputePlatform *string `locationName:"computePlatform" type:"string" enum:"ComputePlatform"`
5162
5163	// The time when the profiling group was created. Specify using the ISO 8601
5164	// format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past
5165	// June 1, 2020 1:15:02 PM UTC.
5166	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`
5167
5168	// The name of the profiling group.
5169	Name *string `locationName:"name" min:"1" type:"string"`
5170
5171	// A ProfilingStatus (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html)
5172	// object that includes information about the last time a profile agent pinged
5173	// back, the last time a profile was received, and the aggregation period and
5174	// start time for the most recent aggregated profile.
5175	ProfilingStatus *ProfilingStatus `locationName:"profilingStatus" type:"structure"`
5176
5177	// A list of the tags that belong to this profiling group.
5178	Tags map[string]*string `locationName:"tags" type:"map"`
5179
5180	// The date and time when the profiling group was last updated. Specify using
5181	// the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
5182	// past June 1, 2020 1:15:02 PM UTC.
5183	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`
5184}
5185
5186// String returns the string representation
5187func (s ProfilingGroupDescription) String() string {
5188	return awsutil.Prettify(s)
5189}
5190
5191// GoString returns the string representation
5192func (s ProfilingGroupDescription) GoString() string {
5193	return s.String()
5194}
5195
5196// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
5197func (s *ProfilingGroupDescription) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *ProfilingGroupDescription {
5198	s.AgentOrchestrationConfig = v
5199	return s
5200}
5201
5202// SetArn sets the Arn field's value.
5203func (s *ProfilingGroupDescription) SetArn(v string) *ProfilingGroupDescription {
5204	s.Arn = &v
5205	return s
5206}
5207
5208// SetComputePlatform sets the ComputePlatform field's value.
5209func (s *ProfilingGroupDescription) SetComputePlatform(v string) *ProfilingGroupDescription {
5210	s.ComputePlatform = &v
5211	return s
5212}
5213
5214// SetCreatedAt sets the CreatedAt field's value.
5215func (s *ProfilingGroupDescription) SetCreatedAt(v time.Time) *ProfilingGroupDescription {
5216	s.CreatedAt = &v
5217	return s
5218}
5219
5220// SetName sets the Name field's value.
5221func (s *ProfilingGroupDescription) SetName(v string) *ProfilingGroupDescription {
5222	s.Name = &v
5223	return s
5224}
5225
5226// SetProfilingStatus sets the ProfilingStatus field's value.
5227func (s *ProfilingGroupDescription) SetProfilingStatus(v *ProfilingStatus) *ProfilingGroupDescription {
5228	s.ProfilingStatus = v
5229	return s
5230}
5231
5232// SetTags sets the Tags field's value.
5233func (s *ProfilingGroupDescription) SetTags(v map[string]*string) *ProfilingGroupDescription {
5234	s.Tags = v
5235	return s
5236}
5237
5238// SetUpdatedAt sets the UpdatedAt field's value.
5239func (s *ProfilingGroupDescription) SetUpdatedAt(v time.Time) *ProfilingGroupDescription {
5240	s.UpdatedAt = &v
5241	return s
5242}
5243
5244// Profiling status includes information about the last time a profile agent
5245// pinged back, the last time a profile was received, and the aggregation period
5246// and start time for the most recent aggregated profile.
5247type ProfilingStatus struct {
5248	_ struct{} `type:"structure"`
5249
5250	// The date and time when the profiling agent most recently pinged back. Specify
5251	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
5252	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
5253	LatestAgentOrchestratedAt *time.Time `locationName:"latestAgentOrchestratedAt" type:"timestamp" timestampFormat:"iso8601"`
5254
5255	// The date and time when the most recent profile was received. Specify using
5256	// the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
5257	// past June 1, 2020 1:15:02 PM UTC.
5258	LatestAgentProfileReportedAt *time.Time `locationName:"latestAgentProfileReportedAt" type:"timestamp" timestampFormat:"iso8601"`
5259
5260	// An AggregatedProfileTime (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html)
5261	// object that contains the aggregation period and start time for an aggregated
5262	// profile.
5263	LatestAggregatedProfile *AggregatedProfileTime `locationName:"latestAggregatedProfile" type:"structure"`
5264}
5265
5266// String returns the string representation
5267func (s ProfilingStatus) String() string {
5268	return awsutil.Prettify(s)
5269}
5270
5271// GoString returns the string representation
5272func (s ProfilingStatus) GoString() string {
5273	return s.String()
5274}
5275
5276// SetLatestAgentOrchestratedAt sets the LatestAgentOrchestratedAt field's value.
5277func (s *ProfilingStatus) SetLatestAgentOrchestratedAt(v time.Time) *ProfilingStatus {
5278	s.LatestAgentOrchestratedAt = &v
5279	return s
5280}
5281
5282// SetLatestAgentProfileReportedAt sets the LatestAgentProfileReportedAt field's value.
5283func (s *ProfilingStatus) SetLatestAgentProfileReportedAt(v time.Time) *ProfilingStatus {
5284	s.LatestAgentProfileReportedAt = &v
5285	return s
5286}
5287
5288// SetLatestAggregatedProfile sets the LatestAggregatedProfile field's value.
5289func (s *ProfilingStatus) SetLatestAggregatedProfile(v *AggregatedProfileTime) *ProfilingStatus {
5290	s.LatestAggregatedProfile = v
5291	return s
5292}
5293
5294// The structure representing the putPermissionRequest.
5295type PutPermissionInput struct {
5296	_ struct{} `type:"structure"`
5297
5298	// Specifies an action group that contains permissions to add to a profiling
5299	// group resource. One action group is supported, agentPermissions, which grants
5300	// permission to perform actions required by the profiling agent, ConfigureAgent
5301	// and PostAgentProfile permissions.
5302	//
5303	// ActionGroup is a required field
5304	ActionGroup *string `location:"uri" locationName:"actionGroup" type:"string" required:"true" enum:"ActionGroup"`
5305
5306	// A list ARNs for the roles and users you want to grant access to the profiling
5307	// group. Wildcards are not are supported in the ARNs.
5308	//
5309	// Principals is a required field
5310	Principals []*string `locationName:"principals" min:"1" type:"list" required:"true"`
5311
5312	// The name of the profiling group to grant access to.
5313	//
5314	// ProfilingGroupName is a required field
5315	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5316
5317	// A universally unique identifier (UUID) for the revision of the policy you
5318	// are adding to the profiling group. Do not specify this when you add permissions
5319	// to a profiling group for the first time. If a policy already exists on the
5320	// profiling group, you must specify the revisionId.
5321	RevisionId *string `locationName:"revisionId" type:"string"`
5322}
5323
5324// String returns the string representation
5325func (s PutPermissionInput) String() string {
5326	return awsutil.Prettify(s)
5327}
5328
5329// GoString returns the string representation
5330func (s PutPermissionInput) GoString() string {
5331	return s.String()
5332}
5333
5334// Validate inspects the fields of the type to determine if they are valid.
5335func (s *PutPermissionInput) Validate() error {
5336	invalidParams := request.ErrInvalidParams{Context: "PutPermissionInput"}
5337	if s.ActionGroup == nil {
5338		invalidParams.Add(request.NewErrParamRequired("ActionGroup"))
5339	}
5340	if s.ActionGroup != nil && len(*s.ActionGroup) < 1 {
5341		invalidParams.Add(request.NewErrParamMinLen("ActionGroup", 1))
5342	}
5343	if s.Principals == nil {
5344		invalidParams.Add(request.NewErrParamRequired("Principals"))
5345	}
5346	if s.Principals != nil && len(s.Principals) < 1 {
5347		invalidParams.Add(request.NewErrParamMinLen("Principals", 1))
5348	}
5349	if s.ProfilingGroupName == nil {
5350		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5351	}
5352	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5353		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5354	}
5355
5356	if invalidParams.Len() > 0 {
5357		return invalidParams
5358	}
5359	return nil
5360}
5361
5362// SetActionGroup sets the ActionGroup field's value.
5363func (s *PutPermissionInput) SetActionGroup(v string) *PutPermissionInput {
5364	s.ActionGroup = &v
5365	return s
5366}
5367
5368// SetPrincipals sets the Principals field's value.
5369func (s *PutPermissionInput) SetPrincipals(v []*string) *PutPermissionInput {
5370	s.Principals = v
5371	return s
5372}
5373
5374// SetProfilingGroupName sets the ProfilingGroupName field's value.
5375func (s *PutPermissionInput) SetProfilingGroupName(v string) *PutPermissionInput {
5376	s.ProfilingGroupName = &v
5377	return s
5378}
5379
5380// SetRevisionId sets the RevisionId field's value.
5381func (s *PutPermissionInput) SetRevisionId(v string) *PutPermissionInput {
5382	s.RevisionId = &v
5383	return s
5384}
5385
5386// The structure representing the putPermissionResponse.
5387type PutPermissionOutput struct {
5388	_ struct{} `type:"structure"`
5389
5390	// The JSON-formatted resource-based policy on the profiling group that includes
5391	// the added permissions.
5392	//
5393	// Policy is a required field
5394	Policy *string `locationName:"policy" type:"string" required:"true"`
5395
5396	// A universally unique identifier (UUID) for the revision of the resource-based
5397	// policy that includes the added permissions. The JSON-formatted policy is
5398	// in the policy element of the response.
5399	//
5400	// RevisionId is a required field
5401	RevisionId *string `locationName:"revisionId" type:"string" required:"true"`
5402}
5403
5404// String returns the string representation
5405func (s PutPermissionOutput) String() string {
5406	return awsutil.Prettify(s)
5407}
5408
5409// GoString returns the string representation
5410func (s PutPermissionOutput) GoString() string {
5411	return s.String()
5412}
5413
5414// SetPolicy sets the Policy field's value.
5415func (s *PutPermissionOutput) SetPolicy(v string) *PutPermissionOutput {
5416	s.Policy = &v
5417	return s
5418}
5419
5420// SetRevisionId sets the RevisionId field's value.
5421func (s *PutPermissionOutput) SetRevisionId(v string) *PutPermissionOutput {
5422	s.RevisionId = &v
5423	return s
5424}
5425
5426// A potential improvement that was found from analyzing the profiling data.
5427type Recommendation struct {
5428	_ struct{} `type:"structure"`
5429
5430	// How many different places in the profile graph triggered a match.
5431	//
5432	// AllMatchesCount is a required field
5433	AllMatchesCount *int64 `locationName:"allMatchesCount" type:"integer" required:"true"`
5434
5435	// How much of the total sample count is potentially affected.
5436	//
5437	// AllMatchesSum is a required field
5438	AllMatchesSum *float64 `locationName:"allMatchesSum" type:"double" required:"true"`
5439
5440	// End time of the profile that was used by this analysis. This is specified
5441	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
5442	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
5443	//
5444	// EndTime is a required field
5445	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
5446
5447	// The pattern that analysis recognized in the profile to make this recommendation.
5448	//
5449	// Pattern is a required field
5450	Pattern *Pattern `locationName:"pattern" type:"structure" required:"true"`
5451
5452	// The start time of the profile that was used by this analysis. This is specified
5453	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
5454	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
5455	//
5456	// StartTime is a required field
5457	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
5458
5459	// List of the matches with most impact.
5460	//
5461	// TopMatches is a required field
5462	TopMatches []*Match `locationName:"topMatches" type:"list" required:"true"`
5463}
5464
5465// String returns the string representation
5466func (s Recommendation) String() string {
5467	return awsutil.Prettify(s)
5468}
5469
5470// GoString returns the string representation
5471func (s Recommendation) GoString() string {
5472	return s.String()
5473}
5474
5475// SetAllMatchesCount sets the AllMatchesCount field's value.
5476func (s *Recommendation) SetAllMatchesCount(v int64) *Recommendation {
5477	s.AllMatchesCount = &v
5478	return s
5479}
5480
5481// SetAllMatchesSum sets the AllMatchesSum field's value.
5482func (s *Recommendation) SetAllMatchesSum(v float64) *Recommendation {
5483	s.AllMatchesSum = &v
5484	return s
5485}
5486
5487// SetEndTime sets the EndTime field's value.
5488func (s *Recommendation) SetEndTime(v time.Time) *Recommendation {
5489	s.EndTime = &v
5490	return s
5491}
5492
5493// SetPattern sets the Pattern field's value.
5494func (s *Recommendation) SetPattern(v *Pattern) *Recommendation {
5495	s.Pattern = v
5496	return s
5497}
5498
5499// SetStartTime sets the StartTime field's value.
5500func (s *Recommendation) SetStartTime(v time.Time) *Recommendation {
5501	s.StartTime = &v
5502	return s
5503}
5504
5505// SetTopMatches sets the TopMatches field's value.
5506func (s *Recommendation) SetTopMatches(v []*Match) *Recommendation {
5507	s.TopMatches = v
5508	return s
5509}
5510
5511// The structure representing the RemoveNotificationChannelRequest.
5512type RemoveNotificationChannelInput struct {
5513	_ struct{} `type:"structure"`
5514
5515	// The id of the channel that we want to stop receiving notifications.
5516	//
5517	// ChannelId is a required field
5518	ChannelId *string `location:"uri" locationName:"channelId" type:"string" required:"true"`
5519
5520	// The name of the profiling group we want to change notification configuration
5521	// for.
5522	//
5523	// ProfilingGroupName is a required field
5524	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5525}
5526
5527// String returns the string representation
5528func (s RemoveNotificationChannelInput) String() string {
5529	return awsutil.Prettify(s)
5530}
5531
5532// GoString returns the string representation
5533func (s RemoveNotificationChannelInput) GoString() string {
5534	return s.String()
5535}
5536
5537// Validate inspects the fields of the type to determine if they are valid.
5538func (s *RemoveNotificationChannelInput) Validate() error {
5539	invalidParams := request.ErrInvalidParams{Context: "RemoveNotificationChannelInput"}
5540	if s.ChannelId == nil {
5541		invalidParams.Add(request.NewErrParamRequired("ChannelId"))
5542	}
5543	if s.ChannelId != nil && len(*s.ChannelId) < 1 {
5544		invalidParams.Add(request.NewErrParamMinLen("ChannelId", 1))
5545	}
5546	if s.ProfilingGroupName == nil {
5547		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5548	}
5549	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5550		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5551	}
5552
5553	if invalidParams.Len() > 0 {
5554		return invalidParams
5555	}
5556	return nil
5557}
5558
5559// SetChannelId sets the ChannelId field's value.
5560func (s *RemoveNotificationChannelInput) SetChannelId(v string) *RemoveNotificationChannelInput {
5561	s.ChannelId = &v
5562	return s
5563}
5564
5565// SetProfilingGroupName sets the ProfilingGroupName field's value.
5566func (s *RemoveNotificationChannelInput) SetProfilingGroupName(v string) *RemoveNotificationChannelInput {
5567	s.ProfilingGroupName = &v
5568	return s
5569}
5570
5571// The structure representing the RemoveNotificationChannelResponse.
5572type RemoveNotificationChannelOutput struct {
5573	_ struct{} `type:"structure"`
5574
5575	// The new notification configuration for this profiling group.
5576	NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure"`
5577}
5578
5579// String returns the string representation
5580func (s RemoveNotificationChannelOutput) String() string {
5581	return awsutil.Prettify(s)
5582}
5583
5584// GoString returns the string representation
5585func (s RemoveNotificationChannelOutput) GoString() string {
5586	return s.String()
5587}
5588
5589// SetNotificationConfiguration sets the NotificationConfiguration field's value.
5590func (s *RemoveNotificationChannelOutput) SetNotificationConfiguration(v *NotificationConfiguration) *RemoveNotificationChannelOutput {
5591	s.NotificationConfiguration = v
5592	return s
5593}
5594
5595type RemovePermissionInput struct {
5596	_ struct{} `type:"structure"`
5597
5598	// Specifies an action group that contains the permissions to remove from a
5599	// profiling group's resource-based policy. One action group is supported, agentPermissions,
5600	// which grants ConfigureAgent and PostAgentProfile permissions.
5601	//
5602	// ActionGroup is a required field
5603	ActionGroup *string `location:"uri" locationName:"actionGroup" type:"string" required:"true" enum:"ActionGroup"`
5604
5605	// The name of the profiling group.
5606	//
5607	// ProfilingGroupName is a required field
5608	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5609
5610	// A universally unique identifier (UUID) for the revision of the resource-based
5611	// policy from which you want to remove permissions.
5612	//
5613	// RevisionId is a required field
5614	RevisionId *string `location:"querystring" locationName:"revisionId" type:"string" required:"true"`
5615}
5616
5617// String returns the string representation
5618func (s RemovePermissionInput) String() string {
5619	return awsutil.Prettify(s)
5620}
5621
5622// GoString returns the string representation
5623func (s RemovePermissionInput) GoString() string {
5624	return s.String()
5625}
5626
5627// Validate inspects the fields of the type to determine if they are valid.
5628func (s *RemovePermissionInput) Validate() error {
5629	invalidParams := request.ErrInvalidParams{Context: "RemovePermissionInput"}
5630	if s.ActionGroup == nil {
5631		invalidParams.Add(request.NewErrParamRequired("ActionGroup"))
5632	}
5633	if s.ActionGroup != nil && len(*s.ActionGroup) < 1 {
5634		invalidParams.Add(request.NewErrParamMinLen("ActionGroup", 1))
5635	}
5636	if s.ProfilingGroupName == nil {
5637		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5638	}
5639	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5640		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5641	}
5642	if s.RevisionId == nil {
5643		invalidParams.Add(request.NewErrParamRequired("RevisionId"))
5644	}
5645
5646	if invalidParams.Len() > 0 {
5647		return invalidParams
5648	}
5649	return nil
5650}
5651
5652// SetActionGroup sets the ActionGroup field's value.
5653func (s *RemovePermissionInput) SetActionGroup(v string) *RemovePermissionInput {
5654	s.ActionGroup = &v
5655	return s
5656}
5657
5658// SetProfilingGroupName sets the ProfilingGroupName field's value.
5659func (s *RemovePermissionInput) SetProfilingGroupName(v string) *RemovePermissionInput {
5660	s.ProfilingGroupName = &v
5661	return s
5662}
5663
5664// SetRevisionId sets the RevisionId field's value.
5665func (s *RemovePermissionInput) SetRevisionId(v string) *RemovePermissionInput {
5666	s.RevisionId = &v
5667	return s
5668}
5669
5670// The structure representing the removePermissionResponse.
5671type RemovePermissionOutput struct {
5672	_ struct{} `type:"structure"`
5673
5674	// The JSON-formatted resource-based policy on the profiling group after the
5675	// specified permissions were removed.
5676	//
5677	// Policy is a required field
5678	Policy *string `locationName:"policy" type:"string" required:"true"`
5679
5680	// A universally unique identifier (UUID) for the revision of the resource-based
5681	// policy after the specified permissions were removed. The updated JSON-formatted
5682	// policy is in the policy element of the response.
5683	//
5684	// RevisionId is a required field
5685	RevisionId *string `locationName:"revisionId" type:"string" required:"true"`
5686}
5687
5688// String returns the string representation
5689func (s RemovePermissionOutput) String() string {
5690	return awsutil.Prettify(s)
5691}
5692
5693// GoString returns the string representation
5694func (s RemovePermissionOutput) GoString() string {
5695	return s.String()
5696}
5697
5698// SetPolicy sets the Policy field's value.
5699func (s *RemovePermissionOutput) SetPolicy(v string) *RemovePermissionOutput {
5700	s.Policy = &v
5701	return s
5702}
5703
5704// SetRevisionId sets the RevisionId field's value.
5705func (s *RemovePermissionOutput) SetRevisionId(v string) *RemovePermissionOutput {
5706	s.RevisionId = &v
5707	return s
5708}
5709
5710// The resource specified in the request does not exist.
5711type ResourceNotFoundException struct {
5712	_            struct{}                  `type:"structure"`
5713	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5714
5715	Message_ *string `locationName:"message" type:"string"`
5716}
5717
5718// String returns the string representation
5719func (s ResourceNotFoundException) String() string {
5720	return awsutil.Prettify(s)
5721}
5722
5723// GoString returns the string representation
5724func (s ResourceNotFoundException) GoString() string {
5725	return s.String()
5726}
5727
5728func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
5729	return &ResourceNotFoundException{
5730		RespMetadata: v,
5731	}
5732}
5733
5734// Code returns the exception type name.
5735func (s *ResourceNotFoundException) Code() string {
5736	return "ResourceNotFoundException"
5737}
5738
5739// Message returns the exception's message.
5740func (s *ResourceNotFoundException) Message() string {
5741	if s.Message_ != nil {
5742		return *s.Message_
5743	}
5744	return ""
5745}
5746
5747// OrigErr always returns nil, satisfies awserr.Error interface.
5748func (s *ResourceNotFoundException) OrigErr() error {
5749	return nil
5750}
5751
5752func (s *ResourceNotFoundException) Error() string {
5753	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5754}
5755
5756// Status code returns the HTTP status code for the request's response error.
5757func (s *ResourceNotFoundException) StatusCode() int {
5758	return s.RespMetadata.StatusCode
5759}
5760
5761// RequestID returns the service's response RequestID for request.
5762func (s *ResourceNotFoundException) RequestID() string {
5763	return s.RespMetadata.RequestID
5764}
5765
5766// You have exceeded your service quota. To perform the requested action, remove
5767// some of the relevant resources, or use Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html)
5768// to request a service quota increase.
5769type ServiceQuotaExceededException struct {
5770	_            struct{}                  `type:"structure"`
5771	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5772
5773	Message_ *string `locationName:"message" type:"string"`
5774}
5775
5776// String returns the string representation
5777func (s ServiceQuotaExceededException) String() string {
5778	return awsutil.Prettify(s)
5779}
5780
5781// GoString returns the string representation
5782func (s ServiceQuotaExceededException) GoString() string {
5783	return s.String()
5784}
5785
5786func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
5787	return &ServiceQuotaExceededException{
5788		RespMetadata: v,
5789	}
5790}
5791
5792// Code returns the exception type name.
5793func (s *ServiceQuotaExceededException) Code() string {
5794	return "ServiceQuotaExceededException"
5795}
5796
5797// Message returns the exception's message.
5798func (s *ServiceQuotaExceededException) Message() string {
5799	if s.Message_ != nil {
5800		return *s.Message_
5801	}
5802	return ""
5803}
5804
5805// OrigErr always returns nil, satisfies awserr.Error interface.
5806func (s *ServiceQuotaExceededException) OrigErr() error {
5807	return nil
5808}
5809
5810func (s *ServiceQuotaExceededException) Error() string {
5811	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5812}
5813
5814// Status code returns the HTTP status code for the request's response error.
5815func (s *ServiceQuotaExceededException) StatusCode() int {
5816	return s.RespMetadata.StatusCode
5817}
5818
5819// RequestID returns the service's response RequestID for request.
5820func (s *ServiceQuotaExceededException) RequestID() string {
5821	return s.RespMetadata.RequestID
5822}
5823
5824// The structure representing the SubmitFeedbackRequest.
5825type SubmitFeedbackInput struct {
5826	_ struct{} `type:"structure"`
5827
5828	// The universally unique identifier (UUID) of the AnomalyInstance (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html)
5829	// object that is included in the analysis data.
5830	//
5831	// AnomalyInstanceId is a required field
5832	AnomalyInstanceId *string `location:"uri" locationName:"anomalyInstanceId" type:"string" required:"true"`
5833
5834	// Optional feedback about this anomaly.
5835	Comment *string `locationName:"comment" type:"string"`
5836
5837	// The name of the profiling group that is associated with the analysis data.
5838	//
5839	// ProfilingGroupName is a required field
5840	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5841
5842	// The feedback tpye. Thee are two valid values, Positive and Negative.
5843	//
5844	// Type is a required field
5845	Type *string `locationName:"type" type:"string" required:"true" enum:"FeedbackType"`
5846}
5847
5848// String returns the string representation
5849func (s SubmitFeedbackInput) String() string {
5850	return awsutil.Prettify(s)
5851}
5852
5853// GoString returns the string representation
5854func (s SubmitFeedbackInput) GoString() string {
5855	return s.String()
5856}
5857
5858// Validate inspects the fields of the type to determine if they are valid.
5859func (s *SubmitFeedbackInput) Validate() error {
5860	invalidParams := request.ErrInvalidParams{Context: "SubmitFeedbackInput"}
5861	if s.AnomalyInstanceId == nil {
5862		invalidParams.Add(request.NewErrParamRequired("AnomalyInstanceId"))
5863	}
5864	if s.AnomalyInstanceId != nil && len(*s.AnomalyInstanceId) < 1 {
5865		invalidParams.Add(request.NewErrParamMinLen("AnomalyInstanceId", 1))
5866	}
5867	if s.ProfilingGroupName == nil {
5868		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5869	}
5870	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5871		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5872	}
5873	if s.Type == nil {
5874		invalidParams.Add(request.NewErrParamRequired("Type"))
5875	}
5876
5877	if invalidParams.Len() > 0 {
5878		return invalidParams
5879	}
5880	return nil
5881}
5882
5883// SetAnomalyInstanceId sets the AnomalyInstanceId field's value.
5884func (s *SubmitFeedbackInput) SetAnomalyInstanceId(v string) *SubmitFeedbackInput {
5885	s.AnomalyInstanceId = &v
5886	return s
5887}
5888
5889// SetComment sets the Comment field's value.
5890func (s *SubmitFeedbackInput) SetComment(v string) *SubmitFeedbackInput {
5891	s.Comment = &v
5892	return s
5893}
5894
5895// SetProfilingGroupName sets the ProfilingGroupName field's value.
5896func (s *SubmitFeedbackInput) SetProfilingGroupName(v string) *SubmitFeedbackInput {
5897	s.ProfilingGroupName = &v
5898	return s
5899}
5900
5901// SetType sets the Type field's value.
5902func (s *SubmitFeedbackInput) SetType(v string) *SubmitFeedbackInput {
5903	s.Type = &v
5904	return s
5905}
5906
5907// The structure representing the SubmitFeedbackResponse.
5908type SubmitFeedbackOutput struct {
5909	_ struct{} `type:"structure"`
5910}
5911
5912// String returns the string representation
5913func (s SubmitFeedbackOutput) String() string {
5914	return awsutil.Prettify(s)
5915}
5916
5917// GoString returns the string representation
5918func (s SubmitFeedbackOutput) GoString() string {
5919	return s.String()
5920}
5921
5922type TagResourceInput struct {
5923	_ struct{} `type:"structure"`
5924
5925	// The Amazon Resource Name (ARN) of the resource that the tags are added to.
5926	//
5927	// ResourceArn is a required field
5928	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
5929
5930	// The list of tags that are added to the specified resource.
5931	//
5932	// Tags is a required field
5933	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
5934}
5935
5936// String returns the string representation
5937func (s TagResourceInput) String() string {
5938	return awsutil.Prettify(s)
5939}
5940
5941// GoString returns the string representation
5942func (s TagResourceInput) GoString() string {
5943	return s.String()
5944}
5945
5946// Validate inspects the fields of the type to determine if they are valid.
5947func (s *TagResourceInput) Validate() error {
5948	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
5949	if s.ResourceArn == nil {
5950		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5951	}
5952	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5953		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5954	}
5955	if s.Tags == nil {
5956		invalidParams.Add(request.NewErrParamRequired("Tags"))
5957	}
5958
5959	if invalidParams.Len() > 0 {
5960		return invalidParams
5961	}
5962	return nil
5963}
5964
5965// SetResourceArn sets the ResourceArn field's value.
5966func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
5967	s.ResourceArn = &v
5968	return s
5969}
5970
5971// SetTags sets the Tags field's value.
5972func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
5973	s.Tags = v
5974	return s
5975}
5976
5977type TagResourceOutput struct {
5978	_ struct{} `type:"structure"`
5979}
5980
5981// String returns the string representation
5982func (s TagResourceOutput) String() string {
5983	return awsutil.Prettify(s)
5984}
5985
5986// GoString returns the string representation
5987func (s TagResourceOutput) GoString() string {
5988	return s.String()
5989}
5990
5991// The request was denied due to request throttling.
5992type ThrottlingException struct {
5993	_            struct{}                  `type:"structure"`
5994	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5995
5996	Message_ *string `locationName:"message" type:"string"`
5997}
5998
5999// String returns the string representation
6000func (s ThrottlingException) String() string {
6001	return awsutil.Prettify(s)
6002}
6003
6004// GoString returns the string representation
6005func (s ThrottlingException) GoString() string {
6006	return s.String()
6007}
6008
6009func newErrorThrottlingException(v protocol.ResponseMetadata) error {
6010	return &ThrottlingException{
6011		RespMetadata: v,
6012	}
6013}
6014
6015// Code returns the exception type name.
6016func (s *ThrottlingException) Code() string {
6017	return "ThrottlingException"
6018}
6019
6020// Message returns the exception's message.
6021func (s *ThrottlingException) Message() string {
6022	if s.Message_ != nil {
6023		return *s.Message_
6024	}
6025	return ""
6026}
6027
6028// OrigErr always returns nil, satisfies awserr.Error interface.
6029func (s *ThrottlingException) OrigErr() error {
6030	return nil
6031}
6032
6033func (s *ThrottlingException) Error() string {
6034	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6035}
6036
6037// Status code returns the HTTP status code for the request's response error.
6038func (s *ThrottlingException) StatusCode() int {
6039	return s.RespMetadata.StatusCode
6040}
6041
6042// RequestID returns the service's response RequestID for request.
6043func (s *ThrottlingException) RequestID() string {
6044	return s.RespMetadata.RequestID
6045}
6046
6047// A data type that contains a Timestamp object. This is specified using the
6048// ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
6049// past June 1, 2020 1:15:02 PM UTC.
6050type TimestampStructure struct {
6051	_ struct{} `type:"structure"`
6052
6053	// A Timestamp. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
6054	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
6055	//
6056	// Value is a required field
6057	Value *time.Time `locationName:"value" type:"timestamp" timestampFormat:"iso8601" required:"true"`
6058}
6059
6060// String returns the string representation
6061func (s TimestampStructure) String() string {
6062	return awsutil.Prettify(s)
6063}
6064
6065// GoString returns the string representation
6066func (s TimestampStructure) GoString() string {
6067	return s.String()
6068}
6069
6070// SetValue sets the Value field's value.
6071func (s *TimestampStructure) SetValue(v time.Time) *TimestampStructure {
6072	s.Value = &v
6073	return s
6074}
6075
6076type UntagResourceInput struct {
6077	_ struct{} `type:"structure"`
6078
6079	// The Amazon Resource Name (ARN) of the resource that contains the tags to
6080	// remove.
6081	//
6082	// ResourceArn is a required field
6083	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6084
6085	// A list of tag keys. Existing tags of resources with keys in this list are
6086	// removed from the specified resource.
6087	//
6088	// TagKeys is a required field
6089	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
6090}
6091
6092// String returns the string representation
6093func (s UntagResourceInput) String() string {
6094	return awsutil.Prettify(s)
6095}
6096
6097// GoString returns the string representation
6098func (s UntagResourceInput) GoString() string {
6099	return s.String()
6100}
6101
6102// Validate inspects the fields of the type to determine if they are valid.
6103func (s *UntagResourceInput) Validate() error {
6104	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6105	if s.ResourceArn == nil {
6106		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6107	}
6108	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6109		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6110	}
6111	if s.TagKeys == nil {
6112		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6113	}
6114
6115	if invalidParams.Len() > 0 {
6116		return invalidParams
6117	}
6118	return nil
6119}
6120
6121// SetResourceArn sets the ResourceArn field's value.
6122func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
6123	s.ResourceArn = &v
6124	return s
6125}
6126
6127// SetTagKeys sets the TagKeys field's value.
6128func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
6129	s.TagKeys = v
6130	return s
6131}
6132
6133type UntagResourceOutput struct {
6134	_ struct{} `type:"structure"`
6135}
6136
6137// String returns the string representation
6138func (s UntagResourceOutput) String() string {
6139	return awsutil.Prettify(s)
6140}
6141
6142// GoString returns the string representation
6143func (s UntagResourceOutput) GoString() string {
6144	return s.String()
6145}
6146
6147// The structure representing the updateProfilingGroupRequest.
6148type UpdateProfilingGroupInput struct {
6149	_ struct{} `type:"structure"`
6150
6151	// Specifies whether profiling is enabled or disabled for a profiling group.
6152	//
6153	// AgentOrchestrationConfig is a required field
6154	AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure" required:"true"`
6155
6156	// The name of the profiling group to update.
6157	//
6158	// ProfilingGroupName is a required field
6159	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
6160}
6161
6162// String returns the string representation
6163func (s UpdateProfilingGroupInput) String() string {
6164	return awsutil.Prettify(s)
6165}
6166
6167// GoString returns the string representation
6168func (s UpdateProfilingGroupInput) GoString() string {
6169	return s.String()
6170}
6171
6172// Validate inspects the fields of the type to determine if they are valid.
6173func (s *UpdateProfilingGroupInput) Validate() error {
6174	invalidParams := request.ErrInvalidParams{Context: "UpdateProfilingGroupInput"}
6175	if s.AgentOrchestrationConfig == nil {
6176		invalidParams.Add(request.NewErrParamRequired("AgentOrchestrationConfig"))
6177	}
6178	if s.ProfilingGroupName == nil {
6179		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
6180	}
6181	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
6182		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
6183	}
6184	if s.AgentOrchestrationConfig != nil {
6185		if err := s.AgentOrchestrationConfig.Validate(); err != nil {
6186			invalidParams.AddNested("AgentOrchestrationConfig", err.(request.ErrInvalidParams))
6187		}
6188	}
6189
6190	if invalidParams.Len() > 0 {
6191		return invalidParams
6192	}
6193	return nil
6194}
6195
6196// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
6197func (s *UpdateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *UpdateProfilingGroupInput {
6198	s.AgentOrchestrationConfig = v
6199	return s
6200}
6201
6202// SetProfilingGroupName sets the ProfilingGroupName field's value.
6203func (s *UpdateProfilingGroupInput) SetProfilingGroupName(v string) *UpdateProfilingGroupInput {
6204	s.ProfilingGroupName = &v
6205	return s
6206}
6207
6208// The structure representing the updateProfilingGroupResponse.
6209type UpdateProfilingGroupOutput struct {
6210	_ struct{} `type:"structure" payload:"ProfilingGroup"`
6211
6212	// A ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
6213	// that contains information about the returned updated profiling group.
6214	//
6215	// ProfilingGroup is a required field
6216	ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"`
6217}
6218
6219// String returns the string representation
6220func (s UpdateProfilingGroupOutput) String() string {
6221	return awsutil.Prettify(s)
6222}
6223
6224// GoString returns the string representation
6225func (s UpdateProfilingGroupOutput) GoString() string {
6226	return s.String()
6227}
6228
6229// SetProfilingGroup sets the ProfilingGroup field's value.
6230func (s *UpdateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *UpdateProfilingGroupOutput {
6231	s.ProfilingGroup = v
6232	return s
6233}
6234
6235// Feedback that can be submitted for each instance of an anomaly by the user.
6236// Feedback is be used for improvements in generating recommendations for the
6237// application.
6238type UserFeedback struct {
6239	_ struct{} `type:"structure"`
6240
6241	// Optional Positive or Negative feedback submitted by the user about whether
6242	// the recommendation is useful or not.
6243	//
6244	// Type is a required field
6245	Type *string `locationName:"type" type:"string" required:"true" enum:"FeedbackType"`
6246}
6247
6248// String returns the string representation
6249func (s UserFeedback) String() string {
6250	return awsutil.Prettify(s)
6251}
6252
6253// GoString returns the string representation
6254func (s UserFeedback) GoString() string {
6255	return s.String()
6256}
6257
6258// SetType sets the Type field's value.
6259func (s *UserFeedback) SetType(v string) *UserFeedback {
6260	s.Type = &v
6261	return s
6262}
6263
6264// The parameter is not valid.
6265type ValidationException struct {
6266	_            struct{}                  `type:"structure"`
6267	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6268
6269	Message_ *string `locationName:"message" type:"string"`
6270}
6271
6272// String returns the string representation
6273func (s ValidationException) String() string {
6274	return awsutil.Prettify(s)
6275}
6276
6277// GoString returns the string representation
6278func (s ValidationException) GoString() string {
6279	return s.String()
6280}
6281
6282func newErrorValidationException(v protocol.ResponseMetadata) error {
6283	return &ValidationException{
6284		RespMetadata: v,
6285	}
6286}
6287
6288// Code returns the exception type name.
6289func (s *ValidationException) Code() string {
6290	return "ValidationException"
6291}
6292
6293// Message returns the exception's message.
6294func (s *ValidationException) Message() string {
6295	if s.Message_ != nil {
6296		return *s.Message_
6297	}
6298	return ""
6299}
6300
6301// OrigErr always returns nil, satisfies awserr.Error interface.
6302func (s *ValidationException) OrigErr() error {
6303	return nil
6304}
6305
6306func (s *ValidationException) Error() string {
6307	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6308}
6309
6310// Status code returns the HTTP status code for the request's response error.
6311func (s *ValidationException) StatusCode() int {
6312	return s.RespMetadata.StatusCode
6313}
6314
6315// RequestID returns the service's response RequestID for request.
6316func (s *ValidationException) RequestID() string {
6317	return s.RespMetadata.RequestID
6318}
6319
6320const (
6321	// ActionGroupAgentPermissions is a ActionGroup enum value
6322	ActionGroupAgentPermissions = "agentPermissions"
6323)
6324
6325// ActionGroup_Values returns all elements of the ActionGroup enum
6326func ActionGroup_Values() []string {
6327	return []string{
6328		ActionGroupAgentPermissions,
6329	}
6330}
6331
6332const (
6333	// AgentParameterFieldSamplingIntervalInMilliseconds is a AgentParameterField enum value
6334	AgentParameterFieldSamplingIntervalInMilliseconds = "SamplingIntervalInMilliseconds"
6335
6336	// AgentParameterFieldReportingIntervalInMilliseconds is a AgentParameterField enum value
6337	AgentParameterFieldReportingIntervalInMilliseconds = "ReportingIntervalInMilliseconds"
6338
6339	// AgentParameterFieldMinimumTimeForReportingInMilliseconds is a AgentParameterField enum value
6340	AgentParameterFieldMinimumTimeForReportingInMilliseconds = "MinimumTimeForReportingInMilliseconds"
6341
6342	// AgentParameterFieldMemoryUsageLimitPercent is a AgentParameterField enum value
6343	AgentParameterFieldMemoryUsageLimitPercent = "MemoryUsageLimitPercent"
6344
6345	// AgentParameterFieldMaxStackDepth is a AgentParameterField enum value
6346	AgentParameterFieldMaxStackDepth = "MaxStackDepth"
6347)
6348
6349// AgentParameterField_Values returns all elements of the AgentParameterField enum
6350func AgentParameterField_Values() []string {
6351	return []string{
6352		AgentParameterFieldSamplingIntervalInMilliseconds,
6353		AgentParameterFieldReportingIntervalInMilliseconds,
6354		AgentParameterFieldMinimumTimeForReportingInMilliseconds,
6355		AgentParameterFieldMemoryUsageLimitPercent,
6356		AgentParameterFieldMaxStackDepth,
6357	}
6358}
6359
6360const (
6361	// AggregationPeriodPt5m is a AggregationPeriod enum value
6362	AggregationPeriodPt5m = "PT5M"
6363
6364	// AggregationPeriodPt1h is a AggregationPeriod enum value
6365	AggregationPeriodPt1h = "PT1H"
6366
6367	// AggregationPeriodP1d is a AggregationPeriod enum value
6368	AggregationPeriodP1d = "P1D"
6369)
6370
6371// AggregationPeriod_Values returns all elements of the AggregationPeriod enum
6372func AggregationPeriod_Values() []string {
6373	return []string{
6374		AggregationPeriodPt5m,
6375		AggregationPeriodPt1h,
6376		AggregationPeriodP1d,
6377	}
6378}
6379
6380const (
6381	// ComputePlatformDefault is a ComputePlatform enum value
6382	ComputePlatformDefault = "Default"
6383
6384	// ComputePlatformAwslambda is a ComputePlatform enum value
6385	ComputePlatformAwslambda = "AWSLambda"
6386)
6387
6388// ComputePlatform_Values returns all elements of the ComputePlatform enum
6389func ComputePlatform_Values() []string {
6390	return []string{
6391		ComputePlatformDefault,
6392		ComputePlatformAwslambda,
6393	}
6394}
6395
6396const (
6397	// EventPublisherAnomalyDetection is a EventPublisher enum value
6398	EventPublisherAnomalyDetection = "AnomalyDetection"
6399)
6400
6401// EventPublisher_Values returns all elements of the EventPublisher enum
6402func EventPublisher_Values() []string {
6403	return []string{
6404		EventPublisherAnomalyDetection,
6405	}
6406}
6407
6408const (
6409	// FeedbackTypePositive is a FeedbackType enum value
6410	FeedbackTypePositive = "Positive"
6411
6412	// FeedbackTypeNegative is a FeedbackType enum value
6413	FeedbackTypeNegative = "Negative"
6414)
6415
6416// FeedbackType_Values returns all elements of the FeedbackType enum
6417func FeedbackType_Values() []string {
6418	return []string{
6419		FeedbackTypePositive,
6420		FeedbackTypeNegative,
6421	}
6422}
6423
6424const (
6425	// MetadataFieldComputePlatform is a MetadataField enum value
6426	MetadataFieldComputePlatform = "ComputePlatform"
6427
6428	// MetadataFieldAgentId is a MetadataField enum value
6429	MetadataFieldAgentId = "AgentId"
6430
6431	// MetadataFieldAwsRequestId is a MetadataField enum value
6432	MetadataFieldAwsRequestId = "AwsRequestId"
6433
6434	// MetadataFieldExecutionEnvironment is a MetadataField enum value
6435	MetadataFieldExecutionEnvironment = "ExecutionEnvironment"
6436
6437	// MetadataFieldLambdaFunctionArn is a MetadataField enum value
6438	MetadataFieldLambdaFunctionArn = "LambdaFunctionArn"
6439
6440	// MetadataFieldLambdaMemoryLimitInMb is a MetadataField enum value
6441	MetadataFieldLambdaMemoryLimitInMb = "LambdaMemoryLimitInMB"
6442
6443	// MetadataFieldLambdaRemainingTimeInMilliseconds is a MetadataField enum value
6444	MetadataFieldLambdaRemainingTimeInMilliseconds = "LambdaRemainingTimeInMilliseconds"
6445
6446	// MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds is a MetadataField enum value
6447	MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds = "LambdaTimeGapBetweenInvokesInMilliseconds"
6448
6449	// MetadataFieldLambdaPreviousExecutionTimeInMilliseconds is a MetadataField enum value
6450	MetadataFieldLambdaPreviousExecutionTimeInMilliseconds = "LambdaPreviousExecutionTimeInMilliseconds"
6451)
6452
6453// MetadataField_Values returns all elements of the MetadataField enum
6454func MetadataField_Values() []string {
6455	return []string{
6456		MetadataFieldComputePlatform,
6457		MetadataFieldAgentId,
6458		MetadataFieldAwsRequestId,
6459		MetadataFieldExecutionEnvironment,
6460		MetadataFieldLambdaFunctionArn,
6461		MetadataFieldLambdaMemoryLimitInMb,
6462		MetadataFieldLambdaRemainingTimeInMilliseconds,
6463		MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds,
6464		MetadataFieldLambdaPreviousExecutionTimeInMilliseconds,
6465	}
6466}
6467
6468const (
6469	// MetricTypeAggregatedRelativeTotalTime is a MetricType enum value
6470	MetricTypeAggregatedRelativeTotalTime = "AggregatedRelativeTotalTime"
6471)
6472
6473// MetricType_Values returns all elements of the MetricType enum
6474func MetricType_Values() []string {
6475	return []string{
6476		MetricTypeAggregatedRelativeTotalTime,
6477	}
6478}
6479
6480const (
6481	// OrderByTimestampDescending is a OrderBy enum value
6482	OrderByTimestampDescending = "TimestampDescending"
6483
6484	// OrderByTimestampAscending is a OrderBy enum value
6485	OrderByTimestampAscending = "TimestampAscending"
6486)
6487
6488// OrderBy_Values returns all elements of the OrderBy enum
6489func OrderBy_Values() []string {
6490	return []string{
6491		OrderByTimestampDescending,
6492		OrderByTimestampAscending,
6493	}
6494}
6495