aws_sdk_gameliftstreams/client/
create_application.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2impl super::Client {
3    /// Constructs a fluent builder for the [`CreateApplication`](crate::operation::create_application::builders::CreateApplicationFluentBuilder) operation.
4    ///
5    /// - The fluent builder is configurable:
6    ///   - [`description(impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_description):<br>required: **true**<br><p>A human-readable label for the application. You can update this value later.</p><br>
7    ///   - [`runtime_environment(RuntimeEnvironment)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::runtime_environment) / [`set_runtime_environment(Option<RuntimeEnvironment>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_runtime_environment):<br>required: **true**<br><p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p> <p>A runtime environment can be one of the following:</p> <ul>  <li>   <p>For Linux applications</p>   <ul>    <li>     <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>   </ul></li>  <li>   <p>For Windows applications</p>   <ul>    <li>     <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>    <li>     <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>    <li>     <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>    <li>     <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>   </ul></li> </ul><br>
8    ///   - [`executable_path(impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::executable_path) / [`set_executable_path(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_executable_path):<br>required: **true**<br><p>The path and file name of the executable file that launches the content for streaming. Enter a path value that is relative to the location set in <code>ApplicationSourceUri</code>.</p><br>
9    ///   - [`application_source_uri(impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::application_source_uri) / [`set_application_source_uri(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_application_source_uri):<br>required: **true**<br><p>The location of the content that you want to stream. Enter an Amazon S3 URI to a bucket that contains your game or other application. The location can have a multi-level prefix structure, but it must include all the files needed to run the content. Amazon GameLift Streams copies everything under the specified location.</p> <p>This value is immutable. To designate a different content location, create a new application.</p><note>  <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p> </note><br>
10    ///   - [`application_log_paths(impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::application_log_paths) / [`set_application_log_paths(Option<Vec::<String>>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_application_log_paths):<br>required: **false**<br><p>Locations of log files that your content generates during a stream session. Enter path values that are relative to the <code>ApplicationSourceUri</code> location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p><br>
11    ///   - [`application_log_output_uri(impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::application_log_output_uri) / [`set_application_log_output_uri(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_application_log_output_uri):<br>required: **false**<br><p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p><note>  <p>The log bucket must have permissions that give Amazon GameLift Streams access to write the log files. For more information, see <a href="https://docs.aws.amazon.com/gameliftstreams/latest/developerguide/applications.html#application-bucket-permission-template">Application log bucket permission policy</a> in the <i>Amazon GameLift Streams Developer Guide</i>.</p> </note><br>
12    ///   - [`tags(impl Into<String>, impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::tags) / [`set_tags(Option<HashMap::<String, String>>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_tags):<br>required: **false**<br><p>A list of labels to assign to the new application 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><br>
13    ///   - [`client_token(impl Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_client_token):<br>required: **false**<br><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><br>
14    /// - On success, responds with [`CreateApplicationOutput`](crate::operation::create_application::CreateApplicationOutput) with field(s):
15    ///   - [`arn(String)`](crate::operation::create_application::CreateApplicationOutput::arn): <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> that's assigned to an application resource and uniquely identifies it across all Amazon Web Services Regions. Format is <code>arn:aws:gameliftstreams:\[AWS Region\]:\[AWS account\]:application/\[resource ID\]</code>.</p>
16    ///   - [`description(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::description): <p>A human-readable label for the application. You can edit this value.</p>
17    ///   - [`runtime_environment(Option<RuntimeEnvironment>)`](crate::operation::create_application::CreateApplicationOutput::runtime_environment): <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p> <p>A runtime environment can be one of the following:</p> <ul>  <li>   <p>For Linux applications</p>   <ul>    <li>     <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>   </ul></li>  <li>   <p>For Windows applications</p>   <ul>    <li>     <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>    <li>     <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>    <li>     <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>    <li>     <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>   </ul></li> </ul>
18    ///   - [`executable_path(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::executable_path): <p>The path and file name of the executable file that launches the content for streaming.</p>
19    ///   - [`application_log_paths(Option<Vec::<String>>)`](crate::operation::create_application::CreateApplicationOutput::application_log_paths): <p>Locations of log files that your content generates during a stream session. Amazon GameLift Streams uploads log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p>
20    ///   - [`application_log_output_uri(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::application_log_output_uri): <p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p>
21    ///   - [`application_source_uri(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::application_source_uri): <p>The original Amazon S3 location of uploaded stream content for the application.</p>
22    ///   - [`id(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::id): <p>A unique ID value that is assigned to the resource when it's created. Format example: <code>a-9ZY8X7Wv6</code>.</p>
23    ///   - [`status(Option<ApplicationStatus>)`](crate::operation::create_application::CreateApplicationOutput::status): <p>The current status of the application resource. Possible statuses include the following:</p> <ul>  <li>   <p><code>INITIALIZED</code>: Amazon GameLift Streams has received the request and is initiating the work flow to create an application.</p></li>  <li>   <p><code>PROCESSING</code>: The create application work flow is in process. Amazon GameLift Streams is copying the content and caching for future deployment in a stream group.</p></li>  <li>   <p><code>READY</code>: The application is ready to deploy in a stream group.</p></li>  <li>   <p><code>ERROR</code>: An error occurred when setting up the application. See <code>StatusReason</code> for more information.</p></li>  <li>   <p><code>DELETING</code>: Amazon GameLift Streams is in the process of deleting the application.</p></li> </ul>
24    ///   - [`status_reason(Option<ApplicationStatusReason>)`](crate::operation::create_application::CreateApplicationOutput::status_reason): <p>A short description of the status reason when the application is in <code>ERROR</code> status.</p>
25    ///   - [`replication_statuses(Option<Vec::<ReplicationStatus>>)`](crate::operation::create_application::CreateApplicationOutput::replication_statuses): <p>A set of replication statuses for each location.</p>
26    ///   - [`created_at(Option<DateTime>)`](crate::operation::create_application::CreateApplicationOutput::created_at): <p>A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
27    ///   - [`last_updated_at(Option<DateTime>)`](crate::operation::create_application::CreateApplicationOutput::last_updated_at): <p>A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
28    ///   - [`associated_stream_groups(Option<Vec::<String>>)`](crate::operation::create_application::CreateApplicationOutput::associated_stream_groups): <p>A newly created application is not associated to any stream groups. This value is empty.</p>
29    /// - On failure, responds with [`SdkError<CreateApplicationError>`](crate::operation::create_application::CreateApplicationError)
30    pub fn create_application(&self) -> crate::operation::create_application::builders::CreateApplicationFluentBuilder {
31        crate::operation::create_application::builders::CreateApplicationFluentBuilder::new(self.handle.clone())
32    }
33}