aws-sdk-lambdamicrovms 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,2010 @@
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/rest_json'
38
+
39
+ module Aws::LambdaMicrovms
40
+ # An API client for LambdaMicrovms. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::LambdaMicrovms::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 = :lambdamicrovms
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
76
+ add_plugin(Aws::Plugins::JsonvalueConverter)
77
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
79
+ add_plugin(Aws::Plugins::TransferEncoding)
80
+ add_plugin(Aws::Plugins::HttpChecksum)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
87
+ add_plugin(Aws::Plugins::Protocols::RestJson)
88
+ add_plugin(Aws::LambdaMicrovms::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 used for authentication. This can be any class that includes and implements
99
+ # `Aws::CredentialProvider`, or instance of any one of the 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 locations will be searched for credentials:
128
+ #
129
+ # * `Aws.config[:credentials]`
130
+ #
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ #
134
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
135
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
136
+ #
137
+ # * `~/.aws/credentials`
138
+ #
139
+ # * `~/.aws/config`
140
+ #
141
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
142
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
143
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
144
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
145
+ #
146
+ # @option options [required, String] :region
147
+ # The AWS region to connect to. The configured `:region` is
148
+ # used to determine the service `:endpoint`. When not passed,
149
+ # a default `:region` is searched for in the following locations:
150
+ #
151
+ # * `Aws.config[:region]`
152
+ # * `ENV['AWS_REGION']`
153
+ # * `ENV['AMAZON_REGION']`
154
+ # * `ENV['AWS_DEFAULT_REGION']`
155
+ # * `~/.aws/credentials`
156
+ # * `~/.aws/config`
157
+ #
158
+ # @option options [String] :access_key_id
159
+ #
160
+ # @option options [String] :account_id
161
+ #
162
+ # @option options [Boolean] :active_endpoint_cache (false)
163
+ # When set to `true`, a thread polling for endpoints will be running in
164
+ # the background every 60 secs (default). Defaults to `false`.
165
+ #
166
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
167
+ # Used only in `adaptive` retry mode. When true, the request will sleep
168
+ # until there is sufficent client side capacity to retry the request.
169
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
170
+ # not retry instead of sleeping.
171
+ #
172
+ # @option options [Array<String>] :auth_scheme_preference
173
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
174
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
175
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
176
+ #
177
+ # @option options [Boolean] :client_side_monitoring (false)
178
+ # When `true`, client-side metrics will be collected for all API requests from
179
+ # this client.
180
+ #
181
+ # @option options [String] :client_side_monitoring_client_id ("")
182
+ # Allows you to provide an identifier for this client which will be attached to
183
+ # all generated client side metrics. Defaults to an empty string.
184
+ #
185
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
186
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
187
+ # side monitoring agent is running on, where client metrics will be published via UDP.
188
+ #
189
+ # @option options [Integer] :client_side_monitoring_port (31000)
190
+ # Required for publishing client metrics. The port that the client side monitoring
191
+ # agent is running on, where client metrics will be published via UDP.
192
+ #
193
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
194
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
195
+ # will use the Client Side Monitoring Agent Publisher.
196
+ #
197
+ # @option options [Boolean] :convert_params (true)
198
+ # When `true`, an attempt is made to coerce request parameters into
199
+ # the required types.
200
+ #
201
+ # @option options [Boolean] :correct_clock_skew (true)
202
+ # Used only in `standard` and `adaptive` retry modes. Specifies whether to apply
203
+ # a clock skew correction and retry requests with skewed client clocks.
204
+ #
205
+ # @option options [String] :defaults_mode ("legacy")
206
+ # See {Aws::DefaultsModeConfiguration} for a list of the
207
+ # accepted modes and the configuration defaults that are included.
208
+ #
209
+ # @option options [Boolean] :disable_host_prefix_injection (false)
210
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
+ #
212
+ # @option options [Boolean] :disable_request_compression (false)
213
+ # When set to 'true' the request body will not be compressed
214
+ # for supported operations.
215
+ #
216
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
217
+ # Normally you should not configure the `:endpoint` option
218
+ # directly. This is normally constructed from the `:region`
219
+ # option. Configuring `:endpoint` is normally reserved for
220
+ # connecting to test or custom endpoints. The endpoint should
221
+ # be a URI formatted like:
222
+ #
223
+ # 'http://example.com'
224
+ # 'https://example.com'
225
+ # 'http://example.com:123'
226
+ #
227
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
228
+ # Used for the maximum size limit of the LRU cache storing endpoints data
229
+ # for endpoint discovery enabled operations. Defaults to 1000.
230
+ #
231
+ # @option options [Integer] :endpoint_cache_max_threads (10)
232
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
233
+ #
234
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
235
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
236
+ # Use this option to config the time interval in seconds for making
237
+ # requests fetching endpoints information. Defaults to 60 sec.
238
+ #
239
+ # @option options [Boolean] :endpoint_discovery (false)
240
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
241
+ #
242
+ # @option options [Boolean] :ignore_configured_endpoint_urls
243
+ # Setting to true disables use of endpoint URLs provided via environment
244
+ # variables and the shared configuration file.
245
+ #
246
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
247
+ # The log formatter.
248
+ #
249
+ # @option options [Symbol] :log_level (:info)
250
+ # The log level to send messages to the `:logger` at.
251
+ #
252
+ # @option options [Logger] :logger
253
+ # The Logger instance to send log messages to. If this option
254
+ # is not set, logging will be disabled.
255
+ #
256
+ # @option options [Integer] :max_attempts (3)
257
+ # An integer representing the maximum number attempts that will be made for
258
+ # a single request, including the initial attempt. For example,
259
+ # setting this value to 5 will result in a request being retried up to
260
+ # 4 times. Used in `standard` and `adaptive` retry modes.
261
+ #
262
+ # @option options [String] :profile ("default")
263
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
264
+ # When not specified, 'default' is used.
265
+ #
266
+ # @option options [String] :request_checksum_calculation ("when_supported")
267
+ # Determines when a checksum will be calculated for request payloads. Values are:
268
+ #
269
+ # * `when_supported` - (default) When set, a checksum will be
270
+ # calculated for all request payloads of operations modeled with the
271
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
272
+ # `requestAlgorithmMember` is modeled.
273
+ # * `when_required` - When set, a checksum will only be calculated for
274
+ # request payloads of operations modeled with the `httpChecksum` trait where
275
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
276
+ # is modeled and supplied.
277
+ #
278
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
279
+ # The minimum size in bytes that triggers compression for request
280
+ # bodies. The value must be non-negative integer value between 0
281
+ # and 10485780 bytes inclusive.
282
+ #
283
+ # @option options [String] :response_checksum_validation ("when_supported")
284
+ # Determines when checksum validation will be performed on response payloads. Values are:
285
+ #
286
+ # * `when_supported` - (default) When set, checksum validation is performed on all
287
+ # response payloads of operations modeled with the `httpChecksum` trait where
288
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
289
+ # are supported.
290
+ # * `when_required` - When set, checksum validation is not performed on
291
+ # response payloads of operations unless the checksum algorithm is supported and
292
+ # the `requestValidationModeMember` member is set to `ENABLED`.
293
+ #
294
+ # @option options [Proc] :retry_backoff
295
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
296
+ # This option is only used in the `legacy` retry mode.
297
+ #
298
+ # @option options [Float] :retry_base_delay (0.3)
299
+ # The base delay in seconds used by the default backoff function. This option
300
+ # is only used in the `legacy` retry mode.
301
+ #
302
+ # @option options [Symbol] :retry_jitter (:none)
303
+ # A delay randomiser function used by the default backoff function.
304
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
305
+ # otherwise a Proc that takes and returns a number. This option is only used
306
+ # in the `legacy` retry mode.
307
+ #
308
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
309
+ #
310
+ # @option options [Integer] :retry_limit (3)
311
+ # The maximum number of times to retry failed requests. Only
312
+ # ~ 500 level server errors and certain ~ 400 level client errors
313
+ # are retried. Generally, these are throttling errors, data
314
+ # checksum errors, networking errors, timeout errors, auth errors,
315
+ # endpoint discovery, and errors from expired credentials.
316
+ # This option is only used in the `legacy` retry mode.
317
+ #
318
+ # @option options [Integer] :retry_max_delay (0)
319
+ # The maximum number of seconds to delay between retries (0 for no limit)
320
+ # used by the default backoff function. This option is only used in the
321
+ # `legacy` retry mode.
322
+ #
323
+ # @option options [String] :retry_mode ("legacy")
324
+ # Specifies which retry algorithm to use. Values are:
325
+ #
326
+ # * `legacy` - The pre-existing retry behavior. This is the default
327
+ # value if no retry mode is provided.
328
+ #
329
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
330
+ # This includes support for retry quotas, which limit the number of
331
+ # unsuccessful retries a client can make.
332
+ #
333
+ # * `adaptive` - A retry mode that includes all the functionality of
334
+ # `standard` mode along with automatic client side throttling.
335
+ #
336
+ # @option options [String] :sdk_ua_app_id
337
+ # A unique and opaque application ID that is appended to the
338
+ # User-Agent header as app/sdk_ua_app_id. It should have a
339
+ # maximum length of 50. This variable is sourced from environment
340
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
341
+ #
342
+ # @option options [String] :secret_access_key
343
+ #
344
+ # @option options [String] :session_token
345
+ #
346
+ # @option options [Array] :sigv4a_signing_region_set
347
+ # A list of regions that should be signed with SigV4a signing. When
348
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
349
+ # in the following locations:
350
+ #
351
+ # * `Aws.config[:sigv4a_signing_region_set]`
352
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
353
+ # * `~/.aws/config`
354
+ #
355
+ # @option options [Boolean] :stub_responses (false)
356
+ # Causes the client to return stubbed responses. By default
357
+ # fake responses are generated and returned. You can specify
358
+ # the response data to return or errors to raise by calling
359
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
360
+ #
361
+ # ** Please note ** When response stubbing is enabled, no HTTP
362
+ # requests are made, and retries are disabled.
363
+ #
364
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
365
+ # Allows you to provide a telemetry provider, which is used to
366
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
367
+ # will not record or emit any telemetry data. The SDK supports the
368
+ # following telemetry providers:
369
+ #
370
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
371
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
372
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
373
+ #
374
+ # @option options [Aws::TokenProvider] :token_provider
375
+ # Your Bearer token used for authentication. This can be any class that includes and implements
376
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
377
+ #
378
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
379
+ # tokens.
380
+ #
381
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
382
+ # access token generated from `aws login`.
383
+ #
384
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
385
+ # will be used to search for tokens configured for your profile in shared configuration files.
386
+ #
387
+ # @option options [Boolean] :use_dualstack_endpoint
388
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
389
+ # will be used if available.
390
+ #
391
+ # @option options [Boolean] :use_fips_endpoint
392
+ # When set to `true`, fips compatible endpoints will be used if available.
393
+ # When a `fips` region is used, the region is normalized and this config
394
+ # is set to `true`.
395
+ #
396
+ # @option options [Boolean] :validate_params (true)
397
+ # When `true`, request parameters are validated before
398
+ # sending the request.
399
+ #
400
+ # @option options [Aws::LambdaMicrovms::EndpointProvider] :endpoint_provider
401
+ # The endpoint provider used to resolve endpoints. Any object that responds to
402
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
403
+ # `Aws::LambdaMicrovms::EndpointParameters`.
404
+ #
405
+ # @option options [Float] :http_continue_timeout (1)
406
+ # The number of seconds to wait for a 100-continue response before sending the
407
+ # request body. This option has no effect unless the request has "Expect"
408
+ # header set to "100-continue". Defaults to `nil` which disables this
409
+ # behaviour. This value can safely be set per request on the session.
410
+ #
411
+ # @option options [Float] :http_idle_timeout (5)
412
+ # The number of seconds a connection is allowed to sit idle before it
413
+ # is considered stale. Stale connections are closed and removed from the
414
+ # pool before making a request.
415
+ #
416
+ # @option options [Float] :http_open_timeout (15)
417
+ # The default number of seconds to wait for response data.
418
+ # This value can safely be set per-request on the session.
419
+ #
420
+ # @option options [URI::HTTP,String] :http_proxy
421
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
422
+ #
423
+ # @option options [Float] :http_read_timeout (60)
424
+ # The default number of seconds to wait for response data.
425
+ # This value can safely be set per-request on the session.
426
+ #
427
+ # @option options [Boolean] :http_wire_trace (false)
428
+ # When `true`, HTTP debug output will be sent to the `:logger`.
429
+ #
430
+ # @option options [Proc] :on_chunk_received
431
+ # When a Proc object is provided, it will be used as callback when each chunk
432
+ # of the response body is received. It provides three arguments: the chunk,
433
+ # the number of bytes received, and the total number of
434
+ # bytes in the response (or nil if the server did not send a `content-length`).
435
+ #
436
+ # @option options [Proc] :on_chunk_sent
437
+ # When a Proc object is provided, it will be used as callback when each chunk
438
+ # of the request body is sent. It provides three arguments: the chunk,
439
+ # the number of bytes read from the body, and the total number of
440
+ # bytes in the body.
441
+ #
442
+ # @option options [Boolean] :raise_response_errors (true)
443
+ # When `true`, response errors are raised.
444
+ #
445
+ # @option options [String] :ssl_ca_bundle
446
+ # Full path to the SSL certificate authority bundle file that should be used when
447
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
448
+ # `:ssl_ca_directory` the the system default will be used if available.
449
+ #
450
+ # @option options [String] :ssl_ca_directory
451
+ # Full path of the directory that contains the unbundled SSL certificate
452
+ # authority files for verifying peer certificates. If you do
453
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
454
+ # default will be used if available.
455
+ #
456
+ # @option options [String] :ssl_ca_store
457
+ # Sets the X509::Store to verify peer certificate.
458
+ #
459
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
460
+ # Sets a client certificate when creating http connections.
461
+ #
462
+ # @option options [OpenSSL::PKey] :ssl_key
463
+ # Sets a client key when creating http connections.
464
+ #
465
+ # @option options [Float] :ssl_timeout
466
+ # Sets the SSL timeout in seconds
467
+ #
468
+ # @option options [Boolean] :ssl_verify_peer (true)
469
+ # When `true`, SSL peer certificates are verified when establishing a connection.
470
+ #
471
+ def initialize(*args)
472
+ super
473
+ end
474
+
475
+ # @!group API Operations
476
+
477
+ # Creates an authentication token for accessing a running MicroVM. The
478
+ # token grants access to the specified ports on the MicroVM endpoint.
479
+ #
480
+ # @option params [required, String] :microvm_identifier
481
+ # The ID of the MicroVM to create an authentication token for.
482
+ #
483
+ # @option params [required, Integer] :expiration_in_minutes
484
+ # The duration in minutes before the authentication token expires.
485
+ # Maximum: 60 minutes.
486
+ #
487
+ # @option params [required, Array<Types::PortSpecification>] :allowed_ports
488
+ # The list of port specifications that the authentication token grants
489
+ # access to on the MicroVM.
490
+ #
491
+ # @return [Types::CreateMicrovmAuthTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
492
+ #
493
+ # * {Types::CreateMicrovmAuthTokenResponse#auth_token #auth_token} => Hash&lt;String,String&gt;
494
+ #
495
+ # @example Request syntax with placeholder values
496
+ #
497
+ # resp = client.create_microvm_auth_token({
498
+ # microvm_identifier: "MicrovmIdentifier", # required
499
+ # expiration_in_minutes: 1, # required
500
+ # allowed_ports: [ # required
501
+ # {
502
+ # port: 1,
503
+ # range: {
504
+ # start_port: 1, # required
505
+ # end_port: 1, # required
506
+ # },
507
+ # all_ports: {
508
+ # },
509
+ # },
510
+ # ],
511
+ # })
512
+ #
513
+ # @example Response structure
514
+ #
515
+ # resp.auth_token #=> Hash
516
+ # resp.auth_token["AuthTokenKey"] #=> String
517
+ #
518
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/CreateMicrovmAuthToken AWS API Documentation
519
+ #
520
+ # @overload create_microvm_auth_token(params = {})
521
+ # @param [Hash] params ({})
522
+ def create_microvm_auth_token(params = {}, options = {})
523
+ req = build_request(:create_microvm_auth_token, params)
524
+ req.send_request(options)
525
+ end
526
+
527
+ # Creates a MicroVM image from the specified code artifact and base
528
+ # image. The build is asynchronous — the image transitions from CREATING
529
+ # to CREATED on success, or CREATE\_FAILED on failure. Use
530
+ # GetMicrovmImage to poll for completion.
531
+ #
532
+ # @option params [required, String] :base_image_arn
533
+ # The ARN of the Lambda-managed base MicroVM image to build upon. Use
534
+ # ListManagedMicrovmImages to discover available base images.
535
+ #
536
+ # @option params [String] :base_image_version
537
+ # The specific version of the base MicroVM image to use.
538
+ #
539
+ # @option params [required, String] :build_role_arn
540
+ # The ARN of the IAM role assumed during the image build process. This
541
+ # role must have permissions to access the code artifact and any
542
+ # required resources.
543
+ #
544
+ # @option params [String] :description
545
+ # A description of the MicroVM image.
546
+ #
547
+ # @option params [required, Types::CodeArtifact] :code_artifact
548
+ # The code artifact containing the application code and metadata for the
549
+ # MicroVM image.
550
+ #
551
+ # @option params [Types::Logging] :logging
552
+ # The logging configuration for build-time and runtime logs. Specify
553
+ # \{"cloudWatch": \{"logGroup": "..."}} to stream logs to a custom
554
+ # CloudWatch log group, or \{"disabled": \{}} to turn off logging.
555
+ #
556
+ # @option params [Array<String>] :egress_network_connectors
557
+ # The list of egress network connectors available to the MicroVM at
558
+ # runtime.
559
+ #
560
+ # @option params [Array<Types::CpuConfiguration>] :cpu_configurations
561
+ # The list of supported CPU configurations for the MicroVM.
562
+ #
563
+ # @option params [Array<Types::Resources>] :resources
564
+ # The resource requirements for the MicroVM.
565
+ #
566
+ # @option params [Array<String>] :additional_os_capabilities
567
+ # Additional OS capabilities granted to the MicroVM runtime environment.
568
+ #
569
+ # @option params [Types::Hooks] :hooks
570
+ # Lifecycle hook configuration for MicroVMs and MicroVM images.
571
+ #
572
+ # @option params [Hash<String,String>] :environment_variables
573
+ # Environment variables set in the MicroVM runtime environment.
574
+ #
575
+ # @option params [required, String] :name
576
+ # The name of the MicroVM image. Must be unique within the AWS account.
577
+ #
578
+ # @option params [Hash<String,String>] :tags
579
+ # A set of key-value pairs that you can attach to the resource. Use tags
580
+ # to categorize resources for cost allocation, access control (ABAC),
581
+ # and organization.
582
+ #
583
+ # @option params [String] :client_token
584
+ # A unique, case-sensitive identifier you provide to ensure the
585
+ # idempotency of the request. If you retry a request that completed
586
+ # successfully using the same client token, the operation returns the
587
+ # successful response without performing any further actions.
588
+ #
589
+ # **A suitable default value is auto-generated.** You should normally
590
+ # not need to pass this option.**
591
+ #
592
+ # @return [Types::CreateMicrovmImageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
593
+ #
594
+ # * {Types::CreateMicrovmImageResponse#image_arn #image_arn} => String
595
+ # * {Types::CreateMicrovmImageResponse#name #name} => String
596
+ # * {Types::CreateMicrovmImageResponse#state #state} => String
597
+ # * {Types::CreateMicrovmImageResponse#latest_active_image_version #latest_active_image_version} => String
598
+ # * {Types::CreateMicrovmImageResponse#latest_failed_image_version #latest_failed_image_version} => String
599
+ # * {Types::CreateMicrovmImageResponse#created_at #created_at} => Time
600
+ # * {Types::CreateMicrovmImageResponse#base_image_arn #base_image_arn} => String
601
+ # * {Types::CreateMicrovmImageResponse#base_image_version #base_image_version} => String
602
+ # * {Types::CreateMicrovmImageResponse#build_role_arn #build_role_arn} => String
603
+ # * {Types::CreateMicrovmImageResponse#description #description} => String
604
+ # * {Types::CreateMicrovmImageResponse#code_artifact #code_artifact} => Types::CodeArtifact
605
+ # * {Types::CreateMicrovmImageResponse#logging #logging} => Types::Logging
606
+ # * {Types::CreateMicrovmImageResponse#egress_network_connectors #egress_network_connectors} => Array&lt;String&gt;
607
+ # * {Types::CreateMicrovmImageResponse#cpu_configurations #cpu_configurations} => Array&lt;Types::CpuConfiguration&gt;
608
+ # * {Types::CreateMicrovmImageResponse#resources #resources} => Array&lt;Types::Resources&gt;
609
+ # * {Types::CreateMicrovmImageResponse#additional_os_capabilities #additional_os_capabilities} => Array&lt;String&gt;
610
+ # * {Types::CreateMicrovmImageResponse#hooks #hooks} => Types::Hooks
611
+ # * {Types::CreateMicrovmImageResponse#environment_variables #environment_variables} => Hash&lt;String,String&gt;
612
+ # * {Types::CreateMicrovmImageResponse#tags #tags} => Hash&lt;String,String&gt;
613
+ # * {Types::CreateMicrovmImageResponse#updated_at #updated_at} => Time
614
+ # * {Types::CreateMicrovmImageResponse#image_version #image_version} => String
615
+ #
616
+ # @example Request syntax with placeholder values
617
+ #
618
+ # resp = client.create_microvm_image({
619
+ # base_image_arn: "NonBlankString", # required
620
+ # base_image_version: "Version",
621
+ # build_role_arn: "RoleArn", # required
622
+ # description: "String",
623
+ # code_artifact: { # required
624
+ # uri: "NonBlankString",
625
+ # },
626
+ # logging: {
627
+ # disabled: {
628
+ # },
629
+ # cloud_watch: {
630
+ # log_group: "CloudWatchLoggingLogGroupString",
631
+ # log_stream: "CloudWatchLoggingLogStreamString",
632
+ # },
633
+ # },
634
+ # egress_network_connectors: ["NetworkConnector"],
635
+ # cpu_configurations: [
636
+ # {
637
+ # architecture: "ARM_64", # required, accepts ARM_64
638
+ # },
639
+ # ],
640
+ # resources: [
641
+ # {
642
+ # minimum_memory_in_mi_b: 1, # required
643
+ # },
644
+ # ],
645
+ # additional_os_capabilities: ["ALL"], # accepts ALL
646
+ # hooks: {
647
+ # port: 1,
648
+ # microvm_hooks: {
649
+ # run: "DISABLED", # accepts DISABLED, ENABLED
650
+ # run_timeout_in_seconds: 1,
651
+ # resume: "DISABLED", # accepts DISABLED, ENABLED
652
+ # resume_timeout_in_seconds: 1,
653
+ # suspend: "DISABLED", # accepts DISABLED, ENABLED
654
+ # suspend_timeout_in_seconds: 1,
655
+ # terminate: "DISABLED", # accepts DISABLED, ENABLED
656
+ # terminate_timeout_in_seconds: 1,
657
+ # },
658
+ # microvm_image_hooks: {
659
+ # ready: "DISABLED", # accepts DISABLED, ENABLED
660
+ # ready_timeout_in_seconds: 1,
661
+ # validate: "DISABLED", # accepts DISABLED, ENABLED
662
+ # validate_timeout_in_seconds: 1,
663
+ # },
664
+ # },
665
+ # environment_variables: {
666
+ # "EnvironmentVariableKey" => "EnvironmentVariableValue",
667
+ # },
668
+ # name: "ImageName", # required
669
+ # tags: {
670
+ # "TagKey" => "TagValue",
671
+ # },
672
+ # client_token: "CreateMicrovmImageRequestClientTokenString",
673
+ # })
674
+ #
675
+ # @example Response structure
676
+ #
677
+ # resp.image_arn #=> String
678
+ # resp.name #=> String
679
+ # resp.state #=> String, one of "CREATING", "CREATED", "CREATE_FAILED", "UPDATING", "UPDATED", "UPDATE_FAILED", "DELETING", "DELETE_FAILED", "DELETED"
680
+ # resp.latest_active_image_version #=> String
681
+ # resp.latest_failed_image_version #=> String
682
+ # resp.created_at #=> Time
683
+ # resp.base_image_arn #=> String
684
+ # resp.base_image_version #=> String
685
+ # resp.build_role_arn #=> String
686
+ # resp.description #=> String
687
+ # resp.code_artifact.uri #=> String
688
+ # resp.logging.cloud_watch.log_group #=> String
689
+ # resp.logging.cloud_watch.log_stream #=> String
690
+ # resp.egress_network_connectors #=> Array
691
+ # resp.egress_network_connectors[0] #=> String
692
+ # resp.cpu_configurations #=> Array
693
+ # resp.cpu_configurations[0].architecture #=> String, one of "ARM_64"
694
+ # resp.resources #=> Array
695
+ # resp.resources[0].minimum_memory_in_mi_b #=> Integer
696
+ # resp.additional_os_capabilities #=> Array
697
+ # resp.additional_os_capabilities[0] #=> String, one of "ALL"
698
+ # resp.hooks.port #=> Integer
699
+ # resp.hooks.microvm_hooks.run #=> String, one of "DISABLED", "ENABLED"
700
+ # resp.hooks.microvm_hooks.run_timeout_in_seconds #=> Integer
701
+ # resp.hooks.microvm_hooks.resume #=> String, one of "DISABLED", "ENABLED"
702
+ # resp.hooks.microvm_hooks.resume_timeout_in_seconds #=> Integer
703
+ # resp.hooks.microvm_hooks.suspend #=> String, one of "DISABLED", "ENABLED"
704
+ # resp.hooks.microvm_hooks.suspend_timeout_in_seconds #=> Integer
705
+ # resp.hooks.microvm_hooks.terminate #=> String, one of "DISABLED", "ENABLED"
706
+ # resp.hooks.microvm_hooks.terminate_timeout_in_seconds #=> Integer
707
+ # resp.hooks.microvm_image_hooks.ready #=> String, one of "DISABLED", "ENABLED"
708
+ # resp.hooks.microvm_image_hooks.ready_timeout_in_seconds #=> Integer
709
+ # resp.hooks.microvm_image_hooks.validate #=> String, one of "DISABLED", "ENABLED"
710
+ # resp.hooks.microvm_image_hooks.validate_timeout_in_seconds #=> Integer
711
+ # resp.environment_variables #=> Hash
712
+ # resp.environment_variables["EnvironmentVariableKey"] #=> String
713
+ # resp.tags #=> Hash
714
+ # resp.tags["TagKey"] #=> String
715
+ # resp.updated_at #=> Time
716
+ # resp.image_version #=> String
717
+ #
718
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/CreateMicrovmImage AWS API Documentation
719
+ #
720
+ # @overload create_microvm_image(params = {})
721
+ # @param [Hash] params ({})
722
+ def create_microvm_image(params = {}, options = {})
723
+ req = build_request(:create_microvm_image, params)
724
+ req.send_request(options)
725
+ end
726
+
727
+ # Creates a shell authentication token for interactive shell access to a
728
+ # running MicroVM. The MicroVM must have been run with the
729
+ # SHELL\_INGRESS network connector attached.
730
+ #
731
+ # @option params [required, String] :microvm_identifier
732
+ # The ID of the MicroVM to create a shell authentication token for.
733
+ #
734
+ # @option params [required, Integer] :expiration_in_minutes
735
+ # The duration in minutes before the shell authentication token expires.
736
+ #
737
+ # @return [Types::CreateMicrovmShellAuthTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
738
+ #
739
+ # * {Types::CreateMicrovmShellAuthTokenResponse#auth_token #auth_token} => Hash&lt;String,String&gt;
740
+ #
741
+ # @example Request syntax with placeholder values
742
+ #
743
+ # resp = client.create_microvm_shell_auth_token({
744
+ # microvm_identifier: "MicrovmIdentifier", # required
745
+ # expiration_in_minutes: 1, # required
746
+ # })
747
+ #
748
+ # @example Response structure
749
+ #
750
+ # resp.auth_token #=> Hash
751
+ # resp.auth_token["AuthTokenKey"] #=> String
752
+ #
753
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/CreateMicrovmShellAuthToken AWS API Documentation
754
+ #
755
+ # @overload create_microvm_shell_auth_token(params = {})
756
+ # @param [Hash] params ({})
757
+ def create_microvm_shell_auth_token(params = {}, options = {})
758
+ req = build_request(:create_microvm_shell_auth_token, params)
759
+ req.send_request(options)
760
+ end
761
+
762
+ # Deletes a MicroVM image. This operation is idempotent; deleting an
763
+ # image that has already been deleted succeeds without error.
764
+ #
765
+ # @option params [required, String] :image_identifier
766
+ # The unique identifier (ARN or ID) of the MicroVM image to delete.
767
+ #
768
+ # @return [Types::DeleteMicrovmImageOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
769
+ #
770
+ # * {Types::DeleteMicrovmImageOutput#image_identifier #image_identifier} => String
771
+ # * {Types::DeleteMicrovmImageOutput#state #state} => String
772
+ #
773
+ # @example Request syntax with placeholder values
774
+ #
775
+ # resp = client.delete_microvm_image({
776
+ # image_identifier: "MicrovmImageIdentifier", # required
777
+ # })
778
+ #
779
+ # @example Response structure
780
+ #
781
+ # resp.image_identifier #=> String
782
+ # resp.state #=> String, one of "CREATING", "CREATED", "CREATE_FAILED", "UPDATING", "UPDATED", "UPDATE_FAILED", "DELETING", "DELETE_FAILED", "DELETED"
783
+ #
784
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/DeleteMicrovmImage AWS API Documentation
785
+ #
786
+ # @overload delete_microvm_image(params = {})
787
+ # @param [Hash] params ({})
788
+ def delete_microvm_image(params = {}, options = {})
789
+ req = build_request(:delete_microvm_image, params)
790
+ req.send_request(options)
791
+ end
792
+
793
+ # Deletes a specific version of a MicroVM image. This operation is
794
+ # idempotent; deleting a version that has already been deleted succeeds
795
+ # without error.
796
+ #
797
+ # @option params [required, String] :image_identifier
798
+ # The unique identifier (ARN or ID) of the MicroVM image.
799
+ #
800
+ # @option params [required, String] :image_version
801
+ # The version of the MicroVM image to delete.
802
+ #
803
+ # @return [Types::DeleteMicrovmImageVersionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
804
+ #
805
+ # * {Types::DeleteMicrovmImageVersionOutput#image_identifier #image_identifier} => String
806
+ # * {Types::DeleteMicrovmImageVersionOutput#image_version #image_version} => String
807
+ # * {Types::DeleteMicrovmImageVersionOutput#state #state} => String
808
+ #
809
+ # @example Request syntax with placeholder values
810
+ #
811
+ # resp = client.delete_microvm_image_version({
812
+ # image_identifier: "MicrovmImageIdentifier", # required
813
+ # image_version: "NonBlankString", # required
814
+ # })
815
+ #
816
+ # @example Response structure
817
+ #
818
+ # resp.image_identifier #=> String
819
+ # resp.image_version #=> String
820
+ # resp.state #=> String, one of "PENDING", "IN_PROGRESS", "SUCCESSFUL", "FAILED", "DELETING", "DELETED", "DELETE_FAILED"
821
+ #
822
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/DeleteMicrovmImageVersion AWS API Documentation
823
+ #
824
+ # @overload delete_microvm_image_version(params = {})
825
+ # @param [Hash] params ({})
826
+ def delete_microvm_image_version(params = {}, options = {})
827
+ req = build_request(:delete_microvm_image_version, params)
828
+ req.send_request(options)
829
+ end
830
+
831
+ # Retrieves the details of a specific MicroVM, including its state,
832
+ # endpoint, image information, and configuration. The state field is
833
+ # eventually consistent — determine readiness by connecting to the
834
+ # endpoint.
835
+ #
836
+ # @option params [required, String] :microvm_identifier
837
+ # The ID of the MicroVM to retrieve.
838
+ #
839
+ # @return [Types::GetMicrovmResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
840
+ #
841
+ # * {Types::GetMicrovmResponse#microvm_id #microvm_id} => String
842
+ # * {Types::GetMicrovmResponse#state #state} => String
843
+ # * {Types::GetMicrovmResponse#endpoint #endpoint} => String
844
+ # * {Types::GetMicrovmResponse#image_arn #image_arn} => String
845
+ # * {Types::GetMicrovmResponse#image_version #image_version} => String
846
+ # * {Types::GetMicrovmResponse#execution_role_arn #execution_role_arn} => String
847
+ # * {Types::GetMicrovmResponse#idle_policy #idle_policy} => Types::IdlePolicy
848
+ # * {Types::GetMicrovmResponse#maximum_duration_in_seconds #maximum_duration_in_seconds} => Integer
849
+ # * {Types::GetMicrovmResponse#started_at #started_at} => Time
850
+ # * {Types::GetMicrovmResponse#terminated_at #terminated_at} => Time
851
+ # * {Types::GetMicrovmResponse#state_reason #state_reason} => String
852
+ # * {Types::GetMicrovmResponse#ingress_network_connectors #ingress_network_connectors} => Array&lt;String&gt;
853
+ # * {Types::GetMicrovmResponse#egress_network_connectors #egress_network_connectors} => Array&lt;String&gt;
854
+ #
855
+ # @example Request syntax with placeholder values
856
+ #
857
+ # resp = client.get_microvm({
858
+ # microvm_identifier: "MicrovmIdentifier", # required
859
+ # })
860
+ #
861
+ # @example Response structure
862
+ #
863
+ # resp.microvm_id #=> String
864
+ # resp.state #=> String, one of "PENDING", "RUNNING", "SUSPENDING", "SUSPENDED", "TERMINATING", "TERMINATED"
865
+ # resp.endpoint #=> String
866
+ # resp.image_arn #=> String
867
+ # resp.image_version #=> String
868
+ # resp.execution_role_arn #=> String
869
+ # resp.idle_policy.max_idle_duration_seconds #=> Integer
870
+ # resp.idle_policy.suspended_duration_seconds #=> Integer
871
+ # resp.idle_policy.auto_resume_enabled #=> Boolean
872
+ # resp.maximum_duration_in_seconds #=> Integer
873
+ # resp.started_at #=> Time
874
+ # resp.terminated_at #=> Time
875
+ # resp.state_reason #=> String
876
+ # resp.ingress_network_connectors #=> Array
877
+ # resp.ingress_network_connectors[0] #=> String
878
+ # resp.egress_network_connectors #=> Array
879
+ # resp.egress_network_connectors[0] #=> String
880
+ #
881
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/GetMicrovm AWS API Documentation
882
+ #
883
+ # @overload get_microvm(params = {})
884
+ # @param [Hash] params ({})
885
+ def get_microvm(params = {}, options = {})
886
+ req = build_request(:get_microvm, params)
887
+ req.send_request(options)
888
+ end
889
+
890
+ # Retrieves the details of a MicroVM image, including its state,
891
+ # versions, and configuration.
892
+ #
893
+ # @option params [required, String] :image_identifier
894
+ # The unique identifier (ARN or ID) of the MicroVM image to retrieve.
895
+ #
896
+ # @return [Types::GetMicrovmImageOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
897
+ #
898
+ # * {Types::GetMicrovmImageOutput#image_arn #image_arn} => String
899
+ # * {Types::GetMicrovmImageOutput#name #name} => String
900
+ # * {Types::GetMicrovmImageOutput#state #state} => String
901
+ # * {Types::GetMicrovmImageOutput#latest_active_image_version #latest_active_image_version} => String
902
+ # * {Types::GetMicrovmImageOutput#latest_failed_image_version #latest_failed_image_version} => String
903
+ # * {Types::GetMicrovmImageOutput#created_at #created_at} => Time
904
+ # * {Types::GetMicrovmImageOutput#tags #tags} => Hash&lt;String,String&gt;
905
+ # * {Types::GetMicrovmImageOutput#updated_at #updated_at} => Time
906
+ #
907
+ # @example Request syntax with placeholder values
908
+ #
909
+ # resp = client.get_microvm_image({
910
+ # image_identifier: "MicrovmImageIdentifier", # required
911
+ # })
912
+ #
913
+ # @example Response structure
914
+ #
915
+ # resp.image_arn #=> String
916
+ # resp.name #=> String
917
+ # resp.state #=> String, one of "CREATING", "CREATED", "CREATE_FAILED", "UPDATING", "UPDATED", "UPDATE_FAILED", "DELETING", "DELETE_FAILED", "DELETED"
918
+ # resp.latest_active_image_version #=> String
919
+ # resp.latest_failed_image_version #=> String
920
+ # resp.created_at #=> Time
921
+ # resp.tags #=> Hash
922
+ # resp.tags["TagKey"] #=> String
923
+ # resp.updated_at #=> Time
924
+ #
925
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/GetMicrovmImage AWS API Documentation
926
+ #
927
+ # @overload get_microvm_image(params = {})
928
+ # @param [Hash] params ({})
929
+ def get_microvm_image(params = {}, options = {})
930
+ req = build_request(:get_microvm_image, params)
931
+ req.send_request(options)
932
+ end
933
+
934
+ # Retrieves the details of a specific MicroVM image build, including its
935
+ # state, target architecture, and snapshot information.
936
+ #
937
+ # @option params [required, String] :image_identifier
938
+ # The unique identifier (ARN or ID) of the MicroVM image.
939
+ #
940
+ # @option params [required, String] :image_version
941
+ # The version of the MicroVM image.
942
+ #
943
+ # @option params [required, String] :build_id
944
+ # The unique identifier of the build to retrieve.
945
+ #
946
+ # @return [Types::GetMicrovmImageBuildOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
947
+ #
948
+ # * {Types::GetMicrovmImageBuildOutput#image_arn #image_arn} => String
949
+ # * {Types::GetMicrovmImageBuildOutput#image_version #image_version} => String
950
+ # * {Types::GetMicrovmImageBuildOutput#build_id #build_id} => String
951
+ # * {Types::GetMicrovmImageBuildOutput#build_state #build_state} => String
952
+ # * {Types::GetMicrovmImageBuildOutput#architecture #architecture} => String
953
+ # * {Types::GetMicrovmImageBuildOutput#chipset #chipset} => String
954
+ # * {Types::GetMicrovmImageBuildOutput#chipset_generation #chipset_generation} => String
955
+ # * {Types::GetMicrovmImageBuildOutput#state_reason #state_reason} => String
956
+ # * {Types::GetMicrovmImageBuildOutput#created_at #created_at} => Time
957
+ # * {Types::GetMicrovmImageBuildOutput#snapshot_build #snapshot_build} => Types::SnapshotBuild
958
+ #
959
+ # @example Request syntax with placeholder values
960
+ #
961
+ # resp = client.get_microvm_image_build({
962
+ # image_identifier: "MicrovmImageIdentifier", # required
963
+ # image_version: "NonBlankString", # required
964
+ # build_id: "NonBlankString", # required
965
+ # })
966
+ #
967
+ # @example Response structure
968
+ #
969
+ # resp.image_arn #=> String
970
+ # resp.image_version #=> String
971
+ # resp.build_id #=> String
972
+ # resp.build_state #=> String, one of "PENDING", "IN_PROGRESS", "SUCCESSFUL", "FAILED"
973
+ # resp.architecture #=> String, one of "ARM_64"
974
+ # resp.chipset #=> String, one of "GRAVITON"
975
+ # resp.chipset_generation #=> String
976
+ # resp.state_reason #=> String
977
+ # resp.created_at #=> Time
978
+ # resp.snapshot_build.memory_snapshot_size_in_bytes #=> Integer
979
+ # resp.snapshot_build.code_install_size_in_bytes #=> Integer
980
+ # resp.snapshot_build.disk_snapshot_size_in_bytes #=> Integer
981
+ #
982
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/GetMicrovmImageBuild AWS API Documentation
983
+ #
984
+ # @overload get_microvm_image_build(params = {})
985
+ # @param [Hash] params ({})
986
+ def get_microvm_image_build(params = {}, options = {})
987
+ req = build_request(:get_microvm_image_build, params)
988
+ req.send_request(options)
989
+ end
990
+
991
+ # Retrieves the details of a specific version of a MicroVM image,
992
+ # including its configuration, state, and build information.
993
+ #
994
+ # @option params [required, String] :image_identifier
995
+ # The unique identifier (ARN or ID) of the MicroVM image.
996
+ #
997
+ # @option params [required, String] :image_version
998
+ # The version of the MicroVM image to retrieve.
999
+ #
1000
+ # @return [Types::GetMicrovmImageVersionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1001
+ #
1002
+ # * {Types::GetMicrovmImageVersionOutput#base_image_arn #base_image_arn} => String
1003
+ # * {Types::GetMicrovmImageVersionOutput#base_image_version #base_image_version} => String
1004
+ # * {Types::GetMicrovmImageVersionOutput#build_role_arn #build_role_arn} => String
1005
+ # * {Types::GetMicrovmImageVersionOutput#description #description} => String
1006
+ # * {Types::GetMicrovmImageVersionOutput#code_artifact #code_artifact} => Types::CodeArtifact
1007
+ # * {Types::GetMicrovmImageVersionOutput#logging #logging} => Types::Logging
1008
+ # * {Types::GetMicrovmImageVersionOutput#egress_network_connectors #egress_network_connectors} => Array&lt;String&gt;
1009
+ # * {Types::GetMicrovmImageVersionOutput#cpu_configurations #cpu_configurations} => Array&lt;Types::CpuConfiguration&gt;
1010
+ # * {Types::GetMicrovmImageVersionOutput#resources #resources} => Array&lt;Types::Resources&gt;
1011
+ # * {Types::GetMicrovmImageVersionOutput#additional_os_capabilities #additional_os_capabilities} => Array&lt;String&gt;
1012
+ # * {Types::GetMicrovmImageVersionOutput#hooks #hooks} => Types::Hooks
1013
+ # * {Types::GetMicrovmImageVersionOutput#environment_variables #environment_variables} => Hash&lt;String,String&gt;
1014
+ # * {Types::GetMicrovmImageVersionOutput#image_arn #image_arn} => String
1015
+ # * {Types::GetMicrovmImageVersionOutput#image_version #image_version} => String
1016
+ # * {Types::GetMicrovmImageVersionOutput#state #state} => String
1017
+ # * {Types::GetMicrovmImageVersionOutput#status #status} => String
1018
+ # * {Types::GetMicrovmImageVersionOutput#created_at #created_at} => Time
1019
+ # * {Types::GetMicrovmImageVersionOutput#updated_at #updated_at} => Time
1020
+ # * {Types::GetMicrovmImageVersionOutput#state_reason #state_reason} => String
1021
+ # * {Types::GetMicrovmImageVersionOutput#tags #tags} => Hash&lt;String,String&gt;
1022
+ #
1023
+ # @example Request syntax with placeholder values
1024
+ #
1025
+ # resp = client.get_microvm_image_version({
1026
+ # image_identifier: "MicrovmImageIdentifier", # required
1027
+ # image_version: "NonBlankString", # required
1028
+ # })
1029
+ #
1030
+ # @example Response structure
1031
+ #
1032
+ # resp.base_image_arn #=> String
1033
+ # resp.base_image_version #=> String
1034
+ # resp.build_role_arn #=> String
1035
+ # resp.description #=> String
1036
+ # resp.code_artifact.uri #=> String
1037
+ # resp.logging.cloud_watch.log_group #=> String
1038
+ # resp.logging.cloud_watch.log_stream #=> String
1039
+ # resp.egress_network_connectors #=> Array
1040
+ # resp.egress_network_connectors[0] #=> String
1041
+ # resp.cpu_configurations #=> Array
1042
+ # resp.cpu_configurations[0].architecture #=> String, one of "ARM_64"
1043
+ # resp.resources #=> Array
1044
+ # resp.resources[0].minimum_memory_in_mi_b #=> Integer
1045
+ # resp.additional_os_capabilities #=> Array
1046
+ # resp.additional_os_capabilities[0] #=> String, one of "ALL"
1047
+ # resp.hooks.port #=> Integer
1048
+ # resp.hooks.microvm_hooks.run #=> String, one of "DISABLED", "ENABLED"
1049
+ # resp.hooks.microvm_hooks.run_timeout_in_seconds #=> Integer
1050
+ # resp.hooks.microvm_hooks.resume #=> String, one of "DISABLED", "ENABLED"
1051
+ # resp.hooks.microvm_hooks.resume_timeout_in_seconds #=> Integer
1052
+ # resp.hooks.microvm_hooks.suspend #=> String, one of "DISABLED", "ENABLED"
1053
+ # resp.hooks.microvm_hooks.suspend_timeout_in_seconds #=> Integer
1054
+ # resp.hooks.microvm_hooks.terminate #=> String, one of "DISABLED", "ENABLED"
1055
+ # resp.hooks.microvm_hooks.terminate_timeout_in_seconds #=> Integer
1056
+ # resp.hooks.microvm_image_hooks.ready #=> String, one of "DISABLED", "ENABLED"
1057
+ # resp.hooks.microvm_image_hooks.ready_timeout_in_seconds #=> Integer
1058
+ # resp.hooks.microvm_image_hooks.validate #=> String, one of "DISABLED", "ENABLED"
1059
+ # resp.hooks.microvm_image_hooks.validate_timeout_in_seconds #=> Integer
1060
+ # resp.environment_variables #=> Hash
1061
+ # resp.environment_variables["EnvironmentVariableKey"] #=> String
1062
+ # resp.image_arn #=> String
1063
+ # resp.image_version #=> String
1064
+ # resp.state #=> String, one of "PENDING", "IN_PROGRESS", "SUCCESSFUL", "FAILED", "DELETING", "DELETED", "DELETE_FAILED"
1065
+ # resp.status #=> String, one of "ACTIVE", "INACTIVE"
1066
+ # resp.created_at #=> Time
1067
+ # resp.updated_at #=> Time
1068
+ # resp.state_reason #=> String
1069
+ # resp.tags #=> Hash
1070
+ # resp.tags["TagKey"] #=> String
1071
+ #
1072
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/GetMicrovmImageVersion AWS API Documentation
1073
+ #
1074
+ # @overload get_microvm_image_version(params = {})
1075
+ # @param [Hash] params ({})
1076
+ def get_microvm_image_version(params = {}, options = {})
1077
+ req = build_request(:get_microvm_image_version, params)
1078
+ req.send_request(options)
1079
+ end
1080
+
1081
+ # Lists versions of a managed MicroVM image. We recommend using
1082
+ # pagination to ensure that the operation returns quickly and
1083
+ # successfully.
1084
+ #
1085
+ # @option params [Integer] :max_results
1086
+ # The maximum number of results to return in a single call.
1087
+ #
1088
+ # @option params [String] :next_token
1089
+ # The pagination token from a previous call. Use this token to retrieve
1090
+ # the next page of results.
1091
+ #
1092
+ # @option params [required, String] :image_identifier
1093
+ # The unique identifier (ARN or ID) of the managed MicroVM image to list
1094
+ # versions for.
1095
+ #
1096
+ # @return [Types::ListManagedMicrovmImageVersionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1097
+ #
1098
+ # * {Types::ListManagedMicrovmImageVersionsOutput#next_token #next_token} => String
1099
+ # * {Types::ListManagedMicrovmImageVersionsOutput#items #items} => Array&lt;Types::ManagedMicrovmImageVersion&gt;
1100
+ #
1101
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1102
+ #
1103
+ # @example Request syntax with placeholder values
1104
+ #
1105
+ # resp = client.list_managed_microvm_image_versions({
1106
+ # max_results: 1,
1107
+ # next_token: "String",
1108
+ # image_identifier: "MicrovmImageIdentifier", # required
1109
+ # })
1110
+ #
1111
+ # @example Response structure
1112
+ #
1113
+ # resp.next_token #=> String
1114
+ # resp.items #=> Array
1115
+ # resp.items[0].image_arn #=> String
1116
+ # resp.items[0].image_version #=> String
1117
+ # resp.items[0].created_at #=> Time
1118
+ # resp.items[0].updated_at #=> Time
1119
+ #
1120
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListManagedMicrovmImageVersions AWS API Documentation
1121
+ #
1122
+ # @overload list_managed_microvm_image_versions(params = {})
1123
+ # @param [Hash] params ({})
1124
+ def list_managed_microvm_image_versions(params = {}, options = {})
1125
+ req = build_request(:list_managed_microvm_image_versions, params)
1126
+ req.send_request(options)
1127
+ end
1128
+
1129
+ # Lists AWS managed MicroVM images available for use as base images. We
1130
+ # recommend using pagination to ensure that the operation returns
1131
+ # quickly and successfully.
1132
+ #
1133
+ # @option params [Integer] :max_results
1134
+ # The maximum number of results to return in a single call.
1135
+ #
1136
+ # @option params [String] :next_token
1137
+ # The pagination token from a previous call. Use this token to retrieve
1138
+ # the next page of results.
1139
+ #
1140
+ # @return [Types::ListManagedMicrovmImagesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1141
+ #
1142
+ # * {Types::ListManagedMicrovmImagesOutput#next_token #next_token} => String
1143
+ # * {Types::ListManagedMicrovmImagesOutput#items #items} => Array&lt;Types::ManagedMicrovmImageSummary&gt;
1144
+ #
1145
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1146
+ #
1147
+ # @example Request syntax with placeholder values
1148
+ #
1149
+ # resp = client.list_managed_microvm_images({
1150
+ # max_results: 1,
1151
+ # next_token: "String",
1152
+ # })
1153
+ #
1154
+ # @example Response structure
1155
+ #
1156
+ # resp.next_token #=> String
1157
+ # resp.items #=> Array
1158
+ # resp.items[0].image_arn #=> String
1159
+ # resp.items[0].created_at #=> Time
1160
+ # resp.items[0].updated_at #=> Time
1161
+ #
1162
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListManagedMicrovmImages AWS API Documentation
1163
+ #
1164
+ # @overload list_managed_microvm_images(params = {})
1165
+ # @param [Hash] params ({})
1166
+ def list_managed_microvm_images(params = {}, options = {})
1167
+ req = build_request(:list_managed_microvm_images, params)
1168
+ req.send_request(options)
1169
+ end
1170
+
1171
+ # Lists builds for a MicroVM image version with optional filtering by
1172
+ # architecture and chipset. We recommend using pagination to ensure that
1173
+ # the operation returns quickly and successfully.
1174
+ #
1175
+ # @option params [Integer] :max_results
1176
+ # The maximum number of results to return in a single call.
1177
+ #
1178
+ # @option params [String] :next_token
1179
+ # The pagination token from a previous call. Use this token to retrieve
1180
+ # the next page of results.
1181
+ #
1182
+ # @option params [required, String] :image_identifier
1183
+ # The unique identifier (ARN or ID) of the MicroVM image.
1184
+ #
1185
+ # @option params [required, String] :image_version
1186
+ # The version of the MicroVM image to list builds for.
1187
+ #
1188
+ # @option params [String] :architecture
1189
+ # Filters builds by target CPU architecture.
1190
+ #
1191
+ # @option params [String] :chipset
1192
+ # Filters builds by target chipset.
1193
+ #
1194
+ # @option params [String] :chipset_generation
1195
+ # Filters builds by target chipset generation.
1196
+ #
1197
+ # @return [Types::ListMicrovmImageBuildsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1198
+ #
1199
+ # * {Types::ListMicrovmImageBuildsOutput#next_token #next_token} => String
1200
+ # * {Types::ListMicrovmImageBuildsOutput#items #items} => Array&lt;Types::MicrovmImageBuildSummary&gt;
1201
+ #
1202
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1203
+ #
1204
+ # @example Request syntax with placeholder values
1205
+ #
1206
+ # resp = client.list_microvm_image_builds({
1207
+ # max_results: 1,
1208
+ # next_token: "String",
1209
+ # image_identifier: "MicrovmImageIdentifier", # required
1210
+ # image_version: "NonBlankString", # required
1211
+ # architecture: "ARM_64", # accepts ARM_64
1212
+ # chipset: "GRAVITON", # accepts GRAVITON
1213
+ # chipset_generation: "NonBlankString",
1214
+ # })
1215
+ #
1216
+ # @example Response structure
1217
+ #
1218
+ # resp.next_token #=> String
1219
+ # resp.items #=> Array
1220
+ # resp.items[0].image_arn #=> String
1221
+ # resp.items[0].image_version #=> String
1222
+ # resp.items[0].build_id #=> String
1223
+ # resp.items[0].build_state #=> String, one of "PENDING", "IN_PROGRESS", "SUCCESSFUL", "FAILED"
1224
+ # resp.items[0].architecture #=> String, one of "ARM_64"
1225
+ # resp.items[0].chipset #=> String, one of "GRAVITON"
1226
+ # resp.items[0].chipset_generation #=> String
1227
+ # resp.items[0].state_reason #=> String
1228
+ # resp.items[0].created_at #=> Time
1229
+ #
1230
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListMicrovmImageBuilds AWS API Documentation
1231
+ #
1232
+ # @overload list_microvm_image_builds(params = {})
1233
+ # @param [Hash] params ({})
1234
+ def list_microvm_image_builds(params = {}, options = {})
1235
+ req = build_request(:list_microvm_image_builds, params)
1236
+ req.send_request(options)
1237
+ end
1238
+
1239
+ # Lists versions of a MicroVM image. We recommend using pagination to
1240
+ # ensure that the operation returns quickly and successfully.
1241
+ #
1242
+ # @option params [Integer] :max_results
1243
+ # The maximum number of results to return in a single call.
1244
+ #
1245
+ # @option params [String] :next_token
1246
+ # The pagination token from a previous call. Use this token to retrieve
1247
+ # the next page of results.
1248
+ #
1249
+ # @option params [required, String] :image_identifier
1250
+ # The unique identifier (ARN or ID) of the MicroVM image to list
1251
+ # versions for.
1252
+ #
1253
+ # @return [Types::ListMicrovmImageVersionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1254
+ #
1255
+ # * {Types::ListMicrovmImageVersionsOutput#next_token #next_token} => String
1256
+ # * {Types::ListMicrovmImageVersionsOutput#items #items} => Array&lt;Types::MicrovmImageVersionSummary&gt;
1257
+ #
1258
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1259
+ #
1260
+ # @example Request syntax with placeholder values
1261
+ #
1262
+ # resp = client.list_microvm_image_versions({
1263
+ # max_results: 1,
1264
+ # next_token: "String",
1265
+ # image_identifier: "MicrovmImageIdentifier", # required
1266
+ # })
1267
+ #
1268
+ # @example Response structure
1269
+ #
1270
+ # resp.next_token #=> String
1271
+ # resp.items #=> Array
1272
+ # resp.items[0].base_image_arn #=> String
1273
+ # resp.items[0].base_image_version #=> String
1274
+ # resp.items[0].build_role_arn #=> String
1275
+ # resp.items[0].description #=> String
1276
+ # resp.items[0].code_artifact.uri #=> String
1277
+ # resp.items[0].logging.cloud_watch.log_group #=> String
1278
+ # resp.items[0].logging.cloud_watch.log_stream #=> String
1279
+ # resp.items[0].egress_network_connectors #=> Array
1280
+ # resp.items[0].egress_network_connectors[0] #=> String
1281
+ # resp.items[0].cpu_configurations #=> Array
1282
+ # resp.items[0].cpu_configurations[0].architecture #=> String, one of "ARM_64"
1283
+ # resp.items[0].resources #=> Array
1284
+ # resp.items[0].resources[0].minimum_memory_in_mi_b #=> Integer
1285
+ # resp.items[0].additional_os_capabilities #=> Array
1286
+ # resp.items[0].additional_os_capabilities[0] #=> String, one of "ALL"
1287
+ # resp.items[0].hooks.port #=> Integer
1288
+ # resp.items[0].hooks.microvm_hooks.run #=> String, one of "DISABLED", "ENABLED"
1289
+ # resp.items[0].hooks.microvm_hooks.run_timeout_in_seconds #=> Integer
1290
+ # resp.items[0].hooks.microvm_hooks.resume #=> String, one of "DISABLED", "ENABLED"
1291
+ # resp.items[0].hooks.microvm_hooks.resume_timeout_in_seconds #=> Integer
1292
+ # resp.items[0].hooks.microvm_hooks.suspend #=> String, one of "DISABLED", "ENABLED"
1293
+ # resp.items[0].hooks.microvm_hooks.suspend_timeout_in_seconds #=> Integer
1294
+ # resp.items[0].hooks.microvm_hooks.terminate #=> String, one of "DISABLED", "ENABLED"
1295
+ # resp.items[0].hooks.microvm_hooks.terminate_timeout_in_seconds #=> Integer
1296
+ # resp.items[0].hooks.microvm_image_hooks.ready #=> String, one of "DISABLED", "ENABLED"
1297
+ # resp.items[0].hooks.microvm_image_hooks.ready_timeout_in_seconds #=> Integer
1298
+ # resp.items[0].hooks.microvm_image_hooks.validate #=> String, one of "DISABLED", "ENABLED"
1299
+ # resp.items[0].hooks.microvm_image_hooks.validate_timeout_in_seconds #=> Integer
1300
+ # resp.items[0].environment_variables #=> Hash
1301
+ # resp.items[0].environment_variables["EnvironmentVariableKey"] #=> String
1302
+ # resp.items[0].image_arn #=> String
1303
+ # resp.items[0].image_version #=> String
1304
+ # resp.items[0].state #=> String, one of "PENDING", "IN_PROGRESS", "SUCCESSFUL", "FAILED", "DELETING", "DELETED", "DELETE_FAILED"
1305
+ # resp.items[0].status #=> String, one of "ACTIVE", "INACTIVE"
1306
+ # resp.items[0].created_at #=> Time
1307
+ # resp.items[0].updated_at #=> Time
1308
+ # resp.items[0].state_reason #=> String
1309
+ # resp.items[0].tags #=> Hash
1310
+ # resp.items[0].tags["TagKey"] #=> String
1311
+ #
1312
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListMicrovmImageVersions AWS API Documentation
1313
+ #
1314
+ # @overload list_microvm_image_versions(params = {})
1315
+ # @param [Hash] params ({})
1316
+ def list_microvm_image_versions(params = {}, options = {})
1317
+ req = build_request(:list_microvm_image_versions, params)
1318
+ req.send_request(options)
1319
+ end
1320
+
1321
+ # Lists MicroVM images in the account with optional name filtering. We
1322
+ # recommend using pagination to ensure that the operation returns
1323
+ # quickly and successfully.
1324
+ #
1325
+ # @option params [Integer] :max_results
1326
+ # The maximum number of results to return in a single call.
1327
+ #
1328
+ # @option params [String] :next_token
1329
+ # The pagination token from a previous call. Use this token to retrieve
1330
+ # the next page of results.
1331
+ #
1332
+ # @option params [String] :name_filter
1333
+ # Filters images whose name contains the specified string.
1334
+ #
1335
+ # @return [Types::ListMicrovmImagesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1336
+ #
1337
+ # * {Types::ListMicrovmImagesResponse#next_token #next_token} => String
1338
+ # * {Types::ListMicrovmImagesResponse#items #items} => Array&lt;Types::MicrovmImageSummary&gt;
1339
+ #
1340
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1341
+ #
1342
+ # @example Request syntax with placeholder values
1343
+ #
1344
+ # resp = client.list_microvm_images({
1345
+ # max_results: 1,
1346
+ # next_token: "String",
1347
+ # name_filter: "NonBlankString",
1348
+ # })
1349
+ #
1350
+ # @example Response structure
1351
+ #
1352
+ # resp.next_token #=> String
1353
+ # resp.items #=> Array
1354
+ # resp.items[0].image_arn #=> String
1355
+ # resp.items[0].name #=> String
1356
+ # resp.items[0].state #=> String, one of "CREATING", "CREATED", "CREATE_FAILED", "UPDATING", "UPDATED", "UPDATE_FAILED", "DELETING", "DELETE_FAILED", "DELETED"
1357
+ # resp.items[0].latest_active_image_version #=> String
1358
+ # resp.items[0].latest_failed_image_version #=> String
1359
+ # resp.items[0].created_at #=> Time
1360
+ #
1361
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListMicrovmImages AWS API Documentation
1362
+ #
1363
+ # @overload list_microvm_images(params = {})
1364
+ # @param [Hash] params ({})
1365
+ def list_microvm_images(params = {}, options = {})
1366
+ req = build_request(:list_microvm_images, params)
1367
+ req.send_request(options)
1368
+ end
1369
+
1370
+ # Lists MicroVMs in the account with optional filtering by image and
1371
+ # version. We recommend using pagination to ensure that the operation
1372
+ # returns quickly and successfully.
1373
+ #
1374
+ # @option params [Integer] :max_results
1375
+ # The maximum number of results to return in a single call.
1376
+ #
1377
+ # @option params [String] :next_token
1378
+ # The pagination token from a previous call. Use this token to retrieve
1379
+ # the next page of results.
1380
+ #
1381
+ # @option params [String] :image_identifier
1382
+ # Optional filter to list only MicroVMs running the specified image.
1383
+ #
1384
+ # @option params [String] :image_version
1385
+ # Optional filter to list only MicroVMs running the specified image
1386
+ # version.
1387
+ #
1388
+ # @return [Types::ListMicrovmsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1389
+ #
1390
+ # * {Types::ListMicrovmsResponse#next_token #next_token} => String
1391
+ # * {Types::ListMicrovmsResponse#items #items} => Array&lt;Types::MicrovmItem&gt;
1392
+ #
1393
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1394
+ #
1395
+ # @example Request syntax with placeholder values
1396
+ #
1397
+ # resp = client.list_microvms({
1398
+ # max_results: 1,
1399
+ # next_token: "String",
1400
+ # image_identifier: "MicrovmImageIdentifier",
1401
+ # image_version: "String",
1402
+ # })
1403
+ #
1404
+ # @example Response structure
1405
+ #
1406
+ # resp.next_token #=> String
1407
+ # resp.items #=> Array
1408
+ # resp.items[0].microvm_id #=> String
1409
+ # resp.items[0].state #=> String, one of "PENDING", "RUNNING", "SUSPENDING", "SUSPENDED", "TERMINATING", "TERMINATED"
1410
+ # resp.items[0].image_arn #=> String
1411
+ # resp.items[0].image_version #=> String
1412
+ # resp.items[0].started_at #=> Time
1413
+ #
1414
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListMicrovms AWS API Documentation
1415
+ #
1416
+ # @overload list_microvms(params = {})
1417
+ # @param [Hash] params ({})
1418
+ def list_microvms(params = {}, options = {})
1419
+ req = build_request(:list_microvms, params)
1420
+ req.send_request(options)
1421
+ end
1422
+
1423
+ # Lists the tags associated with a Lambda MicroVM resource.
1424
+ #
1425
+ # @option params [required, String] :resource
1426
+ # The ARN of the resource to list tags for.
1427
+ #
1428
+ # @return [Types::ListTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1429
+ #
1430
+ # * {Types::ListTagsResponse#tags #tags} => Hash&lt;String,String&gt;
1431
+ #
1432
+ # @example Request syntax with placeholder values
1433
+ #
1434
+ # resp = client.list_tags({
1435
+ # resource: "TaggableResource", # required
1436
+ # })
1437
+ #
1438
+ # @example Response structure
1439
+ #
1440
+ # resp.tags #=> Hash
1441
+ # resp.tags["TagKey"] #=> String
1442
+ #
1443
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ListTags AWS API Documentation
1444
+ #
1445
+ # @overload list_tags(params = {})
1446
+ # @param [Hash] params ({})
1447
+ def list_tags(params = {}, options = {})
1448
+ req = build_request(:list_tags, params)
1449
+ req.send_request(options)
1450
+ end
1451
+
1452
+ # Resumes a suspended MicroVM, restoring it to RUNNING state with all
1453
+ # state intact. The MicroVM must be in SUSPENDED state.
1454
+ #
1455
+ # @option params [required, String] :microvm_identifier
1456
+ # The ID of the MicroVM to resume.
1457
+ #
1458
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1459
+ #
1460
+ # @example Request syntax with placeholder values
1461
+ #
1462
+ # resp = client.resume_microvm({
1463
+ # microvm_identifier: "MicrovmIdentifier", # required
1464
+ # })
1465
+ #
1466
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/ResumeMicrovm AWS API Documentation
1467
+ #
1468
+ # @overload resume_microvm(params = {})
1469
+ # @param [Hash] params ({})
1470
+ def resume_microvm(params = {}, options = {})
1471
+ req = build_request(:resume_microvm, params)
1472
+ req.send_request(options)
1473
+ end
1474
+
1475
+ # Runs a new MicroVM from the specified image. The MicroVM starts in
1476
+ # PENDING state and transitions to RUNNING once provisioning completes.
1477
+ # To connect, generate an authentication token using
1478
+ # CreateMicrovmAuthToken.
1479
+ #
1480
+ # @option params [Array<String>] :ingress_network_connectors
1481
+ # The list of ingress network connectors to configure for the MicroVM.
1482
+ #
1483
+ # @option params [Array<String>] :egress_network_connectors
1484
+ # The list of egress network connectors to configure for the MicroVM.
1485
+ #
1486
+ # @option params [required, String] :image_identifier
1487
+ # The identifier (ARN or ID) of the MicroVM image to run.
1488
+ #
1489
+ # @option params [String] :image_version
1490
+ # The version of the MicroVM image to run.
1491
+ #
1492
+ # @option params [String] :execution_role_arn
1493
+ # The ARN of the IAM role to be assumed by the MicroVM during execution.
1494
+ #
1495
+ # @option params [Types::IdlePolicy] :idle_policy
1496
+ # Configuration to control auto-suspend and auto-resume behavior.
1497
+ #
1498
+ # @option params [Types::Logging] :logging
1499
+ # The logging configuration for this MicroVM instance. Specify
1500
+ # \{"cloudWatch": \{"logGroup": "..."}} to stream application logs
1501
+ # to a custom CloudWatch log group, or \{"disabled": \{}} to turn off
1502
+ # logging.
1503
+ #
1504
+ # @option params [String] :run_hook_payload
1505
+ # Per-MicroVM initialization data delivered as the request body of the
1506
+ # /run lifecycle hook. Use to pass tenant-specific configuration such as
1507
+ # session IDs or secret references. Maximum: 16,384 bytes.
1508
+ #
1509
+ # @option params [Integer] :maximum_duration_in_seconds
1510
+ # The maximum duration in seconds that the MicroVM can exist before
1511
+ # being terminated by the platform. Valid range: 1–28,800 (8 hours).
1512
+ #
1513
+ # @option params [String] :client_token
1514
+ # A unique, case-sensitive identifier you provide to ensure the
1515
+ # idempotency of the request.
1516
+ #
1517
+ # **A suitable default value is auto-generated.** You should normally
1518
+ # not need to pass this option.**
1519
+ #
1520
+ # @return [Types::RunMicrovmResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1521
+ #
1522
+ # * {Types::RunMicrovmResponse#microvm_id #microvm_id} => String
1523
+ # * {Types::RunMicrovmResponse#state #state} => String
1524
+ # * {Types::RunMicrovmResponse#endpoint #endpoint} => String
1525
+ # * {Types::RunMicrovmResponse#image_arn #image_arn} => String
1526
+ # * {Types::RunMicrovmResponse#image_version #image_version} => String
1527
+ # * {Types::RunMicrovmResponse#execution_role_arn #execution_role_arn} => String
1528
+ # * {Types::RunMicrovmResponse#idle_policy #idle_policy} => Types::IdlePolicy
1529
+ # * {Types::RunMicrovmResponse#maximum_duration_in_seconds #maximum_duration_in_seconds} => Integer
1530
+ # * {Types::RunMicrovmResponse#started_at #started_at} => Time
1531
+ # * {Types::RunMicrovmResponse#terminated_at #terminated_at} => Time
1532
+ # * {Types::RunMicrovmResponse#state_reason #state_reason} => String
1533
+ # * {Types::RunMicrovmResponse#ingress_network_connectors #ingress_network_connectors} => Array&lt;String&gt;
1534
+ # * {Types::RunMicrovmResponse#egress_network_connectors #egress_network_connectors} => Array&lt;String&gt;
1535
+ #
1536
+ # @example Request syntax with placeholder values
1537
+ #
1538
+ # resp = client.run_microvm({
1539
+ # ingress_network_connectors: ["NetworkConnector"],
1540
+ # egress_network_connectors: ["NetworkConnector"],
1541
+ # image_identifier: "MicrovmImageIdentifier", # required
1542
+ # image_version: "Version",
1543
+ # execution_role_arn: "RoleArn",
1544
+ # idle_policy: {
1545
+ # max_idle_duration_seconds: 1, # required
1546
+ # suspended_duration_seconds: 1, # required
1547
+ # auto_resume_enabled: false, # required
1548
+ # },
1549
+ # logging: {
1550
+ # disabled: {
1551
+ # },
1552
+ # cloud_watch: {
1553
+ # log_group: "CloudWatchLoggingLogGroupString",
1554
+ # log_stream: "CloudWatchLoggingLogStreamString",
1555
+ # },
1556
+ # },
1557
+ # run_hook_payload: "RunMicrovmRequestRunHookPayloadString",
1558
+ # maximum_duration_in_seconds: 1,
1559
+ # client_token: "RunMicrovmRequestClientTokenString",
1560
+ # })
1561
+ #
1562
+ # @example Response structure
1563
+ #
1564
+ # resp.microvm_id #=> String
1565
+ # resp.state #=> String, one of "PENDING", "RUNNING", "SUSPENDING", "SUSPENDED", "TERMINATING", "TERMINATED"
1566
+ # resp.endpoint #=> String
1567
+ # resp.image_arn #=> String
1568
+ # resp.image_version #=> String
1569
+ # resp.execution_role_arn #=> String
1570
+ # resp.idle_policy.max_idle_duration_seconds #=> Integer
1571
+ # resp.idle_policy.suspended_duration_seconds #=> Integer
1572
+ # resp.idle_policy.auto_resume_enabled #=> Boolean
1573
+ # resp.maximum_duration_in_seconds #=> Integer
1574
+ # resp.started_at #=> Time
1575
+ # resp.terminated_at #=> Time
1576
+ # resp.state_reason #=> String
1577
+ # resp.ingress_network_connectors #=> Array
1578
+ # resp.ingress_network_connectors[0] #=> String
1579
+ # resp.egress_network_connectors #=> Array
1580
+ # resp.egress_network_connectors[0] #=> String
1581
+ #
1582
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/RunMicrovm AWS API Documentation
1583
+ #
1584
+ # @overload run_microvm(params = {})
1585
+ # @param [Hash] params ({})
1586
+ def run_microvm(params = {}, options = {})
1587
+ req = build_request(:run_microvm, params)
1588
+ req.send_request(options)
1589
+ end
1590
+
1591
+ # Suspends a running MicroVM, preserving its full memory and disk state.
1592
+ # The MicroVM transitions through SUSPENDING to SUSPENDED. To restore,
1593
+ # call ResumeMicrovm or send traffic to the endpoint if
1594
+ # autoResumeEnabled is true.
1595
+ #
1596
+ # @option params [required, String] :microvm_identifier
1597
+ # The ID of the MicroVM to suspend.
1598
+ #
1599
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1600
+ #
1601
+ # @example Request syntax with placeholder values
1602
+ #
1603
+ # resp = client.suspend_microvm({
1604
+ # microvm_identifier: "MicrovmIdentifier", # required
1605
+ # })
1606
+ #
1607
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/SuspendMicrovm AWS API Documentation
1608
+ #
1609
+ # @overload suspend_microvm(params = {})
1610
+ # @param [Hash] params ({})
1611
+ def suspend_microvm(params = {}, options = {})
1612
+ req = build_request(:suspend_microvm, params)
1613
+ req.send_request(options)
1614
+ end
1615
+
1616
+ # Adds tags to a Lambda MicroVM resource.
1617
+ #
1618
+ # @option params [required, String] :resource
1619
+ # The ARN of the resource to tag.
1620
+ #
1621
+ # @option params [required, Hash<String,String>] :tags
1622
+ # The key-value pairs of tags to add to the resource.
1623
+ #
1624
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1625
+ #
1626
+ # @example Request syntax with placeholder values
1627
+ #
1628
+ # resp = client.tag_resource({
1629
+ # resource: "TaggableResource", # required
1630
+ # tags: { # required
1631
+ # "TagKey" => "TagValue",
1632
+ # },
1633
+ # })
1634
+ #
1635
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/TagResource AWS API Documentation
1636
+ #
1637
+ # @overload tag_resource(params = {})
1638
+ # @param [Hash] params ({})
1639
+ def tag_resource(params = {}, options = {})
1640
+ req = build_request(:tag_resource, params)
1641
+ req.send_request(options)
1642
+ end
1643
+
1644
+ # Terminates a MicroVM. This operation is idempotent; terminating a
1645
+ # MicroVM that has already been terminated succeeds without error.
1646
+ #
1647
+ # @option params [required, String] :microvm_identifier
1648
+ # The ID of the MicroVM to terminate.
1649
+ #
1650
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1651
+ #
1652
+ # @example Request syntax with placeholder values
1653
+ #
1654
+ # resp = client.terminate_microvm({
1655
+ # microvm_identifier: "MicrovmIdentifier", # required
1656
+ # })
1657
+ #
1658
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/TerminateMicrovm AWS API Documentation
1659
+ #
1660
+ # @overload terminate_microvm(params = {})
1661
+ # @param [Hash] params ({})
1662
+ def terminate_microvm(params = {}, options = {})
1663
+ req = build_request(:terminate_microvm, params)
1664
+ req.send_request(options)
1665
+ end
1666
+
1667
+ # Removes tags from a Lambda MicroVM resource.
1668
+ #
1669
+ # @option params [required, String] :resource
1670
+ # The ARN of the resource to remove tags from.
1671
+ #
1672
+ # @option params [required, Array<String>] :tag_keys
1673
+ # The list of tag keys to remove from the resource.
1674
+ #
1675
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1676
+ #
1677
+ # @example Request syntax with placeholder values
1678
+ #
1679
+ # resp = client.untag_resource({
1680
+ # resource: "TaggableResource", # required
1681
+ # tag_keys: ["TagKey"], # required
1682
+ # })
1683
+ #
1684
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/UntagResource AWS API Documentation
1685
+ #
1686
+ # @overload untag_resource(params = {})
1687
+ # @param [Hash] params ({})
1688
+ def untag_resource(params = {}, options = {})
1689
+ req = build_request(:untag_resource, params)
1690
+ req.send_request(options)
1691
+ end
1692
+
1693
+ # Updates the configuration of a MicroVM image and triggers a new
1694
+ # version build. This operation uses PUT semantics — all required fields
1695
+ # (codeArtifact, baseImageArn, buildRoleArn) must be provided with every
1696
+ # request.
1697
+ #
1698
+ # @option params [required, String] :base_image_arn
1699
+ # The ARN of the base MicroVM image.
1700
+ #
1701
+ # @option params [String] :base_image_version
1702
+ # The specific version of the base MicroVM image to use.
1703
+ #
1704
+ # @option params [required, String] :build_role_arn
1705
+ # The ARN of the IAM build role.
1706
+ #
1707
+ # @option params [String] :description
1708
+ # The description of the MicroVM image.
1709
+ #
1710
+ # @option params [required, Types::CodeArtifact] :code_artifact
1711
+ # The code artifact containing the application code and metadata for the
1712
+ # MicroVM image.
1713
+ #
1714
+ # @option params [Types::Logging] :logging
1715
+ # The logging configuration for build-time and runtime logs. Specify
1716
+ # \{"cloudWatch": \{"logGroup": "..."}} to stream logs to a custom
1717
+ # CloudWatch log group, or \{"disabled": \{}} to turn off logging.
1718
+ #
1719
+ # @option params [Array<String>] :egress_network_connectors
1720
+ # The list of egress network connectors available to the MicroVM at
1721
+ # runtime.
1722
+ #
1723
+ # @option params [Array<Types::CpuConfiguration>] :cpu_configurations
1724
+ # The list of supported CPU configurations for the MicroVM.
1725
+ #
1726
+ # @option params [Array<Types::Resources>] :resources
1727
+ # The resource requirements for the MicroVM.
1728
+ #
1729
+ # @option params [Array<String>] :additional_os_capabilities
1730
+ # Additional OS capabilities granted to the MicroVM runtime environment.
1731
+ #
1732
+ # @option params [Types::Hooks] :hooks
1733
+ # Lifecycle hook configuration for MicroVMs and MicroVM images.
1734
+ #
1735
+ # @option params [Hash<String,String>] :environment_variables
1736
+ # Environment variables set in the MicroVM runtime environment.
1737
+ #
1738
+ # @option params [required, String] :image_identifier
1739
+ # The unique identifier (ARN or ID) of the MicroVM image to update.
1740
+ #
1741
+ # @option params [String] :client_token
1742
+ # A unique, case-sensitive identifier you provide to ensure the
1743
+ # idempotency of the request.
1744
+ #
1745
+ # **A suitable default value is auto-generated.** You should normally
1746
+ # not need to pass this option.**
1747
+ #
1748
+ # @return [Types::UpdateMicrovmImageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1749
+ #
1750
+ # * {Types::UpdateMicrovmImageResponse#image_arn #image_arn} => String
1751
+ # * {Types::UpdateMicrovmImageResponse#name #name} => String
1752
+ # * {Types::UpdateMicrovmImageResponse#state #state} => String
1753
+ # * {Types::UpdateMicrovmImageResponse#latest_active_image_version #latest_active_image_version} => String
1754
+ # * {Types::UpdateMicrovmImageResponse#latest_failed_image_version #latest_failed_image_version} => String
1755
+ # * {Types::UpdateMicrovmImageResponse#created_at #created_at} => Time
1756
+ # * {Types::UpdateMicrovmImageResponse#base_image_arn #base_image_arn} => String
1757
+ # * {Types::UpdateMicrovmImageResponse#base_image_version #base_image_version} => String
1758
+ # * {Types::UpdateMicrovmImageResponse#build_role_arn #build_role_arn} => String
1759
+ # * {Types::UpdateMicrovmImageResponse#description #description} => String
1760
+ # * {Types::UpdateMicrovmImageResponse#code_artifact #code_artifact} => Types::CodeArtifact
1761
+ # * {Types::UpdateMicrovmImageResponse#logging #logging} => Types::Logging
1762
+ # * {Types::UpdateMicrovmImageResponse#egress_network_connectors #egress_network_connectors} => Array&lt;String&gt;
1763
+ # * {Types::UpdateMicrovmImageResponse#cpu_configurations #cpu_configurations} => Array&lt;Types::CpuConfiguration&gt;
1764
+ # * {Types::UpdateMicrovmImageResponse#resources #resources} => Array&lt;Types::Resources&gt;
1765
+ # * {Types::UpdateMicrovmImageResponse#additional_os_capabilities #additional_os_capabilities} => Array&lt;String&gt;
1766
+ # * {Types::UpdateMicrovmImageResponse#hooks #hooks} => Types::Hooks
1767
+ # * {Types::UpdateMicrovmImageResponse#environment_variables #environment_variables} => Hash&lt;String,String&gt;
1768
+ # * {Types::UpdateMicrovmImageResponse#updated_at #updated_at} => Time
1769
+ # * {Types::UpdateMicrovmImageResponse#image_version #image_version} => String
1770
+ #
1771
+ # @example Request syntax with placeholder values
1772
+ #
1773
+ # resp = client.update_microvm_image({
1774
+ # base_image_arn: "NonBlankString", # required
1775
+ # base_image_version: "Version",
1776
+ # build_role_arn: "RoleArn", # required
1777
+ # description: "String",
1778
+ # code_artifact: { # required
1779
+ # uri: "NonBlankString",
1780
+ # },
1781
+ # logging: {
1782
+ # disabled: {
1783
+ # },
1784
+ # cloud_watch: {
1785
+ # log_group: "CloudWatchLoggingLogGroupString",
1786
+ # log_stream: "CloudWatchLoggingLogStreamString",
1787
+ # },
1788
+ # },
1789
+ # egress_network_connectors: ["NetworkConnector"],
1790
+ # cpu_configurations: [
1791
+ # {
1792
+ # architecture: "ARM_64", # required, accepts ARM_64
1793
+ # },
1794
+ # ],
1795
+ # resources: [
1796
+ # {
1797
+ # minimum_memory_in_mi_b: 1, # required
1798
+ # },
1799
+ # ],
1800
+ # additional_os_capabilities: ["ALL"], # accepts ALL
1801
+ # hooks: {
1802
+ # port: 1,
1803
+ # microvm_hooks: {
1804
+ # run: "DISABLED", # accepts DISABLED, ENABLED
1805
+ # run_timeout_in_seconds: 1,
1806
+ # resume: "DISABLED", # accepts DISABLED, ENABLED
1807
+ # resume_timeout_in_seconds: 1,
1808
+ # suspend: "DISABLED", # accepts DISABLED, ENABLED
1809
+ # suspend_timeout_in_seconds: 1,
1810
+ # terminate: "DISABLED", # accepts DISABLED, ENABLED
1811
+ # terminate_timeout_in_seconds: 1,
1812
+ # },
1813
+ # microvm_image_hooks: {
1814
+ # ready: "DISABLED", # accepts DISABLED, ENABLED
1815
+ # ready_timeout_in_seconds: 1,
1816
+ # validate: "DISABLED", # accepts DISABLED, ENABLED
1817
+ # validate_timeout_in_seconds: 1,
1818
+ # },
1819
+ # },
1820
+ # environment_variables: {
1821
+ # "EnvironmentVariableKey" => "EnvironmentVariableValue",
1822
+ # },
1823
+ # image_identifier: "MicrovmImageIdentifier", # required
1824
+ # client_token: "UpdateMicrovmImageRequestClientTokenString",
1825
+ # })
1826
+ #
1827
+ # @example Response structure
1828
+ #
1829
+ # resp.image_arn #=> String
1830
+ # resp.name #=> String
1831
+ # resp.state #=> String, one of "CREATING", "CREATED", "CREATE_FAILED", "UPDATING", "UPDATED", "UPDATE_FAILED", "DELETING", "DELETE_FAILED", "DELETED"
1832
+ # resp.latest_active_image_version #=> String
1833
+ # resp.latest_failed_image_version #=> String
1834
+ # resp.created_at #=> Time
1835
+ # resp.base_image_arn #=> String
1836
+ # resp.base_image_version #=> String
1837
+ # resp.build_role_arn #=> String
1838
+ # resp.description #=> String
1839
+ # resp.code_artifact.uri #=> String
1840
+ # resp.logging.cloud_watch.log_group #=> String
1841
+ # resp.logging.cloud_watch.log_stream #=> String
1842
+ # resp.egress_network_connectors #=> Array
1843
+ # resp.egress_network_connectors[0] #=> String
1844
+ # resp.cpu_configurations #=> Array
1845
+ # resp.cpu_configurations[0].architecture #=> String, one of "ARM_64"
1846
+ # resp.resources #=> Array
1847
+ # resp.resources[0].minimum_memory_in_mi_b #=> Integer
1848
+ # resp.additional_os_capabilities #=> Array
1849
+ # resp.additional_os_capabilities[0] #=> String, one of "ALL"
1850
+ # resp.hooks.port #=> Integer
1851
+ # resp.hooks.microvm_hooks.run #=> String, one of "DISABLED", "ENABLED"
1852
+ # resp.hooks.microvm_hooks.run_timeout_in_seconds #=> Integer
1853
+ # resp.hooks.microvm_hooks.resume #=> String, one of "DISABLED", "ENABLED"
1854
+ # resp.hooks.microvm_hooks.resume_timeout_in_seconds #=> Integer
1855
+ # resp.hooks.microvm_hooks.suspend #=> String, one of "DISABLED", "ENABLED"
1856
+ # resp.hooks.microvm_hooks.suspend_timeout_in_seconds #=> Integer
1857
+ # resp.hooks.microvm_hooks.terminate #=> String, one of "DISABLED", "ENABLED"
1858
+ # resp.hooks.microvm_hooks.terminate_timeout_in_seconds #=> Integer
1859
+ # resp.hooks.microvm_image_hooks.ready #=> String, one of "DISABLED", "ENABLED"
1860
+ # resp.hooks.microvm_image_hooks.ready_timeout_in_seconds #=> Integer
1861
+ # resp.hooks.microvm_image_hooks.validate #=> String, one of "DISABLED", "ENABLED"
1862
+ # resp.hooks.microvm_image_hooks.validate_timeout_in_seconds #=> Integer
1863
+ # resp.environment_variables #=> Hash
1864
+ # resp.environment_variables["EnvironmentVariableKey"] #=> String
1865
+ # resp.updated_at #=> Time
1866
+ # resp.image_version #=> String
1867
+ #
1868
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/UpdateMicrovmImage AWS API Documentation
1869
+ #
1870
+ # @overload update_microvm_image(params = {})
1871
+ # @param [Hash] params ({})
1872
+ def update_microvm_image(params = {}, options = {})
1873
+ req = build_request(:update_microvm_image, params)
1874
+ req.send_request(options)
1875
+ end
1876
+
1877
+ # Updates the status of a specific MicroVM image version.
1878
+ #
1879
+ # @option params [required, String] :image_identifier
1880
+ # The unique identifier (ARN or ID) of the MicroVM image.
1881
+ #
1882
+ # @option params [required, String] :image_version
1883
+ # The version of the MicroVM image to update.
1884
+ #
1885
+ # @option params [required, String] :status
1886
+ # The new status to set for the MicroVM image version.
1887
+ #
1888
+ # @return [Types::UpdateMicrovmImageVersionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1889
+ #
1890
+ # * {Types::UpdateMicrovmImageVersionResponse#base_image_arn #base_image_arn} => String
1891
+ # * {Types::UpdateMicrovmImageVersionResponse#base_image_version #base_image_version} => String
1892
+ # * {Types::UpdateMicrovmImageVersionResponse#build_role_arn #build_role_arn} => String
1893
+ # * {Types::UpdateMicrovmImageVersionResponse#description #description} => String
1894
+ # * {Types::UpdateMicrovmImageVersionResponse#code_artifact #code_artifact} => Types::CodeArtifact
1895
+ # * {Types::UpdateMicrovmImageVersionResponse#logging #logging} => Types::Logging
1896
+ # * {Types::UpdateMicrovmImageVersionResponse#egress_network_connectors #egress_network_connectors} => Array&lt;String&gt;
1897
+ # * {Types::UpdateMicrovmImageVersionResponse#cpu_configurations #cpu_configurations} => Array&lt;Types::CpuConfiguration&gt;
1898
+ # * {Types::UpdateMicrovmImageVersionResponse#resources #resources} => Array&lt;Types::Resources&gt;
1899
+ # * {Types::UpdateMicrovmImageVersionResponse#additional_os_capabilities #additional_os_capabilities} => Array&lt;String&gt;
1900
+ # * {Types::UpdateMicrovmImageVersionResponse#hooks #hooks} => Types::Hooks
1901
+ # * {Types::UpdateMicrovmImageVersionResponse#environment_variables #environment_variables} => Hash&lt;String,String&gt;
1902
+ # * {Types::UpdateMicrovmImageVersionResponse#image_arn #image_arn} => String
1903
+ # * {Types::UpdateMicrovmImageVersionResponse#image_version #image_version} => String
1904
+ # * {Types::UpdateMicrovmImageVersionResponse#state #state} => String
1905
+ # * {Types::UpdateMicrovmImageVersionResponse#status #status} => String
1906
+ # * {Types::UpdateMicrovmImageVersionResponse#created_at #created_at} => Time
1907
+ # * {Types::UpdateMicrovmImageVersionResponse#updated_at #updated_at} => Time
1908
+ # * {Types::UpdateMicrovmImageVersionResponse#state_reason #state_reason} => String
1909
+ # * {Types::UpdateMicrovmImageVersionResponse#tags #tags} => Hash&lt;String,String&gt;
1910
+ #
1911
+ # @example Request syntax with placeholder values
1912
+ #
1913
+ # resp = client.update_microvm_image_version({
1914
+ # image_identifier: "MicrovmImageIdentifier", # required
1915
+ # image_version: "NonBlankString", # required
1916
+ # status: "ACTIVE", # required, accepts ACTIVE, INACTIVE
1917
+ # })
1918
+ #
1919
+ # @example Response structure
1920
+ #
1921
+ # resp.base_image_arn #=> String
1922
+ # resp.base_image_version #=> String
1923
+ # resp.build_role_arn #=> String
1924
+ # resp.description #=> String
1925
+ # resp.code_artifact.uri #=> String
1926
+ # resp.logging.cloud_watch.log_group #=> String
1927
+ # resp.logging.cloud_watch.log_stream #=> String
1928
+ # resp.egress_network_connectors #=> Array
1929
+ # resp.egress_network_connectors[0] #=> String
1930
+ # resp.cpu_configurations #=> Array
1931
+ # resp.cpu_configurations[0].architecture #=> String, one of "ARM_64"
1932
+ # resp.resources #=> Array
1933
+ # resp.resources[0].minimum_memory_in_mi_b #=> Integer
1934
+ # resp.additional_os_capabilities #=> Array
1935
+ # resp.additional_os_capabilities[0] #=> String, one of "ALL"
1936
+ # resp.hooks.port #=> Integer
1937
+ # resp.hooks.microvm_hooks.run #=> String, one of "DISABLED", "ENABLED"
1938
+ # resp.hooks.microvm_hooks.run_timeout_in_seconds #=> Integer
1939
+ # resp.hooks.microvm_hooks.resume #=> String, one of "DISABLED", "ENABLED"
1940
+ # resp.hooks.microvm_hooks.resume_timeout_in_seconds #=> Integer
1941
+ # resp.hooks.microvm_hooks.suspend #=> String, one of "DISABLED", "ENABLED"
1942
+ # resp.hooks.microvm_hooks.suspend_timeout_in_seconds #=> Integer
1943
+ # resp.hooks.microvm_hooks.terminate #=> String, one of "DISABLED", "ENABLED"
1944
+ # resp.hooks.microvm_hooks.terminate_timeout_in_seconds #=> Integer
1945
+ # resp.hooks.microvm_image_hooks.ready #=> String, one of "DISABLED", "ENABLED"
1946
+ # resp.hooks.microvm_image_hooks.ready_timeout_in_seconds #=> Integer
1947
+ # resp.hooks.microvm_image_hooks.validate #=> String, one of "DISABLED", "ENABLED"
1948
+ # resp.hooks.microvm_image_hooks.validate_timeout_in_seconds #=> Integer
1949
+ # resp.environment_variables #=> Hash
1950
+ # resp.environment_variables["EnvironmentVariableKey"] #=> String
1951
+ # resp.image_arn #=> String
1952
+ # resp.image_version #=> String
1953
+ # resp.state #=> String, one of "PENDING", "IN_PROGRESS", "SUCCESSFUL", "FAILED", "DELETING", "DELETED", "DELETE_FAILED"
1954
+ # resp.status #=> String, one of "ACTIVE", "INACTIVE"
1955
+ # resp.created_at #=> Time
1956
+ # resp.updated_at #=> Time
1957
+ # resp.state_reason #=> String
1958
+ # resp.tags #=> Hash
1959
+ # resp.tags["TagKey"] #=> String
1960
+ #
1961
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lambda-microvms-2025-09-09/UpdateMicrovmImageVersion AWS API Documentation
1962
+ #
1963
+ # @overload update_microvm_image_version(params = {})
1964
+ # @param [Hash] params ({})
1965
+ def update_microvm_image_version(params = {}, options = {})
1966
+ req = build_request(:update_microvm_image_version, params)
1967
+ req.send_request(options)
1968
+ end
1969
+
1970
+ # @!endgroup
1971
+
1972
+ # @param params ({})
1973
+ # @api private
1974
+ def build_request(operation_name, params = {})
1975
+ handlers = @handlers.for(operation_name)
1976
+ tracer = config.telemetry_provider.tracer_provider.tracer(
1977
+ Aws::Telemetry.module_to_tracer_name('Aws::LambdaMicrovms')
1978
+ )
1979
+ context = Seahorse::Client::RequestContext.new(
1980
+ operation_name: operation_name,
1981
+ operation: config.api.operation(operation_name),
1982
+ client: self,
1983
+ params: params,
1984
+ config: config,
1985
+ tracer: tracer
1986
+ )
1987
+ context[:gem_name] = 'aws-sdk-lambdamicrovms'
1988
+ context[:gem_version] = '1.0.0'
1989
+ Seahorse::Client::Request.new(handlers, context)
1990
+ end
1991
+
1992
+ # @api private
1993
+ # @deprecated
1994
+ def waiter_names
1995
+ []
1996
+ end
1997
+
1998
+ class << self
1999
+
2000
+ # @api private
2001
+ attr_reader :identifier
2002
+
2003
+ # @api private
2004
+ def errors_module
2005
+ Errors
2006
+ end
2007
+
2008
+ end
2009
+ end
2010
+ end