aws-sdk-evs 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,1392 @@
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'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/json_rpc'
38
+
39
+ module Aws::Evs
40
+ # An API client for Evs. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::Evs::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 = :evs
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::JsonRpc)
88
+ add_plugin(Aws::Evs::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
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
204
+ #
205
+ # @option options [Boolean] :disable_request_compression (false)
206
+ # When set to 'true' the request body will not be compressed
207
+ # for supported operations.
208
+ #
209
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
210
+ # Normally you should not configure the `:endpoint` option
211
+ # directly. This is normally constructed from the `:region`
212
+ # option. Configuring `:endpoint` is normally reserved for
213
+ # connecting to test or custom endpoints. The endpoint should
214
+ # be a URI formatted like:
215
+ #
216
+ # 'http://example.com'
217
+ # 'https://example.com'
218
+ # 'http://example.com:123'
219
+ #
220
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
221
+ # Used for the maximum size limit of the LRU cache storing endpoints data
222
+ # for endpoint discovery enabled operations. Defaults to 1000.
223
+ #
224
+ # @option options [Integer] :endpoint_cache_max_threads (10)
225
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
226
+ #
227
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
228
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
229
+ # Use this option to config the time interval in seconds for making
230
+ # requests fetching endpoints information. Defaults to 60 sec.
231
+ #
232
+ # @option options [Boolean] :endpoint_discovery (false)
233
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
234
+ #
235
+ # @option options [Boolean] :ignore_configured_endpoint_urls
236
+ # Setting to true disables use of endpoint URLs provided via environment
237
+ # variables and the shared configuration file.
238
+ #
239
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
240
+ # The log formatter.
241
+ #
242
+ # @option options [Symbol] :log_level (:info)
243
+ # The log level to send messages to the `:logger` at.
244
+ #
245
+ # @option options [Logger] :logger
246
+ # The Logger instance to send log messages to. If this option
247
+ # is not set, logging will be disabled.
248
+ #
249
+ # @option options [Integer] :max_attempts (3)
250
+ # An integer representing the maximum number attempts that will be made for
251
+ # a single request, including the initial attempt. For example,
252
+ # setting this value to 5 will result in a request being retried up to
253
+ # 4 times. Used in `standard` and `adaptive` retry modes.
254
+ #
255
+ # @option options [String] :profile ("default")
256
+ # Used when loading credentials from the shared credentials file
257
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
258
+ #
259
+ # @option options [String] :request_checksum_calculation ("when_supported")
260
+ # Determines when a checksum will be calculated for request payloads. Values are:
261
+ #
262
+ # * `when_supported` - (default) When set, a checksum will be
263
+ # calculated for all request payloads of operations modeled with the
264
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
265
+ # `requestAlgorithmMember` is modeled.
266
+ # * `when_required` - When set, a checksum will only be calculated for
267
+ # request payloads of operations modeled with the `httpChecksum` trait where
268
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
269
+ # is modeled and supplied.
270
+ #
271
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
272
+ # The minimum size in bytes that triggers compression for request
273
+ # bodies. The value must be non-negative integer value between 0
274
+ # and 10485780 bytes inclusive.
275
+ #
276
+ # @option options [String] :response_checksum_validation ("when_supported")
277
+ # Determines when checksum validation will be performed on response payloads. Values are:
278
+ #
279
+ # * `when_supported` - (default) When set, checksum validation is performed on all
280
+ # response payloads of operations modeled with the `httpChecksum` trait where
281
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
282
+ # are supported.
283
+ # * `when_required` - When set, checksum validation is not performed on
284
+ # response payloads of operations unless the checksum algorithm is supported and
285
+ # the `requestValidationModeMember` member is set to `ENABLED`.
286
+ #
287
+ # @option options [Proc] :retry_backoff
288
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
289
+ # This option is only used in the `legacy` retry mode.
290
+ #
291
+ # @option options [Float] :retry_base_delay (0.3)
292
+ # The base delay in seconds used by the default backoff function. This option
293
+ # is only used in the `legacy` retry mode.
294
+ #
295
+ # @option options [Symbol] :retry_jitter (:none)
296
+ # A delay randomiser function used by the default backoff function.
297
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
298
+ # otherwise a Proc that takes and returns a number. This option is only used
299
+ # in the `legacy` retry mode.
300
+ #
301
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
302
+ #
303
+ # @option options [Integer] :retry_limit (3)
304
+ # The maximum number of times to retry failed requests. Only
305
+ # ~ 500 level server errors and certain ~ 400 level client errors
306
+ # are retried. Generally, these are throttling errors, data
307
+ # checksum errors, networking errors, timeout errors, auth errors,
308
+ # endpoint discovery, and errors from expired credentials.
309
+ # This option is only used in the `legacy` retry mode.
310
+ #
311
+ # @option options [Integer] :retry_max_delay (0)
312
+ # The maximum number of seconds to delay between retries (0 for no limit)
313
+ # used by the default backoff function. This option is only used in the
314
+ # `legacy` retry mode.
315
+ #
316
+ # @option options [String] :retry_mode ("legacy")
317
+ # Specifies which retry algorithm to use. Values are:
318
+ #
319
+ # * `legacy` - The pre-existing retry behavior. This is default value if
320
+ # no retry mode is provided.
321
+ #
322
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
323
+ # This includes support for retry quotas, which limit the number of
324
+ # unsuccessful retries a client can make.
325
+ #
326
+ # * `adaptive` - An experimental retry mode that includes all the
327
+ # functionality of `standard` mode along with automatic client side
328
+ # throttling. This is a provisional mode that may change behavior
329
+ # in the future.
330
+ #
331
+ # @option options [String] :sdk_ua_app_id
332
+ # A unique and opaque application ID that is appended to the
333
+ # User-Agent header as app/sdk_ua_app_id. It should have a
334
+ # maximum length of 50. This variable is sourced from environment
335
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
336
+ #
337
+ # @option options [String] :secret_access_key
338
+ #
339
+ # @option options [String] :session_token
340
+ #
341
+ # @option options [Array] :sigv4a_signing_region_set
342
+ # A list of regions that should be signed with SigV4a signing. When
343
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
344
+ # in the following locations:
345
+ #
346
+ # * `Aws.config[:sigv4a_signing_region_set]`
347
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
348
+ # * `~/.aws/config`
349
+ #
350
+ # @option options [Boolean] :simple_json (false)
351
+ # Disables request parameter conversion, validation, and formatting.
352
+ # Also disables response data type conversions. The request parameters
353
+ # hash must be formatted exactly as the API expects.This option is useful
354
+ # when you want to ensure the highest level of performance by avoiding
355
+ # overhead of walking request parameters and response data structures.
356
+ #
357
+ # @option options [Boolean] :stub_responses (false)
358
+ # Causes the client to return stubbed responses. By default
359
+ # fake responses are generated and returned. You can specify
360
+ # the response data to return or errors to raise by calling
361
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
362
+ #
363
+ # ** Please note ** When response stubbing is enabled, no HTTP
364
+ # requests are made, and retries are disabled.
365
+ #
366
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
367
+ # Allows you to provide a telemetry provider, which is used to
368
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
369
+ # will not record or emit any telemetry data. The SDK supports the
370
+ # following telemetry providers:
371
+ #
372
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
373
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
374
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
375
+ #
376
+ # @option options [Aws::TokenProvider] :token_provider
377
+ # A Bearer Token Provider. This can be an instance of any one of the
378
+ # following classes:
379
+ #
380
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
381
+ # tokens.
382
+ #
383
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
384
+ # access token generated from `aws login`.
385
+ #
386
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
387
+ # will be used to search for tokens configured for your profile in shared configuration files.
388
+ #
389
+ # @option options [Boolean] :use_dualstack_endpoint
390
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
391
+ # will be used if available.
392
+ #
393
+ # @option options [Boolean] :use_fips_endpoint
394
+ # When set to `true`, fips compatible endpoints will be used if available.
395
+ # When a `fips` region is used, the region is normalized and this config
396
+ # is set to `true`.
397
+ #
398
+ # @option options [Boolean] :validate_params (true)
399
+ # When `true`, request parameters are validated before
400
+ # sending the request.
401
+ #
402
+ # @option options [Aws::Evs::EndpointProvider] :endpoint_provider
403
+ # The endpoint provider used to resolve endpoints. Any object that responds to
404
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
405
+ # `Aws::Evs::EndpointParameters`.
406
+ #
407
+ # @option options [Float] :http_continue_timeout (1)
408
+ # The number of seconds to wait for a 100-continue response before sending the
409
+ # request body. This option has no effect unless the request has "Expect"
410
+ # header set to "100-continue". Defaults to `nil` which disables this
411
+ # behaviour. This value can safely be set per request on the session.
412
+ #
413
+ # @option options [Float] :http_idle_timeout (5)
414
+ # The number of seconds a connection is allowed to sit idle before it
415
+ # is considered stale. Stale connections are closed and removed from the
416
+ # pool before making a request.
417
+ #
418
+ # @option options [Float] :http_open_timeout (15)
419
+ # The default number of seconds to wait for response data.
420
+ # This value can safely be set per-request on the session.
421
+ #
422
+ # @option options [URI::HTTP,String] :http_proxy
423
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
424
+ #
425
+ # @option options [Float] :http_read_timeout (60)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [Boolean] :http_wire_trace (false)
430
+ # When `true`, HTTP debug output will be sent to the `:logger`.
431
+ #
432
+ # @option options [Proc] :on_chunk_received
433
+ # When a Proc object is provided, it will be used as callback when each chunk
434
+ # of the response body is received. It provides three arguments: the chunk,
435
+ # the number of bytes received, and the total number of
436
+ # bytes in the response (or nil if the server did not send a `content-length`).
437
+ #
438
+ # @option options [Proc] :on_chunk_sent
439
+ # When a Proc object is provided, it will be used as callback when each chunk
440
+ # of the request body is sent. It provides three arguments: the chunk,
441
+ # the number of bytes read from the body, and the total number of
442
+ # bytes in the body.
443
+ #
444
+ # @option options [Boolean] :raise_response_errors (true)
445
+ # When `true`, response errors are raised.
446
+ #
447
+ # @option options [String] :ssl_ca_bundle
448
+ # Full path to the SSL certificate authority bundle file that should be used when
449
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
450
+ # `:ssl_ca_directory` the the system default will be used if available.
451
+ #
452
+ # @option options [String] :ssl_ca_directory
453
+ # Full path of the directory that contains the unbundled SSL certificate
454
+ # authority files for verifying peer certificates. If you do
455
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
456
+ # default will be used if available.
457
+ #
458
+ # @option options [String] :ssl_ca_store
459
+ # Sets the X509::Store to verify peer certificate.
460
+ #
461
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
462
+ # Sets a client certificate when creating http connections.
463
+ #
464
+ # @option options [OpenSSL::PKey] :ssl_key
465
+ # Sets a client key when creating http connections.
466
+ #
467
+ # @option options [Float] :ssl_timeout
468
+ # Sets the SSL timeout in seconds
469
+ #
470
+ # @option options [Boolean] :ssl_verify_peer (true)
471
+ # When `true`, SSL peer certificates are verified when establishing a connection.
472
+ #
473
+ def initialize(*args)
474
+ super
475
+ end
476
+
477
+ # @!group API Operations
478
+
479
+ # Creates an Amazon EVS environment that runs VCF software, such as SDDC
480
+ # Manager, NSX Manager, and vCenter Server.
481
+ #
482
+ # During environment creation, Amazon EVS performs validations on DNS
483
+ # settings, provisions VLAN subnets and hosts, and deploys the supplied
484
+ # version of VCF.
485
+ #
486
+ # It can take several hours to create an environment. After the
487
+ # deployment completes, you can configure VCF according to your unique
488
+ # requirements.
489
+ #
490
+ # <note markdown="1"> You cannot use the `dedicatedHostId` and `placementGroupId` parameters
491
+ # together in the same `CreateEnvironment` action. This results in a
492
+ # `ValidationException` response.
493
+ #
494
+ # </note>
495
+ #
496
+ # <note markdown="1"> EC2 instances created through Amazon EVS do not support associating an
497
+ # IAM instance profile.
498
+ #
499
+ # </note>
500
+ #
501
+ # @option params [String] :client_token
502
+ # <note markdown="1"> This parameter is not used in Amazon EVS
503
+ # currently. If you supply
504
+ # input for this parameter, it will have no effect.
505
+ #
506
+ # </note>
507
+ #
508
+ # A unique, case-sensitive identifier that you provide to ensure the
509
+ # idempotency of the environment creation request. If you do not specify
510
+ # a client token, a randomly generated token is used for the request to
511
+ # ensure idempotency.
512
+ #
513
+ # **A suitable default value is auto-generated.** You should normally
514
+ # not need to pass this option.**
515
+ #
516
+ # @option params [String] :environment_name
517
+ # The name to give to your environment. The name can contain only
518
+ # alphanumeric characters (case-sensitive), hyphens, and underscores. It
519
+ # must start with an alphanumeric character, and can't be longer than
520
+ # 100 characters. The name must be unique within the Amazon Web Services
521
+ # Region and Amazon Web Services account that you're creating the
522
+ # environment in.
523
+ #
524
+ # @option params [String] :kms_key_id
525
+ # A unique ID for the customer-managed KMS key that is used to encrypt
526
+ # the VCF credential pairs for SDDC Manager, NSX Manager, and vCenter
527
+ # appliances. These credentials are stored in Amazon Web Services
528
+ # Secrets Manager.
529
+ #
530
+ # @option params [Hash<String,String>] :tags
531
+ # Metadata that assists with categorization and organization. Each tag
532
+ # consists of a key and an optional value. You define both. Tags don't
533
+ # propagate to any other cluster or Amazon Web Services resources.
534
+ #
535
+ # @option params [Types::ServiceAccessSecurityGroups] :service_access_security_groups
536
+ # The security group that controls communication between the Amazon EVS
537
+ # control plane and VPC. The default security group is used if a custom
538
+ # security group isn't specified.
539
+ #
540
+ # The security group should allow access to the following.
541
+ #
542
+ # * TCP/UDP access to the DNS servers
543
+ #
544
+ # * HTTPS/SSH access to the host management VLAN subnet
545
+ #
546
+ # * HTTPS/SSH access to the Management VM VLAN subnet
547
+ #
548
+ # You should avoid modifying the security group rules after deployment,
549
+ # as this can break the persistent connection between the Amazon EVS
550
+ # control plane and VPC. This can cause future environment actions like
551
+ # adding or removing hosts to fail.
552
+ #
553
+ # @option params [required, String] :vpc_id
554
+ # A unique ID for the VPC that connects to the environment control plane
555
+ # for service access.
556
+ #
557
+ # Amazon EVS requires that all VPC subnets exist in a single
558
+ # Availability Zone in a Region where the service is available.
559
+ #
560
+ # The VPC that you select must have a valid DHCP option set with domain
561
+ # name, at least two DNS servers, and an NTP server. These settings are
562
+ # used to configure your VCF appliances and hosts.
563
+ #
564
+ # If you plan to use HCX over the internet, choose a VPC that has a
565
+ # primary CIDR block and a /28 secondary CIDR block from an IPAM pool.
566
+ # Make sure that your VPC also has an attached internet gateway.
567
+ #
568
+ # Amazon EVS does not support the following Amazon Web Services
569
+ # networking options for NSX overlay connectivity: cross-Region VPC
570
+ # peering, Amazon S3 gateway endpoints, or Amazon Web Services Direct
571
+ # Connect virtual private gateway associations.
572
+ #
573
+ # @option params [required, String] :service_access_subnet_id
574
+ # The subnet that is used to establish connectivity between the Amazon
575
+ # EVS control plane and VPC. Amazon EVS uses this subnet to validate
576
+ # mandatory DNS records for your VCF appliances and hosts and create the
577
+ # environment.
578
+ #
579
+ # @option params [required, String] :vcf_version
580
+ # The VCF version to use for the environment. Amazon EVS only supports
581
+ # VCF version 5.2.1 at this time.
582
+ #
583
+ # @option params [required, Boolean] :terms_accepted
584
+ # Customer confirmation that the customer has purchased and maintains
585
+ # sufficient VCF software licenses to cover all physical processor cores
586
+ # in the environment, in compliance with VMware's licensing
587
+ # requirements and terms of use.
588
+ #
589
+ # @option params [required, Array<Types::LicenseInfo>] :license_info
590
+ # The license information that Amazon EVS requires to create an
591
+ # environment. Amazon EVS requires two license keys: a VCF solution key
592
+ # and a vSAN license key. VCF licenses must have sufficient core
593
+ # entitlements to cover vCPU core and vSAN storage capacity needs.
594
+ #
595
+ # VCF licenses can be used for only one Amazon EVS environment. Amazon
596
+ # EVS does not support reuse of VCF licenses for multiple environments.
597
+ #
598
+ # VCF license information can be retrieved from the Broadcom portal.
599
+ #
600
+ # @option params [required, Types::InitialVlans] :initial_vlans
601
+ # The initial VLAN subnets for the environment. You must specify a
602
+ # non-overlapping CIDR block for each VLAN subnet.
603
+ #
604
+ # @option params [required, Array<Types::HostInfoForCreate>] :hosts
605
+ # The ESXi hosts to add to the environment. Amazon EVS requires that you
606
+ # provide details for a minimum of 4 hosts during environment creation.
607
+ #
608
+ # For each host, you must provide the desired hostname, EC2 SSH key, and
609
+ # EC2 instance type. Optionally, you can also provide a partition or
610
+ # cluster placement group to use, or use Amazon EC2 Dedicated Hosts.
611
+ #
612
+ # @option params [required, Types::ConnectivityInfo] :connectivity_info
613
+ # The connectivity configuration for the environment. Amazon EVS
614
+ # requires that you specify two route server peer IDs. During
615
+ # environment creation, the route server endpoints peer with the NSX
616
+ # edges over the NSX, providing BGP dynamic routing for overlay
617
+ # networks.
618
+ #
619
+ # @option params [required, Types::VcfHostnames] :vcf_hostnames
620
+ # The DNS hostnames for the virtual machines that host the VCF
621
+ # management appliances. Amazon EVS requires that you provide DNS
622
+ # hostnames for the following appliances: vCenter, NSX Manager, SDDC
623
+ # Manager, and Cloud Builder.
624
+ #
625
+ # @option params [required, String] :site_id
626
+ # The Broadcom Site ID that is allocated to you as part of your
627
+ # electronic software delivery. This ID allows customer access to the
628
+ # Broadcom portal, and is provided to you by Broadcom at the close of
629
+ # your software contract or contract renewal. Amazon EVS uses the
630
+ # Broadcom Site ID that you provide to meet Broadcom VCF license usage
631
+ # reporting requirements for Amazon EVS.
632
+ #
633
+ # @return [Types::CreateEnvironmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
634
+ #
635
+ # * {Types::CreateEnvironmentResponse#environment #environment} => Types::Environment
636
+ #
637
+ # @example Request syntax with placeholder values
638
+ #
639
+ # resp = client.create_environment({
640
+ # client_token: "ClientToken",
641
+ # environment_name: "EnvironmentName",
642
+ # kms_key_id: "String",
643
+ # tags: {
644
+ # "TagKey" => "TagValue",
645
+ # },
646
+ # service_access_security_groups: {
647
+ # security_groups: ["SecurityGroupId"],
648
+ # },
649
+ # vpc_id: "VpcId", # required
650
+ # service_access_subnet_id: "SubnetId", # required
651
+ # vcf_version: "VCF-5.2.1", # required, accepts VCF-5.2.1
652
+ # terms_accepted: false, # required
653
+ # license_info: [ # required
654
+ # {
655
+ # solution_key: "SolutionKey", # required
656
+ # vsan_key: "VSanLicenseKey", # required
657
+ # },
658
+ # ],
659
+ # initial_vlans: { # required
660
+ # vmk_management: { # required
661
+ # cidr: "Cidr", # required
662
+ # },
663
+ # vm_management: { # required
664
+ # cidr: "Cidr", # required
665
+ # },
666
+ # v_motion: { # required
667
+ # cidr: "Cidr", # required
668
+ # },
669
+ # v_san: { # required
670
+ # cidr: "Cidr", # required
671
+ # },
672
+ # v_tep: { # required
673
+ # cidr: "Cidr", # required
674
+ # },
675
+ # edge_v_tep: { # required
676
+ # cidr: "Cidr", # required
677
+ # },
678
+ # nsx_uplink: { # required
679
+ # cidr: "Cidr", # required
680
+ # },
681
+ # hcx: { # required
682
+ # cidr: "Cidr", # required
683
+ # },
684
+ # expansion_vlan_1: { # required
685
+ # cidr: "Cidr", # required
686
+ # },
687
+ # expansion_vlan_2: { # required
688
+ # cidr: "Cidr", # required
689
+ # },
690
+ # },
691
+ # hosts: [ # required
692
+ # {
693
+ # host_name: "HostName", # required
694
+ # key_name: "KeyName", # required
695
+ # instance_type: "i4i.metal", # required, accepts i4i.metal
696
+ # placement_group_id: "PlacementGroupId",
697
+ # dedicated_host_id: "DedicatedHostId",
698
+ # },
699
+ # ],
700
+ # connectivity_info: { # required
701
+ # private_route_server_peerings: ["RouteServerPeering"], # required
702
+ # },
703
+ # vcf_hostnames: { # required
704
+ # v_center: "HostName", # required
705
+ # nsx: "HostName", # required
706
+ # nsx_manager_1: "HostName", # required
707
+ # nsx_manager_2: "HostName", # required
708
+ # nsx_manager_3: "HostName", # required
709
+ # nsx_edge_1: "HostName", # required
710
+ # nsx_edge_2: "HostName", # required
711
+ # sddc_manager: "HostName", # required
712
+ # cloud_builder: "HostName", # required
713
+ # },
714
+ # site_id: "String", # required
715
+ # })
716
+ #
717
+ # @example Response structure
718
+ #
719
+ # resp.environment.environment_id #=> String
720
+ # resp.environment.environment_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
721
+ # resp.environment.state_details #=> String
722
+ # resp.environment.created_at #=> Time
723
+ # resp.environment.modified_at #=> Time
724
+ # resp.environment.environment_arn #=> String
725
+ # resp.environment.environment_name #=> String
726
+ # resp.environment.vpc_id #=> String
727
+ # resp.environment.service_access_subnet_id #=> String
728
+ # resp.environment.vcf_version #=> String, one of "VCF-5.2.1"
729
+ # resp.environment.terms_accepted #=> Boolean
730
+ # resp.environment.license_info #=> Array
731
+ # resp.environment.license_info[0].solution_key #=> String
732
+ # resp.environment.license_info[0].vsan_key #=> String
733
+ # resp.environment.site_id #=> String
734
+ # resp.environment.environment_status #=> String, one of "PASSED", "FAILED", "UNKNOWN"
735
+ # resp.environment.checks #=> Array
736
+ # resp.environment.checks[0].type #=> String, one of "KEY_REUSE", "KEY_COVERAGE", "REACHABILITY", "HOST_COUNT"
737
+ # resp.environment.checks[0].result #=> String, one of "PASSED", "FAILED", "UNKNOWN"
738
+ # resp.environment.checks[0].impaired_since #=> Time
739
+ # resp.environment.connectivity_info.private_route_server_peerings #=> Array
740
+ # resp.environment.connectivity_info.private_route_server_peerings[0] #=> String
741
+ # resp.environment.vcf_hostnames.v_center #=> String
742
+ # resp.environment.vcf_hostnames.nsx #=> String
743
+ # resp.environment.vcf_hostnames.nsx_manager_1 #=> String
744
+ # resp.environment.vcf_hostnames.nsx_manager_2 #=> String
745
+ # resp.environment.vcf_hostnames.nsx_manager_3 #=> String
746
+ # resp.environment.vcf_hostnames.nsx_edge_1 #=> String
747
+ # resp.environment.vcf_hostnames.nsx_edge_2 #=> String
748
+ # resp.environment.vcf_hostnames.sddc_manager #=> String
749
+ # resp.environment.vcf_hostnames.cloud_builder #=> String
750
+ # resp.environment.kms_key_id #=> String
751
+ # resp.environment.service_access_security_groups.security_groups #=> Array
752
+ # resp.environment.service_access_security_groups.security_groups[0] #=> String
753
+ # resp.environment.credentials #=> Array
754
+ # resp.environment.credentials[0].secret_arn #=> String
755
+ #
756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/CreateEnvironment AWS API Documentation
757
+ #
758
+ # @overload create_environment(params = {})
759
+ # @param [Hash] params ({})
760
+ def create_environment(params = {}, options = {})
761
+ req = build_request(:create_environment, params)
762
+ req.send_request(options)
763
+ end
764
+
765
+ # Creates an ESXi host and adds it to an Amazon EVS environment. Amazon
766
+ # EVS supports 4-16 hosts per environment.
767
+ #
768
+ # This action can only be used after the Amazon EVS environment is
769
+ # deployed. All Amazon EVS hosts are created with the latest AMI release
770
+ # version for the respective VCF version of the environment.
771
+ #
772
+ # You can use the `dedicatedHostId` parameter to specify an Amazon EC2
773
+ # Dedicated Host for ESXi host creation.
774
+ #
775
+ # You can use the `placementGroupId` parameter to specify a cluster or
776
+ # partition placement group to launch EC2 instances into.
777
+ #
778
+ # <note markdown="1"> You cannot use the `dedicatedHostId` and `placementGroupId` parameters
779
+ # together in the same `CreateEnvironmentHost` action. This results in a
780
+ # `ValidationException` response.
781
+ #
782
+ # </note>
783
+ #
784
+ # <note markdown="1"> EC2 instances created through Amazon EVS do not support associating an
785
+ # IAM instance profile.
786
+ #
787
+ # </note>
788
+ #
789
+ # @option params [String] :client_token
790
+ # <note markdown="1"> This parameter is not used in Amazon EVS
791
+ # currently. If you supply
792
+ # input for this parameter, it will have no effect.
793
+ #
794
+ # </note>
795
+ #
796
+ # A unique, case-sensitive identifier that you provide to ensure the
797
+ # idempotency of the host creation request. If you do not specify a
798
+ # client token, a randomly generated token is used for the request to
799
+ # ensure idempotency.
800
+ #
801
+ # **A suitable default value is auto-generated.** You should normally
802
+ # not need to pass this option.**
803
+ #
804
+ # @option params [required, String] :environment_id
805
+ # A unique ID for the environment that the host is added to.
806
+ #
807
+ # @option params [required, Types::HostInfoForCreate] :host
808
+ # The host that is created and added to the environment.
809
+ #
810
+ # @return [Types::CreateEnvironmentHostResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
811
+ #
812
+ # * {Types::CreateEnvironmentHostResponse#environment_summary #environment_summary} => Types::EnvironmentSummary
813
+ # * {Types::CreateEnvironmentHostResponse#host #host} => Types::Host
814
+ #
815
+ # @example Request syntax with placeholder values
816
+ #
817
+ # resp = client.create_environment_host({
818
+ # client_token: "ClientToken",
819
+ # environment_id: "EnvironmentId", # required
820
+ # host: { # required
821
+ # host_name: "HostName", # required
822
+ # key_name: "KeyName", # required
823
+ # instance_type: "i4i.metal", # required, accepts i4i.metal
824
+ # placement_group_id: "PlacementGroupId",
825
+ # dedicated_host_id: "DedicatedHostId",
826
+ # },
827
+ # })
828
+ #
829
+ # @example Response structure
830
+ #
831
+ # resp.environment_summary.environment_id #=> String
832
+ # resp.environment_summary.environment_name #=> String
833
+ # resp.environment_summary.vcf_version #=> String, one of "VCF-5.2.1"
834
+ # resp.environment_summary.environment_status #=> String, one of "PASSED", "FAILED", "UNKNOWN"
835
+ # resp.environment_summary.environment_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
836
+ # resp.environment_summary.created_at #=> Time
837
+ # resp.environment_summary.modified_at #=> Time
838
+ # resp.environment_summary.environment_arn #=> String
839
+ # resp.host.host_name #=> String
840
+ # resp.host.ip_address #=> String
841
+ # resp.host.key_name #=> String
842
+ # resp.host.instance_type #=> String, one of "i4i.metal"
843
+ # resp.host.placement_group_id #=> String
844
+ # resp.host.dedicated_host_id #=> String
845
+ # resp.host.created_at #=> Time
846
+ # resp.host.modified_at #=> Time
847
+ # resp.host.host_state #=> String, one of "CREATING", "CREATED", "UPDATING", "DELETING", "DELETED", "CREATE_FAILED", "UPDATE_FAILED"
848
+ # resp.host.state_details #=> String
849
+ # resp.host.ec2_instance_id #=> String
850
+ # resp.host.network_interfaces #=> Array
851
+ # resp.host.network_interfaces[0].network_interface_id #=> String
852
+ #
853
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/CreateEnvironmentHost AWS API Documentation
854
+ #
855
+ # @overload create_environment_host(params = {})
856
+ # @param [Hash] params ({})
857
+ def create_environment_host(params = {}, options = {})
858
+ req = build_request(:create_environment_host, params)
859
+ req.send_request(options)
860
+ end
861
+
862
+ # Deletes an Amazon EVS environment.
863
+ #
864
+ # Amazon EVS environments will only be enabled for deletion once the
865
+ # hosts are deleted. You can delete hosts using the
866
+ # `DeleteEnvironmentHost` action.
867
+ #
868
+ # Environment deletion also deletes the associated Amazon EVS VLAN
869
+ # subnets. Other associated Amazon Web Services resources are not
870
+ # deleted. These resources may continue to incur costs.
871
+ #
872
+ # @option params [String] :client_token
873
+ # <note markdown="1"> This parameter is not used in Amazon EVS
874
+ # currently. If you supply
875
+ # input for this parameter, it will have no effect.
876
+ #
877
+ # </note>
878
+ #
879
+ # A unique, case-sensitive identifier that you provide to ensure the
880
+ # idempotency of the environment deletion request. If you do not specify
881
+ # a client token, a randomly generated token is used for the request to
882
+ # ensure idempotency.
883
+ #
884
+ # **A suitable default value is auto-generated.** You should normally
885
+ # not need to pass this option.**
886
+ #
887
+ # @option params [required, String] :environment_id
888
+ # A unique ID associated with the environment to be deleted.
889
+ #
890
+ # @return [Types::DeleteEnvironmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
891
+ #
892
+ # * {Types::DeleteEnvironmentResponse#environment #environment} => Types::Environment
893
+ #
894
+ # @example Request syntax with placeholder values
895
+ #
896
+ # resp = client.delete_environment({
897
+ # client_token: "ClientToken",
898
+ # environment_id: "EnvironmentId", # required
899
+ # })
900
+ #
901
+ # @example Response structure
902
+ #
903
+ # resp.environment.environment_id #=> String
904
+ # resp.environment.environment_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
905
+ # resp.environment.state_details #=> String
906
+ # resp.environment.created_at #=> Time
907
+ # resp.environment.modified_at #=> Time
908
+ # resp.environment.environment_arn #=> String
909
+ # resp.environment.environment_name #=> String
910
+ # resp.environment.vpc_id #=> String
911
+ # resp.environment.service_access_subnet_id #=> String
912
+ # resp.environment.vcf_version #=> String, one of "VCF-5.2.1"
913
+ # resp.environment.terms_accepted #=> Boolean
914
+ # resp.environment.license_info #=> Array
915
+ # resp.environment.license_info[0].solution_key #=> String
916
+ # resp.environment.license_info[0].vsan_key #=> String
917
+ # resp.environment.site_id #=> String
918
+ # resp.environment.environment_status #=> String, one of "PASSED", "FAILED", "UNKNOWN"
919
+ # resp.environment.checks #=> Array
920
+ # resp.environment.checks[0].type #=> String, one of "KEY_REUSE", "KEY_COVERAGE", "REACHABILITY", "HOST_COUNT"
921
+ # resp.environment.checks[0].result #=> String, one of "PASSED", "FAILED", "UNKNOWN"
922
+ # resp.environment.checks[0].impaired_since #=> Time
923
+ # resp.environment.connectivity_info.private_route_server_peerings #=> Array
924
+ # resp.environment.connectivity_info.private_route_server_peerings[0] #=> String
925
+ # resp.environment.vcf_hostnames.v_center #=> String
926
+ # resp.environment.vcf_hostnames.nsx #=> String
927
+ # resp.environment.vcf_hostnames.nsx_manager_1 #=> String
928
+ # resp.environment.vcf_hostnames.nsx_manager_2 #=> String
929
+ # resp.environment.vcf_hostnames.nsx_manager_3 #=> String
930
+ # resp.environment.vcf_hostnames.nsx_edge_1 #=> String
931
+ # resp.environment.vcf_hostnames.nsx_edge_2 #=> String
932
+ # resp.environment.vcf_hostnames.sddc_manager #=> String
933
+ # resp.environment.vcf_hostnames.cloud_builder #=> String
934
+ # resp.environment.kms_key_id #=> String
935
+ # resp.environment.service_access_security_groups.security_groups #=> Array
936
+ # resp.environment.service_access_security_groups.security_groups[0] #=> String
937
+ # resp.environment.credentials #=> Array
938
+ # resp.environment.credentials[0].secret_arn #=> String
939
+ #
940
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/DeleteEnvironment AWS API Documentation
941
+ #
942
+ # @overload delete_environment(params = {})
943
+ # @param [Hash] params ({})
944
+ def delete_environment(params = {}, options = {})
945
+ req = build_request(:delete_environment, params)
946
+ req.send_request(options)
947
+ end
948
+
949
+ # Deletes a host from an Amazon EVS environment.
950
+ #
951
+ # <note markdown="1"> Before deleting a host, you must unassign and decommission the host
952
+ # from within the SDDC Manager user interface. Not doing so could impact
953
+ # the availability of your virtual machines or result in data loss.
954
+ #
955
+ # </note>
956
+ #
957
+ # @option params [String] :client_token
958
+ # <note markdown="1"> This parameter is not used in Amazon EVS
959
+ # currently. If you supply
960
+ # input for this parameter, it will have no effect.
961
+ #
962
+ # </note>
963
+ #
964
+ # A unique, case-sensitive identifier that you provide to ensure the
965
+ # idempotency of the host deletion request. If you do not specify a
966
+ # client token, a randomly generated token is used for the request to
967
+ # ensure idempotency.
968
+ #
969
+ # **A suitable default value is auto-generated.** You should normally
970
+ # not need to pass this option.**
971
+ #
972
+ # @option params [required, String] :environment_id
973
+ # A unique ID for the host's environment.
974
+ #
975
+ # @option params [required, String] :host_name
976
+ # The DNS hostname associated with the host to be deleted.
977
+ #
978
+ # @return [Types::DeleteEnvironmentHostResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
979
+ #
980
+ # * {Types::DeleteEnvironmentHostResponse#environment_summary #environment_summary} => Types::EnvironmentSummary
981
+ # * {Types::DeleteEnvironmentHostResponse#host #host} => Types::Host
982
+ #
983
+ # @example Request syntax with placeholder values
984
+ #
985
+ # resp = client.delete_environment_host({
986
+ # client_token: "ClientToken",
987
+ # environment_id: "EnvironmentId", # required
988
+ # host_name: "HostName", # required
989
+ # })
990
+ #
991
+ # @example Response structure
992
+ #
993
+ # resp.environment_summary.environment_id #=> String
994
+ # resp.environment_summary.environment_name #=> String
995
+ # resp.environment_summary.vcf_version #=> String, one of "VCF-5.2.1"
996
+ # resp.environment_summary.environment_status #=> String, one of "PASSED", "FAILED", "UNKNOWN"
997
+ # resp.environment_summary.environment_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
998
+ # resp.environment_summary.created_at #=> Time
999
+ # resp.environment_summary.modified_at #=> Time
1000
+ # resp.environment_summary.environment_arn #=> String
1001
+ # resp.host.host_name #=> String
1002
+ # resp.host.ip_address #=> String
1003
+ # resp.host.key_name #=> String
1004
+ # resp.host.instance_type #=> String, one of "i4i.metal"
1005
+ # resp.host.placement_group_id #=> String
1006
+ # resp.host.dedicated_host_id #=> String
1007
+ # resp.host.created_at #=> Time
1008
+ # resp.host.modified_at #=> Time
1009
+ # resp.host.host_state #=> String, one of "CREATING", "CREATED", "UPDATING", "DELETING", "DELETED", "CREATE_FAILED", "UPDATE_FAILED"
1010
+ # resp.host.state_details #=> String
1011
+ # resp.host.ec2_instance_id #=> String
1012
+ # resp.host.network_interfaces #=> Array
1013
+ # resp.host.network_interfaces[0].network_interface_id #=> String
1014
+ #
1015
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/DeleteEnvironmentHost AWS API Documentation
1016
+ #
1017
+ # @overload delete_environment_host(params = {})
1018
+ # @param [Hash] params ({})
1019
+ def delete_environment_host(params = {}, options = {})
1020
+ req = build_request(:delete_environment_host, params)
1021
+ req.send_request(options)
1022
+ end
1023
+
1024
+ # Returns a description of the specified environment.
1025
+ #
1026
+ # @option params [required, String] :environment_id
1027
+ # A unique ID for the environment.
1028
+ #
1029
+ # @return [Types::GetEnvironmentResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1030
+ #
1031
+ # * {Types::GetEnvironmentResponse#environment #environment} => Types::Environment
1032
+ #
1033
+ # @example Request syntax with placeholder values
1034
+ #
1035
+ # resp = client.get_environment({
1036
+ # environment_id: "EnvironmentId", # required
1037
+ # })
1038
+ #
1039
+ # @example Response structure
1040
+ #
1041
+ # resp.environment.environment_id #=> String
1042
+ # resp.environment.environment_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
1043
+ # resp.environment.state_details #=> String
1044
+ # resp.environment.created_at #=> Time
1045
+ # resp.environment.modified_at #=> Time
1046
+ # resp.environment.environment_arn #=> String
1047
+ # resp.environment.environment_name #=> String
1048
+ # resp.environment.vpc_id #=> String
1049
+ # resp.environment.service_access_subnet_id #=> String
1050
+ # resp.environment.vcf_version #=> String, one of "VCF-5.2.1"
1051
+ # resp.environment.terms_accepted #=> Boolean
1052
+ # resp.environment.license_info #=> Array
1053
+ # resp.environment.license_info[0].solution_key #=> String
1054
+ # resp.environment.license_info[0].vsan_key #=> String
1055
+ # resp.environment.site_id #=> String
1056
+ # resp.environment.environment_status #=> String, one of "PASSED", "FAILED", "UNKNOWN"
1057
+ # resp.environment.checks #=> Array
1058
+ # resp.environment.checks[0].type #=> String, one of "KEY_REUSE", "KEY_COVERAGE", "REACHABILITY", "HOST_COUNT"
1059
+ # resp.environment.checks[0].result #=> String, one of "PASSED", "FAILED", "UNKNOWN"
1060
+ # resp.environment.checks[0].impaired_since #=> Time
1061
+ # resp.environment.connectivity_info.private_route_server_peerings #=> Array
1062
+ # resp.environment.connectivity_info.private_route_server_peerings[0] #=> String
1063
+ # resp.environment.vcf_hostnames.v_center #=> String
1064
+ # resp.environment.vcf_hostnames.nsx #=> String
1065
+ # resp.environment.vcf_hostnames.nsx_manager_1 #=> String
1066
+ # resp.environment.vcf_hostnames.nsx_manager_2 #=> String
1067
+ # resp.environment.vcf_hostnames.nsx_manager_3 #=> String
1068
+ # resp.environment.vcf_hostnames.nsx_edge_1 #=> String
1069
+ # resp.environment.vcf_hostnames.nsx_edge_2 #=> String
1070
+ # resp.environment.vcf_hostnames.sddc_manager #=> String
1071
+ # resp.environment.vcf_hostnames.cloud_builder #=> String
1072
+ # resp.environment.kms_key_id #=> String
1073
+ # resp.environment.service_access_security_groups.security_groups #=> Array
1074
+ # resp.environment.service_access_security_groups.security_groups[0] #=> String
1075
+ # resp.environment.credentials #=> Array
1076
+ # resp.environment.credentials[0].secret_arn #=> String
1077
+ #
1078
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/GetEnvironment AWS API Documentation
1079
+ #
1080
+ # @overload get_environment(params = {})
1081
+ # @param [Hash] params ({})
1082
+ def get_environment(params = {}, options = {})
1083
+ req = build_request(:get_environment, params)
1084
+ req.send_request(options)
1085
+ end
1086
+
1087
+ # List the hosts within an environment.
1088
+ #
1089
+ # @option params [String] :next_token
1090
+ # A unique pagination token for each page. If `nextToken` is returned,
1091
+ # there are more results available. Make the call again using the
1092
+ # returned token with all other arguments unchanged to retrieve the next
1093
+ # page. Each pagination token expires after 24 hours. Using an expired
1094
+ # pagination token will return an *HTTP 400 InvalidToken* error.
1095
+ #
1096
+ # @option params [Integer] :max_results
1097
+ # The maximum number of results to return. If you specify `MaxResults`
1098
+ # in the request, the response includes information up to the limit
1099
+ # specified.
1100
+ #
1101
+ # @option params [required, String] :environment_id
1102
+ # A unique ID for the environment.
1103
+ #
1104
+ # @return [Types::ListEnvironmentHostsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1105
+ #
1106
+ # * {Types::ListEnvironmentHostsResponse#next_token #next_token} => String
1107
+ # * {Types::ListEnvironmentHostsResponse#environment_hosts #environment_hosts} => Array&lt;Types::Host&gt;
1108
+ #
1109
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1110
+ #
1111
+ # @example Request syntax with placeholder values
1112
+ #
1113
+ # resp = client.list_environment_hosts({
1114
+ # next_token: "PaginationToken",
1115
+ # max_results: 1,
1116
+ # environment_id: "EnvironmentId", # required
1117
+ # })
1118
+ #
1119
+ # @example Response structure
1120
+ #
1121
+ # resp.next_token #=> String
1122
+ # resp.environment_hosts #=> Array
1123
+ # resp.environment_hosts[0].host_name #=> String
1124
+ # resp.environment_hosts[0].ip_address #=> String
1125
+ # resp.environment_hosts[0].key_name #=> String
1126
+ # resp.environment_hosts[0].instance_type #=> String, one of "i4i.metal"
1127
+ # resp.environment_hosts[0].placement_group_id #=> String
1128
+ # resp.environment_hosts[0].dedicated_host_id #=> String
1129
+ # resp.environment_hosts[0].created_at #=> Time
1130
+ # resp.environment_hosts[0].modified_at #=> Time
1131
+ # resp.environment_hosts[0].host_state #=> String, one of "CREATING", "CREATED", "UPDATING", "DELETING", "DELETED", "CREATE_FAILED", "UPDATE_FAILED"
1132
+ # resp.environment_hosts[0].state_details #=> String
1133
+ # resp.environment_hosts[0].ec2_instance_id #=> String
1134
+ # resp.environment_hosts[0].network_interfaces #=> Array
1135
+ # resp.environment_hosts[0].network_interfaces[0].network_interface_id #=> String
1136
+ #
1137
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/ListEnvironmentHosts AWS API Documentation
1138
+ #
1139
+ # @overload list_environment_hosts(params = {})
1140
+ # @param [Hash] params ({})
1141
+ def list_environment_hosts(params = {}, options = {})
1142
+ req = build_request(:list_environment_hosts, params)
1143
+ req.send_request(options)
1144
+ end
1145
+
1146
+ # Lists environment VLANs that are associated with the specified
1147
+ # environment.
1148
+ #
1149
+ # @option params [String] :next_token
1150
+ # A unique pagination token for each page. If `nextToken` is returned,
1151
+ # there are more results available. Make the call again using the
1152
+ # returned token with all other arguments unchanged to retrieve the next
1153
+ # page. Each pagination token expires after 24 hours. Using an expired
1154
+ # pagination token will return an *HTTP 400 InvalidToken* error.
1155
+ #
1156
+ # @option params [Integer] :max_results
1157
+ # The maximum number of results to return. If you specify `MaxResults`
1158
+ # in the request, the response includes information up to the limit
1159
+ # specified.
1160
+ #
1161
+ # @option params [required, String] :environment_id
1162
+ # A unique ID for the environment.
1163
+ #
1164
+ # @return [Types::ListEnvironmentVlansResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1165
+ #
1166
+ # * {Types::ListEnvironmentVlansResponse#next_token #next_token} => String
1167
+ # * {Types::ListEnvironmentVlansResponse#environment_vlans #environment_vlans} => Array&lt;Types::Vlan&gt;
1168
+ #
1169
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1170
+ #
1171
+ # @example Request syntax with placeholder values
1172
+ #
1173
+ # resp = client.list_environment_vlans({
1174
+ # next_token: "PaginationToken",
1175
+ # max_results: 1,
1176
+ # environment_id: "EnvironmentId", # required
1177
+ # })
1178
+ #
1179
+ # @example Response structure
1180
+ #
1181
+ # resp.next_token #=> String
1182
+ # resp.environment_vlans #=> Array
1183
+ # resp.environment_vlans[0].vlan_id #=> Integer
1184
+ # resp.environment_vlans[0].cidr #=> String
1185
+ # resp.environment_vlans[0].availability_zone #=> String
1186
+ # resp.environment_vlans[0].function_name #=> String
1187
+ # resp.environment_vlans[0].subnet_id #=> String
1188
+ # resp.environment_vlans[0].created_at #=> Time
1189
+ # resp.environment_vlans[0].modified_at #=> Time
1190
+ # resp.environment_vlans[0].vlan_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
1191
+ # resp.environment_vlans[0].state_details #=> String
1192
+ #
1193
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/ListEnvironmentVlans AWS API Documentation
1194
+ #
1195
+ # @overload list_environment_vlans(params = {})
1196
+ # @param [Hash] params ({})
1197
+ def list_environment_vlans(params = {}, options = {})
1198
+ req = build_request(:list_environment_vlans, params)
1199
+ req.send_request(options)
1200
+ end
1201
+
1202
+ # Lists the Amazon EVS environments in your Amazon Web Services account
1203
+ # in the specified Amazon Web Services Region.
1204
+ #
1205
+ # @option params [String] :next_token
1206
+ # A unique pagination token for each page. If `nextToken` is returned,
1207
+ # there are more results available. Make the call again using the
1208
+ # returned token with all other arguments unchanged to retrieve the next
1209
+ # page. Each pagination token expires after 24 hours. Using an expired
1210
+ # pagination token will return an *HTTP 400 InvalidToken* error.
1211
+ #
1212
+ # @option params [Integer] :max_results
1213
+ # The maximum number of results to return. If you specify `MaxResults`
1214
+ # in the request, the response includes information up to the limit
1215
+ # specified.
1216
+ #
1217
+ # @option params [Array<String>] :state
1218
+ # The state of an environment. Used to filter response results to return
1219
+ # only environments with the specified `environmentState`.
1220
+ #
1221
+ # @return [Types::ListEnvironmentsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1222
+ #
1223
+ # * {Types::ListEnvironmentsResponse#next_token #next_token} => String
1224
+ # * {Types::ListEnvironmentsResponse#environment_summaries #environment_summaries} => Array&lt;Types::EnvironmentSummary&gt;
1225
+ #
1226
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1227
+ #
1228
+ # @example Request syntax with placeholder values
1229
+ #
1230
+ # resp = client.list_environments({
1231
+ # next_token: "PaginationToken",
1232
+ # max_results: 1,
1233
+ # state: ["CREATING"], # accepts CREATING, CREATED, DELETING, DELETED, CREATE_FAILED
1234
+ # })
1235
+ #
1236
+ # @example Response structure
1237
+ #
1238
+ # resp.next_token #=> String
1239
+ # resp.environment_summaries #=> Array
1240
+ # resp.environment_summaries[0].environment_id #=> String
1241
+ # resp.environment_summaries[0].environment_name #=> String
1242
+ # resp.environment_summaries[0].vcf_version #=> String, one of "VCF-5.2.1"
1243
+ # resp.environment_summaries[0].environment_status #=> String, one of "PASSED", "FAILED", "UNKNOWN"
1244
+ # resp.environment_summaries[0].environment_state #=> String, one of "CREATING", "CREATED", "DELETING", "DELETED", "CREATE_FAILED"
1245
+ # resp.environment_summaries[0].created_at #=> Time
1246
+ # resp.environment_summaries[0].modified_at #=> Time
1247
+ # resp.environment_summaries[0].environment_arn #=> String
1248
+ #
1249
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/ListEnvironments AWS API Documentation
1250
+ #
1251
+ # @overload list_environments(params = {})
1252
+ # @param [Hash] params ({})
1253
+ def list_environments(params = {}, options = {})
1254
+ req = build_request(:list_environments, params)
1255
+ req.send_request(options)
1256
+ end
1257
+
1258
+ # Lists the tags for an Amazon EVS resource.
1259
+ #
1260
+ # @option params [required, String] :resource_arn
1261
+ # The Amazon Resource Name (ARN) that identifies the resource to list
1262
+ # tags for.
1263
+ #
1264
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1265
+ #
1266
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1267
+ #
1268
+ # @example Request syntax with placeholder values
1269
+ #
1270
+ # resp = client.list_tags_for_resource({
1271
+ # resource_arn: "Arn", # required
1272
+ # })
1273
+ #
1274
+ # @example Response structure
1275
+ #
1276
+ # resp.tags #=> Hash
1277
+ # resp.tags["TagKey"] #=> String
1278
+ #
1279
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/ListTagsForResource AWS API Documentation
1280
+ #
1281
+ # @overload list_tags_for_resource(params = {})
1282
+ # @param [Hash] params ({})
1283
+ def list_tags_for_resource(params = {}, options = {})
1284
+ req = build_request(:list_tags_for_resource, params)
1285
+ req.send_request(options)
1286
+ end
1287
+
1288
+ # Associates the specified tags to an Amazon EVS resource with the
1289
+ # specified `resourceArn`. If existing tags on a resource are not
1290
+ # specified in the request parameters, they aren't changed. When a
1291
+ # resource is deleted, the tags associated with that resource are also
1292
+ # deleted. Tags that you create for Amazon EVS resources don't
1293
+ # propagate to any other resources associated with the environment. For
1294
+ # example, if you tag an environment with this operation, that tag
1295
+ # doesn't automatically propagate to the VLAN subnets and hosts
1296
+ # associated with the environment.
1297
+ #
1298
+ # @option params [required, String] :resource_arn
1299
+ # The Amazon Resource Name (ARN) of the resource to add tags to.
1300
+ #
1301
+ # @option params [required, Hash<String,String>] :tags
1302
+ # Metadata that assists with categorization and organization. Each tag
1303
+ # consists of a key and an optional value. You define both. Tags don't
1304
+ # propagate to any other environment or Amazon Web Services resources.
1305
+ #
1306
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1307
+ #
1308
+ # @example Request syntax with placeholder values
1309
+ #
1310
+ # resp = client.tag_resource({
1311
+ # resource_arn: "Arn", # required
1312
+ # tags: { # required
1313
+ # "TagKey" => "TagValue",
1314
+ # },
1315
+ # })
1316
+ #
1317
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/TagResource AWS API Documentation
1318
+ #
1319
+ # @overload tag_resource(params = {})
1320
+ # @param [Hash] params ({})
1321
+ def tag_resource(params = {}, options = {})
1322
+ req = build_request(:tag_resource, params)
1323
+ req.send_request(options)
1324
+ end
1325
+
1326
+ # Deletes specified tags from an Amazon EVS resource.
1327
+ #
1328
+ # @option params [required, String] :resource_arn
1329
+ # The Amazon Resource Name (ARN) of the resource to delete tags from.
1330
+ #
1331
+ # @option params [required, Array<String>] :tag_keys
1332
+ # The keys of the tags to delete.
1333
+ #
1334
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1335
+ #
1336
+ # @example Request syntax with placeholder values
1337
+ #
1338
+ # resp = client.untag_resource({
1339
+ # resource_arn: "Arn", # required
1340
+ # tag_keys: ["TagKey"], # required
1341
+ # })
1342
+ #
1343
+ # @see http://docs.aws.amazon.com/goto/WebAPI/evs-2023-07-27/UntagResource AWS API Documentation
1344
+ #
1345
+ # @overload untag_resource(params = {})
1346
+ # @param [Hash] params ({})
1347
+ def untag_resource(params = {}, options = {})
1348
+ req = build_request(:untag_resource, params)
1349
+ req.send_request(options)
1350
+ end
1351
+
1352
+ # @!endgroup
1353
+
1354
+ # @param params ({})
1355
+ # @api private
1356
+ def build_request(operation_name, params = {})
1357
+ handlers = @handlers.for(operation_name)
1358
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1359
+ Aws::Telemetry.module_to_tracer_name('Aws::Evs')
1360
+ )
1361
+ context = Seahorse::Client::RequestContext.new(
1362
+ operation_name: operation_name,
1363
+ operation: config.api.operation(operation_name),
1364
+ client: self,
1365
+ params: params,
1366
+ config: config,
1367
+ tracer: tracer
1368
+ )
1369
+ context[:gem_name] = 'aws-sdk-evs'
1370
+ context[:gem_version] = '1.0.0'
1371
+ Seahorse::Client::Request.new(handlers, context)
1372
+ end
1373
+
1374
+ # @api private
1375
+ # @deprecated
1376
+ def waiter_names
1377
+ []
1378
+ end
1379
+
1380
+ class << self
1381
+
1382
+ # @api private
1383
+ attr_reader :identifier
1384
+
1385
+ # @api private
1386
+ def errors_module
1387
+ Errors
1388
+ end
1389
+
1390
+ end
1391
+ end
1392
+ end