aws-sdk-codeguruprofiler 1.6.1 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 980fc4e18c74a9f84e0061f7b7e091a387810fd8e0d65ef419bf2f7f3ab6e290
4
- data.tar.gz: '04239e618a8040610f390df60dd20e44f896bc7227954acb8e69d35bc2a65840'
3
+ metadata.gz: d7ff2708ca01095868efb8e1b3a5ba8810f62e84f0f75e7e9c044efe70e07f36
4
+ data.tar.gz: a2129076ba60070b52f25cefccc765b7026bc268c9856fab8e1d8c83a9e95773
5
5
  SHA512:
6
- metadata.gz: 371cef5e8376579df7f55dad8f3418ec23fb5571fa33bd722b2ca81f17bfc9bf621c492fb2651a905ab047e0b1bd7be529e0b2c1fa61418f81963e6a5e47306d
7
- data.tar.gz: cc3b2e056d06156f6eb212dbc0879f1e799fee4c5a38525a75f75328de80d5eed9d609bbfe1bbc750631071f9e5f739082fb191d7353ebe18af4be4bd3063b07
6
+ metadata.gz: 566f95552bce77c57148645adf05f05040c8e0f3fe856ac9096e23224ce354e105b1c72dc5e8736df64c68ee716788d4883c4c0389c8e41995eb099c0d761997
7
+ data.tar.gz: 0e12065488d2732a8395acc0f3e995c5670d38c6bfc2a99e49ff7d0a8a84c659afb253cb60722454a84af61ae78c3fe59ae5f75c592d57ef55a731670dd93ab0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -5,6 +7,7 @@
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
10
+
8
11
  require 'aws-sdk-core'
9
12
  require 'aws-sigv4'
10
13
 
@@ -25,7 +28,7 @@ require_relative 'aws-sdk-codeguruprofiler/customizations'
25
28
  # structure.
26
29
  #
27
30
  # code_guru_profiler = Aws::CodeGuruProfiler::Client.new
28
- # resp = code_guru_profiler.configure_agent(params)
31
+ # resp = code_guru_profiler.add_notification_channels(params)
29
32
  #
30
33
  # See {Client} for more information.
31
34
  #
@@ -42,9 +45,9 @@ require_relative 'aws-sdk-codeguruprofiler/customizations'
42
45
  #
43
46
  # See {Errors} for more information.
44
47
  #
45
- # @service
48
+ # @!group service
46
49
  module Aws::CodeGuruProfiler
47
50
 
48
- GEM_VERSION = '1.6.1'
51
+ GEM_VERSION = '1.11.0'
49
52
 
50
53
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -83,13 +85,28 @@ module Aws::CodeGuruProfiler
83
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
84
86
  # credentials.
85
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
86
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
87
103
  # from an EC2 IMDS on an EC2 instance.
88
104
  #
89
- # * `Aws::SharedCredentials` - Used for loading credentials from a
90
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
91
107
  #
92
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
93
110
  #
94
111
  # When `:credentials` are not configured directly, the following
95
112
  # locations will be searched for credentials:
@@ -99,10 +116,10 @@ module Aws::CodeGuruProfiler
99
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
100
117
  # * `~/.aws/credentials`
101
118
  # * `~/.aws/config`
102
- # * EC2 IMDS instance profile - When used by default, the timeouts are
103
- # very aggressive. Construct and pass an instance of
104
- # `Aws::InstanceProfileCredentails` to enable retries and extended
105
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
106
123
  #
107
124
  # @option options [required, String] :region
108
125
  # The AWS region to connect to. The configured `:region` is
@@ -310,9 +327,189 @@ module Aws::CodeGuruProfiler
310
327
 
311
328
  # @!group API Operations
312
329
 
330
+ # Add up to 2 anomaly notifications channels for a profiling group.
331
+ #
332
+ # @option params [required, Array<Types::Channel>] :channels
333
+ # One or 2 channels to report to when anomalies are detected.
334
+ #
335
+ # @option params [required, String] :profiling_group_name
336
+ # The name of the profiling group that we are setting up notifications
337
+ # for.
338
+ #
339
+ # @return [Types::AddNotificationChannelsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
340
+ #
341
+ # * {Types::AddNotificationChannelsResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
342
+ #
343
+ # @example Request syntax with placeholder values
344
+ #
345
+ # resp = client.add_notification_channels({
346
+ # channels: [ # required
347
+ # {
348
+ # event_publishers: ["AnomalyDetection"], # required, accepts AnomalyDetection
349
+ # id: "ChannelId",
350
+ # uri: "ChannelUri", # required
351
+ # },
352
+ # ],
353
+ # profiling_group_name: "ProfilingGroupName", # required
354
+ # })
355
+ #
356
+ # @example Response structure
357
+ #
358
+ # resp.notification_configuration.channels #=> Array
359
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
360
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
361
+ # resp.notification_configuration.channels[0].id #=> String
362
+ # resp.notification_configuration.channels[0].uri #=> String
363
+ #
364
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/AddNotificationChannels AWS API Documentation
365
+ #
366
+ # @overload add_notification_channels(params = {})
367
+ # @param [Hash] params ({})
368
+ def add_notification_channels(params = {}, options = {})
369
+ req = build_request(:add_notification_channels, params)
370
+ req.send_request(options)
371
+ end
372
+
373
+ # Returns the time series of values for a requested list of frame
374
+ # metrics from a time period.
375
+ #
376
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
377
+ # The end time of the time period for the returned time series values.
378
+ # This is specified using the ISO 8601 format. For example,
379
+ # 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020
380
+ # 1:15:02 PM UTC.
381
+ #
382
+ # @option params [Array<Types::FrameMetric>] :frame_metrics
383
+ # The details of the metrics that are used to request a time series of
384
+ # values. The metric includes the name of the frame, the aggregation
385
+ # type to calculate the metric value for the frame, and the thread
386
+ # states to use to get the count for the metric value of the frame.
387
+ #
388
+ # @option params [String] :period
389
+ # The duration of the frame metrics used to return the time series
390
+ # values. Specify using the ISO 8601 format. The maximum period duration
391
+ # is one day (`PT24H` or `P1D`).
392
+ #
393
+ # @option params [required, String] :profiling_group_name
394
+ # The name of the profiling group associated with the the frame metrics
395
+ # used to return the time series values.
396
+ #
397
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
398
+ # The start time of the time period for the frame metrics used to return
399
+ # the time series values. This is specified using the ISO 8601 format.
400
+ # For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past
401
+ # June 1, 2020 1:15:02 PM UTC.
402
+ #
403
+ # @option params [String] :target_resolution
404
+ # The requested resolution of time steps for the returned time series of
405
+ # values. If the requested target resolution is not available due to
406
+ # data not being retained we provide a best effort result by falling
407
+ # back to the most granular available resolution after the target
408
+ # resolution. There are 3 valid values.
409
+ #
410
+ # * `P1D` — 1 day
411
+ #
412
+ # * `PT1H` — 1 hour
413
+ #
414
+ # * `PT5M` — 5 minutes
415
+ #
416
+ # @return [Types::BatchGetFrameMetricDataResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
417
+ #
418
+ # * {Types::BatchGetFrameMetricDataResponse#end_time #end_time} => Time
419
+ # * {Types::BatchGetFrameMetricDataResponse#end_times #end_times} => Array&lt;Types::TimestampStructure&gt;
420
+ # * {Types::BatchGetFrameMetricDataResponse#frame_metric_data #frame_metric_data} => Array&lt;Types::FrameMetricDatum&gt;
421
+ # * {Types::BatchGetFrameMetricDataResponse#resolution #resolution} => String
422
+ # * {Types::BatchGetFrameMetricDataResponse#start_time #start_time} => Time
423
+ # * {Types::BatchGetFrameMetricDataResponse#unprocessed_end_times #unprocessed_end_times} => Hash&lt;String,Array&lt;Types::TimestampStructure&gt;&gt;
424
+ #
425
+ # @example Request syntax with placeholder values
426
+ #
427
+ # resp = client.batch_get_frame_metric_data({
428
+ # end_time: Time.now,
429
+ # frame_metrics: [
430
+ # {
431
+ # frame_name: "String", # required
432
+ # thread_states: ["String"], # required
433
+ # type: "AggregatedRelativeTotalTime", # required, accepts AggregatedRelativeTotalTime
434
+ # },
435
+ # ],
436
+ # period: "Period",
437
+ # profiling_group_name: "ProfilingGroupName", # required
438
+ # start_time: Time.now,
439
+ # target_resolution: "P1D", # accepts P1D, PT1H, PT5M
440
+ # })
441
+ #
442
+ # @example Response structure
443
+ #
444
+ # resp.end_time #=> Time
445
+ # resp.end_times #=> Array
446
+ # resp.end_times[0].value #=> Time
447
+ # resp.frame_metric_data #=> Array
448
+ # resp.frame_metric_data[0].frame_metric.frame_name #=> String
449
+ # resp.frame_metric_data[0].frame_metric.thread_states #=> Array
450
+ # resp.frame_metric_data[0].frame_metric.thread_states[0] #=> String
451
+ # resp.frame_metric_data[0].frame_metric.type #=> String, one of "AggregatedRelativeTotalTime"
452
+ # resp.frame_metric_data[0].values #=> Array
453
+ # resp.frame_metric_data[0].values[0] #=> Float
454
+ # resp.resolution #=> String, one of "P1D", "PT1H", "PT5M"
455
+ # resp.start_time #=> Time
456
+ # resp.unprocessed_end_times #=> Hash
457
+ # resp.unprocessed_end_times["String"] #=> Array
458
+ # resp.unprocessed_end_times["String"][0].value #=> Time
459
+ #
460
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData AWS API Documentation
461
+ #
462
+ # @overload batch_get_frame_metric_data(params = {})
463
+ # @param [Hash] params ({})
464
+ def batch_get_frame_metric_data(params = {}, options = {})
465
+ req = build_request(:batch_get_frame_metric_data, params)
466
+ req.send_request(options)
467
+ end
468
+
469
+ # Used by profiler agents to report their current state and to receive
470
+ # remote configuration updates. For example, `ConfigureAgent` can be
471
+ # used to tell and agent whether to profile or not and for how long to
472
+ # return profiling data.
473
+ #
313
474
  # @option params [String] :fleet_instance_id
475
+ # A universally unique identifier (UUID) for a profiling instance. For
476
+ # example, if the profiling instance is an Amazon EC2 instance, it is
477
+ # the instance ID. If it is an AWS Fargate container, it is the
478
+ # container's task ID.
479
+ #
480
+ # @option params [Hash<String,String>] :metadata
481
+ # Metadata captured about the compute platform the agent is running on.
482
+ # It includes information about sampling and reporting. The valid fields
483
+ # are:
484
+ #
485
+ # * `COMPUTE_PLATFORM` - The compute platform on which the agent is
486
+ # running
487
+ #
488
+ # * `AGENT_ID` - The ID for an agent instance.
489
+ #
490
+ # * `AWS_REQUEST_ID` - The AWS request ID of a Lambda invocation.
491
+ #
492
+ # * `EXECUTION_ENVIRONMENT` - The execution environment a Lambda
493
+ # function is running on.
494
+ #
495
+ # * `LAMBDA_FUNCTION_ARN` - The Amazon Resource Name (ARN) that is used
496
+ # to invoke a Lambda function.
497
+ #
498
+ # * `LAMBDA_MEMORY_LIMIT_IN_MB` - The memory allocated to a Lambda
499
+ # function.
500
+ #
501
+ # * `LAMBDA_REMAINING_TIME_IN_MILLISECONDS` - The time in milliseconds
502
+ # before execution of a Lambda function times out.
503
+ #
504
+ # * `LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS` - The time in
505
+ # milliseconds between two invocations of a Lambda function.
506
+ #
507
+ # * `LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS` - The time in
508
+ # milliseconds for the previous Lambda invocation.
314
509
  #
315
510
  # @option params [required, String] :profiling_group_name
511
+ # The name of the profiling group for which the configured agent is
512
+ # collecting profiling data.
316
513
  #
317
514
  # @return [Types::ConfigureAgentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
318
515
  #
@@ -322,11 +519,16 @@ module Aws::CodeGuruProfiler
322
519
  #
323
520
  # resp = client.configure_agent({
324
521
  # fleet_instance_id: "FleetInstanceId",
522
+ # metadata: {
523
+ # "AgentId" => "String",
524
+ # },
325
525
  # profiling_group_name: "ProfilingGroupName", # required
326
526
  # })
327
527
  #
328
528
  # @example Response structure
329
529
  #
530
+ # resp.configuration.agent_parameters #=> Hash
531
+ # resp.configuration.agent_parameters["AgentParameterField"] #=> String
330
532
  # resp.configuration.period_in_seconds #=> Integer
331
533
  # resp.configuration.should_profile #=> Boolean
332
534
  #
@@ -342,20 +544,29 @@ module Aws::CodeGuruProfiler
342
544
  # Creates a profiling group.
343
545
  #
344
546
  # @option params [Types::AgentOrchestrationConfig] :agent_orchestration_config
345
- # The agent orchestration configuration.
547
+ # Specifies whether profiling is enabled or disabled for the created
548
+ # profiling group.
346
549
  #
347
550
  # @option params [required, String] :client_token
348
- # Unique, case-sensitive identifier that you provide to ensure the
349
- # idempotency of the request.
350
- #
351
- # This parameter specifies a unique identifier for the new profiling
352
- # group that helps ensure idempotency.
551
+ # Amazon CodeGuru Profiler uses this universally unique identifier
552
+ # (UUID) to prevent the accidental creation of duplicate profiling
553
+ # groups if there are failures and retries.
353
554
  #
354
555
  # **A suitable default value is auto-generated.** You should normally
355
556
  # not need to pass this option.**
356
557
  #
558
+ # @option params [String] :compute_platform
559
+ # The compute platform of the profiling group. Use `AWSLambda` if your
560
+ # application runs on AWS Lambda. Use `Default` if your application runs
561
+ # on a compute platform that is not AWS Lambda, such an Amazon EC2
562
+ # instance, an on-premises server, or a different platform. If not
563
+ # specified, `Default` is used.
564
+ #
357
565
  # @option params [required, String] :profiling_group_name
358
- # The name of the profiling group.
566
+ # The name of the profiling group to create.
567
+ #
568
+ # @option params [Hash<String,String>] :tags
569
+ # A list of tags to add to the created profiling group.
359
570
  #
360
571
  # @return [Types::CreateProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
361
572
  #
@@ -368,19 +579,26 @@ module Aws::CodeGuruProfiler
368
579
  # profiling_enabled: false, # required
369
580
  # },
370
581
  # client_token: "ClientToken", # required
582
+ # compute_platform: "AWSLambda", # accepts AWSLambda, Default
371
583
  # profiling_group_name: "ProfilingGroupName", # required
584
+ # tags: {
585
+ # "String" => "String",
586
+ # },
372
587
  # })
373
588
  #
374
589
  # @example Response structure
375
590
  #
376
591
  # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
377
592
  # resp.profiling_group.arn #=> String
593
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
378
594
  # resp.profiling_group.created_at #=> Time
379
595
  # resp.profiling_group.name #=> String
380
596
  # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
381
597
  # resp.profiling_group.profiling_status.latest_agent_profile_reported_at #=> Time
382
598
  # resp.profiling_group.profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
383
599
  # resp.profiling_group.profiling_status.latest_aggregated_profile.start #=> Time
600
+ # resp.profiling_group.tags #=> Hash
601
+ # resp.profiling_group.tags["String"] #=> String
384
602
  # resp.profiling_group.updated_at #=> Time
385
603
  #
386
604
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/CreateProfilingGroup AWS API Documentation
@@ -395,7 +613,7 @@ module Aws::CodeGuruProfiler
395
613
  # Deletes a profiling group.
396
614
  #
397
615
  # @option params [required, String] :profiling_group_name
398
- # The profiling group name to delete.
616
+ # The name of the profiling group to delete.
399
617
  #
400
618
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
401
619
  #
@@ -414,10 +632,15 @@ module Aws::CodeGuruProfiler
414
632
  req.send_request(options)
415
633
  end
416
634
 
417
- # Describes a profiling group.
635
+ # Returns a [ `ProfilingGroupDescription` ][1] object that contains
636
+ # information about the requested profiling group.
637
+ #
638
+ #
639
+ #
640
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
418
641
  #
419
642
  # @option params [required, String] :profiling_group_name
420
- # The profiling group name.
643
+ # The name of the profiling group to get information about.
421
644
  #
422
645
  # @return [Types::DescribeProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
423
646
  #
@@ -433,12 +656,15 @@ module Aws::CodeGuruProfiler
433
656
  #
434
657
  # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
435
658
  # resp.profiling_group.arn #=> String
659
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
436
660
  # resp.profiling_group.created_at #=> Time
437
661
  # resp.profiling_group.name #=> String
438
662
  # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
439
663
  # resp.profiling_group.profiling_status.latest_agent_profile_reported_at #=> Time
440
664
  # resp.profiling_group.profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
441
665
  # resp.profiling_group.profiling_status.latest_aggregated_profile.start #=> Time
666
+ # resp.profiling_group.tags #=> Hash
667
+ # resp.profiling_group.tags["String"] #=> String
442
668
  # resp.profiling_group.updated_at #=> Time
443
669
  #
444
670
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DescribeProfilingGroup AWS API Documentation
@@ -450,7 +676,110 @@ module Aws::CodeGuruProfiler
450
676
  req.send_request(options)
451
677
  end
452
678
 
453
- # Gets the profiling group policy.
679
+ # Returns a list of [ `FindingsReportSummary` ][1] objects that contain
680
+ # analysis results for all profiling groups in your AWS account.
681
+ #
682
+ #
683
+ #
684
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html
685
+ #
686
+ # @option params [Boolean] :daily_reports_only
687
+ # A `Boolean` value indicating whether to only return reports from daily
688
+ # profiles. If set to `True`, only analysis data from daily profiles is
689
+ # returned. If set to `False`, analysis data is returned from smaller
690
+ # time windows (for example, one hour).
691
+ #
692
+ # @option params [Integer] :max_results
693
+ # The maximum number of results returned by `
694
+ # GetFindingsReportAccountSummary` in paginated output. When this
695
+ # parameter is used, `GetFindingsReportAccountSummary` only returns
696
+ # `maxResults` results in a single page along with a `nextToken`
697
+ # response element. The remaining results of the initial request can be
698
+ # seen by sending another `GetFindingsReportAccountSummary` request with
699
+ # the returned `nextToken` value.
700
+ #
701
+ # @option params [String] :next_token
702
+ # The `nextToken` value returned from a previous paginated
703
+ # `GetFindingsReportAccountSummary` request where `maxResults` was used
704
+ # and the results exceeded the value of that parameter. Pagination
705
+ # continues from the end of the previous results that returned the
706
+ # `nextToken` value.
707
+ #
708
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
709
+ # to retrieve the next items in a list and not for other programmatic
710
+ # purposes.
711
+ #
712
+ # </note>
713
+ #
714
+ # @return [Types::GetFindingsReportAccountSummaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
715
+ #
716
+ # * {Types::GetFindingsReportAccountSummaryResponse#next_token #next_token} => String
717
+ # * {Types::GetFindingsReportAccountSummaryResponse#report_summaries #report_summaries} => Array&lt;Types::FindingsReportSummary&gt;
718
+ #
719
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
720
+ #
721
+ # @example Request syntax with placeholder values
722
+ #
723
+ # resp = client.get_findings_report_account_summary({
724
+ # daily_reports_only: false,
725
+ # max_results: 1,
726
+ # next_token: "PaginationToken",
727
+ # })
728
+ #
729
+ # @example Response structure
730
+ #
731
+ # resp.next_token #=> String
732
+ # resp.report_summaries #=> Array
733
+ # resp.report_summaries[0].id #=> String
734
+ # resp.report_summaries[0].profile_end_time #=> Time
735
+ # resp.report_summaries[0].profile_start_time #=> Time
736
+ # resp.report_summaries[0].profiling_group_name #=> String
737
+ # resp.report_summaries[0].total_number_of_findings #=> Integer
738
+ #
739
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary AWS API Documentation
740
+ #
741
+ # @overload get_findings_report_account_summary(params = {})
742
+ # @param [Hash] params ({})
743
+ def get_findings_report_account_summary(params = {}, options = {})
744
+ req = build_request(:get_findings_report_account_summary, params)
745
+ req.send_request(options)
746
+ end
747
+
748
+ # Get the current configuration for anomaly notifications for a
749
+ # profiling group.
750
+ #
751
+ # @option params [required, String] :profiling_group_name
752
+ # The name of the profiling group we want to get the notification
753
+ # configuration for.
754
+ #
755
+ # @return [Types::GetNotificationConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
756
+ #
757
+ # * {Types::GetNotificationConfigurationResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
758
+ #
759
+ # @example Request syntax with placeholder values
760
+ #
761
+ # resp = client.get_notification_configuration({
762
+ # profiling_group_name: "ProfilingGroupName", # required
763
+ # })
764
+ #
765
+ # @example Response structure
766
+ #
767
+ # resp.notification_configuration.channels #=> Array
768
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
769
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
770
+ # resp.notification_configuration.channels[0].id #=> String
771
+ # resp.notification_configuration.channels[0].uri #=> String
772
+ #
773
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration AWS API Documentation
774
+ #
775
+ # @overload get_notification_configuration(params = {})
776
+ # @param [Hash] params ({})
777
+ def get_notification_configuration(params = {}, options = {})
778
+ req = build_request(:get_notification_configuration, params)
779
+ req.send_request(options)
780
+ end
781
+
782
+ # Returns the JSON-formatted resource-based policy on a profiling group.
454
783
  #
455
784
  # @option params [required, String] :profiling_group_name
456
785
  # The name of the profiling group.
@@ -480,46 +809,51 @@ module Aws::CodeGuruProfiler
480
809
  req.send_request(options)
481
810
  end
482
811
 
483
- # Gets the aggregated profile of a profiling group for the specified
484
- # time range. If the requested time range does not align with the
485
- # available aggregated profiles, it is expanded to attain alignment. If
486
- # aggregated profiles are available only for part of the period
487
- # requested, the profile is returned from the earliest available to the
488
- # latest within the requested time range.
489
- #
490
- # For example, if the requested time range is from 00:00 to 00:20 and
491
- # the available profiles are from 00:15 to 00:25, the returned profile
492
- # will be from 00:15 to 00:20.
812
+ # Gets the aggregated profile of a profiling group for a specified time
813
+ # range. Amazon CodeGuru Profiler collects posted agent profiles for a
814
+ # profiling group into aggregated profiles.
493
815
  #
494
- # You must specify exactly two of the following parameters: `startTime`,
495
- # `period`, and `endTime`.
816
+ # <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>
496
817
  #
497
818
  # @option params [String] :accept
498
- # The format of the profile to return. You can choose `application/json`
499
- # or the default `application/x-amzn-ion`.
819
+ # The format of the returned profiling data. The format maps to the
820
+ # `Accept` and `Content-Type` headers of the HTTP request. You can
821
+ # specify one of the following: or the default .
822
+ #
823
+ # <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>
500
824
  #
501
825
  # @option params [Time,DateTime,Date,Integer,String] :end_time
502
- # You must specify exactly two of the following parameters: `startTime`,
503
- # `period`, and `endTime`.
826
+ # The end time of the requested profile. Specify using the ISO 8601
827
+ # format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
828
+ # past June 1, 2020 1:15:02 PM UTC.
829
+ #
830
+ # If you specify `endTime`, then you must also specify `period` or
831
+ # `startTime`, but not both.
504
832
  #
505
833
  # @option params [Integer] :max_depth
506
- # The maximum depth of the graph.
834
+ # The maximum depth of the stacks in the code that is represented in the
835
+ # aggregated profile. For example, if CodeGuru Profiler finds a method
836
+ # `A`, which calls method `B`, which calls method `C`, which calls
837
+ # method `D`, then the depth is 4. If the `maxDepth` is set to 2, then
838
+ # the aggregated profile contains representations of methods `A` and
839
+ # `B`.
507
840
  #
508
841
  # @option params [String] :period
509
- # The period of the profile to get. The time range must be in the past
510
- # and not longer than one week.
842
+ # Used with `startTime` or `endTime` to specify the time range for the
843
+ # returned aggregated profile. Specify using the ISO 8601 format. For
844
+ # example, `P1DT1H1M1S`.
511
845
  #
512
- # You must specify exactly two of the following parameters: `startTime`,
513
- # `period`, and `endTime`.
846
+ # <p> To get the latest aggregated profile, specify only <code>period</code>. </p>
514
847
  #
515
848
  # @option params [required, String] :profiling_group_name
516
849
  # The name of the profiling group to get.
517
850
  #
518
851
  # @option params [Time,DateTime,Date,Integer,String] :start_time
519
- # The start time of the profile to get.
852
+ # The start time of the profile to get. Specify using the ISO 8601
853
+ # format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
854
+ # past June 1, 2020 1:15:02 PM UTC.
520
855
  #
521
- # You must specify exactly two of the following parameters: `startTime`,
522
- # `period`, and `endTime`.
856
+ # <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>
523
857
  #
524
858
  # @return [Types::GetProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
525
859
  #
@@ -553,7 +887,203 @@ module Aws::CodeGuruProfiler
553
887
  req.send_request(options)
554
888
  end
555
889
 
556
- # List the start times of the available aggregated profiles of a
890
+ # Returns a list of [ `Recommendation` ][1] objects that contain
891
+ # recommendations for a profiling group for a given time period. A list
892
+ # of [ `Anomaly` ][2] objects that contains details about anomalies
893
+ # detected in the profiling group for the same time period is also
894
+ # returned.
895
+ #
896
+ #
897
+ #
898
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html
899
+ # [2]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html
900
+ #
901
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
902
+ # The start time of the profile to get analysis data about. You must
903
+ # specify `startTime` and `endTime`. This is specified using the ISO
904
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
905
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
906
+ #
907
+ # @option params [String] :locale
908
+ # The language used to provide analysis. Specify using a string that is
909
+ # one of the following `BCP 47` language codes.
910
+ #
911
+ # * `de-DE` - German, Germany
912
+ #
913
+ # * `en-GB` - English, United Kingdom
914
+ #
915
+ # * `en-US` - English, United States
916
+ #
917
+ # * `es-ES` - Spanish, Spain
918
+ #
919
+ # * `fr-FR` - French, France
920
+ #
921
+ # * `it-IT` - Italian, Italy
922
+ #
923
+ # * `ja-JP` - Japanese, Japan
924
+ #
925
+ # * `ko-KR` - Korean, Republic of Korea
926
+ #
927
+ # * `pt-BR` - Portugese, Brazil
928
+ #
929
+ # * `zh-CN` - Chinese, China
930
+ #
931
+ # * `zh-TW` - Chinese, Taiwan
932
+ #
933
+ # @option params [required, String] :profiling_group_name
934
+ # The name of the profiling group to get analysis data about.
935
+ #
936
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
937
+ # The end time of the profile to get analysis data about. You must
938
+ # specify `startTime` and `endTime`. This is specified using the ISO
939
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
940
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
941
+ #
942
+ # @return [Types::GetRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
943
+ #
944
+ # * {Types::GetRecommendationsResponse#anomalies #anomalies} => Array&lt;Types::Anomaly&gt;
945
+ # * {Types::GetRecommendationsResponse#profile_end_time #profile_end_time} => Time
946
+ # * {Types::GetRecommendationsResponse#profile_start_time #profile_start_time} => Time
947
+ # * {Types::GetRecommendationsResponse#profiling_group_name #profiling_group_name} => String
948
+ # * {Types::GetRecommendationsResponse#recommendations #recommendations} => Array&lt;Types::Recommendation&gt;
949
+ #
950
+ # @example Request syntax with placeholder values
951
+ #
952
+ # resp = client.get_recommendations({
953
+ # end_time: Time.now, # required
954
+ # locale: "Locale",
955
+ # profiling_group_name: "ProfilingGroupName", # required
956
+ # start_time: Time.now, # required
957
+ # })
958
+ #
959
+ # @example Response structure
960
+ #
961
+ # resp.anomalies #=> Array
962
+ # resp.anomalies[0].instances #=> Array
963
+ # resp.anomalies[0].instances[0].end_time #=> Time
964
+ # resp.anomalies[0].instances[0].id #=> String
965
+ # resp.anomalies[0].instances[0].start_time #=> Time
966
+ # resp.anomalies[0].instances[0].user_feedback.type #=> String, one of "Negative", "Positive"
967
+ # resp.anomalies[0].metric.frame_name #=> String
968
+ # resp.anomalies[0].metric.thread_states #=> Array
969
+ # resp.anomalies[0].metric.thread_states[0] #=> String
970
+ # resp.anomalies[0].metric.type #=> String, one of "AggregatedRelativeTotalTime"
971
+ # resp.anomalies[0].reason #=> String
972
+ # resp.profile_end_time #=> Time
973
+ # resp.profile_start_time #=> Time
974
+ # resp.profiling_group_name #=> String
975
+ # resp.recommendations #=> Array
976
+ # resp.recommendations[0].all_matches_count #=> Integer
977
+ # resp.recommendations[0].all_matches_sum #=> Float
978
+ # resp.recommendations[0].end_time #=> Time
979
+ # resp.recommendations[0].pattern.counters_to_aggregate #=> Array
980
+ # resp.recommendations[0].pattern.counters_to_aggregate[0] #=> String
981
+ # resp.recommendations[0].pattern.description #=> String
982
+ # resp.recommendations[0].pattern.id #=> String
983
+ # resp.recommendations[0].pattern.name #=> String
984
+ # resp.recommendations[0].pattern.resolution_steps #=> String
985
+ # resp.recommendations[0].pattern.target_frames #=> Array
986
+ # resp.recommendations[0].pattern.target_frames[0] #=> Array
987
+ # resp.recommendations[0].pattern.target_frames[0][0] #=> String
988
+ # resp.recommendations[0].pattern.threshold_percent #=> Float
989
+ # resp.recommendations[0].start_time #=> Time
990
+ # resp.recommendations[0].top_matches #=> Array
991
+ # resp.recommendations[0].top_matches[0].frame_address #=> String
992
+ # resp.recommendations[0].top_matches[0].target_frames_index #=> Integer
993
+ # resp.recommendations[0].top_matches[0].threshold_breach_value #=> Float
994
+ #
995
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations AWS API Documentation
996
+ #
997
+ # @overload get_recommendations(params = {})
998
+ # @param [Hash] params ({})
999
+ def get_recommendations(params = {}, options = {})
1000
+ req = build_request(:get_recommendations, params)
1001
+ req.send_request(options)
1002
+ end
1003
+
1004
+ # List the available reports for a given profiling group and time range.
1005
+ #
1006
+ # @option params [Boolean] :daily_reports_only
1007
+ # A `Boolean` value indicating whether to only return reports from daily
1008
+ # profiles. If set to `True`, only analysis data from daily profiles is
1009
+ # returned. If set to `False`, analysis data is returned from smaller
1010
+ # time windows (for example, one hour).
1011
+ #
1012
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1013
+ # The end time of the profile to get analysis data about. You must
1014
+ # specify `startTime` and `endTime`. This is specified using the ISO
1015
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
1016
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
1017
+ #
1018
+ # @option params [Integer] :max_results
1019
+ # The maximum number of report results returned by `ListFindingsReports`
1020
+ # in paginated output. When this parameter is used,
1021
+ # `ListFindingsReports` only returns `maxResults` results in a single
1022
+ # page along with a `nextToken` response element. The remaining results
1023
+ # of the initial request can be seen by sending another
1024
+ # `ListFindingsReports` request with the returned `nextToken` value.
1025
+ #
1026
+ # @option params [String] :next_token
1027
+ # The `nextToken` value returned from a previous paginated
1028
+ # `ListFindingsReportsRequest` request where `maxResults` was used and
1029
+ # the results exceeded the value of that parameter. Pagination continues
1030
+ # from the end of the previous results that returned the `nextToken`
1031
+ # value.
1032
+ #
1033
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
1034
+ # to retrieve the next items in a list and not for other programmatic
1035
+ # purposes.
1036
+ #
1037
+ # </note>
1038
+ #
1039
+ # @option params [required, String] :profiling_group_name
1040
+ # The name of the profiling group from which to search for analysis
1041
+ # data.
1042
+ #
1043
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1044
+ # The start time of the profile to get analysis data about. You must
1045
+ # specify `startTime` and `endTime`. This is specified using the ISO
1046
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
1047
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
1048
+ #
1049
+ # @return [Types::ListFindingsReportsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1050
+ #
1051
+ # * {Types::ListFindingsReportsResponse#findings_report_summaries #findings_report_summaries} => Array&lt;Types::FindingsReportSummary&gt;
1052
+ # * {Types::ListFindingsReportsResponse#next_token #next_token} => String
1053
+ #
1054
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1055
+ #
1056
+ # @example Request syntax with placeholder values
1057
+ #
1058
+ # resp = client.list_findings_reports({
1059
+ # daily_reports_only: false,
1060
+ # end_time: Time.now, # required
1061
+ # max_results: 1,
1062
+ # next_token: "PaginationToken",
1063
+ # profiling_group_name: "ProfilingGroupName", # required
1064
+ # start_time: Time.now, # required
1065
+ # })
1066
+ #
1067
+ # @example Response structure
1068
+ #
1069
+ # resp.findings_report_summaries #=> Array
1070
+ # resp.findings_report_summaries[0].id #=> String
1071
+ # resp.findings_report_summaries[0].profile_end_time #=> Time
1072
+ # resp.findings_report_summaries[0].profile_start_time #=> Time
1073
+ # resp.findings_report_summaries[0].profiling_group_name #=> String
1074
+ # resp.findings_report_summaries[0].total_number_of_findings #=> Integer
1075
+ # resp.next_token #=> String
1076
+ #
1077
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports AWS API Documentation
1078
+ #
1079
+ # @overload list_findings_reports(params = {})
1080
+ # @param [Hash] params ({})
1081
+ def list_findings_reports(params = {}, options = {})
1082
+ req = build_request(:list_findings_reports, params)
1083
+ req.send_request(options)
1084
+ end
1085
+
1086
+ # Lists the start times of the available aggregated profiles of a
557
1087
  # profiling group for an aggregation period within the specified time
558
1088
  # range.
559
1089
  #
@@ -585,7 +1115,15 @@ module Aws::CodeGuruProfiler
585
1115
  # use when listing profiles. Defaults to `TIMESTAMP_DESCENDING`.
586
1116
  #
587
1117
  # @option params [required, String] :period
588
- # The aggregation period.
1118
+ # The aggregation period. This specifies the period during which an
1119
+ # aggregation profile collects posted agent profiles for a profiling
1120
+ # group. There are 3 valid values.
1121
+ #
1122
+ # * `P1D` — 1 day
1123
+ #
1124
+ # * `PT1H` — 1 hour
1125
+ #
1126
+ # * `PT5M` — 5 minutes
589
1127
  #
590
1128
  # @option params [required, String] :profiling_group_name
591
1129
  # The name of the profiling group.
@@ -627,10 +1165,22 @@ module Aws::CodeGuruProfiler
627
1165
  req.send_request(options)
628
1166
  end
629
1167
 
630
- # Lists profiling groups.
1168
+ # Returns a list of profiling groups. The profiling groups are returned
1169
+ # as [ `ProfilingGroupDescription` ][1] objects.
1170
+ #
1171
+ #
1172
+ #
1173
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
631
1174
  #
632
1175
  # @option params [Boolean] :include_description
633
- # A Boolean value indicating whether to include a description.
1176
+ # A `Boolean` value indicating whether to include a description. If
1177
+ # `true`, then a list of [ `ProfilingGroupDescription` ][1] objects that
1178
+ # contain detailed information about profiling groups is returned. If
1179
+ # `false`, then a list of profiling group names is returned.
1180
+ #
1181
+ #
1182
+ #
1183
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
634
1184
  #
635
1185
  # @option params [Integer] :max_results
636
1186
  # The maximum number of profiling groups results returned by
@@ -677,12 +1227,15 @@ module Aws::CodeGuruProfiler
677
1227
  # resp.profiling_groups #=> Array
678
1228
  # resp.profiling_groups[0].agent_orchestration_config.profiling_enabled #=> Boolean
679
1229
  # resp.profiling_groups[0].arn #=> String
1230
+ # resp.profiling_groups[0].compute_platform #=> String, one of "AWSLambda", "Default"
680
1231
  # resp.profiling_groups[0].created_at #=> Time
681
1232
  # resp.profiling_groups[0].name #=> String
682
1233
  # resp.profiling_groups[0].profiling_status.latest_agent_orchestrated_at #=> Time
683
1234
  # resp.profiling_groups[0].profiling_status.latest_agent_profile_reported_at #=> Time
684
1235
  # resp.profiling_groups[0].profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
685
1236
  # resp.profiling_groups[0].profiling_status.latest_aggregated_profile.start #=> Time
1237
+ # resp.profiling_groups[0].tags #=> Hash
1238
+ # resp.profiling_groups[0].tags["String"] #=> String
686
1239
  # resp.profiling_groups[0].updated_at #=> Time
687
1240
  #
688
1241
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups AWS API Documentation
@@ -694,15 +1247,65 @@ module Aws::CodeGuruProfiler
694
1247
  req.send_request(options)
695
1248
  end
696
1249
 
697
- # @option params [required, String, IO] :agent_profile
1250
+ # Returns a list of the tags that are assigned to a specified resource.
1251
+ #
1252
+ # @option params [required, String] :resource_arn
1253
+ # The Amazon Resource Name (ARN) of the resource that contains the tags
1254
+ # to return.
1255
+ #
1256
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1257
+ #
1258
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1259
+ #
1260
+ # @example Request syntax with placeholder values
1261
+ #
1262
+ # resp = client.list_tags_for_resource({
1263
+ # resource_arn: "ProfilingGroupArn", # required
1264
+ # })
1265
+ #
1266
+ # @example Response structure
1267
+ #
1268
+ # resp.tags #=> Hash
1269
+ # resp.tags["String"] #=> String
1270
+ #
1271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListTagsForResource AWS API Documentation
1272
+ #
1273
+ # @overload list_tags_for_resource(params = {})
1274
+ # @param [Hash] params ({})
1275
+ def list_tags_for_resource(params = {}, options = {})
1276
+ req = build_request(:list_tags_for_resource, params)
1277
+ req.send_request(options)
1278
+ end
1279
+
1280
+ # Submits profiling data to an aggregated profile of a profiling group.
1281
+ # To get an aggregated profile that is created with this profiling data,
1282
+ # use [ `GetProfile` ][1].
1283
+ #
1284
+ #
1285
+ #
1286
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html
1287
+ #
1288
+ # @option params [required, String, StringIO, File] :agent_profile
1289
+ # The submitted profiling data.
698
1290
  #
699
1291
  # @option params [required, String] :content_type
1292
+ # The format of the submitted profiling data. The format maps to the
1293
+ # `Accept` and `Content-Type` headers of the HTTP request. You can
1294
+ # specify one of the following: or the default .
1295
+ #
1296
+ # <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>
700
1297
  #
701
1298
  # @option params [String] :profile_token
1299
+ # Amazon CodeGuru Profiler uses this universally unique identifier
1300
+ # (UUID) to prevent the accidental submission of duplicate profiling
1301
+ # data if there are failures and retries.
1302
+ #
702
1303
  # **A suitable default value is auto-generated.** You should normally
703
1304
  # not need to pass this option.**
704
1305
  #
705
1306
  # @option params [required, String] :profiling_group_name
1307
+ # The name of the profiling group with the aggregated profile that
1308
+ # receives the submitted profiling data.
706
1309
  #
707
1310
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
708
1311
  #
@@ -724,24 +1327,34 @@ module Aws::CodeGuruProfiler
724
1327
  req.send_request(options)
725
1328
  end
726
1329
 
727
- # Provides permission to the principals. This overwrites the existing
728
- # permissions, and is not additive.
1330
+ # Adds permissions to a profiling group's resource-based policy that
1331
+ # are provided using an action group. If a profiling group doesn't have
1332
+ # a resource-based policy, one is created for it using the permissions
1333
+ # in the action group and the roles and users in the `principals`
1334
+ # parameter.
1335
+ #
1336
+ # <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>
729
1337
  #
730
1338
  # @option params [required, String] :action_group
731
- # The list of actions that the users and roles can perform on the
732
- # profiling group.
1339
+ # Specifies an action group that contains permissions to add to a
1340
+ # profiling group resource. One action group is supported,
1341
+ # `agentPermissions`, which grants permission to perform actions
1342
+ # required by the profiling agent, `ConfigureAgent` and
1343
+ # `PostAgentProfile` permissions.
733
1344
  #
734
1345
  # @option params [required, Array<String>] :principals
735
- # The list of role and user ARNs or the accountId that needs access
736
- # (wildcards are not allowed).
1346
+ # A list ARNs for the roles and users you want to grant access to the
1347
+ # profiling group. Wildcards are not are supported in the ARNs.
737
1348
  #
738
1349
  # @option params [required, String] :profiling_group_name
739
- # The name of the profiling group.
1350
+ # The name of the profiling group to grant access to.
740
1351
  #
741
1352
  # @option params [String] :revision_id
742
- # A unique identifier for the current revision of the policy. This is
743
- # required, if a policy exists for the profiling group. This is not
744
- # required when creating the policy for the first time.
1353
+ # A universally unique identifier (UUID) for the revision of the policy
1354
+ # you are adding to the profiling group. Do not specify this when you
1355
+ # add permissions to a profiling group for the first time. If a policy
1356
+ # already exists on the profiling group, you must specify the
1357
+ # `revisionId`.
745
1358
  #
746
1359
  # @return [Types::PutPermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
747
1360
  #
@@ -771,17 +1384,69 @@ module Aws::CodeGuruProfiler
771
1384
  req.send_request(options)
772
1385
  end
773
1386
 
774
- # Removes statement for the provided action group from the policy.
1387
+ # Remove one anomaly notifications channel for a profiling group.
1388
+ #
1389
+ # @option params [required, String] :channel_id
1390
+ # The id of the channel that we want to stop receiving notifications.
1391
+ #
1392
+ # @option params [required, String] :profiling_group_name
1393
+ # The name of the profiling group we want to change notification
1394
+ # configuration for.
1395
+ #
1396
+ # @return [Types::RemoveNotificationChannelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1397
+ #
1398
+ # * {Types::RemoveNotificationChannelResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
1399
+ #
1400
+ # @example Request syntax with placeholder values
1401
+ #
1402
+ # resp = client.remove_notification_channel({
1403
+ # channel_id: "ChannelId", # required
1404
+ # profiling_group_name: "ProfilingGroupName", # required
1405
+ # })
1406
+ #
1407
+ # @example Response structure
1408
+ #
1409
+ # resp.notification_configuration.channels #=> Array
1410
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
1411
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
1412
+ # resp.notification_configuration.channels[0].id #=> String
1413
+ # resp.notification_configuration.channels[0].uri #=> String
1414
+ #
1415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel AWS API Documentation
1416
+ #
1417
+ # @overload remove_notification_channel(params = {})
1418
+ # @param [Hash] params ({})
1419
+ def remove_notification_channel(params = {}, options = {})
1420
+ req = build_request(:remove_notification_channel, params)
1421
+ req.send_request(options)
1422
+ end
1423
+
1424
+ # Removes permissions from a profiling group's resource-based policy
1425
+ # that are provided using an action group. The one supported action
1426
+ # group that can be removed is `agentPermission` which grants
1427
+ # `ConfigureAgent` and `PostAgent` permissions. For more information,
1428
+ # see [Resource-based policies in CodeGuru Profiler][1] in the *Amazon
1429
+ # CodeGuru Profiler User Guide*, [ `ConfigureAgent` ][2], and [
1430
+ # `PostAgentProfile` ][3].
1431
+ #
1432
+ #
1433
+ #
1434
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html
1435
+ # [2]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html
1436
+ # [3]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html
775
1437
  #
776
1438
  # @option params [required, String] :action_group
777
- # The list of actions that the users and roles can perform on the
778
- # profiling group.
1439
+ # Specifies an action group that contains the permissions to remove from
1440
+ # a profiling group's resource-based policy. One action group is
1441
+ # supported, `agentPermissions`, which grants `ConfigureAgent` and
1442
+ # `PostAgentProfile` permissions.
779
1443
  #
780
1444
  # @option params [required, String] :profiling_group_name
781
1445
  # The name of the profiling group.
782
1446
  #
783
1447
  # @option params [required, String] :revision_id
784
- # A unique identifier for the current revision of the policy.
1448
+ # A universally unique identifier (UUID) for the revision of the
1449
+ # resource-based policy from which you want to remove permissions.
785
1450
  #
786
1451
  # @return [Types::RemovePermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
787
1452
  #
@@ -810,9 +1475,110 @@ module Aws::CodeGuruProfiler
810
1475
  req.send_request(options)
811
1476
  end
812
1477
 
1478
+ # Sends feedback to CodeGuru Profiler about whether the anomaly detected
1479
+ # by the analysis is useful or not.
1480
+ #
1481
+ # @option params [required, String] :anomaly_instance_id
1482
+ # The universally unique identifier (UUID) of the [ `AnomalyInstance`
1483
+ # ][1] object that is included in the analysis data.
1484
+ #
1485
+ #
1486
+ #
1487
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html
1488
+ #
1489
+ # @option params [String] :comment
1490
+ # Optional feedback about this anomaly.
1491
+ #
1492
+ # @option params [required, String] :profiling_group_name
1493
+ # The name of the profiling group that is associated with the analysis
1494
+ # data.
1495
+ #
1496
+ # @option params [required, String] :type
1497
+ # The feedback tpye. Thee are two valid values, `Positive` and
1498
+ # `Negative`.
1499
+ #
1500
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1501
+ #
1502
+ # @example Request syntax with placeholder values
1503
+ #
1504
+ # resp = client.submit_feedback({
1505
+ # anomaly_instance_id: "AnomalyInstanceId", # required
1506
+ # comment: "String",
1507
+ # profiling_group_name: "ProfilingGroupName", # required
1508
+ # type: "Negative", # required, accepts Negative, Positive
1509
+ # })
1510
+ #
1511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback AWS API Documentation
1512
+ #
1513
+ # @overload submit_feedback(params = {})
1514
+ # @param [Hash] params ({})
1515
+ def submit_feedback(params = {}, options = {})
1516
+ req = build_request(:submit_feedback, params)
1517
+ req.send_request(options)
1518
+ end
1519
+
1520
+ # Use to assign one or more tags to a resource.
1521
+ #
1522
+ # @option params [required, String] :resource_arn
1523
+ # The Amazon Resource Name (ARN) of the resource that the tags are added
1524
+ # to.
1525
+ #
1526
+ # @option params [required, Hash<String,String>] :tags
1527
+ # The list of tags that are added to the specified resource.
1528
+ #
1529
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1530
+ #
1531
+ # @example Request syntax with placeholder values
1532
+ #
1533
+ # resp = client.tag_resource({
1534
+ # resource_arn: "ProfilingGroupArn", # required
1535
+ # tags: { # required
1536
+ # "String" => "String",
1537
+ # },
1538
+ # })
1539
+ #
1540
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/TagResource AWS API Documentation
1541
+ #
1542
+ # @overload tag_resource(params = {})
1543
+ # @param [Hash] params ({})
1544
+ def tag_resource(params = {}, options = {})
1545
+ req = build_request(:tag_resource, params)
1546
+ req.send_request(options)
1547
+ end
1548
+
1549
+ # Use to remove one or more tags from a resource.
1550
+ #
1551
+ # @option params [required, String] :resource_arn
1552
+ # The Amazon Resource Name (ARN) of the resource that contains the tags
1553
+ # to remove.
1554
+ #
1555
+ # @option params [required, Array<String>] :tag_keys
1556
+ # A list of tag keys. Existing tags of resources with keys in this list
1557
+ # are removed from the specified resource.
1558
+ #
1559
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1560
+ #
1561
+ # @example Request syntax with placeholder values
1562
+ #
1563
+ # resp = client.untag_resource({
1564
+ # resource_arn: "ProfilingGroupArn", # required
1565
+ # tag_keys: ["String"], # required
1566
+ # })
1567
+ #
1568
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UntagResource AWS API Documentation
1569
+ #
1570
+ # @overload untag_resource(params = {})
1571
+ # @param [Hash] params ({})
1572
+ def untag_resource(params = {}, options = {})
1573
+ req = build_request(:untag_resource, params)
1574
+ req.send_request(options)
1575
+ end
1576
+
813
1577
  # Updates a profiling group.
814
1578
  #
815
1579
  # @option params [required, Types::AgentOrchestrationConfig] :agent_orchestration_config
1580
+ # Specifies whether profiling is enabled or disabled for a profiling
1581
+ # group.
816
1582
  #
817
1583
  # @option params [required, String] :profiling_group_name
818
1584
  # The name of the profiling group to update.
@@ -834,12 +1600,15 @@ module Aws::CodeGuruProfiler
834
1600
  #
835
1601
  # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
836
1602
  # resp.profiling_group.arn #=> String
1603
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
837
1604
  # resp.profiling_group.created_at #=> Time
838
1605
  # resp.profiling_group.name #=> String
839
1606
  # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
840
1607
  # resp.profiling_group.profiling_status.latest_agent_profile_reported_at #=> Time
841
1608
  # resp.profiling_group.profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
842
1609
  # resp.profiling_group.profiling_status.latest_aggregated_profile.start #=> Time
1610
+ # resp.profiling_group.tags #=> Hash
1611
+ # resp.profiling_group.tags["String"] #=> String
843
1612
  # resp.profiling_group.updated_at #=> Time
844
1613
  #
845
1614
  # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup AWS API Documentation
@@ -864,7 +1633,7 @@ module Aws::CodeGuruProfiler
864
1633
  params: params,
865
1634
  config: config)
866
1635
  context[:gem_name] = 'aws-sdk-codeguruprofiler'
867
- context[:gem_version] = '1.6.1'
1636
+ context[:gem_version] = '1.11.0'
868
1637
  Seahorse::Client::Request.new(handlers, context)
869
1638
  end
870
1639