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.
2380//
2381// API parameter values that are decorated as "sensitive" in the API will not
2382// be included in the string output. The member name will be present, but the
2383// value will be replaced with "sensitive".
2384func (s AddNotificationChannelsInput) String() string {
2385	return awsutil.Prettify(s)
2386}
2387
2388// GoString returns the string representation.
2389//
2390// API parameter values that are decorated as "sensitive" in the API will not
2391// be included in the string output. The member name will be present, but the
2392// value will be replaced with "sensitive".
2393func (s AddNotificationChannelsInput) GoString() string {
2394	return s.String()
2395}
2396
2397// Validate inspects the fields of the type to determine if they are valid.
2398func (s *AddNotificationChannelsInput) Validate() error {
2399	invalidParams := request.ErrInvalidParams{Context: "AddNotificationChannelsInput"}
2400	if s.Channels == nil {
2401		invalidParams.Add(request.NewErrParamRequired("Channels"))
2402	}
2403	if s.Channels != nil && len(s.Channels) < 1 {
2404		invalidParams.Add(request.NewErrParamMinLen("Channels", 1))
2405	}
2406	if s.ProfilingGroupName == nil {
2407		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
2408	}
2409	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
2410		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
2411	}
2412	if s.Channels != nil {
2413		for i, v := range s.Channels {
2414			if v == nil {
2415				continue
2416			}
2417			if err := v.Validate(); err != nil {
2418				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Channels", i), err.(request.ErrInvalidParams))
2419			}
2420		}
2421	}
2422
2423	if invalidParams.Len() > 0 {
2424		return invalidParams
2425	}
2426	return nil
2427}
2428
2429// SetChannels sets the Channels field's value.
2430func (s *AddNotificationChannelsInput) SetChannels(v []*Channel) *AddNotificationChannelsInput {
2431	s.Channels = v
2432	return s
2433}
2434
2435// SetProfilingGroupName sets the ProfilingGroupName field's value.
2436func (s *AddNotificationChannelsInput) SetProfilingGroupName(v string) *AddNotificationChannelsInput {
2437	s.ProfilingGroupName = &v
2438	return s
2439}
2440
2441// The structure representing the AddNotificationChannelsResponse.
2442type AddNotificationChannelsOutput struct {
2443	_ struct{} `type:"structure"`
2444
2445	// The new notification configuration for this profiling group.
2446	NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure"`
2447}
2448
2449// String returns the string representation.
2450//
2451// API parameter values that are decorated as "sensitive" in the API will not
2452// be included in the string output. The member name will be present, but the
2453// value will be replaced with "sensitive".
2454func (s AddNotificationChannelsOutput) String() string {
2455	return awsutil.Prettify(s)
2456}
2457
2458// GoString returns the string representation.
2459//
2460// API parameter values that are decorated as "sensitive" in the API will not
2461// be included in the string output. The member name will be present, but the
2462// value will be replaced with "sensitive".
2463func (s AddNotificationChannelsOutput) GoString() string {
2464	return s.String()
2465}
2466
2467// SetNotificationConfiguration sets the NotificationConfiguration field's value.
2468func (s *AddNotificationChannelsOutput) SetNotificationConfiguration(v *NotificationConfiguration) *AddNotificationChannelsOutput {
2469	s.NotificationConfiguration = v
2470	return s
2471}
2472
2473// The response of ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html)
2474// that specifies if an agent profiles or not and for how long to return profiling
2475// data.
2476type AgentConfiguration struct {
2477	_ struct{} `type:"structure"`
2478
2479	// Parameters used by the profiler. The valid parameters are:
2480	//
2481	//    * MaxStackDepth - The maximum depth of the stacks in the code that is
2482	//    represented in the profile. For example, if CodeGuru Profiler finds a
2483	//    method A, which calls method B, which calls method C, which calls method
2484	//    D, then the depth is 4. If the maxDepth is set to 2, then the profiler
2485	//    evaluates A and B.
2486	//
2487	//    * MemoryUsageLimitPercent - The percentage of memory that is used by the
2488	//    profiler.
2489	//
2490	//    * MinimumTimeForReportingInMilliseconds - The minimum time in milliseconds
2491	//    between sending reports.
2492	//
2493	//    * ReportingIntervalInMilliseconds - The reporting interval in milliseconds
2494	//    used to report profiles.
2495	//
2496	//    * SamplingIntervalInMilliseconds - The sampling interval in milliseconds
2497	//    that is used to profile samples.
2498	AgentParameters map[string]*string `locationName:"agentParameters" type:"map"`
2499
2500	// How long a profiling agent should send profiling data using ConfigureAgent
2501	// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html).
2502	// For example, if this is set to 300, the profiling agent calls ConfigureAgent
2503	// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html)
2504	// every 5 minutes to submit the profiled data collected during that period.
2505	//
2506	// PeriodInSeconds is a required field
2507	PeriodInSeconds *int64 `locationName:"periodInSeconds" type:"integer" required:"true"`
2508
2509	// A Boolean that specifies whether the profiling agent collects profiling data
2510	// or not. Set to true to enable profiling.
2511	//
2512	// ShouldProfile is a required field
2513	ShouldProfile *bool `locationName:"shouldProfile" type:"boolean" required:"true"`
2514}
2515
2516// String returns the string representation.
2517//
2518// API parameter values that are decorated as "sensitive" in the API will not
2519// be included in the string output. The member name will be present, but the
2520// value will be replaced with "sensitive".
2521func (s AgentConfiguration) String() string {
2522	return awsutil.Prettify(s)
2523}
2524
2525// GoString returns the string representation.
2526//
2527// API parameter values that are decorated as "sensitive" in the API will not
2528// be included in the string output. The member name will be present, but the
2529// value will be replaced with "sensitive".
2530func (s AgentConfiguration) GoString() string {
2531	return s.String()
2532}
2533
2534// SetAgentParameters sets the AgentParameters field's value.
2535func (s *AgentConfiguration) SetAgentParameters(v map[string]*string) *AgentConfiguration {
2536	s.AgentParameters = v
2537	return s
2538}
2539
2540// SetPeriodInSeconds sets the PeriodInSeconds field's value.
2541func (s *AgentConfiguration) SetPeriodInSeconds(v int64) *AgentConfiguration {
2542	s.PeriodInSeconds = &v
2543	return s
2544}
2545
2546// SetShouldProfile sets the ShouldProfile field's value.
2547func (s *AgentConfiguration) SetShouldProfile(v bool) *AgentConfiguration {
2548	s.ShouldProfile = &v
2549	return s
2550}
2551
2552// Specifies whether profiling is enabled or disabled for a profiling group.
2553// It is used by ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html)
2554// to enable or disable profiling for a profiling group.
2555type AgentOrchestrationConfig struct {
2556	_ struct{} `type:"structure"`
2557
2558	// A Boolean that specifies whether the profiling agent collects profiling data
2559	// or not. Set to true to enable profiling.
2560	//
2561	// ProfilingEnabled is a required field
2562	ProfilingEnabled *bool `locationName:"profilingEnabled" type:"boolean" required:"true"`
2563}
2564
2565// String returns the string representation.
2566//
2567// API parameter values that are decorated as "sensitive" in the API will not
2568// be included in the string output. The member name will be present, but the
2569// value will be replaced with "sensitive".
2570func (s AgentOrchestrationConfig) String() string {
2571	return awsutil.Prettify(s)
2572}
2573
2574// GoString returns the string representation.
2575//
2576// API parameter values that are decorated as "sensitive" in the API will not
2577// be included in the string output. The member name will be present, but the
2578// value will be replaced with "sensitive".
2579func (s AgentOrchestrationConfig) GoString() string {
2580	return s.String()
2581}
2582
2583// Validate inspects the fields of the type to determine if they are valid.
2584func (s *AgentOrchestrationConfig) Validate() error {
2585	invalidParams := request.ErrInvalidParams{Context: "AgentOrchestrationConfig"}
2586	if s.ProfilingEnabled == nil {
2587		invalidParams.Add(request.NewErrParamRequired("ProfilingEnabled"))
2588	}
2589
2590	if invalidParams.Len() > 0 {
2591		return invalidParams
2592	}
2593	return nil
2594}
2595
2596// SetProfilingEnabled sets the ProfilingEnabled field's value.
2597func (s *AgentOrchestrationConfig) SetProfilingEnabled(v bool) *AgentOrchestrationConfig {
2598	s.ProfilingEnabled = &v
2599	return s
2600}
2601
2602// Specifies the aggregation period and aggregation start time for an aggregated
2603// profile. An aggregated profile is used to collect posted agent profiles during
2604// an aggregation period. There are three possible aggregation periods (1 day,
2605// 1 hour, or 5 minutes).
2606type AggregatedProfileTime struct {
2607	_ struct{} `type:"structure"`
2608
2609	// The aggregation period. This indicates the period during which an aggregation
2610	// profile collects posted agent profiles for a profiling group. Use one of
2611	// three valid durations that are specified using the ISO 8601 format.
2612	//
2613	//    * P1D — 1 day
2614	//
2615	//    * PT1H — 1 hour
2616	//
2617	//    * PT5M — 5 minutes
2618	Period *string `locationName:"period" type:"string" enum:"AggregationPeriod"`
2619
2620	// The time that aggregation of posted agent profiles for a profiling group
2621	// starts. The aggregation profile contains profiles posted by the agent starting
2622	// at this time for an aggregation period specified by the period property of
2623	// the AggregatedProfileTime object.
2624	//
2625	// Specify start using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2626	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2627	Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
2628}
2629
2630// String returns the string representation.
2631//
2632// API parameter values that are decorated as "sensitive" in the API will not
2633// be included in the string output. The member name will be present, but the
2634// value will be replaced with "sensitive".
2635func (s AggregatedProfileTime) String() string {
2636	return awsutil.Prettify(s)
2637}
2638
2639// GoString returns the string representation.
2640//
2641// API parameter values that are decorated as "sensitive" in the API will not
2642// be included in the string output. The member name will be present, but the
2643// value will be replaced with "sensitive".
2644func (s AggregatedProfileTime) GoString() string {
2645	return s.String()
2646}
2647
2648// SetPeriod sets the Period field's value.
2649func (s *AggregatedProfileTime) SetPeriod(v string) *AggregatedProfileTime {
2650	s.Period = &v
2651	return s
2652}
2653
2654// SetStart sets the Start field's value.
2655func (s *AggregatedProfileTime) SetStart(v time.Time) *AggregatedProfileTime {
2656	s.Start = &v
2657	return s
2658}
2659
2660// Details about an anomaly in a specific metric of application profile. The
2661// anomaly is detected using analysis of the metric data over a period of time.
2662type Anomaly struct {
2663	_ struct{} `type:"structure"`
2664
2665	// A list of the instances of the detected anomalies during the requested period.
2666	//
2667	// Instances is a required field
2668	Instances []*AnomalyInstance `locationName:"instances" type:"list" required:"true"`
2669
2670	// Details about the metric that the analysis used when it detected the anomaly.
2671	// The metric includes the name of the frame that was analyzed with the type
2672	// and thread states used to derive the metric value for that frame.
2673	//
2674	// Metric is a required field
2675	Metric *Metric `locationName:"metric" type:"structure" required:"true"`
2676
2677	// The reason for which metric was flagged as anomalous.
2678	//
2679	// Reason is a required field
2680	Reason *string `locationName:"reason" type:"string" required:"true"`
2681}
2682
2683// String returns the string representation.
2684//
2685// API parameter values that are decorated as "sensitive" in the API will not
2686// be included in the string output. The member name will be present, but the
2687// value will be replaced with "sensitive".
2688func (s Anomaly) String() string {
2689	return awsutil.Prettify(s)
2690}
2691
2692// GoString returns the string representation.
2693//
2694// API parameter values that are decorated as "sensitive" in the API will not
2695// be included in the string output. The member name will be present, but the
2696// value will be replaced with "sensitive".
2697func (s Anomaly) GoString() string {
2698	return s.String()
2699}
2700
2701// SetInstances sets the Instances field's value.
2702func (s *Anomaly) SetInstances(v []*AnomalyInstance) *Anomaly {
2703	s.Instances = v
2704	return s
2705}
2706
2707// SetMetric sets the Metric field's value.
2708func (s *Anomaly) SetMetric(v *Metric) *Anomaly {
2709	s.Metric = v
2710	return s
2711}
2712
2713// SetReason sets the Reason field's value.
2714func (s *Anomaly) SetReason(v string) *Anomaly {
2715	s.Reason = &v
2716	return s
2717}
2718
2719// The specific duration in which the metric is flagged as anomalous.
2720type AnomalyInstance struct {
2721	_ struct{} `type:"structure"`
2722
2723	// The end time of the period during which the metric is flagged as anomalous.
2724	// This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2725	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2726	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
2727
2728	// The universally unique identifier (UUID) of an instance of an anomaly in
2729	// a metric.
2730	//
2731	// Id is a required field
2732	Id *string `locationName:"id" type:"string" required:"true"`
2733
2734	// The start time of the period during which the metric is flagged as anomalous.
2735	// This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2736	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2737	//
2738	// StartTime is a required field
2739	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
2740
2741	// Feedback type on a specific instance of anomaly submitted by the user.
2742	UserFeedback *UserFeedback `locationName:"userFeedback" type:"structure"`
2743}
2744
2745// String returns the string representation.
2746//
2747// API parameter values that are decorated as "sensitive" in the API will not
2748// be included in the string output. The member name will be present, but the
2749// value will be replaced with "sensitive".
2750func (s AnomalyInstance) String() string {
2751	return awsutil.Prettify(s)
2752}
2753
2754// GoString returns the string representation.
2755//
2756// API parameter values that are decorated as "sensitive" in the API will not
2757// be included in the string output. The member name will be present, but the
2758// value will be replaced with "sensitive".
2759func (s AnomalyInstance) GoString() string {
2760	return s.String()
2761}
2762
2763// SetEndTime sets the EndTime field's value.
2764func (s *AnomalyInstance) SetEndTime(v time.Time) *AnomalyInstance {
2765	s.EndTime = &v
2766	return s
2767}
2768
2769// SetId sets the Id field's value.
2770func (s *AnomalyInstance) SetId(v string) *AnomalyInstance {
2771	s.Id = &v
2772	return s
2773}
2774
2775// SetStartTime sets the StartTime field's value.
2776func (s *AnomalyInstance) SetStartTime(v time.Time) *AnomalyInstance {
2777	s.StartTime = &v
2778	return s
2779}
2780
2781// SetUserFeedback sets the UserFeedback field's value.
2782func (s *AnomalyInstance) SetUserFeedback(v *UserFeedback) *AnomalyInstance {
2783	s.UserFeedback = v
2784	return s
2785}
2786
2787// The structure representing the BatchGetFrameMetricDataRequest.
2788type BatchGetFrameMetricDataInput struct {
2789	_ struct{} `type:"structure"`
2790
2791	// The end time of the time period for the returned time series values. This
2792	// is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2793	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2794	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
2795
2796	// The details of the metrics that are used to request a time series of values.
2797	// The metric includes the name of the frame, the aggregation type to calculate
2798	// the metric value for the frame, and the thread states to use to get the count
2799	// for the metric value of the frame.
2800	FrameMetrics []*FrameMetric `locationName:"frameMetrics" type:"list"`
2801
2802	// The duration of the frame metrics used to return the time series values.
2803	// Specify using the ISO 8601 format. The maximum period duration is one day
2804	// (PT24H or P1D).
2805	Period *string `location:"querystring" locationName:"period" min:"1" type:"string"`
2806
2807	// The name of the profiling group associated with the the frame metrics used
2808	// to return the time series values.
2809	//
2810	// ProfilingGroupName is a required field
2811	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
2812
2813	// The start time of the time period for the frame metrics used to return the
2814	// time series values. This is specified using the ISO 8601 format. For example,
2815	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
2816	// PM UTC.
2817	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
2818
2819	// The requested resolution of time steps for the returned time series of values.
2820	// If the requested target resolution is not available due to data not being
2821	// retained we provide a best effort result by falling back to the most granular
2822	// available resolution after the target resolution. There are 3 valid values.
2823	//
2824	//    * P1D — 1 day
2825	//
2826	//    * PT1H — 1 hour
2827	//
2828	//    * PT5M — 5 minutes
2829	TargetResolution *string `location:"querystring" locationName:"targetResolution" type:"string" enum:"AggregationPeriod"`
2830}
2831
2832// String returns the string representation.
2833//
2834// API parameter values that are decorated as "sensitive" in the API will not
2835// be included in the string output. The member name will be present, but the
2836// value will be replaced with "sensitive".
2837func (s BatchGetFrameMetricDataInput) String() string {
2838	return awsutil.Prettify(s)
2839}
2840
2841// GoString returns the string representation.
2842//
2843// API parameter values that are decorated as "sensitive" in the API will not
2844// be included in the string output. The member name will be present, but the
2845// value will be replaced with "sensitive".
2846func (s BatchGetFrameMetricDataInput) GoString() string {
2847	return s.String()
2848}
2849
2850// Validate inspects the fields of the type to determine if they are valid.
2851func (s *BatchGetFrameMetricDataInput) Validate() error {
2852	invalidParams := request.ErrInvalidParams{Context: "BatchGetFrameMetricDataInput"}
2853	if s.Period != nil && len(*s.Period) < 1 {
2854		invalidParams.Add(request.NewErrParamMinLen("Period", 1))
2855	}
2856	if s.ProfilingGroupName == nil {
2857		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
2858	}
2859	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
2860		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
2861	}
2862	if s.FrameMetrics != nil {
2863		for i, v := range s.FrameMetrics {
2864			if v == nil {
2865				continue
2866			}
2867			if err := v.Validate(); err != nil {
2868				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FrameMetrics", i), err.(request.ErrInvalidParams))
2869			}
2870		}
2871	}
2872
2873	if invalidParams.Len() > 0 {
2874		return invalidParams
2875	}
2876	return nil
2877}
2878
2879// SetEndTime sets the EndTime field's value.
2880func (s *BatchGetFrameMetricDataInput) SetEndTime(v time.Time) *BatchGetFrameMetricDataInput {
2881	s.EndTime = &v
2882	return s
2883}
2884
2885// SetFrameMetrics sets the FrameMetrics field's value.
2886func (s *BatchGetFrameMetricDataInput) SetFrameMetrics(v []*FrameMetric) *BatchGetFrameMetricDataInput {
2887	s.FrameMetrics = v
2888	return s
2889}
2890
2891// SetPeriod sets the Period field's value.
2892func (s *BatchGetFrameMetricDataInput) SetPeriod(v string) *BatchGetFrameMetricDataInput {
2893	s.Period = &v
2894	return s
2895}
2896
2897// SetProfilingGroupName sets the ProfilingGroupName field's value.
2898func (s *BatchGetFrameMetricDataInput) SetProfilingGroupName(v string) *BatchGetFrameMetricDataInput {
2899	s.ProfilingGroupName = &v
2900	return s
2901}
2902
2903// SetStartTime sets the StartTime field's value.
2904func (s *BatchGetFrameMetricDataInput) SetStartTime(v time.Time) *BatchGetFrameMetricDataInput {
2905	s.StartTime = &v
2906	return s
2907}
2908
2909// SetTargetResolution sets the TargetResolution field's value.
2910func (s *BatchGetFrameMetricDataInput) SetTargetResolution(v string) *BatchGetFrameMetricDataInput {
2911	s.TargetResolution = &v
2912	return s
2913}
2914
2915// The structure representing the BatchGetFrameMetricDataResponse.
2916type BatchGetFrameMetricDataOutput struct {
2917	_ struct{} `type:"structure"`
2918
2919	// The end time of the time period for the returned time series values. This
2920	// is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2921	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2922	//
2923	// EndTime is a required field
2924	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
2925
2926	// List of instances, or time steps, in the time series. For example, if the
2927	// period is one day (PT24H)), and the resolution is five minutes (PT5M), then
2928	// there are 288 endTimes in the list that are each five minutes appart.
2929	//
2930	// EndTimes is a required field
2931	EndTimes []*TimestampStructure `locationName:"endTimes" type:"list" required:"true"`
2932
2933	// Details of the metrics to request a time series of values. The metric includes
2934	// the name of the frame, the aggregation type to calculate the metric value
2935	// for the frame, and the thread states to use to get the count for the metric
2936	// value of the frame.
2937	//
2938	// FrameMetricData is a required field
2939	FrameMetricData []*FrameMetricDatum `locationName:"frameMetricData" type:"list" required:"true"`
2940
2941	// Resolution or granularity of the profile data used to generate the time series.
2942	// This is the value used to jump through time steps in a time series. There
2943	// are 3 valid values.
2944	//
2945	//    * P1D — 1 day
2946	//
2947	//    * PT1H — 1 hour
2948	//
2949	//    * PT5M — 5 minutes
2950	//
2951	// Resolution is a required field
2952	Resolution *string `locationName:"resolution" type:"string" required:"true" enum:"AggregationPeriod"`
2953
2954	// The start time of the time period for the returned time series values. This
2955	// is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
2956	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
2957	//
2958	// StartTime is a required field
2959	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
2960
2961	// List of instances which remained unprocessed. This will create a missing
2962	// time step in the list of end times.
2963	//
2964	// UnprocessedEndTimes is a required field
2965	UnprocessedEndTimes map[string][]*TimestampStructure `locationName:"unprocessedEndTimes" type:"map" required:"true"`
2966}
2967
2968// String returns the string representation.
2969//
2970// API parameter values that are decorated as "sensitive" in the API will not
2971// be included in the string output. The member name will be present, but the
2972// value will be replaced with "sensitive".
2973func (s BatchGetFrameMetricDataOutput) String() string {
2974	return awsutil.Prettify(s)
2975}
2976
2977// GoString returns the string representation.
2978//
2979// API parameter values that are decorated as "sensitive" in the API will not
2980// be included in the string output. The member name will be present, but the
2981// value will be replaced with "sensitive".
2982func (s BatchGetFrameMetricDataOutput) GoString() string {
2983	return s.String()
2984}
2985
2986// SetEndTime sets the EndTime field's value.
2987func (s *BatchGetFrameMetricDataOutput) SetEndTime(v time.Time) *BatchGetFrameMetricDataOutput {
2988	s.EndTime = &v
2989	return s
2990}
2991
2992// SetEndTimes sets the EndTimes field's value.
2993func (s *BatchGetFrameMetricDataOutput) SetEndTimes(v []*TimestampStructure) *BatchGetFrameMetricDataOutput {
2994	s.EndTimes = v
2995	return s
2996}
2997
2998// SetFrameMetricData sets the FrameMetricData field's value.
2999func (s *BatchGetFrameMetricDataOutput) SetFrameMetricData(v []*FrameMetricDatum) *BatchGetFrameMetricDataOutput {
3000	s.FrameMetricData = v
3001	return s
3002}
3003
3004// SetResolution sets the Resolution field's value.
3005func (s *BatchGetFrameMetricDataOutput) SetResolution(v string) *BatchGetFrameMetricDataOutput {
3006	s.Resolution = &v
3007	return s
3008}
3009
3010// SetStartTime sets the StartTime field's value.
3011func (s *BatchGetFrameMetricDataOutput) SetStartTime(v time.Time) *BatchGetFrameMetricDataOutput {
3012	s.StartTime = &v
3013	return s
3014}
3015
3016// SetUnprocessedEndTimes sets the UnprocessedEndTimes field's value.
3017func (s *BatchGetFrameMetricDataOutput) SetUnprocessedEndTimes(v map[string][]*TimestampStructure) *BatchGetFrameMetricDataOutput {
3018	s.UnprocessedEndTimes = v
3019	return s
3020}
3021
3022// Notification medium for users to get alerted for events that occur in application
3023// profile. We support SNS topic as a notification channel.
3024type Channel struct {
3025	_ struct{} `type:"structure"`
3026
3027	// List of publishers for different type of events that may be detected in an
3028	// application from the profile. Anomaly detection is the only event publisher
3029	// in Profiler.
3030	//
3031	// EventPublishers is a required field
3032	EventPublishers []*string `locationName:"eventPublishers" min:"1" type:"list" required:"true"`
3033
3034	// Unique identifier for each Channel in the notification configuration of a
3035	// Profiling Group. A random UUID for channelId is used when adding a channel
3036	// to the notification configuration if not specified in the request.
3037	Id *string `locationName:"id" type:"string"`
3038
3039	// Unique arn of the resource to be used for notifications. We support a valid
3040	// SNS topic arn as a channel uri.
3041	//
3042	// Uri is a required field
3043	Uri *string `locationName:"uri" type:"string" required:"true"`
3044}
3045
3046// String returns the string representation.
3047//
3048// API parameter values that are decorated as "sensitive" in the API will not
3049// be included in the string output. The member name will be present, but the
3050// value will be replaced with "sensitive".
3051func (s Channel) String() string {
3052	return awsutil.Prettify(s)
3053}
3054
3055// GoString returns the string representation.
3056//
3057// API parameter values that are decorated as "sensitive" in the API will not
3058// be included in the string output. The member name will be present, but the
3059// value will be replaced with "sensitive".
3060func (s Channel) GoString() string {
3061	return s.String()
3062}
3063
3064// Validate inspects the fields of the type to determine if they are valid.
3065func (s *Channel) Validate() error {
3066	invalidParams := request.ErrInvalidParams{Context: "Channel"}
3067	if s.EventPublishers == nil {
3068		invalidParams.Add(request.NewErrParamRequired("EventPublishers"))
3069	}
3070	if s.EventPublishers != nil && len(s.EventPublishers) < 1 {
3071		invalidParams.Add(request.NewErrParamMinLen("EventPublishers", 1))
3072	}
3073	if s.Uri == nil {
3074		invalidParams.Add(request.NewErrParamRequired("Uri"))
3075	}
3076
3077	if invalidParams.Len() > 0 {
3078		return invalidParams
3079	}
3080	return nil
3081}
3082
3083// SetEventPublishers sets the EventPublishers field's value.
3084func (s *Channel) SetEventPublishers(v []*string) *Channel {
3085	s.EventPublishers = v
3086	return s
3087}
3088
3089// SetId sets the Id field's value.
3090func (s *Channel) SetId(v string) *Channel {
3091	s.Id = &v
3092	return s
3093}
3094
3095// SetUri sets the Uri field's value.
3096func (s *Channel) SetUri(v string) *Channel {
3097	s.Uri = &v
3098	return s
3099}
3100
3101// The structure representing the configureAgentRequest.
3102type ConfigureAgentInput struct {
3103	_ struct{} `type:"structure"`
3104
3105	// A universally unique identifier (UUID) for a profiling instance. For example,
3106	// if the profiling instance is an Amazon EC2 instance, it is the instance ID.
3107	// If it is an AWS Fargate container, it is the container's task ID.
3108	FleetInstanceId *string `locationName:"fleetInstanceId" min:"1" type:"string"`
3109
3110	// Metadata captured about the compute platform the agent is running on. It
3111	// includes information about sampling and reporting. The valid fields are:
3112	//
3113	//    * COMPUTE_PLATFORM - The compute platform on which the agent is running
3114	//
3115	//    * AGENT_ID - The ID for an agent instance.
3116	//
3117	//    * AWS_REQUEST_ID - The AWS request ID of a Lambda invocation.
3118	//
3119	//    * EXECUTION_ENVIRONMENT - The execution environment a Lambda function
3120	//    is running on.
3121	//
3122	//    * LAMBDA_FUNCTION_ARN - The Amazon Resource Name (ARN) that is used to
3123	//    invoke a Lambda function.
3124	//
3125	//    * LAMBDA_MEMORY_LIMIT_IN_MB - The memory allocated to a Lambda function.
3126	//
3127	//    * LAMBDA_REMAINING_TIME_IN_MILLISECONDS - The time in milliseconds before
3128	//    execution of a Lambda function times out.
3129	//
3130	//    * LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS - The time in milliseconds
3131	//    between two invocations of a Lambda function.
3132	//
3133	//    * LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS - The time in milliseconds
3134	//    for the previous Lambda invocation.
3135	Metadata map[string]*string `locationName:"metadata" type:"map"`
3136
3137	// The name of the profiling group for which the configured agent is collecting
3138	// profiling data.
3139	//
3140	// ProfilingGroupName is a required field
3141	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3142}
3143
3144// String returns the string representation.
3145//
3146// API parameter values that are decorated as "sensitive" in the API will not
3147// be included in the string output. The member name will be present, but the
3148// value will be replaced with "sensitive".
3149func (s ConfigureAgentInput) String() string {
3150	return awsutil.Prettify(s)
3151}
3152
3153// GoString returns the string representation.
3154//
3155// API parameter values that are decorated as "sensitive" in the API will not
3156// be included in the string output. The member name will be present, but the
3157// value will be replaced with "sensitive".
3158func (s ConfigureAgentInput) GoString() string {
3159	return s.String()
3160}
3161
3162// Validate inspects the fields of the type to determine if they are valid.
3163func (s *ConfigureAgentInput) Validate() error {
3164	invalidParams := request.ErrInvalidParams{Context: "ConfigureAgentInput"}
3165	if s.FleetInstanceId != nil && len(*s.FleetInstanceId) < 1 {
3166		invalidParams.Add(request.NewErrParamMinLen("FleetInstanceId", 1))
3167	}
3168	if s.ProfilingGroupName == nil {
3169		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3170	}
3171	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3172		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3173	}
3174
3175	if invalidParams.Len() > 0 {
3176		return invalidParams
3177	}
3178	return nil
3179}
3180
3181// SetFleetInstanceId sets the FleetInstanceId field's value.
3182func (s *ConfigureAgentInput) SetFleetInstanceId(v string) *ConfigureAgentInput {
3183	s.FleetInstanceId = &v
3184	return s
3185}
3186
3187// SetMetadata sets the Metadata field's value.
3188func (s *ConfigureAgentInput) SetMetadata(v map[string]*string) *ConfigureAgentInput {
3189	s.Metadata = v
3190	return s
3191}
3192
3193// SetProfilingGroupName sets the ProfilingGroupName field's value.
3194func (s *ConfigureAgentInput) SetProfilingGroupName(v string) *ConfigureAgentInput {
3195	s.ProfilingGroupName = &v
3196	return s
3197}
3198
3199// The structure representing the configureAgentResponse.
3200type ConfigureAgentOutput struct {
3201	_ struct{} `type:"structure" payload:"Configuration"`
3202
3203	// An AgentConfiguration (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentConfiguration.html)
3204	// object that specifies if an agent profiles or not and for how long to return
3205	// profiling data.
3206	//
3207	// Configuration is a required field
3208	Configuration *AgentConfiguration `locationName:"configuration" type:"structure" required:"true"`
3209}
3210
3211// String returns the string representation.
3212//
3213// API parameter values that are decorated as "sensitive" in the API will not
3214// be included in the string output. The member name will be present, but the
3215// value will be replaced with "sensitive".
3216func (s ConfigureAgentOutput) String() string {
3217	return awsutil.Prettify(s)
3218}
3219
3220// GoString returns the string representation.
3221//
3222// API parameter values that are decorated as "sensitive" in the API will not
3223// be included in the string output. The member name will be present, but the
3224// value will be replaced with "sensitive".
3225func (s ConfigureAgentOutput) GoString() string {
3226	return s.String()
3227}
3228
3229// SetConfiguration sets the Configuration field's value.
3230func (s *ConfigureAgentOutput) SetConfiguration(v *AgentConfiguration) *ConfigureAgentOutput {
3231	s.Configuration = v
3232	return s
3233}
3234
3235// The requested operation would cause a conflict with the current state of
3236// a service resource associated with the request. Resolve the conflict before
3237// retrying this request.
3238type ConflictException struct {
3239	_            struct{}                  `type:"structure"`
3240	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3241
3242	Message_ *string `locationName:"message" type:"string"`
3243}
3244
3245// String returns the string representation.
3246//
3247// API parameter values that are decorated as "sensitive" in the API will not
3248// be included in the string output. The member name will be present, but the
3249// value will be replaced with "sensitive".
3250func (s ConflictException) String() string {
3251	return awsutil.Prettify(s)
3252}
3253
3254// GoString returns the string representation.
3255//
3256// API parameter values that are decorated as "sensitive" in the API will not
3257// be included in the string output. The member name will be present, but the
3258// value will be replaced with "sensitive".
3259func (s ConflictException) GoString() string {
3260	return s.String()
3261}
3262
3263func newErrorConflictException(v protocol.ResponseMetadata) error {
3264	return &ConflictException{
3265		RespMetadata: v,
3266	}
3267}
3268
3269// Code returns the exception type name.
3270func (s *ConflictException) Code() string {
3271	return "ConflictException"
3272}
3273
3274// Message returns the exception's message.
3275func (s *ConflictException) Message() string {
3276	if s.Message_ != nil {
3277		return *s.Message_
3278	}
3279	return ""
3280}
3281
3282// OrigErr always returns nil, satisfies awserr.Error interface.
3283func (s *ConflictException) OrigErr() error {
3284	return nil
3285}
3286
3287func (s *ConflictException) Error() string {
3288	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3289}
3290
3291// Status code returns the HTTP status code for the request's response error.
3292func (s *ConflictException) StatusCode() int {
3293	return s.RespMetadata.StatusCode
3294}
3295
3296// RequestID returns the service's response RequestID for request.
3297func (s *ConflictException) RequestID() string {
3298	return s.RespMetadata.RequestID
3299}
3300
3301// The structure representing the createProfiliingGroupRequest.
3302type CreateProfilingGroupInput struct {
3303	_ struct{} `type:"structure"`
3304
3305	// Specifies whether profiling is enabled or disabled for the created profiling
3306	// group.
3307	AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"`
3308
3309	// Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to
3310	// prevent the accidental creation of duplicate profiling groups if there are
3311	// failures and retries.
3312	ClientToken *string `location:"querystring" locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`
3313
3314	// The compute platform of the profiling group. Use AWSLambda if your application
3315	// runs on AWS Lambda. Use Default if your application runs on a compute platform
3316	// that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server,
3317	// or a different platform. If not specified, Default is used.
3318	ComputePlatform *string `locationName:"computePlatform" type:"string" enum:"ComputePlatform"`
3319
3320	// The name of the profiling group to create.
3321	//
3322	// ProfilingGroupName is a required field
3323	ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3324
3325	// A list of tags to add to the created profiling group.
3326	Tags map[string]*string `locationName:"tags" type:"map"`
3327}
3328
3329// String returns the string representation.
3330//
3331// API parameter values that are decorated as "sensitive" in the API will not
3332// be included in the string output. The member name will be present, but the
3333// value will be replaced with "sensitive".
3334func (s CreateProfilingGroupInput) String() string {
3335	return awsutil.Prettify(s)
3336}
3337
3338// GoString returns the string representation.
3339//
3340// API parameter values that are decorated as "sensitive" in the API will not
3341// be included in the string output. The member name will be present, but the
3342// value will be replaced with "sensitive".
3343func (s CreateProfilingGroupInput) GoString() string {
3344	return s.String()
3345}
3346
3347// Validate inspects the fields of the type to determine if they are valid.
3348func (s *CreateProfilingGroupInput) Validate() error {
3349	invalidParams := request.ErrInvalidParams{Context: "CreateProfilingGroupInput"}
3350	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
3351		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
3352	}
3353	if s.ProfilingGroupName == nil {
3354		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3355	}
3356	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3357		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3358	}
3359	if s.AgentOrchestrationConfig != nil {
3360		if err := s.AgentOrchestrationConfig.Validate(); err != nil {
3361			invalidParams.AddNested("AgentOrchestrationConfig", err.(request.ErrInvalidParams))
3362		}
3363	}
3364
3365	if invalidParams.Len() > 0 {
3366		return invalidParams
3367	}
3368	return nil
3369}
3370
3371// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
3372func (s *CreateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *CreateProfilingGroupInput {
3373	s.AgentOrchestrationConfig = v
3374	return s
3375}
3376
3377// SetClientToken sets the ClientToken field's value.
3378func (s *CreateProfilingGroupInput) SetClientToken(v string) *CreateProfilingGroupInput {
3379	s.ClientToken = &v
3380	return s
3381}
3382
3383// SetComputePlatform sets the ComputePlatform field's value.
3384func (s *CreateProfilingGroupInput) SetComputePlatform(v string) *CreateProfilingGroupInput {
3385	s.ComputePlatform = &v
3386	return s
3387}
3388
3389// SetProfilingGroupName sets the ProfilingGroupName field's value.
3390func (s *CreateProfilingGroupInput) SetProfilingGroupName(v string) *CreateProfilingGroupInput {
3391	s.ProfilingGroupName = &v
3392	return s
3393}
3394
3395// SetTags sets the Tags field's value.
3396func (s *CreateProfilingGroupInput) SetTags(v map[string]*string) *CreateProfilingGroupInput {
3397	s.Tags = v
3398	return s
3399}
3400
3401// The structure representing the createProfilingGroupResponse.
3402type CreateProfilingGroupOutput struct {
3403	_ struct{} `type:"structure" payload:"ProfilingGroup"`
3404
3405	// The returned ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
3406	// object that contains information about the created profiling group.
3407	//
3408	// ProfilingGroup is a required field
3409	ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"`
3410}
3411
3412// String returns the string representation.
3413//
3414// API parameter values that are decorated as "sensitive" in the API will not
3415// be included in the string output. The member name will be present, but the
3416// value will be replaced with "sensitive".
3417func (s CreateProfilingGroupOutput) String() string {
3418	return awsutil.Prettify(s)
3419}
3420
3421// GoString returns the string representation.
3422//
3423// API parameter values that are decorated as "sensitive" in the API will not
3424// be included in the string output. The member name will be present, but the
3425// value will be replaced with "sensitive".
3426func (s CreateProfilingGroupOutput) GoString() string {
3427	return s.String()
3428}
3429
3430// SetProfilingGroup sets the ProfilingGroup field's value.
3431func (s *CreateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *CreateProfilingGroupOutput {
3432	s.ProfilingGroup = v
3433	return s
3434}
3435
3436// The structure representing the deleteProfilingGroupRequest.
3437type DeleteProfilingGroupInput struct {
3438	_ struct{} `type:"structure" nopayload:"true"`
3439
3440	// The name of the profiling group to delete.
3441	//
3442	// ProfilingGroupName is a required field
3443	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3444}
3445
3446// String returns the string representation.
3447//
3448// API parameter values that are decorated as "sensitive" in the API will not
3449// be included in the string output. The member name will be present, but the
3450// value will be replaced with "sensitive".
3451func (s DeleteProfilingGroupInput) String() string {
3452	return awsutil.Prettify(s)
3453}
3454
3455// GoString returns the string representation.
3456//
3457// API parameter values that are decorated as "sensitive" in the API will not
3458// be included in the string output. The member name will be present, but the
3459// value will be replaced with "sensitive".
3460func (s DeleteProfilingGroupInput) GoString() string {
3461	return s.String()
3462}
3463
3464// Validate inspects the fields of the type to determine if they are valid.
3465func (s *DeleteProfilingGroupInput) Validate() error {
3466	invalidParams := request.ErrInvalidParams{Context: "DeleteProfilingGroupInput"}
3467	if s.ProfilingGroupName == nil {
3468		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3469	}
3470	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3471		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3472	}
3473
3474	if invalidParams.Len() > 0 {
3475		return invalidParams
3476	}
3477	return nil
3478}
3479
3480// SetProfilingGroupName sets the ProfilingGroupName field's value.
3481func (s *DeleteProfilingGroupInput) SetProfilingGroupName(v string) *DeleteProfilingGroupInput {
3482	s.ProfilingGroupName = &v
3483	return s
3484}
3485
3486// The structure representing the deleteProfilingGroupResponse.
3487type DeleteProfilingGroupOutput struct {
3488	_ struct{} `type:"structure"`
3489}
3490
3491// String returns the string representation.
3492//
3493// API parameter values that are decorated as "sensitive" in the API will not
3494// be included in the string output. The member name will be present, but the
3495// value will be replaced with "sensitive".
3496func (s DeleteProfilingGroupOutput) String() string {
3497	return awsutil.Prettify(s)
3498}
3499
3500// GoString returns the string representation.
3501//
3502// API parameter values that are decorated as "sensitive" in the API will not
3503// be included in the string output. The member name will be present, but the
3504// value will be replaced with "sensitive".
3505func (s DeleteProfilingGroupOutput) GoString() string {
3506	return s.String()
3507}
3508
3509// The structure representing the describeProfilingGroupRequest.
3510type DescribeProfilingGroupInput struct {
3511	_ struct{} `type:"structure" nopayload:"true"`
3512
3513	// The name of the profiling group to get information about.
3514	//
3515	// ProfilingGroupName is a required field
3516	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3517}
3518
3519// String returns the string representation.
3520//
3521// API parameter values that are decorated as "sensitive" in the API will not
3522// be included in the string output. The member name will be present, but the
3523// value will be replaced with "sensitive".
3524func (s DescribeProfilingGroupInput) String() string {
3525	return awsutil.Prettify(s)
3526}
3527
3528// GoString returns the string representation.
3529//
3530// API parameter values that are decorated as "sensitive" in the API will not
3531// be included in the string output. The member name will be present, but the
3532// value will be replaced with "sensitive".
3533func (s DescribeProfilingGroupInput) GoString() string {
3534	return s.String()
3535}
3536
3537// Validate inspects the fields of the type to determine if they are valid.
3538func (s *DescribeProfilingGroupInput) Validate() error {
3539	invalidParams := request.ErrInvalidParams{Context: "DescribeProfilingGroupInput"}
3540	if s.ProfilingGroupName == nil {
3541		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3542	}
3543	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3544		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3545	}
3546
3547	if invalidParams.Len() > 0 {
3548		return invalidParams
3549	}
3550	return nil
3551}
3552
3553// SetProfilingGroupName sets the ProfilingGroupName field's value.
3554func (s *DescribeProfilingGroupInput) SetProfilingGroupName(v string) *DescribeProfilingGroupInput {
3555	s.ProfilingGroupName = &v
3556	return s
3557}
3558
3559// The structure representing the describeProfilingGroupResponse.
3560type DescribeProfilingGroupOutput struct {
3561	_ struct{} `type:"structure" payload:"ProfilingGroup"`
3562
3563	// The returned ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
3564	// object that contains information about the requested profiling group.
3565	//
3566	// ProfilingGroup is a required field
3567	ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"`
3568}
3569
3570// String returns the string representation.
3571//
3572// API parameter values that are decorated as "sensitive" in the API will not
3573// be included in the string output. The member name will be present, but the
3574// value will be replaced with "sensitive".
3575func (s DescribeProfilingGroupOutput) String() string {
3576	return awsutil.Prettify(s)
3577}
3578
3579// GoString returns the string representation.
3580//
3581// API parameter values that are decorated as "sensitive" in the API will not
3582// be included in the string output. The member name will be present, but the
3583// value will be replaced with "sensitive".
3584func (s DescribeProfilingGroupOutput) GoString() string {
3585	return s.String()
3586}
3587
3588// SetProfilingGroup sets the ProfilingGroup field's value.
3589func (s *DescribeProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *DescribeProfilingGroupOutput {
3590	s.ProfilingGroup = v
3591	return s
3592}
3593
3594// Information about potential recommendations that might be created from the
3595// analysis of profiling data.
3596type FindingsReportSummary struct {
3597	_ struct{} `type:"structure"`
3598
3599	// The universally unique identifier (UUID) of the recommendation report.
3600	Id *string `locationName:"id" type:"string"`
3601
3602	// The end time of the period during which the metric is flagged as anomalous.
3603	// This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
3604	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
3605	ProfileEndTime *time.Time `locationName:"profileEndTime" type:"timestamp" timestampFormat:"iso8601"`
3606
3607	// The start time of the profile the analysis data is about. This is specified
3608	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
3609	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
3610	ProfileStartTime *time.Time `locationName:"profileStartTime" type:"timestamp" timestampFormat:"iso8601"`
3611
3612	// The name of the profiling group that is associated with the analysis data.
3613	ProfilingGroupName *string `locationName:"profilingGroupName" type:"string"`
3614
3615	// The total number of different recommendations that were found by the analysis.
3616	TotalNumberOfFindings *int64 `locationName:"totalNumberOfFindings" type:"integer"`
3617}
3618
3619// String returns the string representation.
3620//
3621// API parameter values that are decorated as "sensitive" in the API will not
3622// be included in the string output. The member name will be present, but the
3623// value will be replaced with "sensitive".
3624func (s FindingsReportSummary) String() string {
3625	return awsutil.Prettify(s)
3626}
3627
3628// GoString returns the string representation.
3629//
3630// API parameter values that are decorated as "sensitive" in the API will not
3631// be included in the string output. The member name will be present, but the
3632// value will be replaced with "sensitive".
3633func (s FindingsReportSummary) GoString() string {
3634	return s.String()
3635}
3636
3637// SetId sets the Id field's value.
3638func (s *FindingsReportSummary) SetId(v string) *FindingsReportSummary {
3639	s.Id = &v
3640	return s
3641}
3642
3643// SetProfileEndTime sets the ProfileEndTime field's value.
3644func (s *FindingsReportSummary) SetProfileEndTime(v time.Time) *FindingsReportSummary {
3645	s.ProfileEndTime = &v
3646	return s
3647}
3648
3649// SetProfileStartTime sets the ProfileStartTime field's value.
3650func (s *FindingsReportSummary) SetProfileStartTime(v time.Time) *FindingsReportSummary {
3651	s.ProfileStartTime = &v
3652	return s
3653}
3654
3655// SetProfilingGroupName sets the ProfilingGroupName field's value.
3656func (s *FindingsReportSummary) SetProfilingGroupName(v string) *FindingsReportSummary {
3657	s.ProfilingGroupName = &v
3658	return s
3659}
3660
3661// SetTotalNumberOfFindings sets the TotalNumberOfFindings field's value.
3662func (s *FindingsReportSummary) SetTotalNumberOfFindings(v int64) *FindingsReportSummary {
3663	s.TotalNumberOfFindings = &v
3664	return s
3665}
3666
3667// The frame name, metric type, and thread states. These are used to derive
3668// the value of the metric for the frame.
3669type FrameMetric struct {
3670	_ struct{} `type:"structure"`
3671
3672	// Name of the method common across the multiple occurrences of a frame in an
3673	// application profile.
3674	//
3675	// FrameName is a required field
3676	FrameName *string `locationName:"frameName" type:"string" required:"true"`
3677
3678	// List of application runtime thread states used to get the counts for a frame
3679	// a derive a metric value.
3680	//
3681	// ThreadStates is a required field
3682	ThreadStates []*string `locationName:"threadStates" type:"list" required:"true"`
3683
3684	// A type of aggregation that specifies how a metric for a frame is analyzed.
3685	// The supported value AggregatedRelativeTotalTime is an aggregation of the
3686	// metric value for one frame that is calculated across the occurrences of all
3687	// frames in a profile.
3688	//
3689	// Type is a required field
3690	Type *string `locationName:"type" type:"string" required:"true" enum:"MetricType"`
3691}
3692
3693// String returns the string representation.
3694//
3695// API parameter values that are decorated as "sensitive" in the API will not
3696// be included in the string output. The member name will be present, but the
3697// value will be replaced with "sensitive".
3698func (s FrameMetric) String() string {
3699	return awsutil.Prettify(s)
3700}
3701
3702// GoString returns the string representation.
3703//
3704// API parameter values that are decorated as "sensitive" in the API will not
3705// be included in the string output. The member name will be present, but the
3706// value will be replaced with "sensitive".
3707func (s FrameMetric) GoString() string {
3708	return s.String()
3709}
3710
3711// Validate inspects the fields of the type to determine if they are valid.
3712func (s *FrameMetric) Validate() error {
3713	invalidParams := request.ErrInvalidParams{Context: "FrameMetric"}
3714	if s.FrameName == nil {
3715		invalidParams.Add(request.NewErrParamRequired("FrameName"))
3716	}
3717	if s.ThreadStates == nil {
3718		invalidParams.Add(request.NewErrParamRequired("ThreadStates"))
3719	}
3720	if s.Type == nil {
3721		invalidParams.Add(request.NewErrParamRequired("Type"))
3722	}
3723
3724	if invalidParams.Len() > 0 {
3725		return invalidParams
3726	}
3727	return nil
3728}
3729
3730// SetFrameName sets the FrameName field's value.
3731func (s *FrameMetric) SetFrameName(v string) *FrameMetric {
3732	s.FrameName = &v
3733	return s
3734}
3735
3736// SetThreadStates sets the ThreadStates field's value.
3737func (s *FrameMetric) SetThreadStates(v []*string) *FrameMetric {
3738	s.ThreadStates = v
3739	return s
3740}
3741
3742// SetType sets the Type field's value.
3743func (s *FrameMetric) SetType(v string) *FrameMetric {
3744	s.Type = &v
3745	return s
3746}
3747
3748// Information about a frame metric and its values.
3749type FrameMetricDatum struct {
3750	_ struct{} `type:"structure"`
3751
3752	// The frame name, metric type, and thread states. These are used to derive
3753	// the value of the metric for the frame.
3754	//
3755	// FrameMetric is a required field
3756	FrameMetric *FrameMetric `locationName:"frameMetric" type:"structure" required:"true"`
3757
3758	// A list of values that are associated with a frame metric.
3759	//
3760	// Values is a required field
3761	Values []*float64 `locationName:"values" type:"list" required:"true"`
3762}
3763
3764// String returns the string representation.
3765//
3766// API parameter values that are decorated as "sensitive" in the API will not
3767// be included in the string output. The member name will be present, but the
3768// value will be replaced with "sensitive".
3769func (s FrameMetricDatum) String() string {
3770	return awsutil.Prettify(s)
3771}
3772
3773// GoString returns the string representation.
3774//
3775// API parameter values that are decorated as "sensitive" in the API will not
3776// be included in the string output. The member name will be present, but the
3777// value will be replaced with "sensitive".
3778func (s FrameMetricDatum) GoString() string {
3779	return s.String()
3780}
3781
3782// SetFrameMetric sets the FrameMetric field's value.
3783func (s *FrameMetricDatum) SetFrameMetric(v *FrameMetric) *FrameMetricDatum {
3784	s.FrameMetric = v
3785	return s
3786}
3787
3788// SetValues sets the Values field's value.
3789func (s *FrameMetricDatum) SetValues(v []*float64) *FrameMetricDatum {
3790	s.Values = v
3791	return s
3792}
3793
3794// The structure representing the GetFindingsReportAccountSummaryRequest.
3795type GetFindingsReportAccountSummaryInput struct {
3796	_ struct{} `type:"structure" nopayload:"true"`
3797
3798	// A Boolean value indicating whether to only return reports from daily profiles.
3799	// If set to True, only analysis data from daily profiles is returned. If set
3800	// to False, analysis data is returned from smaller time windows (for example,
3801	// one hour).
3802	DailyReportsOnly *bool `location:"querystring" locationName:"dailyReportsOnly" type:"boolean"`
3803
3804	// The maximum number of results returned by GetFindingsReportAccountSummary
3805	// in paginated output. When this parameter is used, GetFindingsReportAccountSummary
3806	// only returns maxResults results in a single page along with a nextToken response
3807	// element. The remaining results of the initial request can be seen by sending
3808	// another GetFindingsReportAccountSummary request with the returned nextToken
3809	// value.
3810	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
3811
3812	// The nextToken value returned from a previous paginated GetFindingsReportAccountSummary
3813	// request where maxResults was used and the results exceeded the value of that
3814	// parameter. Pagination continues from the end of the previous results that
3815	// returned the nextToken value.
3816	//
3817	// This token should be treated as an opaque identifier that is only used to
3818	// retrieve the next items in a list and not for other programmatic purposes.
3819	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
3820}
3821
3822// String returns the string representation.
3823//
3824// API parameter values that are decorated as "sensitive" in the API will not
3825// be included in the string output. The member name will be present, but the
3826// value will be replaced with "sensitive".
3827func (s GetFindingsReportAccountSummaryInput) String() string {
3828	return awsutil.Prettify(s)
3829}
3830
3831// GoString returns the string representation.
3832//
3833// API parameter values that are decorated as "sensitive" in the API will not
3834// be included in the string output. The member name will be present, but the
3835// value will be replaced with "sensitive".
3836func (s GetFindingsReportAccountSummaryInput) GoString() string {
3837	return s.String()
3838}
3839
3840// Validate inspects the fields of the type to determine if they are valid.
3841func (s *GetFindingsReportAccountSummaryInput) Validate() error {
3842	invalidParams := request.ErrInvalidParams{Context: "GetFindingsReportAccountSummaryInput"}
3843	if s.MaxResults != nil && *s.MaxResults < 1 {
3844		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3845	}
3846	if s.NextToken != nil && len(*s.NextToken) < 1 {
3847		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3848	}
3849
3850	if invalidParams.Len() > 0 {
3851		return invalidParams
3852	}
3853	return nil
3854}
3855
3856// SetDailyReportsOnly sets the DailyReportsOnly field's value.
3857func (s *GetFindingsReportAccountSummaryInput) SetDailyReportsOnly(v bool) *GetFindingsReportAccountSummaryInput {
3858	s.DailyReportsOnly = &v
3859	return s
3860}
3861
3862// SetMaxResults sets the MaxResults field's value.
3863func (s *GetFindingsReportAccountSummaryInput) SetMaxResults(v int64) *GetFindingsReportAccountSummaryInput {
3864	s.MaxResults = &v
3865	return s
3866}
3867
3868// SetNextToken sets the NextToken field's value.
3869func (s *GetFindingsReportAccountSummaryInput) SetNextToken(v string) *GetFindingsReportAccountSummaryInput {
3870	s.NextToken = &v
3871	return s
3872}
3873
3874// The structure representing the GetFindingsReportAccountSummaryResponse.
3875type GetFindingsReportAccountSummaryOutput struct {
3876	_ struct{} `type:"structure"`
3877
3878	// The nextToken value to include in a future GetFindingsReportAccountSummary
3879	// request. When the results of a GetFindingsReportAccountSummary request exceed
3880	// maxResults, this value can be used to retrieve the next page of results.
3881	// This value is null when there are no more results to return.
3882	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
3883
3884	// The return list of FindingsReportSummary (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html)
3885	// objects taht contain summaries of analysis results for all profiling groups
3886	// in your AWS account.
3887	//
3888	// ReportSummaries is a required field
3889	ReportSummaries []*FindingsReportSummary `locationName:"reportSummaries" type:"list" required:"true"`
3890}
3891
3892// String returns the string representation.
3893//
3894// API parameter values that are decorated as "sensitive" in the API will not
3895// be included in the string output. The member name will be present, but the
3896// value will be replaced with "sensitive".
3897func (s GetFindingsReportAccountSummaryOutput) String() string {
3898	return awsutil.Prettify(s)
3899}
3900
3901// GoString returns the string representation.
3902//
3903// API parameter values that are decorated as "sensitive" in the API will not
3904// be included in the string output. The member name will be present, but the
3905// value will be replaced with "sensitive".
3906func (s GetFindingsReportAccountSummaryOutput) GoString() string {
3907	return s.String()
3908}
3909
3910// SetNextToken sets the NextToken field's value.
3911func (s *GetFindingsReportAccountSummaryOutput) SetNextToken(v string) *GetFindingsReportAccountSummaryOutput {
3912	s.NextToken = &v
3913	return s
3914}
3915
3916// SetReportSummaries sets the ReportSummaries field's value.
3917func (s *GetFindingsReportAccountSummaryOutput) SetReportSummaries(v []*FindingsReportSummary) *GetFindingsReportAccountSummaryOutput {
3918	s.ReportSummaries = v
3919	return s
3920}
3921
3922// The structure representing the GetNotificationConfigurationRequest.
3923type GetNotificationConfigurationInput struct {
3924	_ struct{} `type:"structure" nopayload:"true"`
3925
3926	// The name of the profiling group we want to get the notification configuration
3927	// for.
3928	//
3929	// ProfilingGroupName is a required field
3930	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
3931}
3932
3933// String returns the string representation.
3934//
3935// API parameter values that are decorated as "sensitive" in the API will not
3936// be included in the string output. The member name will be present, but the
3937// value will be replaced with "sensitive".
3938func (s GetNotificationConfigurationInput) String() string {
3939	return awsutil.Prettify(s)
3940}
3941
3942// GoString returns the string representation.
3943//
3944// API parameter values that are decorated as "sensitive" in the API will not
3945// be included in the string output. The member name will be present, but the
3946// value will be replaced with "sensitive".
3947func (s GetNotificationConfigurationInput) GoString() string {
3948	return s.String()
3949}
3950
3951// Validate inspects the fields of the type to determine if they are valid.
3952func (s *GetNotificationConfigurationInput) Validate() error {
3953	invalidParams := request.ErrInvalidParams{Context: "GetNotificationConfigurationInput"}
3954	if s.ProfilingGroupName == nil {
3955		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
3956	}
3957	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
3958		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
3959	}
3960
3961	if invalidParams.Len() > 0 {
3962		return invalidParams
3963	}
3964	return nil
3965}
3966
3967// SetProfilingGroupName sets the ProfilingGroupName field's value.
3968func (s *GetNotificationConfigurationInput) SetProfilingGroupName(v string) *GetNotificationConfigurationInput {
3969	s.ProfilingGroupName = &v
3970	return s
3971}
3972
3973// The structure representing the GetNotificationConfigurationResponse.
3974type GetNotificationConfigurationOutput struct {
3975	_ struct{} `type:"structure"`
3976
3977	// The current notification configuration for this profiling group.
3978	//
3979	// NotificationConfiguration is a required field
3980	NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure" required:"true"`
3981}
3982
3983// String returns the string representation.
3984//
3985// API parameter values that are decorated as "sensitive" in the API will not
3986// be included in the string output. The member name will be present, but the
3987// value will be replaced with "sensitive".
3988func (s GetNotificationConfigurationOutput) String() string {
3989	return awsutil.Prettify(s)
3990}
3991
3992// GoString returns the string representation.
3993//
3994// API parameter values that are decorated as "sensitive" in the API will not
3995// be included in the string output. The member name will be present, but the
3996// value will be replaced with "sensitive".
3997func (s GetNotificationConfigurationOutput) GoString() string {
3998	return s.String()
3999}
4000
4001// SetNotificationConfiguration sets the NotificationConfiguration field's value.
4002func (s *GetNotificationConfigurationOutput) SetNotificationConfiguration(v *NotificationConfiguration) *GetNotificationConfigurationOutput {
4003	s.NotificationConfiguration = v
4004	return s
4005}
4006
4007// The structure representing the getPolicyRequest.
4008type GetPolicyInput struct {
4009	_ struct{} `type:"structure" nopayload:"true"`
4010
4011	// The name of the profiling group.
4012	//
4013	// ProfilingGroupName is a required field
4014	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4015}
4016
4017// String returns the string representation.
4018//
4019// API parameter values that are decorated as "sensitive" in the API will not
4020// be included in the string output. The member name will be present, but the
4021// value will be replaced with "sensitive".
4022func (s GetPolicyInput) String() string {
4023	return awsutil.Prettify(s)
4024}
4025
4026// GoString returns the string representation.
4027//
4028// API parameter values that are decorated as "sensitive" in the API will not
4029// be included in the string output. The member name will be present, but the
4030// value will be replaced with "sensitive".
4031func (s GetPolicyInput) GoString() string {
4032	return s.String()
4033}
4034
4035// Validate inspects the fields of the type to determine if they are valid.
4036func (s *GetPolicyInput) Validate() error {
4037	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
4038	if s.ProfilingGroupName == nil {
4039		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4040	}
4041	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4042		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4043	}
4044
4045	if invalidParams.Len() > 0 {
4046		return invalidParams
4047	}
4048	return nil
4049}
4050
4051// SetProfilingGroupName sets the ProfilingGroupName field's value.
4052func (s *GetPolicyInput) SetProfilingGroupName(v string) *GetPolicyInput {
4053	s.ProfilingGroupName = &v
4054	return s
4055}
4056
4057// The structure representing the getPolicyResponse.
4058type GetPolicyOutput struct {
4059	_ struct{} `type:"structure"`
4060
4061	// The JSON-formatted resource-based policy attached to the ProfilingGroup.
4062	//
4063	// Policy is a required field
4064	Policy *string `locationName:"policy" type:"string" required:"true"`
4065
4066	// A unique identifier for the current revision of the returned policy.
4067	//
4068	// RevisionId is a required field
4069	RevisionId *string `locationName:"revisionId" type:"string" required:"true"`
4070}
4071
4072// String returns the string representation.
4073//
4074// API parameter values that are decorated as "sensitive" in the API will not
4075// be included in the string output. The member name will be present, but the
4076// value will be replaced with "sensitive".
4077func (s GetPolicyOutput) String() string {
4078	return awsutil.Prettify(s)
4079}
4080
4081// GoString returns the string representation.
4082//
4083// API parameter values that are decorated as "sensitive" in the API will not
4084// be included in the string output. The member name will be present, but the
4085// value will be replaced with "sensitive".
4086func (s GetPolicyOutput) GoString() string {
4087	return s.String()
4088}
4089
4090// SetPolicy sets the Policy field's value.
4091func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput {
4092	s.Policy = &v
4093	return s
4094}
4095
4096// SetRevisionId sets the RevisionId field's value.
4097func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput {
4098	s.RevisionId = &v
4099	return s
4100}
4101
4102// The structure representing the getProfileRequest.
4103type GetProfileInput struct {
4104	_ struct{} `type:"structure" nopayload:"true"`
4105
4106	// The format of the returned profiling data. The format maps to the Accept
4107	// and Content-Type headers of the HTTP request. You can specify one of the
4108	// following: or the default .
4109	//
4110	//    <ul> <li> <p> <code>application/json</code> — standard JSON format </p>
4111	//    </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion
4112	//    data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon
4113	//    Ion</a>. </p> </li> </ul>
4114	Accept *string `location:"header" locationName:"Accept" type:"string"`
4115
4116	// The end time of the requested profile. Specify using the ISO 8601 format.
4117	// For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June
4118	// 1, 2020 1:15:02 PM UTC.
4119	//
4120	// If you specify endTime, then you must also specify period or startTime, but
4121	// not both.
4122	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
4123
4124	// The maximum depth of the stacks in the code that is represented in the aggregated
4125	// profile. For example, if CodeGuru Profiler finds a method A, which calls
4126	// method B, which calls method C, which calls method D, then the depth is 4.
4127	// If the maxDepth is set to 2, then the aggregated profile contains representations
4128	// of methods A and B.
4129	MaxDepth *int64 `location:"querystring" locationName:"maxDepth" min:"1" type:"integer"`
4130
4131	// Used with startTime or endTime to specify the time range for the returned
4132	// aggregated profile. Specify using the ISO 8601 format. For example, P1DT1H1M1S.
4133	//
4134	//    <p> To get the latest aggregated profile, specify only <code>period</code>.
4135	//    </p>
4136	Period *string `location:"querystring" locationName:"period" min:"1" type:"string"`
4137
4138	// The name of the profiling group to get.
4139	//
4140	// ProfilingGroupName is a required field
4141	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4142
4143	// The start time of the profile to get. Specify using the ISO 8601 format.
4144	// For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June
4145	// 1, 2020 1:15:02 PM UTC.
4146	//
4147	//    <p> If you specify <code>startTime</code>, then you must also specify
4148	//    <code>period</code> or <code>endTime</code>, but not both. </p>
4149	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
4150}
4151
4152// String returns the string representation.
4153//
4154// API parameter values that are decorated as "sensitive" in the API will not
4155// be included in the string output. The member name will be present, but the
4156// value will be replaced with "sensitive".
4157func (s GetProfileInput) String() string {
4158	return awsutil.Prettify(s)
4159}
4160
4161// GoString returns the string representation.
4162//
4163// API parameter values that are decorated as "sensitive" in the API will not
4164// be included in the string output. The member name will be present, but the
4165// value will be replaced with "sensitive".
4166func (s GetProfileInput) GoString() string {
4167	return s.String()
4168}
4169
4170// Validate inspects the fields of the type to determine if they are valid.
4171func (s *GetProfileInput) Validate() error {
4172	invalidParams := request.ErrInvalidParams{Context: "GetProfileInput"}
4173	if s.MaxDepth != nil && *s.MaxDepth < 1 {
4174		invalidParams.Add(request.NewErrParamMinValue("MaxDepth", 1))
4175	}
4176	if s.Period != nil && len(*s.Period) < 1 {
4177		invalidParams.Add(request.NewErrParamMinLen("Period", 1))
4178	}
4179	if s.ProfilingGroupName == nil {
4180		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4181	}
4182	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4183		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4184	}
4185
4186	if invalidParams.Len() > 0 {
4187		return invalidParams
4188	}
4189	return nil
4190}
4191
4192// SetAccept sets the Accept field's value.
4193func (s *GetProfileInput) SetAccept(v string) *GetProfileInput {
4194	s.Accept = &v
4195	return s
4196}
4197
4198// SetEndTime sets the EndTime field's value.
4199func (s *GetProfileInput) SetEndTime(v time.Time) *GetProfileInput {
4200	s.EndTime = &v
4201	return s
4202}
4203
4204// SetMaxDepth sets the MaxDepth field's value.
4205func (s *GetProfileInput) SetMaxDepth(v int64) *GetProfileInput {
4206	s.MaxDepth = &v
4207	return s
4208}
4209
4210// SetPeriod sets the Period field's value.
4211func (s *GetProfileInput) SetPeriod(v string) *GetProfileInput {
4212	s.Period = &v
4213	return s
4214}
4215
4216// SetProfilingGroupName sets the ProfilingGroupName field's value.
4217func (s *GetProfileInput) SetProfilingGroupName(v string) *GetProfileInput {
4218	s.ProfilingGroupName = &v
4219	return s
4220}
4221
4222// SetStartTime sets the StartTime field's value.
4223func (s *GetProfileInput) SetStartTime(v time.Time) *GetProfileInput {
4224	s.StartTime = &v
4225	return s
4226}
4227
4228// The structure representing the getProfileResponse.
4229type GetProfileOutput struct {
4230	_ struct{} `type:"structure" payload:"Profile"`
4231
4232	// The content encoding of the profile.
4233	ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"`
4234
4235	// The content type of the profile in the payload. It is either application/json
4236	// or the default application/x-amzn-ion.
4237	//
4238	// ContentType is a required field
4239	ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"`
4240
4241	// Information about the profile.
4242	//
4243	// Profile is a required field
4244	Profile []byte `locationName:"profile" type:"blob" required:"true"`
4245}
4246
4247// String returns the string representation.
4248//
4249// API parameter values that are decorated as "sensitive" in the API will not
4250// be included in the string output. The member name will be present, but the
4251// value will be replaced with "sensitive".
4252func (s GetProfileOutput) String() string {
4253	return awsutil.Prettify(s)
4254}
4255
4256// GoString returns the string representation.
4257//
4258// API parameter values that are decorated as "sensitive" in the API will not
4259// be included in the string output. The member name will be present, but the
4260// value will be replaced with "sensitive".
4261func (s GetProfileOutput) GoString() string {
4262	return s.String()
4263}
4264
4265// SetContentEncoding sets the ContentEncoding field's value.
4266func (s *GetProfileOutput) SetContentEncoding(v string) *GetProfileOutput {
4267	s.ContentEncoding = &v
4268	return s
4269}
4270
4271// SetContentType sets the ContentType field's value.
4272func (s *GetProfileOutput) SetContentType(v string) *GetProfileOutput {
4273	s.ContentType = &v
4274	return s
4275}
4276
4277// SetProfile sets the Profile field's value.
4278func (s *GetProfileOutput) SetProfile(v []byte) *GetProfileOutput {
4279	s.Profile = v
4280	return s
4281}
4282
4283// The structure representing the GetRecommendationsRequest.
4284type GetRecommendationsInput struct {
4285	_ struct{} `type:"structure" nopayload:"true"`
4286
4287	// The start time of the profile to get analysis data about. You must specify
4288	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4289	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4290	// PM UTC.
4291	//
4292	// EndTime is a required field
4293	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4294
4295	// The language used to provide analysis. Specify using a string that is one
4296	// of the following BCP 47 language codes.
4297	//
4298	//    * de-DE - German, Germany
4299	//
4300	//    * en-GB - English, United Kingdom
4301	//
4302	//    * en-US - English, United States
4303	//
4304	//    * es-ES - Spanish, Spain
4305	//
4306	//    * fr-FR - French, France
4307	//
4308	//    * it-IT - Italian, Italy
4309	//
4310	//    * ja-JP - Japanese, Japan
4311	//
4312	//    * ko-KR - Korean, Republic of Korea
4313	//
4314	//    * pt-BR - Portugese, Brazil
4315	//
4316	//    * zh-CN - Chinese, China
4317	//
4318	//    * zh-TW - Chinese, Taiwan
4319	Locale *string `location:"querystring" locationName:"locale" type:"string"`
4320
4321	// The name of the profiling group to get analysis data about.
4322	//
4323	// ProfilingGroupName is a required field
4324	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4325
4326	// The end time of the profile to get analysis data about. You must specify
4327	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4328	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4329	// PM UTC.
4330	//
4331	// StartTime is a required field
4332	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4333}
4334
4335// String returns the string representation.
4336//
4337// API parameter values that are decorated as "sensitive" in the API will not
4338// be included in the string output. The member name will be present, but the
4339// value will be replaced with "sensitive".
4340func (s GetRecommendationsInput) String() string {
4341	return awsutil.Prettify(s)
4342}
4343
4344// GoString returns the string representation.
4345//
4346// API parameter values that are decorated as "sensitive" in the API will not
4347// be included in the string output. The member name will be present, but the
4348// value will be replaced with "sensitive".
4349func (s GetRecommendationsInput) GoString() string {
4350	return s.String()
4351}
4352
4353// Validate inspects the fields of the type to determine if they are valid.
4354func (s *GetRecommendationsInput) Validate() error {
4355	invalidParams := request.ErrInvalidParams{Context: "GetRecommendationsInput"}
4356	if s.EndTime == nil {
4357		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4358	}
4359	if s.ProfilingGroupName == nil {
4360		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4361	}
4362	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4363		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4364	}
4365	if s.StartTime == nil {
4366		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4367	}
4368
4369	if invalidParams.Len() > 0 {
4370		return invalidParams
4371	}
4372	return nil
4373}
4374
4375// SetEndTime sets the EndTime field's value.
4376func (s *GetRecommendationsInput) SetEndTime(v time.Time) *GetRecommendationsInput {
4377	s.EndTime = &v
4378	return s
4379}
4380
4381// SetLocale sets the Locale field's value.
4382func (s *GetRecommendationsInput) SetLocale(v string) *GetRecommendationsInput {
4383	s.Locale = &v
4384	return s
4385}
4386
4387// SetProfilingGroupName sets the ProfilingGroupName field's value.
4388func (s *GetRecommendationsInput) SetProfilingGroupName(v string) *GetRecommendationsInput {
4389	s.ProfilingGroupName = &v
4390	return s
4391}
4392
4393// SetStartTime sets the StartTime field's value.
4394func (s *GetRecommendationsInput) SetStartTime(v time.Time) *GetRecommendationsInput {
4395	s.StartTime = &v
4396	return s
4397}
4398
4399// The structure representing the GetRecommendationsResponse.
4400type GetRecommendationsOutput struct {
4401	_ struct{} `type:"structure"`
4402
4403	// The list of anomalies that the analysis has found for this profile.
4404	//
4405	// Anomalies is a required field
4406	Anomalies []*Anomaly `locationName:"anomalies" type:"list" required:"true"`
4407
4408	// The end time of the profile the analysis data is about. This is specified
4409	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
4410	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
4411	//
4412	// ProfileEndTime is a required field
4413	ProfileEndTime *time.Time `locationName:"profileEndTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4414
4415	// The start time of the profile the analysis data is about. This is specified
4416	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
4417	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
4418	//
4419	// ProfileStartTime is a required field
4420	ProfileStartTime *time.Time `locationName:"profileStartTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4421
4422	// The name of the profiling group the analysis data is about.
4423	//
4424	// ProfilingGroupName is a required field
4425	ProfilingGroupName *string `locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4426
4427	// The list of recommendations that the analysis found for this profile.
4428	//
4429	// Recommendations is a required field
4430	Recommendations []*Recommendation `locationName:"recommendations" type:"list" required:"true"`
4431}
4432
4433// String returns the string representation.
4434//
4435// API parameter values that are decorated as "sensitive" in the API will not
4436// be included in the string output. The member name will be present, but the
4437// value will be replaced with "sensitive".
4438func (s GetRecommendationsOutput) String() string {
4439	return awsutil.Prettify(s)
4440}
4441
4442// GoString returns the string representation.
4443//
4444// API parameter values that are decorated as "sensitive" in the API will not
4445// be included in the string output. The member name will be present, but the
4446// value will be replaced with "sensitive".
4447func (s GetRecommendationsOutput) GoString() string {
4448	return s.String()
4449}
4450
4451// SetAnomalies sets the Anomalies field's value.
4452func (s *GetRecommendationsOutput) SetAnomalies(v []*Anomaly) *GetRecommendationsOutput {
4453	s.Anomalies = v
4454	return s
4455}
4456
4457// SetProfileEndTime sets the ProfileEndTime field's value.
4458func (s *GetRecommendationsOutput) SetProfileEndTime(v time.Time) *GetRecommendationsOutput {
4459	s.ProfileEndTime = &v
4460	return s
4461}
4462
4463// SetProfileStartTime sets the ProfileStartTime field's value.
4464func (s *GetRecommendationsOutput) SetProfileStartTime(v time.Time) *GetRecommendationsOutput {
4465	s.ProfileStartTime = &v
4466	return s
4467}
4468
4469// SetProfilingGroupName sets the ProfilingGroupName field's value.
4470func (s *GetRecommendationsOutput) SetProfilingGroupName(v string) *GetRecommendationsOutput {
4471	s.ProfilingGroupName = &v
4472	return s
4473}
4474
4475// SetRecommendations sets the Recommendations field's value.
4476func (s *GetRecommendationsOutput) SetRecommendations(v []*Recommendation) *GetRecommendationsOutput {
4477	s.Recommendations = v
4478	return s
4479}
4480
4481// The server encountered an internal error and is unable to complete the request.
4482type InternalServerException struct {
4483	_            struct{}                  `type:"structure"`
4484	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4485
4486	Message_ *string `locationName:"message" type:"string"`
4487}
4488
4489// String returns the string representation.
4490//
4491// API parameter values that are decorated as "sensitive" in the API will not
4492// be included in the string output. The member name will be present, but the
4493// value will be replaced with "sensitive".
4494func (s InternalServerException) String() string {
4495	return awsutil.Prettify(s)
4496}
4497
4498// GoString returns the string representation.
4499//
4500// API parameter values that are decorated as "sensitive" in the API will not
4501// be included in the string output. The member name will be present, but the
4502// value will be replaced with "sensitive".
4503func (s InternalServerException) GoString() string {
4504	return s.String()
4505}
4506
4507func newErrorInternalServerException(v protocol.ResponseMetadata) error {
4508	return &InternalServerException{
4509		RespMetadata: v,
4510	}
4511}
4512
4513// Code returns the exception type name.
4514func (s *InternalServerException) Code() string {
4515	return "InternalServerException"
4516}
4517
4518// Message returns the exception's message.
4519func (s *InternalServerException) Message() string {
4520	if s.Message_ != nil {
4521		return *s.Message_
4522	}
4523	return ""
4524}
4525
4526// OrigErr always returns nil, satisfies awserr.Error interface.
4527func (s *InternalServerException) OrigErr() error {
4528	return nil
4529}
4530
4531func (s *InternalServerException) Error() string {
4532	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4533}
4534
4535// Status code returns the HTTP status code for the request's response error.
4536func (s *InternalServerException) StatusCode() int {
4537	return s.RespMetadata.StatusCode
4538}
4539
4540// RequestID returns the service's response RequestID for request.
4541func (s *InternalServerException) RequestID() string {
4542	return s.RespMetadata.RequestID
4543}
4544
4545// The structure representing the ListFindingsReportsRequest.
4546type ListFindingsReportsInput struct {
4547	_ struct{} `type:"structure" nopayload:"true"`
4548
4549	// A Boolean value indicating whether to only return reports from daily profiles.
4550	// If set to True, only analysis data from daily profiles is returned. If set
4551	// to False, analysis data is returned from smaller time windows (for example,
4552	// one hour).
4553	DailyReportsOnly *bool `location:"querystring" locationName:"dailyReportsOnly" type:"boolean"`
4554
4555	// The end time of the profile to get analysis data about. You must specify
4556	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4557	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4558	// PM UTC.
4559	//
4560	// EndTime is a required field
4561	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4562
4563	// The maximum number of report results returned by ListFindingsReports in paginated
4564	// output. When this parameter is used, ListFindingsReports only returns maxResults
4565	// results in a single page along with a nextToken response element. The remaining
4566	// results of the initial request can be seen by sending another ListFindingsReports
4567	// request with the returned nextToken value.
4568	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
4569
4570	// The nextToken value returned from a previous paginated ListFindingsReportsRequest
4571	// request where maxResults was used and the results exceeded the value of that
4572	// parameter. Pagination continues from the end of the previous results that
4573	// returned the nextToken value.
4574	//
4575	// This token should be treated as an opaque identifier that is only used to
4576	// retrieve the next items in a list and not for other programmatic purposes.
4577	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
4578
4579	// The name of the profiling group from which to search for analysis data.
4580	//
4581	// ProfilingGroupName is a required field
4582	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4583
4584	// The start time of the profile to get analysis data about. You must specify
4585	// startTime and endTime. This is specified using the ISO 8601 format. For example,
4586	// 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02
4587	// PM UTC.
4588	//
4589	// StartTime is a required field
4590	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4591}
4592
4593// String returns the string representation.
4594//
4595// API parameter values that are decorated as "sensitive" in the API will not
4596// be included in the string output. The member name will be present, but the
4597// value will be replaced with "sensitive".
4598func (s ListFindingsReportsInput) String() string {
4599	return awsutil.Prettify(s)
4600}
4601
4602// GoString returns the string representation.
4603//
4604// API parameter values that are decorated as "sensitive" in the API will not
4605// be included in the string output. The member name will be present, but the
4606// value will be replaced with "sensitive".
4607func (s ListFindingsReportsInput) GoString() string {
4608	return s.String()
4609}
4610
4611// Validate inspects the fields of the type to determine if they are valid.
4612func (s *ListFindingsReportsInput) Validate() error {
4613	invalidParams := request.ErrInvalidParams{Context: "ListFindingsReportsInput"}
4614	if s.EndTime == nil {
4615		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4616	}
4617	if s.MaxResults != nil && *s.MaxResults < 1 {
4618		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4619	}
4620	if s.NextToken != nil && len(*s.NextToken) < 1 {
4621		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4622	}
4623	if s.ProfilingGroupName == nil {
4624		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4625	}
4626	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4627		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4628	}
4629	if s.StartTime == nil {
4630		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4631	}
4632
4633	if invalidParams.Len() > 0 {
4634		return invalidParams
4635	}
4636	return nil
4637}
4638
4639// SetDailyReportsOnly sets the DailyReportsOnly field's value.
4640func (s *ListFindingsReportsInput) SetDailyReportsOnly(v bool) *ListFindingsReportsInput {
4641	s.DailyReportsOnly = &v
4642	return s
4643}
4644
4645// SetEndTime sets the EndTime field's value.
4646func (s *ListFindingsReportsInput) SetEndTime(v time.Time) *ListFindingsReportsInput {
4647	s.EndTime = &v
4648	return s
4649}
4650
4651// SetMaxResults sets the MaxResults field's value.
4652func (s *ListFindingsReportsInput) SetMaxResults(v int64) *ListFindingsReportsInput {
4653	s.MaxResults = &v
4654	return s
4655}
4656
4657// SetNextToken sets the NextToken field's value.
4658func (s *ListFindingsReportsInput) SetNextToken(v string) *ListFindingsReportsInput {
4659	s.NextToken = &v
4660	return s
4661}
4662
4663// SetProfilingGroupName sets the ProfilingGroupName field's value.
4664func (s *ListFindingsReportsInput) SetProfilingGroupName(v string) *ListFindingsReportsInput {
4665	s.ProfilingGroupName = &v
4666	return s
4667}
4668
4669// SetStartTime sets the StartTime field's value.
4670func (s *ListFindingsReportsInput) SetStartTime(v time.Time) *ListFindingsReportsInput {
4671	s.StartTime = &v
4672	return s
4673}
4674
4675// The structure representing the ListFindingsReportsResponse.
4676type ListFindingsReportsOutput struct {
4677	_ struct{} `type:"structure"`
4678
4679	// The list of analysis results summaries.
4680	//
4681	// FindingsReportSummaries is a required field
4682	FindingsReportSummaries []*FindingsReportSummary `locationName:"findingsReportSummaries" type:"list" required:"true"`
4683
4684	// The nextToken value to include in a future ListFindingsReports request. When
4685	// the results of a ListFindingsReports request exceed maxResults, this value
4686	// can be used to retrieve the next page of results. This value is null when
4687	// there are no more results to return.
4688	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
4689}
4690
4691// String returns the string representation.
4692//
4693// API parameter values that are decorated as "sensitive" in the API will not
4694// be included in the string output. The member name will be present, but the
4695// value will be replaced with "sensitive".
4696func (s ListFindingsReportsOutput) String() string {
4697	return awsutil.Prettify(s)
4698}
4699
4700// GoString returns the string representation.
4701//
4702// API parameter values that are decorated as "sensitive" in the API will not
4703// be included in the string output. The member name will be present, but the
4704// value will be replaced with "sensitive".
4705func (s ListFindingsReportsOutput) GoString() string {
4706	return s.String()
4707}
4708
4709// SetFindingsReportSummaries sets the FindingsReportSummaries field's value.
4710func (s *ListFindingsReportsOutput) SetFindingsReportSummaries(v []*FindingsReportSummary) *ListFindingsReportsOutput {
4711	s.FindingsReportSummaries = v
4712	return s
4713}
4714
4715// SetNextToken sets the NextToken field's value.
4716func (s *ListFindingsReportsOutput) SetNextToken(v string) *ListFindingsReportsOutput {
4717	s.NextToken = &v
4718	return s
4719}
4720
4721// The structure representing the listProfileTimesRequest.
4722type ListProfileTimesInput struct {
4723	_ struct{} `type:"structure" nopayload:"true"`
4724
4725	// The end time of the time range from which to list the profiles.
4726	//
4727	// EndTime is a required field
4728	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4729
4730	// The maximum number of profile time results returned by ListProfileTimes in
4731	// paginated output. When this parameter is used, ListProfileTimes only returns
4732	// maxResults results in a single page with a nextToken response element. The
4733	// remaining results of the initial request can be seen by sending another ListProfileTimes
4734	// request with the returned nextToken value.
4735	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
4736
4737	// The nextToken value returned from a previous paginated ListProfileTimes request
4738	// where maxResults was used and the results exceeded the value of that parameter.
4739	// Pagination continues from the end of the previous results that returned the
4740	// nextToken value.
4741	//
4742	// This token should be treated as an opaque identifier that is only used to
4743	// retrieve the next items in a list and not for other programmatic purposes.
4744	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
4745
4746	// The order (ascending or descending by start time of the profile) to use when
4747	// listing profiles. Defaults to TIMESTAMP_DESCENDING.
4748	OrderBy *string `location:"querystring" locationName:"orderBy" type:"string" enum:"OrderBy"`
4749
4750	// The aggregation period. This specifies the period during which an aggregation
4751	// profile collects posted agent profiles for a profiling group. There are 3
4752	// valid values.
4753	//
4754	//    * P1D — 1 day
4755	//
4756	//    * PT1H — 1 hour
4757	//
4758	//    * PT5M — 5 minutes
4759	//
4760	// Period is a required field
4761	Period *string `location:"querystring" locationName:"period" type:"string" required:"true" enum:"AggregationPeriod"`
4762
4763	// The name of the profiling group.
4764	//
4765	// ProfilingGroupName is a required field
4766	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
4767
4768	// The start time of the time range from which to list the profiles.
4769	//
4770	// StartTime is a required field
4771	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
4772}
4773
4774// String returns the string representation.
4775//
4776// API parameter values that are decorated as "sensitive" in the API will not
4777// be included in the string output. The member name will be present, but the
4778// value will be replaced with "sensitive".
4779func (s ListProfileTimesInput) String() string {
4780	return awsutil.Prettify(s)
4781}
4782
4783// GoString returns the string representation.
4784//
4785// API parameter values that are decorated as "sensitive" in the API will not
4786// be included in the string output. The member name will be present, but the
4787// value will be replaced with "sensitive".
4788func (s ListProfileTimesInput) GoString() string {
4789	return s.String()
4790}
4791
4792// Validate inspects the fields of the type to determine if they are valid.
4793func (s *ListProfileTimesInput) Validate() error {
4794	invalidParams := request.ErrInvalidParams{Context: "ListProfileTimesInput"}
4795	if s.EndTime == nil {
4796		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4797	}
4798	if s.MaxResults != nil && *s.MaxResults < 1 {
4799		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4800	}
4801	if s.NextToken != nil && len(*s.NextToken) < 1 {
4802		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4803	}
4804	if s.Period == nil {
4805		invalidParams.Add(request.NewErrParamRequired("Period"))
4806	}
4807	if s.ProfilingGroupName == nil {
4808		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
4809	}
4810	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
4811		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
4812	}
4813	if s.StartTime == nil {
4814		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4815	}
4816
4817	if invalidParams.Len() > 0 {
4818		return invalidParams
4819	}
4820	return nil
4821}
4822
4823// SetEndTime sets the EndTime field's value.
4824func (s *ListProfileTimesInput) SetEndTime(v time.Time) *ListProfileTimesInput {
4825	s.EndTime = &v
4826	return s
4827}
4828
4829// SetMaxResults sets the MaxResults field's value.
4830func (s *ListProfileTimesInput) SetMaxResults(v int64) *ListProfileTimesInput {
4831	s.MaxResults = &v
4832	return s
4833}
4834
4835// SetNextToken sets the NextToken field's value.
4836func (s *ListProfileTimesInput) SetNextToken(v string) *ListProfileTimesInput {
4837	s.NextToken = &v
4838	return s
4839}
4840
4841// SetOrderBy sets the OrderBy field's value.
4842func (s *ListProfileTimesInput) SetOrderBy(v string) *ListProfileTimesInput {
4843	s.OrderBy = &v
4844	return s
4845}
4846
4847// SetPeriod sets the Period field's value.
4848func (s *ListProfileTimesInput) SetPeriod(v string) *ListProfileTimesInput {
4849	s.Period = &v
4850	return s
4851}
4852
4853// SetProfilingGroupName sets the ProfilingGroupName field's value.
4854func (s *ListProfileTimesInput) SetProfilingGroupName(v string) *ListProfileTimesInput {
4855	s.ProfilingGroupName = &v
4856	return s
4857}
4858
4859// SetStartTime sets the StartTime field's value.
4860func (s *ListProfileTimesInput) SetStartTime(v time.Time) *ListProfileTimesInput {
4861	s.StartTime = &v
4862	return s
4863}
4864
4865// The structure representing the listProfileTimesResponse.
4866type ListProfileTimesOutput struct {
4867	_ struct{} `type:"structure"`
4868
4869	// The nextToken value to include in a future ListProfileTimes request. When
4870	// the results of a ListProfileTimes request exceed maxResults, this value can
4871	// be used to retrieve the next page of results. This value is null when there
4872	// are no more results to return.
4873	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
4874
4875	// The list of start times of the available profiles for the aggregation period
4876	// in the specified time range.
4877	//
4878	// ProfileTimes is a required field
4879	ProfileTimes []*ProfileTime `locationName:"profileTimes" type:"list" required:"true"`
4880}
4881
4882// String returns the string representation.
4883//
4884// API parameter values that are decorated as "sensitive" in the API will not
4885// be included in the string output. The member name will be present, but the
4886// value will be replaced with "sensitive".
4887func (s ListProfileTimesOutput) String() string {
4888	return awsutil.Prettify(s)
4889}
4890
4891// GoString returns the string representation.
4892//
4893// API parameter values that are decorated as "sensitive" in the API will not
4894// be included in the string output. The member name will be present, but the
4895// value will be replaced with "sensitive".
4896func (s ListProfileTimesOutput) GoString() string {
4897	return s.String()
4898}
4899
4900// SetNextToken sets the NextToken field's value.
4901func (s *ListProfileTimesOutput) SetNextToken(v string) *ListProfileTimesOutput {
4902	s.NextToken = &v
4903	return s
4904}
4905
4906// SetProfileTimes sets the ProfileTimes field's value.
4907func (s *ListProfileTimesOutput) SetProfileTimes(v []*ProfileTime) *ListProfileTimesOutput {
4908	s.ProfileTimes = v
4909	return s
4910}
4911
4912// The structure representing the listProfilingGroupsRequest.
4913type ListProfilingGroupsInput struct {
4914	_ struct{} `type:"structure" nopayload:"true"`
4915
4916	// A Boolean value indicating whether to include a description. If true, then
4917	// a list of ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
4918	// objects that contain detailed information about profiling groups is returned.
4919	// If false, then a list of profiling group names is returned.
4920	IncludeDescription *bool `location:"querystring" locationName:"includeDescription" type:"boolean"`
4921
4922	// The maximum number of profiling groups results returned by ListProfilingGroups
4923	// in paginated output. When this parameter is used, ListProfilingGroups only
4924	// returns maxResults results in a single page along with a nextToken response
4925	// element. The remaining results of the initial request can be seen by sending
4926	// another ListProfilingGroups request with the returned nextToken value.
4927	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
4928
4929	// The nextToken value returned from a previous paginated ListProfilingGroups
4930	// request where maxResults was used and the results exceeded the value of that
4931	// parameter. Pagination continues from the end of the previous results that
4932	// returned the nextToken value.
4933	//
4934	// This token should be treated as an opaque identifier that is only used to
4935	// retrieve the next items in a list and not for other programmatic purposes.
4936	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`
4937}
4938
4939// String returns the string representation.
4940//
4941// API parameter values that are decorated as "sensitive" in the API will not
4942// be included in the string output. The member name will be present, but the
4943// value will be replaced with "sensitive".
4944func (s ListProfilingGroupsInput) String() string {
4945	return awsutil.Prettify(s)
4946}
4947
4948// GoString returns the string representation.
4949//
4950// API parameter values that are decorated as "sensitive" in the API will not
4951// be included in the string output. The member name will be present, but the
4952// value will be replaced with "sensitive".
4953func (s ListProfilingGroupsInput) GoString() string {
4954	return s.String()
4955}
4956
4957// Validate inspects the fields of the type to determine if they are valid.
4958func (s *ListProfilingGroupsInput) Validate() error {
4959	invalidParams := request.ErrInvalidParams{Context: "ListProfilingGroupsInput"}
4960	if s.MaxResults != nil && *s.MaxResults < 1 {
4961		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4962	}
4963	if s.NextToken != nil && len(*s.NextToken) < 1 {
4964		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4965	}
4966
4967	if invalidParams.Len() > 0 {
4968		return invalidParams
4969	}
4970	return nil
4971}
4972
4973// SetIncludeDescription sets the IncludeDescription field's value.
4974func (s *ListProfilingGroupsInput) SetIncludeDescription(v bool) *ListProfilingGroupsInput {
4975	s.IncludeDescription = &v
4976	return s
4977}
4978
4979// SetMaxResults sets the MaxResults field's value.
4980func (s *ListProfilingGroupsInput) SetMaxResults(v int64) *ListProfilingGroupsInput {
4981	s.MaxResults = &v
4982	return s
4983}
4984
4985// SetNextToken sets the NextToken field's value.
4986func (s *ListProfilingGroupsInput) SetNextToken(v string) *ListProfilingGroupsInput {
4987	s.NextToken = &v
4988	return s
4989}
4990
4991// The structure representing the listProfilingGroupsResponse.
4992type ListProfilingGroupsOutput struct {
4993	_ struct{} `type:"structure"`
4994
4995	// The nextToken value to include in a future ListProfilingGroups request. When
4996	// the results of a ListProfilingGroups request exceed maxResults, this value
4997	// can be used to retrieve the next page of results. This value is null when
4998	// there are no more results to return.
4999	NextToken *string `locationName:"nextToken" min:"1" type:"string"`
5000
5001	// A returned list of profiling group names. A list of the names is returned
5002	// only if includeDescription is false, otherwise a list of ProfilingGroupDescription
5003	// (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
5004	// objects is returned.
5005	//
5006	// ProfilingGroupNames is a required field
5007	ProfilingGroupNames []*string `locationName:"profilingGroupNames" type:"list" required:"true"`
5008
5009	// A returned list ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
5010	// objects. A list of ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
5011	// objects is returned only if includeDescription is true, otherwise a list
5012	// of profiling group names is returned.
5013	ProfilingGroups []*ProfilingGroupDescription `locationName:"profilingGroups" type:"list"`
5014}
5015
5016// String returns the string representation.
5017//
5018// API parameter values that are decorated as "sensitive" in the API will not
5019// be included in the string output. The member name will be present, but the
5020// value will be replaced with "sensitive".
5021func (s ListProfilingGroupsOutput) String() string {
5022	return awsutil.Prettify(s)
5023}
5024
5025// GoString returns the string representation.
5026//
5027// API parameter values that are decorated as "sensitive" in the API will not
5028// be included in the string output. The member name will be present, but the
5029// value will be replaced with "sensitive".
5030func (s ListProfilingGroupsOutput) GoString() string {
5031	return s.String()
5032}
5033
5034// SetNextToken sets the NextToken field's value.
5035func (s *ListProfilingGroupsOutput) SetNextToken(v string) *ListProfilingGroupsOutput {
5036	s.NextToken = &v
5037	return s
5038}
5039
5040// SetProfilingGroupNames sets the ProfilingGroupNames field's value.
5041func (s *ListProfilingGroupsOutput) SetProfilingGroupNames(v []*string) *ListProfilingGroupsOutput {
5042	s.ProfilingGroupNames = v
5043	return s
5044}
5045
5046// SetProfilingGroups sets the ProfilingGroups field's value.
5047func (s *ListProfilingGroupsOutput) SetProfilingGroups(v []*ProfilingGroupDescription) *ListProfilingGroupsOutput {
5048	s.ProfilingGroups = v
5049	return s
5050}
5051
5052type ListTagsForResourceInput struct {
5053	_ struct{} `type:"structure" nopayload:"true"`
5054
5055	// The Amazon Resource Name (ARN) of the resource that contains the tags to
5056	// return.
5057	//
5058	// ResourceArn is a required field
5059	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
5060}
5061
5062// String returns the string representation.
5063//
5064// API parameter values that are decorated as "sensitive" in the API will not
5065// be included in the string output. The member name will be present, but the
5066// value will be replaced with "sensitive".
5067func (s ListTagsForResourceInput) String() string {
5068	return awsutil.Prettify(s)
5069}
5070
5071// GoString returns the string representation.
5072//
5073// API parameter values that are decorated as "sensitive" in the API will not
5074// be included in the string output. The member name will be present, but the
5075// value will be replaced with "sensitive".
5076func (s ListTagsForResourceInput) GoString() string {
5077	return s.String()
5078}
5079
5080// Validate inspects the fields of the type to determine if they are valid.
5081func (s *ListTagsForResourceInput) Validate() error {
5082	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5083	if s.ResourceArn == nil {
5084		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5085	}
5086	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5087		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5088	}
5089
5090	if invalidParams.Len() > 0 {
5091		return invalidParams
5092	}
5093	return nil
5094}
5095
5096// SetResourceArn sets the ResourceArn field's value.
5097func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5098	s.ResourceArn = &v
5099	return s
5100}
5101
5102type ListTagsForResourceOutput struct {
5103	_ struct{} `type:"structure"`
5104
5105	// The list of tags assigned to the specified resource. This is the list of
5106	// tags returned in the response.
5107	Tags map[string]*string `locationName:"tags" type:"map"`
5108}
5109
5110// String returns the string representation.
5111//
5112// API parameter values that are decorated as "sensitive" in the API will not
5113// be included in the string output. The member name will be present, but the
5114// value will be replaced with "sensitive".
5115func (s ListTagsForResourceOutput) String() string {
5116	return awsutil.Prettify(s)
5117}
5118
5119// GoString returns the string representation.
5120//
5121// API parameter values that are decorated as "sensitive" in the API will not
5122// be included in the string output. The member name will be present, but the
5123// value will be replaced with "sensitive".
5124func (s ListTagsForResourceOutput) GoString() string {
5125	return s.String()
5126}
5127
5128// SetTags sets the Tags field's value.
5129func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
5130	s.Tags = v
5131	return s
5132}
5133
5134// The part of a profile that contains a recommendation found during analysis.
5135type Match struct {
5136	_ struct{} `type:"structure"`
5137
5138	// The location in the profiling graph that contains a recommendation found
5139	// during analysis.
5140	FrameAddress *string `locationName:"frameAddress" type:"string"`
5141
5142	// The target frame that triggered a match.
5143	TargetFramesIndex *int64 `locationName:"targetFramesIndex" type:"integer"`
5144
5145	// The value in the profile data that exceeded the recommendation threshold.
5146	ThresholdBreachValue *float64 `locationName:"thresholdBreachValue" type:"double"`
5147}
5148
5149// String returns the string representation.
5150//
5151// API parameter values that are decorated as "sensitive" in the API will not
5152// be included in the string output. The member name will be present, but the
5153// value will be replaced with "sensitive".
5154func (s Match) String() string {
5155	return awsutil.Prettify(s)
5156}
5157
5158// GoString returns the string representation.
5159//
5160// API parameter values that are decorated as "sensitive" in the API will not
5161// be included in the string output. The member name will be present, but the
5162// value will be replaced with "sensitive".
5163func (s Match) GoString() string {
5164	return s.String()
5165}
5166
5167// SetFrameAddress sets the FrameAddress field's value.
5168func (s *Match) SetFrameAddress(v string) *Match {
5169	s.FrameAddress = &v
5170	return s
5171}
5172
5173// SetTargetFramesIndex sets the TargetFramesIndex field's value.
5174func (s *Match) SetTargetFramesIndex(v int64) *Match {
5175	s.TargetFramesIndex = &v
5176	return s
5177}
5178
5179// SetThresholdBreachValue sets the ThresholdBreachValue field's value.
5180func (s *Match) SetThresholdBreachValue(v float64) *Match {
5181	s.ThresholdBreachValue = &v
5182	return s
5183}
5184
5185// Details about the metric that the analysis used when it detected the anomaly.
5186// The metric what is analyzed to create recommendations. It includes the name
5187// of the frame that was analyzed and the type and thread states used to derive
5188// the metric value for that frame.
5189type Metric struct {
5190	_ struct{} `type:"structure"`
5191
5192	// The name of the method that appears as a frame in any stack in a profile.
5193	//
5194	// FrameName is a required field
5195	FrameName *string `locationName:"frameName" type:"string" required:"true"`
5196
5197	// The list of application runtime thread states that is used to calculate the
5198	// metric value for the frame.
5199	//
5200	// ThreadStates is a required field
5201	ThreadStates []*string `locationName:"threadStates" type:"list" required:"true"`
5202
5203	// A type that specifies how a metric for a frame is analyzed. The supported
5204	// value AggregatedRelativeTotalTime is an aggregation of the metric value for
5205	// one frame that is calculated across the occurences of all frames in a profile.
5206	//
5207	// Type is a required field
5208	Type *string `locationName:"type" type:"string" required:"true" enum:"MetricType"`
5209}
5210
5211// String returns the string representation.
5212//
5213// API parameter values that are decorated as "sensitive" in the API will not
5214// be included in the string output. The member name will be present, but the
5215// value will be replaced with "sensitive".
5216func (s Metric) String() string {
5217	return awsutil.Prettify(s)
5218}
5219
5220// GoString returns the string representation.
5221//
5222// API parameter values that are decorated as "sensitive" in the API will not
5223// be included in the string output. The member name will be present, but the
5224// value will be replaced with "sensitive".
5225func (s Metric) GoString() string {
5226	return s.String()
5227}
5228
5229// SetFrameName sets the FrameName field's value.
5230func (s *Metric) SetFrameName(v string) *Metric {
5231	s.FrameName = &v
5232	return s
5233}
5234
5235// SetThreadStates sets the ThreadStates field's value.
5236func (s *Metric) SetThreadStates(v []*string) *Metric {
5237	s.ThreadStates = v
5238	return s
5239}
5240
5241// SetType sets the Type field's value.
5242func (s *Metric) SetType(v string) *Metric {
5243	s.Type = &v
5244	return s
5245}
5246
5247// The configuration for notifications stored for each profiling group. This
5248// includes up to to two channels and a list of event publishers associated
5249// with each channel.
5250type NotificationConfiguration struct {
5251	_ struct{} `type:"structure"`
5252
5253	// List of up to two channels to be used for sending notifications for events
5254	// detected from the application profile.
5255	Channels []*Channel `locationName:"channels" min:"1" type:"list"`
5256}
5257
5258// String returns the string representation.
5259//
5260// API parameter values that are decorated as "sensitive" in the API will not
5261// be included in the string output. The member name will be present, but the
5262// value will be replaced with "sensitive".
5263func (s NotificationConfiguration) String() string {
5264	return awsutil.Prettify(s)
5265}
5266
5267// GoString returns the string representation.
5268//
5269// API parameter values that are decorated as "sensitive" in the API will not
5270// be included in the string output. The member name will be present, but the
5271// value will be replaced with "sensitive".
5272func (s NotificationConfiguration) GoString() string {
5273	return s.String()
5274}
5275
5276// SetChannels sets the Channels field's value.
5277func (s *NotificationConfiguration) SetChannels(v []*Channel) *NotificationConfiguration {
5278	s.Channels = v
5279	return s
5280}
5281
5282// A set of rules used to make a recommendation during an analysis.
5283type Pattern struct {
5284	_ struct{} `type:"structure"`
5285
5286	// A list of the different counters used to determine if there is a match.
5287	CountersToAggregate []*string `locationName:"countersToAggregate" type:"list"`
5288
5289	// The description of the recommendation. This explains a potential inefficiency
5290	// in a profiled application.
5291	Description *string `locationName:"description" type:"string"`
5292
5293	// The universally unique identifier (UUID) of this pattern.
5294	Id *string `locationName:"id" type:"string"`
5295
5296	// The name for this pattern.
5297	Name *string `locationName:"name" type:"string"`
5298
5299	// A string that contains the steps recommended to address the potential inefficiency.
5300	ResolutionSteps *string `locationName:"resolutionSteps" type:"string"`
5301
5302	// A list of frame names that were searched during the analysis that generated
5303	// a recommendation.
5304	TargetFrames [][]*string `locationName:"targetFrames" type:"list"`
5305
5306	// The percentage of time an application spends in one method that triggers
5307	// a recommendation. The percentage of time is the same as the percentage of
5308	// the total gathered sample counts during analysis.
5309	ThresholdPercent *float64 `locationName:"thresholdPercent" type:"double"`
5310}
5311
5312// String returns the string representation.
5313//
5314// API parameter values that are decorated as "sensitive" in the API will not
5315// be included in the string output. The member name will be present, but the
5316// value will be replaced with "sensitive".
5317func (s Pattern) String() string {
5318	return awsutil.Prettify(s)
5319}
5320
5321// GoString returns the string representation.
5322//
5323// API parameter values that are decorated as "sensitive" in the API will not
5324// be included in the string output. The member name will be present, but the
5325// value will be replaced with "sensitive".
5326func (s Pattern) GoString() string {
5327	return s.String()
5328}
5329
5330// SetCountersToAggregate sets the CountersToAggregate field's value.
5331func (s *Pattern) SetCountersToAggregate(v []*string) *Pattern {
5332	s.CountersToAggregate = v
5333	return s
5334}
5335
5336// SetDescription sets the Description field's value.
5337func (s *Pattern) SetDescription(v string) *Pattern {
5338	s.Description = &v
5339	return s
5340}
5341
5342// SetId sets the Id field's value.
5343func (s *Pattern) SetId(v string) *Pattern {
5344	s.Id = &v
5345	return s
5346}
5347
5348// SetName sets the Name field's value.
5349func (s *Pattern) SetName(v string) *Pattern {
5350	s.Name = &v
5351	return s
5352}
5353
5354// SetResolutionSteps sets the ResolutionSteps field's value.
5355func (s *Pattern) SetResolutionSteps(v string) *Pattern {
5356	s.ResolutionSteps = &v
5357	return s
5358}
5359
5360// SetTargetFrames sets the TargetFrames field's value.
5361func (s *Pattern) SetTargetFrames(v [][]*string) *Pattern {
5362	s.TargetFrames = v
5363	return s
5364}
5365
5366// SetThresholdPercent sets the ThresholdPercent field's value.
5367func (s *Pattern) SetThresholdPercent(v float64) *Pattern {
5368	s.ThresholdPercent = &v
5369	return s
5370}
5371
5372// The structure representing the postAgentProfileRequest.
5373type PostAgentProfileInput struct {
5374	_ struct{} `type:"structure" payload:"AgentProfile"`
5375
5376	// The submitted profiling data.
5377	//
5378	// AgentProfile is a required field
5379	AgentProfile []byte `locationName:"agentProfile" type:"blob" required:"true"`
5380
5381	// The format of the submitted profiling data. The format maps to the Accept
5382	// and Content-Type headers of the HTTP request. You can specify one of the
5383	// following: or the default .
5384	//
5385	//    <ul> <li> <p> <code>application/json</code> — standard JSON format </p>
5386	//    </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion
5387	//    data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon
5388	//    Ion</a>. </p> </li> </ul>
5389	//
5390	// ContentType is a required field
5391	ContentType *string `location:"header" locationName:"Content-Type" type:"string" required:"true"`
5392
5393	// Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to
5394	// prevent the accidental submission of duplicate profiling data if there are
5395	// failures and retries.
5396	ProfileToken *string `location:"querystring" locationName:"profileToken" min:"1" type:"string" idempotencyToken:"true"`
5397
5398	// The name of the profiling group with the aggregated profile that receives
5399	// the submitted profiling data.
5400	//
5401	// ProfilingGroupName is a required field
5402	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5403}
5404
5405// String returns the string representation.
5406//
5407// API parameter values that are decorated as "sensitive" in the API will not
5408// be included in the string output. The member name will be present, but the
5409// value will be replaced with "sensitive".
5410func (s PostAgentProfileInput) String() string {
5411	return awsutil.Prettify(s)
5412}
5413
5414// GoString returns the string representation.
5415//
5416// API parameter values that are decorated as "sensitive" in the API will not
5417// be included in the string output. The member name will be present, but the
5418// value will be replaced with "sensitive".
5419func (s PostAgentProfileInput) GoString() string {
5420	return s.String()
5421}
5422
5423// Validate inspects the fields of the type to determine if they are valid.
5424func (s *PostAgentProfileInput) Validate() error {
5425	invalidParams := request.ErrInvalidParams{Context: "PostAgentProfileInput"}
5426	if s.AgentProfile == nil {
5427		invalidParams.Add(request.NewErrParamRequired("AgentProfile"))
5428	}
5429	if s.ContentType == nil {
5430		invalidParams.Add(request.NewErrParamRequired("ContentType"))
5431	}
5432	if s.ProfileToken != nil && len(*s.ProfileToken) < 1 {
5433		invalidParams.Add(request.NewErrParamMinLen("ProfileToken", 1))
5434	}
5435	if s.ProfilingGroupName == nil {
5436		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5437	}
5438	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5439		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5440	}
5441
5442	if invalidParams.Len() > 0 {
5443		return invalidParams
5444	}
5445	return nil
5446}
5447
5448// SetAgentProfile sets the AgentProfile field's value.
5449func (s *PostAgentProfileInput) SetAgentProfile(v []byte) *PostAgentProfileInput {
5450	s.AgentProfile = v
5451	return s
5452}
5453
5454// SetContentType sets the ContentType field's value.
5455func (s *PostAgentProfileInput) SetContentType(v string) *PostAgentProfileInput {
5456	s.ContentType = &v
5457	return s
5458}
5459
5460// SetProfileToken sets the ProfileToken field's value.
5461func (s *PostAgentProfileInput) SetProfileToken(v string) *PostAgentProfileInput {
5462	s.ProfileToken = &v
5463	return s
5464}
5465
5466// SetProfilingGroupName sets the ProfilingGroupName field's value.
5467func (s *PostAgentProfileInput) SetProfilingGroupName(v string) *PostAgentProfileInput {
5468	s.ProfilingGroupName = &v
5469	return s
5470}
5471
5472// The structure representing the postAgentProfileResponse.
5473type PostAgentProfileOutput struct {
5474	_ struct{} `type:"structure"`
5475}
5476
5477// String returns the string representation.
5478//
5479// API parameter values that are decorated as "sensitive" in the API will not
5480// be included in the string output. The member name will be present, but the
5481// value will be replaced with "sensitive".
5482func (s PostAgentProfileOutput) String() string {
5483	return awsutil.Prettify(s)
5484}
5485
5486// GoString returns the string representation.
5487//
5488// API parameter values that are decorated as "sensitive" in the API will not
5489// be included in the string output. The member name will be present, but the
5490// value will be replaced with "sensitive".
5491func (s PostAgentProfileOutput) GoString() string {
5492	return s.String()
5493}
5494
5495// Contains the start time of a profile.
5496type ProfileTime struct {
5497	_ struct{} `type:"structure"`
5498
5499	// The start time of a profile. It is specified using the ISO 8601 format. For
5500	// example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020
5501	// 1:15:02 PM UTC.
5502	Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
5503}
5504
5505// String returns the string representation.
5506//
5507// API parameter values that are decorated as "sensitive" in the API will not
5508// be included in the string output. The member name will be present, but the
5509// value will be replaced with "sensitive".
5510func (s ProfileTime) String() string {
5511	return awsutil.Prettify(s)
5512}
5513
5514// GoString returns the string representation.
5515//
5516// API parameter values that are decorated as "sensitive" in the API will not
5517// be included in the string output. The member name will be present, but the
5518// value will be replaced with "sensitive".
5519func (s ProfileTime) GoString() string {
5520	return s.String()
5521}
5522
5523// SetStart sets the Start field's value.
5524func (s *ProfileTime) SetStart(v time.Time) *ProfileTime {
5525	s.Start = &v
5526	return s
5527}
5528
5529// Contains information about a profiling group.
5530type ProfilingGroupDescription struct {
5531	_ struct{} `type:"structure"`
5532
5533	// An AgentOrchestrationConfig (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AgentOrchestrationConfig.html)
5534	// object that indicates if the profiling group is enabled for profiled or not.
5535	AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure"`
5536
5537	// The Amazon Resource Name (ARN) identifying the profiling group resource.
5538	Arn *string `locationName:"arn" type:"string"`
5539
5540	// The compute platform of the profiling group. If it is set to AWSLambda, then
5541	// the profiled application runs on AWS Lambda. If it is set to Default, then
5542	// the profiled application runs on a compute platform that is not AWS Lambda,
5543	// such an Amazon EC2 instance, an on-premises server, or a different platform.
5544	// The default is Default.
5545	ComputePlatform *string `locationName:"computePlatform" type:"string" enum:"ComputePlatform"`
5546
5547	// The time when the profiling group was created. Specify using the ISO 8601
5548	// format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past
5549	// June 1, 2020 1:15:02 PM UTC.
5550	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`
5551
5552	// The name of the profiling group.
5553	Name *string `locationName:"name" min:"1" type:"string"`
5554
5555	// A ProfilingStatus (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingStatus.html)
5556	// object that includes information about the last time a profile agent pinged
5557	// back, the last time a profile was received, and the aggregation period and
5558	// start time for the most recent aggregated profile.
5559	ProfilingStatus *ProfilingStatus `locationName:"profilingStatus" type:"structure"`
5560
5561	// A list of the tags that belong to this profiling group.
5562	Tags map[string]*string `locationName:"tags" type:"map"`
5563
5564	// The date and time when the profiling group was last updated. Specify using
5565	// the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
5566	// past June 1, 2020 1:15:02 PM UTC.
5567	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`
5568}
5569
5570// String returns the string representation.
5571//
5572// API parameter values that are decorated as "sensitive" in the API will not
5573// be included in the string output. The member name will be present, but the
5574// value will be replaced with "sensitive".
5575func (s ProfilingGroupDescription) String() string {
5576	return awsutil.Prettify(s)
5577}
5578
5579// GoString returns the string representation.
5580//
5581// API parameter values that are decorated as "sensitive" in the API will not
5582// be included in the string output. The member name will be present, but the
5583// value will be replaced with "sensitive".
5584func (s ProfilingGroupDescription) GoString() string {
5585	return s.String()
5586}
5587
5588// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
5589func (s *ProfilingGroupDescription) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *ProfilingGroupDescription {
5590	s.AgentOrchestrationConfig = v
5591	return s
5592}
5593
5594// SetArn sets the Arn field's value.
5595func (s *ProfilingGroupDescription) SetArn(v string) *ProfilingGroupDescription {
5596	s.Arn = &v
5597	return s
5598}
5599
5600// SetComputePlatform sets the ComputePlatform field's value.
5601func (s *ProfilingGroupDescription) SetComputePlatform(v string) *ProfilingGroupDescription {
5602	s.ComputePlatform = &v
5603	return s
5604}
5605
5606// SetCreatedAt sets the CreatedAt field's value.
5607func (s *ProfilingGroupDescription) SetCreatedAt(v time.Time) *ProfilingGroupDescription {
5608	s.CreatedAt = &v
5609	return s
5610}
5611
5612// SetName sets the Name field's value.
5613func (s *ProfilingGroupDescription) SetName(v string) *ProfilingGroupDescription {
5614	s.Name = &v
5615	return s
5616}
5617
5618// SetProfilingStatus sets the ProfilingStatus field's value.
5619func (s *ProfilingGroupDescription) SetProfilingStatus(v *ProfilingStatus) *ProfilingGroupDescription {
5620	s.ProfilingStatus = v
5621	return s
5622}
5623
5624// SetTags sets the Tags field's value.
5625func (s *ProfilingGroupDescription) SetTags(v map[string]*string) *ProfilingGroupDescription {
5626	s.Tags = v
5627	return s
5628}
5629
5630// SetUpdatedAt sets the UpdatedAt field's value.
5631func (s *ProfilingGroupDescription) SetUpdatedAt(v time.Time) *ProfilingGroupDescription {
5632	s.UpdatedAt = &v
5633	return s
5634}
5635
5636// Profiling status includes information about the last time a profile agent
5637// pinged back, the last time a profile was received, and the aggregation period
5638// and start time for the most recent aggregated profile.
5639type ProfilingStatus struct {
5640	_ struct{} `type:"structure"`
5641
5642	// The date and time when the profiling agent most recently pinged back. Specify
5643	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
5644	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
5645	LatestAgentOrchestratedAt *time.Time `locationName:"latestAgentOrchestratedAt" type:"timestamp" timestampFormat:"iso8601"`
5646
5647	// The date and time when the most recent profile was received. Specify using
5648	// the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
5649	// past June 1, 2020 1:15:02 PM UTC.
5650	LatestAgentProfileReportedAt *time.Time `locationName:"latestAgentProfileReportedAt" type:"timestamp" timestampFormat:"iso8601"`
5651
5652	// An AggregatedProfileTime (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html)
5653	// object that contains the aggregation period and start time for an aggregated
5654	// profile.
5655	LatestAggregatedProfile *AggregatedProfileTime `locationName:"latestAggregatedProfile" type:"structure"`
5656}
5657
5658// String returns the string representation.
5659//
5660// API parameter values that are decorated as "sensitive" in the API will not
5661// be included in the string output. The member name will be present, but the
5662// value will be replaced with "sensitive".
5663func (s ProfilingStatus) String() string {
5664	return awsutil.Prettify(s)
5665}
5666
5667// GoString returns the string representation.
5668//
5669// API parameter values that are decorated as "sensitive" in the API will not
5670// be included in the string output. The member name will be present, but the
5671// value will be replaced with "sensitive".
5672func (s ProfilingStatus) GoString() string {
5673	return s.String()
5674}
5675
5676// SetLatestAgentOrchestratedAt sets the LatestAgentOrchestratedAt field's value.
5677func (s *ProfilingStatus) SetLatestAgentOrchestratedAt(v time.Time) *ProfilingStatus {
5678	s.LatestAgentOrchestratedAt = &v
5679	return s
5680}
5681
5682// SetLatestAgentProfileReportedAt sets the LatestAgentProfileReportedAt field's value.
5683func (s *ProfilingStatus) SetLatestAgentProfileReportedAt(v time.Time) *ProfilingStatus {
5684	s.LatestAgentProfileReportedAt = &v
5685	return s
5686}
5687
5688// SetLatestAggregatedProfile sets the LatestAggregatedProfile field's value.
5689func (s *ProfilingStatus) SetLatestAggregatedProfile(v *AggregatedProfileTime) *ProfilingStatus {
5690	s.LatestAggregatedProfile = v
5691	return s
5692}
5693
5694// The structure representing the putPermissionRequest.
5695type PutPermissionInput struct {
5696	_ struct{} `type:"structure"`
5697
5698	// Specifies an action group that contains permissions to add to a profiling
5699	// group resource. One action group is supported, agentPermissions, which grants
5700	// permission to perform actions required by the profiling agent, ConfigureAgent
5701	// and PostAgentProfile permissions.
5702	//
5703	// ActionGroup is a required field
5704	ActionGroup *string `location:"uri" locationName:"actionGroup" type:"string" required:"true" enum:"ActionGroup"`
5705
5706	// A list ARNs for the roles and users you want to grant access to the profiling
5707	// group. Wildcards are not are supported in the ARNs.
5708	//
5709	// Principals is a required field
5710	Principals []*string `locationName:"principals" min:"1" type:"list" required:"true"`
5711
5712	// The name of the profiling group to grant access to.
5713	//
5714	// ProfilingGroupName is a required field
5715	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5716
5717	// A universally unique identifier (UUID) for the revision of the policy you
5718	// are adding to the profiling group. Do not specify this when you add permissions
5719	// to a profiling group for the first time. If a policy already exists on the
5720	// profiling group, you must specify the revisionId.
5721	RevisionId *string `locationName:"revisionId" type:"string"`
5722}
5723
5724// String returns the string representation.
5725//
5726// API parameter values that are decorated as "sensitive" in the API will not
5727// be included in the string output. The member name will be present, but the
5728// value will be replaced with "sensitive".
5729func (s PutPermissionInput) String() string {
5730	return awsutil.Prettify(s)
5731}
5732
5733// GoString returns the string representation.
5734//
5735// API parameter values that are decorated as "sensitive" in the API will not
5736// be included in the string output. The member name will be present, but the
5737// value will be replaced with "sensitive".
5738func (s PutPermissionInput) GoString() string {
5739	return s.String()
5740}
5741
5742// Validate inspects the fields of the type to determine if they are valid.
5743func (s *PutPermissionInput) Validate() error {
5744	invalidParams := request.ErrInvalidParams{Context: "PutPermissionInput"}
5745	if s.ActionGroup == nil {
5746		invalidParams.Add(request.NewErrParamRequired("ActionGroup"))
5747	}
5748	if s.ActionGroup != nil && len(*s.ActionGroup) < 1 {
5749		invalidParams.Add(request.NewErrParamMinLen("ActionGroup", 1))
5750	}
5751	if s.Principals == nil {
5752		invalidParams.Add(request.NewErrParamRequired("Principals"))
5753	}
5754	if s.Principals != nil && len(s.Principals) < 1 {
5755		invalidParams.Add(request.NewErrParamMinLen("Principals", 1))
5756	}
5757	if s.ProfilingGroupName == nil {
5758		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5759	}
5760	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5761		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5762	}
5763
5764	if invalidParams.Len() > 0 {
5765		return invalidParams
5766	}
5767	return nil
5768}
5769
5770// SetActionGroup sets the ActionGroup field's value.
5771func (s *PutPermissionInput) SetActionGroup(v string) *PutPermissionInput {
5772	s.ActionGroup = &v
5773	return s
5774}
5775
5776// SetPrincipals sets the Principals field's value.
5777func (s *PutPermissionInput) SetPrincipals(v []*string) *PutPermissionInput {
5778	s.Principals = v
5779	return s
5780}
5781
5782// SetProfilingGroupName sets the ProfilingGroupName field's value.
5783func (s *PutPermissionInput) SetProfilingGroupName(v string) *PutPermissionInput {
5784	s.ProfilingGroupName = &v
5785	return s
5786}
5787
5788// SetRevisionId sets the RevisionId field's value.
5789func (s *PutPermissionInput) SetRevisionId(v string) *PutPermissionInput {
5790	s.RevisionId = &v
5791	return s
5792}
5793
5794// The structure representing the putPermissionResponse.
5795type PutPermissionOutput struct {
5796	_ struct{} `type:"structure"`
5797
5798	// The JSON-formatted resource-based policy on the profiling group that includes
5799	// the added permissions.
5800	//
5801	// Policy is a required field
5802	Policy *string `locationName:"policy" type:"string" required:"true"`
5803
5804	// A universally unique identifier (UUID) for the revision of the resource-based
5805	// policy that includes the added permissions. The JSON-formatted policy is
5806	// in the policy element of the response.
5807	//
5808	// RevisionId is a required field
5809	RevisionId *string `locationName:"revisionId" type:"string" required:"true"`
5810}
5811
5812// String returns the string representation.
5813//
5814// API parameter values that are decorated as "sensitive" in the API will not
5815// be included in the string output. The member name will be present, but the
5816// value will be replaced with "sensitive".
5817func (s PutPermissionOutput) String() string {
5818	return awsutil.Prettify(s)
5819}
5820
5821// GoString returns the string representation.
5822//
5823// API parameter values that are decorated as "sensitive" in the API will not
5824// be included in the string output. The member name will be present, but the
5825// value will be replaced with "sensitive".
5826func (s PutPermissionOutput) GoString() string {
5827	return s.String()
5828}
5829
5830// SetPolicy sets the Policy field's value.
5831func (s *PutPermissionOutput) SetPolicy(v string) *PutPermissionOutput {
5832	s.Policy = &v
5833	return s
5834}
5835
5836// SetRevisionId sets the RevisionId field's value.
5837func (s *PutPermissionOutput) SetRevisionId(v string) *PutPermissionOutput {
5838	s.RevisionId = &v
5839	return s
5840}
5841
5842// A potential improvement that was found from analyzing the profiling data.
5843type Recommendation struct {
5844	_ struct{} `type:"structure"`
5845
5846	// How many different places in the profile graph triggered a match.
5847	//
5848	// AllMatchesCount is a required field
5849	AllMatchesCount *int64 `locationName:"allMatchesCount" type:"integer" required:"true"`
5850
5851	// How much of the total sample count is potentially affected.
5852	//
5853	// AllMatchesSum is a required field
5854	AllMatchesSum *float64 `locationName:"allMatchesSum" type:"double" required:"true"`
5855
5856	// End time of the profile that was used by this analysis. This is specified
5857	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
5858	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
5859	//
5860	// EndTime is a required field
5861	EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
5862
5863	// The pattern that analysis recognized in the profile to make this recommendation.
5864	//
5865	// Pattern is a required field
5866	Pattern *Pattern `locationName:"pattern" type:"structure" required:"true"`
5867
5868	// The start time of the profile that was used by this analysis. This is specified
5869	// using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents
5870	// 1 millisecond past June 1, 2020 1:15:02 PM UTC.
5871	//
5872	// StartTime is a required field
5873	StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
5874
5875	// List of the matches with most impact.
5876	//
5877	// TopMatches is a required field
5878	TopMatches []*Match `locationName:"topMatches" type:"list" required:"true"`
5879}
5880
5881// String returns the string representation.
5882//
5883// API parameter values that are decorated as "sensitive" in the API will not
5884// be included in the string output. The member name will be present, but the
5885// value will be replaced with "sensitive".
5886func (s Recommendation) String() string {
5887	return awsutil.Prettify(s)
5888}
5889
5890// GoString returns the string representation.
5891//
5892// API parameter values that are decorated as "sensitive" in the API will not
5893// be included in the string output. The member name will be present, but the
5894// value will be replaced with "sensitive".
5895func (s Recommendation) GoString() string {
5896	return s.String()
5897}
5898
5899// SetAllMatchesCount sets the AllMatchesCount field's value.
5900func (s *Recommendation) SetAllMatchesCount(v int64) *Recommendation {
5901	s.AllMatchesCount = &v
5902	return s
5903}
5904
5905// SetAllMatchesSum sets the AllMatchesSum field's value.
5906func (s *Recommendation) SetAllMatchesSum(v float64) *Recommendation {
5907	s.AllMatchesSum = &v
5908	return s
5909}
5910
5911// SetEndTime sets the EndTime field's value.
5912func (s *Recommendation) SetEndTime(v time.Time) *Recommendation {
5913	s.EndTime = &v
5914	return s
5915}
5916
5917// SetPattern sets the Pattern field's value.
5918func (s *Recommendation) SetPattern(v *Pattern) *Recommendation {
5919	s.Pattern = v
5920	return s
5921}
5922
5923// SetStartTime sets the StartTime field's value.
5924func (s *Recommendation) SetStartTime(v time.Time) *Recommendation {
5925	s.StartTime = &v
5926	return s
5927}
5928
5929// SetTopMatches sets the TopMatches field's value.
5930func (s *Recommendation) SetTopMatches(v []*Match) *Recommendation {
5931	s.TopMatches = v
5932	return s
5933}
5934
5935// The structure representing the RemoveNotificationChannelRequest.
5936type RemoveNotificationChannelInput struct {
5937	_ struct{} `type:"structure" nopayload:"true"`
5938
5939	// The id of the channel that we want to stop receiving notifications.
5940	//
5941	// ChannelId is a required field
5942	ChannelId *string `location:"uri" locationName:"channelId" type:"string" required:"true"`
5943
5944	// The name of the profiling group we want to change notification configuration
5945	// for.
5946	//
5947	// ProfilingGroupName is a required field
5948	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
5949}
5950
5951// String returns the string representation.
5952//
5953// API parameter values that are decorated as "sensitive" in the API will not
5954// be included in the string output. The member name will be present, but the
5955// value will be replaced with "sensitive".
5956func (s RemoveNotificationChannelInput) String() string {
5957	return awsutil.Prettify(s)
5958}
5959
5960// GoString returns the string representation.
5961//
5962// API parameter values that are decorated as "sensitive" in the API will not
5963// be included in the string output. The member name will be present, but the
5964// value will be replaced with "sensitive".
5965func (s RemoveNotificationChannelInput) GoString() string {
5966	return s.String()
5967}
5968
5969// Validate inspects the fields of the type to determine if they are valid.
5970func (s *RemoveNotificationChannelInput) Validate() error {
5971	invalidParams := request.ErrInvalidParams{Context: "RemoveNotificationChannelInput"}
5972	if s.ChannelId == nil {
5973		invalidParams.Add(request.NewErrParamRequired("ChannelId"))
5974	}
5975	if s.ChannelId != nil && len(*s.ChannelId) < 1 {
5976		invalidParams.Add(request.NewErrParamMinLen("ChannelId", 1))
5977	}
5978	if s.ProfilingGroupName == nil {
5979		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
5980	}
5981	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
5982		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
5983	}
5984
5985	if invalidParams.Len() > 0 {
5986		return invalidParams
5987	}
5988	return nil
5989}
5990
5991// SetChannelId sets the ChannelId field's value.
5992func (s *RemoveNotificationChannelInput) SetChannelId(v string) *RemoveNotificationChannelInput {
5993	s.ChannelId = &v
5994	return s
5995}
5996
5997// SetProfilingGroupName sets the ProfilingGroupName field's value.
5998func (s *RemoveNotificationChannelInput) SetProfilingGroupName(v string) *RemoveNotificationChannelInput {
5999	s.ProfilingGroupName = &v
6000	return s
6001}
6002
6003// The structure representing the RemoveNotificationChannelResponse.
6004type RemoveNotificationChannelOutput struct {
6005	_ struct{} `type:"structure"`
6006
6007	// The new notification configuration for this profiling group.
6008	NotificationConfiguration *NotificationConfiguration `locationName:"notificationConfiguration" type:"structure"`
6009}
6010
6011// String returns the string representation.
6012//
6013// API parameter values that are decorated as "sensitive" in the API will not
6014// be included in the string output. The member name will be present, but the
6015// value will be replaced with "sensitive".
6016func (s RemoveNotificationChannelOutput) String() string {
6017	return awsutil.Prettify(s)
6018}
6019
6020// GoString returns the string representation.
6021//
6022// API parameter values that are decorated as "sensitive" in the API will not
6023// be included in the string output. The member name will be present, but the
6024// value will be replaced with "sensitive".
6025func (s RemoveNotificationChannelOutput) GoString() string {
6026	return s.String()
6027}
6028
6029// SetNotificationConfiguration sets the NotificationConfiguration field's value.
6030func (s *RemoveNotificationChannelOutput) SetNotificationConfiguration(v *NotificationConfiguration) *RemoveNotificationChannelOutput {
6031	s.NotificationConfiguration = v
6032	return s
6033}
6034
6035type RemovePermissionInput struct {
6036	_ struct{} `type:"structure" nopayload:"true"`
6037
6038	// Specifies an action group that contains the permissions to remove from a
6039	// profiling group's resource-based policy. One action group is supported, agentPermissions,
6040	// which grants ConfigureAgent and PostAgentProfile permissions.
6041	//
6042	// ActionGroup is a required field
6043	ActionGroup *string `location:"uri" locationName:"actionGroup" type:"string" required:"true" enum:"ActionGroup"`
6044
6045	// The name of the profiling group.
6046	//
6047	// ProfilingGroupName is a required field
6048	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
6049
6050	// A universally unique identifier (UUID) for the revision of the resource-based
6051	// policy from which you want to remove permissions.
6052	//
6053	// RevisionId is a required field
6054	RevisionId *string `location:"querystring" locationName:"revisionId" type:"string" required:"true"`
6055}
6056
6057// String returns the string representation.
6058//
6059// API parameter values that are decorated as "sensitive" in the API will not
6060// be included in the string output. The member name will be present, but the
6061// value will be replaced with "sensitive".
6062func (s RemovePermissionInput) String() string {
6063	return awsutil.Prettify(s)
6064}
6065
6066// GoString returns the string representation.
6067//
6068// API parameter values that are decorated as "sensitive" in the API will not
6069// be included in the string output. The member name will be present, but the
6070// value will be replaced with "sensitive".
6071func (s RemovePermissionInput) GoString() string {
6072	return s.String()
6073}
6074
6075// Validate inspects the fields of the type to determine if they are valid.
6076func (s *RemovePermissionInput) Validate() error {
6077	invalidParams := request.ErrInvalidParams{Context: "RemovePermissionInput"}
6078	if s.ActionGroup == nil {
6079		invalidParams.Add(request.NewErrParamRequired("ActionGroup"))
6080	}
6081	if s.ActionGroup != nil && len(*s.ActionGroup) < 1 {
6082		invalidParams.Add(request.NewErrParamMinLen("ActionGroup", 1))
6083	}
6084	if s.ProfilingGroupName == nil {
6085		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
6086	}
6087	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
6088		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
6089	}
6090	if s.RevisionId == nil {
6091		invalidParams.Add(request.NewErrParamRequired("RevisionId"))
6092	}
6093
6094	if invalidParams.Len() > 0 {
6095		return invalidParams
6096	}
6097	return nil
6098}
6099
6100// SetActionGroup sets the ActionGroup field's value.
6101func (s *RemovePermissionInput) SetActionGroup(v string) *RemovePermissionInput {
6102	s.ActionGroup = &v
6103	return s
6104}
6105
6106// SetProfilingGroupName sets the ProfilingGroupName field's value.
6107func (s *RemovePermissionInput) SetProfilingGroupName(v string) *RemovePermissionInput {
6108	s.ProfilingGroupName = &v
6109	return s
6110}
6111
6112// SetRevisionId sets the RevisionId field's value.
6113func (s *RemovePermissionInput) SetRevisionId(v string) *RemovePermissionInput {
6114	s.RevisionId = &v
6115	return s
6116}
6117
6118// The structure representing the removePermissionResponse.
6119type RemovePermissionOutput struct {
6120	_ struct{} `type:"structure"`
6121
6122	// The JSON-formatted resource-based policy on the profiling group after the
6123	// specified permissions were removed.
6124	//
6125	// Policy is a required field
6126	Policy *string `locationName:"policy" type:"string" required:"true"`
6127
6128	// A universally unique identifier (UUID) for the revision of the resource-based
6129	// policy after the specified permissions were removed. The updated JSON-formatted
6130	// policy is in the policy element of the response.
6131	//
6132	// RevisionId is a required field
6133	RevisionId *string `locationName:"revisionId" type:"string" required:"true"`
6134}
6135
6136// String returns the string representation.
6137//
6138// API parameter values that are decorated as "sensitive" in the API will not
6139// be included in the string output. The member name will be present, but the
6140// value will be replaced with "sensitive".
6141func (s RemovePermissionOutput) String() string {
6142	return awsutil.Prettify(s)
6143}
6144
6145// GoString returns the string representation.
6146//
6147// API parameter values that are decorated as "sensitive" in the API will not
6148// be included in the string output. The member name will be present, but the
6149// value will be replaced with "sensitive".
6150func (s RemovePermissionOutput) GoString() string {
6151	return s.String()
6152}
6153
6154// SetPolicy sets the Policy field's value.
6155func (s *RemovePermissionOutput) SetPolicy(v string) *RemovePermissionOutput {
6156	s.Policy = &v
6157	return s
6158}
6159
6160// SetRevisionId sets the RevisionId field's value.
6161func (s *RemovePermissionOutput) SetRevisionId(v string) *RemovePermissionOutput {
6162	s.RevisionId = &v
6163	return s
6164}
6165
6166// The resource specified in the request does not exist.
6167type ResourceNotFoundException struct {
6168	_            struct{}                  `type:"structure"`
6169	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6170
6171	Message_ *string `locationName:"message" type:"string"`
6172}
6173
6174// String returns the string representation.
6175//
6176// API parameter values that are decorated as "sensitive" in the API will not
6177// be included in the string output. The member name will be present, but the
6178// value will be replaced with "sensitive".
6179func (s ResourceNotFoundException) String() string {
6180	return awsutil.Prettify(s)
6181}
6182
6183// GoString returns the string representation.
6184//
6185// API parameter values that are decorated as "sensitive" in the API will not
6186// be included in the string output. The member name will be present, but the
6187// value will be replaced with "sensitive".
6188func (s ResourceNotFoundException) GoString() string {
6189	return s.String()
6190}
6191
6192func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6193	return &ResourceNotFoundException{
6194		RespMetadata: v,
6195	}
6196}
6197
6198// Code returns the exception type name.
6199func (s *ResourceNotFoundException) Code() string {
6200	return "ResourceNotFoundException"
6201}
6202
6203// Message returns the exception's message.
6204func (s *ResourceNotFoundException) Message() string {
6205	if s.Message_ != nil {
6206		return *s.Message_
6207	}
6208	return ""
6209}
6210
6211// OrigErr always returns nil, satisfies awserr.Error interface.
6212func (s *ResourceNotFoundException) OrigErr() error {
6213	return nil
6214}
6215
6216func (s *ResourceNotFoundException) Error() string {
6217	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6218}
6219
6220// Status code returns the HTTP status code for the request's response error.
6221func (s *ResourceNotFoundException) StatusCode() int {
6222	return s.RespMetadata.StatusCode
6223}
6224
6225// RequestID returns the service's response RequestID for request.
6226func (s *ResourceNotFoundException) RequestID() string {
6227	return s.RespMetadata.RequestID
6228}
6229
6230// You have exceeded your service quota. To perform the requested action, remove
6231// some of the relevant resources, or use Service Quotas (https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html)
6232// to request a service quota increase.
6233type ServiceQuotaExceededException struct {
6234	_            struct{}                  `type:"structure"`
6235	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6236
6237	Message_ *string `locationName:"message" type:"string"`
6238}
6239
6240// String returns the string representation.
6241//
6242// API parameter values that are decorated as "sensitive" in the API will not
6243// be included in the string output. The member name will be present, but the
6244// value will be replaced with "sensitive".
6245func (s ServiceQuotaExceededException) String() string {
6246	return awsutil.Prettify(s)
6247}
6248
6249// GoString returns the string representation.
6250//
6251// API parameter values that are decorated as "sensitive" in the API will not
6252// be included in the string output. The member name will be present, but the
6253// value will be replaced with "sensitive".
6254func (s ServiceQuotaExceededException) GoString() string {
6255	return s.String()
6256}
6257
6258func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
6259	return &ServiceQuotaExceededException{
6260		RespMetadata: v,
6261	}
6262}
6263
6264// Code returns the exception type name.
6265func (s *ServiceQuotaExceededException) Code() string {
6266	return "ServiceQuotaExceededException"
6267}
6268
6269// Message returns the exception's message.
6270func (s *ServiceQuotaExceededException) Message() string {
6271	if s.Message_ != nil {
6272		return *s.Message_
6273	}
6274	return ""
6275}
6276
6277// OrigErr always returns nil, satisfies awserr.Error interface.
6278func (s *ServiceQuotaExceededException) OrigErr() error {
6279	return nil
6280}
6281
6282func (s *ServiceQuotaExceededException) Error() string {
6283	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6284}
6285
6286// Status code returns the HTTP status code for the request's response error.
6287func (s *ServiceQuotaExceededException) StatusCode() int {
6288	return s.RespMetadata.StatusCode
6289}
6290
6291// RequestID returns the service's response RequestID for request.
6292func (s *ServiceQuotaExceededException) RequestID() string {
6293	return s.RespMetadata.RequestID
6294}
6295
6296// The structure representing the SubmitFeedbackRequest.
6297type SubmitFeedbackInput struct {
6298	_ struct{} `type:"structure"`
6299
6300	// The universally unique identifier (UUID) of the AnomalyInstance (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html)
6301	// object that is included in the analysis data.
6302	//
6303	// AnomalyInstanceId is a required field
6304	AnomalyInstanceId *string `location:"uri" locationName:"anomalyInstanceId" type:"string" required:"true"`
6305
6306	// Optional feedback about this anomaly.
6307	Comment *string `locationName:"comment" type:"string"`
6308
6309	// The name of the profiling group that is associated with the analysis data.
6310	//
6311	// ProfilingGroupName is a required field
6312	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
6313
6314	// The feedback tpye. Thee are two valid values, Positive and Negative.
6315	//
6316	// Type is a required field
6317	Type *string `locationName:"type" type:"string" required:"true" enum:"FeedbackType"`
6318}
6319
6320// String returns the string representation.
6321//
6322// API parameter values that are decorated as "sensitive" in the API will not
6323// be included in the string output. The member name will be present, but the
6324// value will be replaced with "sensitive".
6325func (s SubmitFeedbackInput) String() string {
6326	return awsutil.Prettify(s)
6327}
6328
6329// GoString returns the string representation.
6330//
6331// API parameter values that are decorated as "sensitive" in the API will not
6332// be included in the string output. The member name will be present, but the
6333// value will be replaced with "sensitive".
6334func (s SubmitFeedbackInput) GoString() string {
6335	return s.String()
6336}
6337
6338// Validate inspects the fields of the type to determine if they are valid.
6339func (s *SubmitFeedbackInput) Validate() error {
6340	invalidParams := request.ErrInvalidParams{Context: "SubmitFeedbackInput"}
6341	if s.AnomalyInstanceId == nil {
6342		invalidParams.Add(request.NewErrParamRequired("AnomalyInstanceId"))
6343	}
6344	if s.AnomalyInstanceId != nil && len(*s.AnomalyInstanceId) < 1 {
6345		invalidParams.Add(request.NewErrParamMinLen("AnomalyInstanceId", 1))
6346	}
6347	if s.ProfilingGroupName == nil {
6348		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
6349	}
6350	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
6351		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
6352	}
6353	if s.Type == nil {
6354		invalidParams.Add(request.NewErrParamRequired("Type"))
6355	}
6356
6357	if invalidParams.Len() > 0 {
6358		return invalidParams
6359	}
6360	return nil
6361}
6362
6363// SetAnomalyInstanceId sets the AnomalyInstanceId field's value.
6364func (s *SubmitFeedbackInput) SetAnomalyInstanceId(v string) *SubmitFeedbackInput {
6365	s.AnomalyInstanceId = &v
6366	return s
6367}
6368
6369// SetComment sets the Comment field's value.
6370func (s *SubmitFeedbackInput) SetComment(v string) *SubmitFeedbackInput {
6371	s.Comment = &v
6372	return s
6373}
6374
6375// SetProfilingGroupName sets the ProfilingGroupName field's value.
6376func (s *SubmitFeedbackInput) SetProfilingGroupName(v string) *SubmitFeedbackInput {
6377	s.ProfilingGroupName = &v
6378	return s
6379}
6380
6381// SetType sets the Type field's value.
6382func (s *SubmitFeedbackInput) SetType(v string) *SubmitFeedbackInput {
6383	s.Type = &v
6384	return s
6385}
6386
6387// The structure representing the SubmitFeedbackResponse.
6388type SubmitFeedbackOutput struct {
6389	_ struct{} `type:"structure"`
6390}
6391
6392// String returns the string representation.
6393//
6394// API parameter values that are decorated as "sensitive" in the API will not
6395// be included in the string output. The member name will be present, but the
6396// value will be replaced with "sensitive".
6397func (s SubmitFeedbackOutput) String() string {
6398	return awsutil.Prettify(s)
6399}
6400
6401// GoString returns the string representation.
6402//
6403// API parameter values that are decorated as "sensitive" in the API will not
6404// be included in the string output. The member name will be present, but the
6405// value will be replaced with "sensitive".
6406func (s SubmitFeedbackOutput) GoString() string {
6407	return s.String()
6408}
6409
6410type TagResourceInput struct {
6411	_ struct{} `type:"structure"`
6412
6413	// The Amazon Resource Name (ARN) of the resource that the tags are added to.
6414	//
6415	// ResourceArn is a required field
6416	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6417
6418	// The list of tags that are added to the specified resource.
6419	//
6420	// Tags is a required field
6421	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
6422}
6423
6424// String returns the string representation.
6425//
6426// API parameter values that are decorated as "sensitive" in the API will not
6427// be included in the string output. The member name will be present, but the
6428// value will be replaced with "sensitive".
6429func (s TagResourceInput) String() string {
6430	return awsutil.Prettify(s)
6431}
6432
6433// GoString returns the string representation.
6434//
6435// API parameter values that are decorated as "sensitive" in the API will not
6436// be included in the string output. The member name will be present, but the
6437// value will be replaced with "sensitive".
6438func (s TagResourceInput) GoString() string {
6439	return s.String()
6440}
6441
6442// Validate inspects the fields of the type to determine if they are valid.
6443func (s *TagResourceInput) Validate() error {
6444	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6445	if s.ResourceArn == nil {
6446		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6447	}
6448	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6449		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6450	}
6451	if s.Tags == nil {
6452		invalidParams.Add(request.NewErrParamRequired("Tags"))
6453	}
6454
6455	if invalidParams.Len() > 0 {
6456		return invalidParams
6457	}
6458	return nil
6459}
6460
6461// SetResourceArn sets the ResourceArn field's value.
6462func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
6463	s.ResourceArn = &v
6464	return s
6465}
6466
6467// SetTags sets the Tags field's value.
6468func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
6469	s.Tags = v
6470	return s
6471}
6472
6473type TagResourceOutput struct {
6474	_ struct{} `type:"structure"`
6475}
6476
6477// String returns the string representation.
6478//
6479// API parameter values that are decorated as "sensitive" in the API will not
6480// be included in the string output. The member name will be present, but the
6481// value will be replaced with "sensitive".
6482func (s TagResourceOutput) String() string {
6483	return awsutil.Prettify(s)
6484}
6485
6486// GoString returns the string representation.
6487//
6488// API parameter values that are decorated as "sensitive" in the API will not
6489// be included in the string output. The member name will be present, but the
6490// value will be replaced with "sensitive".
6491func (s TagResourceOutput) GoString() string {
6492	return s.String()
6493}
6494
6495// The request was denied due to request throttling.
6496type ThrottlingException struct {
6497	_            struct{}                  `type:"structure"`
6498	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6499
6500	Message_ *string `locationName:"message" type:"string"`
6501}
6502
6503// String returns the string representation.
6504//
6505// API parameter values that are decorated as "sensitive" in the API will not
6506// be included in the string output. The member name will be present, but the
6507// value will be replaced with "sensitive".
6508func (s ThrottlingException) String() string {
6509	return awsutil.Prettify(s)
6510}
6511
6512// GoString returns the string representation.
6513//
6514// API parameter values that are decorated as "sensitive" in the API will not
6515// be included in the string output. The member name will be present, but the
6516// value will be replaced with "sensitive".
6517func (s ThrottlingException) GoString() string {
6518	return s.String()
6519}
6520
6521func newErrorThrottlingException(v protocol.ResponseMetadata) error {
6522	return &ThrottlingException{
6523		RespMetadata: v,
6524	}
6525}
6526
6527// Code returns the exception type name.
6528func (s *ThrottlingException) Code() string {
6529	return "ThrottlingException"
6530}
6531
6532// Message returns the exception's message.
6533func (s *ThrottlingException) Message() string {
6534	if s.Message_ != nil {
6535		return *s.Message_
6536	}
6537	return ""
6538}
6539
6540// OrigErr always returns nil, satisfies awserr.Error interface.
6541func (s *ThrottlingException) OrigErr() error {
6542	return nil
6543}
6544
6545func (s *ThrottlingException) Error() string {
6546	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6547}
6548
6549// Status code returns the HTTP status code for the request's response error.
6550func (s *ThrottlingException) StatusCode() int {
6551	return s.RespMetadata.StatusCode
6552}
6553
6554// RequestID returns the service's response RequestID for request.
6555func (s *ThrottlingException) RequestID() string {
6556	return s.RespMetadata.RequestID
6557}
6558
6559// A data type that contains a Timestamp object. This is specified using the
6560// ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
6561// past June 1, 2020 1:15:02 PM UTC.
6562type TimestampStructure struct {
6563	_ struct{} `type:"structure"`
6564
6565	// A Timestamp. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z
6566	// represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.
6567	//
6568	// Value is a required field
6569	Value *time.Time `locationName:"value" type:"timestamp" timestampFormat:"iso8601" required:"true"`
6570}
6571
6572// String returns the string representation.
6573//
6574// API parameter values that are decorated as "sensitive" in the API will not
6575// be included in the string output. The member name will be present, but the
6576// value will be replaced with "sensitive".
6577func (s TimestampStructure) String() string {
6578	return awsutil.Prettify(s)
6579}
6580
6581// GoString returns the string representation.
6582//
6583// API parameter values that are decorated as "sensitive" in the API will not
6584// be included in the string output. The member name will be present, but the
6585// value will be replaced with "sensitive".
6586func (s TimestampStructure) GoString() string {
6587	return s.String()
6588}
6589
6590// SetValue sets the Value field's value.
6591func (s *TimestampStructure) SetValue(v time.Time) *TimestampStructure {
6592	s.Value = &v
6593	return s
6594}
6595
6596type UntagResourceInput struct {
6597	_ struct{} `type:"structure" nopayload:"true"`
6598
6599	// The Amazon Resource Name (ARN) of the resource that contains the tags to
6600	// remove.
6601	//
6602	// ResourceArn is a required field
6603	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6604
6605	// A list of tag keys. Existing tags of resources with keys in this list are
6606	// removed from the specified resource.
6607	//
6608	// TagKeys is a required field
6609	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
6610}
6611
6612// String returns the string representation.
6613//
6614// API parameter values that are decorated as "sensitive" in the API will not
6615// be included in the string output. The member name will be present, but the
6616// value will be replaced with "sensitive".
6617func (s UntagResourceInput) String() string {
6618	return awsutil.Prettify(s)
6619}
6620
6621// GoString returns the string representation.
6622//
6623// API parameter values that are decorated as "sensitive" in the API will not
6624// be included in the string output. The member name will be present, but the
6625// value will be replaced with "sensitive".
6626func (s UntagResourceInput) GoString() string {
6627	return s.String()
6628}
6629
6630// Validate inspects the fields of the type to determine if they are valid.
6631func (s *UntagResourceInput) Validate() error {
6632	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6633	if s.ResourceArn == nil {
6634		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6635	}
6636	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6637		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6638	}
6639	if s.TagKeys == nil {
6640		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6641	}
6642
6643	if invalidParams.Len() > 0 {
6644		return invalidParams
6645	}
6646	return nil
6647}
6648
6649// SetResourceArn sets the ResourceArn field's value.
6650func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
6651	s.ResourceArn = &v
6652	return s
6653}
6654
6655// SetTagKeys sets the TagKeys field's value.
6656func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
6657	s.TagKeys = v
6658	return s
6659}
6660
6661type UntagResourceOutput struct {
6662	_ struct{} `type:"structure"`
6663}
6664
6665// String returns the string representation.
6666//
6667// API parameter values that are decorated as "sensitive" in the API will not
6668// be included in the string output. The member name will be present, but the
6669// value will be replaced with "sensitive".
6670func (s UntagResourceOutput) String() string {
6671	return awsutil.Prettify(s)
6672}
6673
6674// GoString returns the string representation.
6675//
6676// API parameter values that are decorated as "sensitive" in the API will not
6677// be included in the string output. The member name will be present, but the
6678// value will be replaced with "sensitive".
6679func (s UntagResourceOutput) GoString() string {
6680	return s.String()
6681}
6682
6683// The structure representing the updateProfilingGroupRequest.
6684type UpdateProfilingGroupInput struct {
6685	_ struct{} `type:"structure"`
6686
6687	// Specifies whether profiling is enabled or disabled for a profiling group.
6688	//
6689	// AgentOrchestrationConfig is a required field
6690	AgentOrchestrationConfig *AgentOrchestrationConfig `locationName:"agentOrchestrationConfig" type:"structure" required:"true"`
6691
6692	// The name of the profiling group to update.
6693	//
6694	// ProfilingGroupName is a required field
6695	ProfilingGroupName *string `location:"uri" locationName:"profilingGroupName" min:"1" type:"string" required:"true"`
6696}
6697
6698// String returns the string representation.
6699//
6700// API parameter values that are decorated as "sensitive" in the API will not
6701// be included in the string output. The member name will be present, but the
6702// value will be replaced with "sensitive".
6703func (s UpdateProfilingGroupInput) String() string {
6704	return awsutil.Prettify(s)
6705}
6706
6707// GoString returns the string representation.
6708//
6709// API parameter values that are decorated as "sensitive" in the API will not
6710// be included in the string output. The member name will be present, but the
6711// value will be replaced with "sensitive".
6712func (s UpdateProfilingGroupInput) GoString() string {
6713	return s.String()
6714}
6715
6716// Validate inspects the fields of the type to determine if they are valid.
6717func (s *UpdateProfilingGroupInput) Validate() error {
6718	invalidParams := request.ErrInvalidParams{Context: "UpdateProfilingGroupInput"}
6719	if s.AgentOrchestrationConfig == nil {
6720		invalidParams.Add(request.NewErrParamRequired("AgentOrchestrationConfig"))
6721	}
6722	if s.ProfilingGroupName == nil {
6723		invalidParams.Add(request.NewErrParamRequired("ProfilingGroupName"))
6724	}
6725	if s.ProfilingGroupName != nil && len(*s.ProfilingGroupName) < 1 {
6726		invalidParams.Add(request.NewErrParamMinLen("ProfilingGroupName", 1))
6727	}
6728	if s.AgentOrchestrationConfig != nil {
6729		if err := s.AgentOrchestrationConfig.Validate(); err != nil {
6730			invalidParams.AddNested("AgentOrchestrationConfig", err.(request.ErrInvalidParams))
6731		}
6732	}
6733
6734	if invalidParams.Len() > 0 {
6735		return invalidParams
6736	}
6737	return nil
6738}
6739
6740// SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
6741func (s *UpdateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *UpdateProfilingGroupInput {
6742	s.AgentOrchestrationConfig = v
6743	return s
6744}
6745
6746// SetProfilingGroupName sets the ProfilingGroupName field's value.
6747func (s *UpdateProfilingGroupInput) SetProfilingGroupName(v string) *UpdateProfilingGroupInput {
6748	s.ProfilingGroupName = &v
6749	return s
6750}
6751
6752// The structure representing the updateProfilingGroupResponse.
6753type UpdateProfilingGroupOutput struct {
6754	_ struct{} `type:"structure" payload:"ProfilingGroup"`
6755
6756	// A ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html)
6757	// that contains information about the returned updated profiling group.
6758	//
6759	// ProfilingGroup is a required field
6760	ProfilingGroup *ProfilingGroupDescription `locationName:"profilingGroup" type:"structure" required:"true"`
6761}
6762
6763// String returns the string representation.
6764//
6765// API parameter values that are decorated as "sensitive" in the API will not
6766// be included in the string output. The member name will be present, but the
6767// value will be replaced with "sensitive".
6768func (s UpdateProfilingGroupOutput) String() string {
6769	return awsutil.Prettify(s)
6770}
6771
6772// GoString returns the string representation.
6773//
6774// API parameter values that are decorated as "sensitive" in the API will not
6775// be included in the string output. The member name will be present, but the
6776// value will be replaced with "sensitive".
6777func (s UpdateProfilingGroupOutput) GoString() string {
6778	return s.String()
6779}
6780
6781// SetProfilingGroup sets the ProfilingGroup field's value.
6782func (s *UpdateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *UpdateProfilingGroupOutput {
6783	s.ProfilingGroup = v
6784	return s
6785}
6786
6787// Feedback that can be submitted for each instance of an anomaly by the user.
6788// Feedback is be used for improvements in generating recommendations for the
6789// application.
6790type UserFeedback struct {
6791	_ struct{} `type:"structure"`
6792
6793	// Optional Positive or Negative feedback submitted by the user about whether
6794	// the recommendation is useful or not.
6795	//
6796	// Type is a required field
6797	Type *string `locationName:"type" type:"string" required:"true" enum:"FeedbackType"`
6798}
6799
6800// String returns the string representation.
6801//
6802// API parameter values that are decorated as "sensitive" in the API will not
6803// be included in the string output. The member name will be present, but the
6804// value will be replaced with "sensitive".
6805func (s UserFeedback) String() string {
6806	return awsutil.Prettify(s)
6807}
6808
6809// GoString returns the string representation.
6810//
6811// API parameter values that are decorated as "sensitive" in the API will not
6812// be included in the string output. The member name will be present, but the
6813// value will be replaced with "sensitive".
6814func (s UserFeedback) GoString() string {
6815	return s.String()
6816}
6817
6818// SetType sets the Type field's value.
6819func (s *UserFeedback) SetType(v string) *UserFeedback {
6820	s.Type = &v
6821	return s
6822}
6823
6824// The parameter is not valid.
6825type ValidationException struct {
6826	_            struct{}                  `type:"structure"`
6827	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6828
6829	Message_ *string `locationName:"message" type:"string"`
6830}
6831
6832// String returns the string representation.
6833//
6834// API parameter values that are decorated as "sensitive" in the API will not
6835// be included in the string output. The member name will be present, but the
6836// value will be replaced with "sensitive".
6837func (s ValidationException) String() string {
6838	return awsutil.Prettify(s)
6839}
6840
6841// GoString returns the string representation.
6842//
6843// API parameter values that are decorated as "sensitive" in the API will not
6844// be included in the string output. The member name will be present, but the
6845// value will be replaced with "sensitive".
6846func (s ValidationException) GoString() string {
6847	return s.String()
6848}
6849
6850func newErrorValidationException(v protocol.ResponseMetadata) error {
6851	return &ValidationException{
6852		RespMetadata: v,
6853	}
6854}
6855
6856// Code returns the exception type name.
6857func (s *ValidationException) Code() string {
6858	return "ValidationException"
6859}
6860
6861// Message returns the exception's message.
6862func (s *ValidationException) Message() string {
6863	if s.Message_ != nil {
6864		return *s.Message_
6865	}
6866	return ""
6867}
6868
6869// OrigErr always returns nil, satisfies awserr.Error interface.
6870func (s *ValidationException) OrigErr() error {
6871	return nil
6872}
6873
6874func (s *ValidationException) Error() string {
6875	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6876}
6877
6878// Status code returns the HTTP status code for the request's response error.
6879func (s *ValidationException) StatusCode() int {
6880	return s.RespMetadata.StatusCode
6881}
6882
6883// RequestID returns the service's response RequestID for request.
6884func (s *ValidationException) RequestID() string {
6885	return s.RespMetadata.RequestID
6886}
6887
6888const (
6889	// ActionGroupAgentPermissions is a ActionGroup enum value
6890	ActionGroupAgentPermissions = "agentPermissions"
6891)
6892
6893// ActionGroup_Values returns all elements of the ActionGroup enum
6894func ActionGroup_Values() []string {
6895	return []string{
6896		ActionGroupAgentPermissions,
6897	}
6898}
6899
6900const (
6901	// AgentParameterFieldSamplingIntervalInMilliseconds is a AgentParameterField enum value
6902	AgentParameterFieldSamplingIntervalInMilliseconds = "SamplingIntervalInMilliseconds"
6903
6904	// AgentParameterFieldReportingIntervalInMilliseconds is a AgentParameterField enum value
6905	AgentParameterFieldReportingIntervalInMilliseconds = "ReportingIntervalInMilliseconds"
6906
6907	// AgentParameterFieldMinimumTimeForReportingInMilliseconds is a AgentParameterField enum value
6908	AgentParameterFieldMinimumTimeForReportingInMilliseconds = "MinimumTimeForReportingInMilliseconds"
6909
6910	// AgentParameterFieldMemoryUsageLimitPercent is a AgentParameterField enum value
6911	AgentParameterFieldMemoryUsageLimitPercent = "MemoryUsageLimitPercent"
6912
6913	// AgentParameterFieldMaxStackDepth is a AgentParameterField enum value
6914	AgentParameterFieldMaxStackDepth = "MaxStackDepth"
6915)
6916
6917// AgentParameterField_Values returns all elements of the AgentParameterField enum
6918func AgentParameterField_Values() []string {
6919	return []string{
6920		AgentParameterFieldSamplingIntervalInMilliseconds,
6921		AgentParameterFieldReportingIntervalInMilliseconds,
6922		AgentParameterFieldMinimumTimeForReportingInMilliseconds,
6923		AgentParameterFieldMemoryUsageLimitPercent,
6924		AgentParameterFieldMaxStackDepth,
6925	}
6926}
6927
6928const (
6929	// AggregationPeriodPt5m is a AggregationPeriod enum value
6930	AggregationPeriodPt5m = "PT5M"
6931
6932	// AggregationPeriodPt1h is a AggregationPeriod enum value
6933	AggregationPeriodPt1h = "PT1H"
6934
6935	// AggregationPeriodP1d is a AggregationPeriod enum value
6936	AggregationPeriodP1d = "P1D"
6937)
6938
6939// AggregationPeriod_Values returns all elements of the AggregationPeriod enum
6940func AggregationPeriod_Values() []string {
6941	return []string{
6942		AggregationPeriodPt5m,
6943		AggregationPeriodPt1h,
6944		AggregationPeriodP1d,
6945	}
6946}
6947
6948const (
6949	// ComputePlatformDefault is a ComputePlatform enum value
6950	ComputePlatformDefault = "Default"
6951
6952	// ComputePlatformAwslambda is a ComputePlatform enum value
6953	ComputePlatformAwslambda = "AWSLambda"
6954)
6955
6956// ComputePlatform_Values returns all elements of the ComputePlatform enum
6957func ComputePlatform_Values() []string {
6958	return []string{
6959		ComputePlatformDefault,
6960		ComputePlatformAwslambda,
6961	}
6962}
6963
6964const (
6965	// EventPublisherAnomalyDetection is a EventPublisher enum value
6966	EventPublisherAnomalyDetection = "AnomalyDetection"
6967)
6968
6969// EventPublisher_Values returns all elements of the EventPublisher enum
6970func EventPublisher_Values() []string {
6971	return []string{
6972		EventPublisherAnomalyDetection,
6973	}
6974}
6975
6976const (
6977	// FeedbackTypePositive is a FeedbackType enum value
6978	FeedbackTypePositive = "Positive"
6979
6980	// FeedbackTypeNegative is a FeedbackType enum value
6981	FeedbackTypeNegative = "Negative"
6982)
6983
6984// FeedbackType_Values returns all elements of the FeedbackType enum
6985func FeedbackType_Values() []string {
6986	return []string{
6987		FeedbackTypePositive,
6988		FeedbackTypeNegative,
6989	}
6990}
6991
6992const (
6993	// MetadataFieldComputePlatform is a MetadataField enum value
6994	MetadataFieldComputePlatform = "ComputePlatform"
6995
6996	// MetadataFieldAgentId is a MetadataField enum value
6997	MetadataFieldAgentId = "AgentId"
6998
6999	// MetadataFieldAwsRequestId is a MetadataField enum value
7000	MetadataFieldAwsRequestId = "AwsRequestId"
7001
7002	// MetadataFieldExecutionEnvironment is a MetadataField enum value
7003	MetadataFieldExecutionEnvironment = "ExecutionEnvironment"
7004
7005	// MetadataFieldLambdaFunctionArn is a MetadataField enum value
7006	MetadataFieldLambdaFunctionArn = "LambdaFunctionArn"
7007
7008	// MetadataFieldLambdaMemoryLimitInMb is a MetadataField enum value
7009	MetadataFieldLambdaMemoryLimitInMb = "LambdaMemoryLimitInMB"
7010
7011	// MetadataFieldLambdaRemainingTimeInMilliseconds is a MetadataField enum value
7012	MetadataFieldLambdaRemainingTimeInMilliseconds = "LambdaRemainingTimeInMilliseconds"
7013
7014	// MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds is a MetadataField enum value
7015	MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds = "LambdaTimeGapBetweenInvokesInMilliseconds"
7016
7017	// MetadataFieldLambdaPreviousExecutionTimeInMilliseconds is a MetadataField enum value
7018	MetadataFieldLambdaPreviousExecutionTimeInMilliseconds = "LambdaPreviousExecutionTimeInMilliseconds"
7019)
7020
7021// MetadataField_Values returns all elements of the MetadataField enum
7022func MetadataField_Values() []string {
7023	return []string{
7024		MetadataFieldComputePlatform,
7025		MetadataFieldAgentId,
7026		MetadataFieldAwsRequestId,
7027		MetadataFieldExecutionEnvironment,
7028		MetadataFieldLambdaFunctionArn,
7029		MetadataFieldLambdaMemoryLimitInMb,
7030		MetadataFieldLambdaRemainingTimeInMilliseconds,
7031		MetadataFieldLambdaTimeGapBetweenInvokesInMilliseconds,
7032		MetadataFieldLambdaPreviousExecutionTimeInMilliseconds,
7033	}
7034}
7035
7036const (
7037	// MetricTypeAggregatedRelativeTotalTime is a MetricType enum value
7038	MetricTypeAggregatedRelativeTotalTime = "AggregatedRelativeTotalTime"
7039)
7040
7041// MetricType_Values returns all elements of the MetricType enum
7042func MetricType_Values() []string {
7043	return []string{
7044		MetricTypeAggregatedRelativeTotalTime,
7045	}
7046}
7047
7048const (
7049	// OrderByTimestampDescending is a OrderBy enum value
7050	OrderByTimestampDescending = "TimestampDescending"
7051
7052	// OrderByTimestampAscending is a OrderBy enum value
7053	OrderByTimestampAscending = "TimestampAscending"
7054)
7055
7056// OrderBy_Values returns all elements of the OrderBy enum
7057func OrderBy_Values() []string {
7058	return []string{
7059		OrderByTimestampDescending,
7060		OrderByTimestampAscending,
7061	}
7062}
7063