aws-sdk-codeguruprofiler 1.6.1 → 1.11.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: 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