aws-sdk-codeguruprofiler 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4373b7be67d682f57930a38ed64c3b0947c2da73a4f247ae711ae016d854eda9
4
- data.tar.gz: 0a99b74a3fc259a8df183530fb513205fa05c4d5b69a2022e6141197fcf77ad6
3
+ metadata.gz: ecc67e63132a4a96f589839ebf1da8ca51b435ff422fc43d9c0770902bb7857b
4
+ data.tar.gz: 486364744d3a884b20893aaf7f52622eb3d948237721725287086236a4d3a9c8
5
5
  SHA512:
6
- metadata.gz: 1fd02a3e4e842952413b3446e3212df20b50e5ad4583a9162bb38bcfdaaab9862ddb037409c0c95139d0f84039ae640b7dea32e744f22726e5d4d0febb0ed839
7
- data.tar.gz: 3d74ec70a4447feaffe63fd48cb8b08f384c6b535a7180c8b37406e5e6de95049db3cfc95f7272d76590ae50bee5cd84605f75f9f53ce14a445f4b160411aba5
6
+ metadata.gz: bb2939f2b4286c1e72f122bde65c763ba8e09b4606d6ad1baff7f9d67148911f41216ad6e25e74e5d74350acbc42537e67ae0d13a2a54c8b5fd81ff5b7882353
7
+ data.tar.gz: fd4fb2a81d4e9257876ba5a7a740b406ac8b4369922942aefa96b25713b2d151193c7b308e6289fc9a5041a144dd42a17bfd014170606b095ef8b7fe5439f7ed
@@ -27,7 +27,7 @@ require_relative 'aws-sdk-codeguruprofiler/customizations'
27
27
  # structure.
28
28
  #
29
29
  # code_guru_profiler = Aws::CodeGuruProfiler::Client.new
30
- # resp = code_guru_profiler.configure_agent(params)
30
+ # resp = code_guru_profiler.add_notification_channels(params)
31
31
  #
32
32
  # See {Client} for more information.
33
33
  #
@@ -47,6 +47,6 @@ require_relative 'aws-sdk-codeguruprofiler/customizations'
47
47
  # @service
48
48
  module Aws::CodeGuruProfiler
49
49
 
50
- GEM_VERSION = '1.7.0'
50
+ GEM_VERSION = '1.8.0'
51
51
 
52
52
  end
@@ -312,9 +312,189 @@ module Aws::CodeGuruProfiler
312
312
 
313
313
  # @!group API Operations
314
314
 
315
+ # Add up to 2 anomaly notifications channels for a profiling group.
316
+ #
317
+ # @option params [required, Array<Types::Channel>] :channels
318
+ # One or 2 channels to report to when anomalies are detected.
319
+ #
320
+ # @option params [required, String] :profiling_group_name
321
+ # The name of the profiling group that we are setting up notifications
322
+ # for.
323
+ #
324
+ # @return [Types::AddNotificationChannelsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
325
+ #
326
+ # * {Types::AddNotificationChannelsResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
327
+ #
328
+ # @example Request syntax with placeholder values
329
+ #
330
+ # resp = client.add_notification_channels({
331
+ # channels: [ # required
332
+ # {
333
+ # event_publishers: ["AnomalyDetection"], # required, accepts AnomalyDetection
334
+ # id: "ChannelId",
335
+ # uri: "ChannelUri", # required
336
+ # },
337
+ # ],
338
+ # profiling_group_name: "ProfilingGroupName", # required
339
+ # })
340
+ #
341
+ # @example Response structure
342
+ #
343
+ # resp.notification_configuration.channels #=> Array
344
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
345
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
346
+ # resp.notification_configuration.channels[0].id #=> String
347
+ # resp.notification_configuration.channels[0].uri #=> String
348
+ #
349
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/AddNotificationChannels AWS API Documentation
350
+ #
351
+ # @overload add_notification_channels(params = {})
352
+ # @param [Hash] params ({})
353
+ def add_notification_channels(params = {}, options = {})
354
+ req = build_request(:add_notification_channels, params)
355
+ req.send_request(options)
356
+ end
357
+
358
+ # Returns the time series of values for a requested list of frame
359
+ # metrics from a time period.
360
+ #
361
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
362
+ # The end time of the time period for the returned time series values.
363
+ # This is specified using the ISO 8601 format. For example,
364
+ # 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020
365
+ # 1:15:02 PM UTC.
366
+ #
367
+ # @option params [Array<Types::FrameMetric>] :frame_metrics
368
+ # The details of the metrics that are used to request a time series of
369
+ # values. The metric includes the name of the frame, the aggregation
370
+ # type to calculate the metric value for the frame, and the thread
371
+ # states to use to get the count for the metric value of the frame.
372
+ #
373
+ # @option params [String] :period
374
+ # The duration of the frame metrics used to return the time series
375
+ # values. Specify using the ISO 8601 format. The maximum period duration
376
+ # is one day (`PT24H` or `P1D`).
377
+ #
378
+ # @option params [required, String] :profiling_group_name
379
+ # The name of the profiling group associated with the the frame metrics
380
+ # used to return the time series values.
381
+ #
382
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
383
+ # The start time of the time period for the frame metrics used to return
384
+ # the time series values. This is specified using the ISO 8601 format.
385
+ # For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past
386
+ # June 1, 2020 1:15:02 PM UTC.
387
+ #
388
+ # @option params [String] :target_resolution
389
+ # The requested resolution of time steps for the returned time series of
390
+ # values. If the requested target resolution is not available due to
391
+ # data not being retained we provide a best effort result by falling
392
+ # back to the most granular available resolution after the target
393
+ # resolution. There are 3 valid values.
394
+ #
395
+ # * `P1D` — 1 day
396
+ #
397
+ # * `PT1H` — 1 hour
398
+ #
399
+ # * `PT5M` — 5 minutes
400
+ #
401
+ # @return [Types::BatchGetFrameMetricDataResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
402
+ #
403
+ # * {Types::BatchGetFrameMetricDataResponse#end_time #end_time} => Time
404
+ # * {Types::BatchGetFrameMetricDataResponse#end_times #end_times} => Array&lt;Types::TimestampStructure&gt;
405
+ # * {Types::BatchGetFrameMetricDataResponse#frame_metric_data #frame_metric_data} => Array&lt;Types::FrameMetricDatum&gt;
406
+ # * {Types::BatchGetFrameMetricDataResponse#resolution #resolution} => String
407
+ # * {Types::BatchGetFrameMetricDataResponse#start_time #start_time} => Time
408
+ # * {Types::BatchGetFrameMetricDataResponse#unprocessed_end_times #unprocessed_end_times} => Hash&lt;String,Array&lt;Types::TimestampStructure&gt;&gt;
409
+ #
410
+ # @example Request syntax with placeholder values
411
+ #
412
+ # resp = client.batch_get_frame_metric_data({
413
+ # end_time: Time.now,
414
+ # frame_metrics: [
415
+ # {
416
+ # frame_name: "String", # required
417
+ # thread_states: ["String"], # required
418
+ # type: "AggregatedRelativeTotalTime", # required, accepts AggregatedRelativeTotalTime
419
+ # },
420
+ # ],
421
+ # period: "Period",
422
+ # profiling_group_name: "ProfilingGroupName", # required
423
+ # start_time: Time.now,
424
+ # target_resolution: "P1D", # accepts P1D, PT1H, PT5M
425
+ # })
426
+ #
427
+ # @example Response structure
428
+ #
429
+ # resp.end_time #=> Time
430
+ # resp.end_times #=> Array
431
+ # resp.end_times[0].value #=> Time
432
+ # resp.frame_metric_data #=> Array
433
+ # resp.frame_metric_data[0].frame_metric.frame_name #=> String
434
+ # resp.frame_metric_data[0].frame_metric.thread_states #=> Array
435
+ # resp.frame_metric_data[0].frame_metric.thread_states[0] #=> String
436
+ # resp.frame_metric_data[0].frame_metric.type #=> String, one of "AggregatedRelativeTotalTime"
437
+ # resp.frame_metric_data[0].values #=> Array
438
+ # resp.frame_metric_data[0].values[0] #=> Float
439
+ # resp.resolution #=> String, one of "P1D", "PT1H", "PT5M"
440
+ # resp.start_time #=> Time
441
+ # resp.unprocessed_end_times #=> Hash
442
+ # resp.unprocessed_end_times["String"] #=> Array
443
+ # resp.unprocessed_end_times["String"][0].value #=> Time
444
+ #
445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData AWS API Documentation
446
+ #
447
+ # @overload batch_get_frame_metric_data(params = {})
448
+ # @param [Hash] params ({})
449
+ def batch_get_frame_metric_data(params = {}, options = {})
450
+ req = build_request(:batch_get_frame_metric_data, params)
451
+ req.send_request(options)
452
+ end
453
+
454
+ # Used by profiler agents to report their current state and to receive
455
+ # remote configuration updates. For example, `ConfigureAgent` can be
456
+ # used to tell and agent whether to profile or not and for how long to
457
+ # return profiling data.
458
+ #
315
459
  # @option params [String] :fleet_instance_id
460
+ # A universally unique identifier (UUID) for a profiling instance. For
461
+ # example, if the profiling instance is an Amazon EC2 instance, it is
462
+ # the instance ID. If it is an AWS Fargate container, it is the
463
+ # container's task ID.
464
+ #
465
+ # @option params [Hash<String,String>] :metadata
466
+ # Metadata captured about the compute platform the agent is running on.
467
+ # It includes information about sampling and reporting. The valid fields
468
+ # are:
469
+ #
470
+ # * `COMPUTE_PLATFORM` - The compute platform on which the agent is
471
+ # running
472
+ #
473
+ # * `AGENT_ID` - The ID for an agent instance.
474
+ #
475
+ # * `AWS_REQUEST_ID` - The AWS request ID of a Lambda invocation.
476
+ #
477
+ # * `EXECUTION_ENVIRONMENT` - The execution environment a Lambda
478
+ # function is running on.
479
+ #
480
+ # * `LAMBDA_FUNCTION_ARN` - The Amazon Resource Name (ARN) that is used
481
+ # to invoke a Lambda function.
482
+ #
483
+ # * `LAMBDA_MEMORY_LIMIT_IN_MB` - The memory allocated to a Lambda
484
+ # function.
485
+ #
486
+ # * `LAMBDA_REMAINING_TIME_IN_MILLISECONDS` - The time in milliseconds
487
+ # before execution of a Lambda function times out.
488
+ #
489
+ # * `LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS` - The time in
490
+ # milliseconds between two invocations of a Lambda function.
491
+ #
492
+ # * `LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS` - The time in
493
+ # milliseconds for the previous Lambda invocation.
316
494
  #
317
495
  # @option params [required, String] :profiling_group_name
496
+ # The name of the profiling group for which the configured agent is
497
+ # collecting profiling data.
318
498
  #
319
499
  # @return [Types::ConfigureAgentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
320
500
  #
@@ -324,11 +504,16 @@ module Aws::CodeGuruProfiler
324
504
  #
325
505
  # resp = client.configure_agent({
326
506
  # fleet_instance_id: "FleetInstanceId",
507
+ # metadata: {
508
+ # "AgentId" => "String",
509
+ # },
327
510
  # profiling_group_name: "ProfilingGroupName", # required
328
511
  # })
329
512
  #
330
513
  # @example Response structure
331
514
  #
515
+ # resp.configuration.agent_parameters #=> Hash
516
+ # resp.configuration.agent_parameters["AgentParameterField"] #=> String
332
517
  # resp.configuration.period_in_seconds #=> Integer
333
518
  # resp.configuration.should_profile #=> Boolean
334
519
  #
@@ -344,20 +529,26 @@ module Aws::CodeGuruProfiler
344
529
  # Creates a profiling group.
345
530
  #
346
531
  # @option params [Types::AgentOrchestrationConfig] :agent_orchestration_config
347
- # The agent orchestration configuration.
532
+ # Specifies whether profiling is enabled or disabled for the created
533
+ # profiling group.
348
534
  #
349
535
  # @option params [required, String] :client_token
350
- # Unique, case-sensitive identifier that you provide to ensure the
351
- # idempotency of the request.
352
- #
353
- # This parameter specifies a unique identifier for the new profiling
354
- # group that helps ensure idempotency.
536
+ # Amazon CodeGuru Profiler uses this universally unique identifier
537
+ # (UUID) to prevent the accidental creation of duplicate profiling
538
+ # groups if there are failures and retries.
355
539
  #
356
540
  # **A suitable default value is auto-generated.** You should normally
357
541
  # not need to pass this option.**
358
542
  #
543
+ # @option params [String] :compute_platform
544
+ # The compute platform of the profiling group. Use `AWSLambda` if your
545
+ # application runs on AWS Lambda. Use `Default` if your application runs
546
+ # on a compute platform that is not AWS Lambda, such an Amazon EC2
547
+ # instance, an on-premises server, or a different platform. If not
548
+ # specified, `Default` is used.
549
+ #
359
550
  # @option params [required, String] :profiling_group_name
360
- # The name of the profiling group.
551
+ # The name of the profiling group to create.
361
552
  #
362
553
  # @return [Types::CreateProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
363
554
  #
@@ -370,6 +561,7 @@ module Aws::CodeGuruProfiler
370
561
  # profiling_enabled: false, # required
371
562
  # },
372
563
  # client_token: "ClientToken", # required
564
+ # compute_platform: "AWSLambda", # accepts AWSLambda, Default
373
565
  # profiling_group_name: "ProfilingGroupName", # required
374
566
  # })
375
567
  #
@@ -377,6 +569,7 @@ module Aws::CodeGuruProfiler
377
569
  #
378
570
  # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
379
571
  # resp.profiling_group.arn #=> String
572
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
380
573
  # resp.profiling_group.created_at #=> Time
381
574
  # resp.profiling_group.name #=> String
382
575
  # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
@@ -397,7 +590,7 @@ module Aws::CodeGuruProfiler
397
590
  # Deletes a profiling group.
398
591
  #
399
592
  # @option params [required, String] :profiling_group_name
400
- # The profiling group name to delete.
593
+ # The name of the profiling group to delete.
401
594
  #
402
595
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
403
596
  #
@@ -416,10 +609,15 @@ module Aws::CodeGuruProfiler
416
609
  req.send_request(options)
417
610
  end
418
611
 
419
- # Describes a profiling group.
612
+ # Returns a [ `ProfilingGroupDescription` ][1] object that contains
613
+ # information about the requested profiling group.
614
+ #
615
+ #
616
+ #
617
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
420
618
  #
421
619
  # @option params [required, String] :profiling_group_name
422
- # The profiling group name.
620
+ # The name of the profiling group to get information about.
423
621
  #
424
622
  # @return [Types::DescribeProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
425
623
  #
@@ -435,6 +633,7 @@ module Aws::CodeGuruProfiler
435
633
  #
436
634
  # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
437
635
  # resp.profiling_group.arn #=> String
636
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
438
637
  # resp.profiling_group.created_at #=> Time
439
638
  # resp.profiling_group.name #=> String
440
639
  # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
@@ -452,7 +651,110 @@ module Aws::CodeGuruProfiler
452
651
  req.send_request(options)
453
652
  end
454
653
 
455
- # Gets the profiling group policy.
654
+ # Returns a list of [ `FindingsReportSummary` ][1] objects that contain
655
+ # analysis results for all profiling groups in your AWS account.
656
+ #
657
+ #
658
+ #
659
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html
660
+ #
661
+ # @option params [Boolean] :daily_reports_only
662
+ # A `Boolean` value indicating whether to only return reports from daily
663
+ # profiles. If set to `True`, only analysis data from daily profiles is
664
+ # returned. If set to `False`, analysis data is returned from smaller
665
+ # time windows (for example, one hour).
666
+ #
667
+ # @option params [Integer] :max_results
668
+ # The maximum number of results returned by `
669
+ # GetFindingsReportAccountSummary` in paginated output. When this
670
+ # parameter is used, `GetFindingsReportAccountSummary` only returns
671
+ # `maxResults` results in a single page along with a `nextToken`
672
+ # response element. The remaining results of the initial request can be
673
+ # seen by sending another `GetFindingsReportAccountSummary` request with
674
+ # the returned `nextToken` value.
675
+ #
676
+ # @option params [String] :next_token
677
+ # The `nextToken` value returned from a previous paginated
678
+ # `GetFindingsReportAccountSummary` request where `maxResults` was used
679
+ # and the results exceeded the value of that parameter. Pagination
680
+ # continues from the end of the previous results that returned the
681
+ # `nextToken` value.
682
+ #
683
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
684
+ # to retrieve the next items in a list and not for other programmatic
685
+ # purposes.
686
+ #
687
+ # </note>
688
+ #
689
+ # @return [Types::GetFindingsReportAccountSummaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
690
+ #
691
+ # * {Types::GetFindingsReportAccountSummaryResponse#next_token #next_token} => String
692
+ # * {Types::GetFindingsReportAccountSummaryResponse#report_summaries #report_summaries} => Array&lt;Types::FindingsReportSummary&gt;
693
+ #
694
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
695
+ #
696
+ # @example Request syntax with placeholder values
697
+ #
698
+ # resp = client.get_findings_report_account_summary({
699
+ # daily_reports_only: false,
700
+ # max_results: 1,
701
+ # next_token: "PaginationToken",
702
+ # })
703
+ #
704
+ # @example Response structure
705
+ #
706
+ # resp.next_token #=> String
707
+ # resp.report_summaries #=> Array
708
+ # resp.report_summaries[0].id #=> String
709
+ # resp.report_summaries[0].profile_end_time #=> Time
710
+ # resp.report_summaries[0].profile_start_time #=> Time
711
+ # resp.report_summaries[0].profiling_group_name #=> String
712
+ # resp.report_summaries[0].total_number_of_findings #=> Integer
713
+ #
714
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary AWS API Documentation
715
+ #
716
+ # @overload get_findings_report_account_summary(params = {})
717
+ # @param [Hash] params ({})
718
+ def get_findings_report_account_summary(params = {}, options = {})
719
+ req = build_request(:get_findings_report_account_summary, params)
720
+ req.send_request(options)
721
+ end
722
+
723
+ # Get the current configuration for anomaly notifications for a
724
+ # profiling group.
725
+ #
726
+ # @option params [required, String] :profiling_group_name
727
+ # The name of the profiling group we want to get the notification
728
+ # configuration for.
729
+ #
730
+ # @return [Types::GetNotificationConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
731
+ #
732
+ # * {Types::GetNotificationConfigurationResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
733
+ #
734
+ # @example Request syntax with placeholder values
735
+ #
736
+ # resp = client.get_notification_configuration({
737
+ # profiling_group_name: "ProfilingGroupName", # required
738
+ # })
739
+ #
740
+ # @example Response structure
741
+ #
742
+ # resp.notification_configuration.channels #=> Array
743
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
744
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
745
+ # resp.notification_configuration.channels[0].id #=> String
746
+ # resp.notification_configuration.channels[0].uri #=> String
747
+ #
748
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration AWS API Documentation
749
+ #
750
+ # @overload get_notification_configuration(params = {})
751
+ # @param [Hash] params ({})
752
+ def get_notification_configuration(params = {}, options = {})
753
+ req = build_request(:get_notification_configuration, params)
754
+ req.send_request(options)
755
+ end
756
+
757
+ # Returns the JSON-formatted resource-based policy on a profiling group.
456
758
  #
457
759
  # @option params [required, String] :profiling_group_name
458
760
  # The name of the profiling group.
@@ -482,46 +784,51 @@ module Aws::CodeGuruProfiler
482
784
  req.send_request(options)
483
785
  end
484
786
 
485
- # Gets the aggregated profile of a profiling group for the specified
486
- # time range. If the requested time range does not align with the
487
- # available aggregated profiles, it is expanded to attain alignment. If
488
- # aggregated profiles are available only for part of the period
489
- # requested, the profile is returned from the earliest available to the
490
- # latest within the requested time range.
787
+ # Gets the aggregated profile of a profiling group for a specified time
788
+ # range. Amazon CodeGuru Profiler collects posted agent profiles for a
789
+ # profiling group into aggregated profiles.
491
790
  #
492
- # For example, if the requested time range is from 00:00 to 00:20 and
493
- # the available profiles are from 00:15 to 00:25, the returned profile
494
- # will be from 00:15 to 00:20.
495
- #
496
- # You must specify exactly two of the following parameters: `startTime`,
497
- # `period`, and `endTime`.
791
+ # <note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol>
498
792
  #
499
793
  # @option params [String] :accept
500
- # The format of the profile to return. You can choose `application/json`
501
- # or the default `application/x-amzn-ion`.
794
+ # The format of the returned profiling data. The format maps to the
795
+ # `Accept` and `Content-Type` headers of the HTTP request. You can
796
+ # specify one of the following: or the default .
797
+ #
798
+ # <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>
502
799
  #
503
800
  # @option params [Time,DateTime,Date,Integer,String] :end_time
504
- # You must specify exactly two of the following parameters: `startTime`,
505
- # `period`, and `endTime`.
801
+ # The end time of the requested profile. Specify using the ISO 8601
802
+ # format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
803
+ # past June 1, 2020 1:15:02 PM UTC.
804
+ #
805
+ # If you specify `endTime`, then you must also specify `period` or
806
+ # `startTime`, but not both.
506
807
  #
507
808
  # @option params [Integer] :max_depth
508
- # The maximum depth of the graph.
809
+ # The maximum depth of the stacks in the code that is represented in the
810
+ # aggregated profile. For example, if CodeGuru Profiler finds a method
811
+ # `A`, which calls method `B`, which calls method `C`, which calls
812
+ # method `D`, then the depth is 4. If the `maxDepth` is set to 2, then
813
+ # the aggregated profile contains representations of methods `A` and
814
+ # `B`.
509
815
  #
510
816
  # @option params [String] :period
511
- # The period of the profile to get. The time range must be in the past
512
- # and not longer than one week.
817
+ # Used with `startTime` or `endTime` to specify the time range for the
818
+ # returned aggregated profile. Specify using the ISO 8601 format. For
819
+ # example, `P1DT1H1M1S`.
513
820
  #
514
- # You must specify exactly two of the following parameters: `startTime`,
515
- # `period`, and `endTime`.
821
+ # <p> To get the latest aggregated profile, specify only <code>period</code>. </p>
516
822
  #
517
823
  # @option params [required, String] :profiling_group_name
518
824
  # The name of the profiling group to get.
519
825
  #
520
826
  # @option params [Time,DateTime,Date,Integer,String] :start_time
521
- # The start time of the profile to get.
827
+ # The start time of the profile to get. Specify using the ISO 8601
828
+ # format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
829
+ # past June 1, 2020 1:15:02 PM UTC.
522
830
  #
523
- # You must specify exactly two of the following parameters: `startTime`,
524
- # `period`, and `endTime`.
831
+ # <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>
525
832
  #
526
833
  # @return [Types::GetProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
527
834
  #
@@ -555,7 +862,203 @@ module Aws::CodeGuruProfiler
555
862
  req.send_request(options)
556
863
  end
557
864
 
558
- # List the start times of the available aggregated profiles of a
865
+ # Returns a list of [ `Recommendation` ][1] objects that contain
866
+ # recommendations for a profiling group for a given time period. A list
867
+ # of [ `Anomaly` ][2] objects that contains details about anomalies
868
+ # detected in the profiling group for the same time period is also
869
+ # returned.
870
+ #
871
+ #
872
+ #
873
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html
874
+ # [2]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html
875
+ #
876
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
877
+ # The start time of the profile to get analysis data about. You must
878
+ # specify `startTime` and `endTime`. This is specified using the ISO
879
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
880
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
881
+ #
882
+ # @option params [String] :locale
883
+ # The language used to provide analysis. Specify using a string that is
884
+ # one of the following `BCP 47` language codes.
885
+ #
886
+ # * `de-DE` - German, Germany
887
+ #
888
+ # * `en-GB` - English, United Kingdom
889
+ #
890
+ # * `en-US` - English, United States
891
+ #
892
+ # * `es-ES` - Spanish, Spain
893
+ #
894
+ # * `fr-FR` - French, France
895
+ #
896
+ # * `it-IT` - Italian, Italy
897
+ #
898
+ # * `ja-JP` - Japanese, Japan
899
+ #
900
+ # * `ko-KR` - Korean, Republic of Korea
901
+ #
902
+ # * `pt-BR` - Portugese, Brazil
903
+ #
904
+ # * `zh-CN` - Chinese, China
905
+ #
906
+ # * `zh-TW` - Chinese, Taiwan
907
+ #
908
+ # @option params [required, String] :profiling_group_name
909
+ # The name of the profiling group to get analysis data about.
910
+ #
911
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
912
+ # The end time of the profile to get analysis data about. You must
913
+ # specify `startTime` and `endTime`. This is specified using the ISO
914
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
915
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
916
+ #
917
+ # @return [Types::GetRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
918
+ #
919
+ # * {Types::GetRecommendationsResponse#anomalies #anomalies} => Array&lt;Types::Anomaly&gt;
920
+ # * {Types::GetRecommendationsResponse#profile_end_time #profile_end_time} => Time
921
+ # * {Types::GetRecommendationsResponse#profile_start_time #profile_start_time} => Time
922
+ # * {Types::GetRecommendationsResponse#profiling_group_name #profiling_group_name} => String
923
+ # * {Types::GetRecommendationsResponse#recommendations #recommendations} => Array&lt;Types::Recommendation&gt;
924
+ #
925
+ # @example Request syntax with placeholder values
926
+ #
927
+ # resp = client.get_recommendations({
928
+ # end_time: Time.now, # required
929
+ # locale: "Locale",
930
+ # profiling_group_name: "ProfilingGroupName", # required
931
+ # start_time: Time.now, # required
932
+ # })
933
+ #
934
+ # @example Response structure
935
+ #
936
+ # resp.anomalies #=> Array
937
+ # resp.anomalies[0].instances #=> Array
938
+ # resp.anomalies[0].instances[0].end_time #=> Time
939
+ # resp.anomalies[0].instances[0].id #=> String
940
+ # resp.anomalies[0].instances[0].start_time #=> Time
941
+ # resp.anomalies[0].instances[0].user_feedback.type #=> String, one of "Negative", "Positive"
942
+ # resp.anomalies[0].metric.frame_name #=> String
943
+ # resp.anomalies[0].metric.thread_states #=> Array
944
+ # resp.anomalies[0].metric.thread_states[0] #=> String
945
+ # resp.anomalies[0].metric.type #=> String, one of "AggregatedRelativeTotalTime"
946
+ # resp.anomalies[0].reason #=> String
947
+ # resp.profile_end_time #=> Time
948
+ # resp.profile_start_time #=> Time
949
+ # resp.profiling_group_name #=> String
950
+ # resp.recommendations #=> Array
951
+ # resp.recommendations[0].all_matches_count #=> Integer
952
+ # resp.recommendations[0].all_matches_sum #=> Float
953
+ # resp.recommendations[0].end_time #=> Time
954
+ # resp.recommendations[0].pattern.counters_to_aggregate #=> Array
955
+ # resp.recommendations[0].pattern.counters_to_aggregate[0] #=> String
956
+ # resp.recommendations[0].pattern.description #=> String
957
+ # resp.recommendations[0].pattern.id #=> String
958
+ # resp.recommendations[0].pattern.name #=> String
959
+ # resp.recommendations[0].pattern.resolution_steps #=> String
960
+ # resp.recommendations[0].pattern.target_frames #=> Array
961
+ # resp.recommendations[0].pattern.target_frames[0] #=> Array
962
+ # resp.recommendations[0].pattern.target_frames[0][0] #=> String
963
+ # resp.recommendations[0].pattern.threshold_percent #=> Float
964
+ # resp.recommendations[0].start_time #=> Time
965
+ # resp.recommendations[0].top_matches #=> Array
966
+ # resp.recommendations[0].top_matches[0].frame_address #=> String
967
+ # resp.recommendations[0].top_matches[0].target_frames_index #=> Integer
968
+ # resp.recommendations[0].top_matches[0].threshold_breach_value #=> Float
969
+ #
970
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations AWS API Documentation
971
+ #
972
+ # @overload get_recommendations(params = {})
973
+ # @param [Hash] params ({})
974
+ def get_recommendations(params = {}, options = {})
975
+ req = build_request(:get_recommendations, params)
976
+ req.send_request(options)
977
+ end
978
+
979
+ # List the available reports for a given profiling group and time range.
980
+ #
981
+ # @option params [Boolean] :daily_reports_only
982
+ # A `Boolean` value indicating whether to only return reports from daily
983
+ # profiles. If set to `True`, only analysis data from daily profiles is
984
+ # returned. If set to `False`, analysis data is returned from smaller
985
+ # time windows (for example, one hour).
986
+ #
987
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
988
+ # The end time of the profile to get analysis data about. You must
989
+ # specify `startTime` and `endTime`. This is specified using the ISO
990
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
991
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
992
+ #
993
+ # @option params [Integer] :max_results
994
+ # The maximum number of report results returned by `ListFindingsReports`
995
+ # in paginated output. When this parameter is used,
996
+ # `ListFindingsReports` only returns `maxResults` results in a single
997
+ # page along with a `nextToken` response element. The remaining results
998
+ # of the initial request can be seen by sending another
999
+ # `ListFindingsReports` request with the returned `nextToken` value.
1000
+ #
1001
+ # @option params [String] :next_token
1002
+ # The `nextToken` value returned from a previous paginated
1003
+ # `ListFindingsReportsRequest` request where `maxResults` was used and
1004
+ # the results exceeded the value of that parameter. Pagination continues
1005
+ # from the end of the previous results that returned the `nextToken`
1006
+ # value.
1007
+ #
1008
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
1009
+ # to retrieve the next items in a list and not for other programmatic
1010
+ # purposes.
1011
+ #
1012
+ # </note>
1013
+ #
1014
+ # @option params [required, String] :profiling_group_name
1015
+ # The name of the profiling group from which to search for analysis
1016
+ # data.
1017
+ #
1018
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1019
+ # The start time of the profile to get analysis data about. You must
1020
+ # specify `startTime` and `endTime`. This is specified using the ISO
1021
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
1022
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
1023
+ #
1024
+ # @return [Types::ListFindingsReportsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1025
+ #
1026
+ # * {Types::ListFindingsReportsResponse#findings_report_summaries #findings_report_summaries} => Array&lt;Types::FindingsReportSummary&gt;
1027
+ # * {Types::ListFindingsReportsResponse#next_token #next_token} => String
1028
+ #
1029
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1030
+ #
1031
+ # @example Request syntax with placeholder values
1032
+ #
1033
+ # resp = client.list_findings_reports({
1034
+ # daily_reports_only: false,
1035
+ # end_time: Time.now, # required
1036
+ # max_results: 1,
1037
+ # next_token: "PaginationToken",
1038
+ # profiling_group_name: "ProfilingGroupName", # required
1039
+ # start_time: Time.now, # required
1040
+ # })
1041
+ #
1042
+ # @example Response structure
1043
+ #
1044
+ # resp.findings_report_summaries #=> Array
1045
+ # resp.findings_report_summaries[0].id #=> String
1046
+ # resp.findings_report_summaries[0].profile_end_time #=> Time
1047
+ # resp.findings_report_summaries[0].profile_start_time #=> Time
1048
+ # resp.findings_report_summaries[0].profiling_group_name #=> String
1049
+ # resp.findings_report_summaries[0].total_number_of_findings #=> Integer
1050
+ # resp.next_token #=> String
1051
+ #
1052
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports AWS API Documentation
1053
+ #
1054
+ # @overload list_findings_reports(params = {})
1055
+ # @param [Hash] params ({})
1056
+ def list_findings_reports(params = {}, options = {})
1057
+ req = build_request(:list_findings_reports, params)
1058
+ req.send_request(options)
1059
+ end
1060
+
1061
+ # Lists the start times of the available aggregated profiles of a
559
1062
  # profiling group for an aggregation period within the specified time
560
1063
  # range.
561
1064
  #
@@ -587,7 +1090,15 @@ module Aws::CodeGuruProfiler
587
1090
  # use when listing profiles. Defaults to `TIMESTAMP_DESCENDING`.
588
1091
  #
589
1092
  # @option params [required, String] :period
590
- # The aggregation period.
1093
+ # The aggregation period. This specifies the period during which an
1094
+ # aggregation profile collects posted agent profiles for a profiling
1095
+ # group. There are 3 valid values.
1096
+ #
1097
+ # * `P1D` — 1 day
1098
+ #
1099
+ # * `PT1H` — 1 hour
1100
+ #
1101
+ # * `PT5M` — 5 minutes
591
1102
  #
592
1103
  # @option params [required, String] :profiling_group_name
593
1104
  # The name of the profiling group.
@@ -629,10 +1140,22 @@ module Aws::CodeGuruProfiler
629
1140
  req.send_request(options)
630
1141
  end
631
1142
 
632
- # Lists profiling groups.
1143
+ # Returns a list of profiling groups. The profiling groups are returned
1144
+ # as [ `ProfilingGroupDescription` ][1] objects.
1145
+ #
1146
+ #
1147
+ #
1148
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
633
1149
  #
634
1150
  # @option params [Boolean] :include_description
635
- # A Boolean value indicating whether to include a description.
1151
+ # A `Boolean` value indicating whether to include a description. If
1152
+ # `true`, then a list of [ `ProfilingGroupDescription` ][1] objects that
1153
+ # contain detailed information about profiling groups is returned. If
1154
+ # `false`, then a list of profiling group names is returned.
1155
+ #
1156
+ #
1157
+ #
1158
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
636
1159
  #
637
1160
  # @option params [Integer] :max_results
638
1161
  # The maximum number of profiling groups results returned by
@@ -679,6 +1202,7 @@ module Aws::CodeGuruProfiler
679
1202
  # resp.profiling_groups #=> Array
680
1203
  # resp.profiling_groups[0].agent_orchestration_config.profiling_enabled #=> Boolean
681
1204
  # resp.profiling_groups[0].arn #=> String
1205
+ # resp.profiling_groups[0].compute_platform #=> String, one of "AWSLambda", "Default"
682
1206
  # resp.profiling_groups[0].created_at #=> Time
683
1207
  # resp.profiling_groups[0].name #=> String
684
1208
  # resp.profiling_groups[0].profiling_status.latest_agent_orchestrated_at #=> Time
@@ -696,15 +1220,35 @@ module Aws::CodeGuruProfiler
696
1220
  req.send_request(options)
697
1221
  end
698
1222
 
1223
+ # Submits profiling data to an aggregated profile of a profiling group.
1224
+ # To get an aggregated profile that is created with this profiling data,
1225
+ # use [ `GetProfile` ][1].
1226
+ #
1227
+ #
1228
+ #
1229
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html
1230
+ #
699
1231
  # @option params [required, String, IO] :agent_profile
1232
+ # The submitted profiling data.
700
1233
  #
701
1234
  # @option params [required, String] :content_type
1235
+ # The format of the submitted profiling data. The format maps to the
1236
+ # `Accept` and `Content-Type` headers of the HTTP request. You can
1237
+ # specify one of the following: or the default .
1238
+ #
1239
+ # <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>
702
1240
  #
703
1241
  # @option params [String] :profile_token
1242
+ # Amazon CodeGuru Profiler uses this universally unique identifier
1243
+ # (UUID) to prevent the accidental submission of duplicate profiling
1244
+ # data if there are failures and retries.
1245
+ #
704
1246
  # **A suitable default value is auto-generated.** You should normally
705
1247
  # not need to pass this option.**
706
1248
  #
707
1249
  # @option params [required, String] :profiling_group_name
1250
+ # The name of the profiling group with the aggregated profile that
1251
+ # receives the submitted profiling data.
708
1252
  #
709
1253
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
710
1254
  #
@@ -726,24 +1270,34 @@ module Aws::CodeGuruProfiler
726
1270
  req.send_request(options)
727
1271
  end
728
1272
 
729
- # Provides permission to the principals. This overwrites the existing
730
- # permissions, and is not additive.
1273
+ # Adds permissions to a profiling group's resource-based policy that
1274
+ # are provided using an action group. If a profiling group doesn't have
1275
+ # a resource-based policy, one is created for it using the permissions
1276
+ # in the action group and the roles and users in the `principals`
1277
+ # parameter.
1278
+ #
1279
+ # <p> The one supported action group that can be added is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code> on a profiling group, do not specify a <code>revisionId</code> because it doesn't have a resource-based policy. Subsequent calls must provide a <code>revisionId</code> to specify which revision of the resource-based policy to add the permissions to. </p> <p> The response contains the profiling group's JSON-formatted resource policy. </p>
731
1280
  #
732
1281
  # @option params [required, String] :action_group
733
- # The list of actions that the users and roles can perform on the
734
- # profiling group.
1282
+ # Specifies an action group that contains permissions to add to a
1283
+ # profiling group resource. One action group is supported,
1284
+ # `agentPermissions`, which grants permission to perform actions
1285
+ # required by the profiling agent, `ConfigureAgent` and
1286
+ # `PostAgentProfile` permissions.
735
1287
  #
736
1288
  # @option params [required, Array<String>] :principals
737
- # The list of role and user ARNs or the accountId that needs access
738
- # (wildcards are not allowed).
1289
+ # A list ARNs for the roles and users you want to grant access to the
1290
+ # profiling group. Wildcards are not are supported in the ARNs.
739
1291
  #
740
1292
  # @option params [required, String] :profiling_group_name
741
- # The name of the profiling group.
1293
+ # The name of the profiling group to grant access to.
742
1294
  #
743
1295
  # @option params [String] :revision_id
744
- # A unique identifier for the current revision of the policy. This is
745
- # required, if a policy exists for the profiling group. This is not
746
- # required when creating the policy for the first time.
1296
+ # A universally unique identifier (UUID) for the revision of the policy
1297
+ # you are adding to the profiling group. Do not specify this when you
1298
+ # add permissions to a profiling group for the first time. If a policy
1299
+ # already exists on the profiling group, you must specify the
1300
+ # `revisionId`.
747
1301
  #
748
1302
  # @return [Types::PutPermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
749
1303
  #
@@ -773,17 +1327,69 @@ module Aws::CodeGuruProfiler
773
1327
  req.send_request(options)
774
1328
  end
775
1329
 
776
- # Removes statement for the provided action group from the policy.
1330
+ # Remove one anomaly notifications channel for a profiling group.
1331
+ #
1332
+ # @option params [required, String] :channel_id
1333
+ # The id of the channel that we want to stop receiving notifications.
1334
+ #
1335
+ # @option params [required, String] :profiling_group_name
1336
+ # The name of the profiling group we want to change notification
1337
+ # configuration for.
1338
+ #
1339
+ # @return [Types::RemoveNotificationChannelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1340
+ #
1341
+ # * {Types::RemoveNotificationChannelResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
1342
+ #
1343
+ # @example Request syntax with placeholder values
1344
+ #
1345
+ # resp = client.remove_notification_channel({
1346
+ # channel_id: "ChannelId", # required
1347
+ # profiling_group_name: "ProfilingGroupName", # required
1348
+ # })
1349
+ #
1350
+ # @example Response structure
1351
+ #
1352
+ # resp.notification_configuration.channels #=> Array
1353
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
1354
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
1355
+ # resp.notification_configuration.channels[0].id #=> String
1356
+ # resp.notification_configuration.channels[0].uri #=> String
1357
+ #
1358
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel AWS API Documentation
1359
+ #
1360
+ # @overload remove_notification_channel(params = {})
1361
+ # @param [Hash] params ({})
1362
+ def remove_notification_channel(params = {}, options = {})
1363
+ req = build_request(:remove_notification_channel, params)
1364
+ req.send_request(options)
1365
+ end
1366
+
1367
+ # Removes permissions from a profiling group's resource-based policy
1368
+ # that are provided using an action group. The one supported action
1369
+ # group that can be removed is `agentPermission` which grants
1370
+ # `ConfigureAgent` and `PostAgent` permissions. For more information,
1371
+ # see [Resource-based policies in CodeGuru Profiler][1] in the *Amazon
1372
+ # CodeGuru Profiler User Guide*, [ `ConfigureAgent` ][2], and [
1373
+ # `PostAgentProfile` ][3].
1374
+ #
1375
+ #
1376
+ #
1377
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html
1378
+ # [2]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html
1379
+ # [3]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html
777
1380
  #
778
1381
  # @option params [required, String] :action_group
779
- # The list of actions that the users and roles can perform on the
780
- # profiling group.
1382
+ # Specifies an action group that contains the permissions to remove from
1383
+ # a profiling group's resource-based policy. One action group is
1384
+ # supported, `agentPermissions`, which grants `ConfigureAgent` and
1385
+ # `PostAgentProfile` permissions.
781
1386
  #
782
1387
  # @option params [required, String] :profiling_group_name
783
1388
  # The name of the profiling group.
784
1389
  #
785
1390
  # @option params [required, String] :revision_id
786
- # A unique identifier for the current revision of the policy.
1391
+ # A universally unique identifier (UUID) for the revision of the
1392
+ # resource-based policy from which you want to remove permissions.
787
1393
  #
788
1394
  # @return [Types::RemovePermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
789
1395
  #
@@ -812,9 +1418,53 @@ module Aws::CodeGuruProfiler
812
1418
  req.send_request(options)
813
1419
  end
814
1420
 
1421
+ # Sends feedback to CodeGuru Profiler about whether the anomaly detected
1422
+ # by the analysis is useful or not.
1423
+ #
1424
+ # @option params [required, String] :anomaly_instance_id
1425
+ # The universally unique identifier (UUID) of the [ `AnomalyInstance`
1426
+ # ][1] object that is included in the analysis data.
1427
+ #
1428
+ #
1429
+ #
1430
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html
1431
+ #
1432
+ # @option params [String] :comment
1433
+ # Optional feedback about this anomaly.
1434
+ #
1435
+ # @option params [required, String] :profiling_group_name
1436
+ # The name of the profiling group that is associated with the analysis
1437
+ # data.
1438
+ #
1439
+ # @option params [required, String] :type
1440
+ # The feedback tpye. Thee are two valid values, `Positive` and
1441
+ # `Negative`.
1442
+ #
1443
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1444
+ #
1445
+ # @example Request syntax with placeholder values
1446
+ #
1447
+ # resp = client.submit_feedback({
1448
+ # anomaly_instance_id: "AnomalyInstanceId", # required
1449
+ # comment: "String",
1450
+ # profiling_group_name: "ProfilingGroupName", # required
1451
+ # type: "Negative", # required, accepts Negative, Positive
1452
+ # })
1453
+ #
1454
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback AWS API Documentation
1455
+ #
1456
+ # @overload submit_feedback(params = {})
1457
+ # @param [Hash] params ({})
1458
+ def submit_feedback(params = {}, options = {})
1459
+ req = build_request(:submit_feedback, params)
1460
+ req.send_request(options)
1461
+ end
1462
+
815
1463
  # Updates a profiling group.
816
1464
  #
817
1465
  # @option params [required, Types::AgentOrchestrationConfig] :agent_orchestration_config
1466
+ # Specifies whether profiling is enabled or disabled for a profiling
1467
+ # group.
818
1468
  #
819
1469
  # @option params [required, String] :profiling_group_name
820
1470
  # The name of the profiling group to update.
@@ -836,6 +1486,7 @@ module Aws::CodeGuruProfiler
836
1486
  #
837
1487
  # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
838
1488
  # resp.profiling_group.arn #=> String
1489
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
839
1490
  # resp.profiling_group.created_at #=> Time
840
1491
  # resp.profiling_group.name #=> String
841
1492
  # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
@@ -866,7 +1517,7 @@ module Aws::CodeGuruProfiler
866
1517
  params: params,
867
1518
  config: config)
868
1519
  context[:gem_name] = 'aws-sdk-codeguruprofiler'
869
- context[:gem_version] = '1.7.0'
1520
+ context[:gem_version] = '1.8.0'
870
1521
  Seahorse::Client::Request.new(handlers, context)
871
1522
  end
872
1523