aws_sdk_gameliftstreams/operation/create_stream_group/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_stream_group::_create_stream_group_output::CreateStreamGroupOutputBuilder;
3
4pub use crate::operation::create_stream_group::_create_stream_group_input::CreateStreamGroupInputBuilder;
5
6impl crate::operation::create_stream_group::builders::CreateStreamGroupInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_stream_group::CreateStreamGroupOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_stream_group::CreateStreamGroupError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_stream_group();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateStreamGroup`.
24///
25/// <p>Stream groups manage how Amazon GameLift Streams allocates resources and handles concurrent streams, allowing you to effectively manage capacity and costs. Within a stream group, you specify an application to stream, streaming locations and their capacity, and the stream class you want to use when streaming applications to your end-users. A stream class defines the hardware configuration of the compute resources that Amazon GameLift Streams will use when streaming, such as the CPU, GPU, and memory.</p>
26/// <p>Stream capacity represents the number of concurrent streams that can be active at a time. You set stream capacity per location, per stream group. There are two types of capacity, always-on and on-demand:</p>
27/// <ul>
28/// <li>
29/// <p><b>Always-on</b>: The streaming capacity that is allocated and ready to handle stream requests without delay. You pay for this capacity whether it's in use or not. Best for quickest time from streaming request to streaming session. Default is 1 (2 for high stream classes) when creating a stream group or adding a location.</p></li>
30/// <li>
31/// <p><b>On-demand</b>: The streaming capacity that Amazon GameLift Streams can allocate in response to stream requests, and then de-allocate when the session has terminated. This offers a cost control measure at the expense of a greater startup time (typically under 5 minutes). Default is 0 when creating a stream group or adding a location.</p></li>
32/// </ul>
33/// <p>Values for capacity must be whole number multiples of the tenancy value of the stream group's stream class.</p>
34/// <p>To adjust the capacity of any <code>ACTIVE</code> stream group, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UpdateStreamGroup.html">UpdateStreamGroup</a>.</p>
35/// <p>If the <code>CreateStreamGroup</code> request is successful, Amazon GameLift Streams assigns a unique ID to the stream group resource and sets the status to <code>ACTIVATING</code>. It can take a few minutes for Amazon GameLift Streams to finish creating the stream group while it searches for unallocated compute resources and provisions them. When complete, the stream group status will be <code>ACTIVE</code> and you can start stream sessions by using <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_StartStreamSession.html">StartStreamSession</a>. To check the stream group's status, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamGroup.html">GetStreamGroup</a>.</p>
36/// <p>Stream groups should be recreated every 3-4 weeks to pick up important service updates and fixes. Stream groups that are older than 180 days can no longer be updated with new application associations. Stream groups expire when they are 365 days old, at which point they can no longer stream sessions. The exact expiration date is indicated by the date value in the <code>ExpiresAt</code> field.</p>
37#[derive(::std::clone::Clone, ::std::fmt::Debug)]
38pub struct CreateStreamGroupFluentBuilder {
39    handle: ::std::sync::Arc<crate::client::Handle>,
40    inner: crate::operation::create_stream_group::builders::CreateStreamGroupInputBuilder,
41    config_override: ::std::option::Option<crate::config::Builder>,
42}
43impl
44    crate::client::customize::internal::CustomizableSend<
45        crate::operation::create_stream_group::CreateStreamGroupOutput,
46        crate::operation::create_stream_group::CreateStreamGroupError,
47    > for CreateStreamGroupFluentBuilder
48{
49    fn send(
50        self,
51        config_override: crate::config::Builder,
52    ) -> crate::client::customize::internal::BoxFuture<
53        crate::client::customize::internal::SendResult<
54            crate::operation::create_stream_group::CreateStreamGroupOutput,
55            crate::operation::create_stream_group::CreateStreamGroupError,
56        >,
57    > {
58        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
59    }
60}
61impl CreateStreamGroupFluentBuilder {
62    /// Creates a new `CreateStreamGroupFluentBuilder`.
63    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
64        Self {
65            handle,
66            inner: ::std::default::Default::default(),
67            config_override: ::std::option::Option::None,
68        }
69    }
70    /// Access the CreateStreamGroup as a reference.
71    pub fn as_input(&self) -> &crate::operation::create_stream_group::builders::CreateStreamGroupInputBuilder {
72        &self.inner
73    }
74    /// Sends the request and returns the response.
75    ///
76    /// If an error occurs, an `SdkError` will be returned with additional details that
77    /// can be matched against.
78    ///
79    /// By default, any retryable failures will be retried twice. Retry behavior
80    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
81    /// set when configuring the client.
82    pub async fn send(
83        self,
84    ) -> ::std::result::Result<
85        crate::operation::create_stream_group::CreateStreamGroupOutput,
86        ::aws_smithy_runtime_api::client::result::SdkError<
87            crate::operation::create_stream_group::CreateStreamGroupError,
88            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
89        >,
90    > {
91        let input = self
92            .inner
93            .build()
94            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
95        let runtime_plugins = crate::operation::create_stream_group::CreateStreamGroup::operation_runtime_plugins(
96            self.handle.runtime_plugins.clone(),
97            &self.handle.conf,
98            self.config_override,
99        );
100        crate::operation::create_stream_group::CreateStreamGroup::orchestrate(&runtime_plugins, input).await
101    }
102
103    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
104    pub fn customize(
105        self,
106    ) -> crate::client::customize::CustomizableOperation<
107        crate::operation::create_stream_group::CreateStreamGroupOutput,
108        crate::operation::create_stream_group::CreateStreamGroupError,
109        Self,
110    > {
111        crate::client::customize::CustomizableOperation::new(self)
112    }
113    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
114        self.set_config_override(::std::option::Option::Some(config_override.into()));
115        self
116    }
117
118    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
119        self.config_override = config_override;
120        self
121    }
122    /// <p>A descriptive label for the stream group.</p>
123    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
124        self.inner = self.inner.description(input.into());
125        self
126    }
127    /// <p>A descriptive label for the stream group.</p>
128    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
129        self.inner = self.inner.set_description(input);
130        self
131    }
132    /// <p>A descriptive label for the stream group.</p>
133    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
134        self.inner.get_description()
135    }
136    /// <p>The target stream quality for sessions that are hosted in this stream group. Set a stream class that is appropriate to the type of content that you're streaming. Stream class determines the type of computing resources Amazon GameLift Streams uses and impacts the cost of streaming. The following options are available:</p>
137    /// <p>A stream class can be one of the following:</p>
138    /// <ul>
139    /// <li>
140    /// <p><b> <code>gen5n_win2022</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.4, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor GPU.</p>
141    /// <ul>
142    /// <li>
143    /// <p>Reference resolution: 1080p</p></li>
144    /// <li>
145    /// <p>Reference frame rate: 60 fps</p></li>
146    /// <li>
147    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM</p></li>
148    /// <li>
149    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
150    /// </ul></li>
151    /// <li>
152    /// <p><b> <code>gen5n_high</code> (NVIDIA, high)</b> Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor GPU.</p>
153    /// <ul>
154    /// <li>
155    /// <p>Reference resolution: 1080p</p></li>
156    /// <li>
157    /// <p>Reference frame rate: 60 fps</p></li>
158    /// <li>
159    /// <p>Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM</p></li>
160    /// <li>
161    /// <p>Tenancy: Supports up to 2 concurrent stream sessions</p></li>
162    /// </ul></li>
163    /// <li>
164    /// <p><b> <code>gen5n_ultra</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor GPU.</p>
165    /// <ul>
166    /// <li>
167    /// <p>Reference resolution: 1080p</p></li>
168    /// <li>
169    /// <p>Reference frame rate: 60 fps</p></li>
170    /// <li>
171    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM</p></li>
172    /// <li>
173    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
174    /// </ul></li>
175    /// <li>
176    /// <p><b> <code>gen4n_win2022</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.4, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor GPU.</p>
177    /// <ul>
178    /// <li>
179    /// <p>Reference resolution: 1080p</p></li>
180    /// <li>
181    /// <p>Reference frame rate: 60 fps</p></li>
182    /// <li>
183    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM</p></li>
184    /// <li>
185    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
186    /// </ul></li>
187    /// <li>
188    /// <p><b> <code>gen4n_high</code> (NVIDIA, high)</b> Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor GPU.</p>
189    /// <ul>
190    /// <li>
191    /// <p>Reference resolution: 1080p</p></li>
192    /// <li>
193    /// <p>Reference frame rate: 60 fps</p></li>
194    /// <li>
195    /// <p>Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM</p></li>
196    /// <li>
197    /// <p>Tenancy: Supports up to 2 concurrent stream sessions</p></li>
198    /// </ul></li>
199    /// <li>
200    /// <p><b> <code>gen4n_ultra</code> (NVIDIA, ultra)</b> Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor GPU.</p>
201    /// <ul>
202    /// <li>
203    /// <p>Reference resolution: 1080p</p></li>
204    /// <li>
205    /// <p>Reference frame rate: 60 fps</p></li>
206    /// <li>
207    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM</p></li>
208    /// <li>
209    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
210    /// </ul></li>
211    /// </ul>
212    pub fn stream_class(mut self, input: crate::types::StreamClass) -> Self {
213        self.inner = self.inner.stream_class(input);
214        self
215    }
216    /// <p>The target stream quality for sessions that are hosted in this stream group. Set a stream class that is appropriate to the type of content that you're streaming. Stream class determines the type of computing resources Amazon GameLift Streams uses and impacts the cost of streaming. The following options are available:</p>
217    /// <p>A stream class can be one of the following:</p>
218    /// <ul>
219    /// <li>
220    /// <p><b> <code>gen5n_win2022</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.4, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor GPU.</p>
221    /// <ul>
222    /// <li>
223    /// <p>Reference resolution: 1080p</p></li>
224    /// <li>
225    /// <p>Reference frame rate: 60 fps</p></li>
226    /// <li>
227    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM</p></li>
228    /// <li>
229    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
230    /// </ul></li>
231    /// <li>
232    /// <p><b> <code>gen5n_high</code> (NVIDIA, high)</b> Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor GPU.</p>
233    /// <ul>
234    /// <li>
235    /// <p>Reference resolution: 1080p</p></li>
236    /// <li>
237    /// <p>Reference frame rate: 60 fps</p></li>
238    /// <li>
239    /// <p>Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM</p></li>
240    /// <li>
241    /// <p>Tenancy: Supports up to 2 concurrent stream sessions</p></li>
242    /// </ul></li>
243    /// <li>
244    /// <p><b> <code>gen5n_ultra</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor GPU.</p>
245    /// <ul>
246    /// <li>
247    /// <p>Reference resolution: 1080p</p></li>
248    /// <li>
249    /// <p>Reference frame rate: 60 fps</p></li>
250    /// <li>
251    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM</p></li>
252    /// <li>
253    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
254    /// </ul></li>
255    /// <li>
256    /// <p><b> <code>gen4n_win2022</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.4, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor GPU.</p>
257    /// <ul>
258    /// <li>
259    /// <p>Reference resolution: 1080p</p></li>
260    /// <li>
261    /// <p>Reference frame rate: 60 fps</p></li>
262    /// <li>
263    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM</p></li>
264    /// <li>
265    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
266    /// </ul></li>
267    /// <li>
268    /// <p><b> <code>gen4n_high</code> (NVIDIA, high)</b> Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor GPU.</p>
269    /// <ul>
270    /// <li>
271    /// <p>Reference resolution: 1080p</p></li>
272    /// <li>
273    /// <p>Reference frame rate: 60 fps</p></li>
274    /// <li>
275    /// <p>Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM</p></li>
276    /// <li>
277    /// <p>Tenancy: Supports up to 2 concurrent stream sessions</p></li>
278    /// </ul></li>
279    /// <li>
280    /// <p><b> <code>gen4n_ultra</code> (NVIDIA, ultra)</b> Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor GPU.</p>
281    /// <ul>
282    /// <li>
283    /// <p>Reference resolution: 1080p</p></li>
284    /// <li>
285    /// <p>Reference frame rate: 60 fps</p></li>
286    /// <li>
287    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM</p></li>
288    /// <li>
289    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
290    /// </ul></li>
291    /// </ul>
292    pub fn set_stream_class(mut self, input: ::std::option::Option<crate::types::StreamClass>) -> Self {
293        self.inner = self.inner.set_stream_class(input);
294        self
295    }
296    /// <p>The target stream quality for sessions that are hosted in this stream group. Set a stream class that is appropriate to the type of content that you're streaming. Stream class determines the type of computing resources Amazon GameLift Streams uses and impacts the cost of streaming. The following options are available:</p>
297    /// <p>A stream class can be one of the following:</p>
298    /// <ul>
299    /// <li>
300    /// <p><b> <code>gen5n_win2022</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.4, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA A10G Tensor GPU.</p>
301    /// <ul>
302    /// <li>
303    /// <p>Reference resolution: 1080p</p></li>
304    /// <li>
305    /// <p>Reference frame rate: 60 fps</p></li>
306    /// <li>
307    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM</p></li>
308    /// <li>
309    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
310    /// </ul></li>
311    /// <li>
312    /// <p><b> <code>gen5n_high</code> (NVIDIA, high)</b> Supports applications with moderate to high 3D scene complexity. Uses NVIDIA A10G Tensor GPU.</p>
313    /// <ul>
314    /// <li>
315    /// <p>Reference resolution: 1080p</p></li>
316    /// <li>
317    /// <p>Reference frame rate: 60 fps</p></li>
318    /// <li>
319    /// <p>Workload specifications: 4 vCPUs, 16 GB RAM, 12 GB VRAM</p></li>
320    /// <li>
321    /// <p>Tenancy: Supports up to 2 concurrent stream sessions</p></li>
322    /// </ul></li>
323    /// <li>
324    /// <p><b> <code>gen5n_ultra</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Uses dedicated NVIDIA A10G Tensor GPU.</p>
325    /// <ul>
326    /// <li>
327    /// <p>Reference resolution: 1080p</p></li>
328    /// <li>
329    /// <p>Reference frame rate: 60 fps</p></li>
330    /// <li>
331    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 24 GB VRAM</p></li>
332    /// <li>
333    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
334    /// </ul></li>
335    /// <li>
336    /// <p><b> <code>gen4n_win2022</code> (NVIDIA, ultra)</b> Supports applications with extremely high 3D scene complexity. Runs applications on Microsoft Windows Server 2022 Base and supports DirectX 12. Compatible with Unreal Engine versions up through 5.4, 32 and 64-bit applications, and anti-cheat technology. Uses NVIDIA T4 Tensor GPU.</p>
337    /// <ul>
338    /// <li>
339    /// <p>Reference resolution: 1080p</p></li>
340    /// <li>
341    /// <p>Reference frame rate: 60 fps</p></li>
342    /// <li>
343    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM</p></li>
344    /// <li>
345    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
346    /// </ul></li>
347    /// <li>
348    /// <p><b> <code>gen4n_high</code> (NVIDIA, high)</b> Supports applications with moderate to high 3D scene complexity. Uses NVIDIA T4 Tensor GPU.</p>
349    /// <ul>
350    /// <li>
351    /// <p>Reference resolution: 1080p</p></li>
352    /// <li>
353    /// <p>Reference frame rate: 60 fps</p></li>
354    /// <li>
355    /// <p>Workload specifications: 4 vCPUs, 16 GB RAM, 8 GB VRAM</p></li>
356    /// <li>
357    /// <p>Tenancy: Supports up to 2 concurrent stream sessions</p></li>
358    /// </ul></li>
359    /// <li>
360    /// <p><b> <code>gen4n_ultra</code> (NVIDIA, ultra)</b> Supports applications with high 3D scene complexity. Uses dedicated NVIDIA T4 Tensor GPU.</p>
361    /// <ul>
362    /// <li>
363    /// <p>Reference resolution: 1080p</p></li>
364    /// <li>
365    /// <p>Reference frame rate: 60 fps</p></li>
366    /// <li>
367    /// <p>Workload specifications: 8 vCPUs, 32 GB RAM, 16 GB VRAM</p></li>
368    /// <li>
369    /// <p>Tenancy: Supports 1 concurrent stream session</p></li>
370    /// </ul></li>
371    /// </ul>
372    pub fn get_stream_class(&self) -> &::std::option::Option<crate::types::StreamClass> {
373        self.inner.get_stream_class()
374    }
375    /// <p>The unique identifier of the Amazon GameLift Streams application that you want to set as the default application in a stream group. The application that you specify must be in <code>READY</code> status. The default application is pre-cached on always-on compute resources, reducing stream startup times. Other applications are automatically cached as needed.</p>
376    /// <p>If you do not link an application when you create a stream group, you will need to link one later, before you can start streaming, using <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_AssociateApplications.html">AssociateApplications</a>.</p>
377    /// <p>This value is an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> or ID that uniquely identifies the application resource. Example ARN: <code>arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6</code>. Example ID: <code>a-9ZY8X7Wv6</code>.</p>
378    pub fn default_application_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
379        self.inner = self.inner.default_application_identifier(input.into());
380        self
381    }
382    /// <p>The unique identifier of the Amazon GameLift Streams application that you want to set as the default application in a stream group. The application that you specify must be in <code>READY</code> status. The default application is pre-cached on always-on compute resources, reducing stream startup times. Other applications are automatically cached as needed.</p>
383    /// <p>If you do not link an application when you create a stream group, you will need to link one later, before you can start streaming, using <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_AssociateApplications.html">AssociateApplications</a>.</p>
384    /// <p>This value is an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> or ID that uniquely identifies the application resource. Example ARN: <code>arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6</code>. Example ID: <code>a-9ZY8X7Wv6</code>.</p>
385    pub fn set_default_application_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
386        self.inner = self.inner.set_default_application_identifier(input);
387        self
388    }
389    /// <p>The unique identifier of the Amazon GameLift Streams application that you want to set as the default application in a stream group. The application that you specify must be in <code>READY</code> status. The default application is pre-cached on always-on compute resources, reducing stream startup times. Other applications are automatically cached as needed.</p>
390    /// <p>If you do not link an application when you create a stream group, you will need to link one later, before you can start streaming, using <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_AssociateApplications.html">AssociateApplications</a>.</p>
391    /// <p>This value is an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> or ID that uniquely identifies the application resource. Example ARN: <code>arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6</code>. Example ID: <code>a-9ZY8X7Wv6</code>.</p>
392    pub fn get_default_application_identifier(&self) -> &::std::option::Option<::std::string::String> {
393        self.inner.get_default_application_identifier()
394    }
395    ///
396    /// Appends an item to `LocationConfigurations`.
397    ///
398    /// To override the contents of this collection use [`set_location_configurations`](Self::set_location_configurations).
399    ///
400    /// <p>A set of one or more locations and the streaming capacity for each location.</p>
401    pub fn location_configurations(mut self, input: crate::types::LocationConfiguration) -> Self {
402        self.inner = self.inner.location_configurations(input);
403        self
404    }
405    /// <p>A set of one or more locations and the streaming capacity for each location.</p>
406    pub fn set_location_configurations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::LocationConfiguration>>) -> Self {
407        self.inner = self.inner.set_location_configurations(input);
408        self
409    }
410    /// <p>A set of one or more locations and the streaming capacity for each location.</p>
411    pub fn get_location_configurations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LocationConfiguration>> {
412        self.inner.get_location_configurations()
413    }
414    ///
415    /// Adds a key-value pair to `Tags`.
416    ///
417    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
418    ///
419    /// <p>A list of labels to assign to the new stream group resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
420    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
421        self.inner = self.inner.tags(k.into(), v.into());
422        self
423    }
424    /// <p>A list of labels to assign to the new stream group resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
425    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
426        self.inner = self.inner.set_tags(input);
427        self
428    }
429    /// <p>A list of labels to assign to the new stream group resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
430    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
431        self.inner.get_tags()
432    }
433    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
434    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
435        self.inner = self.inner.client_token(input.into());
436        self
437    }
438    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
439    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
440        self.inner = self.inner.set_client_token(input);
441        self
442    }
443    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
444    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
445        self.inner.get_client_token()
446    }
447}