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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package codeguruprofiler
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    14  )
    15  
    16  const 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
    42  func (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
    93  func (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.
   107  func (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  
   114  const 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
   140  func (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
   182  func (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.
   196  func (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  
   203  const 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
   229  func (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
   272  func (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.
   286  func (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  
   293  const 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
   319  func (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
   367  func (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.
   381  func (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  
   388  const 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
   414  func (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
   461  func (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.
   475  func (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  
   482  const 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
   508  func (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
   550  func (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.
   564  func (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  
   571  const 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
   597  func (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
   643  func (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.
   657  func (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  //
   681  func (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.
   692  func (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  
   716  const 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
   742  func (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
   783  func (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.
   797  func (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  
   804  const 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
   830  func (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
   868  func (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.
   882  func (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  
   889  const 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
   915  func (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
   990  func (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.
  1004  func (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  
  1011  const 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
  1037  func (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
  1082  func (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.
  1096  func (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  
  1103  const 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
  1129  func (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
  1176  func (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.
  1190  func (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  //
  1214  func (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.
  1225  func (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  
  1249  const 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
  1275  func (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
  1323  func (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.
  1337  func (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  //
  1361  func (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.
  1372  func (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  
  1396  const 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
  1422  func (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
  1465  func (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.
  1479  func (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  //
  1503  func (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.
  1514  func (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  
  1538  const 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
  1564  func (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
  1602  func (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.
  1616  func (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  
  1623  const 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
  1649  func (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
  1693  func (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.
  1707  func (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  
  1714  const 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
  1740  func (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
  1802  func (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.
  1816  func (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  
  1823  const 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
  1849  func (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
  1890  func (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.
  1904  func (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  
  1911  const 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
  1937  func (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
  1988  func (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.
  2002  func (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  
  2009  const 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
  2035  func (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
  2078  func (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.
  2092  func (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  
  2099  const 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
  2125  func (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
  2164  func (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.
  2178  func (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  
  2185  const 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
  2211  func (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
  2250  func (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.
  2264  func (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  
  2271  const 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
  2297  func (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
  2343  func (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.
  2357  func (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.
  2365  type 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".
  2384  func (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".
  2393  func (s AddNotificationChannelsInput) GoString() string {
  2394  	return s.String()
  2395  }
  2396  
  2397  // Validate inspects the fields of the type to determine if they are valid.
  2398  func (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.
  2430  func (s *AddNotificationChannelsInput) SetChannels(v []*Channel) *AddNotificationChannelsInput {
  2431  	s.Channels = v
  2432  	return s
  2433  }
  2434  
  2435  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  2436  func (s *AddNotificationChannelsInput) SetProfilingGroupName(v string) *AddNotificationChannelsInput {
  2437  	s.ProfilingGroupName = &v
  2438  	return s
  2439  }
  2440  
  2441  // The structure representing the AddNotificationChannelsResponse.
  2442  type 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".
  2454  func (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".
  2463  func (s AddNotificationChannelsOutput) GoString() string {
  2464  	return s.String()
  2465  }
  2466  
  2467  // SetNotificationConfiguration sets the NotificationConfiguration field's value.
  2468  func (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.
  2476  type 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".
  2521  func (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".
  2530  func (s AgentConfiguration) GoString() string {
  2531  	return s.String()
  2532  }
  2533  
  2534  // SetAgentParameters sets the AgentParameters field's value.
  2535  func (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.
  2541  func (s *AgentConfiguration) SetPeriodInSeconds(v int64) *AgentConfiguration {
  2542  	s.PeriodInSeconds = &v
  2543  	return s
  2544  }
  2545  
  2546  // SetShouldProfile sets the ShouldProfile field's value.
  2547  func (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.
  2555  type 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".
  2570  func (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".
  2579  func (s AgentOrchestrationConfig) GoString() string {
  2580  	return s.String()
  2581  }
  2582  
  2583  // Validate inspects the fields of the type to determine if they are valid.
  2584  func (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.
  2597  func (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).
  2606  type 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".
  2635  func (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".
  2644  func (s AggregatedProfileTime) GoString() string {
  2645  	return s.String()
  2646  }
  2647  
  2648  // SetPeriod sets the Period field's value.
  2649  func (s *AggregatedProfileTime) SetPeriod(v string) *AggregatedProfileTime {
  2650  	s.Period = &v
  2651  	return s
  2652  }
  2653  
  2654  // SetStart sets the Start field's value.
  2655  func (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.
  2662  type 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".
  2688  func (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".
  2697  func (s Anomaly) GoString() string {
  2698  	return s.String()
  2699  }
  2700  
  2701  // SetInstances sets the Instances field's value.
  2702  func (s *Anomaly) SetInstances(v []*AnomalyInstance) *Anomaly {
  2703  	s.Instances = v
  2704  	return s
  2705  }
  2706  
  2707  // SetMetric sets the Metric field's value.
  2708  func (s *Anomaly) SetMetric(v *Metric) *Anomaly {
  2709  	s.Metric = v
  2710  	return s
  2711  }
  2712  
  2713  // SetReason sets the Reason field's value.
  2714  func (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.
  2720  type 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".
  2750  func (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".
  2759  func (s AnomalyInstance) GoString() string {
  2760  	return s.String()
  2761  }
  2762  
  2763  // SetEndTime sets the EndTime field's value.
  2764  func (s *AnomalyInstance) SetEndTime(v time.Time) *AnomalyInstance {
  2765  	s.EndTime = &v
  2766  	return s
  2767  }
  2768  
  2769  // SetId sets the Id field's value.
  2770  func (s *AnomalyInstance) SetId(v string) *AnomalyInstance {
  2771  	s.Id = &v
  2772  	return s
  2773  }
  2774  
  2775  // SetStartTime sets the StartTime field's value.
  2776  func (s *AnomalyInstance) SetStartTime(v time.Time) *AnomalyInstance {
  2777  	s.StartTime = &v
  2778  	return s
  2779  }
  2780  
  2781  // SetUserFeedback sets the UserFeedback field's value.
  2782  func (s *AnomalyInstance) SetUserFeedback(v *UserFeedback) *AnomalyInstance {
  2783  	s.UserFeedback = v
  2784  	return s
  2785  }
  2786  
  2787  // The structure representing the BatchGetFrameMetricDataRequest.
  2788  type 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".
  2837  func (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".
  2846  func (s BatchGetFrameMetricDataInput) GoString() string {
  2847  	return s.String()
  2848  }
  2849  
  2850  // Validate inspects the fields of the type to determine if they are valid.
  2851  func (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.
  2880  func (s *BatchGetFrameMetricDataInput) SetEndTime(v time.Time) *BatchGetFrameMetricDataInput {
  2881  	s.EndTime = &v
  2882  	return s
  2883  }
  2884  
  2885  // SetFrameMetrics sets the FrameMetrics field's value.
  2886  func (s *BatchGetFrameMetricDataInput) SetFrameMetrics(v []*FrameMetric) *BatchGetFrameMetricDataInput {
  2887  	s.FrameMetrics = v
  2888  	return s
  2889  }
  2890  
  2891  // SetPeriod sets the Period field's value.
  2892  func (s *BatchGetFrameMetricDataInput) SetPeriod(v string) *BatchGetFrameMetricDataInput {
  2893  	s.Period = &v
  2894  	return s
  2895  }
  2896  
  2897  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  2898  func (s *BatchGetFrameMetricDataInput) SetProfilingGroupName(v string) *BatchGetFrameMetricDataInput {
  2899  	s.ProfilingGroupName = &v
  2900  	return s
  2901  }
  2902  
  2903  // SetStartTime sets the StartTime field's value.
  2904  func (s *BatchGetFrameMetricDataInput) SetStartTime(v time.Time) *BatchGetFrameMetricDataInput {
  2905  	s.StartTime = &v
  2906  	return s
  2907  }
  2908  
  2909  // SetTargetResolution sets the TargetResolution field's value.
  2910  func (s *BatchGetFrameMetricDataInput) SetTargetResolution(v string) *BatchGetFrameMetricDataInput {
  2911  	s.TargetResolution = &v
  2912  	return s
  2913  }
  2914  
  2915  // The structure representing the BatchGetFrameMetricDataResponse.
  2916  type 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".
  2973  func (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".
  2982  func (s BatchGetFrameMetricDataOutput) GoString() string {
  2983  	return s.String()
  2984  }
  2985  
  2986  // SetEndTime sets the EndTime field's value.
  2987  func (s *BatchGetFrameMetricDataOutput) SetEndTime(v time.Time) *BatchGetFrameMetricDataOutput {
  2988  	s.EndTime = &v
  2989  	return s
  2990  }
  2991  
  2992  // SetEndTimes sets the EndTimes field's value.
  2993  func (s *BatchGetFrameMetricDataOutput) SetEndTimes(v []*TimestampStructure) *BatchGetFrameMetricDataOutput {
  2994  	s.EndTimes = v
  2995  	return s
  2996  }
  2997  
  2998  // SetFrameMetricData sets the FrameMetricData field's value.
  2999  func (s *BatchGetFrameMetricDataOutput) SetFrameMetricData(v []*FrameMetricDatum) *BatchGetFrameMetricDataOutput {
  3000  	s.FrameMetricData = v
  3001  	return s
  3002  }
  3003  
  3004  // SetResolution sets the Resolution field's value.
  3005  func (s *BatchGetFrameMetricDataOutput) SetResolution(v string) *BatchGetFrameMetricDataOutput {
  3006  	s.Resolution = &v
  3007  	return s
  3008  }
  3009  
  3010  // SetStartTime sets the StartTime field's value.
  3011  func (s *BatchGetFrameMetricDataOutput) SetStartTime(v time.Time) *BatchGetFrameMetricDataOutput {
  3012  	s.StartTime = &v
  3013  	return s
  3014  }
  3015  
  3016  // SetUnprocessedEndTimes sets the UnprocessedEndTimes field's value.
  3017  func (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.
  3024  type 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".
  3051  func (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".
  3060  func (s Channel) GoString() string {
  3061  	return s.String()
  3062  }
  3063  
  3064  // Validate inspects the fields of the type to determine if they are valid.
  3065  func (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.
  3084  func (s *Channel) SetEventPublishers(v []*string) *Channel {
  3085  	s.EventPublishers = v
  3086  	return s
  3087  }
  3088  
  3089  // SetId sets the Id field's value.
  3090  func (s *Channel) SetId(v string) *Channel {
  3091  	s.Id = &v
  3092  	return s
  3093  }
  3094  
  3095  // SetUri sets the Uri field's value.
  3096  func (s *Channel) SetUri(v string) *Channel {
  3097  	s.Uri = &v
  3098  	return s
  3099  }
  3100  
  3101  // The structure representing the configureAgentRequest.
  3102  type 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".
  3149  func (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".
  3158  func (s ConfigureAgentInput) GoString() string {
  3159  	return s.String()
  3160  }
  3161  
  3162  // Validate inspects the fields of the type to determine if they are valid.
  3163  func (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.
  3182  func (s *ConfigureAgentInput) SetFleetInstanceId(v string) *ConfigureAgentInput {
  3183  	s.FleetInstanceId = &v
  3184  	return s
  3185  }
  3186  
  3187  // SetMetadata sets the Metadata field's value.
  3188  func (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.
  3194  func (s *ConfigureAgentInput) SetProfilingGroupName(v string) *ConfigureAgentInput {
  3195  	s.ProfilingGroupName = &v
  3196  	return s
  3197  }
  3198  
  3199  // The structure representing the configureAgentResponse.
  3200  type 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".
  3216  func (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".
  3225  func (s ConfigureAgentOutput) GoString() string {
  3226  	return s.String()
  3227  }
  3228  
  3229  // SetConfiguration sets the Configuration field's value.
  3230  func (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.
  3238  type 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".
  3250  func (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".
  3259  func (s ConflictException) GoString() string {
  3260  	return s.String()
  3261  }
  3262  
  3263  func newErrorConflictException(v protocol.ResponseMetadata) error {
  3264  	return &ConflictException{
  3265  		RespMetadata: v,
  3266  	}
  3267  }
  3268  
  3269  // Code returns the exception type name.
  3270  func (s *ConflictException) Code() string {
  3271  	return "ConflictException"
  3272  }
  3273  
  3274  // Message returns the exception's message.
  3275  func (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.
  3283  func (s *ConflictException) OrigErr() error {
  3284  	return nil
  3285  }
  3286  
  3287  func (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.
  3292  func (s *ConflictException) StatusCode() int {
  3293  	return s.RespMetadata.StatusCode
  3294  }
  3295  
  3296  // RequestID returns the service's response RequestID for request.
  3297  func (s *ConflictException) RequestID() string {
  3298  	return s.RespMetadata.RequestID
  3299  }
  3300  
  3301  // The structure representing the createProfiliingGroupRequest.
  3302  type 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".
  3334  func (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".
  3343  func (s CreateProfilingGroupInput) GoString() string {
  3344  	return s.String()
  3345  }
  3346  
  3347  // Validate inspects the fields of the type to determine if they are valid.
  3348  func (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.
  3372  func (s *CreateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *CreateProfilingGroupInput {
  3373  	s.AgentOrchestrationConfig = v
  3374  	return s
  3375  }
  3376  
  3377  // SetClientToken sets the ClientToken field's value.
  3378  func (s *CreateProfilingGroupInput) SetClientToken(v string) *CreateProfilingGroupInput {
  3379  	s.ClientToken = &v
  3380  	return s
  3381  }
  3382  
  3383  // SetComputePlatform sets the ComputePlatform field's value.
  3384  func (s *CreateProfilingGroupInput) SetComputePlatform(v string) *CreateProfilingGroupInput {
  3385  	s.ComputePlatform = &v
  3386  	return s
  3387  }
  3388  
  3389  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  3390  func (s *CreateProfilingGroupInput) SetProfilingGroupName(v string) *CreateProfilingGroupInput {
  3391  	s.ProfilingGroupName = &v
  3392  	return s
  3393  }
  3394  
  3395  // SetTags sets the Tags field's value.
  3396  func (s *CreateProfilingGroupInput) SetTags(v map[string]*string) *CreateProfilingGroupInput {
  3397  	s.Tags = v
  3398  	return s
  3399  }
  3400  
  3401  // The structure representing the createProfilingGroupResponse.
  3402  type 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".
  3417  func (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".
  3426  func (s CreateProfilingGroupOutput) GoString() string {
  3427  	return s.String()
  3428  }
  3429  
  3430  // SetProfilingGroup sets the ProfilingGroup field's value.
  3431  func (s *CreateProfilingGroupOutput) SetProfilingGroup(v *ProfilingGroupDescription) *CreateProfilingGroupOutput {
  3432  	s.ProfilingGroup = v
  3433  	return s
  3434  }
  3435  
  3436  // The structure representing the deleteProfilingGroupRequest.
  3437  type 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".
  3451  func (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".
  3460  func (s DeleteProfilingGroupInput) GoString() string {
  3461  	return s.String()
  3462  }
  3463  
  3464  // Validate inspects the fields of the type to determine if they are valid.
  3465  func (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.
  3481  func (s *DeleteProfilingGroupInput) SetProfilingGroupName(v string) *DeleteProfilingGroupInput {
  3482  	s.ProfilingGroupName = &v
  3483  	return s
  3484  }
  3485  
  3486  // The structure representing the deleteProfilingGroupResponse.
  3487  type DeleteProfilingGroupOutput struct {
  3488  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  3496  func (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".
  3505  func (s DeleteProfilingGroupOutput) GoString() string {
  3506  	return s.String()
  3507  }
  3508  
  3509  // The structure representing the describeProfilingGroupRequest.
  3510  type 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".
  3524  func (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".
  3533  func (s DescribeProfilingGroupInput) GoString() string {
  3534  	return s.String()
  3535  }
  3536  
  3537  // Validate inspects the fields of the type to determine if they are valid.
  3538  func (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.
  3554  func (s *DescribeProfilingGroupInput) SetProfilingGroupName(v string) *DescribeProfilingGroupInput {
  3555  	s.ProfilingGroupName = &v
  3556  	return s
  3557  }
  3558  
  3559  // The structure representing the describeProfilingGroupResponse.
  3560  type 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".
  3575  func (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".
  3584  func (s DescribeProfilingGroupOutput) GoString() string {
  3585  	return s.String()
  3586  }
  3587  
  3588  // SetProfilingGroup sets the ProfilingGroup field's value.
  3589  func (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.
  3596  type 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".
  3624  func (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".
  3633  func (s FindingsReportSummary) GoString() string {
  3634  	return s.String()
  3635  }
  3636  
  3637  // SetId sets the Id field's value.
  3638  func (s *FindingsReportSummary) SetId(v string) *FindingsReportSummary {
  3639  	s.Id = &v
  3640  	return s
  3641  }
  3642  
  3643  // SetProfileEndTime sets the ProfileEndTime field's value.
  3644  func (s *FindingsReportSummary) SetProfileEndTime(v time.Time) *FindingsReportSummary {
  3645  	s.ProfileEndTime = &v
  3646  	return s
  3647  }
  3648  
  3649  // SetProfileStartTime sets the ProfileStartTime field's value.
  3650  func (s *FindingsReportSummary) SetProfileStartTime(v time.Time) *FindingsReportSummary {
  3651  	s.ProfileStartTime = &v
  3652  	return s
  3653  }
  3654  
  3655  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  3656  func (s *FindingsReportSummary) SetProfilingGroupName(v string) *FindingsReportSummary {
  3657  	s.ProfilingGroupName = &v
  3658  	return s
  3659  }
  3660  
  3661  // SetTotalNumberOfFindings sets the TotalNumberOfFindings field's value.
  3662  func (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.
  3669  type 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".
  3698  func (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".
  3707  func (s FrameMetric) GoString() string {
  3708  	return s.String()
  3709  }
  3710  
  3711  // Validate inspects the fields of the type to determine if they are valid.
  3712  func (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.
  3731  func (s *FrameMetric) SetFrameName(v string) *FrameMetric {
  3732  	s.FrameName = &v
  3733  	return s
  3734  }
  3735  
  3736  // SetThreadStates sets the ThreadStates field's value.
  3737  func (s *FrameMetric) SetThreadStates(v []*string) *FrameMetric {
  3738  	s.ThreadStates = v
  3739  	return s
  3740  }
  3741  
  3742  // SetType sets the Type field's value.
  3743  func (s *FrameMetric) SetType(v string) *FrameMetric {
  3744  	s.Type = &v
  3745  	return s
  3746  }
  3747  
  3748  // Information about a frame metric and its values.
  3749  type 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".
  3769  func (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".
  3778  func (s FrameMetricDatum) GoString() string {
  3779  	return s.String()
  3780  }
  3781  
  3782  // SetFrameMetric sets the FrameMetric field's value.
  3783  func (s *FrameMetricDatum) SetFrameMetric(v *FrameMetric) *FrameMetricDatum {
  3784  	s.FrameMetric = v
  3785  	return s
  3786  }
  3787  
  3788  // SetValues sets the Values field's value.
  3789  func (s *FrameMetricDatum) SetValues(v []*float64) *FrameMetricDatum {
  3790  	s.Values = v
  3791  	return s
  3792  }
  3793  
  3794  // The structure representing the GetFindingsReportAccountSummaryRequest.
  3795  type 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".
  3827  func (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".
  3836  func (s GetFindingsReportAccountSummaryInput) GoString() string {
  3837  	return s.String()
  3838  }
  3839  
  3840  // Validate inspects the fields of the type to determine if they are valid.
  3841  func (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.
  3857  func (s *GetFindingsReportAccountSummaryInput) SetDailyReportsOnly(v bool) *GetFindingsReportAccountSummaryInput {
  3858  	s.DailyReportsOnly = &v
  3859  	return s
  3860  }
  3861  
  3862  // SetMaxResults sets the MaxResults field's value.
  3863  func (s *GetFindingsReportAccountSummaryInput) SetMaxResults(v int64) *GetFindingsReportAccountSummaryInput {
  3864  	s.MaxResults = &v
  3865  	return s
  3866  }
  3867  
  3868  // SetNextToken sets the NextToken field's value.
  3869  func (s *GetFindingsReportAccountSummaryInput) SetNextToken(v string) *GetFindingsReportAccountSummaryInput {
  3870  	s.NextToken = &v
  3871  	return s
  3872  }
  3873  
  3874  // The structure representing the GetFindingsReportAccountSummaryResponse.
  3875  type 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".
  3897  func (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".
  3906  func (s GetFindingsReportAccountSummaryOutput) GoString() string {
  3907  	return s.String()
  3908  }
  3909  
  3910  // SetNextToken sets the NextToken field's value.
  3911  func (s *GetFindingsReportAccountSummaryOutput) SetNextToken(v string) *GetFindingsReportAccountSummaryOutput {
  3912  	s.NextToken = &v
  3913  	return s
  3914  }
  3915  
  3916  // SetReportSummaries sets the ReportSummaries field's value.
  3917  func (s *GetFindingsReportAccountSummaryOutput) SetReportSummaries(v []*FindingsReportSummary) *GetFindingsReportAccountSummaryOutput {
  3918  	s.ReportSummaries = v
  3919  	return s
  3920  }
  3921  
  3922  // The structure representing the GetNotificationConfigurationRequest.
  3923  type 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".
  3938  func (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".
  3947  func (s GetNotificationConfigurationInput) GoString() string {
  3948  	return s.String()
  3949  }
  3950  
  3951  // Validate inspects the fields of the type to determine if they are valid.
  3952  func (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.
  3968  func (s *GetNotificationConfigurationInput) SetProfilingGroupName(v string) *GetNotificationConfigurationInput {
  3969  	s.ProfilingGroupName = &v
  3970  	return s
  3971  }
  3972  
  3973  // The structure representing the GetNotificationConfigurationResponse.
  3974  type 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".
  3988  func (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".
  3997  func (s GetNotificationConfigurationOutput) GoString() string {
  3998  	return s.String()
  3999  }
  4000  
  4001  // SetNotificationConfiguration sets the NotificationConfiguration field's value.
  4002  func (s *GetNotificationConfigurationOutput) SetNotificationConfiguration(v *NotificationConfiguration) *GetNotificationConfigurationOutput {
  4003  	s.NotificationConfiguration = v
  4004  	return s
  4005  }
  4006  
  4007  // The structure representing the getPolicyRequest.
  4008  type 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".
  4022  func (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".
  4031  func (s GetPolicyInput) GoString() string {
  4032  	return s.String()
  4033  }
  4034  
  4035  // Validate inspects the fields of the type to determine if they are valid.
  4036  func (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.
  4052  func (s *GetPolicyInput) SetProfilingGroupName(v string) *GetPolicyInput {
  4053  	s.ProfilingGroupName = &v
  4054  	return s
  4055  }
  4056  
  4057  // The structure representing the getPolicyResponse.
  4058  type 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".
  4077  func (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".
  4086  func (s GetPolicyOutput) GoString() string {
  4087  	return s.String()
  4088  }
  4089  
  4090  // SetPolicy sets the Policy field's value.
  4091  func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput {
  4092  	s.Policy = &v
  4093  	return s
  4094  }
  4095  
  4096  // SetRevisionId sets the RevisionId field's value.
  4097  func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput {
  4098  	s.RevisionId = &v
  4099  	return s
  4100  }
  4101  
  4102  // The structure representing the getProfileRequest.
  4103  type 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".
  4157  func (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".
  4166  func (s GetProfileInput) GoString() string {
  4167  	return s.String()
  4168  }
  4169  
  4170  // Validate inspects the fields of the type to determine if they are valid.
  4171  func (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.
  4193  func (s *GetProfileInput) SetAccept(v string) *GetProfileInput {
  4194  	s.Accept = &v
  4195  	return s
  4196  }
  4197  
  4198  // SetEndTime sets the EndTime field's value.
  4199  func (s *GetProfileInput) SetEndTime(v time.Time) *GetProfileInput {
  4200  	s.EndTime = &v
  4201  	return s
  4202  }
  4203  
  4204  // SetMaxDepth sets the MaxDepth field's value.
  4205  func (s *GetProfileInput) SetMaxDepth(v int64) *GetProfileInput {
  4206  	s.MaxDepth = &v
  4207  	return s
  4208  }
  4209  
  4210  // SetPeriod sets the Period field's value.
  4211  func (s *GetProfileInput) SetPeriod(v string) *GetProfileInput {
  4212  	s.Period = &v
  4213  	return s
  4214  }
  4215  
  4216  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  4217  func (s *GetProfileInput) SetProfilingGroupName(v string) *GetProfileInput {
  4218  	s.ProfilingGroupName = &v
  4219  	return s
  4220  }
  4221  
  4222  // SetStartTime sets the StartTime field's value.
  4223  func (s *GetProfileInput) SetStartTime(v time.Time) *GetProfileInput {
  4224  	s.StartTime = &v
  4225  	return s
  4226  }
  4227  
  4228  // The structure representing the getProfileResponse.
  4229  type 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".
  4252  func (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".
  4261  func (s GetProfileOutput) GoString() string {
  4262  	return s.String()
  4263  }
  4264  
  4265  // SetContentEncoding sets the ContentEncoding field's value.
  4266  func (s *GetProfileOutput) SetContentEncoding(v string) *GetProfileOutput {
  4267  	s.ContentEncoding = &v
  4268  	return s
  4269  }
  4270  
  4271  // SetContentType sets the ContentType field's value.
  4272  func (s *GetProfileOutput) SetContentType(v string) *GetProfileOutput {
  4273  	s.ContentType = &v
  4274  	return s
  4275  }
  4276  
  4277  // SetProfile sets the Profile field's value.
  4278  func (s *GetProfileOutput) SetProfile(v []byte) *GetProfileOutput {
  4279  	s.Profile = v
  4280  	return s
  4281  }
  4282  
  4283  // The structure representing the GetRecommendationsRequest.
  4284  type 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".
  4340  func (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".
  4349  func (s GetRecommendationsInput) GoString() string {
  4350  	return s.String()
  4351  }
  4352  
  4353  // Validate inspects the fields of the type to determine if they are valid.
  4354  func (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.
  4376  func (s *GetRecommendationsInput) SetEndTime(v time.Time) *GetRecommendationsInput {
  4377  	s.EndTime = &v
  4378  	return s
  4379  }
  4380  
  4381  // SetLocale sets the Locale field's value.
  4382  func (s *GetRecommendationsInput) SetLocale(v string) *GetRecommendationsInput {
  4383  	s.Locale = &v
  4384  	return s
  4385  }
  4386  
  4387  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  4388  func (s *GetRecommendationsInput) SetProfilingGroupName(v string) *GetRecommendationsInput {
  4389  	s.ProfilingGroupName = &v
  4390  	return s
  4391  }
  4392  
  4393  // SetStartTime sets the StartTime field's value.
  4394  func (s *GetRecommendationsInput) SetStartTime(v time.Time) *GetRecommendationsInput {
  4395  	s.StartTime = &v
  4396  	return s
  4397  }
  4398  
  4399  // The structure representing the GetRecommendationsResponse.
  4400  type 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".
  4438  func (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".
  4447  func (s GetRecommendationsOutput) GoString() string {
  4448  	return s.String()
  4449  }
  4450  
  4451  // SetAnomalies sets the Anomalies field's value.
  4452  func (s *GetRecommendationsOutput) SetAnomalies(v []*Anomaly) *GetRecommendationsOutput {
  4453  	s.Anomalies = v
  4454  	return s
  4455  }
  4456  
  4457  // SetProfileEndTime sets the ProfileEndTime field's value.
  4458  func (s *GetRecommendationsOutput) SetProfileEndTime(v time.Time) *GetRecommendationsOutput {
  4459  	s.ProfileEndTime = &v
  4460  	return s
  4461  }
  4462  
  4463  // SetProfileStartTime sets the ProfileStartTime field's value.
  4464  func (s *GetRecommendationsOutput) SetProfileStartTime(v time.Time) *GetRecommendationsOutput {
  4465  	s.ProfileStartTime = &v
  4466  	return s
  4467  }
  4468  
  4469  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  4470  func (s *GetRecommendationsOutput) SetProfilingGroupName(v string) *GetRecommendationsOutput {
  4471  	s.ProfilingGroupName = &v
  4472  	return s
  4473  }
  4474  
  4475  // SetRecommendations sets the Recommendations field's value.
  4476  func (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.
  4482  type 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".
  4494  func (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".
  4503  func (s InternalServerException) GoString() string {
  4504  	return s.String()
  4505  }
  4506  
  4507  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
  4508  	return &InternalServerException{
  4509  		RespMetadata: v,
  4510  	}
  4511  }
  4512  
  4513  // Code returns the exception type name.
  4514  func (s *InternalServerException) Code() string {
  4515  	return "InternalServerException"
  4516  }
  4517  
  4518  // Message returns the exception's message.
  4519  func (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.
  4527  func (s *InternalServerException) OrigErr() error {
  4528  	return nil
  4529  }
  4530  
  4531  func (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.
  4536  func (s *InternalServerException) StatusCode() int {
  4537  	return s.RespMetadata.StatusCode
  4538  }
  4539  
  4540  // RequestID returns the service's response RequestID for request.
  4541  func (s *InternalServerException) RequestID() string {
  4542  	return s.RespMetadata.RequestID
  4543  }
  4544  
  4545  // The structure representing the ListFindingsReportsRequest.
  4546  type 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".
  4598  func (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".
  4607  func (s ListFindingsReportsInput) GoString() string {
  4608  	return s.String()
  4609  }
  4610  
  4611  // Validate inspects the fields of the type to determine if they are valid.
  4612  func (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.
  4640  func (s *ListFindingsReportsInput) SetDailyReportsOnly(v bool) *ListFindingsReportsInput {
  4641  	s.DailyReportsOnly = &v
  4642  	return s
  4643  }
  4644  
  4645  // SetEndTime sets the EndTime field's value.
  4646  func (s *ListFindingsReportsInput) SetEndTime(v time.Time) *ListFindingsReportsInput {
  4647  	s.EndTime = &v
  4648  	return s
  4649  }
  4650  
  4651  // SetMaxResults sets the MaxResults field's value.
  4652  func (s *ListFindingsReportsInput) SetMaxResults(v int64) *ListFindingsReportsInput {
  4653  	s.MaxResults = &v
  4654  	return s
  4655  }
  4656  
  4657  // SetNextToken sets the NextToken field's value.
  4658  func (s *ListFindingsReportsInput) SetNextToken(v string) *ListFindingsReportsInput {
  4659  	s.NextToken = &v
  4660  	return s
  4661  }
  4662  
  4663  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  4664  func (s *ListFindingsReportsInput) SetProfilingGroupName(v string) *ListFindingsReportsInput {
  4665  	s.ProfilingGroupName = &v
  4666  	return s
  4667  }
  4668  
  4669  // SetStartTime sets the StartTime field's value.
  4670  func (s *ListFindingsReportsInput) SetStartTime(v time.Time) *ListFindingsReportsInput {
  4671  	s.StartTime = &v
  4672  	return s
  4673  }
  4674  
  4675  // The structure representing the ListFindingsReportsResponse.
  4676  type 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".
  4696  func (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".
  4705  func (s ListFindingsReportsOutput) GoString() string {
  4706  	return s.String()
  4707  }
  4708  
  4709  // SetFindingsReportSummaries sets the FindingsReportSummaries field's value.
  4710  func (s *ListFindingsReportsOutput) SetFindingsReportSummaries(v []*FindingsReportSummary) *ListFindingsReportsOutput {
  4711  	s.FindingsReportSummaries = v
  4712  	return s
  4713  }
  4714  
  4715  // SetNextToken sets the NextToken field's value.
  4716  func (s *ListFindingsReportsOutput) SetNextToken(v string) *ListFindingsReportsOutput {
  4717  	s.NextToken = &v
  4718  	return s
  4719  }
  4720  
  4721  // The structure representing the listProfileTimesRequest.
  4722  type 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".
  4779  func (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".
  4788  func (s ListProfileTimesInput) GoString() string {
  4789  	return s.String()
  4790  }
  4791  
  4792  // Validate inspects the fields of the type to determine if they are valid.
  4793  func (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.
  4824  func (s *ListProfileTimesInput) SetEndTime(v time.Time) *ListProfileTimesInput {
  4825  	s.EndTime = &v
  4826  	return s
  4827  }
  4828  
  4829  // SetMaxResults sets the MaxResults field's value.
  4830  func (s *ListProfileTimesInput) SetMaxResults(v int64) *ListProfileTimesInput {
  4831  	s.MaxResults = &v
  4832  	return s
  4833  }
  4834  
  4835  // SetNextToken sets the NextToken field's value.
  4836  func (s *ListProfileTimesInput) SetNextToken(v string) *ListProfileTimesInput {
  4837  	s.NextToken = &v
  4838  	return s
  4839  }
  4840  
  4841  // SetOrderBy sets the OrderBy field's value.
  4842  func (s *ListProfileTimesInput) SetOrderBy(v string) *ListProfileTimesInput {
  4843  	s.OrderBy = &v
  4844  	return s
  4845  }
  4846  
  4847  // SetPeriod sets the Period field's value.
  4848  func (s *ListProfileTimesInput) SetPeriod(v string) *ListProfileTimesInput {
  4849  	s.Period = &v
  4850  	return s
  4851  }
  4852  
  4853  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  4854  func (s *ListProfileTimesInput) SetProfilingGroupName(v string) *ListProfileTimesInput {
  4855  	s.ProfilingGroupName = &v
  4856  	return s
  4857  }
  4858  
  4859  // SetStartTime sets the StartTime field's value.
  4860  func (s *ListProfileTimesInput) SetStartTime(v time.Time) *ListProfileTimesInput {
  4861  	s.StartTime = &v
  4862  	return s
  4863  }
  4864  
  4865  // The structure representing the listProfileTimesResponse.
  4866  type 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".
  4887  func (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".
  4896  func (s ListProfileTimesOutput) GoString() string {
  4897  	return s.String()
  4898  }
  4899  
  4900  // SetNextToken sets the NextToken field's value.
  4901  func (s *ListProfileTimesOutput) SetNextToken(v string) *ListProfileTimesOutput {
  4902  	s.NextToken = &v
  4903  	return s
  4904  }
  4905  
  4906  // SetProfileTimes sets the ProfileTimes field's value.
  4907  func (s *ListProfileTimesOutput) SetProfileTimes(v []*ProfileTime) *ListProfileTimesOutput {
  4908  	s.ProfileTimes = v
  4909  	return s
  4910  }
  4911  
  4912  // The structure representing the listProfilingGroupsRequest.
  4913  type 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".
  4944  func (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".
  4953  func (s ListProfilingGroupsInput) GoString() string {
  4954  	return s.String()
  4955  }
  4956  
  4957  // Validate inspects the fields of the type to determine if they are valid.
  4958  func (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.
  4974  func (s *ListProfilingGroupsInput) SetIncludeDescription(v bool) *ListProfilingGroupsInput {
  4975  	s.IncludeDescription = &v
  4976  	return s
  4977  }
  4978  
  4979  // SetMaxResults sets the MaxResults field's value.
  4980  func (s *ListProfilingGroupsInput) SetMaxResults(v int64) *ListProfilingGroupsInput {
  4981  	s.MaxResults = &v
  4982  	return s
  4983  }
  4984  
  4985  // SetNextToken sets the NextToken field's value.
  4986  func (s *ListProfilingGroupsInput) SetNextToken(v string) *ListProfilingGroupsInput {
  4987  	s.NextToken = &v
  4988  	return s
  4989  }
  4990  
  4991  // The structure representing the listProfilingGroupsResponse.
  4992  type 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".
  5021  func (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".
  5030  func (s ListProfilingGroupsOutput) GoString() string {
  5031  	return s.String()
  5032  }
  5033  
  5034  // SetNextToken sets the NextToken field's value.
  5035  func (s *ListProfilingGroupsOutput) SetNextToken(v string) *ListProfilingGroupsOutput {
  5036  	s.NextToken = &v
  5037  	return s
  5038  }
  5039  
  5040  // SetProfilingGroupNames sets the ProfilingGroupNames field's value.
  5041  func (s *ListProfilingGroupsOutput) SetProfilingGroupNames(v []*string) *ListProfilingGroupsOutput {
  5042  	s.ProfilingGroupNames = v
  5043  	return s
  5044  }
  5045  
  5046  // SetProfilingGroups sets the ProfilingGroups field's value.
  5047  func (s *ListProfilingGroupsOutput) SetProfilingGroups(v []*ProfilingGroupDescription) *ListProfilingGroupsOutput {
  5048  	s.ProfilingGroups = v
  5049  	return s
  5050  }
  5051  
  5052  type 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".
  5067  func (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".
  5076  func (s ListTagsForResourceInput) GoString() string {
  5077  	return s.String()
  5078  }
  5079  
  5080  // Validate inspects the fields of the type to determine if they are valid.
  5081  func (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.
  5097  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  5098  	s.ResourceArn = &v
  5099  	return s
  5100  }
  5101  
  5102  type 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".
  5115  func (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".
  5124  func (s ListTagsForResourceOutput) GoString() string {
  5125  	return s.String()
  5126  }
  5127  
  5128  // SetTags sets the Tags field's value.
  5129  func (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.
  5135  type 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".
  5154  func (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".
  5163  func (s Match) GoString() string {
  5164  	return s.String()
  5165  }
  5166  
  5167  // SetFrameAddress sets the FrameAddress field's value.
  5168  func (s *Match) SetFrameAddress(v string) *Match {
  5169  	s.FrameAddress = &v
  5170  	return s
  5171  }
  5172  
  5173  // SetTargetFramesIndex sets the TargetFramesIndex field's value.
  5174  func (s *Match) SetTargetFramesIndex(v int64) *Match {
  5175  	s.TargetFramesIndex = &v
  5176  	return s
  5177  }
  5178  
  5179  // SetThresholdBreachValue sets the ThresholdBreachValue field's value.
  5180  func (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.
  5189  type 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".
  5216  func (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".
  5225  func (s Metric) GoString() string {
  5226  	return s.String()
  5227  }
  5228  
  5229  // SetFrameName sets the FrameName field's value.
  5230  func (s *Metric) SetFrameName(v string) *Metric {
  5231  	s.FrameName = &v
  5232  	return s
  5233  }
  5234  
  5235  // SetThreadStates sets the ThreadStates field's value.
  5236  func (s *Metric) SetThreadStates(v []*string) *Metric {
  5237  	s.ThreadStates = v
  5238  	return s
  5239  }
  5240  
  5241  // SetType sets the Type field's value.
  5242  func (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.
  5250  type 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".
  5263  func (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".
  5272  func (s NotificationConfiguration) GoString() string {
  5273  	return s.String()
  5274  }
  5275  
  5276  // SetChannels sets the Channels field's value.
  5277  func (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.
  5283  type 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".
  5317  func (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".
  5326  func (s Pattern) GoString() string {
  5327  	return s.String()
  5328  }
  5329  
  5330  // SetCountersToAggregate sets the CountersToAggregate field's value.
  5331  func (s *Pattern) SetCountersToAggregate(v []*string) *Pattern {
  5332  	s.CountersToAggregate = v
  5333  	return s
  5334  }
  5335  
  5336  // SetDescription sets the Description field's value.
  5337  func (s *Pattern) SetDescription(v string) *Pattern {
  5338  	s.Description = &v
  5339  	return s
  5340  }
  5341  
  5342  // SetId sets the Id field's value.
  5343  func (s *Pattern) SetId(v string) *Pattern {
  5344  	s.Id = &v
  5345  	return s
  5346  }
  5347  
  5348  // SetName sets the Name field's value.
  5349  func (s *Pattern) SetName(v string) *Pattern {
  5350  	s.Name = &v
  5351  	return s
  5352  }
  5353  
  5354  // SetResolutionSteps sets the ResolutionSteps field's value.
  5355  func (s *Pattern) SetResolutionSteps(v string) *Pattern {
  5356  	s.ResolutionSteps = &v
  5357  	return s
  5358  }
  5359  
  5360  // SetTargetFrames sets the TargetFrames field's value.
  5361  func (s *Pattern) SetTargetFrames(v [][]*string) *Pattern {
  5362  	s.TargetFrames = v
  5363  	return s
  5364  }
  5365  
  5366  // SetThresholdPercent sets the ThresholdPercent field's value.
  5367  func (s *Pattern) SetThresholdPercent(v float64) *Pattern {
  5368  	s.ThresholdPercent = &v
  5369  	return s
  5370  }
  5371  
  5372  // The structure representing the postAgentProfileRequest.
  5373  type 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".
  5410  func (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".
  5419  func (s PostAgentProfileInput) GoString() string {
  5420  	return s.String()
  5421  }
  5422  
  5423  // Validate inspects the fields of the type to determine if they are valid.
  5424  func (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.
  5449  func (s *PostAgentProfileInput) SetAgentProfile(v []byte) *PostAgentProfileInput {
  5450  	s.AgentProfile = v
  5451  	return s
  5452  }
  5453  
  5454  // SetContentType sets the ContentType field's value.
  5455  func (s *PostAgentProfileInput) SetContentType(v string) *PostAgentProfileInput {
  5456  	s.ContentType = &v
  5457  	return s
  5458  }
  5459  
  5460  // SetProfileToken sets the ProfileToken field's value.
  5461  func (s *PostAgentProfileInput) SetProfileToken(v string) *PostAgentProfileInput {
  5462  	s.ProfileToken = &v
  5463  	return s
  5464  }
  5465  
  5466  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  5467  func (s *PostAgentProfileInput) SetProfilingGroupName(v string) *PostAgentProfileInput {
  5468  	s.ProfilingGroupName = &v
  5469  	return s
  5470  }
  5471  
  5472  // The structure representing the postAgentProfileResponse.
  5473  type PostAgentProfileOutput struct {
  5474  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  5482  func (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".
  5491  func (s PostAgentProfileOutput) GoString() string {
  5492  	return s.String()
  5493  }
  5494  
  5495  // Contains the start time of a profile.
  5496  type 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".
  5510  func (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".
  5519  func (s ProfileTime) GoString() string {
  5520  	return s.String()
  5521  }
  5522  
  5523  // SetStart sets the Start field's value.
  5524  func (s *ProfileTime) SetStart(v time.Time) *ProfileTime {
  5525  	s.Start = &v
  5526  	return s
  5527  }
  5528  
  5529  // Contains information about a profiling group.
  5530  type 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".
  5575  func (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".
  5584  func (s ProfilingGroupDescription) GoString() string {
  5585  	return s.String()
  5586  }
  5587  
  5588  // SetAgentOrchestrationConfig sets the AgentOrchestrationConfig field's value.
  5589  func (s *ProfilingGroupDescription) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *ProfilingGroupDescription {
  5590  	s.AgentOrchestrationConfig = v
  5591  	return s
  5592  }
  5593  
  5594  // SetArn sets the Arn field's value.
  5595  func (s *ProfilingGroupDescription) SetArn(v string) *ProfilingGroupDescription {
  5596  	s.Arn = &v
  5597  	return s
  5598  }
  5599  
  5600  // SetComputePlatform sets the ComputePlatform field's value.
  5601  func (s *ProfilingGroupDescription) SetComputePlatform(v string) *ProfilingGroupDescription {
  5602  	s.ComputePlatform = &v
  5603  	return s
  5604  }
  5605  
  5606  // SetCreatedAt sets the CreatedAt field's value.
  5607  func (s *ProfilingGroupDescription) SetCreatedAt(v time.Time) *ProfilingGroupDescription {
  5608  	s.CreatedAt = &v
  5609  	return s
  5610  }
  5611  
  5612  // SetName sets the Name field's value.
  5613  func (s *ProfilingGroupDescription) SetName(v string) *ProfilingGroupDescription {
  5614  	s.Name = &v
  5615  	return s
  5616  }
  5617  
  5618  // SetProfilingStatus sets the ProfilingStatus field's value.
  5619  func (s *ProfilingGroupDescription) SetProfilingStatus(v *ProfilingStatus) *ProfilingGroupDescription {
  5620  	s.ProfilingStatus = v
  5621  	return s
  5622  }
  5623  
  5624  // SetTags sets the Tags field's value.
  5625  func (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.
  5631  func (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.
  5639  type 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".
  5663  func (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".
  5672  func (s ProfilingStatus) GoString() string {
  5673  	return s.String()
  5674  }
  5675  
  5676  // SetLatestAgentOrchestratedAt sets the LatestAgentOrchestratedAt field's value.
  5677  func (s *ProfilingStatus) SetLatestAgentOrchestratedAt(v time.Time) *ProfilingStatus {
  5678  	s.LatestAgentOrchestratedAt = &v
  5679  	return s
  5680  }
  5681  
  5682  // SetLatestAgentProfileReportedAt sets the LatestAgentProfileReportedAt field's value.
  5683  func (s *ProfilingStatus) SetLatestAgentProfileReportedAt(v time.Time) *ProfilingStatus {
  5684  	s.LatestAgentProfileReportedAt = &v
  5685  	return s
  5686  }
  5687  
  5688  // SetLatestAggregatedProfile sets the LatestAggregatedProfile field's value.
  5689  func (s *ProfilingStatus) SetLatestAggregatedProfile(v *AggregatedProfileTime) *ProfilingStatus {
  5690  	s.LatestAggregatedProfile = v
  5691  	return s
  5692  }
  5693  
  5694  // The structure representing the putPermissionRequest.
  5695  type 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".
  5729  func (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".
  5738  func (s PutPermissionInput) GoString() string {
  5739  	return s.String()
  5740  }
  5741  
  5742  // Validate inspects the fields of the type to determine if they are valid.
  5743  func (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.
  5771  func (s *PutPermissionInput) SetActionGroup(v string) *PutPermissionInput {
  5772  	s.ActionGroup = &v
  5773  	return s
  5774  }
  5775  
  5776  // SetPrincipals sets the Principals field's value.
  5777  func (s *PutPermissionInput) SetPrincipals(v []*string) *PutPermissionInput {
  5778  	s.Principals = v
  5779  	return s
  5780  }
  5781  
  5782  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  5783  func (s *PutPermissionInput) SetProfilingGroupName(v string) *PutPermissionInput {
  5784  	s.ProfilingGroupName = &v
  5785  	return s
  5786  }
  5787  
  5788  // SetRevisionId sets the RevisionId field's value.
  5789  func (s *PutPermissionInput) SetRevisionId(v string) *PutPermissionInput {
  5790  	s.RevisionId = &v
  5791  	return s
  5792  }
  5793  
  5794  // The structure representing the putPermissionResponse.
  5795  type 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".
  5817  func (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".
  5826  func (s PutPermissionOutput) GoString() string {
  5827  	return s.String()
  5828  }
  5829  
  5830  // SetPolicy sets the Policy field's value.
  5831  func (s *PutPermissionOutput) SetPolicy(v string) *PutPermissionOutput {
  5832  	s.Policy = &v
  5833  	return s
  5834  }
  5835  
  5836  // SetRevisionId sets the RevisionId field's value.
  5837  func (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.
  5843  type 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".
  5886  func (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".
  5895  func (s Recommendation) GoString() string {
  5896  	return s.String()
  5897  }
  5898  
  5899  // SetAllMatchesCount sets the AllMatchesCount field's value.
  5900  func (s *Recommendation) SetAllMatchesCount(v int64) *Recommendation {
  5901  	s.AllMatchesCount = &v
  5902  	return s
  5903  }
  5904  
  5905  // SetAllMatchesSum sets the AllMatchesSum field's value.
  5906  func (s *Recommendation) SetAllMatchesSum(v float64) *Recommendation {
  5907  	s.AllMatchesSum = &v
  5908  	return s
  5909  }
  5910  
  5911  // SetEndTime sets the EndTime field's value.
  5912  func (s *Recommendation) SetEndTime(v time.Time) *Recommendation {
  5913  	s.EndTime = &v
  5914  	return s
  5915  }
  5916  
  5917  // SetPattern sets the Pattern field's value.
  5918  func (s *Recommendation) SetPattern(v *Pattern) *Recommendation {
  5919  	s.Pattern = v
  5920  	return s
  5921  }
  5922  
  5923  // SetStartTime sets the StartTime field's value.
  5924  func (s *Recommendation) SetStartTime(v time.Time) *Recommendation {
  5925  	s.StartTime = &v
  5926  	return s
  5927  }
  5928  
  5929  // SetTopMatches sets the TopMatches field's value.
  5930  func (s *Recommendation) SetTopMatches(v []*Match) *Recommendation {
  5931  	s.TopMatches = v
  5932  	return s
  5933  }
  5934  
  5935  // The structure representing the RemoveNotificationChannelRequest.
  5936  type 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".
  5956  func (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".
  5965  func (s RemoveNotificationChannelInput) GoString() string {
  5966  	return s.String()
  5967  }
  5968  
  5969  // Validate inspects the fields of the type to determine if they are valid.
  5970  func (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.
  5992  func (s *RemoveNotificationChannelInput) SetChannelId(v string) *RemoveNotificationChannelInput {
  5993  	s.ChannelId = &v
  5994  	return s
  5995  }
  5996  
  5997  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  5998  func (s *RemoveNotificationChannelInput) SetProfilingGroupName(v string) *RemoveNotificationChannelInput {
  5999  	s.ProfilingGroupName = &v
  6000  	return s
  6001  }
  6002  
  6003  // The structure representing the RemoveNotificationChannelResponse.
  6004  type 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".
  6016  func (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".
  6025  func (s RemoveNotificationChannelOutput) GoString() string {
  6026  	return s.String()
  6027  }
  6028  
  6029  // SetNotificationConfiguration sets the NotificationConfiguration field's value.
  6030  func (s *RemoveNotificationChannelOutput) SetNotificationConfiguration(v *NotificationConfiguration) *RemoveNotificationChannelOutput {
  6031  	s.NotificationConfiguration = v
  6032  	return s
  6033  }
  6034  
  6035  type 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".
  6062  func (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".
  6071  func (s RemovePermissionInput) GoString() string {
  6072  	return s.String()
  6073  }
  6074  
  6075  // Validate inspects the fields of the type to determine if they are valid.
  6076  func (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.
  6101  func (s *RemovePermissionInput) SetActionGroup(v string) *RemovePermissionInput {
  6102  	s.ActionGroup = &v
  6103  	return s
  6104  }
  6105  
  6106  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  6107  func (s *RemovePermissionInput) SetProfilingGroupName(v string) *RemovePermissionInput {
  6108  	s.ProfilingGroupName = &v
  6109  	return s
  6110  }
  6111  
  6112  // SetRevisionId sets the RevisionId field's value.
  6113  func (s *RemovePermissionInput) SetRevisionId(v string) *RemovePermissionInput {
  6114  	s.RevisionId = &v
  6115  	return s
  6116  }
  6117  
  6118  // The structure representing the removePermissionResponse.
  6119  type 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".
  6141  func (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".
  6150  func (s RemovePermissionOutput) GoString() string {
  6151  	return s.String()
  6152  }
  6153  
  6154  // SetPolicy sets the Policy field's value.
  6155  func (s *RemovePermissionOutput) SetPolicy(v string) *RemovePermissionOutput {
  6156  	s.Policy = &v
  6157  	return s
  6158  }
  6159  
  6160  // SetRevisionId sets the RevisionId field's value.
  6161  func (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.
  6167  type 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".
  6179  func (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".
  6188  func (s ResourceNotFoundException) GoString() string {
  6189  	return s.String()
  6190  }
  6191  
  6192  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  6193  	return &ResourceNotFoundException{
  6194  		RespMetadata: v,
  6195  	}
  6196  }
  6197  
  6198  // Code returns the exception type name.
  6199  func (s *ResourceNotFoundException) Code() string {
  6200  	return "ResourceNotFoundException"
  6201  }
  6202  
  6203  // Message returns the exception's message.
  6204  func (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.
  6212  func (s *ResourceNotFoundException) OrigErr() error {
  6213  	return nil
  6214  }
  6215  
  6216  func (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.
  6221  func (s *ResourceNotFoundException) StatusCode() int {
  6222  	return s.RespMetadata.StatusCode
  6223  }
  6224  
  6225  // RequestID returns the service's response RequestID for request.
  6226  func (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.
  6233  type 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".
  6245  func (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".
  6254  func (s ServiceQuotaExceededException) GoString() string {
  6255  	return s.String()
  6256  }
  6257  
  6258  func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
  6259  	return &ServiceQuotaExceededException{
  6260  		RespMetadata: v,
  6261  	}
  6262  }
  6263  
  6264  // Code returns the exception type name.
  6265  func (s *ServiceQuotaExceededException) Code() string {
  6266  	return "ServiceQuotaExceededException"
  6267  }
  6268  
  6269  // Message returns the exception's message.
  6270  func (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.
  6278  func (s *ServiceQuotaExceededException) OrigErr() error {
  6279  	return nil
  6280  }
  6281  
  6282  func (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.
  6287  func (s *ServiceQuotaExceededException) StatusCode() int {
  6288  	return s.RespMetadata.StatusCode
  6289  }
  6290  
  6291  // RequestID returns the service's response RequestID for request.
  6292  func (s *ServiceQuotaExceededException) RequestID() string {
  6293  	return s.RespMetadata.RequestID
  6294  }
  6295  
  6296  // The structure representing the SubmitFeedbackRequest.
  6297  type 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".
  6325  func (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".
  6334  func (s SubmitFeedbackInput) GoString() string {
  6335  	return s.String()
  6336  }
  6337  
  6338  // Validate inspects the fields of the type to determine if they are valid.
  6339  func (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.
  6364  func (s *SubmitFeedbackInput) SetAnomalyInstanceId(v string) *SubmitFeedbackInput {
  6365  	s.AnomalyInstanceId = &v
  6366  	return s
  6367  }
  6368  
  6369  // SetComment sets the Comment field's value.
  6370  func (s *SubmitFeedbackInput) SetComment(v string) *SubmitFeedbackInput {
  6371  	s.Comment = &v
  6372  	return s
  6373  }
  6374  
  6375  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  6376  func (s *SubmitFeedbackInput) SetProfilingGroupName(v string) *SubmitFeedbackInput {
  6377  	s.ProfilingGroupName = &v
  6378  	return s
  6379  }
  6380  
  6381  // SetType sets the Type field's value.
  6382  func (s *SubmitFeedbackInput) SetType(v string) *SubmitFeedbackInput {
  6383  	s.Type = &v
  6384  	return s
  6385  }
  6386  
  6387  // The structure representing the SubmitFeedbackResponse.
  6388  type SubmitFeedbackOutput struct {
  6389  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  6397  func (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".
  6406  func (s SubmitFeedbackOutput) GoString() string {
  6407  	return s.String()
  6408  }
  6409  
  6410  type 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".
  6429  func (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".
  6438  func (s TagResourceInput) GoString() string {
  6439  	return s.String()
  6440  }
  6441  
  6442  // Validate inspects the fields of the type to determine if they are valid.
  6443  func (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.
  6462  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
  6463  	s.ResourceArn = &v
  6464  	return s
  6465  }
  6466  
  6467  // SetTags sets the Tags field's value.
  6468  func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
  6469  	s.Tags = v
  6470  	return s
  6471  }
  6472  
  6473  type TagResourceOutput struct {
  6474  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  6482  func (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".
  6491  func (s TagResourceOutput) GoString() string {
  6492  	return s.String()
  6493  }
  6494  
  6495  // The request was denied due to request throttling.
  6496  type 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".
  6508  func (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".
  6517  func (s ThrottlingException) GoString() string {
  6518  	return s.String()
  6519  }
  6520  
  6521  func newErrorThrottlingException(v protocol.ResponseMetadata) error {
  6522  	return &ThrottlingException{
  6523  		RespMetadata: v,
  6524  	}
  6525  }
  6526  
  6527  // Code returns the exception type name.
  6528  func (s *ThrottlingException) Code() string {
  6529  	return "ThrottlingException"
  6530  }
  6531  
  6532  // Message returns the exception's message.
  6533  func (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.
  6541  func (s *ThrottlingException) OrigErr() error {
  6542  	return nil
  6543  }
  6544  
  6545  func (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.
  6550  func (s *ThrottlingException) StatusCode() int {
  6551  	return s.RespMetadata.StatusCode
  6552  }
  6553  
  6554  // RequestID returns the service's response RequestID for request.
  6555  func (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.
  6562  type 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".
  6577  func (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".
  6586  func (s TimestampStructure) GoString() string {
  6587  	return s.String()
  6588  }
  6589  
  6590  // SetValue sets the Value field's value.
  6591  func (s *TimestampStructure) SetValue(v time.Time) *TimestampStructure {
  6592  	s.Value = &v
  6593  	return s
  6594  }
  6595  
  6596  type 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".
  6617  func (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".
  6626  func (s UntagResourceInput) GoString() string {
  6627  	return s.String()
  6628  }
  6629  
  6630  // Validate inspects the fields of the type to determine if they are valid.
  6631  func (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.
  6650  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
  6651  	s.ResourceArn = &v
  6652  	return s
  6653  }
  6654  
  6655  // SetTagKeys sets the TagKeys field's value.
  6656  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  6657  	s.TagKeys = v
  6658  	return s
  6659  }
  6660  
  6661  type UntagResourceOutput struct {
  6662  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  6670  func (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".
  6679  func (s UntagResourceOutput) GoString() string {
  6680  	return s.String()
  6681  }
  6682  
  6683  // The structure representing the updateProfilingGroupRequest.
  6684  type 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".
  6703  func (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".
  6712  func (s UpdateProfilingGroupInput) GoString() string {
  6713  	return s.String()
  6714  }
  6715  
  6716  // Validate inspects the fields of the type to determine if they are valid.
  6717  func (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.
  6741  func (s *UpdateProfilingGroupInput) SetAgentOrchestrationConfig(v *AgentOrchestrationConfig) *UpdateProfilingGroupInput {
  6742  	s.AgentOrchestrationConfig = v
  6743  	return s
  6744  }
  6745  
  6746  // SetProfilingGroupName sets the ProfilingGroupName field's value.
  6747  func (s *UpdateProfilingGroupInput) SetProfilingGroupName(v string) *UpdateProfilingGroupInput {
  6748  	s.ProfilingGroupName = &v
  6749  	return s
  6750  }
  6751  
  6752  // The structure representing the updateProfilingGroupResponse.
  6753  type 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".
  6768  func (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".
  6777  func (s UpdateProfilingGroupOutput) GoString() string {
  6778  	return s.String()
  6779  }
  6780  
  6781  // SetProfilingGroup sets the ProfilingGroup field's value.
  6782  func (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.
  6790  type 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".
  6805  func (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".
  6814  func (s UserFeedback) GoString() string {
  6815  	return s.String()
  6816  }
  6817  
  6818  // SetType sets the Type field's value.
  6819  func (s *UserFeedback) SetType(v string) *UserFeedback {
  6820  	s.Type = &v
  6821  	return s
  6822  }
  6823  
  6824  // The parameter is not valid.
  6825  type 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".
  6837  func (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".
  6846  func (s ValidationException) GoString() string {
  6847  	return s.String()
  6848  }
  6849  
  6850  func newErrorValidationException(v protocol.ResponseMetadata) error {
  6851  	return &ValidationException{
  6852  		RespMetadata: v,
  6853  	}
  6854  }
  6855  
  6856  // Code returns the exception type name.
  6857  func (s *ValidationException) Code() string {
  6858  	return "ValidationException"
  6859  }
  6860  
  6861  // Message returns the exception's message.
  6862  func (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.
  6870  func (s *ValidationException) OrigErr() error {
  6871  	return nil
  6872  }
  6873  
  6874  func (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.
  6879  func (s *ValidationException) StatusCode() int {
  6880  	return s.RespMetadata.StatusCode
  6881  }
  6882  
  6883  // RequestID returns the service's response RequestID for request.
  6884  func (s *ValidationException) RequestID() string {
  6885  	return s.RespMetadata.RequestID
  6886  }
  6887  
  6888  const (
  6889  	// ActionGroupAgentPermissions is a ActionGroup enum value
  6890  	ActionGroupAgentPermissions = "agentPermissions"
  6891  )
  6892  
  6893  // ActionGroup_Values returns all elements of the ActionGroup enum
  6894  func ActionGroup_Values() []string {
  6895  	return []string{
  6896  		ActionGroupAgentPermissions,
  6897  	}
  6898  }
  6899  
  6900  const (
  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
  6918  func AgentParameterField_Values() []string {
  6919  	return []string{
  6920  		AgentParameterFieldSamplingIntervalInMilliseconds,
  6921  		AgentParameterFieldReportingIntervalInMilliseconds,
  6922  		AgentParameterFieldMinimumTimeForReportingInMilliseconds,
  6923  		AgentParameterFieldMemoryUsageLimitPercent,
  6924  		AgentParameterFieldMaxStackDepth,
  6925  	}
  6926  }
  6927  
  6928  const (
  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
  6940  func AggregationPeriod_Values() []string {
  6941  	return []string{
  6942  		AggregationPeriodPt5m,
  6943  		AggregationPeriodPt1h,
  6944  		AggregationPeriodP1d,
  6945  	}
  6946  }
  6947  
  6948  const (
  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
  6957  func ComputePlatform_Values() []string {
  6958  	return []string{
  6959  		ComputePlatformDefault,
  6960  		ComputePlatformAwslambda,
  6961  	}
  6962  }
  6963  
  6964  const (
  6965  	// EventPublisherAnomalyDetection is a EventPublisher enum value
  6966  	EventPublisherAnomalyDetection = "AnomalyDetection"
  6967  )
  6968  
  6969  // EventPublisher_Values returns all elements of the EventPublisher enum
  6970  func EventPublisher_Values() []string {
  6971  	return []string{
  6972  		EventPublisherAnomalyDetection,
  6973  	}
  6974  }
  6975  
  6976  const (
  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
  6985  func FeedbackType_Values() []string {
  6986  	return []string{
  6987  		FeedbackTypePositive,
  6988  		FeedbackTypeNegative,
  6989  	}
  6990  }
  6991  
  6992  const (
  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
  7022  func 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  
  7036  const (
  7037  	// MetricTypeAggregatedRelativeTotalTime is a MetricType enum value
  7038  	MetricTypeAggregatedRelativeTotalTime = "AggregatedRelativeTotalTime"
  7039  )
  7040  
  7041  // MetricType_Values returns all elements of the MetricType enum
  7042  func MetricType_Values() []string {
  7043  	return []string{
  7044  		MetricTypeAggregatedRelativeTotalTime,
  7045  	}
  7046  }
  7047  
  7048  const (
  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
  7057  func OrderBy_Values() []string {
  7058  	return []string{
  7059  		OrderByTimestampDescending,
  7060  		OrderByTimestampAscending,
  7061  	}
  7062  }