aws_sdk_gamelift/client/create_container_group_definition.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 [`CreateContainerGroupDefinition`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder) operation.
4 ///
5 /// - The fluent builder is configurable:
6 /// - [`name(impl Into<String>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_name):<br>required: **true**<br><p>A descriptive identifier for the container group definition. The name value must be unique in an Amazon Web Services Region.</p><br>
7 /// - [`container_group_type(ContainerGroupType)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::container_group_type) / [`set_container_group_type(Option<ContainerGroupType>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_container_group_type):<br>required: **false**<br><p>The type of container group being defined. Container group type determines how Amazon GameLift Servers deploys the container group on each fleet instance.</p> <p>Default value: <code>GAME_SERVER</code></p><br>
8 /// - [`total_memory_limit_mebibytes(i32)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::total_memory_limit_mebibytes) / [`set_total_memory_limit_mebibytes(Option<i32>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_total_memory_limit_mebibytes):<br>required: **true**<br><p>The maximum amount of memory (in MiB) to allocate to the container group. All containers in the group share this memory. If you specify memory limits for an individual container, the total value must be greater than any individual container's memory limit.</p> <p>Default value: 1024</p><br>
9 /// - [`total_vcpu_limit(f64)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::total_vcpu_limit) / [`set_total_vcpu_limit(Option<f64>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_total_vcpu_limit):<br>required: **true**<br><p>The maximum amount of vCPU units to allocate to the container group (1 vCPU is equal to 1024 CPU units). All containers in the group share this memory. If you specify vCPU limits for individual containers, the total value must be equal to or greater than the sum of the CPU limits for all containers in the group.</p> <p>Default value: 1</p><br>
10 /// - [`game_server_container_definition(GameServerContainerDefinitionInput)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::game_server_container_definition) / [`set_game_server_container_definition(Option<GameServerContainerDefinitionInput>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_game_server_container_definition):<br>required: **false**<br><p>The definition for the game server container in this group. Define a game server container only when the container group type is <code>GAME_SERVER</code>. Game server containers specify a container image with your game server build. You can pass in your container definitions as a JSON file.</p><br>
11 /// - [`support_container_definitions(SupportContainerDefinitionInput)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::support_container_definitions) / [`set_support_container_definitions(Option<Vec::<SupportContainerDefinitionInput>>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_support_container_definitions):<br>required: **false**<br><p>One or more definition for support containers in this group. You can define a support container in any type of container group. You can pass in your container definitions as a JSON file.</p><br>
12 /// - [`operating_system(ContainerOperatingSystem)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::operating_system) / [`set_operating_system(Option<ContainerOperatingSystem>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_operating_system):<br>required: **true**<br><p>The platform that all containers in the group use. Containers in a group must run on the same operating system.</p> <p>Default value: <code>AMAZON_LINUX_2023</code></p><note> <p>Amazon Linux 2 (AL2) will reach end of support on 6/30/2025. See more details in the <a href="http://aws.amazon.com/amazon-linux-2/faqs/">Amazon Linux 2 FAQs</a>. For game servers that are hosted on AL2 and use server SDK version 4.x for Amazon GameLift Servers, first update the game server build to server SDK 5.x, and then deploy to AL2023 instances. See <a href="https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk5-migration.html"> Migrate to server SDK version 5.</a></p> </note><br>
13 /// - [`version_description(impl Into<String>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::version_description) / [`set_version_description(Option<String>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_version_description):<br>required: **false**<br><p>A description for the initial version of this container group definition.</p><br>
14 /// - [`tags(Tag)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::set_tags):<br>required: **false**<br><p>A list of labels to assign to the container group definition resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, 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>.</p><br>
15 /// - On success, responds with [`CreateContainerGroupDefinitionOutput`](crate::operation::create_container_group_definition::CreateContainerGroupDefinitionOutput) with field(s):
16 /// - [`container_group_definition(Option<ContainerGroupDefinition>)`](crate::operation::create_container_group_definition::CreateContainerGroupDefinitionOutput::container_group_definition): <p>The properties of the new container group definition resource. You can use this resource to create a container fleet.</p>
17 /// - On failure, responds with [`SdkError<CreateContainerGroupDefinitionError>`](crate::operation::create_container_group_definition::CreateContainerGroupDefinitionError)
18 pub fn create_container_group_definition(
19 &self,
20 ) -> crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder {
21 crate::operation::create_container_group_definition::builders::CreateContainerGroupDefinitionFluentBuilder::new(self.handle.clone())
22 }
23}