aws-sdk-codeguruprofiler 1.9.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: b8e3afd2db4d9643ad47d9759cb5f80702cf2f39baaf7c9c0647e20edfbcd775
4
+ data.tar.gz: '0867eb396a6003fc992f3f31ff69c65b4a1d9af3e52c1c5fb878c783cbca4bf9'
5
+ SHA512:
6
+ metadata.gz: 59f4360d017d52a2829eea86798efd08a5c7dbd02d10eabf1c19924597fe6ed215eac653f6cc85fdbd26e0d73fd5a144d4b522b0872d4da5952b5cf8d782112e
7
+ data.tar.gz: 19c314a81f29d2e37b1c7207bf89a3b205d28fed97094dedfdeda8f76d700b0863e529c246d5c310a87c4711269d1bd7c6c7790910f22b3882c96f51f628cd06
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'aws-sdk-core'
11
+ require 'aws-sigv4'
12
+
13
+ require_relative 'aws-sdk-codeguruprofiler/types'
14
+ require_relative 'aws-sdk-codeguruprofiler/client_api'
15
+ require_relative 'aws-sdk-codeguruprofiler/client'
16
+ require_relative 'aws-sdk-codeguruprofiler/errors'
17
+ require_relative 'aws-sdk-codeguruprofiler/resource'
18
+ require_relative 'aws-sdk-codeguruprofiler/customizations'
19
+
20
+ # This module provides support for Amazon CodeGuru Profiler. This module is available in the
21
+ # `aws-sdk-codeguruprofiler` gem.
22
+ #
23
+ # # Client
24
+ #
25
+ # The {Client} class provides one method for each API operation. Operation
26
+ # methods each accept a hash of request parameters and return a response
27
+ # structure.
28
+ #
29
+ # code_guru_profiler = Aws::CodeGuruProfiler::Client.new
30
+ # resp = code_guru_profiler.add_notification_channels(params)
31
+ #
32
+ # See {Client} for more information.
33
+ #
34
+ # # Errors
35
+ #
36
+ # Errors returned from Amazon CodeGuru Profiler are defined in the
37
+ # {Errors} module and all extend {Errors::ServiceError}.
38
+ #
39
+ # begin
40
+ # # do stuff
41
+ # rescue Aws::CodeGuruProfiler::Errors::ServiceError
42
+ # # rescues all Amazon CodeGuru Profiler API errors
43
+ # end
44
+ #
45
+ # See {Errors} for more information.
46
+ #
47
+ # @service
48
+ module Aws::CodeGuruProfiler
49
+
50
+ GEM_VERSION = '1.9.0'
51
+
52
+ end
@@ -0,0 +1,1643 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/signature_v4.rb'
31
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
32
+
33
+ Aws::Plugins::GlobalConfiguration.add_identifier(:codeguruprofiler)
34
+
35
+ module Aws::CodeGuruProfiler
36
+ # An API client for CodeGuruProfiler. To construct a client, you need to configure a `:region` and `:credentials`.
37
+ #
38
+ # client = Aws::CodeGuruProfiler::Client.new(
39
+ # region: region_name,
40
+ # credentials: credentials,
41
+ # # ...
42
+ # )
43
+ #
44
+ # For details on configuring region and credentials see
45
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
46
+ #
47
+ # See {#initialize} for a full list of supported configuration options.
48
+ class Client < Seahorse::Client::Base
49
+
50
+ include Aws::ClientStubs
51
+
52
+ @identifier = :codeguruprofiler
53
+
54
+ set_api(ClientApi::API)
55
+
56
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
57
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
58
+ add_plugin(Aws::Plugins::Logging)
59
+ add_plugin(Aws::Plugins::ParamConverter)
60
+ add_plugin(Aws::Plugins::ParamValidator)
61
+ add_plugin(Aws::Plugins::UserAgent)
62
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
63
+ add_plugin(Aws::Plugins::RetryErrors)
64
+ add_plugin(Aws::Plugins::GlobalConfiguration)
65
+ add_plugin(Aws::Plugins::RegionalEndpoint)
66
+ add_plugin(Aws::Plugins::EndpointDiscovery)
67
+ add_plugin(Aws::Plugins::EndpointPattern)
68
+ add_plugin(Aws::Plugins::ResponsePaging)
69
+ add_plugin(Aws::Plugins::StubResponses)
70
+ add_plugin(Aws::Plugins::IdempotencyToken)
71
+ add_plugin(Aws::Plugins::JsonvalueConverter)
72
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
73
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
+ add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
76
+ add_plugin(Aws::Plugins::SignatureV4)
77
+ add_plugin(Aws::Plugins::Protocols::RestJson)
78
+
79
+ # @overload initialize(options)
80
+ # @param [Hash] options
81
+ # @option options [required, Aws::CredentialProvider] :credentials
82
+ # Your AWS credentials. This can be an instance of any one of the
83
+ # following classes:
84
+ #
85
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
+ # credentials.
87
+ #
88
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
+ # from an EC2 IMDS on an EC2 instance.
90
+ #
91
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
92
+ # shared file, such as `~/.aws/config`.
93
+ #
94
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
95
+ #
96
+ # When `:credentials` are not configured directly, the following
97
+ # locations will be searched for credentials:
98
+ #
99
+ # * `Aws.config[:credentials]`
100
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
101
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
+ # * `~/.aws/credentials`
103
+ # * `~/.aws/config`
104
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
105
+ # very aggressive. Construct and pass an instance of
106
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
107
+ # timeouts.
108
+ #
109
+ # @option options [required, String] :region
110
+ # The AWS region to connect to. The configured `:region` is
111
+ # used to determine the service `:endpoint`. When not passed,
112
+ # a default `:region` is searched for in the following locations:
113
+ #
114
+ # * `Aws.config[:region]`
115
+ # * `ENV['AWS_REGION']`
116
+ # * `ENV['AMAZON_REGION']`
117
+ # * `ENV['AWS_DEFAULT_REGION']`
118
+ # * `~/.aws/credentials`
119
+ # * `~/.aws/config`
120
+ #
121
+ # @option options [String] :access_key_id
122
+ #
123
+ # @option options [Boolean] :active_endpoint_cache (false)
124
+ # When set to `true`, a thread polling for endpoints will be running in
125
+ # the background every 60 secs (default). Defaults to `false`.
126
+ #
127
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
128
+ # Used only in `adaptive` retry mode. When true, the request will sleep
129
+ # until there is sufficent client side capacity to retry the request.
130
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
131
+ # not retry instead of sleeping.
132
+ #
133
+ # @option options [Boolean] :client_side_monitoring (false)
134
+ # When `true`, client-side metrics will be collected for all API requests from
135
+ # this client.
136
+ #
137
+ # @option options [String] :client_side_monitoring_client_id ("")
138
+ # Allows you to provide an identifier for this client which will be attached to
139
+ # all generated client side metrics. Defaults to an empty string.
140
+ #
141
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
142
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
143
+ # side monitoring agent is running on, where client metrics will be published via UDP.
144
+ #
145
+ # @option options [Integer] :client_side_monitoring_port (31000)
146
+ # Required for publishing client metrics. The port that the client side monitoring
147
+ # agent is running on, where client metrics will be published via UDP.
148
+ #
149
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
150
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
151
+ # will use the Client Side Monitoring Agent Publisher.
152
+ #
153
+ # @option options [Boolean] :convert_params (true)
154
+ # When `true`, an attempt is made to coerce request parameters into
155
+ # the required types.
156
+ #
157
+ # @option options [Boolean] :correct_clock_skew (true)
158
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
159
+ # a clock skew correction and retry requests with skewed client clocks.
160
+ #
161
+ # @option options [Boolean] :disable_host_prefix_injection (false)
162
+ # Set to true to disable SDK automatically adding host prefix
163
+ # to default service endpoint when available.
164
+ #
165
+ # @option options [String] :endpoint
166
+ # The client endpoint is normally constructed from the `:region`
167
+ # option. You should only configure an `:endpoint` when connecting
168
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
169
+ #
170
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
171
+ # Used for the maximum size limit of the LRU cache storing endpoints data
172
+ # for endpoint discovery enabled operations. Defaults to 1000.
173
+ #
174
+ # @option options [Integer] :endpoint_cache_max_threads (10)
175
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
176
+ #
177
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
178
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
179
+ # Use this option to config the time interval in seconds for making
180
+ # requests fetching endpoints information. Defaults to 60 sec.
181
+ #
182
+ # @option options [Boolean] :endpoint_discovery (false)
183
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
184
+ #
185
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
186
+ # The log formatter.
187
+ #
188
+ # @option options [Symbol] :log_level (:info)
189
+ # The log level to send messages to the `:logger` at.
190
+ #
191
+ # @option options [Logger] :logger
192
+ # The Logger instance to send log messages to. If this option
193
+ # is not set, logging will be disabled.
194
+ #
195
+ # @option options [Integer] :max_attempts (3)
196
+ # An integer representing the maximum number attempts that will be made for
197
+ # a single request, including the initial attempt. For example,
198
+ # setting this value to 5 will result in a request being retried up to
199
+ # 4 times. Used in `standard` and `adaptive` retry modes.
200
+ #
201
+ # @option options [String] :profile ("default")
202
+ # Used when loading credentials from the shared credentials file
203
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
204
+ #
205
+ # @option options [Proc] :retry_backoff
206
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
207
+ # This option is only used in the `legacy` retry mode.
208
+ #
209
+ # @option options [Float] :retry_base_delay (0.3)
210
+ # The base delay in seconds used by the default backoff function. This option
211
+ # is only used in the `legacy` retry mode.
212
+ #
213
+ # @option options [Symbol] :retry_jitter (:none)
214
+ # A delay randomiser function used by the default backoff function.
215
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
216
+ # otherwise a Proc that takes and returns a number. This option is only used
217
+ # in the `legacy` retry mode.
218
+ #
219
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
220
+ #
221
+ # @option options [Integer] :retry_limit (3)
222
+ # The maximum number of times to retry failed requests. Only
223
+ # ~ 500 level server errors and certain ~ 400 level client errors
224
+ # are retried. Generally, these are throttling errors, data
225
+ # checksum errors, networking errors, timeout errors, auth errors,
226
+ # endpoint discovery, and errors from expired credentials.
227
+ # This option is only used in the `legacy` retry mode.
228
+ #
229
+ # @option options [Integer] :retry_max_delay (0)
230
+ # The maximum number of seconds to delay between retries (0 for no limit)
231
+ # used by the default backoff function. This option is only used in the
232
+ # `legacy` retry mode.
233
+ #
234
+ # @option options [String] :retry_mode ("legacy")
235
+ # Specifies which retry algorithm to use. Values are:
236
+ #
237
+ # * `legacy` - The pre-existing retry behavior. This is default value if
238
+ # no retry mode is provided.
239
+ #
240
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
241
+ # This includes support for retry quotas, which limit the number of
242
+ # unsuccessful retries a client can make.
243
+ #
244
+ # * `adaptive` - An experimental retry mode that includes all the
245
+ # functionality of `standard` mode along with automatic client side
246
+ # throttling. This is a provisional mode that may change behavior
247
+ # in the future.
248
+ #
249
+ #
250
+ # @option options [String] :secret_access_key
251
+ #
252
+ # @option options [String] :session_token
253
+ #
254
+ # @option options [Boolean] :stub_responses (false)
255
+ # Causes the client to return stubbed responses. By default
256
+ # fake responses are generated and returned. You can specify
257
+ # the response data to return or errors to raise by calling
258
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
259
+ #
260
+ # ** Please note ** When response stubbing is enabled, no HTTP
261
+ # requests are made, and retries are disabled.
262
+ #
263
+ # @option options [Boolean] :validate_params (true)
264
+ # When `true`, request parameters are validated before
265
+ # sending the request.
266
+ #
267
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
268
+ # requests through. Formatted like 'http://proxy.com:123'.
269
+ #
270
+ # @option options [Float] :http_open_timeout (15) The number of
271
+ # seconds to wait when opening a HTTP session before raising a
272
+ # `Timeout::Error`.
273
+ #
274
+ # @option options [Integer] :http_read_timeout (60) The default
275
+ # number of seconds to wait for response data. This value can
276
+ # safely be set per-request on the session.
277
+ #
278
+ # @option options [Float] :http_idle_timeout (5) The number of
279
+ # seconds a connection is allowed to sit idle before it is
280
+ # considered stale. Stale connections are closed and removed
281
+ # from the pool before making a request.
282
+ #
283
+ # @option options [Float] :http_continue_timeout (1) The number of
284
+ # seconds to wait for a 100-continue response before sending the
285
+ # request body. This option has no effect unless the request has
286
+ # "Expect" header set to "100-continue". Defaults to `nil` which
287
+ # disables this behaviour. This value can safely be set per
288
+ # request on the session.
289
+ #
290
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
291
+ # HTTP debug output will be sent to the `:logger`.
292
+ #
293
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
294
+ # SSL peer certificates are verified when establishing a
295
+ # connection.
296
+ #
297
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
298
+ # certificate authority bundle file that should be used when
299
+ # verifying peer certificates. If you do not pass
300
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
301
+ # will be used if available.
302
+ #
303
+ # @option options [String] :ssl_ca_directory Full path of the
304
+ # directory that contains the unbundled SSL certificate
305
+ # authority files for verifying peer certificates. If you do
306
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
307
+ # system default will be used if available.
308
+ #
309
+ def initialize(*args)
310
+ super
311
+ end
312
+
313
+ # @!group API Operations
314
+
315
+ # Add up to 2 anomaly notifications channels for a profiling group.
316
+ #
317
+ # @option params [required, Array<Types::Channel>] :channels
318
+ # One or 2 channels to report to when anomalies are detected.
319
+ #
320
+ # @option params [required, String] :profiling_group_name
321
+ # The name of the profiling group that we are setting up notifications
322
+ # for.
323
+ #
324
+ # @return [Types::AddNotificationChannelsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
325
+ #
326
+ # * {Types::AddNotificationChannelsResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
327
+ #
328
+ # @example Request syntax with placeholder values
329
+ #
330
+ # resp = client.add_notification_channels({
331
+ # channels: [ # required
332
+ # {
333
+ # event_publishers: ["AnomalyDetection"], # required, accepts AnomalyDetection
334
+ # id: "ChannelId",
335
+ # uri: "ChannelUri", # required
336
+ # },
337
+ # ],
338
+ # profiling_group_name: "ProfilingGroupName", # required
339
+ # })
340
+ #
341
+ # @example Response structure
342
+ #
343
+ # resp.notification_configuration.channels #=> Array
344
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
345
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
346
+ # resp.notification_configuration.channels[0].id #=> String
347
+ # resp.notification_configuration.channels[0].uri #=> String
348
+ #
349
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/AddNotificationChannels AWS API Documentation
350
+ #
351
+ # @overload add_notification_channels(params = {})
352
+ # @param [Hash] params ({})
353
+ def add_notification_channels(params = {}, options = {})
354
+ req = build_request(:add_notification_channels, params)
355
+ req.send_request(options)
356
+ end
357
+
358
+ # Returns the time series of values for a requested list of frame
359
+ # metrics from a time period.
360
+ #
361
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
362
+ # The end time of the time period for the returned time series values.
363
+ # This is specified using the ISO 8601 format. For example,
364
+ # 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020
365
+ # 1:15:02 PM UTC.
366
+ #
367
+ # @option params [Array<Types::FrameMetric>] :frame_metrics
368
+ # The details of the metrics that are used to request a time series of
369
+ # values. The metric includes the name of the frame, the aggregation
370
+ # type to calculate the metric value for the frame, and the thread
371
+ # states to use to get the count for the metric value of the frame.
372
+ #
373
+ # @option params [String] :period
374
+ # The duration of the frame metrics used to return the time series
375
+ # values. Specify using the ISO 8601 format. The maximum period duration
376
+ # is one day (`PT24H` or `P1D`).
377
+ #
378
+ # @option params [required, String] :profiling_group_name
379
+ # The name of the profiling group associated with the the frame metrics
380
+ # used to return the time series values.
381
+ #
382
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
383
+ # The start time of the time period for the frame metrics used to return
384
+ # the time series values. This is specified using the ISO 8601 format.
385
+ # For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past
386
+ # June 1, 2020 1:15:02 PM UTC.
387
+ #
388
+ # @option params [String] :target_resolution
389
+ # The requested resolution of time steps for the returned time series of
390
+ # values. If the requested target resolution is not available due to
391
+ # data not being retained we provide a best effort result by falling
392
+ # back to the most granular available resolution after the target
393
+ # resolution. There are 3 valid values.
394
+ #
395
+ # * `P1D` — 1 day
396
+ #
397
+ # * `PT1H` — 1 hour
398
+ #
399
+ # * `PT5M` — 5 minutes
400
+ #
401
+ # @return [Types::BatchGetFrameMetricDataResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
402
+ #
403
+ # * {Types::BatchGetFrameMetricDataResponse#end_time #end_time} => Time
404
+ # * {Types::BatchGetFrameMetricDataResponse#end_times #end_times} => Array&lt;Types::TimestampStructure&gt;
405
+ # * {Types::BatchGetFrameMetricDataResponse#frame_metric_data #frame_metric_data} => Array&lt;Types::FrameMetricDatum&gt;
406
+ # * {Types::BatchGetFrameMetricDataResponse#resolution #resolution} => String
407
+ # * {Types::BatchGetFrameMetricDataResponse#start_time #start_time} => Time
408
+ # * {Types::BatchGetFrameMetricDataResponse#unprocessed_end_times #unprocessed_end_times} => Hash&lt;String,Array&lt;Types::TimestampStructure&gt;&gt;
409
+ #
410
+ # @example Request syntax with placeholder values
411
+ #
412
+ # resp = client.batch_get_frame_metric_data({
413
+ # end_time: Time.now,
414
+ # frame_metrics: [
415
+ # {
416
+ # frame_name: "String", # required
417
+ # thread_states: ["String"], # required
418
+ # type: "AggregatedRelativeTotalTime", # required, accepts AggregatedRelativeTotalTime
419
+ # },
420
+ # ],
421
+ # period: "Period",
422
+ # profiling_group_name: "ProfilingGroupName", # required
423
+ # start_time: Time.now,
424
+ # target_resolution: "P1D", # accepts P1D, PT1H, PT5M
425
+ # })
426
+ #
427
+ # @example Response structure
428
+ #
429
+ # resp.end_time #=> Time
430
+ # resp.end_times #=> Array
431
+ # resp.end_times[0].value #=> Time
432
+ # resp.frame_metric_data #=> Array
433
+ # resp.frame_metric_data[0].frame_metric.frame_name #=> String
434
+ # resp.frame_metric_data[0].frame_metric.thread_states #=> Array
435
+ # resp.frame_metric_data[0].frame_metric.thread_states[0] #=> String
436
+ # resp.frame_metric_data[0].frame_metric.type #=> String, one of "AggregatedRelativeTotalTime"
437
+ # resp.frame_metric_data[0].values #=> Array
438
+ # resp.frame_metric_data[0].values[0] #=> Float
439
+ # resp.resolution #=> String, one of "P1D", "PT1H", "PT5M"
440
+ # resp.start_time #=> Time
441
+ # resp.unprocessed_end_times #=> Hash
442
+ # resp.unprocessed_end_times["String"] #=> Array
443
+ # resp.unprocessed_end_times["String"][0].value #=> Time
444
+ #
445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/BatchGetFrameMetricData AWS API Documentation
446
+ #
447
+ # @overload batch_get_frame_metric_data(params = {})
448
+ # @param [Hash] params ({})
449
+ def batch_get_frame_metric_data(params = {}, options = {})
450
+ req = build_request(:batch_get_frame_metric_data, params)
451
+ req.send_request(options)
452
+ end
453
+
454
+ # Used by profiler agents to report their current state and to receive
455
+ # remote configuration updates. For example, `ConfigureAgent` can be
456
+ # used to tell and agent whether to profile or not and for how long to
457
+ # return profiling data.
458
+ #
459
+ # @option params [String] :fleet_instance_id
460
+ # A universally unique identifier (UUID) for a profiling instance. For
461
+ # example, if the profiling instance is an Amazon EC2 instance, it is
462
+ # the instance ID. If it is an AWS Fargate container, it is the
463
+ # container's task ID.
464
+ #
465
+ # @option params [Hash<String,String>] :metadata
466
+ # Metadata captured about the compute platform the agent is running on.
467
+ # It includes information about sampling and reporting. The valid fields
468
+ # are:
469
+ #
470
+ # * `COMPUTE_PLATFORM` - The compute platform on which the agent is
471
+ # running
472
+ #
473
+ # * `AGENT_ID` - The ID for an agent instance.
474
+ #
475
+ # * `AWS_REQUEST_ID` - The AWS request ID of a Lambda invocation.
476
+ #
477
+ # * `EXECUTION_ENVIRONMENT` - The execution environment a Lambda
478
+ # function is running on.
479
+ #
480
+ # * `LAMBDA_FUNCTION_ARN` - The Amazon Resource Name (ARN) that is used
481
+ # to invoke a Lambda function.
482
+ #
483
+ # * `LAMBDA_MEMORY_LIMIT_IN_MB` - The memory allocated to a Lambda
484
+ # function.
485
+ #
486
+ # * `LAMBDA_REMAINING_TIME_IN_MILLISECONDS` - The time in milliseconds
487
+ # before execution of a Lambda function times out.
488
+ #
489
+ # * `LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS` - The time in
490
+ # milliseconds between two invocations of a Lambda function.
491
+ #
492
+ # * `LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS` - The time in
493
+ # milliseconds for the previous Lambda invocation.
494
+ #
495
+ # @option params [required, String] :profiling_group_name
496
+ # The name of the profiling group for which the configured agent is
497
+ # collecting profiling data.
498
+ #
499
+ # @return [Types::ConfigureAgentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
500
+ #
501
+ # * {Types::ConfigureAgentResponse#configuration #configuration} => Types::AgentConfiguration
502
+ #
503
+ # @example Request syntax with placeholder values
504
+ #
505
+ # resp = client.configure_agent({
506
+ # fleet_instance_id: "FleetInstanceId",
507
+ # metadata: {
508
+ # "AgentId" => "String",
509
+ # },
510
+ # profiling_group_name: "ProfilingGroupName", # required
511
+ # })
512
+ #
513
+ # @example Response structure
514
+ #
515
+ # resp.configuration.agent_parameters #=> Hash
516
+ # resp.configuration.agent_parameters["AgentParameterField"] #=> String
517
+ # resp.configuration.period_in_seconds #=> Integer
518
+ # resp.configuration.should_profile #=> Boolean
519
+ #
520
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ConfigureAgent AWS API Documentation
521
+ #
522
+ # @overload configure_agent(params = {})
523
+ # @param [Hash] params ({})
524
+ def configure_agent(params = {}, options = {})
525
+ req = build_request(:configure_agent, params)
526
+ req.send_request(options)
527
+ end
528
+
529
+ # Creates a profiling group.
530
+ #
531
+ # @option params [Types::AgentOrchestrationConfig] :agent_orchestration_config
532
+ # Specifies whether profiling is enabled or disabled for the created
533
+ # profiling group.
534
+ #
535
+ # @option params [required, String] :client_token
536
+ # Amazon CodeGuru Profiler uses this universally unique identifier
537
+ # (UUID) to prevent the accidental creation of duplicate profiling
538
+ # groups if there are failures and retries.
539
+ #
540
+ # **A suitable default value is auto-generated.** You should normally
541
+ # not need to pass this option.**
542
+ #
543
+ # @option params [String] :compute_platform
544
+ # The compute platform of the profiling group. Use `AWSLambda` if your
545
+ # application runs on AWS Lambda. Use `Default` if your application runs
546
+ # on a compute platform that is not AWS Lambda, such an Amazon EC2
547
+ # instance, an on-premises server, or a different platform. If not
548
+ # specified, `Default` is used.
549
+ #
550
+ # @option params [required, String] :profiling_group_name
551
+ # The name of the profiling group to create.
552
+ #
553
+ # @option params [Hash<String,String>] :tags
554
+ # A list of tags to add to the created profiling group.
555
+ #
556
+ # @return [Types::CreateProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
557
+ #
558
+ # * {Types::CreateProfilingGroupResponse#profiling_group #profiling_group} => Types::ProfilingGroupDescription
559
+ #
560
+ # @example Request syntax with placeholder values
561
+ #
562
+ # resp = client.create_profiling_group({
563
+ # agent_orchestration_config: {
564
+ # profiling_enabled: false, # required
565
+ # },
566
+ # client_token: "ClientToken", # required
567
+ # compute_platform: "AWSLambda", # accepts AWSLambda, Default
568
+ # profiling_group_name: "ProfilingGroupName", # required
569
+ # tags: {
570
+ # "String" => "String",
571
+ # },
572
+ # })
573
+ #
574
+ # @example Response structure
575
+ #
576
+ # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
577
+ # resp.profiling_group.arn #=> String
578
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
579
+ # resp.profiling_group.created_at #=> Time
580
+ # resp.profiling_group.name #=> String
581
+ # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
582
+ # resp.profiling_group.profiling_status.latest_agent_profile_reported_at #=> Time
583
+ # resp.profiling_group.profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
584
+ # resp.profiling_group.profiling_status.latest_aggregated_profile.start #=> Time
585
+ # resp.profiling_group.tags #=> Hash
586
+ # resp.profiling_group.tags["String"] #=> String
587
+ # resp.profiling_group.updated_at #=> Time
588
+ #
589
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/CreateProfilingGroup AWS API Documentation
590
+ #
591
+ # @overload create_profiling_group(params = {})
592
+ # @param [Hash] params ({})
593
+ def create_profiling_group(params = {}, options = {})
594
+ req = build_request(:create_profiling_group, params)
595
+ req.send_request(options)
596
+ end
597
+
598
+ # Deletes a profiling group.
599
+ #
600
+ # @option params [required, String] :profiling_group_name
601
+ # The name of the profiling group to delete.
602
+ #
603
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
604
+ #
605
+ # @example Request syntax with placeholder values
606
+ #
607
+ # resp = client.delete_profiling_group({
608
+ # profiling_group_name: "ProfilingGroupName", # required
609
+ # })
610
+ #
611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DeleteProfilingGroup AWS API Documentation
612
+ #
613
+ # @overload delete_profiling_group(params = {})
614
+ # @param [Hash] params ({})
615
+ def delete_profiling_group(params = {}, options = {})
616
+ req = build_request(:delete_profiling_group, params)
617
+ req.send_request(options)
618
+ end
619
+
620
+ # Returns a [ `ProfilingGroupDescription` ][1] object that contains
621
+ # information about the requested profiling group.
622
+ #
623
+ #
624
+ #
625
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
626
+ #
627
+ # @option params [required, String] :profiling_group_name
628
+ # The name of the profiling group to get information about.
629
+ #
630
+ # @return [Types::DescribeProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
631
+ #
632
+ # * {Types::DescribeProfilingGroupResponse#profiling_group #profiling_group} => Types::ProfilingGroupDescription
633
+ #
634
+ # @example Request syntax with placeholder values
635
+ #
636
+ # resp = client.describe_profiling_group({
637
+ # profiling_group_name: "ProfilingGroupName", # required
638
+ # })
639
+ #
640
+ # @example Response structure
641
+ #
642
+ # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
643
+ # resp.profiling_group.arn #=> String
644
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
645
+ # resp.profiling_group.created_at #=> Time
646
+ # resp.profiling_group.name #=> String
647
+ # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
648
+ # resp.profiling_group.profiling_status.latest_agent_profile_reported_at #=> Time
649
+ # resp.profiling_group.profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
650
+ # resp.profiling_group.profiling_status.latest_aggregated_profile.start #=> Time
651
+ # resp.profiling_group.tags #=> Hash
652
+ # resp.profiling_group.tags["String"] #=> String
653
+ # resp.profiling_group.updated_at #=> Time
654
+ #
655
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/DescribeProfilingGroup AWS API Documentation
656
+ #
657
+ # @overload describe_profiling_group(params = {})
658
+ # @param [Hash] params ({})
659
+ def describe_profiling_group(params = {}, options = {})
660
+ req = build_request(:describe_profiling_group, params)
661
+ req.send_request(options)
662
+ end
663
+
664
+ # Returns a list of [ `FindingsReportSummary` ][1] objects that contain
665
+ # analysis results for all profiling groups in your AWS account.
666
+ #
667
+ #
668
+ #
669
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html
670
+ #
671
+ # @option params [Boolean] :daily_reports_only
672
+ # A `Boolean` value indicating whether to only return reports from daily
673
+ # profiles. If set to `True`, only analysis data from daily profiles is
674
+ # returned. If set to `False`, analysis data is returned from smaller
675
+ # time windows (for example, one hour).
676
+ #
677
+ # @option params [Integer] :max_results
678
+ # The maximum number of results returned by `
679
+ # GetFindingsReportAccountSummary` in paginated output. When this
680
+ # parameter is used, `GetFindingsReportAccountSummary` only returns
681
+ # `maxResults` results in a single page along with a `nextToken`
682
+ # response element. The remaining results of the initial request can be
683
+ # seen by sending another `GetFindingsReportAccountSummary` request with
684
+ # the returned `nextToken` value.
685
+ #
686
+ # @option params [String] :next_token
687
+ # The `nextToken` value returned from a previous paginated
688
+ # `GetFindingsReportAccountSummary` request where `maxResults` was used
689
+ # and the results exceeded the value of that parameter. Pagination
690
+ # continues from the end of the previous results that returned the
691
+ # `nextToken` value.
692
+ #
693
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
694
+ # to retrieve the next items in a list and not for other programmatic
695
+ # purposes.
696
+ #
697
+ # </note>
698
+ #
699
+ # @return [Types::GetFindingsReportAccountSummaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
700
+ #
701
+ # * {Types::GetFindingsReportAccountSummaryResponse#next_token #next_token} => String
702
+ # * {Types::GetFindingsReportAccountSummaryResponse#report_summaries #report_summaries} => Array&lt;Types::FindingsReportSummary&gt;
703
+ #
704
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
705
+ #
706
+ # @example Request syntax with placeholder values
707
+ #
708
+ # resp = client.get_findings_report_account_summary({
709
+ # daily_reports_only: false,
710
+ # max_results: 1,
711
+ # next_token: "PaginationToken",
712
+ # })
713
+ #
714
+ # @example Response structure
715
+ #
716
+ # resp.next_token #=> String
717
+ # resp.report_summaries #=> Array
718
+ # resp.report_summaries[0].id #=> String
719
+ # resp.report_summaries[0].profile_end_time #=> Time
720
+ # resp.report_summaries[0].profile_start_time #=> Time
721
+ # resp.report_summaries[0].profiling_group_name #=> String
722
+ # resp.report_summaries[0].total_number_of_findings #=> Integer
723
+ #
724
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetFindingsReportAccountSummary AWS API Documentation
725
+ #
726
+ # @overload get_findings_report_account_summary(params = {})
727
+ # @param [Hash] params ({})
728
+ def get_findings_report_account_summary(params = {}, options = {})
729
+ req = build_request(:get_findings_report_account_summary, params)
730
+ req.send_request(options)
731
+ end
732
+
733
+ # Get the current configuration for anomaly notifications for a
734
+ # profiling group.
735
+ #
736
+ # @option params [required, String] :profiling_group_name
737
+ # The name of the profiling group we want to get the notification
738
+ # configuration for.
739
+ #
740
+ # @return [Types::GetNotificationConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
741
+ #
742
+ # * {Types::GetNotificationConfigurationResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
743
+ #
744
+ # @example Request syntax with placeholder values
745
+ #
746
+ # resp = client.get_notification_configuration({
747
+ # profiling_group_name: "ProfilingGroupName", # required
748
+ # })
749
+ #
750
+ # @example Response structure
751
+ #
752
+ # resp.notification_configuration.channels #=> Array
753
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
754
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
755
+ # resp.notification_configuration.channels[0].id #=> String
756
+ # resp.notification_configuration.channels[0].uri #=> String
757
+ #
758
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetNotificationConfiguration AWS API Documentation
759
+ #
760
+ # @overload get_notification_configuration(params = {})
761
+ # @param [Hash] params ({})
762
+ def get_notification_configuration(params = {}, options = {})
763
+ req = build_request(:get_notification_configuration, params)
764
+ req.send_request(options)
765
+ end
766
+
767
+ # Returns the JSON-formatted resource-based policy on a profiling group.
768
+ #
769
+ # @option params [required, String] :profiling_group_name
770
+ # The name of the profiling group.
771
+ #
772
+ # @return [Types::GetPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
773
+ #
774
+ # * {Types::GetPolicyResponse#policy #policy} => String
775
+ # * {Types::GetPolicyResponse#revision_id #revision_id} => String
776
+ #
777
+ # @example Request syntax with placeholder values
778
+ #
779
+ # resp = client.get_policy({
780
+ # profiling_group_name: "ProfilingGroupName", # required
781
+ # })
782
+ #
783
+ # @example Response structure
784
+ #
785
+ # resp.policy #=> String
786
+ # resp.revision_id #=> String
787
+ #
788
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetPolicy AWS API Documentation
789
+ #
790
+ # @overload get_policy(params = {})
791
+ # @param [Hash] params ({})
792
+ def get_policy(params = {}, options = {})
793
+ req = build_request(:get_policy, params)
794
+ req.send_request(options)
795
+ end
796
+
797
+ # Gets the aggregated profile of a profiling group for a specified time
798
+ # range. Amazon CodeGuru Profiler collects posted agent profiles for a
799
+ # profiling group into aggregated profiles.
800
+ #
801
+ # <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>
802
+ #
803
+ # @option params [String] :accept
804
+ # The format of the returned profiling data. The format maps to the
805
+ # `Accept` and `Content-Type` headers of the HTTP request. You can
806
+ # specify one of the following: or the default .
807
+ #
808
+ # <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>
809
+ #
810
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
811
+ # The end time of the requested profile. Specify using the ISO 8601
812
+ # format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
813
+ # past June 1, 2020 1:15:02 PM UTC.
814
+ #
815
+ # If you specify `endTime`, then you must also specify `period` or
816
+ # `startTime`, but not both.
817
+ #
818
+ # @option params [Integer] :max_depth
819
+ # The maximum depth of the stacks in the code that is represented in the
820
+ # aggregated profile. For example, if CodeGuru Profiler finds a method
821
+ # `A`, which calls method `B`, which calls method `C`, which calls
822
+ # method `D`, then the depth is 4. If the `maxDepth` is set to 2, then
823
+ # the aggregated profile contains representations of methods `A` and
824
+ # `B`.
825
+ #
826
+ # @option params [String] :period
827
+ # Used with `startTime` or `endTime` to specify the time range for the
828
+ # returned aggregated profile. Specify using the ISO 8601 format. For
829
+ # example, `P1DT1H1M1S`.
830
+ #
831
+ # <p> To get the latest aggregated profile, specify only <code>period</code>. </p>
832
+ #
833
+ # @option params [required, String] :profiling_group_name
834
+ # The name of the profiling group to get.
835
+ #
836
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
837
+ # The start time of the profile to get. Specify using the ISO 8601
838
+ # format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond
839
+ # past June 1, 2020 1:15:02 PM UTC.
840
+ #
841
+ # <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>
842
+ #
843
+ # @return [Types::GetProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
844
+ #
845
+ # * {Types::GetProfileResponse#content_encoding #content_encoding} => String
846
+ # * {Types::GetProfileResponse#content_type #content_type} => String
847
+ # * {Types::GetProfileResponse#profile #profile} => String
848
+ #
849
+ # @example Request syntax with placeholder values
850
+ #
851
+ # resp = client.get_profile({
852
+ # accept: "String",
853
+ # end_time: Time.now,
854
+ # max_depth: 1,
855
+ # period: "Period",
856
+ # profiling_group_name: "ProfilingGroupName", # required
857
+ # start_time: Time.now,
858
+ # })
859
+ #
860
+ # @example Response structure
861
+ #
862
+ # resp.content_encoding #=> String
863
+ # resp.content_type #=> String
864
+ # resp.profile #=> String
865
+ #
866
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile AWS API Documentation
867
+ #
868
+ # @overload get_profile(params = {})
869
+ # @param [Hash] params ({})
870
+ def get_profile(params = {}, options = {})
871
+ req = build_request(:get_profile, params)
872
+ req.send_request(options)
873
+ end
874
+
875
+ # Returns a list of [ `Recommendation` ][1] objects that contain
876
+ # recommendations for a profiling group for a given time period. A list
877
+ # of [ `Anomaly` ][2] objects that contains details about anomalies
878
+ # detected in the profiling group for the same time period is also
879
+ # returned.
880
+ #
881
+ #
882
+ #
883
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html
884
+ # [2]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html
885
+ #
886
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
887
+ # The start time of the profile to get analysis data about. You must
888
+ # specify `startTime` and `endTime`. This is specified using the ISO
889
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
890
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
891
+ #
892
+ # @option params [String] :locale
893
+ # The language used to provide analysis. Specify using a string that is
894
+ # one of the following `BCP 47` language codes.
895
+ #
896
+ # * `de-DE` - German, Germany
897
+ #
898
+ # * `en-GB` - English, United Kingdom
899
+ #
900
+ # * `en-US` - English, United States
901
+ #
902
+ # * `es-ES` - Spanish, Spain
903
+ #
904
+ # * `fr-FR` - French, France
905
+ #
906
+ # * `it-IT` - Italian, Italy
907
+ #
908
+ # * `ja-JP` - Japanese, Japan
909
+ #
910
+ # * `ko-KR` - Korean, Republic of Korea
911
+ #
912
+ # * `pt-BR` - Portugese, Brazil
913
+ #
914
+ # * `zh-CN` - Chinese, China
915
+ #
916
+ # * `zh-TW` - Chinese, Taiwan
917
+ #
918
+ # @option params [required, String] :profiling_group_name
919
+ # The name of the profiling group to get analysis data about.
920
+ #
921
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
922
+ # The end time of the profile to get analysis data about. You must
923
+ # specify `startTime` and `endTime`. This is specified using the ISO
924
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
925
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
926
+ #
927
+ # @return [Types::GetRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
928
+ #
929
+ # * {Types::GetRecommendationsResponse#anomalies #anomalies} => Array&lt;Types::Anomaly&gt;
930
+ # * {Types::GetRecommendationsResponse#profile_end_time #profile_end_time} => Time
931
+ # * {Types::GetRecommendationsResponse#profile_start_time #profile_start_time} => Time
932
+ # * {Types::GetRecommendationsResponse#profiling_group_name #profiling_group_name} => String
933
+ # * {Types::GetRecommendationsResponse#recommendations #recommendations} => Array&lt;Types::Recommendation&gt;
934
+ #
935
+ # @example Request syntax with placeholder values
936
+ #
937
+ # resp = client.get_recommendations({
938
+ # end_time: Time.now, # required
939
+ # locale: "Locale",
940
+ # profiling_group_name: "ProfilingGroupName", # required
941
+ # start_time: Time.now, # required
942
+ # })
943
+ #
944
+ # @example Response structure
945
+ #
946
+ # resp.anomalies #=> Array
947
+ # resp.anomalies[0].instances #=> Array
948
+ # resp.anomalies[0].instances[0].end_time #=> Time
949
+ # resp.anomalies[0].instances[0].id #=> String
950
+ # resp.anomalies[0].instances[0].start_time #=> Time
951
+ # resp.anomalies[0].instances[0].user_feedback.type #=> String, one of "Negative", "Positive"
952
+ # resp.anomalies[0].metric.frame_name #=> String
953
+ # resp.anomalies[0].metric.thread_states #=> Array
954
+ # resp.anomalies[0].metric.thread_states[0] #=> String
955
+ # resp.anomalies[0].metric.type #=> String, one of "AggregatedRelativeTotalTime"
956
+ # resp.anomalies[0].reason #=> String
957
+ # resp.profile_end_time #=> Time
958
+ # resp.profile_start_time #=> Time
959
+ # resp.profiling_group_name #=> String
960
+ # resp.recommendations #=> Array
961
+ # resp.recommendations[0].all_matches_count #=> Integer
962
+ # resp.recommendations[0].all_matches_sum #=> Float
963
+ # resp.recommendations[0].end_time #=> Time
964
+ # resp.recommendations[0].pattern.counters_to_aggregate #=> Array
965
+ # resp.recommendations[0].pattern.counters_to_aggregate[0] #=> String
966
+ # resp.recommendations[0].pattern.description #=> String
967
+ # resp.recommendations[0].pattern.id #=> String
968
+ # resp.recommendations[0].pattern.name #=> String
969
+ # resp.recommendations[0].pattern.resolution_steps #=> String
970
+ # resp.recommendations[0].pattern.target_frames #=> Array
971
+ # resp.recommendations[0].pattern.target_frames[0] #=> Array
972
+ # resp.recommendations[0].pattern.target_frames[0][0] #=> String
973
+ # resp.recommendations[0].pattern.threshold_percent #=> Float
974
+ # resp.recommendations[0].start_time #=> Time
975
+ # resp.recommendations[0].top_matches #=> Array
976
+ # resp.recommendations[0].top_matches[0].frame_address #=> String
977
+ # resp.recommendations[0].top_matches[0].target_frames_index #=> Integer
978
+ # resp.recommendations[0].top_matches[0].threshold_breach_value #=> Float
979
+ #
980
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetRecommendations AWS API Documentation
981
+ #
982
+ # @overload get_recommendations(params = {})
983
+ # @param [Hash] params ({})
984
+ def get_recommendations(params = {}, options = {})
985
+ req = build_request(:get_recommendations, params)
986
+ req.send_request(options)
987
+ end
988
+
989
+ # List the available reports for a given profiling group and time range.
990
+ #
991
+ # @option params [Boolean] :daily_reports_only
992
+ # A `Boolean` value indicating whether to only return reports from daily
993
+ # profiles. If set to `True`, only analysis data from daily profiles is
994
+ # returned. If set to `False`, analysis data is returned from smaller
995
+ # time windows (for example, one hour).
996
+ #
997
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
998
+ # The end time of the profile to get analysis data about. You must
999
+ # specify `startTime` and `endTime`. This is specified using the ISO
1000
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
1001
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
1002
+ #
1003
+ # @option params [Integer] :max_results
1004
+ # The maximum number of report results returned by `ListFindingsReports`
1005
+ # in paginated output. When this parameter is used,
1006
+ # `ListFindingsReports` only returns `maxResults` results in a single
1007
+ # page along with a `nextToken` response element. The remaining results
1008
+ # of the initial request can be seen by sending another
1009
+ # `ListFindingsReports` request with the returned `nextToken` value.
1010
+ #
1011
+ # @option params [String] :next_token
1012
+ # The `nextToken` value returned from a previous paginated
1013
+ # `ListFindingsReportsRequest` request where `maxResults` was used and
1014
+ # the results exceeded the value of that parameter. Pagination continues
1015
+ # from the end of the previous results that returned the `nextToken`
1016
+ # value.
1017
+ #
1018
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
1019
+ # to retrieve the next items in a list and not for other programmatic
1020
+ # purposes.
1021
+ #
1022
+ # </note>
1023
+ #
1024
+ # @option params [required, String] :profiling_group_name
1025
+ # The name of the profiling group from which to search for analysis
1026
+ # data.
1027
+ #
1028
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1029
+ # The start time of the profile to get analysis data about. You must
1030
+ # specify `startTime` and `endTime`. This is specified using the ISO
1031
+ # 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1
1032
+ # millisecond past June 1, 2020 1:15:02 PM UTC.
1033
+ #
1034
+ # @return [Types::ListFindingsReportsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1035
+ #
1036
+ # * {Types::ListFindingsReportsResponse#findings_report_summaries #findings_report_summaries} => Array&lt;Types::FindingsReportSummary&gt;
1037
+ # * {Types::ListFindingsReportsResponse#next_token #next_token} => String
1038
+ #
1039
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1040
+ #
1041
+ # @example Request syntax with placeholder values
1042
+ #
1043
+ # resp = client.list_findings_reports({
1044
+ # daily_reports_only: false,
1045
+ # end_time: Time.now, # required
1046
+ # max_results: 1,
1047
+ # next_token: "PaginationToken",
1048
+ # profiling_group_name: "ProfilingGroupName", # required
1049
+ # start_time: Time.now, # required
1050
+ # })
1051
+ #
1052
+ # @example Response structure
1053
+ #
1054
+ # resp.findings_report_summaries #=> Array
1055
+ # resp.findings_report_summaries[0].id #=> String
1056
+ # resp.findings_report_summaries[0].profile_end_time #=> Time
1057
+ # resp.findings_report_summaries[0].profile_start_time #=> Time
1058
+ # resp.findings_report_summaries[0].profiling_group_name #=> String
1059
+ # resp.findings_report_summaries[0].total_number_of_findings #=> Integer
1060
+ # resp.next_token #=> String
1061
+ #
1062
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListFindingsReports AWS API Documentation
1063
+ #
1064
+ # @overload list_findings_reports(params = {})
1065
+ # @param [Hash] params ({})
1066
+ def list_findings_reports(params = {}, options = {})
1067
+ req = build_request(:list_findings_reports, params)
1068
+ req.send_request(options)
1069
+ end
1070
+
1071
+ # Lists the start times of the available aggregated profiles of a
1072
+ # profiling group for an aggregation period within the specified time
1073
+ # range.
1074
+ #
1075
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1076
+ # The end time of the time range from which to list the profiles.
1077
+ #
1078
+ # @option params [Integer] :max_results
1079
+ # The maximum number of profile time results returned by
1080
+ # `ListProfileTimes` in paginated output. When this parameter is used,
1081
+ # `ListProfileTimes` only returns `maxResults` results in a single page
1082
+ # with a `nextToken` response element. The remaining results of the
1083
+ # initial request can be seen by sending another `ListProfileTimes`
1084
+ # request with the returned `nextToken` value.
1085
+ #
1086
+ # @option params [String] :next_token
1087
+ # The `nextToken` value returned from a previous paginated
1088
+ # `ListProfileTimes` request where `maxResults` was used and the results
1089
+ # exceeded the value of that parameter. Pagination continues from the
1090
+ # end of the previous results that returned the `nextToken` value.
1091
+ #
1092
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
1093
+ # to retrieve the next items in a list and not for other programmatic
1094
+ # purposes.
1095
+ #
1096
+ # </note>
1097
+ #
1098
+ # @option params [String] :order_by
1099
+ # The order (ascending or descending by start time of the profile) to
1100
+ # use when listing profiles. Defaults to `TIMESTAMP_DESCENDING`.
1101
+ #
1102
+ # @option params [required, String] :period
1103
+ # The aggregation period. This specifies the period during which an
1104
+ # aggregation profile collects posted agent profiles for a profiling
1105
+ # group. There are 3 valid values.
1106
+ #
1107
+ # * `P1D` — 1 day
1108
+ #
1109
+ # * `PT1H` — 1 hour
1110
+ #
1111
+ # * `PT5M` — 5 minutes
1112
+ #
1113
+ # @option params [required, String] :profiling_group_name
1114
+ # The name of the profiling group.
1115
+ #
1116
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1117
+ # The start time of the time range from which to list the profiles.
1118
+ #
1119
+ # @return [Types::ListProfileTimesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1120
+ #
1121
+ # * {Types::ListProfileTimesResponse#next_token #next_token} => String
1122
+ # * {Types::ListProfileTimesResponse#profile_times #profile_times} => Array&lt;Types::ProfileTime&gt;
1123
+ #
1124
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1125
+ #
1126
+ # @example Request syntax with placeholder values
1127
+ #
1128
+ # resp = client.list_profile_times({
1129
+ # end_time: Time.now, # required
1130
+ # max_results: 1,
1131
+ # next_token: "PaginationToken",
1132
+ # order_by: "TimestampAscending", # accepts TimestampAscending, TimestampDescending
1133
+ # period: "P1D", # required, accepts P1D, PT1H, PT5M
1134
+ # profiling_group_name: "ProfilingGroupName", # required
1135
+ # start_time: Time.now, # required
1136
+ # })
1137
+ #
1138
+ # @example Response structure
1139
+ #
1140
+ # resp.next_token #=> String
1141
+ # resp.profile_times #=> Array
1142
+ # resp.profile_times[0].start #=> Time
1143
+ #
1144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimes AWS API Documentation
1145
+ #
1146
+ # @overload list_profile_times(params = {})
1147
+ # @param [Hash] params ({})
1148
+ def list_profile_times(params = {}, options = {})
1149
+ req = build_request(:list_profile_times, params)
1150
+ req.send_request(options)
1151
+ end
1152
+
1153
+ # Returns a list of profiling groups. The profiling groups are returned
1154
+ # as [ `ProfilingGroupDescription` ][1] objects.
1155
+ #
1156
+ #
1157
+ #
1158
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
1159
+ #
1160
+ # @option params [Boolean] :include_description
1161
+ # A `Boolean` value indicating whether to include a description. If
1162
+ # `true`, then a list of [ `ProfilingGroupDescription` ][1] objects that
1163
+ # contain detailed information about profiling groups is returned. If
1164
+ # `false`, then a list of profiling group names is returned.
1165
+ #
1166
+ #
1167
+ #
1168
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html
1169
+ #
1170
+ # @option params [Integer] :max_results
1171
+ # The maximum number of profiling groups results returned by
1172
+ # `ListProfilingGroups` in paginated output. When this parameter is
1173
+ # used, `ListProfilingGroups` only returns `maxResults` results in a
1174
+ # single page along with a `nextToken` response element. The remaining
1175
+ # results of the initial request can be seen by sending another
1176
+ # `ListProfilingGroups` request with the returned `nextToken` value.
1177
+ #
1178
+ # @option params [String] :next_token
1179
+ # The `nextToken` value returned from a previous paginated
1180
+ # `ListProfilingGroups` request where `maxResults` was used and the
1181
+ # results exceeded the value of that parameter. Pagination continues
1182
+ # from the end of the previous results that returned the `nextToken`
1183
+ # value.
1184
+ #
1185
+ # <note markdown="1"> This token should be treated as an opaque identifier that is only used
1186
+ # to retrieve the next items in a list and not for other programmatic
1187
+ # purposes.
1188
+ #
1189
+ # </note>
1190
+ #
1191
+ # @return [Types::ListProfilingGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1192
+ #
1193
+ # * {Types::ListProfilingGroupsResponse#next_token #next_token} => String
1194
+ # * {Types::ListProfilingGroupsResponse#profiling_group_names #profiling_group_names} => Array&lt;String&gt;
1195
+ # * {Types::ListProfilingGroupsResponse#profiling_groups #profiling_groups} => Array&lt;Types::ProfilingGroupDescription&gt;
1196
+ #
1197
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1198
+ #
1199
+ # @example Request syntax with placeholder values
1200
+ #
1201
+ # resp = client.list_profiling_groups({
1202
+ # include_description: false,
1203
+ # max_results: 1,
1204
+ # next_token: "PaginationToken",
1205
+ # })
1206
+ #
1207
+ # @example Response structure
1208
+ #
1209
+ # resp.next_token #=> String
1210
+ # resp.profiling_group_names #=> Array
1211
+ # resp.profiling_group_names[0] #=> String
1212
+ # resp.profiling_groups #=> Array
1213
+ # resp.profiling_groups[0].agent_orchestration_config.profiling_enabled #=> Boolean
1214
+ # resp.profiling_groups[0].arn #=> String
1215
+ # resp.profiling_groups[0].compute_platform #=> String, one of "AWSLambda", "Default"
1216
+ # resp.profiling_groups[0].created_at #=> Time
1217
+ # resp.profiling_groups[0].name #=> String
1218
+ # resp.profiling_groups[0].profiling_status.latest_agent_orchestrated_at #=> Time
1219
+ # resp.profiling_groups[0].profiling_status.latest_agent_profile_reported_at #=> Time
1220
+ # resp.profiling_groups[0].profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
1221
+ # resp.profiling_groups[0].profiling_status.latest_aggregated_profile.start #=> Time
1222
+ # resp.profiling_groups[0].tags #=> Hash
1223
+ # resp.profiling_groups[0].tags["String"] #=> String
1224
+ # resp.profiling_groups[0].updated_at #=> Time
1225
+ #
1226
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfilingGroups AWS API Documentation
1227
+ #
1228
+ # @overload list_profiling_groups(params = {})
1229
+ # @param [Hash] params ({})
1230
+ def list_profiling_groups(params = {}, options = {})
1231
+ req = build_request(:list_profiling_groups, params)
1232
+ req.send_request(options)
1233
+ end
1234
+
1235
+ # Returns a list of the tags that are assigned to a specified resource.
1236
+ #
1237
+ # @option params [required, String] :resource_arn
1238
+ # The Amazon Resource Name (ARN) of the resource that contains the tags
1239
+ # to return.
1240
+ #
1241
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1242
+ #
1243
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1244
+ #
1245
+ # @example Request syntax with placeholder values
1246
+ #
1247
+ # resp = client.list_tags_for_resource({
1248
+ # resource_arn: "ProfilingGroupArn", # required
1249
+ # })
1250
+ #
1251
+ # @example Response structure
1252
+ #
1253
+ # resp.tags #=> Hash
1254
+ # resp.tags["String"] #=> String
1255
+ #
1256
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListTagsForResource AWS API Documentation
1257
+ #
1258
+ # @overload list_tags_for_resource(params = {})
1259
+ # @param [Hash] params ({})
1260
+ def list_tags_for_resource(params = {}, options = {})
1261
+ req = build_request(:list_tags_for_resource, params)
1262
+ req.send_request(options)
1263
+ end
1264
+
1265
+ # Submits profiling data to an aggregated profile of a profiling group.
1266
+ # To get an aggregated profile that is created with this profiling data,
1267
+ # use [ `GetProfile` ][1].
1268
+ #
1269
+ #
1270
+ #
1271
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html
1272
+ #
1273
+ # @option params [required, String, IO] :agent_profile
1274
+ # The submitted profiling data.
1275
+ #
1276
+ # @option params [required, String] :content_type
1277
+ # The format of the submitted profiling data. The format maps to the
1278
+ # `Accept` and `Content-Type` headers of the HTTP request. You can
1279
+ # specify one of the following: or the default .
1280
+ #
1281
+ # <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>
1282
+ #
1283
+ # @option params [String] :profile_token
1284
+ # Amazon CodeGuru Profiler uses this universally unique identifier
1285
+ # (UUID) to prevent the accidental submission of duplicate profiling
1286
+ # data if there are failures and retries.
1287
+ #
1288
+ # **A suitable default value is auto-generated.** You should normally
1289
+ # not need to pass this option.**
1290
+ #
1291
+ # @option params [required, String] :profiling_group_name
1292
+ # The name of the profiling group with the aggregated profile that
1293
+ # receives the submitted profiling data.
1294
+ #
1295
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1296
+ #
1297
+ # @example Request syntax with placeholder values
1298
+ #
1299
+ # resp = client.post_agent_profile({
1300
+ # agent_profile: "data", # required
1301
+ # content_type: "String", # required
1302
+ # profile_token: "ClientToken",
1303
+ # profiling_group_name: "ProfilingGroupName", # required
1304
+ # })
1305
+ #
1306
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PostAgentProfile AWS API Documentation
1307
+ #
1308
+ # @overload post_agent_profile(params = {})
1309
+ # @param [Hash] params ({})
1310
+ def post_agent_profile(params = {}, options = {})
1311
+ req = build_request(:post_agent_profile, params)
1312
+ req.send_request(options)
1313
+ end
1314
+
1315
+ # Adds permissions to a profiling group's resource-based policy that
1316
+ # are provided using an action group. If a profiling group doesn't have
1317
+ # a resource-based policy, one is created for it using the permissions
1318
+ # in the action group and the roles and users in the `principals`
1319
+ # parameter.
1320
+ #
1321
+ # <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>
1322
+ #
1323
+ # @option params [required, String] :action_group
1324
+ # Specifies an action group that contains permissions to add to a
1325
+ # profiling group resource. One action group is supported,
1326
+ # `agentPermissions`, which grants permission to perform actions
1327
+ # required by the profiling agent, `ConfigureAgent` and
1328
+ # `PostAgentProfile` permissions.
1329
+ #
1330
+ # @option params [required, Array<String>] :principals
1331
+ # A list ARNs for the roles and users you want to grant access to the
1332
+ # profiling group. Wildcards are not are supported in the ARNs.
1333
+ #
1334
+ # @option params [required, String] :profiling_group_name
1335
+ # The name of the profiling group to grant access to.
1336
+ #
1337
+ # @option params [String] :revision_id
1338
+ # A universally unique identifier (UUID) for the revision of the policy
1339
+ # you are adding to the profiling group. Do not specify this when you
1340
+ # add permissions to a profiling group for the first time. If a policy
1341
+ # already exists on the profiling group, you must specify the
1342
+ # `revisionId`.
1343
+ #
1344
+ # @return [Types::PutPermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1345
+ #
1346
+ # * {Types::PutPermissionResponse#policy #policy} => String
1347
+ # * {Types::PutPermissionResponse#revision_id #revision_id} => String
1348
+ #
1349
+ # @example Request syntax with placeholder values
1350
+ #
1351
+ # resp = client.put_permission({
1352
+ # action_group: "agentPermissions", # required, accepts agentPermissions
1353
+ # principals: ["Principal"], # required
1354
+ # profiling_group_name: "ProfilingGroupName", # required
1355
+ # revision_id: "RevisionId",
1356
+ # })
1357
+ #
1358
+ # @example Response structure
1359
+ #
1360
+ # resp.policy #=> String
1361
+ # resp.revision_id #=> String
1362
+ #
1363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/PutPermission AWS API Documentation
1364
+ #
1365
+ # @overload put_permission(params = {})
1366
+ # @param [Hash] params ({})
1367
+ def put_permission(params = {}, options = {})
1368
+ req = build_request(:put_permission, params)
1369
+ req.send_request(options)
1370
+ end
1371
+
1372
+ # Remove one anomaly notifications channel for a profiling group.
1373
+ #
1374
+ # @option params [required, String] :channel_id
1375
+ # The id of the channel that we want to stop receiving notifications.
1376
+ #
1377
+ # @option params [required, String] :profiling_group_name
1378
+ # The name of the profiling group we want to change notification
1379
+ # configuration for.
1380
+ #
1381
+ # @return [Types::RemoveNotificationChannelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1382
+ #
1383
+ # * {Types::RemoveNotificationChannelResponse#notification_configuration #notification_configuration} => Types::NotificationConfiguration
1384
+ #
1385
+ # @example Request syntax with placeholder values
1386
+ #
1387
+ # resp = client.remove_notification_channel({
1388
+ # channel_id: "ChannelId", # required
1389
+ # profiling_group_name: "ProfilingGroupName", # required
1390
+ # })
1391
+ #
1392
+ # @example Response structure
1393
+ #
1394
+ # resp.notification_configuration.channels #=> Array
1395
+ # resp.notification_configuration.channels[0].event_publishers #=> Array
1396
+ # resp.notification_configuration.channels[0].event_publishers[0] #=> String, one of "AnomalyDetection"
1397
+ # resp.notification_configuration.channels[0].id #=> String
1398
+ # resp.notification_configuration.channels[0].uri #=> String
1399
+ #
1400
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemoveNotificationChannel AWS API Documentation
1401
+ #
1402
+ # @overload remove_notification_channel(params = {})
1403
+ # @param [Hash] params ({})
1404
+ def remove_notification_channel(params = {}, options = {})
1405
+ req = build_request(:remove_notification_channel, params)
1406
+ req.send_request(options)
1407
+ end
1408
+
1409
+ # Removes permissions from a profiling group's resource-based policy
1410
+ # that are provided using an action group. The one supported action
1411
+ # group that can be removed is `agentPermission` which grants
1412
+ # `ConfigureAgent` and `PostAgent` permissions. For more information,
1413
+ # see [Resource-based policies in CodeGuru Profiler][1] in the *Amazon
1414
+ # CodeGuru Profiler User Guide*, [ `ConfigureAgent` ][2], and [
1415
+ # `PostAgentProfile` ][3].
1416
+ #
1417
+ #
1418
+ #
1419
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html
1420
+ # [2]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html
1421
+ # [3]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html
1422
+ #
1423
+ # @option params [required, String] :action_group
1424
+ # Specifies an action group that contains the permissions to remove from
1425
+ # a profiling group's resource-based policy. One action group is
1426
+ # supported, `agentPermissions`, which grants `ConfigureAgent` and
1427
+ # `PostAgentProfile` permissions.
1428
+ #
1429
+ # @option params [required, String] :profiling_group_name
1430
+ # The name of the profiling group.
1431
+ #
1432
+ # @option params [required, String] :revision_id
1433
+ # A universally unique identifier (UUID) for the revision of the
1434
+ # resource-based policy from which you want to remove permissions.
1435
+ #
1436
+ # @return [Types::RemovePermissionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1437
+ #
1438
+ # * {Types::RemovePermissionResponse#policy #policy} => String
1439
+ # * {Types::RemovePermissionResponse#revision_id #revision_id} => String
1440
+ #
1441
+ # @example Request syntax with placeholder values
1442
+ #
1443
+ # resp = client.remove_permission({
1444
+ # action_group: "agentPermissions", # required, accepts agentPermissions
1445
+ # profiling_group_name: "ProfilingGroupName", # required
1446
+ # revision_id: "RevisionId", # required
1447
+ # })
1448
+ #
1449
+ # @example Response structure
1450
+ #
1451
+ # resp.policy #=> String
1452
+ # resp.revision_id #=> String
1453
+ #
1454
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/RemovePermission AWS API Documentation
1455
+ #
1456
+ # @overload remove_permission(params = {})
1457
+ # @param [Hash] params ({})
1458
+ def remove_permission(params = {}, options = {})
1459
+ req = build_request(:remove_permission, params)
1460
+ req.send_request(options)
1461
+ end
1462
+
1463
+ # Sends feedback to CodeGuru Profiler about whether the anomaly detected
1464
+ # by the analysis is useful or not.
1465
+ #
1466
+ # @option params [required, String] :anomaly_instance_id
1467
+ # The universally unique identifier (UUID) of the [ `AnomalyInstance`
1468
+ # ][1] object that is included in the analysis data.
1469
+ #
1470
+ #
1471
+ #
1472
+ # [1]: https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AnomalyInstance.html
1473
+ #
1474
+ # @option params [String] :comment
1475
+ # Optional feedback about this anomaly.
1476
+ #
1477
+ # @option params [required, String] :profiling_group_name
1478
+ # The name of the profiling group that is associated with the analysis
1479
+ # data.
1480
+ #
1481
+ # @option params [required, String] :type
1482
+ # The feedback tpye. Thee are two valid values, `Positive` and
1483
+ # `Negative`.
1484
+ #
1485
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1486
+ #
1487
+ # @example Request syntax with placeholder values
1488
+ #
1489
+ # resp = client.submit_feedback({
1490
+ # anomaly_instance_id: "AnomalyInstanceId", # required
1491
+ # comment: "String",
1492
+ # profiling_group_name: "ProfilingGroupName", # required
1493
+ # type: "Negative", # required, accepts Negative, Positive
1494
+ # })
1495
+ #
1496
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/SubmitFeedback AWS API Documentation
1497
+ #
1498
+ # @overload submit_feedback(params = {})
1499
+ # @param [Hash] params ({})
1500
+ def submit_feedback(params = {}, options = {})
1501
+ req = build_request(:submit_feedback, params)
1502
+ req.send_request(options)
1503
+ end
1504
+
1505
+ # Use to assign one or more tags to a resource.
1506
+ #
1507
+ # @option params [required, String] :resource_arn
1508
+ # The Amazon Resource Name (ARN) of the resource that the tags are added
1509
+ # to.
1510
+ #
1511
+ # @option params [required, Hash<String,String>] :tags
1512
+ # The list of tags that are added to the specified resource.
1513
+ #
1514
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1515
+ #
1516
+ # @example Request syntax with placeholder values
1517
+ #
1518
+ # resp = client.tag_resource({
1519
+ # resource_arn: "ProfilingGroupArn", # required
1520
+ # tags: { # required
1521
+ # "String" => "String",
1522
+ # },
1523
+ # })
1524
+ #
1525
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/TagResource AWS API Documentation
1526
+ #
1527
+ # @overload tag_resource(params = {})
1528
+ # @param [Hash] params ({})
1529
+ def tag_resource(params = {}, options = {})
1530
+ req = build_request(:tag_resource, params)
1531
+ req.send_request(options)
1532
+ end
1533
+
1534
+ # Use to remove one or more tags from a resource.
1535
+ #
1536
+ # @option params [required, String] :resource_arn
1537
+ # The Amazon Resource Name (ARN) of the resource that contains the tags
1538
+ # to remove.
1539
+ #
1540
+ # @option params [required, Array<String>] :tag_keys
1541
+ # A list of tag keys. Existing tags of resources with keys in this list
1542
+ # are removed from the specified resource.
1543
+ #
1544
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1545
+ #
1546
+ # @example Request syntax with placeholder values
1547
+ #
1548
+ # resp = client.untag_resource({
1549
+ # resource_arn: "ProfilingGroupArn", # required
1550
+ # tag_keys: ["String"], # required
1551
+ # })
1552
+ #
1553
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UntagResource AWS API Documentation
1554
+ #
1555
+ # @overload untag_resource(params = {})
1556
+ # @param [Hash] params ({})
1557
+ def untag_resource(params = {}, options = {})
1558
+ req = build_request(:untag_resource, params)
1559
+ req.send_request(options)
1560
+ end
1561
+
1562
+ # Updates a profiling group.
1563
+ #
1564
+ # @option params [required, Types::AgentOrchestrationConfig] :agent_orchestration_config
1565
+ # Specifies whether profiling is enabled or disabled for a profiling
1566
+ # group.
1567
+ #
1568
+ # @option params [required, String] :profiling_group_name
1569
+ # The name of the profiling group to update.
1570
+ #
1571
+ # @return [Types::UpdateProfilingGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1572
+ #
1573
+ # * {Types::UpdateProfilingGroupResponse#profiling_group #profiling_group} => Types::ProfilingGroupDescription
1574
+ #
1575
+ # @example Request syntax with placeholder values
1576
+ #
1577
+ # resp = client.update_profiling_group({
1578
+ # agent_orchestration_config: { # required
1579
+ # profiling_enabled: false, # required
1580
+ # },
1581
+ # profiling_group_name: "ProfilingGroupName", # required
1582
+ # })
1583
+ #
1584
+ # @example Response structure
1585
+ #
1586
+ # resp.profiling_group.agent_orchestration_config.profiling_enabled #=> Boolean
1587
+ # resp.profiling_group.arn #=> String
1588
+ # resp.profiling_group.compute_platform #=> String, one of "AWSLambda", "Default"
1589
+ # resp.profiling_group.created_at #=> Time
1590
+ # resp.profiling_group.name #=> String
1591
+ # resp.profiling_group.profiling_status.latest_agent_orchestrated_at #=> Time
1592
+ # resp.profiling_group.profiling_status.latest_agent_profile_reported_at #=> Time
1593
+ # resp.profiling_group.profiling_status.latest_aggregated_profile.period #=> String, one of "P1D", "PT1H", "PT5M"
1594
+ # resp.profiling_group.profiling_status.latest_aggregated_profile.start #=> Time
1595
+ # resp.profiling_group.tags #=> Hash
1596
+ # resp.profiling_group.tags["String"] #=> String
1597
+ # resp.profiling_group.updated_at #=> Time
1598
+ #
1599
+ # @see http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/UpdateProfilingGroup AWS API Documentation
1600
+ #
1601
+ # @overload update_profiling_group(params = {})
1602
+ # @param [Hash] params ({})
1603
+ def update_profiling_group(params = {}, options = {})
1604
+ req = build_request(:update_profiling_group, params)
1605
+ req.send_request(options)
1606
+ end
1607
+
1608
+ # @!endgroup
1609
+
1610
+ # @param params ({})
1611
+ # @api private
1612
+ def build_request(operation_name, params = {})
1613
+ handlers = @handlers.for(operation_name)
1614
+ context = Seahorse::Client::RequestContext.new(
1615
+ operation_name: operation_name,
1616
+ operation: config.api.operation(operation_name),
1617
+ client: self,
1618
+ params: params,
1619
+ config: config)
1620
+ context[:gem_name] = 'aws-sdk-codeguruprofiler'
1621
+ context[:gem_version] = '1.9.0'
1622
+ Seahorse::Client::Request.new(handlers, context)
1623
+ end
1624
+
1625
+ # @api private
1626
+ # @deprecated
1627
+ def waiter_names
1628
+ []
1629
+ end
1630
+
1631
+ class << self
1632
+
1633
+ # @api private
1634
+ attr_reader :identifier
1635
+
1636
+ # @api private
1637
+ def errors_module
1638
+ Errors
1639
+ end
1640
+
1641
+ end
1642
+ end
1643
+ end