aws-sdk-networkflowmonitor 1.0.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,1862 @@
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/version-3/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/invocation_id.rb'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
+ require 'aws-sdk-core/plugins/http_checksum.rb'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
+ require 'aws-sdk-core/plugins/request_compression.rb'
33
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
34
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
36
+ require 'aws-sdk-core/plugins/sign.rb'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
38
+
39
+ module Aws::NetworkFlowMonitor
40
+ # An API client for NetworkFlowMonitor. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::NetworkFlowMonitor::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :networkflowmonitor
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
76
+ add_plugin(Aws::Plugins::JsonvalueConverter)
77
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
79
+ add_plugin(Aws::Plugins::TransferEncoding)
80
+ add_plugin(Aws::Plugins::HttpChecksum)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::RestJson)
88
+ add_plugin(Aws::NetworkFlowMonitor::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials. This can be an instance of any one of the
99
+ # following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following
128
+ # locations will be searched for credentials:
129
+ #
130
+ # * `Aws.config[:credentials]`
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
135
+ # * `~/.aws/credentials`
136
+ # * `~/.aws/config`
137
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
+ # are very aggressive. Construct and pass an instance of
139
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
+ # enable retries and extended timeouts. Instance profile credential
141
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
+ # to true.
143
+ #
144
+ # @option options [required, String] :region
145
+ # The AWS region to connect to. The configured `:region` is
146
+ # used to determine the service `:endpoint`. When not passed,
147
+ # a default `:region` is searched for in the following locations:
148
+ #
149
+ # * `Aws.config[:region]`
150
+ # * `ENV['AWS_REGION']`
151
+ # * `ENV['AMAZON_REGION']`
152
+ # * `ENV['AWS_DEFAULT_REGION']`
153
+ # * `~/.aws/credentials`
154
+ # * `~/.aws/config`
155
+ #
156
+ # @option options [String] :access_key_id
157
+ #
158
+ # @option options [String] :account_id
159
+ #
160
+ # @option options [Boolean] :active_endpoint_cache (false)
161
+ # When set to `true`, a thread polling for endpoints will be running in
162
+ # the background every 60 secs (default). Defaults to `false`.
163
+ #
164
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
165
+ # Used only in `adaptive` retry mode. When true, the request will sleep
166
+ # until there is sufficent client side capacity to retry the request.
167
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
+ # not retry instead of sleeping.
169
+ #
170
+ # @option options [Boolean] :client_side_monitoring (false)
171
+ # When `true`, client-side metrics will be collected for all API requests from
172
+ # this client.
173
+ #
174
+ # @option options [String] :client_side_monitoring_client_id ("")
175
+ # Allows you to provide an identifier for this client which will be attached to
176
+ # all generated client side metrics. Defaults to an empty string.
177
+ #
178
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
179
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
180
+ # side monitoring agent is running on, where client metrics will be published via UDP.
181
+ #
182
+ # @option options [Integer] :client_side_monitoring_port (31000)
183
+ # Required for publishing client metrics. The port that the client side monitoring
184
+ # agent is running on, where client metrics will be published via UDP.
185
+ #
186
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
187
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
188
+ # will use the Client Side Monitoring Agent Publisher.
189
+ #
190
+ # @option options [Boolean] :convert_params (true)
191
+ # When `true`, an attempt is made to coerce request parameters into
192
+ # the required types.
193
+ #
194
+ # @option options [Boolean] :correct_clock_skew (true)
195
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
196
+ # a clock skew correction and retry requests with skewed client clocks.
197
+ #
198
+ # @option options [String] :defaults_mode ("legacy")
199
+ # See {Aws::DefaultsModeConfiguration} for a list of the
200
+ # accepted modes and the configuration defaults that are included.
201
+ #
202
+ # @option options [Boolean] :disable_host_prefix_injection (false)
203
+ # Set to true to disable SDK automatically adding host prefix
204
+ # to default service endpoint when available.
205
+ #
206
+ # @option options [Boolean] :disable_request_compression (false)
207
+ # When set to 'true' the request body will not be compressed
208
+ # for supported operations.
209
+ #
210
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
211
+ # Normally you should not configure the `:endpoint` option
212
+ # directly. This is normally constructed from the `:region`
213
+ # option. Configuring `:endpoint` is normally reserved for
214
+ # connecting to test or custom endpoints. The endpoint should
215
+ # be a URI formatted like:
216
+ #
217
+ # 'http://example.com'
218
+ # 'https://example.com'
219
+ # 'http://example.com:123'
220
+ #
221
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
222
+ # Used for the maximum size limit of the LRU cache storing endpoints data
223
+ # for endpoint discovery enabled operations. Defaults to 1000.
224
+ #
225
+ # @option options [Integer] :endpoint_cache_max_threads (10)
226
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
227
+ #
228
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
229
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
230
+ # Use this option to config the time interval in seconds for making
231
+ # requests fetching endpoints information. Defaults to 60 sec.
232
+ #
233
+ # @option options [Boolean] :endpoint_discovery (false)
234
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
235
+ #
236
+ # @option options [Boolean] :ignore_configured_endpoint_urls
237
+ # Setting to true disables use of endpoint URLs provided via environment
238
+ # variables and the shared configuration file.
239
+ #
240
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
241
+ # The log formatter.
242
+ #
243
+ # @option options [Symbol] :log_level (:info)
244
+ # The log level to send messages to the `:logger` at.
245
+ #
246
+ # @option options [Logger] :logger
247
+ # The Logger instance to send log messages to. If this option
248
+ # is not set, logging will be disabled.
249
+ #
250
+ # @option options [Integer] :max_attempts (3)
251
+ # An integer representing the maximum number attempts that will be made for
252
+ # a single request, including the initial attempt. For example,
253
+ # setting this value to 5 will result in a request being retried up to
254
+ # 4 times. Used in `standard` and `adaptive` retry modes.
255
+ #
256
+ # @option options [String] :profile ("default")
257
+ # Used when loading credentials from the shared credentials file
258
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
259
+ #
260
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
261
+ # The minimum size in bytes that triggers compression for request
262
+ # bodies. The value must be non-negative integer value between 0
263
+ # and 10485780 bytes inclusive.
264
+ #
265
+ # @option options [Proc] :retry_backoff
266
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
267
+ # This option is only used in the `legacy` retry mode.
268
+ #
269
+ # @option options [Float] :retry_base_delay (0.3)
270
+ # The base delay in seconds used by the default backoff function. This option
271
+ # is only used in the `legacy` retry mode.
272
+ #
273
+ # @option options [Symbol] :retry_jitter (:none)
274
+ # A delay randomiser function used by the default backoff function.
275
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
276
+ # otherwise a Proc that takes and returns a number. This option is only used
277
+ # in the `legacy` retry mode.
278
+ #
279
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
280
+ #
281
+ # @option options [Integer] :retry_limit (3)
282
+ # The maximum number of times to retry failed requests. Only
283
+ # ~ 500 level server errors and certain ~ 400 level client errors
284
+ # are retried. Generally, these are throttling errors, data
285
+ # checksum errors, networking errors, timeout errors, auth errors,
286
+ # endpoint discovery, and errors from expired credentials.
287
+ # This option is only used in the `legacy` retry mode.
288
+ #
289
+ # @option options [Integer] :retry_max_delay (0)
290
+ # The maximum number of seconds to delay between retries (0 for no limit)
291
+ # used by the default backoff function. This option is only used in the
292
+ # `legacy` retry mode.
293
+ #
294
+ # @option options [String] :retry_mode ("legacy")
295
+ # Specifies which retry algorithm to use. Values are:
296
+ #
297
+ # * `legacy` - The pre-existing retry behavior. This is default value if
298
+ # no retry mode is provided.
299
+ #
300
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
301
+ # This includes support for retry quotas, which limit the number of
302
+ # unsuccessful retries a client can make.
303
+ #
304
+ # * `adaptive` - An experimental retry mode that includes all the
305
+ # functionality of `standard` mode along with automatic client side
306
+ # throttling. This is a provisional mode that may change behavior
307
+ # in the future.
308
+ #
309
+ # @option options [String] :sdk_ua_app_id
310
+ # A unique and opaque application ID that is appended to the
311
+ # User-Agent header as app/sdk_ua_app_id. It should have a
312
+ # maximum length of 50. This variable is sourced from environment
313
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
314
+ #
315
+ # @option options [String] :secret_access_key
316
+ #
317
+ # @option options [String] :session_token
318
+ #
319
+ # @option options [Array] :sigv4a_signing_region_set
320
+ # A list of regions that should be signed with SigV4a signing. When
321
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
322
+ # in the following locations:
323
+ #
324
+ # * `Aws.config[:sigv4a_signing_region_set]`
325
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
326
+ # * `~/.aws/config`
327
+ #
328
+ # @option options [Boolean] :stub_responses (false)
329
+ # Causes the client to return stubbed responses. By default
330
+ # fake responses are generated and returned. You can specify
331
+ # the response data to return or errors to raise by calling
332
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
333
+ #
334
+ # ** Please note ** When response stubbing is enabled, no HTTP
335
+ # requests are made, and retries are disabled.
336
+ #
337
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
338
+ # Allows you to provide a telemetry provider, which is used to
339
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
340
+ # will not record or emit any telemetry data. The SDK supports the
341
+ # following telemetry providers:
342
+ #
343
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
344
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
345
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
346
+ #
347
+ # @option options [Aws::TokenProvider] :token_provider
348
+ # A Bearer Token Provider. This can be an instance of any one of the
349
+ # following classes:
350
+ #
351
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
352
+ # tokens.
353
+ #
354
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
355
+ # access token generated from `aws login`.
356
+ #
357
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
358
+ # will be used to search for tokens configured for your profile in shared configuration files.
359
+ #
360
+ # @option options [Boolean] :use_dualstack_endpoint
361
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
362
+ # will be used if available.
363
+ #
364
+ # @option options [Boolean] :use_fips_endpoint
365
+ # When set to `true`, fips compatible endpoints will be used if available.
366
+ # When a `fips` region is used, the region is normalized and this config
367
+ # is set to `true`.
368
+ #
369
+ # @option options [Boolean] :validate_params (true)
370
+ # When `true`, request parameters are validated before
371
+ # sending the request.
372
+ #
373
+ # @option options [Aws::NetworkFlowMonitor::EndpointProvider] :endpoint_provider
374
+ # The endpoint provider used to resolve endpoints. Any object that responds to
375
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
376
+ # `Aws::NetworkFlowMonitor::EndpointParameters`.
377
+ #
378
+ # @option options [Float] :http_continue_timeout (1)
379
+ # The number of seconds to wait for a 100-continue response before sending the
380
+ # request body. This option has no effect unless the request has "Expect"
381
+ # header set to "100-continue". Defaults to `nil` which disables this
382
+ # behaviour. This value can safely be set per request on the session.
383
+ #
384
+ # @option options [Float] :http_idle_timeout (5)
385
+ # The number of seconds a connection is allowed to sit idle before it
386
+ # is considered stale. Stale connections are closed and removed from the
387
+ # pool before making a request.
388
+ #
389
+ # @option options [Float] :http_open_timeout (15)
390
+ # The default number of seconds to wait for response data.
391
+ # This value can safely be set per-request on the session.
392
+ #
393
+ # @option options [URI::HTTP,String] :http_proxy
394
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
395
+ #
396
+ # @option options [Float] :http_read_timeout (60)
397
+ # The default number of seconds to wait for response data.
398
+ # This value can safely be set per-request on the session.
399
+ #
400
+ # @option options [Boolean] :http_wire_trace (false)
401
+ # When `true`, HTTP debug output will be sent to the `:logger`.
402
+ #
403
+ # @option options [Proc] :on_chunk_received
404
+ # When a Proc object is provided, it will be used as callback when each chunk
405
+ # of the response body is received. It provides three arguments: the chunk,
406
+ # the number of bytes received, and the total number of
407
+ # bytes in the response (or nil if the server did not send a `content-length`).
408
+ #
409
+ # @option options [Proc] :on_chunk_sent
410
+ # When a Proc object is provided, it will be used as callback when each chunk
411
+ # of the request body is sent. It provides three arguments: the chunk,
412
+ # the number of bytes read from the body, and the total number of
413
+ # bytes in the body.
414
+ #
415
+ # @option options [Boolean] :raise_response_errors (true)
416
+ # When `true`, response errors are raised.
417
+ #
418
+ # @option options [String] :ssl_ca_bundle
419
+ # Full path to the SSL certificate authority bundle file that should be used when
420
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
421
+ # `:ssl_ca_directory` the the system default will be used if available.
422
+ #
423
+ # @option options [String] :ssl_ca_directory
424
+ # Full path of the directory that contains the unbundled SSL certificate
425
+ # authority files for verifying peer certificates. If you do
426
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
427
+ # default will be used if available.
428
+ #
429
+ # @option options [String] :ssl_ca_store
430
+ # Sets the X509::Store to verify peer certificate.
431
+ #
432
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
433
+ # Sets a client certificate when creating http connections.
434
+ #
435
+ # @option options [OpenSSL::PKey] :ssl_key
436
+ # Sets a client key when creating http connections.
437
+ #
438
+ # @option options [Float] :ssl_timeout
439
+ # Sets the SSL timeout in seconds
440
+ #
441
+ # @option options [Boolean] :ssl_verify_peer (true)
442
+ # When `true`, SSL peer certificates are verified when establishing a connection.
443
+ #
444
+ def initialize(*args)
445
+ super
446
+ end
447
+
448
+ # @!group API Operations
449
+
450
+ # Create a monitor for specific network flows between local and remote
451
+ # resources, so that you can monitor network performance for one or
452
+ # several of your workloads. For each monitor, Network Flow Monitor
453
+ # publishes detailed end-to-end performance metrics and a network health
454
+ # indicators (NHI) that informs you whether there were Amazon Web
455
+ # Services network issues for one or more of the network flows tracked
456
+ # by a monitor, during a time period that you choose.
457
+ #
458
+ # @option params [required, String] :monitor_name
459
+ # The name of the monitor.
460
+ #
461
+ # @option params [required, Array<Types::MonitorLocalResource>] :local_resources
462
+ # The local resources to monitor. A local resource, in a bi-directional
463
+ # flow of a workload, is the host where the agent is installed. For
464
+ # example, if a workload consists of an interaction between a web
465
+ # service and a backend database (for example, Amazon Relational
466
+ # Database Service (RDS)), the EC2 instance hosting the web service,
467
+ # which also runs the agent, is the local resource.
468
+ #
469
+ # @option params [Array<Types::MonitorRemoteResource>] :remote_resources
470
+ # The remote resources to monitor. A remote resource is the other
471
+ # endpoint in the bi-directional flow of a workload, with a local
472
+ # resource. For example, Amazon Relational Database Service (RDS) can be
473
+ # a remote resource.
474
+ #
475
+ # @option params [required, String] :scope_arn
476
+ # The Amazon Resource Name (ARN) of the scope for the monitor.
477
+ #
478
+ # @option params [String] :client_token
479
+ # A unique, case-sensitive string of up to 64 ASCII characters that you
480
+ # specify to make an idempotent API request. Don't reuse the same
481
+ # client token for other API requests.
482
+ #
483
+ # **A suitable default value is auto-generated.** You should normally
484
+ # not need to pass this option.**
485
+ #
486
+ # @option params [Hash<String,String>] :tags
487
+ # The tags for a monitor. You can add a maximum of 200 tags.
488
+ #
489
+ # @return [Types::CreateMonitorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
490
+ #
491
+ # * {Types::CreateMonitorOutput#monitor_arn #monitor_arn} => String
492
+ # * {Types::CreateMonitorOutput#monitor_name #monitor_name} => String
493
+ # * {Types::CreateMonitorOutput#monitor_status #monitor_status} => String
494
+ # * {Types::CreateMonitorOutput#local_resources #local_resources} => Array&lt;Types::MonitorLocalResource&gt;
495
+ # * {Types::CreateMonitorOutput#remote_resources #remote_resources} => Array&lt;Types::MonitorRemoteResource&gt;
496
+ # * {Types::CreateMonitorOutput#created_at #created_at} => Time
497
+ # * {Types::CreateMonitorOutput#modified_at #modified_at} => Time
498
+ # * {Types::CreateMonitorOutput#tags #tags} => Hash&lt;String,String&gt;
499
+ #
500
+ # @example Request syntax with placeholder values
501
+ #
502
+ # resp = client.create_monitor({
503
+ # monitor_name: "ResourceName", # required
504
+ # local_resources: [ # required
505
+ # {
506
+ # type: "AWS::EC2::VPC", # required, accepts AWS::EC2::VPC, AWS::AvailabilityZone, AWS::EC2::Subnet
507
+ # identifier: "String", # required
508
+ # },
509
+ # ],
510
+ # remote_resources: [
511
+ # {
512
+ # type: "AWS::EC2::VPC", # required, accepts AWS::EC2::VPC, AWS::AvailabilityZone, AWS::EC2::Subnet, AWS::AWSService
513
+ # identifier: "String", # required
514
+ # },
515
+ # ],
516
+ # scope_arn: "Arn", # required
517
+ # client_token: "String",
518
+ # tags: {
519
+ # "TagKey" => "TagValue",
520
+ # },
521
+ # })
522
+ #
523
+ # @example Response structure
524
+ #
525
+ # resp.monitor_arn #=> String
526
+ # resp.monitor_name #=> String
527
+ # resp.monitor_status #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
528
+ # resp.local_resources #=> Array
529
+ # resp.local_resources[0].type #=> String, one of "AWS::EC2::VPC", "AWS::AvailabilityZone", "AWS::EC2::Subnet"
530
+ # resp.local_resources[0].identifier #=> String
531
+ # resp.remote_resources #=> Array
532
+ # resp.remote_resources[0].type #=> String, one of "AWS::EC2::VPC", "AWS::AvailabilityZone", "AWS::EC2::Subnet", "AWS::AWSService"
533
+ # resp.remote_resources[0].identifier #=> String
534
+ # resp.created_at #=> Time
535
+ # resp.modified_at #=> Time
536
+ # resp.tags #=> Hash
537
+ # resp.tags["TagKey"] #=> String
538
+ #
539
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/CreateMonitor AWS API Documentation
540
+ #
541
+ # @overload create_monitor(params = {})
542
+ # @param [Hash] params ({})
543
+ def create_monitor(params = {}, options = {})
544
+ req = build_request(:create_monitor, params)
545
+ req.send_request(options)
546
+ end
547
+
548
+ # Create a scope of resources that you want to be available for Network
549
+ # Flow Monitor to generate metrics for, when you have active agents on
550
+ # those resources sending metrics reports to the Network Flow Monitor
551
+ # backend. This call returns a scope ID to identify the scope.
552
+ #
553
+ # When you create a scope, you enable permissions for Network Flow
554
+ # Monitor. The scope is set to the resources for the Amazon Web Services
555
+ # that enables the feature.
556
+ #
557
+ # @option params [required, Array<Types::TargetResource>] :targets
558
+ # The targets to define the scope to be monitored. Currently, a target
559
+ # is an Amazon Web Services account.
560
+ #
561
+ # @option params [String] :client_token
562
+ # A unique, case-sensitive string of up to 64 ASCII characters that you
563
+ # specify to make an idempotent API request. Don't reuse the same
564
+ # client token for other API requests.
565
+ #
566
+ # **A suitable default value is auto-generated.** You should normally
567
+ # not need to pass this option.**
568
+ #
569
+ # @option params [Hash<String,String>] :tags
570
+ # The tags for a scope. You can add a maximum of 200 tags.
571
+ #
572
+ # @return [Types::CreateScopeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
573
+ #
574
+ # * {Types::CreateScopeOutput#scope_id #scope_id} => String
575
+ # * {Types::CreateScopeOutput#status #status} => String
576
+ # * {Types::CreateScopeOutput#scope_arn #scope_arn} => String
577
+ # * {Types::CreateScopeOutput#tags #tags} => Hash&lt;String,String&gt;
578
+ #
579
+ # @example Request syntax with placeholder values
580
+ #
581
+ # resp = client.create_scope({
582
+ # targets: [ # required
583
+ # {
584
+ # target_identifier: { # required
585
+ # target_id: { # required
586
+ # account_id: "AccountId",
587
+ # },
588
+ # target_type: "ACCOUNT", # required, accepts ACCOUNT
589
+ # },
590
+ # region: "AwsRegion", # required
591
+ # },
592
+ # ],
593
+ # client_token: "String",
594
+ # tags: {
595
+ # "TagKey" => "TagValue",
596
+ # },
597
+ # })
598
+ #
599
+ # @example Response structure
600
+ #
601
+ # resp.scope_id #=> String
602
+ # resp.status #=> String, one of "SUCCEEDED", "IN_PROGRESS", "FAILED"
603
+ # resp.scope_arn #=> String
604
+ # resp.tags #=> Hash
605
+ # resp.tags["TagKey"] #=> String
606
+ #
607
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/CreateScope AWS API Documentation
608
+ #
609
+ # @overload create_scope(params = {})
610
+ # @param [Hash] params ({})
611
+ def create_scope(params = {}, options = {})
612
+ req = build_request(:create_scope, params)
613
+ req.send_request(options)
614
+ end
615
+
616
+ # Deletes a monitor in Network Flow Monitor.
617
+ #
618
+ # @option params [required, String] :monitor_name
619
+ # The name of the monitor to delete.
620
+ #
621
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
622
+ #
623
+ # @example Request syntax with placeholder values
624
+ #
625
+ # resp = client.delete_monitor({
626
+ # monitor_name: "ResourceName", # required
627
+ # })
628
+ #
629
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/DeleteMonitor AWS API Documentation
630
+ #
631
+ # @overload delete_monitor(params = {})
632
+ # @param [Hash] params ({})
633
+ def delete_monitor(params = {}, options = {})
634
+ req = build_request(:delete_monitor, params)
635
+ req.send_request(options)
636
+ end
637
+
638
+ # Deletes a scope that has been defined.
639
+ #
640
+ # @option params [required, String] :scope_id
641
+ # The identifier for the scope that includes the resources you want to
642
+ # get data results for. A scope ID is an internally-generated identifier
643
+ # that includes all the resources for a specific root account.
644
+ #
645
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
646
+ #
647
+ # @example Request syntax with placeholder values
648
+ #
649
+ # resp = client.delete_scope({
650
+ # scope_id: "ScopeId", # required
651
+ # })
652
+ #
653
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/DeleteScope AWS API Documentation
654
+ #
655
+ # @overload delete_scope(params = {})
656
+ # @param [Hash] params ({})
657
+ def delete_scope(params = {}, options = {})
658
+ req = build_request(:delete_scope, params)
659
+ req.send_request(options)
660
+ end
661
+
662
+ # Gets information about a monitor in Network Flow Monitor based on a
663
+ # monitor name. The information returned includes the Amazon Resource
664
+ # Name (ARN), create time, modified time, resources included in the
665
+ # monitor, and status information.
666
+ #
667
+ # @option params [required, String] :monitor_name
668
+ # The name of the monitor.
669
+ #
670
+ # @return [Types::GetMonitorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
671
+ #
672
+ # * {Types::GetMonitorOutput#monitor_arn #monitor_arn} => String
673
+ # * {Types::GetMonitorOutput#monitor_name #monitor_name} => String
674
+ # * {Types::GetMonitorOutput#monitor_status #monitor_status} => String
675
+ # * {Types::GetMonitorOutput#local_resources #local_resources} => Array&lt;Types::MonitorLocalResource&gt;
676
+ # * {Types::GetMonitorOutput#remote_resources #remote_resources} => Array&lt;Types::MonitorRemoteResource&gt;
677
+ # * {Types::GetMonitorOutput#created_at #created_at} => Time
678
+ # * {Types::GetMonitorOutput#modified_at #modified_at} => Time
679
+ # * {Types::GetMonitorOutput#tags #tags} => Hash&lt;String,String&gt;
680
+ #
681
+ # @example Request syntax with placeholder values
682
+ #
683
+ # resp = client.get_monitor({
684
+ # monitor_name: "ResourceName", # required
685
+ # })
686
+ #
687
+ # @example Response structure
688
+ #
689
+ # resp.monitor_arn #=> String
690
+ # resp.monitor_name #=> String
691
+ # resp.monitor_status #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
692
+ # resp.local_resources #=> Array
693
+ # resp.local_resources[0].type #=> String, one of "AWS::EC2::VPC", "AWS::AvailabilityZone", "AWS::EC2::Subnet"
694
+ # resp.local_resources[0].identifier #=> String
695
+ # resp.remote_resources #=> Array
696
+ # resp.remote_resources[0].type #=> String, one of "AWS::EC2::VPC", "AWS::AvailabilityZone", "AWS::EC2::Subnet", "AWS::AWSService"
697
+ # resp.remote_resources[0].identifier #=> String
698
+ # resp.created_at #=> Time
699
+ # resp.modified_at #=> Time
700
+ # resp.tags #=> Hash
701
+ # resp.tags["TagKey"] #=> String
702
+ #
703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetMonitor AWS API Documentation
704
+ #
705
+ # @overload get_monitor(params = {})
706
+ # @param [Hash] params ({})
707
+ def get_monitor(params = {}, options = {})
708
+ req = build_request(:get_monitor, params)
709
+ req.send_request(options)
710
+ end
711
+
712
+ # Return the data for a query with the Network Flow Monitor query
713
+ # interface. You specify the query that you want to return results for
714
+ # by providing a query ID and a monitor name. This query returns the top
715
+ # contributors for a specific monitor.
716
+ #
717
+ # Create a query ID for this call by calling the corresponding API call
718
+ # to start the query, `StartQueryMonitorTopContributors`. Use the scope
719
+ # ID that was returned for your account by `CreateScope`.
720
+ #
721
+ # Top contributors in Network Flow Monitor are network flows with the
722
+ # highest values for a specific metric type, related to a scope (for
723
+ # workload insights) or a monitor.
724
+ #
725
+ # @option params [required, String] :monitor_name
726
+ # The name of the monitor.
727
+ #
728
+ # @option params [required, String] :query_id
729
+ # The identifier for the query. A query ID is an internally-generated
730
+ # identifier for a specific query returned from an API call to start a
731
+ # query.
732
+ #
733
+ # @option params [String] :next_token
734
+ # The token for the next set of results. You receive this token from a
735
+ # previous call.
736
+ #
737
+ # @option params [Integer] :max_results
738
+ # The number of query results that you want to return with this call.
739
+ #
740
+ # @return [Types::GetQueryResultsMonitorTopContributorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
741
+ #
742
+ # * {Types::GetQueryResultsMonitorTopContributorsOutput#unit #unit} => String
743
+ # * {Types::GetQueryResultsMonitorTopContributorsOutput#top_contributors #top_contributors} => Array&lt;Types::MonitorTopContributorsRow&gt;
744
+ # * {Types::GetQueryResultsMonitorTopContributorsOutput#next_token #next_token} => String
745
+ #
746
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
747
+ #
748
+ # @example Request syntax with placeholder values
749
+ #
750
+ # resp = client.get_query_results_monitor_top_contributors({
751
+ # monitor_name: "ResourceName", # required
752
+ # query_id: "String", # required
753
+ # next_token: "String",
754
+ # max_results: 1,
755
+ # })
756
+ #
757
+ # @example Response structure
758
+ #
759
+ # resp.unit #=> String, one of "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
760
+ # resp.top_contributors #=> Array
761
+ # resp.top_contributors[0].local_ip #=> String
762
+ # resp.top_contributors[0].snat_ip #=> String
763
+ # resp.top_contributors[0].local_instance_id #=> String
764
+ # resp.top_contributors[0].local_vpc_id #=> String
765
+ # resp.top_contributors[0].local_region #=> String
766
+ # resp.top_contributors[0].local_az #=> String
767
+ # resp.top_contributors[0].local_subnet_id #=> String
768
+ # resp.top_contributors[0].target_port #=> Integer
769
+ # resp.top_contributors[0].destination_category #=> String, one of "INTRA_AZ", "INTER_AZ", "INTER_VPC", "UNCLASSIFIED", "AMAZON_S3", "AMAZON_DYNAMODB"
770
+ # resp.top_contributors[0].remote_vpc_id #=> String
771
+ # resp.top_contributors[0].remote_region #=> String
772
+ # resp.top_contributors[0].remote_az #=> String
773
+ # resp.top_contributors[0].remote_subnet_id #=> String
774
+ # resp.top_contributors[0].remote_instance_id #=> String
775
+ # resp.top_contributors[0].remote_ip #=> String
776
+ # resp.top_contributors[0].dnat_ip #=> String
777
+ # resp.top_contributors[0].value #=> Integer
778
+ # resp.top_contributors[0].traversed_constructs #=> Array
779
+ # resp.top_contributors[0].traversed_constructs[0].component_id #=> String
780
+ # resp.top_contributors[0].traversed_constructs[0].component_type #=> String
781
+ # resp.top_contributors[0].traversed_constructs[0].component_arn #=> String
782
+ # resp.top_contributors[0].traversed_constructs[0].service_name #=> String
783
+ # resp.top_contributors[0].kubernetes_metadata.local_service_name #=> String
784
+ # resp.top_contributors[0].kubernetes_metadata.local_pod_name #=> String
785
+ # resp.top_contributors[0].kubernetes_metadata.local_pod_namespace #=> String
786
+ # resp.top_contributors[0].kubernetes_metadata.remote_service_name #=> String
787
+ # resp.top_contributors[0].kubernetes_metadata.remote_pod_name #=> String
788
+ # resp.top_contributors[0].kubernetes_metadata.remote_pod_namespace #=> String
789
+ # resp.top_contributors[0].local_instance_arn #=> String
790
+ # resp.top_contributors[0].local_subnet_arn #=> String
791
+ # resp.top_contributors[0].local_vpc_arn #=> String
792
+ # resp.top_contributors[0].remote_instance_arn #=> String
793
+ # resp.top_contributors[0].remote_subnet_arn #=> String
794
+ # resp.top_contributors[0].remote_vpc_arn #=> String
795
+ # resp.next_token #=> String
796
+ #
797
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetQueryResultsMonitorTopContributors AWS API Documentation
798
+ #
799
+ # @overload get_query_results_monitor_top_contributors(params = {})
800
+ # @param [Hash] params ({})
801
+ def get_query_results_monitor_top_contributors(params = {}, options = {})
802
+ req = build_request(:get_query_results_monitor_top_contributors, params)
803
+ req.send_request(options)
804
+ end
805
+
806
+ # Return the data for a query with the Network Flow Monitor query
807
+ # interface. You specify the query that you want to return results for
808
+ # by providing a query ID and a monitor name. This query returns the top
809
+ # contributors for a specific monitor.
810
+ #
811
+ # Create a query ID for this call by calling the corresponding API call
812
+ # to start the query, `StartQueryWorkloadInsightsTopContributors`. Use
813
+ # the scope ID that was returned for your account by `CreateScope`.
814
+ #
815
+ # Top contributors in Network Flow Monitor are network flows with the
816
+ # highest values for a specific metric type, related to a scope (for
817
+ # workload insights) or a monitor.
818
+ #
819
+ # @option params [required, String] :scope_id
820
+ # The identifier for the scope that includes the resources you want to
821
+ # get data results for. A scope ID is an internally-generated identifier
822
+ # that includes all the resources for a specific root account.
823
+ #
824
+ # @option params [required, String] :query_id
825
+ # The identifier for the query. A query ID is an internally-generated
826
+ # identifier for a specific query returned from an API call to start a
827
+ # query.
828
+ #
829
+ # @option params [String] :next_token
830
+ # The token for the next set of results. You receive this token from a
831
+ # previous call.
832
+ #
833
+ # @option params [Integer] :max_results
834
+ # The number of query results that you want to return with this call.
835
+ #
836
+ # @return [Types::GetQueryResultsWorkloadInsightsTopContributorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
837
+ #
838
+ # * {Types::GetQueryResultsWorkloadInsightsTopContributorsOutput#top_contributors #top_contributors} => Array&lt;Types::WorkloadInsightsTopContributorsRow&gt;
839
+ # * {Types::GetQueryResultsWorkloadInsightsTopContributorsOutput#next_token #next_token} => String
840
+ #
841
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
842
+ #
843
+ # @example Request syntax with placeholder values
844
+ #
845
+ # resp = client.get_query_results_workload_insights_top_contributors({
846
+ # scope_id: "ScopeId", # required
847
+ # query_id: "String", # required
848
+ # next_token: "String",
849
+ # max_results: 1,
850
+ # })
851
+ #
852
+ # @example Response structure
853
+ #
854
+ # resp.top_contributors #=> Array
855
+ # resp.top_contributors[0].account_id #=> String
856
+ # resp.top_contributors[0].local_subnet_id #=> String
857
+ # resp.top_contributors[0].local_az #=> String
858
+ # resp.top_contributors[0].local_vpc_id #=> String
859
+ # resp.top_contributors[0].local_region #=> String
860
+ # resp.top_contributors[0].remote_identifier #=> String
861
+ # resp.top_contributors[0].value #=> Integer
862
+ # resp.top_contributors[0].local_subnet_arn #=> String
863
+ # resp.top_contributors[0].local_vpc_arn #=> String
864
+ # resp.next_token #=> String
865
+ #
866
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetQueryResultsWorkloadInsightsTopContributors AWS API Documentation
867
+ #
868
+ # @overload get_query_results_workload_insights_top_contributors(params = {})
869
+ # @param [Hash] params ({})
870
+ def get_query_results_workload_insights_top_contributors(params = {}, options = {})
871
+ req = build_request(:get_query_results_workload_insights_top_contributors, params)
872
+ req.send_request(options)
873
+ end
874
+
875
+ # Return the data for a query with the Network Flow Monitor query
876
+ # interface. Specify the query that you want to return results for by
877
+ # providing a query ID and a scope ID. This query returns data for the
878
+ # top contributors for workload insights. Workload insights provide a
879
+ # high level view of network flow performance data collected by agents
880
+ # for a scope.
881
+ #
882
+ # Create a query ID for this call by calling the corresponding API call
883
+ # to start the query, `StartQueryWorkloadInsightsTopContributorsData`.
884
+ # Use the scope ID that was returned for your account by `CreateScope`.
885
+ #
886
+ # Top contributors in Network Flow Monitor are network flows with the
887
+ # highest values for a specific metric type, related to a scope (for
888
+ # workload insights) or a monitor.
889
+ #
890
+ # The top contributor network flows overall for a specific metric type,
891
+ # for example, the number of retransmissions.
892
+ #
893
+ # @option params [required, String] :scope_id
894
+ # The identifier for the scope that includes the resources you want to
895
+ # get data results for. A scope ID is an internally-generated identifier
896
+ # that includes all the resources for a specific root account.
897
+ #
898
+ # @option params [required, String] :query_id
899
+ # The identifier for the query. A query ID is an internally-generated
900
+ # identifier for a specific query returned from an API call to start a
901
+ # query.
902
+ #
903
+ # @option params [String] :next_token
904
+ # The token for the next set of results. You receive this token from a
905
+ # previous call.
906
+ #
907
+ # @option params [Integer] :max_results
908
+ # The number of query results that you want to return with this call.
909
+ #
910
+ # @return [Types::GetQueryResultsWorkloadInsightsTopContributorsDataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
911
+ #
912
+ # * {Types::GetQueryResultsWorkloadInsightsTopContributorsDataOutput#unit #unit} => String
913
+ # * {Types::GetQueryResultsWorkloadInsightsTopContributorsDataOutput#datapoints #datapoints} => Array&lt;Types::WorkloadInsightsTopContributorsDataPoint&gt;
914
+ # * {Types::GetQueryResultsWorkloadInsightsTopContributorsDataOutput#next_token #next_token} => String
915
+ #
916
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
917
+ #
918
+ # @example Request syntax with placeholder values
919
+ #
920
+ # resp = client.get_query_results_workload_insights_top_contributors_data({
921
+ # scope_id: "ScopeId", # required
922
+ # query_id: "String", # required
923
+ # next_token: "String",
924
+ # max_results: 1,
925
+ # })
926
+ #
927
+ # @example Response structure
928
+ #
929
+ # resp.unit #=> String, one of "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
930
+ # resp.datapoints #=> Array
931
+ # resp.datapoints[0].timestamps #=> Array
932
+ # resp.datapoints[0].timestamps[0] #=> Time
933
+ # resp.datapoints[0].values #=> Array
934
+ # resp.datapoints[0].values[0] #=> Float
935
+ # resp.datapoints[0].label #=> String
936
+ # resp.next_token #=> String
937
+ #
938
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetQueryResultsWorkloadInsightsTopContributorsData AWS API Documentation
939
+ #
940
+ # @overload get_query_results_workload_insights_top_contributors_data(params = {})
941
+ # @param [Hash] params ({})
942
+ def get_query_results_workload_insights_top_contributors_data(params = {}, options = {})
943
+ req = build_request(:get_query_results_workload_insights_top_contributors_data, params)
944
+ req.send_request(options)
945
+ end
946
+
947
+ # Returns the current status of a query for the Network Flow Monitor
948
+ # query interface, for a specified query ID and monitor. This call
949
+ # returns the query status for the top contributors for a monitor.
950
+ #
951
+ # When you start a query, use this call to check the status of the query
952
+ # to make sure that it has has `SUCCEEDED` before you review the
953
+ # results. Use the same query ID that you used for the corresponding API
954
+ # call to start the query, `StartQueryMonitorTopContributors`.
955
+ #
956
+ # When you run a query, use this call to check the status of the query
957
+ # to make sure that the query has `SUCCEEDED` before you review the
958
+ # results.
959
+ #
960
+ # @option params [required, String] :monitor_name
961
+ # The name of the monitor.
962
+ #
963
+ # @option params [required, String] :query_id
964
+ # The identifier for the query. A query ID is an internally-generated
965
+ # identifier for a specific query returned from an API call to start a
966
+ # query.
967
+ #
968
+ # @return [Types::GetQueryStatusMonitorTopContributorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
969
+ #
970
+ # * {Types::GetQueryStatusMonitorTopContributorsOutput#status #status} => String
971
+ #
972
+ # @example Request syntax with placeholder values
973
+ #
974
+ # resp = client.get_query_status_monitor_top_contributors({
975
+ # monitor_name: "ResourceName", # required
976
+ # query_id: "String", # required
977
+ # })
978
+ #
979
+ # @example Response structure
980
+ #
981
+ # resp.status #=> String, one of "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELED"
982
+ #
983
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetQueryStatusMonitorTopContributors AWS API Documentation
984
+ #
985
+ # @overload get_query_status_monitor_top_contributors(params = {})
986
+ # @param [Hash] params ({})
987
+ def get_query_status_monitor_top_contributors(params = {}, options = {})
988
+ req = build_request(:get_query_status_monitor_top_contributors, params)
989
+ req.send_request(options)
990
+ end
991
+
992
+ # Return the data for a query with the Network Flow Monitor query
993
+ # interface. Specify the query that you want to return results for by
994
+ # providing a query ID and a monitor name. This query returns the top
995
+ # contributors for workload insights.
996
+ #
997
+ # When you start a query, use this call to check the status of the query
998
+ # to make sure that it has has `SUCCEEDED` before you review the
999
+ # results. Use the same query ID that you used for the corresponding API
1000
+ # call to start the query, `StartQueryWorkloadInsightsTopContributors`.
1001
+ #
1002
+ # Top contributors in Network Flow Monitor are network flows with the
1003
+ # highest values for a specific metric type, related to a scope (for
1004
+ # workload insights) or a monitor.
1005
+ #
1006
+ # @option params [required, String] :scope_id
1007
+ # The identifier for the scope that includes the resources you want to
1008
+ # get data results for. A scope ID is an internally-generated identifier
1009
+ # that includes all the resources for a specific root account.
1010
+ #
1011
+ # @option params [required, String] :query_id
1012
+ # The identifier for the query. A query ID is an internally-generated
1013
+ # identifier for a specific query returned from an API call to start a
1014
+ # query.
1015
+ #
1016
+ # @return [Types::GetQueryStatusWorkloadInsightsTopContributorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1017
+ #
1018
+ # * {Types::GetQueryStatusWorkloadInsightsTopContributorsOutput#status #status} => String
1019
+ #
1020
+ # @example Request syntax with placeholder values
1021
+ #
1022
+ # resp = client.get_query_status_workload_insights_top_contributors({
1023
+ # scope_id: "ScopeId", # required
1024
+ # query_id: "String", # required
1025
+ # })
1026
+ #
1027
+ # @example Response structure
1028
+ #
1029
+ # resp.status #=> String, one of "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELED"
1030
+ #
1031
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetQueryStatusWorkloadInsightsTopContributors AWS API Documentation
1032
+ #
1033
+ # @overload get_query_status_workload_insights_top_contributors(params = {})
1034
+ # @param [Hash] params ({})
1035
+ def get_query_status_workload_insights_top_contributors(params = {}, options = {})
1036
+ req = build_request(:get_query_status_workload_insights_top_contributors, params)
1037
+ req.send_request(options)
1038
+ end
1039
+
1040
+ # Returns the current status of a query for the Network Flow Monitor
1041
+ # query interface, for a specified query ID and monitor. This call
1042
+ # returns the query status for the top contributors data for workload
1043
+ # insights.
1044
+ #
1045
+ # When you start a query, use this call to check the status of the query
1046
+ # to make sure that it has has `SUCCEEDED` before you review the
1047
+ # results. Use the same query ID that you used for the corresponding API
1048
+ # call to start the query,
1049
+ # `StartQueryWorkloadInsightsTopContributorsData`.
1050
+ #
1051
+ # Top contributors in Network Flow Monitor are network flows with the
1052
+ # highest values for a specific metric type, related to a scope (for
1053
+ # workload insights) or a monitor.
1054
+ #
1055
+ # The top contributor network flows overall for a specific metric type,
1056
+ # for example, the number of retransmissions.
1057
+ #
1058
+ # @option params [required, String] :scope_id
1059
+ # The identifier for the scope that includes the resources you want to
1060
+ # get data results for. A scope ID is an internally-generated identifier
1061
+ # that includes all the resources for a specific root account. A scope
1062
+ # ID is returned from a `CreateScope` API call.
1063
+ #
1064
+ # @option params [required, String] :query_id
1065
+ # The identifier for the query. A query ID is an internally-generated
1066
+ # identifier for a specific query returned from an API call to start a
1067
+ # query.
1068
+ #
1069
+ # @return [Types::GetQueryStatusWorkloadInsightsTopContributorsDataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1070
+ #
1071
+ # * {Types::GetQueryStatusWorkloadInsightsTopContributorsDataOutput#status #status} => String
1072
+ #
1073
+ # @example Request syntax with placeholder values
1074
+ #
1075
+ # resp = client.get_query_status_workload_insights_top_contributors_data({
1076
+ # scope_id: "ScopeId", # required
1077
+ # query_id: "String", # required
1078
+ # })
1079
+ #
1080
+ # @example Response structure
1081
+ #
1082
+ # resp.status #=> String, one of "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELED"
1083
+ #
1084
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetQueryStatusWorkloadInsightsTopContributorsData AWS API Documentation
1085
+ #
1086
+ # @overload get_query_status_workload_insights_top_contributors_data(params = {})
1087
+ # @param [Hash] params ({})
1088
+ def get_query_status_workload_insights_top_contributors_data(params = {}, options = {})
1089
+ req = build_request(:get_query_status_workload_insights_top_contributors_data, params)
1090
+ req.send_request(options)
1091
+ end
1092
+
1093
+ # Gets information about a scope, including the name, status, tags, and
1094
+ # target details. The scope in Network Flow Monitor is an account.
1095
+ #
1096
+ # @option params [required, String] :scope_id
1097
+ # The identifier for the scope that includes the resources you want to
1098
+ # get data results for. A scope ID is an internally-generated identifier
1099
+ # that includes all the resources for a specific root account. A scope
1100
+ # ID is returned from a `CreateScope` API call.
1101
+ #
1102
+ # @return [Types::GetScopeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1103
+ #
1104
+ # * {Types::GetScopeOutput#scope_id #scope_id} => String
1105
+ # * {Types::GetScopeOutput#status #status} => String
1106
+ # * {Types::GetScopeOutput#scope_arn #scope_arn} => String
1107
+ # * {Types::GetScopeOutput#targets #targets} => Array&lt;Types::TargetResource&gt;
1108
+ # * {Types::GetScopeOutput#tags #tags} => Hash&lt;String,String&gt;
1109
+ #
1110
+ # @example Request syntax with placeholder values
1111
+ #
1112
+ # resp = client.get_scope({
1113
+ # scope_id: "GetScopeInputScopeIdString", # required
1114
+ # })
1115
+ #
1116
+ # @example Response structure
1117
+ #
1118
+ # resp.scope_id #=> String
1119
+ # resp.status #=> String, one of "SUCCEEDED", "IN_PROGRESS", "FAILED"
1120
+ # resp.scope_arn #=> String
1121
+ # resp.targets #=> Array
1122
+ # resp.targets[0].target_identifier.target_id.account_id #=> String
1123
+ # resp.targets[0].target_identifier.target_type #=> String, one of "ACCOUNT"
1124
+ # resp.targets[0].region #=> String
1125
+ # resp.tags #=> Hash
1126
+ # resp.tags["TagKey"] #=> String
1127
+ #
1128
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/GetScope AWS API Documentation
1129
+ #
1130
+ # @overload get_scope(params = {})
1131
+ # @param [Hash] params ({})
1132
+ def get_scope(params = {}, options = {})
1133
+ req = build_request(:get_scope, params)
1134
+ req.send_request(options)
1135
+ end
1136
+
1137
+ # List all monitors in an account. Optionally, you can list only
1138
+ # monitors that have a specific status, by using the `STATUS` parameter.
1139
+ #
1140
+ # @option params [String] :next_token
1141
+ # The token for the next set of results. You receive this token from a
1142
+ # previous call.
1143
+ #
1144
+ # @option params [Integer] :max_results
1145
+ # The number of query results that you want to return with this call.
1146
+ #
1147
+ # @option params [String] :monitor_status
1148
+ # The status of a monitor. The status can be one of the following
1149
+ #
1150
+ # * `PENDING`: The monitor is in the process of being created.
1151
+ #
1152
+ # * `ACTIVE`: The monitor is active.
1153
+ #
1154
+ # * `INACTIVE`: The monitor is inactive.
1155
+ #
1156
+ # * `ERROR`: Monitor creation failed due to an error.
1157
+ #
1158
+ # * `DELETING`: The monitor is in the process of being deleted.
1159
+ #
1160
+ # @return [Types::ListMonitorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1161
+ #
1162
+ # * {Types::ListMonitorsOutput#monitors #monitors} => Array&lt;Types::MonitorSummary&gt;
1163
+ # * {Types::ListMonitorsOutput#next_token #next_token} => String
1164
+ #
1165
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1166
+ #
1167
+ # @example Request syntax with placeholder values
1168
+ #
1169
+ # resp = client.list_monitors({
1170
+ # next_token: "String",
1171
+ # max_results: 1,
1172
+ # monitor_status: "PENDING", # accepts PENDING, ACTIVE, INACTIVE, ERROR, DELETING
1173
+ # })
1174
+ #
1175
+ # @example Response structure
1176
+ #
1177
+ # resp.monitors #=> Array
1178
+ # resp.monitors[0].monitor_arn #=> String
1179
+ # resp.monitors[0].monitor_name #=> String
1180
+ # resp.monitors[0].monitor_status #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
1181
+ # resp.next_token #=> String
1182
+ #
1183
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/ListMonitors AWS API Documentation
1184
+ #
1185
+ # @overload list_monitors(params = {})
1186
+ # @param [Hash] params ({})
1187
+ def list_monitors(params = {}, options = {})
1188
+ req = build_request(:list_monitors, params)
1189
+ req.send_request(options)
1190
+ end
1191
+
1192
+ # List all the scopes for an account.
1193
+ #
1194
+ # @option params [String] :next_token
1195
+ # The token for the next set of results. You receive this token from a
1196
+ # previous call.
1197
+ #
1198
+ # @option params [Integer] :max_results
1199
+ # The number of query results that you want to return with this call.
1200
+ #
1201
+ # @return [Types::ListScopesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1202
+ #
1203
+ # * {Types::ListScopesOutput#scopes #scopes} => Array&lt;Types::ScopeSummary&gt;
1204
+ # * {Types::ListScopesOutput#next_token #next_token} => String
1205
+ #
1206
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1207
+ #
1208
+ # @example Request syntax with placeholder values
1209
+ #
1210
+ # resp = client.list_scopes({
1211
+ # next_token: "String",
1212
+ # max_results: 1,
1213
+ # })
1214
+ #
1215
+ # @example Response structure
1216
+ #
1217
+ # resp.scopes #=> Array
1218
+ # resp.scopes[0].scope_id #=> String
1219
+ # resp.scopes[0].status #=> String, one of "SUCCEEDED", "IN_PROGRESS", "FAILED"
1220
+ # resp.scopes[0].scope_arn #=> String
1221
+ # resp.next_token #=> String
1222
+ #
1223
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/ListScopes AWS API Documentation
1224
+ #
1225
+ # @overload list_scopes(params = {})
1226
+ # @param [Hash] params ({})
1227
+ def list_scopes(params = {}, options = {})
1228
+ req = build_request(:list_scopes, params)
1229
+ req.send_request(options)
1230
+ end
1231
+
1232
+ # Returns all the tags for a resource.
1233
+ #
1234
+ # @option params [required, String] :resource_arn
1235
+ # The Amazon Resource Name (ARN) of the resource.
1236
+ #
1237
+ # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1238
+ #
1239
+ # * {Types::ListTagsForResourceOutput#tags #tags} => Hash&lt;String,String&gt;
1240
+ #
1241
+ # @example Request syntax with placeholder values
1242
+ #
1243
+ # resp = client.list_tags_for_resource({
1244
+ # resource_arn: "Arn", # required
1245
+ # })
1246
+ #
1247
+ # @example Response structure
1248
+ #
1249
+ # resp.tags #=> Hash
1250
+ # resp.tags["TagKey"] #=> String
1251
+ #
1252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/ListTagsForResource AWS API Documentation
1253
+ #
1254
+ # @overload list_tags_for_resource(params = {})
1255
+ # @param [Hash] params ({})
1256
+ def list_tags_for_resource(params = {}, options = {})
1257
+ req = build_request(:list_tags_for_resource, params)
1258
+ req.send_request(options)
1259
+ end
1260
+
1261
+ # Start a query to return the data with the Network Flow Monitor query
1262
+ # interface. Specify the query that you want to return results for by
1263
+ # providing a query ID and a monitor name. This query returns the top
1264
+ # contributors for a specific monitor.
1265
+ #
1266
+ # Top contributors in Network Flow Monitor are network flows with the
1267
+ # highest values for a specific metric type, related to a scope (for
1268
+ # workload insights) or a monitor.
1269
+ #
1270
+ # @option params [required, String] :monitor_name
1271
+ # The name of the monitor.
1272
+ #
1273
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1274
+ # The timestamp that is the date and time beginning of the period that
1275
+ # you want to retrieve results for with your query.
1276
+ #
1277
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1278
+ # The timestamp that is the date and time end of the period that you
1279
+ # want to retrieve results for with your query.
1280
+ #
1281
+ # @option params [required, String] :metric_name
1282
+ # The metric that you want to query top contributors for. That is, you
1283
+ # can specify this metric to return the top contributor network flows,
1284
+ # for this type of metric, for a monitor and (optionally) within a
1285
+ # specific category, such as network flows between Availability Zones.
1286
+ #
1287
+ # @option params [required, String] :destination_category
1288
+ # The category that you want to query top contributors for, for a
1289
+ # specific monitor. Destination categories can be one of the following:
1290
+ #
1291
+ # * `INTRA_AZ`: Top contributor network flows within a single
1292
+ # Availability Zone
1293
+ #
1294
+ # * `INTER_AZ`: Top contributor network flows between Availability Zones
1295
+ #
1296
+ # * `INTER_VPC`: Top contributor network flows between VPCs
1297
+ #
1298
+ # * `AWS_SERVICES`: Top contributor network flows to or from Amazon Web
1299
+ # Services services
1300
+ #
1301
+ # * `UNCLASSIFIED`: Top contributor network flows that do not have a
1302
+ # bucket classification
1303
+ #
1304
+ # @option params [Integer] :limit
1305
+ # The maximum number of top contributors to return.
1306
+ #
1307
+ # @return [Types::StartQueryMonitorTopContributorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1308
+ #
1309
+ # * {Types::StartQueryMonitorTopContributorsOutput#query_id #query_id} => String
1310
+ #
1311
+ # @example Request syntax with placeholder values
1312
+ #
1313
+ # resp = client.start_query_monitor_top_contributors({
1314
+ # monitor_name: "ResourceName", # required
1315
+ # start_time: Time.now, # required
1316
+ # end_time: Time.now, # required
1317
+ # metric_name: "ROUND_TRIP_TIME", # required, accepts ROUND_TRIP_TIME, TIMEOUTS, RETRANSMISSIONS, DATA_TRANSFERRED
1318
+ # destination_category: "INTRA_AZ", # required, accepts INTRA_AZ, INTER_AZ, INTER_VPC, UNCLASSIFIED, AMAZON_S3, AMAZON_DYNAMODB
1319
+ # limit: 1,
1320
+ # })
1321
+ #
1322
+ # @example Response structure
1323
+ #
1324
+ # resp.query_id #=> String
1325
+ #
1326
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/StartQueryMonitorTopContributors AWS API Documentation
1327
+ #
1328
+ # @overload start_query_monitor_top_contributors(params = {})
1329
+ # @param [Hash] params ({})
1330
+ def start_query_monitor_top_contributors(params = {}, options = {})
1331
+ req = build_request(:start_query_monitor_top_contributors, params)
1332
+ req.send_request(options)
1333
+ end
1334
+
1335
+ # Start a query to return the data with the Network Flow Monitor query
1336
+ # interface. Specify the query that you want to start by providing a
1337
+ # query ID and a monitor name. This query returns the top contributors
1338
+ # for a specific monitor.
1339
+ #
1340
+ # Top contributors in Network Flow Monitor are network flows with the
1341
+ # highest values for a specific metric type, related to a scope (for
1342
+ # workload insights) or a monitor.
1343
+ #
1344
+ # @option params [required, String] :scope_id
1345
+ # The identifier for the scope that includes the resources you want to
1346
+ # get data results for. A scope ID is an internally-generated identifier
1347
+ # that includes all the resources for a specific root account. A scope
1348
+ # ID is returned from a `CreateScope` API call.
1349
+ #
1350
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1351
+ # The timestamp that is the date and time beginning of the period that
1352
+ # you want to retrieve results for with your query.
1353
+ #
1354
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1355
+ # The timestamp that is the date and time end of the period that you
1356
+ # want to retrieve results for with your query.
1357
+ #
1358
+ # @option params [required, String] :metric_name
1359
+ # The metric that you want to query top contributors for. That is, you
1360
+ # can specify this metric to return the top contributor network flows,
1361
+ # for this type of metric, for a monitor and (optionally) within a
1362
+ # specific category, such as network flows between Availability Zones.
1363
+ #
1364
+ # @option params [required, String] :destination_category
1365
+ # The destination category for a top contributors row. Destination
1366
+ # categories can be one of the following:
1367
+ #
1368
+ # * `INTRA_AZ`: Top contributor network flows within a single
1369
+ # Availability Zone
1370
+ #
1371
+ # * `INTER_AZ`: Top contributor network flows between Availability Zones
1372
+ #
1373
+ # * `INTER_VPC`: Top contributor network flows between VPCs
1374
+ #
1375
+ # * `AWS_SERVICES`: Top contributor network flows to or from Amazon Web
1376
+ # Services services
1377
+ #
1378
+ # * `UNCLASSIFIED`: Top contributor network flows that do not have a
1379
+ # bucket classification
1380
+ #
1381
+ # @option params [Integer] :limit
1382
+ # The maximum number of top contributors to return.
1383
+ #
1384
+ # @return [Types::StartQueryWorkloadInsightsTopContributorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1385
+ #
1386
+ # * {Types::StartQueryWorkloadInsightsTopContributorsOutput#query_id #query_id} => String
1387
+ #
1388
+ # @example Request syntax with placeholder values
1389
+ #
1390
+ # resp = client.start_query_workload_insights_top_contributors({
1391
+ # scope_id: "ScopeId", # required
1392
+ # start_time: Time.now, # required
1393
+ # end_time: Time.now, # required
1394
+ # metric_name: "TIMEOUTS", # required, accepts TIMEOUTS, RETRANSMISSIONS, DATA_TRANSFERRED
1395
+ # destination_category: "INTRA_AZ", # required, accepts INTRA_AZ, INTER_AZ, INTER_VPC, UNCLASSIFIED, AMAZON_S3, AMAZON_DYNAMODB
1396
+ # limit: 1,
1397
+ # })
1398
+ #
1399
+ # @example Response structure
1400
+ #
1401
+ # resp.query_id #=> String
1402
+ #
1403
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/StartQueryWorkloadInsightsTopContributors AWS API Documentation
1404
+ #
1405
+ # @overload start_query_workload_insights_top_contributors(params = {})
1406
+ # @param [Hash] params ({})
1407
+ def start_query_workload_insights_top_contributors(params = {}, options = {})
1408
+ req = build_request(:start_query_workload_insights_top_contributors, params)
1409
+ req.send_request(options)
1410
+ end
1411
+
1412
+ # Return the data for a query with the Network Flow Monitor query
1413
+ # interface. Specify the query that you want to return results for by
1414
+ # providing a query ID and a scope ID. This query returns data for the
1415
+ # top contributors for workload insights. Workload insights provide a
1416
+ # high level view of network flow performance data collected by agents
1417
+ # for a scope.
1418
+ #
1419
+ # A query ID is returned from an API call to start a query of a specific
1420
+ # type; for example
1421
+ #
1422
+ # Top contributors in Network Flow Monitor are network flows with the
1423
+ # highest values for a specific metric type, related to a scope (for
1424
+ # workload insights) or a monitor.
1425
+ #
1426
+ # The top contributor network flows overall for a specific metric type,
1427
+ # for example, the number of retransmissions.
1428
+ #
1429
+ # @option params [required, String] :scope_id
1430
+ # The identifier for the scope that includes the resources you want to
1431
+ # get data results for. A scope ID is an internally-generated identifier
1432
+ # that includes all the resources for a specific root account.
1433
+ #
1434
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1435
+ # The timestamp that is the date and time beginning of the period that
1436
+ # you want to retrieve results for with your query.
1437
+ #
1438
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1439
+ # The timestamp that is the date and time end of the period that you
1440
+ # want to retrieve results for with your query.
1441
+ #
1442
+ # @option params [required, String] :metric_name
1443
+ # The metric that you want to query top contributors for. That is, you
1444
+ # can specify this metric to return the top contributor network flows,
1445
+ # for this type of metric, for a monitor and (optionally) within a
1446
+ # specific category, such as network flows between Availability Zones.
1447
+ #
1448
+ # @option params [required, String] :destination_category
1449
+ # The destination category for a top contributors. Destination
1450
+ # categories can be one of the following:
1451
+ #
1452
+ # * `INTRA_AZ`: Top contributor network flows within a single
1453
+ # Availability Zone
1454
+ #
1455
+ # * `INTER_AZ`: Top contributor network flows between Availability Zones
1456
+ #
1457
+ # * `INTER_VPC`: Top contributor network flows between VPCs
1458
+ #
1459
+ # * `AWS_SERVICES`: Top contributor network flows to or from Amazon Web
1460
+ # Services services
1461
+ #
1462
+ # * `UNCLASSIFIED`: Top contributor network flows that do not have a
1463
+ # bucket classification
1464
+ #
1465
+ # @return [Types::StartQueryWorkloadInsightsTopContributorsDataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1466
+ #
1467
+ # * {Types::StartQueryWorkloadInsightsTopContributorsDataOutput#query_id #query_id} => String
1468
+ #
1469
+ # @example Request syntax with placeholder values
1470
+ #
1471
+ # resp = client.start_query_workload_insights_top_contributors_data({
1472
+ # scope_id: "ScopeId", # required
1473
+ # start_time: Time.now, # required
1474
+ # end_time: Time.now, # required
1475
+ # metric_name: "TIMEOUTS", # required, accepts TIMEOUTS, RETRANSMISSIONS, DATA_TRANSFERRED
1476
+ # destination_category: "INTRA_AZ", # required, accepts INTRA_AZ, INTER_AZ, INTER_VPC, UNCLASSIFIED, AMAZON_S3, AMAZON_DYNAMODB
1477
+ # })
1478
+ #
1479
+ # @example Response structure
1480
+ #
1481
+ # resp.query_id #=> String
1482
+ #
1483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/StartQueryWorkloadInsightsTopContributorsData AWS API Documentation
1484
+ #
1485
+ # @overload start_query_workload_insights_top_contributors_data(params = {})
1486
+ # @param [Hash] params ({})
1487
+ def start_query_workload_insights_top_contributors_data(params = {}, options = {})
1488
+ req = build_request(:start_query_workload_insights_top_contributors_data, params)
1489
+ req.send_request(options)
1490
+ end
1491
+
1492
+ # Stop a query with the Network Flow Monitor query interface. Specify
1493
+ # the query that you want to stop by providing a query ID and a monitor
1494
+ # name. This query returns the top contributors for a specific monitor.
1495
+ #
1496
+ # Top contributors in Network Flow Monitor are network flows with the
1497
+ # highest values for a specific metric type, related to a scope (for
1498
+ # workload insights) or a monitor.
1499
+ #
1500
+ # @option params [required, String] :monitor_name
1501
+ # The name of the monitor.
1502
+ #
1503
+ # @option params [required, String] :query_id
1504
+ # The identifier for the query. A query ID is an internally-generated
1505
+ # identifier for a specific query returned from an API call to start a
1506
+ # query.
1507
+ #
1508
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1509
+ #
1510
+ # @example Request syntax with placeholder values
1511
+ #
1512
+ # resp = client.stop_query_monitor_top_contributors({
1513
+ # monitor_name: "ResourceName", # required
1514
+ # query_id: "String", # required
1515
+ # })
1516
+ #
1517
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/StopQueryMonitorTopContributors AWS API Documentation
1518
+ #
1519
+ # @overload stop_query_monitor_top_contributors(params = {})
1520
+ # @param [Hash] params ({})
1521
+ def stop_query_monitor_top_contributors(params = {}, options = {})
1522
+ req = build_request(:stop_query_monitor_top_contributors, params)
1523
+ req.send_request(options)
1524
+ end
1525
+
1526
+ # Stop a query with the Network Flow Monitor query interface. Specify
1527
+ # the query that you want to stop by providing a query ID and a monitor
1528
+ # name. This query returns the top contributors for a specific monitor.
1529
+ #
1530
+ # Top contributors in Network Flow Monitor are network flows with the
1531
+ # highest values for a specific metric type, related to a scope (for
1532
+ # workload insights) or a monitor.
1533
+ #
1534
+ # @option params [required, String] :scope_id
1535
+ # The identifier for the scope that includes the resources you want to
1536
+ # get data results for. A scope ID is an internally-generated identifier
1537
+ # that includes all the resources for a specific root account.
1538
+ #
1539
+ # @option params [required, String] :query_id
1540
+ # The identifier for the query. A query ID is an internally-generated
1541
+ # identifier for a specific query returned from an API call to start a
1542
+ # query.
1543
+ #
1544
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1545
+ #
1546
+ # @example Request syntax with placeholder values
1547
+ #
1548
+ # resp = client.stop_query_workload_insights_top_contributors({
1549
+ # scope_id: "ScopeId", # required
1550
+ # query_id: "String", # required
1551
+ # })
1552
+ #
1553
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/StopQueryWorkloadInsightsTopContributors AWS API Documentation
1554
+ #
1555
+ # @overload stop_query_workload_insights_top_contributors(params = {})
1556
+ # @param [Hash] params ({})
1557
+ def stop_query_workload_insights_top_contributors(params = {}, options = {})
1558
+ req = build_request(:stop_query_workload_insights_top_contributors, params)
1559
+ req.send_request(options)
1560
+ end
1561
+
1562
+ # Return the data for a query with the Network Flow Monitor query
1563
+ # interface. Specify the query that you want to return results for by
1564
+ # providing a query ID and a scope ID. This query returns data for the
1565
+ # top contributors for workload insights. Workload insights provide a
1566
+ # high level view of network flow performance data collected by agents
1567
+ # for a scope.
1568
+ #
1569
+ # Top contributors in Network Flow Monitor are network flows with the
1570
+ # highest values for a specific metric type, related to a scope (for
1571
+ # workload insights) or a monitor.
1572
+ #
1573
+ # The top contributor network flows overall for a specific metric type,
1574
+ # for example, the number of retransmissions.
1575
+ #
1576
+ # @option params [required, String] :scope_id
1577
+ # The identifier for the scope that includes the resources you want to
1578
+ # get data results for. A scope ID is an internally-generated identifier
1579
+ # that includes all the resources for a specific root account.
1580
+ #
1581
+ # @option params [required, String] :query_id
1582
+ # The identifier for the query. A query ID is an internally-generated
1583
+ # identifier for a specific query returned from an API call to start a
1584
+ # query.
1585
+ #
1586
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1587
+ #
1588
+ # @example Request syntax with placeholder values
1589
+ #
1590
+ # resp = client.stop_query_workload_insights_top_contributors_data({
1591
+ # scope_id: "ScopeId", # required
1592
+ # query_id: "String", # required
1593
+ # })
1594
+ #
1595
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/StopQueryWorkloadInsightsTopContributorsData AWS API Documentation
1596
+ #
1597
+ # @overload stop_query_workload_insights_top_contributors_data(params = {})
1598
+ # @param [Hash] params ({})
1599
+ def stop_query_workload_insights_top_contributors_data(params = {}, options = {})
1600
+ req = build_request(:stop_query_workload_insights_top_contributors_data, params)
1601
+ req.send_request(options)
1602
+ end
1603
+
1604
+ # Adds a tag to a resource.
1605
+ #
1606
+ # @option params [required, String] :resource_arn
1607
+ # The Amazon Resource Name (ARN) of the resource.
1608
+ #
1609
+ # @option params [required, Hash<String,String>] :tags
1610
+ # The tags for a resource.
1611
+ #
1612
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1613
+ #
1614
+ # @example Request syntax with placeholder values
1615
+ #
1616
+ # resp = client.tag_resource({
1617
+ # resource_arn: "Arn", # required
1618
+ # tags: { # required
1619
+ # "TagKey" => "TagValue",
1620
+ # },
1621
+ # })
1622
+ #
1623
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/TagResource AWS API Documentation
1624
+ #
1625
+ # @overload tag_resource(params = {})
1626
+ # @param [Hash] params ({})
1627
+ def tag_resource(params = {}, options = {})
1628
+ req = build_request(:tag_resource, params)
1629
+ req.send_request(options)
1630
+ end
1631
+
1632
+ # Removes a tag from a resource.
1633
+ #
1634
+ # @option params [required, String] :resource_arn
1635
+ # The Amazon Resource Name (ARN) of the resource.
1636
+ #
1637
+ # @option params [required, Array<String>] :tag_keys
1638
+ # Keys that you specified when you tagged a resource.
1639
+ #
1640
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1641
+ #
1642
+ # @example Request syntax with placeholder values
1643
+ #
1644
+ # resp = client.untag_resource({
1645
+ # resource_arn: "Arn", # required
1646
+ # tag_keys: ["TagKey"], # required
1647
+ # })
1648
+ #
1649
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/UntagResource AWS API Documentation
1650
+ #
1651
+ # @overload untag_resource(params = {})
1652
+ # @param [Hash] params ({})
1653
+ def untag_resource(params = {}, options = {})
1654
+ req = build_request(:untag_resource, params)
1655
+ req.send_request(options)
1656
+ end
1657
+
1658
+ # Update a monitor to add or remove local or remote resources.
1659
+ #
1660
+ # @option params [required, String] :monitor_name
1661
+ # The name of the monitor.
1662
+ #
1663
+ # @option params [Array<Types::MonitorLocalResource>] :local_resources_to_add
1664
+ # The local resources to add, as an array of resources with identifiers
1665
+ # and types.
1666
+ #
1667
+ # @option params [Array<Types::MonitorLocalResource>] :local_resources_to_remove
1668
+ # The local resources to remove, as an array of resources with
1669
+ # identifiers and types.
1670
+ #
1671
+ # @option params [Array<Types::MonitorRemoteResource>] :remote_resources_to_add
1672
+ # The remove resources to add, as an array of resources with identifiers
1673
+ # and types.
1674
+ #
1675
+ # @option params [Array<Types::MonitorRemoteResource>] :remote_resources_to_remove
1676
+ # The remove resources to remove, as an array of resources with
1677
+ # identifiers and types.
1678
+ #
1679
+ # @option params [String] :client_token
1680
+ # A unique, case-sensitive string of up to 64 ASCII characters that you
1681
+ # specify to make an idempotent API request. Don't reuse the same
1682
+ # client token for other API requests.
1683
+ #
1684
+ # **A suitable default value is auto-generated.** You should normally
1685
+ # not need to pass this option.**
1686
+ #
1687
+ # @return [Types::UpdateMonitorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1688
+ #
1689
+ # * {Types::UpdateMonitorOutput#monitor_arn #monitor_arn} => String
1690
+ # * {Types::UpdateMonitorOutput#monitor_name #monitor_name} => String
1691
+ # * {Types::UpdateMonitorOutput#monitor_status #monitor_status} => String
1692
+ # * {Types::UpdateMonitorOutput#local_resources #local_resources} => Array&lt;Types::MonitorLocalResource&gt;
1693
+ # * {Types::UpdateMonitorOutput#remote_resources #remote_resources} => Array&lt;Types::MonitorRemoteResource&gt;
1694
+ # * {Types::UpdateMonitorOutput#created_at #created_at} => Time
1695
+ # * {Types::UpdateMonitorOutput#modified_at #modified_at} => Time
1696
+ # * {Types::UpdateMonitorOutput#tags #tags} => Hash&lt;String,String&gt;
1697
+ #
1698
+ # @example Request syntax with placeholder values
1699
+ #
1700
+ # resp = client.update_monitor({
1701
+ # monitor_name: "ResourceName", # required
1702
+ # local_resources_to_add: [
1703
+ # {
1704
+ # type: "AWS::EC2::VPC", # required, accepts AWS::EC2::VPC, AWS::AvailabilityZone, AWS::EC2::Subnet
1705
+ # identifier: "String", # required
1706
+ # },
1707
+ # ],
1708
+ # local_resources_to_remove: [
1709
+ # {
1710
+ # type: "AWS::EC2::VPC", # required, accepts AWS::EC2::VPC, AWS::AvailabilityZone, AWS::EC2::Subnet
1711
+ # identifier: "String", # required
1712
+ # },
1713
+ # ],
1714
+ # remote_resources_to_add: [
1715
+ # {
1716
+ # type: "AWS::EC2::VPC", # required, accepts AWS::EC2::VPC, AWS::AvailabilityZone, AWS::EC2::Subnet, AWS::AWSService
1717
+ # identifier: "String", # required
1718
+ # },
1719
+ # ],
1720
+ # remote_resources_to_remove: [
1721
+ # {
1722
+ # type: "AWS::EC2::VPC", # required, accepts AWS::EC2::VPC, AWS::AvailabilityZone, AWS::EC2::Subnet, AWS::AWSService
1723
+ # identifier: "String", # required
1724
+ # },
1725
+ # ],
1726
+ # client_token: "String",
1727
+ # })
1728
+ #
1729
+ # @example Response structure
1730
+ #
1731
+ # resp.monitor_arn #=> String
1732
+ # resp.monitor_name #=> String
1733
+ # resp.monitor_status #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
1734
+ # resp.local_resources #=> Array
1735
+ # resp.local_resources[0].type #=> String, one of "AWS::EC2::VPC", "AWS::AvailabilityZone", "AWS::EC2::Subnet"
1736
+ # resp.local_resources[0].identifier #=> String
1737
+ # resp.remote_resources #=> Array
1738
+ # resp.remote_resources[0].type #=> String, one of "AWS::EC2::VPC", "AWS::AvailabilityZone", "AWS::EC2::Subnet", "AWS::AWSService"
1739
+ # resp.remote_resources[0].identifier #=> String
1740
+ # resp.created_at #=> Time
1741
+ # resp.modified_at #=> Time
1742
+ # resp.tags #=> Hash
1743
+ # resp.tags["TagKey"] #=> String
1744
+ #
1745
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/UpdateMonitor AWS API Documentation
1746
+ #
1747
+ # @overload update_monitor(params = {})
1748
+ # @param [Hash] params ({})
1749
+ def update_monitor(params = {}, options = {})
1750
+ req = build_request(:update_monitor, params)
1751
+ req.send_request(options)
1752
+ end
1753
+
1754
+ # Update a scope to add or remove resources that you want to be
1755
+ # available for Network Flow Monitor to generate metrics for, when you
1756
+ # have active agents on those resources sending metrics reports to the
1757
+ # Network Flow Monitor backend.
1758
+ #
1759
+ # @option params [required, String] :scope_id
1760
+ # The identifier for the scope that includes the resources you want to
1761
+ # get data results for. A scope ID is an internally-generated identifier
1762
+ # that includes all the resources for a specific root account.
1763
+ #
1764
+ # @option params [Array<Types::TargetResource>] :resources_to_add
1765
+ # A list of resources to add to a scope.
1766
+ #
1767
+ # @option params [Array<Types::TargetResource>] :resources_to_delete
1768
+ # A list of resources to delete from a scope.
1769
+ #
1770
+ # @return [Types::UpdateScopeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1771
+ #
1772
+ # * {Types::UpdateScopeOutput#scope_id #scope_id} => String
1773
+ # * {Types::UpdateScopeOutput#status #status} => String
1774
+ # * {Types::UpdateScopeOutput#scope_arn #scope_arn} => String
1775
+ # * {Types::UpdateScopeOutput#tags #tags} => Hash&lt;String,String&gt;
1776
+ #
1777
+ # @example Request syntax with placeholder values
1778
+ #
1779
+ # resp = client.update_scope({
1780
+ # scope_id: "ScopeId", # required
1781
+ # resources_to_add: [
1782
+ # {
1783
+ # target_identifier: { # required
1784
+ # target_id: { # required
1785
+ # account_id: "AccountId",
1786
+ # },
1787
+ # target_type: "ACCOUNT", # required, accepts ACCOUNT
1788
+ # },
1789
+ # region: "AwsRegion", # required
1790
+ # },
1791
+ # ],
1792
+ # resources_to_delete: [
1793
+ # {
1794
+ # target_identifier: { # required
1795
+ # target_id: { # required
1796
+ # account_id: "AccountId",
1797
+ # },
1798
+ # target_type: "ACCOUNT", # required, accepts ACCOUNT
1799
+ # },
1800
+ # region: "AwsRegion", # required
1801
+ # },
1802
+ # ],
1803
+ # })
1804
+ #
1805
+ # @example Response structure
1806
+ #
1807
+ # resp.scope_id #=> String
1808
+ # resp.status #=> String, one of "SUCCEEDED", "IN_PROGRESS", "FAILED"
1809
+ # resp.scope_arn #=> String
1810
+ # resp.tags #=> Hash
1811
+ # resp.tags["TagKey"] #=> String
1812
+ #
1813
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkflowmonitor-2023-04-19/UpdateScope AWS API Documentation
1814
+ #
1815
+ # @overload update_scope(params = {})
1816
+ # @param [Hash] params ({})
1817
+ def update_scope(params = {}, options = {})
1818
+ req = build_request(:update_scope, params)
1819
+ req.send_request(options)
1820
+ end
1821
+
1822
+ # @!endgroup
1823
+
1824
+ # @param params ({})
1825
+ # @api private
1826
+ def build_request(operation_name, params = {})
1827
+ handlers = @handlers.for(operation_name)
1828
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1829
+ Aws::Telemetry.module_to_tracer_name('Aws::NetworkFlowMonitor')
1830
+ )
1831
+ context = Seahorse::Client::RequestContext.new(
1832
+ operation_name: operation_name,
1833
+ operation: config.api.operation(operation_name),
1834
+ client: self,
1835
+ params: params,
1836
+ config: config,
1837
+ tracer: tracer
1838
+ )
1839
+ context[:gem_name] = 'aws-sdk-networkflowmonitor'
1840
+ context[:gem_version] = '1.0.0'
1841
+ Seahorse::Client::Request.new(handlers, context)
1842
+ end
1843
+
1844
+ # @api private
1845
+ # @deprecated
1846
+ def waiter_names
1847
+ []
1848
+ end
1849
+
1850
+ class << self
1851
+
1852
+ # @api private
1853
+ attr_reader :identifier
1854
+
1855
+ # @api private
1856
+ def errors_module
1857
+ Errors
1858
+ end
1859
+
1860
+ end
1861
+ end
1862
+ end