aws-sdk-gameliftstreams 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,2617 @@
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::GameLiftStreams
40
+ # An API client for GameLiftStreams. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::GameLiftStreams::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 = :gameliftstreams
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::GameLiftStreams::Plugins::Endpoints)
89
+
90
+ # @overload initialize(options)
91
+ # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
97
+ # @option options [required, Aws::CredentialProvider] :credentials
98
+ # Your AWS credentials. This can be an instance of any one of the
99
+ # following classes:
100
+ #
101
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
102
+ # credentials.
103
+ #
104
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
105
+ # shared file, such as `~/.aws/config`.
106
+ #
107
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ #
109
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
110
+ # assume a role after providing credentials via the web.
111
+ #
112
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
113
+ # access token generated from `aws login`.
114
+ #
115
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
116
+ # process that outputs to stdout.
117
+ #
118
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
119
+ # from an EC2 IMDS on an EC2 instance.
120
+ #
121
+ # * `Aws::ECSCredentials` - Used for loading credentials from
122
+ # instances running in ECS.
123
+ #
124
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
125
+ # from the Cognito Identity service.
126
+ #
127
+ # When `:credentials` are not configured directly, the following
128
+ # locations will be searched for credentials:
129
+ #
130
+ # * `Aws.config[:credentials]`
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
135
+ # * `~/.aws/credentials`
136
+ # * `~/.aws/config`
137
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
138
+ # are very aggressive. Construct and pass an instance of
139
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
+ # enable retries and extended timeouts. Instance profile credential
141
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
+ # to true.
143
+ #
144
+ # @option options [required, String] :region
145
+ # The AWS region to connect to. The configured `:region` is
146
+ # used to determine the service `:endpoint`. When not passed,
147
+ # a default `:region` is searched for in the following locations:
148
+ #
149
+ # * `Aws.config[:region]`
150
+ # * `ENV['AWS_REGION']`
151
+ # * `ENV['AMAZON_REGION']`
152
+ # * `ENV['AWS_DEFAULT_REGION']`
153
+ # * `~/.aws/credentials`
154
+ # * `~/.aws/config`
155
+ #
156
+ # @option options [String] :access_key_id
157
+ #
158
+ # @option options [String] :account_id
159
+ #
160
+ # @option options [Boolean] :active_endpoint_cache (false)
161
+ # When set to `true`, a thread polling for endpoints will be running in
162
+ # the background every 60 secs (default). Defaults to `false`.
163
+ #
164
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
165
+ # Used only in `adaptive` retry mode. When true, the request will sleep
166
+ # until there is sufficent client side capacity to retry the request.
167
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
168
+ # not retry instead of sleeping.
169
+ #
170
+ # @option options [Boolean] :client_side_monitoring (false)
171
+ # When `true`, client-side metrics will be collected for all API requests from
172
+ # this client.
173
+ #
174
+ # @option options [String] :client_side_monitoring_client_id ("")
175
+ # Allows you to provide an identifier for this client which will be attached to
176
+ # all generated client side metrics. Defaults to an empty string.
177
+ #
178
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
179
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
180
+ # side monitoring agent is running on, where client metrics will be published via UDP.
181
+ #
182
+ # @option options [Integer] :client_side_monitoring_port (31000)
183
+ # Required for publishing client metrics. The port that the client side monitoring
184
+ # agent is running on, where client metrics will be published via UDP.
185
+ #
186
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
187
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
188
+ # will use the Client Side Monitoring Agent Publisher.
189
+ #
190
+ # @option options [Boolean] :convert_params (true)
191
+ # When `true`, an attempt is made to coerce request parameters into
192
+ # the required types.
193
+ #
194
+ # @option options [Boolean] :correct_clock_skew (true)
195
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
196
+ # a clock skew correction and retry requests with skewed client clocks.
197
+ #
198
+ # @option options [String] :defaults_mode ("legacy")
199
+ # See {Aws::DefaultsModeConfiguration} for a list of the
200
+ # accepted modes and the configuration defaults that are included.
201
+ #
202
+ # @option options [Boolean] :disable_host_prefix_injection (false)
203
+ # Set to true to disable SDK automatically adding host prefix
204
+ # to default service endpoint when available.
205
+ #
206
+ # @option options [Boolean] :disable_request_compression (false)
207
+ # When set to 'true' the request body will not be compressed
208
+ # for supported operations.
209
+ #
210
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
211
+ # Normally you should not configure the `:endpoint` option
212
+ # directly. This is normally constructed from the `:region`
213
+ # option. Configuring `:endpoint` is normally reserved for
214
+ # connecting to test or custom endpoints. The endpoint should
215
+ # be a URI formatted like:
216
+ #
217
+ # 'http://example.com'
218
+ # 'https://example.com'
219
+ # 'http://example.com:123'
220
+ #
221
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
222
+ # Used for the maximum size limit of the LRU cache storing endpoints data
223
+ # for endpoint discovery enabled operations. Defaults to 1000.
224
+ #
225
+ # @option options [Integer] :endpoint_cache_max_threads (10)
226
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
227
+ #
228
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
229
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
230
+ # Use this option to config the time interval in seconds for making
231
+ # requests fetching endpoints information. Defaults to 60 sec.
232
+ #
233
+ # @option options [Boolean] :endpoint_discovery (false)
234
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
235
+ #
236
+ # @option options [Boolean] :ignore_configured_endpoint_urls
237
+ # Setting to true disables use of endpoint URLs provided via environment
238
+ # variables and the shared configuration file.
239
+ #
240
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
241
+ # The log formatter.
242
+ #
243
+ # @option options [Symbol] :log_level (:info)
244
+ # The log level to send messages to the `:logger` at.
245
+ #
246
+ # @option options [Logger] :logger
247
+ # The Logger instance to send log messages to. If this option
248
+ # is not set, logging will be disabled.
249
+ #
250
+ # @option options [Integer] :max_attempts (3)
251
+ # An integer representing the maximum number attempts that will be made for
252
+ # a single request, including the initial attempt. For example,
253
+ # setting this value to 5 will result in a request being retried up to
254
+ # 4 times. Used in `standard` and `adaptive` retry modes.
255
+ #
256
+ # @option options [String] :profile ("default")
257
+ # Used when loading credentials from the shared credentials file
258
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
259
+ #
260
+ # @option options [String] :request_checksum_calculation ("when_supported")
261
+ # Determines when a checksum will be calculated for request payloads. Values are:
262
+ #
263
+ # * `when_supported` - (default) When set, a checksum will be
264
+ # calculated for all request payloads of operations modeled with the
265
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
266
+ # `requestAlgorithmMember` is modeled.
267
+ # * `when_required` - When set, a checksum will only be calculated for
268
+ # request payloads of operations modeled with the `httpChecksum` trait where
269
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
270
+ # is modeled and supplied.
271
+ #
272
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
273
+ # The minimum size in bytes that triggers compression for request
274
+ # bodies. The value must be non-negative integer value between 0
275
+ # and 10485780 bytes inclusive.
276
+ #
277
+ # @option options [String] :response_checksum_validation ("when_supported")
278
+ # Determines when checksum validation will be performed on response payloads. Values are:
279
+ #
280
+ # * `when_supported` - (default) When set, checksum validation is performed on all
281
+ # response payloads of operations modeled with the `httpChecksum` trait where
282
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
283
+ # are supported.
284
+ # * `when_required` - When set, checksum validation is not performed on
285
+ # response payloads of operations unless the checksum algorithm is supported and
286
+ # the `requestValidationModeMember` member is set to `ENABLED`.
287
+ #
288
+ # @option options [Proc] :retry_backoff
289
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
290
+ # This option is only used in the `legacy` retry mode.
291
+ #
292
+ # @option options [Float] :retry_base_delay (0.3)
293
+ # The base delay in seconds used by the default backoff function. This option
294
+ # is only used in the `legacy` retry mode.
295
+ #
296
+ # @option options [Symbol] :retry_jitter (:none)
297
+ # A delay randomiser function used by the default backoff function.
298
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
299
+ # otherwise a Proc that takes and returns a number. This option is only used
300
+ # in the `legacy` retry mode.
301
+ #
302
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
303
+ #
304
+ # @option options [Integer] :retry_limit (3)
305
+ # The maximum number of times to retry failed requests. Only
306
+ # ~ 500 level server errors and certain ~ 400 level client errors
307
+ # are retried. Generally, these are throttling errors, data
308
+ # checksum errors, networking errors, timeout errors, auth errors,
309
+ # endpoint discovery, and errors from expired credentials.
310
+ # This option is only used in the `legacy` retry mode.
311
+ #
312
+ # @option options [Integer] :retry_max_delay (0)
313
+ # The maximum number of seconds to delay between retries (0 for no limit)
314
+ # used by the default backoff function. This option is only used in the
315
+ # `legacy` retry mode.
316
+ #
317
+ # @option options [String] :retry_mode ("legacy")
318
+ # Specifies which retry algorithm to use. Values are:
319
+ #
320
+ # * `legacy` - The pre-existing retry behavior. This is default value if
321
+ # no retry mode is provided.
322
+ #
323
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
324
+ # This includes support for retry quotas, which limit the number of
325
+ # unsuccessful retries a client can make.
326
+ #
327
+ # * `adaptive` - An experimental retry mode that includes all the
328
+ # functionality of `standard` mode along with automatic client side
329
+ # throttling. This is a provisional mode that may change behavior
330
+ # in the future.
331
+ #
332
+ # @option options [String] :sdk_ua_app_id
333
+ # A unique and opaque application ID that is appended to the
334
+ # User-Agent header as app/sdk_ua_app_id. It should have a
335
+ # maximum length of 50. This variable is sourced from environment
336
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
337
+ #
338
+ # @option options [String] :secret_access_key
339
+ #
340
+ # @option options [String] :session_token
341
+ #
342
+ # @option options [Array] :sigv4a_signing_region_set
343
+ # A list of regions that should be signed with SigV4a signing. When
344
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
345
+ # in the following locations:
346
+ #
347
+ # * `Aws.config[:sigv4a_signing_region_set]`
348
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
349
+ # * `~/.aws/config`
350
+ #
351
+ # @option options [Boolean] :stub_responses (false)
352
+ # Causes the client to return stubbed responses. By default
353
+ # fake responses are generated and returned. You can specify
354
+ # the response data to return or errors to raise by calling
355
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
356
+ #
357
+ # ** Please note ** When response stubbing is enabled, no HTTP
358
+ # requests are made, and retries are disabled.
359
+ #
360
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
361
+ # Allows you to provide a telemetry provider, which is used to
362
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
363
+ # will not record or emit any telemetry data. The SDK supports the
364
+ # following telemetry providers:
365
+ #
366
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
367
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
368
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
369
+ #
370
+ # @option options [Aws::TokenProvider] :token_provider
371
+ # A Bearer Token Provider. This can be an instance of any one of the
372
+ # following classes:
373
+ #
374
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
375
+ # tokens.
376
+ #
377
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
378
+ # access token generated from `aws login`.
379
+ #
380
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
381
+ # will be used to search for tokens configured for your profile in shared configuration files.
382
+ #
383
+ # @option options [Boolean] :use_dualstack_endpoint
384
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
385
+ # will be used if available.
386
+ #
387
+ # @option options [Boolean] :use_fips_endpoint
388
+ # When set to `true`, fips compatible endpoints will be used if available.
389
+ # When a `fips` region is used, the region is normalized and this config
390
+ # is set to `true`.
391
+ #
392
+ # @option options [Boolean] :validate_params (true)
393
+ # When `true`, request parameters are validated before
394
+ # sending the request.
395
+ #
396
+ # @option options [Aws::GameLiftStreams::EndpointProvider] :endpoint_provider
397
+ # The endpoint provider used to resolve endpoints. Any object that responds to
398
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
399
+ # `Aws::GameLiftStreams::EndpointParameters`.
400
+ #
401
+ # @option options [Float] :http_continue_timeout (1)
402
+ # The number of seconds to wait for a 100-continue response before sending the
403
+ # request body. This option has no effect unless the request has "Expect"
404
+ # header set to "100-continue". Defaults to `nil` which disables this
405
+ # behaviour. This value can safely be set per request on the session.
406
+ #
407
+ # @option options [Float] :http_idle_timeout (5)
408
+ # The number of seconds a connection is allowed to sit idle before it
409
+ # is considered stale. Stale connections are closed and removed from the
410
+ # pool before making a request.
411
+ #
412
+ # @option options [Float] :http_open_timeout (15)
413
+ # The default number of seconds to wait for response data.
414
+ # This value can safely be set per-request on the session.
415
+ #
416
+ # @option options [URI::HTTP,String] :http_proxy
417
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
418
+ #
419
+ # @option options [Float] :http_read_timeout (60)
420
+ # The default number of seconds to wait for response data.
421
+ # This value can safely be set per-request on the session.
422
+ #
423
+ # @option options [Boolean] :http_wire_trace (false)
424
+ # When `true`, HTTP debug output will be sent to the `:logger`.
425
+ #
426
+ # @option options [Proc] :on_chunk_received
427
+ # When a Proc object is provided, it will be used as callback when each chunk
428
+ # of the response body is received. It provides three arguments: the chunk,
429
+ # the number of bytes received, and the total number of
430
+ # bytes in the response (or nil if the server did not send a `content-length`).
431
+ #
432
+ # @option options [Proc] :on_chunk_sent
433
+ # When a Proc object is provided, it will be used as callback when each chunk
434
+ # of the request body is sent. It provides three arguments: the chunk,
435
+ # the number of bytes read from the body, and the total number of
436
+ # bytes in the body.
437
+ #
438
+ # @option options [Boolean] :raise_response_errors (true)
439
+ # When `true`, response errors are raised.
440
+ #
441
+ # @option options [String] :ssl_ca_bundle
442
+ # Full path to the SSL certificate authority bundle file that should be used when
443
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
444
+ # `:ssl_ca_directory` the the system default will be used if available.
445
+ #
446
+ # @option options [String] :ssl_ca_directory
447
+ # Full path of the directory that contains the unbundled SSL certificate
448
+ # authority files for verifying peer certificates. If you do
449
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
450
+ # default will be used if available.
451
+ #
452
+ # @option options [String] :ssl_ca_store
453
+ # Sets the X509::Store to verify peer certificate.
454
+ #
455
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
456
+ # Sets a client certificate when creating http connections.
457
+ #
458
+ # @option options [OpenSSL::PKey] :ssl_key
459
+ # Sets a client key when creating http connections.
460
+ #
461
+ # @option options [Float] :ssl_timeout
462
+ # Sets the SSL timeout in seconds
463
+ #
464
+ # @option options [Boolean] :ssl_verify_peer (true)
465
+ # When `true`, SSL peer certificates are verified when establishing a connection.
466
+ #
467
+ def initialize(*args)
468
+ super
469
+ end
470
+
471
+ # @!group API Operations
472
+
473
+ # Add locations that can host stream sessions. You configure locations
474
+ # and their corresponding capacity for each stream group. Creating a
475
+ # stream group in a location that's nearest to your end users can help
476
+ # minimize latency and improve quality.
477
+ #
478
+ # This operation provisions stream capacity at the specified locations.
479
+ # By default, all locations have 1 or 2 capacity, depending on the
480
+ # stream class option: 2 for 'High' and 1 for 'Ultra' and
481
+ # 'Win2022'. This operation also copies the content files of all
482
+ # associated applications to an internal S3 bucket at each location.
483
+ # This allows Amazon GameLift Streams to host performant stream
484
+ # sessions.
485
+ #
486
+ # @option params [required, String] :identifier
487
+ # A stream group to add the specified locations to.
488
+ #
489
+ # This value is a Amazon Resource Name (ARN) that uniquely identifies
490
+ # the stream group resource. Format example: `1AB2C3De4`.
491
+ #
492
+ # @option params [required, Array<Types::LocationConfiguration>] :location_configurations
493
+ # A set of one or more locations and the streaming capacity for each
494
+ # location.
495
+ #
496
+ # @return [Types::AddStreamGroupLocationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
497
+ #
498
+ # * {Types::AddStreamGroupLocationsOutput#identifier #identifier} => String
499
+ # * {Types::AddStreamGroupLocationsOutput#locations #locations} => Array&lt;Types::LocationState&gt;
500
+ #
501
+ # @example Request syntax with placeholder values
502
+ #
503
+ # resp = client.add_stream_group_locations({
504
+ # identifier: "Identifier", # required
505
+ # location_configurations: [ # required
506
+ # {
507
+ # always_on_capacity: 1,
508
+ # location_name: "LocationName", # required
509
+ # on_demand_capacity: 1,
510
+ # },
511
+ # ],
512
+ # })
513
+ #
514
+ # @example Response structure
515
+ #
516
+ # resp.identifier #=> String
517
+ # resp.locations #=> Array
518
+ # resp.locations[0].allocated_capacity #=> Integer
519
+ # resp.locations[0].always_on_capacity #=> Integer
520
+ # resp.locations[0].idle_capacity #=> Integer
521
+ # resp.locations[0].location_name #=> String
522
+ # resp.locations[0].on_demand_capacity #=> Integer
523
+ # resp.locations[0].requested_capacity #=> Integer
524
+ # resp.locations[0].status #=> String, one of "ACTIVATING", "ACTIVE", "ERROR", "REMOVING"
525
+ #
526
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/AddStreamGroupLocations AWS API Documentation
527
+ #
528
+ # @overload add_stream_group_locations(params = {})
529
+ # @param [Hash] params ({})
530
+ def add_stream_group_locations(params = {}, options = {})
531
+ req = build_request(:add_stream_group_locations, params)
532
+ req.send_request(options)
533
+ end
534
+
535
+ # When you associate, or link, an application with a stream group, then
536
+ # Amazon GameLift Streams can launch the application using the stream
537
+ # group's allocated compute resources. The stream group must be in
538
+ # `ACTIVE` status. You can reverse this action by using
539
+ # DisassociateApplications.
540
+ #
541
+ # @option params [required, Array<String>] :application_identifiers
542
+ # A set of applications to associate with the stream group.
543
+ #
544
+ # This value is a set of either [Amazon Resource Names (ARN)][1] or IDs
545
+ # that uniquely identify application resources. Format example:
546
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:application/9ZY8X7Wv6`
547
+ # or ID-`9ZY8X7Wv6`.
548
+ #
549
+ #
550
+ #
551
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
552
+ #
553
+ # @option params [required, String] :identifier
554
+ # A stream group to associate to the applications.
555
+ #
556
+ # This value is a [Amazon Resource Name (ARN)][1] or ID that uniquely
557
+ # identifies the stream group resource. Format example:
558
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
559
+ # or ID-`1AB2C3De4`.
560
+ #
561
+ #
562
+ #
563
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
564
+ #
565
+ # @return [Types::AssociateApplicationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
566
+ #
567
+ # * {Types::AssociateApplicationsOutput#application_arns #application_arns} => Array&lt;String&gt;
568
+ # * {Types::AssociateApplicationsOutput#arn #arn} => String
569
+ #
570
+ # @example Request syntax with placeholder values
571
+ #
572
+ # resp = client.associate_applications({
573
+ # application_identifiers: ["Identifier"], # required
574
+ # identifier: "Identifier", # required
575
+ # })
576
+ #
577
+ # @example Response structure
578
+ #
579
+ # resp.application_arns #=> Array
580
+ # resp.application_arns[0] #=> String
581
+ # resp.arn #=> String
582
+ #
583
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/AssociateApplications AWS API Documentation
584
+ #
585
+ # @overload associate_applications(params = {})
586
+ # @param [Hash] params ({})
587
+ def associate_applications(params = {}, options = {})
588
+ req = build_request(:associate_applications, params)
589
+ req.send_request(options)
590
+ end
591
+
592
+ # Creates an application resource in Amazon GameLift Streams, which
593
+ # specifies the application content you want to stream, such as a game
594
+ # build or other software, and configures the settings to run it.
595
+ #
596
+ # Before you create an application, upload your application content
597
+ # files to an Amazon Simple Storage Service (Amazon S3) bucket. For more
598
+ # information, see **Getting Started** in the Amazon GameLift Streams
599
+ # Developer Guide.
600
+ #
601
+ # Make sure that your files in the Amazon S3 bucket are the correct
602
+ # version you want to use. As soon as you create a Amazon GameLift
603
+ # Streams application, you cannot change the files at a later time.
604
+ #
605
+ # If the request is successful, Amazon GameLift Streams begins to create
606
+ # an application and sets the status to `INITIALIZED`. When an
607
+ # application reaches `READY` status, you can use the application to set
608
+ # up stream groups and start streams. To track application status, call
609
+ # GetApplication.
610
+ #
611
+ # @option params [String] :application_log_output_uri
612
+ # An Amazon S3 URI to a bucket where you would like Amazon GameLift
613
+ # Streams to save application logs. Use the following format for the
614
+ # URI: `s3://[bucket name]/[prefix]`. Required if you specify one or
615
+ # more `LogPaths`.
616
+ #
617
+ # <note markdown="1"> The log bucket must have permissions that give Amazon GameLift Streams
618
+ # access to write the log files. For more information, see **Getting
619
+ # Started** in the Amazon GameLift Streams Developer Guide.
620
+ #
621
+ # </note>
622
+ #
623
+ # @option params [Array<String>] :application_log_paths
624
+ # Locations of log files that your content generates during a stream
625
+ # session. Enter path values that are relative to the
626
+ # `ApplicationSourceUri` location. You can specify up to 10 log
627
+ # locations. Amazon GameLift Streams uploads designated log files to the
628
+ # Amazon S3 bucket that you specify in `ApplicationLogOutputUri` at the
629
+ # end of a stream session. To retrieve stored log files, call
630
+ # GetStreamSession and get the `LogFileLocationUri`.
631
+ #
632
+ # @option params [required, String] :application_source_uri
633
+ # The location of the content that you want to stream. Enter the URI of
634
+ # an Amazon S3 location (bucket name and prefixes) that contains your
635
+ # content. Use the following format for the URI: `s3://[bucket
636
+ # name]/[prefix]`. The location can have a multi-level prefix structure,
637
+ # but it must include all the files needed to run the content. Amazon
638
+ # GameLift Streams copies everything under the specified location.
639
+ #
640
+ # This value is immutable. To designate a different content location,
641
+ # create a new application.
642
+ #
643
+ # <note markdown="1"> The S3 bucket and the Amazon GameLift Streams application must be in
644
+ # the same Amazon Web Services Region.
645
+ #
646
+ # </note>
647
+ #
648
+ # @option params [String] :client_token
649
+ # A unique identifier that represents a client request. The request is
650
+ # idempotent, which ensures that an API request completes only once.
651
+ # When users send a request, Amazon GameLift Streams automatically
652
+ # populates this field.
653
+ #
654
+ # **A suitable default value is auto-generated.** You should normally
655
+ # not need to pass this option.**
656
+ #
657
+ # @option params [required, String] :description
658
+ # A human-readable label for the application. You can update this value
659
+ # later.
660
+ #
661
+ # @option params [required, String] :executable_path
662
+ # The path and file name of the executable file that launches the
663
+ # content for streaming. Enter a path value that is relative to the
664
+ # location set in `ApplicationSourceUri`.
665
+ #
666
+ # @option params [required, Types::RuntimeEnvironment] :runtime_environment
667
+ # A set of configuration settings to run the application on a stream
668
+ # group. This configures the operating system, and can include
669
+ # compatibility layers and other drivers.
670
+ #
671
+ # A runtime environment can be one of the following:
672
+ #
673
+ # * For Linux applications
674
+ #
675
+ # * Ubuntu 22.04 LTS(`Type=UBUNTU, Version=22_04_LTS`)
676
+ #
677
+ # ^
678
+ # * For Windows applications
679
+ #
680
+ # * Microsoft Windows Server 2022 Base (`Type=WINDOWS, Version=2022`)
681
+ #
682
+ # * Proton 8.0-5 (`Type=PROTON, Version=20241007`)
683
+ #
684
+ # * Proton 8.0-2c (`Type=PROTON, Version=20230704`)
685
+ #
686
+ # @option params [Hash<String,String>] :tags
687
+ # A list of labels to assign to the new application resource. Tags are
688
+ # developer-defined key-value pairs. Tagging Amazon Web Services
689
+ # resources is useful for resource management, access management and
690
+ # cost allocation. See [ Tagging Amazon Web Services Resources][1] in
691
+ # the *Amazon Web Services General Reference*. You can use TagResource
692
+ # to add tags, UntagResource to remove tags, and ListTagsForResource to
693
+ # view tags on existing resources. The maximum tag limit might be lower
694
+ # than stated. See the *Amazon Web Services General Reference* for
695
+ # actual tagging limits.
696
+ #
697
+ #
698
+ #
699
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
700
+ #
701
+ # @return [Types::CreateApplicationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
702
+ #
703
+ # * {Types::CreateApplicationOutput#application_log_output_uri #application_log_output_uri} => String
704
+ # * {Types::CreateApplicationOutput#application_log_paths #application_log_paths} => Array&lt;String&gt;
705
+ # * {Types::CreateApplicationOutput#application_source_uri #application_source_uri} => String
706
+ # * {Types::CreateApplicationOutput#arn #arn} => String
707
+ # * {Types::CreateApplicationOutput#associated_stream_groups #associated_stream_groups} => Array&lt;String&gt;
708
+ # * {Types::CreateApplicationOutput#created_at #created_at} => Time
709
+ # * {Types::CreateApplicationOutput#description #description} => String
710
+ # * {Types::CreateApplicationOutput#executable_path #executable_path} => String
711
+ # * {Types::CreateApplicationOutput#id #id} => String
712
+ # * {Types::CreateApplicationOutput#last_updated_at #last_updated_at} => Time
713
+ # * {Types::CreateApplicationOutput#replication_statuses #replication_statuses} => Array&lt;Types::ReplicationStatus&gt;
714
+ # * {Types::CreateApplicationOutput#runtime_environment #runtime_environment} => Types::RuntimeEnvironment
715
+ # * {Types::CreateApplicationOutput#status #status} => String
716
+ # * {Types::CreateApplicationOutput#status_reason #status_reason} => String
717
+ #
718
+ # @example Request syntax with placeholder values
719
+ #
720
+ # resp = client.create_application({
721
+ # application_log_output_uri: "ApplicationLogOutputUri",
722
+ # application_log_paths: ["FilePath"],
723
+ # application_source_uri: "ApplicationSourceUri", # required
724
+ # client_token: "ClientToken",
725
+ # description: "Description", # required
726
+ # executable_path: "ExecutablePath", # required
727
+ # runtime_environment: { # required
728
+ # type: "PROTON", # required, accepts PROTON, WINDOWS, UBUNTU
729
+ # version: "RuntimeEnvironmentVersion", # required
730
+ # },
731
+ # tags: {
732
+ # "TagKey" => "TagValue",
733
+ # },
734
+ # })
735
+ #
736
+ # @example Response structure
737
+ #
738
+ # resp.application_log_output_uri #=> String
739
+ # resp.application_log_paths #=> Array
740
+ # resp.application_log_paths[0] #=> String
741
+ # resp.application_source_uri #=> String
742
+ # resp.arn #=> String
743
+ # resp.associated_stream_groups #=> Array
744
+ # resp.associated_stream_groups[0] #=> String
745
+ # resp.created_at #=> Time
746
+ # resp.description #=> String
747
+ # resp.executable_path #=> String
748
+ # resp.id #=> String
749
+ # resp.last_updated_at #=> Time
750
+ # resp.replication_statuses #=> Array
751
+ # resp.replication_statuses[0].location #=> String
752
+ # resp.replication_statuses[0].status #=> String, one of "REPLICATING", "COMPLETED"
753
+ # resp.runtime_environment.type #=> String, one of "PROTON", "WINDOWS", "UBUNTU"
754
+ # resp.runtime_environment.version #=> String
755
+ # resp.status #=> String, one of "INITIALIZED", "PROCESSING", "READY", "DELETING", "ERROR"
756
+ # resp.status_reason #=> String, one of "internalError", "accessDenied"
757
+ #
758
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/CreateApplication AWS API Documentation
759
+ #
760
+ # @overload create_application(params = {})
761
+ # @param [Hash] params ({})
762
+ def create_application(params = {}, options = {})
763
+ req = build_request(:create_application, params)
764
+ req.send_request(options)
765
+ end
766
+
767
+ # Manage how Amazon GameLift Streams streams your applications by using
768
+ # a stream group. A stream group is a collection of resources that
769
+ # Amazon GameLift Streams uses to stream your application to end-users.
770
+ # When you create a stream group, you specify an application to stream
771
+ # by default and the type of hardware to use, such as the graphical
772
+ # processing unit (GPU). You can also link additional applications,
773
+ # which allows you to stream those applications using this stream group.
774
+ # Depending on your expected users, you also scale the number of
775
+ # concurrent streams you want to support at one time, and in what
776
+ # locations.
777
+ #
778
+ # Stream capacity represents the number of concurrent streams that can
779
+ # be active at a time. You set stream capacity per location, per stream
780
+ # group. There are two types of capacity: always-on and on-demand:
781
+ #
782
+ # * **Always-on**: The streaming capacity that is allocated and ready to
783
+ # handle stream requests without delay. You pay for this capacity
784
+ # whether it's in use or not. Best for quickest time from streaming
785
+ # request to streaming session. </p> </li> <li> <p>
786
+ # <b>On-demand</b>: The streaming capacity that Amazon GameLift
787
+ # Streams can allocate in response to stream requests, and then
788
+ # de-allocate when the session has terminated. This offers a cost
789
+ # control measure at the expense of a greater startup time (typically
790
+ # under 5 minutes). </p> </li> </ul> <p> To adjust the capacity of any
791
+ # <code>ACTIVE</code> stream group, call <a>UpdateStreamGroup</a>.
792
+ # </p> <p> If the request is successful, Amazon GameLift Streams
793
+ # begins creating the stream group. Amazon GameLift Streams assigns a
794
+ # unique ID to the stream group resource and sets the status to
795
+ # <code>ACTIVATING</code>. When the stream group reaches
796
+ # <code>ACTIVE</code> status, you can start stream sessions by using
797
+ # <a>StartStreamSession</a>. To check the stream group's status, call
798
+ # <a>GetStreamGroup</a>. </p>
799
+ #
800
+ # ^
801
+ #
802
+ # @option params [String] :client_token
803
+ # A unique identifier that represents a client request. The request is
804
+ # idempotent, which ensures that an API request completes only once.
805
+ # When users send a request, Amazon GameLift Streams automatically
806
+ # populates this field.
807
+ #
808
+ # **A suitable default value is auto-generated.** You should normally
809
+ # not need to pass this option.**
810
+ #
811
+ # @option params [String] :default_application_identifier
812
+ # The unique identifier of the Amazon GameLift Streams application that
813
+ # you want to associate to a stream group as the default application.
814
+ # The application must be in `READY` status. By setting the default
815
+ # application identifier, you will optimize startup performance of this
816
+ # application in your stream group. Once set, this application cannot be
817
+ # disassociated from the stream group, unlike applications that are
818
+ # associated using AssociateApplications. If not set when creating a
819
+ # stream group, you will need to call AssociateApplications later,
820
+ # before you can start streaming.
821
+ #
822
+ # @option params [required, String] :description
823
+ # A descriptive label for the stream group.
824
+ #
825
+ # @option params [Array<Types::LocationConfiguration>] :location_configurations
826
+ # A set of one or more locations and the streaming capacity for each
827
+ # location.
828
+ #
829
+ # @option params [required, String] :stream_class
830
+ # The target stream quality for sessions that are hosted in this stream
831
+ # group. Set a stream class that is appropriate to the type of content
832
+ # that you're streaming. Stream class determines the type of computing
833
+ # resources Amazon GameLift Streams uses and impacts the cost of
834
+ # streaming. The following options are available:
835
+ #
836
+ # A stream class can be one of the following:
837
+ #
838
+ # * <b> <code>gen5n_win2022</code> (NVIDIA, ultra)</b> Supports
839
+ # applications with extremely high 3D scene complexity. Runs
840
+ # applications on Microsoft Windows Server 2022 Base and supports
841
+ # DirectX 12. Compatible with most Unreal Engine 5.x builds, 32-bit
842
+ # applications, and anti-cheat technology. Uses NVIDIA A10G Tensor
843
+ # GPU.
844
+ #
845
+ # * Reference resolution: 1080p
846
+ #
847
+ # * Reference frame rate: 60 fps
848
+ #
849
+ # * Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM
850
+ #
851
+ # * Tenancy: Supports 1 concurrent stream session
852
+ # * <b> <code>gen5n_high</code> (NVIDIA, high)</b> Supports applications
853
+ # with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor
854
+ # GPU.
855
+ #
856
+ # * Reference resolution: 1080p
857
+ #
858
+ # * Reference frame rate: 60 fps
859
+ #
860
+ # * Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM
861
+ #
862
+ # * Tenancy: Supports up to 2 concurrent stream sessions
863
+ # * <b> <code>gen5n_ultra</code> (NVIDIA, ultra)</b> Supports
864
+ # applications with extremely high 3D scene complexity. Uses dedicated
865
+ # NVIDIA A10G Tensor GPU.
866
+ #
867
+ # * Reference resolution: 1080p
868
+ #
869
+ # * Reference frame rate: 60 fps
870
+ #
871
+ # * Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM
872
+ #
873
+ # * Tenancy: Supports 1 concurrent stream session
874
+ # * <b> <code>gen4n_win2022</code> (NVIDIA, ultra)</b> Supports
875
+ # applications with extremely high 3D scene complexity. Runs
876
+ # applications on Microsoft Windows Server 2022 Base and supports
877
+ # DirectX 12. Compatible with most Unreal Engine 5.2 and 5.3 builds,
878
+ # 32-bit applications, and anti-cheat technology. Uses NVIDIA T4
879
+ # Tensor GPU.
880
+ #
881
+ # * Reference resolution: 1080p
882
+ #
883
+ # * Reference frame rate: 60 fps
884
+ #
885
+ # * Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM
886
+ #
887
+ # * Tenancy: Supports 1 concurrent stream session
888
+ # * <b> <code>gen4n_high</code> (NVIDIA, high)</b> Supports applications
889
+ # with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor
890
+ # GPU.
891
+ #
892
+ # * Reference resolution: 1080p
893
+ #
894
+ # * Reference frame rate: 60 fps
895
+ #
896
+ # * Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM
897
+ #
898
+ # * Tenancy: Supports up to 2 concurrent stream sessions
899
+ # * <b> <code>gen4n_ultra</code> (NVIDIA, ultra)</b> Supports
900
+ # applications with high 3D scene complexity. Uses dedicated NVIDIA T4
901
+ # Tensor GPU.
902
+ #
903
+ # * Reference resolution: 1080p
904
+ #
905
+ # * Reference frame rate: 60 fps
906
+ #
907
+ # * Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM
908
+ #
909
+ # * Tenancy: Supports 1 concurrent stream session
910
+ #
911
+ # @option params [Hash<String,String>] :tags
912
+ # A list of labels to assign to the new stream group resource. Tags are
913
+ # developer-defined key-value pairs. It is useful to tag Amazon Web
914
+ # Services resources for resource management, access management, and
915
+ # cost allocation. See [ Tagging Amazon Web Services Resources][1] in
916
+ # the *Amazon Web Services General Reference*. You can use TagResource,
917
+ # UntagResource, and ListTagsForResource to add, remove, and view tags
918
+ # on existing resources. The maximum tag limit might be lower than
919
+ # stated. See the <i>Amazon Web Services </i> for actual tagging limits.
920
+ #
921
+ #
922
+ #
923
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
924
+ #
925
+ # @return [Types::CreateStreamGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
926
+ #
927
+ # * {Types::CreateStreamGroupOutput#arn #arn} => String
928
+ # * {Types::CreateStreamGroupOutput#associated_applications #associated_applications} => Array&lt;String&gt;
929
+ # * {Types::CreateStreamGroupOutput#created_at #created_at} => Time
930
+ # * {Types::CreateStreamGroupOutput#default_application #default_application} => Types::DefaultApplication
931
+ # * {Types::CreateStreamGroupOutput#description #description} => String
932
+ # * {Types::CreateStreamGroupOutput#id #id} => String
933
+ # * {Types::CreateStreamGroupOutput#last_updated_at #last_updated_at} => Time
934
+ # * {Types::CreateStreamGroupOutput#location_states #location_states} => Array&lt;Types::LocationState&gt;
935
+ # * {Types::CreateStreamGroupOutput#status #status} => String
936
+ # * {Types::CreateStreamGroupOutput#status_reason #status_reason} => String
937
+ # * {Types::CreateStreamGroupOutput#stream_class #stream_class} => String
938
+ #
939
+ # @example Request syntax with placeholder values
940
+ #
941
+ # resp = client.create_stream_group({
942
+ # client_token: "ClientToken",
943
+ # default_application_identifier: "Identifier",
944
+ # description: "Description", # required
945
+ # location_configurations: [
946
+ # {
947
+ # always_on_capacity: 1,
948
+ # location_name: "LocationName", # required
949
+ # on_demand_capacity: 1,
950
+ # },
951
+ # ],
952
+ # stream_class: "gen4n_high", # required, accepts gen4n_high, gen4n_ultra, gen4n_win2022, gen5n_high, gen5n_ultra, gen5n_win2022
953
+ # tags: {
954
+ # "TagKey" => "TagValue",
955
+ # },
956
+ # })
957
+ #
958
+ # @example Response structure
959
+ #
960
+ # resp.arn #=> String
961
+ # resp.associated_applications #=> Array
962
+ # resp.associated_applications[0] #=> String
963
+ # resp.created_at #=> Time
964
+ # resp.default_application.arn #=> String
965
+ # resp.default_application.id #=> String
966
+ # resp.description #=> String
967
+ # resp.id #=> String
968
+ # resp.last_updated_at #=> Time
969
+ # resp.location_states #=> Array
970
+ # resp.location_states[0].allocated_capacity #=> Integer
971
+ # resp.location_states[0].always_on_capacity #=> Integer
972
+ # resp.location_states[0].idle_capacity #=> Integer
973
+ # resp.location_states[0].location_name #=> String
974
+ # resp.location_states[0].on_demand_capacity #=> Integer
975
+ # resp.location_states[0].requested_capacity #=> Integer
976
+ # resp.location_states[0].status #=> String, one of "ACTIVATING", "ACTIVE", "ERROR", "REMOVING"
977
+ # resp.status #=> String, one of "ACTIVATING", "UPDATING_LOCATIONS", "ACTIVE", "ACTIVE_WITH_ERRORS", "ERROR", "DELETING"
978
+ # resp.status_reason #=> String, one of "internalError", "noAvailableInstances"
979
+ # resp.stream_class #=> String, one of "gen4n_high", "gen4n_ultra", "gen4n_win2022", "gen5n_high", "gen5n_ultra", "gen5n_win2022"
980
+ #
981
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/CreateStreamGroup AWS API Documentation
982
+ #
983
+ # @overload create_stream_group(params = {})
984
+ # @param [Hash] params ({})
985
+ def create_stream_group(params = {}, options = {})
986
+ req = build_request(:create_stream_group, params)
987
+ req.send_request(options)
988
+ end
989
+
990
+ # Allows clients to reconnect to a recently disconnected stream session
991
+ # without losing any data from the last session.
992
+ #
993
+ # A client can reconnect to a stream session that's in
994
+ # `PENDING_CLIENT_RECONNECTION` or `ACTIVE` status. In the stream
995
+ # session life cycle, when the client disconnects from the stream
996
+ # session, the stream session transitions from `CONNECTED` to
997
+ # `PENDING_CLIENT_RECONNECTION` status. When a client requests to
998
+ # reconnect by calling `CreateStreamSessionConnection`, the stream
999
+ # session transitions to `RECONNECTING` status. When the reconnection is
1000
+ # successful, the stream session transitions to `ACTIVE` status. After a
1001
+ # stream session is disconnected for longer than
1002
+ # `ConnectionTimeoutSeconds`, the stream session transitions to the
1003
+ # `TERMINATED` status.
1004
+ #
1005
+ # To connect to an existing stream session, specify the stream group ID
1006
+ # and stream session ID that you want to reconnect to, as well as the
1007
+ # signal request settings to use with the stream.
1008
+ #
1009
+ # `ConnectionTimeoutSeconds` defines the amount of time after the stream
1010
+ # session disconnects that a reconnection is allowed. If a client is
1011
+ # disconnected from the stream for longer than
1012
+ # `ConnectionTimeoutSeconds`, the stream session ends.
1013
+ #
1014
+ # @option params [String] :client_token
1015
+ # A unique identifier that represents a client request. The request is
1016
+ # idempotent, which ensures that an API request completes only once.
1017
+ # When users send a request, Amazon GameLift Streams automatically
1018
+ # populates this field.
1019
+ #
1020
+ # **A suitable default value is auto-generated.** You should normally
1021
+ # not need to pass this option.**
1022
+ #
1023
+ # @option params [required, String] :identifier
1024
+ # [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
1025
+ # stream group resource. Format example:
1026
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
1027
+ # or ID-`1AB2C3De4`.
1028
+ #
1029
+ # The stream group that you want to run this stream session with. The
1030
+ # stream group must be in `ACTIVE` status and have idle stream capacity.
1031
+ #
1032
+ #
1033
+ #
1034
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1035
+ #
1036
+ # @option params [required, String] :signal_request
1037
+ # A WebRTC ICE offer string to use when initializing a WebRTC
1038
+ # connection. The offer is a very long JSON string. Provide the string
1039
+ # as a text value in quotes. The offer must be newly generated, not the
1040
+ # same offer provided to `StartStreamSession`.
1041
+ #
1042
+ # @option params [required, String] :stream_session_identifier
1043
+ # [Amazon Resource Name (ARN)][1] that uniquely identifies the stream
1044
+ # session resource. Format example: `1AB2C3De4`. The stream session must
1045
+ # be in `PENDING_CLIENT_RECONNECTION` or `ACTIVE` status.
1046
+ #
1047
+ #
1048
+ #
1049
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1050
+ #
1051
+ # @return [Types::CreateStreamSessionConnectionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1052
+ #
1053
+ # * {Types::CreateStreamSessionConnectionOutput#signal_response #signal_response} => String
1054
+ #
1055
+ # @example Request syntax with placeholder values
1056
+ #
1057
+ # resp = client.create_stream_session_connection({
1058
+ # client_token: "ClientToken",
1059
+ # identifier: "Identifier", # required
1060
+ # signal_request: "SignalRequest", # required
1061
+ # stream_session_identifier: "Identifier", # required
1062
+ # })
1063
+ #
1064
+ # @example Response structure
1065
+ #
1066
+ # resp.signal_response #=> String
1067
+ #
1068
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/CreateStreamSessionConnection AWS API Documentation
1069
+ #
1070
+ # @overload create_stream_session_connection(params = {})
1071
+ # @param [Hash] params ({})
1072
+ def create_stream_session_connection(params = {}, options = {})
1073
+ req = build_request(:create_stream_session_connection, params)
1074
+ req.send_request(options)
1075
+ end
1076
+
1077
+ # Permanently deletes an Amazon GameLift Streams application resource.
1078
+ # This also deletes the application content files stored with Amazon
1079
+ # GameLift Streams. However, this does not delete the original files
1080
+ # that you uploaded to your Amazon S3 bucket; you can delete these any
1081
+ # time after Amazon GameLift Streams creates an application, which is
1082
+ # the only time Amazon GameLift Streams accesses your Amazon S3 bucket.
1083
+ #
1084
+ # You can only delete an application that meets the following
1085
+ # conditions:
1086
+ #
1087
+ # * The application is in `READY` or `ERROR` status. You cannot delete
1088
+ # an application that's in `PROCESSING` or `INITIALIZED` status.
1089
+ #
1090
+ # * The application is not the default application of any stream groups.
1091
+ # You must first delete the stream group by using DeleteStreamGroup.
1092
+ #
1093
+ # * The application is not linked to any stream groups. You must first
1094
+ # unlink the stream group by using DisassociateApplications.
1095
+ #
1096
+ # * An application is not streaming in any ongoing stream session. You
1097
+ # must wait until the client ends the stream session or call
1098
+ # TerminateStreamSession to end the stream.
1099
+ #
1100
+ # If any active stream groups exist for this application, this request
1101
+ # returns a `ValidationException`.
1102
+ #
1103
+ # @option params [required, String] :identifier
1104
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
1105
+ # application resource. Format example:
1106
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:application/9ZY8X7Wv6`
1107
+ # or ID-`9ZY8X7Wv6`.
1108
+ #
1109
+ #
1110
+ #
1111
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1112
+ #
1113
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1114
+ #
1115
+ # @example Request syntax with placeholder values
1116
+ #
1117
+ # resp = client.delete_application({
1118
+ # identifier: "Identifier", # required
1119
+ # })
1120
+ #
1121
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/DeleteApplication AWS API Documentation
1122
+ #
1123
+ # @overload delete_application(params = {})
1124
+ # @param [Hash] params ({})
1125
+ def delete_application(params = {}, options = {})
1126
+ req = build_request(:delete_application, params)
1127
+ req.send_request(options)
1128
+ end
1129
+
1130
+ # Permanently deletes all compute resources and information related to a
1131
+ # stream group. To delete a stream group, specify the unique stream
1132
+ # group identifier. During the deletion process, the stream group's
1133
+ # status is `DELETING`. This operation stops streams in progress and
1134
+ # prevents new streams from starting. As a best practice, before
1135
+ # deleting the stream group, call ListStreamSessions to check for
1136
+ # streams in progress and take action to stop them. When you delete a
1137
+ # stream group, any application associations referring to that stream
1138
+ # group are automatically removed.
1139
+ #
1140
+ # @option params [required, String] :identifier
1141
+ # The unique ID value of the stream group resource to delete. Format
1142
+ # example: `1AB2C3De4`.
1143
+ #
1144
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1145
+ #
1146
+ # @example Request syntax with placeholder values
1147
+ #
1148
+ # resp = client.delete_stream_group({
1149
+ # identifier: "Identifier", # required
1150
+ # })
1151
+ #
1152
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/DeleteStreamGroup AWS API Documentation
1153
+ #
1154
+ # @overload delete_stream_group(params = {})
1155
+ # @param [Hash] params ({})
1156
+ def delete_stream_group(params = {}, options = {})
1157
+ req = build_request(:delete_stream_group, params)
1158
+ req.send_request(options)
1159
+ end
1160
+
1161
+ # When you disassociate, or unlink, an application from a stream group,
1162
+ # you can no longer stream this application by using that stream
1163
+ # group's allocated compute resources. Any streams in process will
1164
+ # continue until they terminate, which helps avoid interrupting an
1165
+ # end-user's stream. Amazon GameLift Streams will not initiate new
1166
+ # streams using this stream group. The disassociate action does not
1167
+ # affect the stream capacity of a stream group.
1168
+ #
1169
+ # You can only disassociate an application if it's not a default
1170
+ # application of the stream group. Check `DefaultApplicationIdentifier`
1171
+ # by calling GetStreamGroup.
1172
+ #
1173
+ # @option params [required, Array<String>] :application_identifiers
1174
+ # A set of applications that you want to disassociate from the stream
1175
+ # group.
1176
+ #
1177
+ # This value is a set of either [Amazon Resource Names (ARN)][1] or IDs
1178
+ # that uniquely identify application resources. Format example:
1179
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:application/9ZY8X7Wv6`
1180
+ # or ID-`9ZY8X7Wv6`.
1181
+ #
1182
+ #
1183
+ #
1184
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1185
+ #
1186
+ # @option params [required, String] :identifier
1187
+ # A stream group to disassociate these applications from.
1188
+ #
1189
+ # This value is an [Amazon Resource Name (ARN)][1] or ID that uniquely
1190
+ # identifies the stream group resource. Format example:
1191
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
1192
+ # or ID-`1AB2C3De4`.
1193
+ #
1194
+ #
1195
+ #
1196
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1197
+ #
1198
+ # @return [Types::DisassociateApplicationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1199
+ #
1200
+ # * {Types::DisassociateApplicationsOutput#application_arns #application_arns} => Array&lt;String&gt;
1201
+ # * {Types::DisassociateApplicationsOutput#arn #arn} => String
1202
+ #
1203
+ # @example Request syntax with placeholder values
1204
+ #
1205
+ # resp = client.disassociate_applications({
1206
+ # application_identifiers: ["Identifier"], # required
1207
+ # identifier: "Identifier", # required
1208
+ # })
1209
+ #
1210
+ # @example Response structure
1211
+ #
1212
+ # resp.application_arns #=> Array
1213
+ # resp.application_arns[0] #=> String
1214
+ # resp.arn #=> String
1215
+ #
1216
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/DisassociateApplications AWS API Documentation
1217
+ #
1218
+ # @overload disassociate_applications(params = {})
1219
+ # @param [Hash] params ({})
1220
+ def disassociate_applications(params = {}, options = {})
1221
+ req = build_request(:disassociate_applications, params)
1222
+ req.send_request(options)
1223
+ end
1224
+
1225
+ # Export the files that your application modifies or generates in a
1226
+ # stream session, which can help you debug or verify your application.
1227
+ # When your application runs, it generates output files such as logs,
1228
+ # diagnostic information, crash dumps, save files, user data,
1229
+ # screenshots, and so on. The files can be defined by the engine or
1230
+ # frameworks that your application uses, or information that you've
1231
+ # programmed your application to output.
1232
+ #
1233
+ # You can only call this action on a stream session that is in progress,
1234
+ # specifically in one of the following statuses `ACTIVE`, `CONNECTED`,
1235
+ # `PENDING_CLIENT_RECONNECTION`, and `RECONNECTING`. You must provide an
1236
+ # Amazon Simple Storage Service (Amazon S3) bucket to store the files
1237
+ # in. When the session ends, Amazon GameLift Streams produces a
1238
+ # compressed folder that contains all of the files and directories that
1239
+ # were modified or created by the application during the stream session.
1240
+ # AWS uses your security credentials to authenticate and authorize
1241
+ # access to your Amazon S3 bucket.
1242
+ #
1243
+ # Amazon GameLift Streams collects the following generated and modified
1244
+ # files. Find them in the corresponding folders in the `.zip` archive.
1245
+ #
1246
+ # * `application/`: The folder where your application or game is stored.
1247
+ #
1248
+ # ^
1249
+ # ^
1250
+ #
1251
+ # * `profile/`: The user profile folder.
1252
+ #
1253
+ # * `temp/`: The system temp folder.
1254
+ #
1255
+ #
1256
+ #
1257
+ # To verify the status of the exported files, use GetStreamSession.
1258
+ #
1259
+ # To delete the files, delete the object in the S3 bucket.
1260
+ #
1261
+ # @option params [required, String] :identifier
1262
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
1263
+ # stream group resource. Format example:
1264
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
1265
+ # or ID-`1AB2C3De4`.
1266
+ #
1267
+ #
1268
+ #
1269
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1270
+ #
1271
+ # @option params [required, String] :output_uri
1272
+ # The S3 bucket URI where Amazon GameLift Streams uploads the set of
1273
+ # compressed exported files for this stream session. Amazon GameLift
1274
+ # Streams generates a ZIP file name based on the stream session
1275
+ # metadata. Alternatively, you can provide a custom file name with a
1276
+ # `.zip` file extension.
1277
+ #
1278
+ # Example 1: If you provide an S3 URI called
1279
+ # `s3://MyBucket/MyGame_Session1.zip`, then Amazon GameLift Streams will
1280
+ # save the files at that location.
1281
+ #
1282
+ # Example 2: If you provide an S3 URI called
1283
+ # `s3://MyBucket/MyGameSessions_ExportedFiles/`, then Amazon GameLift
1284
+ # Streams will save the files at
1285
+ # `s3://MyBucket/MyGameSessions_ExportedFiles/YYYYMMDD-HHMMSS-appId-sg-Id-sessionId.zip`
1286
+ # or another similar name.
1287
+ #
1288
+ # @option params [required, String] :stream_session_identifier
1289
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
1290
+ # stream session resource. Format example: `1AB2C3De4`.
1291
+ #
1292
+ #
1293
+ #
1294
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1295
+ #
1296
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1297
+ #
1298
+ # @example Request syntax with placeholder values
1299
+ #
1300
+ # resp = client.export_stream_session_files({
1301
+ # identifier: "Identifier", # required
1302
+ # output_uri: "OutputUri", # required
1303
+ # stream_session_identifier: "Identifier", # required
1304
+ # })
1305
+ #
1306
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/ExportStreamSessionFiles AWS API Documentation
1307
+ #
1308
+ # @overload export_stream_session_files(params = {})
1309
+ # @param [Hash] params ({})
1310
+ def export_stream_session_files(params = {}, options = {})
1311
+ req = build_request(:export_stream_session_files, params)
1312
+ req.send_request(options)
1313
+ end
1314
+
1315
+ # Retrieves properties for an Amazon GameLift Streams application
1316
+ # resource. Specify the ID of the application that you want to retrieve.
1317
+ # If the operation is successful, it returns properties for the
1318
+ # requested application.
1319
+ #
1320
+ # @option params [required, String] :identifier
1321
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
1322
+ # application resource. Format example:
1323
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:application/9ZY8X7Wv6`
1324
+ # or ID-`9ZY8X7Wv6`.
1325
+ #
1326
+ #
1327
+ #
1328
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1329
+ #
1330
+ # @return [Types::GetApplicationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1331
+ #
1332
+ # * {Types::GetApplicationOutput#application_log_output_uri #application_log_output_uri} => String
1333
+ # * {Types::GetApplicationOutput#application_log_paths #application_log_paths} => Array&lt;String&gt;
1334
+ # * {Types::GetApplicationOutput#application_source_uri #application_source_uri} => String
1335
+ # * {Types::GetApplicationOutput#arn #arn} => String
1336
+ # * {Types::GetApplicationOutput#associated_stream_groups #associated_stream_groups} => Array&lt;String&gt;
1337
+ # * {Types::GetApplicationOutput#created_at #created_at} => Time
1338
+ # * {Types::GetApplicationOutput#description #description} => String
1339
+ # * {Types::GetApplicationOutput#executable_path #executable_path} => String
1340
+ # * {Types::GetApplicationOutput#id #id} => String
1341
+ # * {Types::GetApplicationOutput#last_updated_at #last_updated_at} => Time
1342
+ # * {Types::GetApplicationOutput#replication_statuses #replication_statuses} => Array&lt;Types::ReplicationStatus&gt;
1343
+ # * {Types::GetApplicationOutput#runtime_environment #runtime_environment} => Types::RuntimeEnvironment
1344
+ # * {Types::GetApplicationOutput#status #status} => String
1345
+ # * {Types::GetApplicationOutput#status_reason #status_reason} => String
1346
+ #
1347
+ # @example Request syntax with placeholder values
1348
+ #
1349
+ # resp = client.get_application({
1350
+ # identifier: "Identifier", # required
1351
+ # })
1352
+ #
1353
+ # @example Response structure
1354
+ #
1355
+ # resp.application_log_output_uri #=> String
1356
+ # resp.application_log_paths #=> Array
1357
+ # resp.application_log_paths[0] #=> String
1358
+ # resp.application_source_uri #=> String
1359
+ # resp.arn #=> String
1360
+ # resp.associated_stream_groups #=> Array
1361
+ # resp.associated_stream_groups[0] #=> String
1362
+ # resp.created_at #=> Time
1363
+ # resp.description #=> String
1364
+ # resp.executable_path #=> String
1365
+ # resp.id #=> String
1366
+ # resp.last_updated_at #=> Time
1367
+ # resp.replication_statuses #=> Array
1368
+ # resp.replication_statuses[0].location #=> String
1369
+ # resp.replication_statuses[0].status #=> String, one of "REPLICATING", "COMPLETED"
1370
+ # resp.runtime_environment.type #=> String, one of "PROTON", "WINDOWS", "UBUNTU"
1371
+ # resp.runtime_environment.version #=> String
1372
+ # resp.status #=> String, one of "INITIALIZED", "PROCESSING", "READY", "DELETING", "ERROR"
1373
+ # resp.status_reason #=> String, one of "internalError", "accessDenied"
1374
+ #
1375
+ #
1376
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1377
+ #
1378
+ # * application_deleted
1379
+ # * application_ready
1380
+ #
1381
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/GetApplication AWS API Documentation
1382
+ #
1383
+ # @overload get_application(params = {})
1384
+ # @param [Hash] params ({})
1385
+ def get_application(params = {}, options = {})
1386
+ req = build_request(:get_application, params)
1387
+ req.send_request(options)
1388
+ end
1389
+
1390
+ # Retrieves properties for a Amazon GameLift Streams stream group
1391
+ # resource. Specify the ID of the stream group that you want to
1392
+ # retrieve. If the operation is successful, it returns properties for
1393
+ # the requested stream group.
1394
+ #
1395
+ # @option params [required, String] :identifier
1396
+ # The unique ID value of the stream group resource to retrieve. Format
1397
+ # example: `1AB2C3De4`.
1398
+ #
1399
+ # @return [Types::GetStreamGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1400
+ #
1401
+ # * {Types::GetStreamGroupOutput#arn #arn} => String
1402
+ # * {Types::GetStreamGroupOutput#associated_applications #associated_applications} => Array&lt;String&gt;
1403
+ # * {Types::GetStreamGroupOutput#created_at #created_at} => Time
1404
+ # * {Types::GetStreamGroupOutput#default_application #default_application} => Types::DefaultApplication
1405
+ # * {Types::GetStreamGroupOutput#description #description} => String
1406
+ # * {Types::GetStreamGroupOutput#id #id} => String
1407
+ # * {Types::GetStreamGroupOutput#last_updated_at #last_updated_at} => Time
1408
+ # * {Types::GetStreamGroupOutput#location_states #location_states} => Array&lt;Types::LocationState&gt;
1409
+ # * {Types::GetStreamGroupOutput#status #status} => String
1410
+ # * {Types::GetStreamGroupOutput#status_reason #status_reason} => String
1411
+ # * {Types::GetStreamGroupOutput#stream_class #stream_class} => String
1412
+ #
1413
+ # @example Request syntax with placeholder values
1414
+ #
1415
+ # resp = client.get_stream_group({
1416
+ # identifier: "Identifier", # required
1417
+ # })
1418
+ #
1419
+ # @example Response structure
1420
+ #
1421
+ # resp.arn #=> String
1422
+ # resp.associated_applications #=> Array
1423
+ # resp.associated_applications[0] #=> String
1424
+ # resp.created_at #=> Time
1425
+ # resp.default_application.arn #=> String
1426
+ # resp.default_application.id #=> String
1427
+ # resp.description #=> String
1428
+ # resp.id #=> String
1429
+ # resp.last_updated_at #=> Time
1430
+ # resp.location_states #=> Array
1431
+ # resp.location_states[0].allocated_capacity #=> Integer
1432
+ # resp.location_states[0].always_on_capacity #=> Integer
1433
+ # resp.location_states[0].idle_capacity #=> Integer
1434
+ # resp.location_states[0].location_name #=> String
1435
+ # resp.location_states[0].on_demand_capacity #=> Integer
1436
+ # resp.location_states[0].requested_capacity #=> Integer
1437
+ # resp.location_states[0].status #=> String, one of "ACTIVATING", "ACTIVE", "ERROR", "REMOVING"
1438
+ # resp.status #=> String, one of "ACTIVATING", "UPDATING_LOCATIONS", "ACTIVE", "ACTIVE_WITH_ERRORS", "ERROR", "DELETING"
1439
+ # resp.status_reason #=> String, one of "internalError", "noAvailableInstances"
1440
+ # resp.stream_class #=> String, one of "gen4n_high", "gen4n_ultra", "gen4n_win2022", "gen5n_high", "gen5n_ultra", "gen5n_win2022"
1441
+ #
1442
+ #
1443
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1444
+ #
1445
+ # * stream_group_active
1446
+ # * stream_group_deleted
1447
+ #
1448
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/GetStreamGroup AWS API Documentation
1449
+ #
1450
+ # @overload get_stream_group(params = {})
1451
+ # @param [Hash] params ({})
1452
+ def get_stream_group(params = {}, options = {})
1453
+ req = build_request(:get_stream_group, params)
1454
+ req.send_request(options)
1455
+ end
1456
+
1457
+ # Retrieves properties for a Amazon GameLift Streams stream session
1458
+ # resource. Specify the Amazon Resource Name (ARN) of the stream session
1459
+ # that you want to retrieve and its stream group ARN. If the operation
1460
+ # is successful, it returns properties for the requested resource.
1461
+ #
1462
+ # @option params [required, String] :identifier
1463
+ # The stream group that runs this stream session.
1464
+ #
1465
+ # This value is an [Amazon Resource Name (ARN)][1] or ID that uniquely
1466
+ # identifies the stream group resource. Format example:
1467
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
1468
+ # or ID-`1AB2C3De4`.
1469
+ #
1470
+ #
1471
+ #
1472
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1473
+ #
1474
+ # @option params [required, String] :stream_session_identifier
1475
+ # An [Amazon Resource Name (ARN)][1] that uniquely identifies the stream
1476
+ # session resource. Format example: `1AB2C3De4`.
1477
+ #
1478
+ #
1479
+ #
1480
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1481
+ #
1482
+ # @return [Types::GetStreamSessionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1483
+ #
1484
+ # * {Types::GetStreamSessionOutput#additional_environment_variables #additional_environment_variables} => Hash&lt;String,String&gt;
1485
+ # * {Types::GetStreamSessionOutput#additional_launch_args #additional_launch_args} => Array&lt;String&gt;
1486
+ # * {Types::GetStreamSessionOutput#application_arn #application_arn} => String
1487
+ # * {Types::GetStreamSessionOutput#arn #arn} => String
1488
+ # * {Types::GetStreamSessionOutput#connection_timeout_seconds #connection_timeout_seconds} => Integer
1489
+ # * {Types::GetStreamSessionOutput#created_at #created_at} => Time
1490
+ # * {Types::GetStreamSessionOutput#description #description} => String
1491
+ # * {Types::GetStreamSessionOutput#export_files_metadata #export_files_metadata} => Types::ExportFilesMetadata
1492
+ # * {Types::GetStreamSessionOutput#last_updated_at #last_updated_at} => Time
1493
+ # * {Types::GetStreamSessionOutput#location #location} => String
1494
+ # * {Types::GetStreamSessionOutput#log_file_location_uri #log_file_location_uri} => String
1495
+ # * {Types::GetStreamSessionOutput#protocol #protocol} => String
1496
+ # * {Types::GetStreamSessionOutput#session_length_seconds #session_length_seconds} => Integer
1497
+ # * {Types::GetStreamSessionOutput#signal_request #signal_request} => String
1498
+ # * {Types::GetStreamSessionOutput#signal_response #signal_response} => String
1499
+ # * {Types::GetStreamSessionOutput#status #status} => String
1500
+ # * {Types::GetStreamSessionOutput#status_reason #status_reason} => String
1501
+ # * {Types::GetStreamSessionOutput#stream_group_id #stream_group_id} => String
1502
+ # * {Types::GetStreamSessionOutput#user_id #user_id} => String
1503
+ # * {Types::GetStreamSessionOutput#web_sdk_protocol_url #web_sdk_protocol_url} => String
1504
+ #
1505
+ # @example Request syntax with placeholder values
1506
+ #
1507
+ # resp = client.get_stream_session({
1508
+ # identifier: "Identifier", # required
1509
+ # stream_session_identifier: "Identifier", # required
1510
+ # })
1511
+ #
1512
+ # @example Response structure
1513
+ #
1514
+ # resp.additional_environment_variables #=> Hash
1515
+ # resp.additional_environment_variables["EnvironmentVariablesKeyString"] #=> String
1516
+ # resp.additional_launch_args #=> Array
1517
+ # resp.additional_launch_args[0] #=> String
1518
+ # resp.application_arn #=> String
1519
+ # resp.arn #=> String
1520
+ # resp.connection_timeout_seconds #=> Integer
1521
+ # resp.created_at #=> Time
1522
+ # resp.description #=> String
1523
+ # resp.export_files_metadata.output_uri #=> String
1524
+ # resp.export_files_metadata.status #=> String, one of "SUCCEEDED", "FAILED", "PENDING"
1525
+ # resp.export_files_metadata.status_reason #=> String
1526
+ # resp.last_updated_at #=> Time
1527
+ # resp.location #=> String
1528
+ # resp.log_file_location_uri #=> String
1529
+ # resp.protocol #=> String, one of "WebRTC"
1530
+ # resp.session_length_seconds #=> Integer
1531
+ # resp.signal_request #=> String
1532
+ # resp.signal_response #=> String
1533
+ # resp.status #=> String, one of "ACTIVATING", "ACTIVE", "CONNECTED", "PENDING_CLIENT_RECONNECTION", "RECONNECTING", "TERMINATING", "TERMINATED", "ERROR"
1534
+ # resp.status_reason #=> String, one of "internalError", "invalidSignalRequest", "placementTimeout", "applicationLogS3DestinationError"
1535
+ # resp.stream_group_id #=> String
1536
+ # resp.user_id #=> String
1537
+ # resp.web_sdk_protocol_url #=> String
1538
+ #
1539
+ #
1540
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1541
+ #
1542
+ # * stream_session_active
1543
+ #
1544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/GetStreamSession AWS API Documentation
1545
+ #
1546
+ # @overload get_stream_session(params = {})
1547
+ # @param [Hash] params ({})
1548
+ def get_stream_session(params = {}, options = {})
1549
+ req = build_request(:get_stream_session, params)
1550
+ req.send_request(options)
1551
+ end
1552
+
1553
+ # Retrieves a list of all Amazon GameLift Streams applications that are
1554
+ # associated with the Amazon Web Services account in use. This operation
1555
+ # returns applications in all statuses, in no particular order. You can
1556
+ # paginate the results as needed.
1557
+ #
1558
+ # @option params [Integer] :max_results
1559
+ # The number of results to return. Use this parameter with `NextToken`
1560
+ # to return results in sequential pages. Default value is `25`.
1561
+ #
1562
+ # @option params [String] :next_token
1563
+ # The token that marks the start of the next set of results. Use this
1564
+ # token when you retrieve results as sequential pages. To get the first
1565
+ # page of results, omit a token value. To get the remaining pages,
1566
+ # provide the token returned with the previous result set.
1567
+ #
1568
+ # @return [Types::ListApplicationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1569
+ #
1570
+ # * {Types::ListApplicationsOutput#items #items} => Array&lt;Types::ApplicationSummary&gt;
1571
+ # * {Types::ListApplicationsOutput#next_token #next_token} => String
1572
+ #
1573
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1574
+ #
1575
+ # @example Request syntax with placeholder values
1576
+ #
1577
+ # resp = client.list_applications({
1578
+ # max_results: 1,
1579
+ # next_token: "NextToken",
1580
+ # })
1581
+ #
1582
+ # @example Response structure
1583
+ #
1584
+ # resp.items #=> Array
1585
+ # resp.items[0].arn #=> String
1586
+ # resp.items[0].created_at #=> Time
1587
+ # resp.items[0].description #=> String
1588
+ # resp.items[0].id #=> String
1589
+ # resp.items[0].last_updated_at #=> Time
1590
+ # resp.items[0].runtime_environment.type #=> String, one of "PROTON", "WINDOWS", "UBUNTU"
1591
+ # resp.items[0].runtime_environment.version #=> String
1592
+ # resp.items[0].status #=> String, one of "INITIALIZED", "PROCESSING", "READY", "DELETING", "ERROR"
1593
+ # resp.next_token #=> String
1594
+ #
1595
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/ListApplications AWS API Documentation
1596
+ #
1597
+ # @overload list_applications(params = {})
1598
+ # @param [Hash] params ({})
1599
+ def list_applications(params = {}, options = {})
1600
+ req = build_request(:list_applications, params)
1601
+ req.send_request(options)
1602
+ end
1603
+
1604
+ # Retrieves a list of all Amazon GameLift Streams stream groups that are
1605
+ # associated with the Amazon Web Services account in use. This operation
1606
+ # returns stream groups in all statuses, in no particular order. You can
1607
+ # paginate the results as needed.
1608
+ #
1609
+ # @option params [Integer] :max_results
1610
+ # The number of results to return. Use this parameter with `NextToken`
1611
+ # to return results in sequential pages. Default value is `25`.
1612
+ #
1613
+ # @option params [String] :next_token
1614
+ # A token that marks the start of the next set of results. Use this
1615
+ # token when you retrieve results as sequential pages. To get the first
1616
+ # page of results, omit a token value. To get the remaining pages,
1617
+ # provide the token returned with the previous result set.
1618
+ #
1619
+ # @return [Types::ListStreamGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1620
+ #
1621
+ # * {Types::ListStreamGroupsOutput#items #items} => Array&lt;Types::StreamGroupSummary&gt;
1622
+ # * {Types::ListStreamGroupsOutput#next_token #next_token} => String
1623
+ #
1624
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1625
+ #
1626
+ # @example Request syntax with placeholder values
1627
+ #
1628
+ # resp = client.list_stream_groups({
1629
+ # max_results: 1,
1630
+ # next_token: "NextToken",
1631
+ # })
1632
+ #
1633
+ # @example Response structure
1634
+ #
1635
+ # resp.items #=> Array
1636
+ # resp.items[0].arn #=> String
1637
+ # resp.items[0].created_at #=> Time
1638
+ # resp.items[0].default_application.arn #=> String
1639
+ # resp.items[0].default_application.id #=> String
1640
+ # resp.items[0].description #=> String
1641
+ # resp.items[0].id #=> String
1642
+ # resp.items[0].last_updated_at #=> Time
1643
+ # resp.items[0].status #=> String, one of "ACTIVATING", "UPDATING_LOCATIONS", "ACTIVE", "ACTIVE_WITH_ERRORS", "ERROR", "DELETING"
1644
+ # resp.items[0].stream_class #=> String, one of "gen4n_high", "gen4n_ultra", "gen4n_win2022", "gen5n_high", "gen5n_ultra", "gen5n_win2022"
1645
+ # resp.next_token #=> String
1646
+ #
1647
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/ListStreamGroups AWS API Documentation
1648
+ #
1649
+ # @overload list_stream_groups(params = {})
1650
+ # @param [Hash] params ({})
1651
+ def list_stream_groups(params = {}, options = {})
1652
+ req = build_request(:list_stream_groups, params)
1653
+ req.send_request(options)
1654
+ end
1655
+
1656
+ # Retrieves a list of Amazon GameLift Streams stream sessions that a
1657
+ # stream group is hosting.
1658
+ #
1659
+ # To retrieve stream sessions, specify the stream group, and optionally
1660
+ # filter by stream session status. You can paginate the results as
1661
+ # needed.
1662
+ #
1663
+ # This operation returns the requested stream sessions in no particular
1664
+ # order.
1665
+ #
1666
+ # @option params [String] :export_files_status
1667
+ # Filter by the exported files status. You can specify one status in
1668
+ # each request to retrieve only sessions that currently have that
1669
+ # exported files status.
1670
+ #
1671
+ # Exported files can be in one of the following states:
1672
+ #
1673
+ # * **SUCCEEDED**: The exported files are successfully stored in S3
1674
+ # bucket.
1675
+ #
1676
+ # * **FAILED**: The session ended but Amazon GameLift Streams couldn't
1677
+ # collect and upload the to S3.
1678
+ #
1679
+ # * **PENDING**: Either the stream session is still in progress, or
1680
+ # uploading the exported files to the S3 bucket is in progress.
1681
+ #
1682
+ # @option params [required, String] :identifier
1683
+ # The unique identifier of a Amazon GameLift Streams stream group to
1684
+ # retrieve the stream session for. You can use either the stream group
1685
+ # ID or the Amazon Resource Name (ARN).
1686
+ #
1687
+ # @option params [Integer] :max_results
1688
+ # The number of results to return. Use this parameter with `NextToken`
1689
+ # to return results in sequential pages. Default value is `25`.
1690
+ #
1691
+ # @option params [String] :next_token
1692
+ # The token that marks the start of the next set of results. Use this
1693
+ # token when you retrieve results as sequential pages. To get the first
1694
+ # page of results, omit a token value. To get the remaining pages,
1695
+ # provide the token returned with the previous result set.
1696
+ #
1697
+ # @option params [String] :status
1698
+ # Filter by the stream session status. You can specify one status in
1699
+ # each request to retrieve only sessions that are currently in that
1700
+ # status.
1701
+ #
1702
+ # @return [Types::ListStreamSessionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1703
+ #
1704
+ # * {Types::ListStreamSessionsOutput#items #items} => Array&lt;Types::StreamSessionSummary&gt;
1705
+ # * {Types::ListStreamSessionsOutput#next_token #next_token} => String
1706
+ #
1707
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1708
+ #
1709
+ # @example Request syntax with placeholder values
1710
+ #
1711
+ # resp = client.list_stream_sessions({
1712
+ # export_files_status: "SUCCEEDED", # accepts SUCCEEDED, FAILED, PENDING
1713
+ # identifier: "Identifier", # required
1714
+ # max_results: 1,
1715
+ # next_token: "NextToken",
1716
+ # status: "ACTIVATING", # accepts ACTIVATING, ACTIVE, CONNECTED, PENDING_CLIENT_RECONNECTION, RECONNECTING, TERMINATING, TERMINATED, ERROR
1717
+ # })
1718
+ #
1719
+ # @example Response structure
1720
+ #
1721
+ # resp.items #=> Array
1722
+ # resp.items[0].application_arn #=> String
1723
+ # resp.items[0].arn #=> String
1724
+ # resp.items[0].created_at #=> Time
1725
+ # resp.items[0].export_files_metadata.output_uri #=> String
1726
+ # resp.items[0].export_files_metadata.status #=> String, one of "SUCCEEDED", "FAILED", "PENDING"
1727
+ # resp.items[0].export_files_metadata.status_reason #=> String
1728
+ # resp.items[0].last_updated_at #=> Time
1729
+ # resp.items[0].location #=> String
1730
+ # resp.items[0].protocol #=> String, one of "WebRTC"
1731
+ # resp.items[0].status #=> String, one of "ACTIVATING", "ACTIVE", "CONNECTED", "PENDING_CLIENT_RECONNECTION", "RECONNECTING", "TERMINATING", "TERMINATED", "ERROR"
1732
+ # resp.items[0].user_id #=> String
1733
+ # resp.next_token #=> String
1734
+ #
1735
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/ListStreamSessions AWS API Documentation
1736
+ #
1737
+ # @overload list_stream_sessions(params = {})
1738
+ # @param [Hash] params ({})
1739
+ def list_stream_sessions(params = {}, options = {})
1740
+ req = build_request(:list_stream_sessions, params)
1741
+ req.send_request(options)
1742
+ end
1743
+
1744
+ # Retrieves a list of Amazon GameLift Streams stream sessions that this
1745
+ # user account has access to.
1746
+ #
1747
+ # In the returned list of stream sessions, the `ExportFilesMetadata`
1748
+ # property only shows the `Status` value. To get the `OutpurUri` and
1749
+ # `StatusReason` values, use GetStreamSession.
1750
+ #
1751
+ # We don't recommend using this operation to regularly check stream
1752
+ # session statuses because it's costly. Instead, to check status
1753
+ # updates for a specific stream session, use GetStreamSession.
1754
+ #
1755
+ # @option params [String] :export_files_status
1756
+ # Filter by the exported files status. You can specify one status in
1757
+ # each request to retrieve only sessions that currently have that
1758
+ # exported files status.
1759
+ #
1760
+ # @option params [Integer] :max_results
1761
+ # The number of results to return. Use this parameter with `NextToken`
1762
+ # to return results in sequential pages. Default value is `25`.
1763
+ #
1764
+ # @option params [String] :next_token
1765
+ # The token that marks the start of the next set of results. Use this
1766
+ # token when you retrieve results as sequential pages. To get the first
1767
+ # page of results, omit a token value. To get the remaining pages,
1768
+ # provide the token returned with the previous result set.
1769
+ #
1770
+ # @option params [String] :status
1771
+ # Filter by the stream session status. You can specify one status in
1772
+ # each request to retrieve only sessions that are currently in that
1773
+ # status.
1774
+ #
1775
+ # @return [Types::ListStreamSessionsByAccountOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1776
+ #
1777
+ # * {Types::ListStreamSessionsByAccountOutput#items #items} => Array&lt;Types::StreamSessionSummary&gt;
1778
+ # * {Types::ListStreamSessionsByAccountOutput#next_token #next_token} => String
1779
+ #
1780
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1781
+ #
1782
+ # @example Request syntax with placeholder values
1783
+ #
1784
+ # resp = client.list_stream_sessions_by_account({
1785
+ # export_files_status: "SUCCEEDED", # accepts SUCCEEDED, FAILED, PENDING
1786
+ # max_results: 1,
1787
+ # next_token: "NextToken",
1788
+ # status: "ACTIVATING", # accepts ACTIVATING, ACTIVE, CONNECTED, PENDING_CLIENT_RECONNECTION, RECONNECTING, TERMINATING, TERMINATED, ERROR
1789
+ # })
1790
+ #
1791
+ # @example Response structure
1792
+ #
1793
+ # resp.items #=> Array
1794
+ # resp.items[0].application_arn #=> String
1795
+ # resp.items[0].arn #=> String
1796
+ # resp.items[0].created_at #=> Time
1797
+ # resp.items[0].export_files_metadata.output_uri #=> String
1798
+ # resp.items[0].export_files_metadata.status #=> String, one of "SUCCEEDED", "FAILED", "PENDING"
1799
+ # resp.items[0].export_files_metadata.status_reason #=> String
1800
+ # resp.items[0].last_updated_at #=> Time
1801
+ # resp.items[0].location #=> String
1802
+ # resp.items[0].protocol #=> String, one of "WebRTC"
1803
+ # resp.items[0].status #=> String, one of "ACTIVATING", "ACTIVE", "CONNECTED", "PENDING_CLIENT_RECONNECTION", "RECONNECTING", "TERMINATING", "TERMINATED", "ERROR"
1804
+ # resp.items[0].user_id #=> String
1805
+ # resp.next_token #=> String
1806
+ #
1807
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/ListStreamSessionsByAccount AWS API Documentation
1808
+ #
1809
+ # @overload list_stream_sessions_by_account(params = {})
1810
+ # @param [Hash] params ({})
1811
+ def list_stream_sessions_by_account(params = {}, options = {})
1812
+ req = build_request(:list_stream_sessions_by_account, params)
1813
+ req.send_request(options)
1814
+ end
1815
+
1816
+ # Retrieves all tags assigned to a Amazon GameLift Streams resource. To
1817
+ # list tags for a resource, specify the ARN value for the resource.
1818
+ #
1819
+ # **Learn more**
1820
+ #
1821
+ # [Tagging Amazon Web Services Resources][1] in the *Amazon Web Services
1822
+ # General Reference*
1823
+ #
1824
+ # [ Amazon Web Services Tagging Strategies][2]
1825
+ #
1826
+ #
1827
+ #
1828
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
1829
+ # [2]: http://aws.amazon.com/answers/account-management/aws-tagging-strategies/
1830
+ #
1831
+ # @option params [required, String] :resource_arn
1832
+ # The ([Amazon Resource Name (ARN)][1] that you want to retrieve tags
1833
+ # for. To get a Amazon GameLift Streams resource ARN, call a List or Get
1834
+ # operation for the resource.
1835
+ #
1836
+ #
1837
+ #
1838
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html
1839
+ #
1840
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1841
+ #
1842
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1843
+ #
1844
+ # @example Request syntax with placeholder values
1845
+ #
1846
+ # resp = client.list_tags_for_resource({
1847
+ # resource_arn: "Arn", # required
1848
+ # })
1849
+ #
1850
+ # @example Response structure
1851
+ #
1852
+ # resp.tags #=> Hash
1853
+ # resp.tags["TagKey"] #=> String
1854
+ #
1855
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/ListTagsForResource AWS API Documentation
1856
+ #
1857
+ # @overload list_tags_for_resource(params = {})
1858
+ # @param [Hash] params ({})
1859
+ def list_tags_for_resource(params = {}, options = {})
1860
+ req = build_request(:list_tags_for_resource, params)
1861
+ req.send_request(options)
1862
+ end
1863
+
1864
+ # Removes a set of remote locations from this stream group. Amazon
1865
+ # GameLift Streams works to release allocated compute resources in these
1866
+ # location. Thus, stream sessions can no longer start from these
1867
+ # locations by using this stream group. Amazon GameLift Streams also
1868
+ # deletes the content files of all associated applications that were in
1869
+ # Amazon GameLift Streams's internal S3 bucket at this location.
1870
+ #
1871
+ # You cannot remove the region where you initially created this stream
1872
+ # group, known as the primary location. However, you can set the stream
1873
+ # capacity to zero.
1874
+ #
1875
+ # @option params [required, String] :identifier
1876
+ # A stream group to remove the specified locations from.
1877
+ #
1878
+ # This value is a Amazon Resource Name (ARN) that uniquely identifies
1879
+ # the stream group resource. Format example: `1AB2C3De4`. </p>
1880
+ #
1881
+ # @option params [required, Array<String>] :locations
1882
+ # A set of locations to remove this stream group.
1883
+ #
1884
+ # A set of location names. For example, `us-east-1`. For a complete list
1885
+ # of locations that Amazon GameLift Streams supports, see the Regions
1886
+ # and quotas section in the Amazon GameLift Streams Developer Guide .
1887
+ # </p>
1888
+ #
1889
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1890
+ #
1891
+ # @example Request syntax with placeholder values
1892
+ #
1893
+ # resp = client.remove_stream_group_locations({
1894
+ # identifier: "Identifier", # required
1895
+ # locations: ["String"], # required
1896
+ # })
1897
+ #
1898
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/RemoveStreamGroupLocations AWS API Documentation
1899
+ #
1900
+ # @overload remove_stream_group_locations(params = {})
1901
+ # @param [Hash] params ({})
1902
+ def remove_stream_group_locations(params = {}, options = {})
1903
+ req = build_request(:remove_stream_group_locations, params)
1904
+ req.send_request(options)
1905
+ end
1906
+
1907
+ # This action initiates a new stream session and outputs connection
1908
+ # information that clients can use to access the stream. A stream
1909
+ # session refers to an instance of a stream that Amazon GameLift Streams
1910
+ # transmits from the server to the end-user. A stream session runs on a
1911
+ # compute resource, or stream capacity, that a stream group has
1912
+ # allocated.
1913
+ #
1914
+ # To start a new stream session, specify a stream group and application
1915
+ # ID, along with the transport protocol and signal request settings to
1916
+ # use with the stream. You must have associated at least one application
1917
+ # to the stream group before starting a stream session, either when
1918
+ # creating the stream group, or by using AssociateApplications.
1919
+ #
1920
+ # For stream groups that have multiple locations, provide a set of
1921
+ # locations ordered by priority by setting `Locations`. Amazon GameLift
1922
+ # Streams will start a single stream session in the next available
1923
+ # location. An application must be finished replicating in a remote
1924
+ # location before the remote location can host a stream.
1925
+ #
1926
+ # If the request is successful, Amazon GameLift Streams begins to
1927
+ # prepare the stream. Amazon GameLift Streams assigns an Amazon Resource
1928
+ # Name (ARN) value to the stream session resource and sets the status to
1929
+ # `ACTIVATING`. During the stream preparation process, Amazon GameLift
1930
+ # Streams queues the request and searches for available stream capacity
1931
+ # to run the stream. This can result to one of the following:
1932
+ #
1933
+ # * Amazon GameLift Streams identifies an available compute resource to
1934
+ # run the application content and start the stream. When the stream is
1935
+ # ready, the stream session's status changes to `ACTIVE` and includes
1936
+ # stream connection information. Provide the connection information to
1937
+ # the requesting client to join the stream session.
1938
+ #
1939
+ # * Amazon GameLift Streams doesn't identify an available resource
1940
+ # within a certain time, set by `ClientToken`. In this case, Amazon
1941
+ # GameLift Streams stops processing the request, and the stream
1942
+ # session object status changes to `ERROR` with status reason
1943
+ # `placementTimeout`.
1944
+ #
1945
+ # @option params [Hash<String,String>] :additional_environment_variables
1946
+ # A set of options that you can use to control the stream session
1947
+ # runtime environment, expressed as a set of key-value pairs. You can
1948
+ # use this to configure the application or stream session details. You
1949
+ # can also provide custom environment variables that Amazon GameLift
1950
+ # Streams passes to your game client.
1951
+ #
1952
+ # <note markdown="1"> If you want to debug your application with environment variables, we
1953
+ # recommend that you do so in a local environment outside of Amazon
1954
+ # GameLift Streams. For more information, refer to the Compatibility
1955
+ # Guidance in the troubleshooting section of the Developer Guide.
1956
+ #
1957
+ # </note>
1958
+ #
1959
+ # `AdditionalEnvironmentVariables` and `AdditionalLaunchArgs` have
1960
+ # similar purposes. `AdditionalEnvironmentVariables` passes data using
1961
+ # environment variables; while `AdditionalLaunchArgs` passes data using
1962
+ # command-line arguments.
1963
+ #
1964
+ # @option params [Array<String>] :additional_launch_args
1965
+ # A list of CLI arguments that are sent to the streaming server when a
1966
+ # stream session launches. You can use this to configure the application
1967
+ # or stream session details. You can also provide custom arguments that
1968
+ # Amazon GameLift Streams passes to your game client.
1969
+ #
1970
+ # `AdditionalEnvironmentVariables` and `AdditionalLaunchArgs` have
1971
+ # similar purposes. `AdditionalEnvironmentVariables` passes data using
1972
+ # environment variables; while `AdditionalLaunchArgs` passes data using
1973
+ # command-line arguments.
1974
+ #
1975
+ # @option params [required, String] :application_identifier
1976
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
1977
+ # application resource. Format example:
1978
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:application/9ZY8X7Wv6`
1979
+ # or ID-`9ZY8X7Wv6`.
1980
+ #
1981
+ #
1982
+ #
1983
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
1984
+ #
1985
+ # @option params [String] :client_token
1986
+ # A unique identifier that represents a client request. The request is
1987
+ # idempotent, which ensures that an API request completes only once.
1988
+ # When users send a request, Amazon GameLift Streams automatically
1989
+ # populates this field.
1990
+ #
1991
+ # **A suitable default value is auto-generated.** You should normally
1992
+ # not need to pass this option.**
1993
+ #
1994
+ # @option params [Integer] :connection_timeout_seconds
1995
+ # Length of time (in seconds) that Amazon GameLift Streams should wait
1996
+ # for a client to connect to the stream session. This time span starts
1997
+ # when the stream session reaches `ACTIVE` status. If no client connects
1998
+ # before the timeout, Amazon GameLift Streams stops the stream session
1999
+ # with status of `TERMINATED`. Default value is 120.
2000
+ #
2001
+ # @option params [String] :description
2002
+ # A human-readable label for the stream session. You can update this
2003
+ # value later.
2004
+ #
2005
+ # @option params [required, String] :identifier
2006
+ # The stream group to run this stream session with.
2007
+ #
2008
+ # This value is an [Amazon Resource Name (ARN)][1] or ID that uniquely
2009
+ # identifies the stream group resource. Format example:
2010
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
2011
+ # or ID-`1AB2C3De4`.
2012
+ #
2013
+ #
2014
+ #
2015
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
2016
+ #
2017
+ # @option params [Array<String>] :locations
2018
+ # A list of locations, in order of priority, where you want Amazon
2019
+ # GameLift Streams to start a stream from. Amazon GameLift Streams
2020
+ # selects the location with the next available capacity to start a
2021
+ # single stream session in. If this value is empty, Amazon GameLift
2022
+ # Streams attempts to start a stream session in the primary location.
2023
+ #
2024
+ # This value is A set of location names. For example, `us-east-1`. For a
2025
+ # complete list of locations that Amazon GameLift Streams supports, see
2026
+ # the Regions and quotas section in the Amazon GameLift Streams
2027
+ # Developer Guide . </p>
2028
+ #
2029
+ # @option params [required, String] :protocol
2030
+ # The data transport protocol to use for the stream session.
2031
+ #
2032
+ # @option params [Integer] :session_length_seconds
2033
+ # The maximum length of time (in seconds) that Amazon GameLift Streams
2034
+ # keeps the stream session open. At this point, Amazon GameLift Streams
2035
+ # ends the stream session regardless of any existing client connections.
2036
+ # Default value is 43200.
2037
+ #
2038
+ # @option params [required, String] :signal_request
2039
+ # A WebRTC ICE offer string to use when initializing a WebRTC
2040
+ # connection. The offer is a very long JSON string. Provide the string
2041
+ # as a text value in quotes.
2042
+ #
2043
+ # @option params [String] :user_id
2044
+ # An opaque, unique identifier for an end-user, defined by the
2045
+ # developer.
2046
+ #
2047
+ # @return [Types::StartStreamSessionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2048
+ #
2049
+ # * {Types::StartStreamSessionOutput#additional_environment_variables #additional_environment_variables} => Hash&lt;String,String&gt;
2050
+ # * {Types::StartStreamSessionOutput#additional_launch_args #additional_launch_args} => Array&lt;String&gt;
2051
+ # * {Types::StartStreamSessionOutput#application_arn #application_arn} => String
2052
+ # * {Types::StartStreamSessionOutput#arn #arn} => String
2053
+ # * {Types::StartStreamSessionOutput#connection_timeout_seconds #connection_timeout_seconds} => Integer
2054
+ # * {Types::StartStreamSessionOutput#created_at #created_at} => Time
2055
+ # * {Types::StartStreamSessionOutput#description #description} => String
2056
+ # * {Types::StartStreamSessionOutput#export_files_metadata #export_files_metadata} => Types::ExportFilesMetadata
2057
+ # * {Types::StartStreamSessionOutput#last_updated_at #last_updated_at} => Time
2058
+ # * {Types::StartStreamSessionOutput#location #location} => String
2059
+ # * {Types::StartStreamSessionOutput#log_file_location_uri #log_file_location_uri} => String
2060
+ # * {Types::StartStreamSessionOutput#protocol #protocol} => String
2061
+ # * {Types::StartStreamSessionOutput#session_length_seconds #session_length_seconds} => Integer
2062
+ # * {Types::StartStreamSessionOutput#signal_request #signal_request} => String
2063
+ # * {Types::StartStreamSessionOutput#signal_response #signal_response} => String
2064
+ # * {Types::StartStreamSessionOutput#status #status} => String
2065
+ # * {Types::StartStreamSessionOutput#status_reason #status_reason} => String
2066
+ # * {Types::StartStreamSessionOutput#stream_group_id #stream_group_id} => String
2067
+ # * {Types::StartStreamSessionOutput#user_id #user_id} => String
2068
+ # * {Types::StartStreamSessionOutput#web_sdk_protocol_url #web_sdk_protocol_url} => String
2069
+ #
2070
+ # @example Request syntax with placeholder values
2071
+ #
2072
+ # resp = client.start_stream_session({
2073
+ # additional_environment_variables: {
2074
+ # "EnvironmentVariablesKeyString" => "EnvironmentVariablesValueString",
2075
+ # },
2076
+ # additional_launch_args: ["String"],
2077
+ # application_identifier: "Identifier", # required
2078
+ # client_token: "ClientToken",
2079
+ # connection_timeout_seconds: 1,
2080
+ # description: "Description",
2081
+ # identifier: "Identifier", # required
2082
+ # locations: ["LocationName"],
2083
+ # protocol: "WebRTC", # required, accepts WebRTC
2084
+ # session_length_seconds: 1,
2085
+ # signal_request: "SignalRequest", # required
2086
+ # user_id: "UserId",
2087
+ # })
2088
+ #
2089
+ # @example Response structure
2090
+ #
2091
+ # resp.additional_environment_variables #=> Hash
2092
+ # resp.additional_environment_variables["EnvironmentVariablesKeyString"] #=> String
2093
+ # resp.additional_launch_args #=> Array
2094
+ # resp.additional_launch_args[0] #=> String
2095
+ # resp.application_arn #=> String
2096
+ # resp.arn #=> String
2097
+ # resp.connection_timeout_seconds #=> Integer
2098
+ # resp.created_at #=> Time
2099
+ # resp.description #=> String
2100
+ # resp.export_files_metadata.output_uri #=> String
2101
+ # resp.export_files_metadata.status #=> String, one of "SUCCEEDED", "FAILED", "PENDING"
2102
+ # resp.export_files_metadata.status_reason #=> String
2103
+ # resp.last_updated_at #=> Time
2104
+ # resp.location #=> String
2105
+ # resp.log_file_location_uri #=> String
2106
+ # resp.protocol #=> String, one of "WebRTC"
2107
+ # resp.session_length_seconds #=> Integer
2108
+ # resp.signal_request #=> String
2109
+ # resp.signal_response #=> String
2110
+ # resp.status #=> String, one of "ACTIVATING", "ACTIVE", "CONNECTED", "PENDING_CLIENT_RECONNECTION", "RECONNECTING", "TERMINATING", "TERMINATED", "ERROR"
2111
+ # resp.status_reason #=> String, one of "internalError", "invalidSignalRequest", "placementTimeout", "applicationLogS3DestinationError"
2112
+ # resp.stream_group_id #=> String
2113
+ # resp.user_id #=> String
2114
+ # resp.web_sdk_protocol_url #=> String
2115
+ #
2116
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/StartStreamSession AWS API Documentation
2117
+ #
2118
+ # @overload start_stream_session(params = {})
2119
+ # @param [Hash] params ({})
2120
+ def start_stream_session(params = {}, options = {})
2121
+ req = build_request(:start_stream_session, params)
2122
+ req.send_request(options)
2123
+ end
2124
+
2125
+ # Assigns one or more tags to a Amazon GameLift Streams resource. Use
2126
+ # tags to organize Amazon Web Services resources for a range of
2127
+ # purposes. You can assign tags to the following Amazon GameLift Streams
2128
+ # resource types:
2129
+ #
2130
+ # * Application
2131
+ #
2132
+ # * StreamGroup
2133
+ #
2134
+ # **Learn more**
2135
+ #
2136
+ # [Tagging Amazon Web Services Resources][1] in the *Amazon Web Services
2137
+ # General Reference*
2138
+ #
2139
+ # [ Amazon Web Services Tagging Strategies][2]
2140
+ #
2141
+ #
2142
+ #
2143
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
2144
+ # [2]: http://aws.amazon.com/answers/account-management/aws-tagging-strategies/
2145
+ #
2146
+ # @option params [required, String] :resource_arn
2147
+ # The [Amazon Resource Name (ARN)][1] of the Amazon GameLift Streams
2148
+ # resource that you want to apply tags to.
2149
+ #
2150
+ #
2151
+ #
2152
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html
2153
+ #
2154
+ # @option params [required, Hash<String,String>] :tags
2155
+ # A list of tags, in the form of key-value pairs, to assign to the
2156
+ # specified Amazon GameLift Streams resource.
2157
+ #
2158
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2159
+ #
2160
+ # @example Request syntax with placeholder values
2161
+ #
2162
+ # resp = client.tag_resource({
2163
+ # resource_arn: "Arn", # required
2164
+ # tags: { # required
2165
+ # "TagKey" => "TagValue",
2166
+ # },
2167
+ # })
2168
+ #
2169
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/TagResource AWS API Documentation
2170
+ #
2171
+ # @overload tag_resource(params = {})
2172
+ # @param [Hash] params ({})
2173
+ def tag_resource(params = {}, options = {})
2174
+ req = build_request(:tag_resource, params)
2175
+ req.send_request(options)
2176
+ end
2177
+
2178
+ # Permanently terminates an active stream session. When called, the
2179
+ # stream session status changes to `TERMINATING`. You can terminate a
2180
+ # stream session in any status except `ACTIVATING`. If the stream
2181
+ # session is in `ACTIVATING` status, an exception is thrown.
2182
+ #
2183
+ # @option params [required, String] :identifier
2184
+ # [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
2185
+ # stream group resource. Format example:
2186
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
2187
+ # or ID-`1AB2C3De4`.
2188
+ #
2189
+ # The stream group that runs this stream session.
2190
+ #
2191
+ #
2192
+ #
2193
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
2194
+ #
2195
+ # @option params [required, String] :stream_session_identifier
2196
+ # [Amazon Resource Name (ARN)][1] that uniquely identifies the stream
2197
+ # session resource. Format example: `1AB2C3De4`.
2198
+ #
2199
+ #
2200
+ #
2201
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
2202
+ #
2203
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2204
+ #
2205
+ # @example Request syntax with placeholder values
2206
+ #
2207
+ # resp = client.terminate_stream_session({
2208
+ # identifier: "Identifier", # required
2209
+ # stream_session_identifier: "Identifier", # required
2210
+ # })
2211
+ #
2212
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/TerminateStreamSession AWS API Documentation
2213
+ #
2214
+ # @overload terminate_stream_session(params = {})
2215
+ # @param [Hash] params ({})
2216
+ def terminate_stream_session(params = {}, options = {})
2217
+ req = build_request(:terminate_stream_session, params)
2218
+ req.send_request(options)
2219
+ end
2220
+
2221
+ # Removes one or more tags from a Amazon GameLift Streams resource. To
2222
+ # remove tags, specify the Amazon GameLift Streams resource and a list
2223
+ # of one or more tags to remove.
2224
+ #
2225
+ # @option params [required, String] :resource_arn
2226
+ # The [Amazon Resource Name (ARN)][1] of the Amazon GameLift Streams
2227
+ # resource that you want to remove tags from.
2228
+ #
2229
+ #
2230
+ #
2231
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html
2232
+ #
2233
+ # @option params [required, Array<String>] :tag_keys
2234
+ # A list of tag keys to remove from the specified Amazon GameLift
2235
+ # Streams resource.
2236
+ #
2237
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2238
+ #
2239
+ # @example Request syntax with placeholder values
2240
+ #
2241
+ # resp = client.untag_resource({
2242
+ # resource_arn: "Arn", # required
2243
+ # tag_keys: ["TagKey"], # required
2244
+ # })
2245
+ #
2246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/UntagResource AWS API Documentation
2247
+ #
2248
+ # @overload untag_resource(params = {})
2249
+ # @param [Hash] params ({})
2250
+ def untag_resource(params = {}, options = {})
2251
+ req = build_request(:untag_resource, params)
2252
+ req.send_request(options)
2253
+ end
2254
+
2255
+ # Updates the mutable configuration settings for a Amazon GameLift
2256
+ # Streams application resource. You can change the `Description`,
2257
+ # `ApplicationLogOutputUri`, and `ApplicationLogPaths`.
2258
+ #
2259
+ # To update application settings, specify the application ID and provide
2260
+ # the new values. If the operation is successful, it returns the
2261
+ # complete updated set of settings for the application.
2262
+ #
2263
+ # @option params [String] :application_log_output_uri
2264
+ # An Amazon S3 URI to a bucket where you would like Amazon GameLift
2265
+ # Streams to save application logs. Use the following format for the
2266
+ # URI: `s3://[bucket name]/[prefix]`. Required if you specify one or
2267
+ # more `LogPaths`.
2268
+ #
2269
+ # <note markdown="1"> The log bucket must have permissions that give Amazon GameLift Streams
2270
+ # access to write the log files. For more information, see **Getting
2271
+ # Started** in the Amazon GameLift Streams Developer Guide.
2272
+ #
2273
+ # </note>
2274
+ #
2275
+ # @option params [Array<String>] :application_log_paths
2276
+ # Locations of log files that your content generates during a stream
2277
+ # session. Enter path values that are relative to the
2278
+ # `ApplicationSourceUri` location. You can specify up to 10 log
2279
+ # locations. Amazon GameLift Streams uploads designated log files to the
2280
+ # Amazon S3 bucket that you specify in `ApplicationLogOutputUri` at the
2281
+ # end of a stream session. To retrieve stored log files, call
2282
+ # GetStreamSession and get the `LogFileLocationUri`.
2283
+ #
2284
+ # @option params [String] :description
2285
+ # A human-readable label for the application.
2286
+ #
2287
+ # @option params [required, String] :identifier
2288
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
2289
+ # application resource. Format example:
2290
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:application/9ZY8X7Wv6`
2291
+ # or ID-`9ZY8X7Wv6`.
2292
+ #
2293
+ #
2294
+ #
2295
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
2296
+ #
2297
+ # @return [Types::UpdateApplicationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2298
+ #
2299
+ # * {Types::UpdateApplicationOutput#application_log_output_uri #application_log_output_uri} => String
2300
+ # * {Types::UpdateApplicationOutput#application_log_paths #application_log_paths} => Array&lt;String&gt;
2301
+ # * {Types::UpdateApplicationOutput#application_source_uri #application_source_uri} => String
2302
+ # * {Types::UpdateApplicationOutput#arn #arn} => String
2303
+ # * {Types::UpdateApplicationOutput#associated_stream_groups #associated_stream_groups} => Array&lt;String&gt;
2304
+ # * {Types::UpdateApplicationOutput#created_at #created_at} => Time
2305
+ # * {Types::UpdateApplicationOutput#description #description} => String
2306
+ # * {Types::UpdateApplicationOutput#executable_path #executable_path} => String
2307
+ # * {Types::UpdateApplicationOutput#id #id} => String
2308
+ # * {Types::UpdateApplicationOutput#last_updated_at #last_updated_at} => Time
2309
+ # * {Types::UpdateApplicationOutput#replication_statuses #replication_statuses} => Array&lt;Types::ReplicationStatus&gt;
2310
+ # * {Types::UpdateApplicationOutput#runtime_environment #runtime_environment} => Types::RuntimeEnvironment
2311
+ # * {Types::UpdateApplicationOutput#status #status} => String
2312
+ # * {Types::UpdateApplicationOutput#status_reason #status_reason} => String
2313
+ #
2314
+ # @example Request syntax with placeholder values
2315
+ #
2316
+ # resp = client.update_application({
2317
+ # application_log_output_uri: "ApplicationLogOutputUri",
2318
+ # application_log_paths: ["FilePath"],
2319
+ # description: "Description",
2320
+ # identifier: "Identifier", # required
2321
+ # })
2322
+ #
2323
+ # @example Response structure
2324
+ #
2325
+ # resp.application_log_output_uri #=> String
2326
+ # resp.application_log_paths #=> Array
2327
+ # resp.application_log_paths[0] #=> String
2328
+ # resp.application_source_uri #=> String
2329
+ # resp.arn #=> String
2330
+ # resp.associated_stream_groups #=> Array
2331
+ # resp.associated_stream_groups[0] #=> String
2332
+ # resp.created_at #=> Time
2333
+ # resp.description #=> String
2334
+ # resp.executable_path #=> String
2335
+ # resp.id #=> String
2336
+ # resp.last_updated_at #=> Time
2337
+ # resp.replication_statuses #=> Array
2338
+ # resp.replication_statuses[0].location #=> String
2339
+ # resp.replication_statuses[0].status #=> String, one of "REPLICATING", "COMPLETED"
2340
+ # resp.runtime_environment.type #=> String, one of "PROTON", "WINDOWS", "UBUNTU"
2341
+ # resp.runtime_environment.version #=> String
2342
+ # resp.status #=> String, one of "INITIALIZED", "PROCESSING", "READY", "DELETING", "ERROR"
2343
+ # resp.status_reason #=> String, one of "internalError", "accessDenied"
2344
+ #
2345
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/UpdateApplication AWS API Documentation
2346
+ #
2347
+ # @overload update_application(params = {})
2348
+ # @param [Hash] params ({})
2349
+ def update_application(params = {}, options = {})
2350
+ req = build_request(:update_application, params)
2351
+ req.send_request(options)
2352
+ end
2353
+
2354
+ # Updates the configuration settings for an Amazon GameLift Streams
2355
+ # stream group resource. You can change the description, the set of
2356
+ # locations, and the requested capacity of a stream group per location.
2357
+ # If you want to change the stream class, create a new stream group.
2358
+ #
2359
+ # Stream capacity represents the number of concurrent streams that can
2360
+ # be active at a time. You set stream capacity per location, per stream
2361
+ # group. There are two types of capacity: always-on and on-demand:
2362
+ #
2363
+ # * **Always-on**: The streaming capacity that is allocated and ready to
2364
+ # handle stream requests without delay. You pay for this capacity
2365
+ # whether it's in use or not. Best for quickest time from streaming
2366
+ # request to streaming session. </p> </li> <li> <p>
2367
+ # <b>On-demand</b>: The streaming capacity that Amazon GameLift
2368
+ # Streams can allocate in response to stream requests, and then
2369
+ # de-allocate when the session has terminated. This offers a cost
2370
+ # control measure at the expense of a greater startup time (typically
2371
+ # under 5 minutes). </p> </li> </ul> <p>To update a stream group,
2372
+ # specify the stream group's Amazon Resource Name (ARN) and provide
2373
+ # the new values. If the request is successful, Amazon GameLift
2374
+ # Streams returns the complete updated metadata for the stream
2375
+ # group.</p>
2376
+ #
2377
+ # ^
2378
+ #
2379
+ # @option params [String] :description
2380
+ # A descriptive label for the stream group.
2381
+ #
2382
+ # @option params [required, String] :identifier
2383
+ # An [Amazon Resource Name (ARN)][1] or ID that uniquely identifies the
2384
+ # stream group resource. Format example:
2385
+ # ARN-`arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/1AB2C3De4`
2386
+ # or ID-`1AB2C3De4`.
2387
+ #
2388
+ #
2389
+ #
2390
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html
2391
+ #
2392
+ # @option params [Array<Types::LocationConfiguration>] :location_configurations
2393
+ # A set of one or more locations and the streaming capacity for each
2394
+ # location.
2395
+ #
2396
+ # @return [Types::UpdateStreamGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2397
+ #
2398
+ # * {Types::UpdateStreamGroupOutput#arn #arn} => String
2399
+ # * {Types::UpdateStreamGroupOutput#associated_applications #associated_applications} => Array&lt;String&gt;
2400
+ # * {Types::UpdateStreamGroupOutput#created_at #created_at} => Time
2401
+ # * {Types::UpdateStreamGroupOutput#default_application #default_application} => Types::DefaultApplication
2402
+ # * {Types::UpdateStreamGroupOutput#description #description} => String
2403
+ # * {Types::UpdateStreamGroupOutput#id #id} => String
2404
+ # * {Types::UpdateStreamGroupOutput#last_updated_at #last_updated_at} => Time
2405
+ # * {Types::UpdateStreamGroupOutput#location_states #location_states} => Array&lt;Types::LocationState&gt;
2406
+ # * {Types::UpdateStreamGroupOutput#status #status} => String
2407
+ # * {Types::UpdateStreamGroupOutput#status_reason #status_reason} => String
2408
+ # * {Types::UpdateStreamGroupOutput#stream_class #stream_class} => String
2409
+ #
2410
+ # @example Request syntax with placeholder values
2411
+ #
2412
+ # resp = client.update_stream_group({
2413
+ # description: "Description",
2414
+ # identifier: "Identifier", # required
2415
+ # location_configurations: [
2416
+ # {
2417
+ # always_on_capacity: 1,
2418
+ # location_name: "LocationName", # required
2419
+ # on_demand_capacity: 1,
2420
+ # },
2421
+ # ],
2422
+ # })
2423
+ #
2424
+ # @example Response structure
2425
+ #
2426
+ # resp.arn #=> String
2427
+ # resp.associated_applications #=> Array
2428
+ # resp.associated_applications[0] #=> String
2429
+ # resp.created_at #=> Time
2430
+ # resp.default_application.arn #=> String
2431
+ # resp.default_application.id #=> String
2432
+ # resp.description #=> String
2433
+ # resp.id #=> String
2434
+ # resp.last_updated_at #=> Time
2435
+ # resp.location_states #=> Array
2436
+ # resp.location_states[0].allocated_capacity #=> Integer
2437
+ # resp.location_states[0].always_on_capacity #=> Integer
2438
+ # resp.location_states[0].idle_capacity #=> Integer
2439
+ # resp.location_states[0].location_name #=> String
2440
+ # resp.location_states[0].on_demand_capacity #=> Integer
2441
+ # resp.location_states[0].requested_capacity #=> Integer
2442
+ # resp.location_states[0].status #=> String, one of "ACTIVATING", "ACTIVE", "ERROR", "REMOVING"
2443
+ # resp.status #=> String, one of "ACTIVATING", "UPDATING_LOCATIONS", "ACTIVE", "ACTIVE_WITH_ERRORS", "ERROR", "DELETING"
2444
+ # resp.status_reason #=> String, one of "internalError", "noAvailableInstances"
2445
+ # resp.stream_class #=> String, one of "gen4n_high", "gen4n_ultra", "gen4n_win2022", "gen5n_high", "gen5n_ultra", "gen5n_win2022"
2446
+ #
2447
+ # @see http://docs.aws.amazon.com/goto/WebAPI/gameliftstreams-2018-05-10/UpdateStreamGroup AWS API Documentation
2448
+ #
2449
+ # @overload update_stream_group(params = {})
2450
+ # @param [Hash] params ({})
2451
+ def update_stream_group(params = {}, options = {})
2452
+ req = build_request(:update_stream_group, params)
2453
+ req.send_request(options)
2454
+ end
2455
+
2456
+ # @!endgroup
2457
+
2458
+ # @param params ({})
2459
+ # @api private
2460
+ def build_request(operation_name, params = {})
2461
+ handlers = @handlers.for(operation_name)
2462
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2463
+ Aws::Telemetry.module_to_tracer_name('Aws::GameLiftStreams')
2464
+ )
2465
+ context = Seahorse::Client::RequestContext.new(
2466
+ operation_name: operation_name,
2467
+ operation: config.api.operation(operation_name),
2468
+ client: self,
2469
+ params: params,
2470
+ config: config,
2471
+ tracer: tracer
2472
+ )
2473
+ context[:gem_name] = 'aws-sdk-gameliftstreams'
2474
+ context[:gem_version] = '1.0.0'
2475
+ Seahorse::Client::Request.new(handlers, context)
2476
+ end
2477
+
2478
+ # Polls an API operation until a resource enters a desired state.
2479
+ #
2480
+ # ## Basic Usage
2481
+ #
2482
+ # A waiter will call an API operation until:
2483
+ #
2484
+ # * It is successful
2485
+ # * It enters a terminal state
2486
+ # * It makes the maximum number of attempts
2487
+ #
2488
+ # In between attempts, the waiter will sleep.
2489
+ #
2490
+ # # polls in a loop, sleeping between attempts
2491
+ # client.wait_until(waiter_name, params)
2492
+ #
2493
+ # ## Configuration
2494
+ #
2495
+ # You can configure the maximum number of polling attempts, and the
2496
+ # delay (in seconds) between each polling attempt. You can pass
2497
+ # configuration as the final arguments hash.
2498
+ #
2499
+ # # poll for ~25 seconds
2500
+ # client.wait_until(waiter_name, params, {
2501
+ # max_attempts: 5,
2502
+ # delay: 5,
2503
+ # })
2504
+ #
2505
+ # ## Callbacks
2506
+ #
2507
+ # You can be notified before each polling attempt and before each
2508
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2509
+ # it will terminate the waiter.
2510
+ #
2511
+ # started_at = Time.now
2512
+ # client.wait_until(waiter_name, params, {
2513
+ #
2514
+ # # disable max attempts
2515
+ # max_attempts: nil,
2516
+ #
2517
+ # # poll for 1 hour, instead of a number of attempts
2518
+ # before_wait: -> (attempts, response) do
2519
+ # throw :failure if Time.now - started_at > 3600
2520
+ # end
2521
+ # })
2522
+ #
2523
+ # ## Handling Errors
2524
+ #
2525
+ # When a waiter is unsuccessful, it will raise an error.
2526
+ # All of the failure errors extend from
2527
+ # {Aws::Waiters::Errors::WaiterFailed}.
2528
+ #
2529
+ # begin
2530
+ # client.wait_until(...)
2531
+ # rescue Aws::Waiters::Errors::WaiterFailed
2532
+ # # resource did not enter the desired state in time
2533
+ # end
2534
+ #
2535
+ # ## Valid Waiters
2536
+ #
2537
+ # The following table lists the valid waiter names, the operations they call,
2538
+ # and the default `:delay` and `:max_attempts` values.
2539
+ #
2540
+ # | waiter_name | params | :delay | :max_attempts |
2541
+ # | --------------------- | --------------------------- | -------- | ------------- |
2542
+ # | application_deleted | {Client#get_application} | 2 | 60 |
2543
+ # | application_ready | {Client#get_application} | 2 | 60 |
2544
+ # | stream_group_active | {Client#get_stream_group} | 30 | 120 |
2545
+ # | stream_group_deleted | {Client#get_stream_group} | 30 | 60 |
2546
+ # | stream_session_active | {Client#get_stream_session} | 2 | 60 |
2547
+ #
2548
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2549
+ # because the waiter has entered a state that it will not transition
2550
+ # out of, preventing success.
2551
+ #
2552
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2553
+ # maximum number of attempts have been made, and the waiter is not
2554
+ # yet successful.
2555
+ #
2556
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2557
+ # while polling for a resource that is not expected.
2558
+ #
2559
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2560
+ # for an unknown state.
2561
+ #
2562
+ # @return [Boolean] Returns `true` if the waiter was successful.
2563
+ # @param [Symbol] waiter_name
2564
+ # @param [Hash] params ({})
2565
+ # @param [Hash] options ({})
2566
+ # @option options [Integer] :max_attempts
2567
+ # @option options [Integer] :delay
2568
+ # @option options [Proc] :before_attempt
2569
+ # @option options [Proc] :before_wait
2570
+ def wait_until(waiter_name, params = {}, options = {})
2571
+ w = waiter(waiter_name, options)
2572
+ yield(w.waiter) if block_given? # deprecated
2573
+ w.wait(params)
2574
+ end
2575
+
2576
+ # @api private
2577
+ # @deprecated
2578
+ def waiter_names
2579
+ waiters.keys
2580
+ end
2581
+
2582
+ private
2583
+
2584
+ # @param [Symbol] waiter_name
2585
+ # @param [Hash] options ({})
2586
+ def waiter(waiter_name, options = {})
2587
+ waiter_class = waiters[waiter_name]
2588
+ if waiter_class
2589
+ waiter_class.new(options.merge(client: self))
2590
+ else
2591
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2592
+ end
2593
+ end
2594
+
2595
+ def waiters
2596
+ {
2597
+ application_deleted: Waiters::ApplicationDeleted,
2598
+ application_ready: Waiters::ApplicationReady,
2599
+ stream_group_active: Waiters::StreamGroupActive,
2600
+ stream_group_deleted: Waiters::StreamGroupDeleted,
2601
+ stream_session_active: Waiters::StreamSessionActive
2602
+ }
2603
+ end
2604
+
2605
+ class << self
2606
+
2607
+ # @api private
2608
+ attr_reader :identifier
2609
+
2610
+ # @api private
2611
+ def errors_module
2612
+ Errors
2613
+ end
2614
+
2615
+ end
2616
+ end
2617
+ end