aws-sdk-networkmonitor 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,1016 @@
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/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/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
35
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
36
+
37
+ Aws::Plugins::GlobalConfiguration.add_identifier(:networkmonitor)
38
+
39
+ module Aws::NetworkMonitor
40
+ # An API client for NetworkMonitor. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::NetworkMonitor::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 = :networkmonitor
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::JsonvalueConverter)
76
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
77
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
78
+ add_plugin(Aws::Plugins::TransferEncoding)
79
+ add_plugin(Aws::Plugins::HttpChecksum)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
85
+ add_plugin(Aws::Plugins::Protocols::RestJson)
86
+ add_plugin(Aws::NetworkMonitor::Plugins::Endpoints)
87
+
88
+ # @overload initialize(options)
89
+ # @param [Hash] options
90
+ # @option options [required, Aws::CredentialProvider] :credentials
91
+ # Your AWS credentials. This can be an instance of any one of the
92
+ # following classes:
93
+ #
94
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
95
+ # credentials.
96
+ #
97
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
98
+ # shared file, such as `~/.aws/config`.
99
+ #
100
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
101
+ #
102
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
103
+ # assume a role after providing credentials via the web.
104
+ #
105
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
106
+ # access token generated from `aws login`.
107
+ #
108
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
109
+ # process that outputs to stdout.
110
+ #
111
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
112
+ # from an EC2 IMDS on an EC2 instance.
113
+ #
114
+ # * `Aws::ECSCredentials` - Used for loading credentials from
115
+ # instances running in ECS.
116
+ #
117
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
118
+ # from the Cognito Identity service.
119
+ #
120
+ # When `:credentials` are not configured directly, the following
121
+ # locations will be searched for credentials:
122
+ #
123
+ # * `Aws.config[:credentials]`
124
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
125
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
126
+ # * `~/.aws/credentials`
127
+ # * `~/.aws/config`
128
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
129
+ # are very aggressive. Construct and pass an instance of
130
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
131
+ # enable retries and extended timeouts. Instance profile credential
132
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
133
+ # to true.
134
+ #
135
+ # @option options [required, String] :region
136
+ # The AWS region to connect to. The configured `:region` is
137
+ # used to determine the service `:endpoint`. When not passed,
138
+ # a default `:region` is searched for in the following locations:
139
+ #
140
+ # * `Aws.config[:region]`
141
+ # * `ENV['AWS_REGION']`
142
+ # * `ENV['AMAZON_REGION']`
143
+ # * `ENV['AWS_DEFAULT_REGION']`
144
+ # * `~/.aws/credentials`
145
+ # * `~/.aws/config`
146
+ #
147
+ # @option options [String] :access_key_id
148
+ #
149
+ # @option options [Boolean] :active_endpoint_cache (false)
150
+ # When set to `true`, a thread polling for endpoints will be running in
151
+ # the background every 60 secs (default). Defaults to `false`.
152
+ #
153
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
154
+ # Used only in `adaptive` retry mode. When true, the request will sleep
155
+ # until there is sufficent client side capacity to retry the request.
156
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
157
+ # not retry instead of sleeping.
158
+ #
159
+ # @option options [Boolean] :client_side_monitoring (false)
160
+ # When `true`, client-side metrics will be collected for all API requests from
161
+ # this client.
162
+ #
163
+ # @option options [String] :client_side_monitoring_client_id ("")
164
+ # Allows you to provide an identifier for this client which will be attached to
165
+ # all generated client side metrics. Defaults to an empty string.
166
+ #
167
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
168
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
169
+ # side monitoring agent is running on, where client metrics will be published via UDP.
170
+ #
171
+ # @option options [Integer] :client_side_monitoring_port (31000)
172
+ # Required for publishing client metrics. The port that the client side monitoring
173
+ # agent is running on, where client metrics will be published via UDP.
174
+ #
175
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
176
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
177
+ # will use the Client Side Monitoring Agent Publisher.
178
+ #
179
+ # @option options [Boolean] :convert_params (true)
180
+ # When `true`, an attempt is made to coerce request parameters into
181
+ # the required types.
182
+ #
183
+ # @option options [Boolean] :correct_clock_skew (true)
184
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
185
+ # a clock skew correction and retry requests with skewed client clocks.
186
+ #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
191
+ # @option options [Boolean] :disable_host_prefix_injection (false)
192
+ # Set to true to disable SDK automatically adding host prefix
193
+ # to default service endpoint when available.
194
+ #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
199
+ # @option options [String] :endpoint
200
+ # The client endpoint is normally constructed from the `:region`
201
+ # option. You should only configure an `:endpoint` when connecting
202
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
203
+ #
204
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
205
+ # Used for the maximum size limit of the LRU cache storing endpoints data
206
+ # for endpoint discovery enabled operations. Defaults to 1000.
207
+ #
208
+ # @option options [Integer] :endpoint_cache_max_threads (10)
209
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
210
+ #
211
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
212
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
213
+ # Use this option to config the time interval in seconds for making
214
+ # requests fetching endpoints information. Defaults to 60 sec.
215
+ #
216
+ # @option options [Boolean] :endpoint_discovery (false)
217
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
218
+ #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
223
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
224
+ # The log formatter.
225
+ #
226
+ # @option options [Symbol] :log_level (:info)
227
+ # The log level to send messages to the `:logger` at.
228
+ #
229
+ # @option options [Logger] :logger
230
+ # The Logger instance to send log messages to. If this option
231
+ # is not set, logging will be disabled.
232
+ #
233
+ # @option options [Integer] :max_attempts (3)
234
+ # An integer representing the maximum number attempts that will be made for
235
+ # a single request, including the initial attempt. For example,
236
+ # setting this value to 5 will result in a request being retried up to
237
+ # 4 times. Used in `standard` and `adaptive` retry modes.
238
+ #
239
+ # @option options [String] :profile ("default")
240
+ # Used when loading credentials from the shared credentials file
241
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
242
+ #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
248
+ # @option options [Proc] :retry_backoff
249
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
250
+ # This option is only used in the `legacy` retry mode.
251
+ #
252
+ # @option options [Float] :retry_base_delay (0.3)
253
+ # The base delay in seconds used by the default backoff function. This option
254
+ # is only used in the `legacy` retry mode.
255
+ #
256
+ # @option options [Symbol] :retry_jitter (:none)
257
+ # A delay randomiser function used by the default backoff function.
258
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
259
+ # otherwise a Proc that takes and returns a number. This option is only used
260
+ # in the `legacy` retry mode.
261
+ #
262
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
263
+ #
264
+ # @option options [Integer] :retry_limit (3)
265
+ # The maximum number of times to retry failed requests. Only
266
+ # ~ 500 level server errors and certain ~ 400 level client errors
267
+ # are retried. Generally, these are throttling errors, data
268
+ # checksum errors, networking errors, timeout errors, auth errors,
269
+ # endpoint discovery, and errors from expired credentials.
270
+ # This option is only used in the `legacy` retry mode.
271
+ #
272
+ # @option options [Integer] :retry_max_delay (0)
273
+ # The maximum number of seconds to delay between retries (0 for no limit)
274
+ # used by the default backoff function. This option is only used in the
275
+ # `legacy` retry mode.
276
+ #
277
+ # @option options [String] :retry_mode ("legacy")
278
+ # Specifies which retry algorithm to use. Values are:
279
+ #
280
+ # * `legacy` - The pre-existing retry behavior. This is default value if
281
+ # no retry mode is provided.
282
+ #
283
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
284
+ # This includes support for retry quotas, which limit the number of
285
+ # unsuccessful retries a client can make.
286
+ #
287
+ # * `adaptive` - An experimental retry mode that includes all the
288
+ # functionality of `standard` mode along with automatic client side
289
+ # throttling. This is a provisional mode that may change behavior
290
+ # in the future.
291
+ #
292
+ #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
297
+ #
298
+ # @option options [String] :secret_access_key
299
+ #
300
+ # @option options [String] :session_token
301
+ #
302
+ # @option options [Boolean] :stub_responses (false)
303
+ # Causes the client to return stubbed responses. By default
304
+ # fake responses are generated and returned. You can specify
305
+ # the response data to return or errors to raise by calling
306
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
307
+ #
308
+ # ** Please note ** When response stubbing is enabled, no HTTP
309
+ # requests are made, and retries are disabled.
310
+ #
311
+ # @option options [Aws::TokenProvider] :token_provider
312
+ # A Bearer Token Provider. This can be an instance of any one of the
313
+ # following classes:
314
+ #
315
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
316
+ # tokens.
317
+ #
318
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
319
+ # access token generated from `aws login`.
320
+ #
321
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
322
+ # will be used to search for tokens configured for your profile in shared configuration files.
323
+ #
324
+ # @option options [Boolean] :use_dualstack_endpoint
325
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
326
+ # will be used if available.
327
+ #
328
+ # @option options [Boolean] :use_fips_endpoint
329
+ # When set to `true`, fips compatible endpoints will be used if available.
330
+ # When a `fips` region is used, the region is normalized and this config
331
+ # is set to `true`.
332
+ #
333
+ # @option options [Boolean] :validate_params (true)
334
+ # When `true`, request parameters are validated before
335
+ # sending the request.
336
+ #
337
+ # @option options [Aws::NetworkMonitor::EndpointProvider] :endpoint_provider
338
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::NetworkMonitor::EndpointParameters`
339
+ #
340
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
341
+ # requests through. Formatted like 'http://proxy.com:123'.
342
+ #
343
+ # @option options [Float] :http_open_timeout (15) The number of
344
+ # seconds to wait when opening a HTTP session before raising a
345
+ # `Timeout::Error`.
346
+ #
347
+ # @option options [Float] :http_read_timeout (60) The default
348
+ # number of seconds to wait for response data. This value can
349
+ # safely be set per-request on the session.
350
+ #
351
+ # @option options [Float] :http_idle_timeout (5) The number of
352
+ # seconds a connection is allowed to sit idle before it is
353
+ # considered stale. Stale connections are closed and removed
354
+ # from the pool before making a request.
355
+ #
356
+ # @option options [Float] :http_continue_timeout (1) The number of
357
+ # seconds to wait for a 100-continue response before sending the
358
+ # request body. This option has no effect unless the request has
359
+ # "Expect" header set to "100-continue". Defaults to `nil` which
360
+ # disables this behaviour. This value can safely be set per
361
+ # request on the session.
362
+ #
363
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
364
+ # in seconds.
365
+ #
366
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
367
+ # HTTP debug output will be sent to the `:logger`.
368
+ #
369
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
370
+ # SSL peer certificates are verified when establishing a
371
+ # connection.
372
+ #
373
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
374
+ # certificate authority bundle file that should be used when
375
+ # verifying peer certificates. If you do not pass
376
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
377
+ # will be used if available.
378
+ #
379
+ # @option options [String] :ssl_ca_directory Full path of the
380
+ # directory that contains the unbundled SSL certificate
381
+ # authority files for verifying peer certificates. If you do
382
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
383
+ # system default will be used if available.
384
+ #
385
+ def initialize(*args)
386
+ super
387
+ end
388
+
389
+ # @!group API Operations
390
+
391
+ # Creates a monitor between a source subnet and destination IP address.
392
+ # Within a monitor you'll create one or more probes that monitor
393
+ # network traffic between your source Amazon Web Services VPC subnets
394
+ # and your destination IP addresses. Each probe then aggregates and
395
+ # sends metrics to Amazon CloudWatch.
396
+ #
397
+ # @option params [required, String] :monitor_name
398
+ # The name identifying the monitor. It can contain only letters,
399
+ # underscores (\_), or dashes (-), and can be up to 255 characters.
400
+ #
401
+ # @option params [Array<Types::CreateMonitorProbeInput>] :probes
402
+ # Displays a list of all of the probes created for a monitor.
403
+ #
404
+ # @option params [Integer] :aggregation_period
405
+ # The time, in seconds, that metrics are aggregated and sent to Amazon
406
+ # CloudWatch. Valid values are either `30` or `60`.
407
+ #
408
+ # @option params [String] :client_token
409
+ # Unique, case-sensitive identifier to ensure the idempotency of the
410
+ # request. Only returned if a client token was provided in the request.
411
+ #
412
+ # **A suitable default value is auto-generated.** You should normally
413
+ # not need to pass this option.**
414
+ #
415
+ # @option params [Hash<String,String>] :tags
416
+ # The list of key-value pairs created and assigned to the monitor.
417
+ #
418
+ # @return [Types::CreateMonitorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
419
+ #
420
+ # * {Types::CreateMonitorOutput#monitor_arn #monitor_arn} => String
421
+ # * {Types::CreateMonitorOutput#monitor_name #monitor_name} => String
422
+ # * {Types::CreateMonitorOutput#state #state} => String
423
+ # * {Types::CreateMonitorOutput#aggregation_period #aggregation_period} => Integer
424
+ # * {Types::CreateMonitorOutput#tags #tags} => Hash&lt;String,String&gt;
425
+ #
426
+ # @example Request syntax with placeholder values
427
+ #
428
+ # resp = client.create_monitor({
429
+ # monitor_name: "ResourceName", # required
430
+ # probes: [
431
+ # {
432
+ # source_arn: "Arn", # required
433
+ # destination: "Destination", # required
434
+ # destination_port: 1,
435
+ # protocol: "TCP", # required, accepts TCP, ICMP
436
+ # packet_size: 1,
437
+ # probe_tags: {
438
+ # "TagKey" => "TagValue",
439
+ # },
440
+ # },
441
+ # ],
442
+ # aggregation_period: 1,
443
+ # client_token: "String",
444
+ # tags: {
445
+ # "TagKey" => "TagValue",
446
+ # },
447
+ # })
448
+ #
449
+ # @example Response structure
450
+ #
451
+ # resp.monitor_arn #=> String
452
+ # resp.monitor_name #=> String
453
+ # resp.state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
454
+ # resp.aggregation_period #=> Integer
455
+ # resp.tags #=> Hash
456
+ # resp.tags["TagKey"] #=> String
457
+ #
458
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/CreateMonitor AWS API Documentation
459
+ #
460
+ # @overload create_monitor(params = {})
461
+ # @param [Hash] params ({})
462
+ def create_monitor(params = {}, options = {})
463
+ req = build_request(:create_monitor, params)
464
+ req.send_request(options)
465
+ end
466
+
467
+ # Create a probe within a monitor. Once you create a probe, and it
468
+ # begins monitoring your network traffic, you'll incur billing charges
469
+ # for that probe.
470
+ #
471
+ # @option params [required, String] :monitor_name
472
+ # The name of the monitor to associated with the probe. To get a list of
473
+ # available monitors, use `ListMonitors`.
474
+ #
475
+ # @option params [required, Types::ProbeInput] :probe
476
+ # Describes the details of an individual probe for a monitor.
477
+ #
478
+ # @option params [String] :client_token
479
+ # Unique, case-sensitive identifier to ensure the idempotency of the
480
+ # request. Only returned if a client token was provided in the request.
481
+ #
482
+ # **A suitable default value is auto-generated.** You should normally
483
+ # not need to pass this option.**
484
+ #
485
+ # @option params [Hash<String,String>] :tags
486
+ # The list of key-value pairs created and assigned to the probe.
487
+ #
488
+ # @return [Types::CreateProbeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
489
+ #
490
+ # * {Types::CreateProbeOutput#probe_id #probe_id} => String
491
+ # * {Types::CreateProbeOutput#probe_arn #probe_arn} => String
492
+ # * {Types::CreateProbeOutput#source_arn #source_arn} => String
493
+ # * {Types::CreateProbeOutput#destination #destination} => String
494
+ # * {Types::CreateProbeOutput#destination_port #destination_port} => Integer
495
+ # * {Types::CreateProbeOutput#protocol #protocol} => String
496
+ # * {Types::CreateProbeOutput#packet_size #packet_size} => Integer
497
+ # * {Types::CreateProbeOutput#address_family #address_family} => String
498
+ # * {Types::CreateProbeOutput#vpc_id #vpc_id} => String
499
+ # * {Types::CreateProbeOutput#state #state} => String
500
+ # * {Types::CreateProbeOutput#created_at #created_at} => Time
501
+ # * {Types::CreateProbeOutput#modified_at #modified_at} => Time
502
+ # * {Types::CreateProbeOutput#tags #tags} => Hash&lt;String,String&gt;
503
+ #
504
+ # @example Request syntax with placeholder values
505
+ #
506
+ # resp = client.create_probe({
507
+ # monitor_name: "ResourceName", # required
508
+ # probe: { # required
509
+ # source_arn: "Arn", # required
510
+ # destination: "Destination", # required
511
+ # destination_port: 1,
512
+ # protocol: "TCP", # required, accepts TCP, ICMP
513
+ # packet_size: 1,
514
+ # tags: {
515
+ # "TagKey" => "TagValue",
516
+ # },
517
+ # },
518
+ # client_token: "String",
519
+ # tags: {
520
+ # "TagKey" => "TagValue",
521
+ # },
522
+ # })
523
+ #
524
+ # @example Response structure
525
+ #
526
+ # resp.probe_id #=> String
527
+ # resp.probe_arn #=> String
528
+ # resp.source_arn #=> String
529
+ # resp.destination #=> String
530
+ # resp.destination_port #=> Integer
531
+ # resp.protocol #=> String, one of "TCP", "ICMP"
532
+ # resp.packet_size #=> Integer
533
+ # resp.address_family #=> String, one of "IPV4", "IPV6"
534
+ # resp.vpc_id #=> String
535
+ # resp.state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING", "DELETED"
536
+ # resp.created_at #=> Time
537
+ # resp.modified_at #=> Time
538
+ # resp.tags #=> Hash
539
+ # resp.tags["TagKey"] #=> String
540
+ #
541
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/CreateProbe AWS API Documentation
542
+ #
543
+ # @overload create_probe(params = {})
544
+ # @param [Hash] params ({})
545
+ def create_probe(params = {}, options = {})
546
+ req = build_request(:create_probe, params)
547
+ req.send_request(options)
548
+ end
549
+
550
+ # Deletes a specified monitor.
551
+ #
552
+ # @option params [required, String] :monitor_name
553
+ # The name of the monitor to delete. Use the `ListMonitors` action to
554
+ # get a list of your current monitors.
555
+ #
556
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
557
+ #
558
+ # @example Request syntax with placeholder values
559
+ #
560
+ # resp = client.delete_monitor({
561
+ # monitor_name: "ResourceName", # required
562
+ # })
563
+ #
564
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/DeleteMonitor AWS API Documentation
565
+ #
566
+ # @overload delete_monitor(params = {})
567
+ # @param [Hash] params ({})
568
+ def delete_monitor(params = {}, options = {})
569
+ req = build_request(:delete_monitor, params)
570
+ req.send_request(options)
571
+ end
572
+
573
+ # Deletes the specified monitor. Once a probe is deleted you'll no
574
+ # longer incur any billing fees for that probe.
575
+ #
576
+ # @option params [required, String] :monitor_name
577
+ # The name of the monitor to delete. For a list of the available
578
+ # monitors, use the `ListMonitors` action.
579
+ #
580
+ # @option params [required, String] :probe_id
581
+ # The ID of the probe to delete. Run `GetMonitor` to get a lst of all
582
+ # probes and probe IDs associated with the monitor.
583
+ #
584
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
585
+ #
586
+ # @example Request syntax with placeholder values
587
+ #
588
+ # resp = client.delete_probe({
589
+ # monitor_name: "ResourceName", # required
590
+ # probe_id: "ProbeId", # required
591
+ # })
592
+ #
593
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/DeleteProbe AWS API Documentation
594
+ #
595
+ # @overload delete_probe(params = {})
596
+ # @param [Hash] params ({})
597
+ def delete_probe(params = {}, options = {})
598
+ req = build_request(:delete_probe, params)
599
+ req.send_request(options)
600
+ end
601
+
602
+ # Returns details about a specific monitor.
603
+ #
604
+ # @option params [required, String] :monitor_name
605
+ # The name of the monitor that details are returned for.
606
+ #
607
+ # @return [Types::GetMonitorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
608
+ #
609
+ # * {Types::GetMonitorOutput#monitor_arn #monitor_arn} => String
610
+ # * {Types::GetMonitorOutput#monitor_name #monitor_name} => String
611
+ # * {Types::GetMonitorOutput#state #state} => String
612
+ # * {Types::GetMonitorOutput#aggregation_period #aggregation_period} => Integer
613
+ # * {Types::GetMonitorOutput#tags #tags} => Hash&lt;String,String&gt;
614
+ # * {Types::GetMonitorOutput#probes #probes} => Array&lt;Types::Probe&gt;
615
+ # * {Types::GetMonitorOutput#created_at #created_at} => Time
616
+ # * {Types::GetMonitorOutput#modified_at #modified_at} => Time
617
+ #
618
+ # @example Request syntax with placeholder values
619
+ #
620
+ # resp = client.get_monitor({
621
+ # monitor_name: "ResourceName", # required
622
+ # })
623
+ #
624
+ # @example Response structure
625
+ #
626
+ # resp.monitor_arn #=> String
627
+ # resp.monitor_name #=> String
628
+ # resp.state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
629
+ # resp.aggregation_period #=> Integer
630
+ # resp.tags #=> Hash
631
+ # resp.tags["TagKey"] #=> String
632
+ # resp.probes #=> Array
633
+ # resp.probes[0].probe_id #=> String
634
+ # resp.probes[0].probe_arn #=> String
635
+ # resp.probes[0].source_arn #=> String
636
+ # resp.probes[0].destination #=> String
637
+ # resp.probes[0].destination_port #=> Integer
638
+ # resp.probes[0].protocol #=> String, one of "TCP", "ICMP"
639
+ # resp.probes[0].packet_size #=> Integer
640
+ # resp.probes[0].address_family #=> String, one of "IPV4", "IPV6"
641
+ # resp.probes[0].vpc_id #=> String
642
+ # resp.probes[0].state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING", "DELETED"
643
+ # resp.probes[0].created_at #=> Time
644
+ # resp.probes[0].modified_at #=> Time
645
+ # resp.probes[0].tags #=> Hash
646
+ # resp.probes[0].tags["TagKey"] #=> String
647
+ # resp.created_at #=> Time
648
+ # resp.modified_at #=> Time
649
+ #
650
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/GetMonitor AWS API Documentation
651
+ #
652
+ # @overload get_monitor(params = {})
653
+ # @param [Hash] params ({})
654
+ def get_monitor(params = {}, options = {})
655
+ req = build_request(:get_monitor, params)
656
+ req.send_request(options)
657
+ end
658
+
659
+ # Returns the details about a probe. You'll need both the `monitorName`
660
+ # and `probeId`.
661
+ #
662
+ # @option params [required, String] :monitor_name
663
+ # The name of the monitor associated with the probe. Run `ListMonitors`
664
+ # to get a list of monitor names.
665
+ #
666
+ # @option params [required, String] :probe_id
667
+ # The ID of the probe to get information about. Run `GetMonitor` action
668
+ # to get a list of probes and probe IDs for the monitor.
669
+ #
670
+ # @return [Types::GetProbeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
671
+ #
672
+ # * {Types::GetProbeOutput#probe_id #probe_id} => String
673
+ # * {Types::GetProbeOutput#probe_arn #probe_arn} => String
674
+ # * {Types::GetProbeOutput#source_arn #source_arn} => String
675
+ # * {Types::GetProbeOutput#destination #destination} => String
676
+ # * {Types::GetProbeOutput#destination_port #destination_port} => Integer
677
+ # * {Types::GetProbeOutput#protocol #protocol} => String
678
+ # * {Types::GetProbeOutput#packet_size #packet_size} => Integer
679
+ # * {Types::GetProbeOutput#address_family #address_family} => String
680
+ # * {Types::GetProbeOutput#vpc_id #vpc_id} => String
681
+ # * {Types::GetProbeOutput#state #state} => String
682
+ # * {Types::GetProbeOutput#created_at #created_at} => Time
683
+ # * {Types::GetProbeOutput#modified_at #modified_at} => Time
684
+ # * {Types::GetProbeOutput#tags #tags} => Hash&lt;String,String&gt;
685
+ #
686
+ # @example Request syntax with placeholder values
687
+ #
688
+ # resp = client.get_probe({
689
+ # monitor_name: "ResourceName", # required
690
+ # probe_id: "ProbeId", # required
691
+ # })
692
+ #
693
+ # @example Response structure
694
+ #
695
+ # resp.probe_id #=> String
696
+ # resp.probe_arn #=> String
697
+ # resp.source_arn #=> String
698
+ # resp.destination #=> String
699
+ # resp.destination_port #=> Integer
700
+ # resp.protocol #=> String, one of "TCP", "ICMP"
701
+ # resp.packet_size #=> Integer
702
+ # resp.address_family #=> String, one of "IPV4", "IPV6"
703
+ # resp.vpc_id #=> String
704
+ # resp.state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING", "DELETED"
705
+ # resp.created_at #=> Time
706
+ # resp.modified_at #=> Time
707
+ # resp.tags #=> Hash
708
+ # resp.tags["TagKey"] #=> String
709
+ #
710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/GetProbe AWS API Documentation
711
+ #
712
+ # @overload get_probe(params = {})
713
+ # @param [Hash] params ({})
714
+ def get_probe(params = {}, options = {})
715
+ req = build_request(:get_probe, params)
716
+ req.send_request(options)
717
+ end
718
+
719
+ # Returns a list of all of your monitors.
720
+ #
721
+ # @option params [String] :next_token
722
+ # The token for the next page of results.
723
+ #
724
+ # @option params [Integer] :max_results
725
+ # The maximum number of results to return with a single call. To
726
+ # retrieve the remaining results, make another call with the returned
727
+ # `nextToken` value.
728
+ #
729
+ # If `MaxResults` is given a value larger than 100, only 100 results are
730
+ # returned.
731
+ #
732
+ # @option params [String] :state
733
+ # The list of all monitors and their states.
734
+ #
735
+ # @return [Types::ListMonitorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
736
+ #
737
+ # * {Types::ListMonitorsOutput#monitors #monitors} => Array&lt;Types::MonitorSummary&gt;
738
+ # * {Types::ListMonitorsOutput#next_token #next_token} => String
739
+ #
740
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
741
+ #
742
+ # @example Request syntax with placeholder values
743
+ #
744
+ # resp = client.list_monitors({
745
+ # next_token: "PaginationToken",
746
+ # max_results: 1,
747
+ # state: "String",
748
+ # })
749
+ #
750
+ # @example Response structure
751
+ #
752
+ # resp.monitors #=> Array
753
+ # resp.monitors[0].monitor_arn #=> String
754
+ # resp.monitors[0].monitor_name #=> String
755
+ # resp.monitors[0].state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
756
+ # resp.monitors[0].aggregation_period #=> Integer
757
+ # resp.monitors[0].tags #=> Hash
758
+ # resp.monitors[0].tags["TagKey"] #=> String
759
+ # resp.next_token #=> String
760
+ #
761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/ListMonitors AWS API Documentation
762
+ #
763
+ # @overload list_monitors(params = {})
764
+ # @param [Hash] params ({})
765
+ def list_monitors(params = {}, options = {})
766
+ req = build_request(:list_monitors, params)
767
+ req.send_request(options)
768
+ end
769
+
770
+ # Lists the tags assigned to this resource.
771
+ #
772
+ # @option params [required, String] :resource_arn
773
+ # The
774
+ #
775
+ # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
776
+ #
777
+ # * {Types::ListTagsForResourceOutput#tags #tags} => Hash&lt;String,String&gt;
778
+ #
779
+ # @example Request syntax with placeholder values
780
+ #
781
+ # resp = client.list_tags_for_resource({
782
+ # resource_arn: "Arn", # required
783
+ # })
784
+ #
785
+ # @example Response structure
786
+ #
787
+ # resp.tags #=> Hash
788
+ # resp.tags["TagKey"] #=> String
789
+ #
790
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/ListTagsForResource AWS API Documentation
791
+ #
792
+ # @overload list_tags_for_resource(params = {})
793
+ # @param [Hash] params ({})
794
+ def list_tags_for_resource(params = {}, options = {})
795
+ req = build_request(:list_tags_for_resource, params)
796
+ req.send_request(options)
797
+ end
798
+
799
+ # Adds key-value pairs to a monitor or probe.
800
+ #
801
+ # @option params [required, String] :resource_arn
802
+ # The ARN of the monitor or probe to tag.
803
+ #
804
+ # @option params [required, Hash<String,String>] :tags
805
+ # The list of key-value pairs assigned to the monitor or probe.
806
+ #
807
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
808
+ #
809
+ # @example Request syntax with placeholder values
810
+ #
811
+ # resp = client.tag_resource({
812
+ # resource_arn: "Arn", # required
813
+ # tags: { # required
814
+ # "TagKey" => "TagValue",
815
+ # },
816
+ # })
817
+ #
818
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/TagResource AWS API Documentation
819
+ #
820
+ # @overload tag_resource(params = {})
821
+ # @param [Hash] params ({})
822
+ def tag_resource(params = {}, options = {})
823
+ req = build_request(:tag_resource, params)
824
+ req.send_request(options)
825
+ end
826
+
827
+ # Removes a key-value pair from a monitor or probe.
828
+ #
829
+ # @option params [required, String] :resource_arn
830
+ # The ARN of the monitor or probe that the tag should be removed from.
831
+ #
832
+ # @option params [required, Array<String>] :tag_keys
833
+ # The key-value pa
834
+ #
835
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
836
+ #
837
+ # @example Request syntax with placeholder values
838
+ #
839
+ # resp = client.untag_resource({
840
+ # resource_arn: "Arn", # required
841
+ # tag_keys: ["TagKey"], # required
842
+ # })
843
+ #
844
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UntagResource AWS API Documentation
845
+ #
846
+ # @overload untag_resource(params = {})
847
+ # @param [Hash] params ({})
848
+ def untag_resource(params = {}, options = {})
849
+ req = build_request(:untag_resource, params)
850
+ req.send_request(options)
851
+ end
852
+
853
+ # Updates the `aggregationPeriod` for a monitor. Monitors support an
854
+ # `aggregationPeriod` of either `30` or `60` seconds.
855
+ #
856
+ # @option params [required, String] :monitor_name
857
+ # The name of the monitor to update. Run `ListMonitors` to get a list of
858
+ # monitor names.
859
+ #
860
+ # @option params [required, Integer] :aggregation_period
861
+ # The aggregation time, in seconds, to change to. This must be either
862
+ # `30` or `60`.
863
+ #
864
+ # @return [Types::UpdateMonitorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
865
+ #
866
+ # * {Types::UpdateMonitorOutput#monitor_arn #monitor_arn} => String
867
+ # * {Types::UpdateMonitorOutput#monitor_name #monitor_name} => String
868
+ # * {Types::UpdateMonitorOutput#state #state} => String
869
+ # * {Types::UpdateMonitorOutput#aggregation_period #aggregation_period} => Integer
870
+ # * {Types::UpdateMonitorOutput#tags #tags} => Hash&lt;String,String&gt;
871
+ #
872
+ # @example Request syntax with placeholder values
873
+ #
874
+ # resp = client.update_monitor({
875
+ # monitor_name: "ResourceName", # required
876
+ # aggregation_period: 1, # required
877
+ # })
878
+ #
879
+ # @example Response structure
880
+ #
881
+ # resp.monitor_arn #=> String
882
+ # resp.monitor_name #=> String
883
+ # resp.state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING"
884
+ # resp.aggregation_period #=> Integer
885
+ # resp.tags #=> Hash
886
+ # resp.tags["TagKey"] #=> String
887
+ #
888
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UpdateMonitor AWS API Documentation
889
+ #
890
+ # @overload update_monitor(params = {})
891
+ # @param [Hash] params ({})
892
+ def update_monitor(params = {}, options = {})
893
+ req = build_request(:update_monitor, params)
894
+ req.send_request(options)
895
+ end
896
+
897
+ # Updates a monitor probe. This action requires both the `monitorName`
898
+ # and `probeId` parameters. Run `ListMonitors` to get a list of monitor
899
+ # names. Run `GetMonitor` to get a list of probes and probe IDs.
900
+ #
901
+ # @option params [required, String] :monitor_name
902
+ # The name of the monitor that the probe was updated for.
903
+ #
904
+ # @option params [required, String] :probe_id
905
+ # Run `GetMonitor` to get a list of probes and probe IDs.
906
+ #
907
+ # @option params [String] :state
908
+ # The state of the probe update.
909
+ #
910
+ # @option params [String] :destination
911
+ # The updated IP address for the probe destination. This must be either
912
+ # an IPv4 or IPv6 address.
913
+ #
914
+ # @option params [Integer] :destination_port
915
+ # The updated port for the probe destination. This is required only if
916
+ # the `protocol` is `TCP` and must be a number between `1` and `65536`.
917
+ #
918
+ # @option params [String] :protocol
919
+ # The updated network protocol for the destination. This can be either
920
+ # `TCP` or `ICMP`. If the protocol is `TCP`, then `port` is also
921
+ # required.
922
+ #
923
+ # @option params [Integer] :packet_size
924
+ # he updated packets size for network traffic between the source and
925
+ # destination. This must be a number between `56` and `8500`.
926
+ #
927
+ # @return [Types::UpdateProbeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
928
+ #
929
+ # * {Types::UpdateProbeOutput#probe_id #probe_id} => String
930
+ # * {Types::UpdateProbeOutput#probe_arn #probe_arn} => String
931
+ # * {Types::UpdateProbeOutput#source_arn #source_arn} => String
932
+ # * {Types::UpdateProbeOutput#destination #destination} => String
933
+ # * {Types::UpdateProbeOutput#destination_port #destination_port} => Integer
934
+ # * {Types::UpdateProbeOutput#protocol #protocol} => String
935
+ # * {Types::UpdateProbeOutput#packet_size #packet_size} => Integer
936
+ # * {Types::UpdateProbeOutput#address_family #address_family} => String
937
+ # * {Types::UpdateProbeOutput#vpc_id #vpc_id} => String
938
+ # * {Types::UpdateProbeOutput#state #state} => String
939
+ # * {Types::UpdateProbeOutput#created_at #created_at} => Time
940
+ # * {Types::UpdateProbeOutput#modified_at #modified_at} => Time
941
+ # * {Types::UpdateProbeOutput#tags #tags} => Hash&lt;String,String&gt;
942
+ #
943
+ # @example Request syntax with placeholder values
944
+ #
945
+ # resp = client.update_probe({
946
+ # monitor_name: "ResourceName", # required
947
+ # probe_id: "ProbeId", # required
948
+ # state: "PENDING", # accepts PENDING, ACTIVE, INACTIVE, ERROR, DELETING, DELETED
949
+ # destination: "Destination",
950
+ # destination_port: 1,
951
+ # protocol: "TCP", # accepts TCP, ICMP
952
+ # packet_size: 1,
953
+ # })
954
+ #
955
+ # @example Response structure
956
+ #
957
+ # resp.probe_id #=> String
958
+ # resp.probe_arn #=> String
959
+ # resp.source_arn #=> String
960
+ # resp.destination #=> String
961
+ # resp.destination_port #=> Integer
962
+ # resp.protocol #=> String, one of "TCP", "ICMP"
963
+ # resp.packet_size #=> Integer
964
+ # resp.address_family #=> String, one of "IPV4", "IPV6"
965
+ # resp.vpc_id #=> String
966
+ # resp.state #=> String, one of "PENDING", "ACTIVE", "INACTIVE", "ERROR", "DELETING", "DELETED"
967
+ # resp.created_at #=> Time
968
+ # resp.modified_at #=> Time
969
+ # resp.tags #=> Hash
970
+ # resp.tags["TagKey"] #=> String
971
+ #
972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/networkmonitor-2023-08-01/UpdateProbe AWS API Documentation
973
+ #
974
+ # @overload update_probe(params = {})
975
+ # @param [Hash] params ({})
976
+ def update_probe(params = {}, options = {})
977
+ req = build_request(:update_probe, params)
978
+ req.send_request(options)
979
+ end
980
+
981
+ # @!endgroup
982
+
983
+ # @param params ({})
984
+ # @api private
985
+ def build_request(operation_name, params = {})
986
+ handlers = @handlers.for(operation_name)
987
+ context = Seahorse::Client::RequestContext.new(
988
+ operation_name: operation_name,
989
+ operation: config.api.operation(operation_name),
990
+ client: self,
991
+ params: params,
992
+ config: config)
993
+ context[:gem_name] = 'aws-sdk-networkmonitor'
994
+ context[:gem_version] = '1.0.0'
995
+ Seahorse::Client::Request.new(handlers, context)
996
+ end
997
+
998
+ # @api private
999
+ # @deprecated
1000
+ def waiter_names
1001
+ []
1002
+ end
1003
+
1004
+ class << self
1005
+
1006
+ # @api private
1007
+ attr_reader :identifier
1008
+
1009
+ # @api private
1010
+ def errors_module
1011
+ Errors
1012
+ end
1013
+
1014
+ end
1015
+ end
1016
+ end