/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes an Amazon GameLift managed container fleet. See
* Also:
AWS
* API Reference
A unique identifier for the container fleet to retrieve.
*/ inline const Aws::String& GetFleetId() const{ return m_fleetId; } inline bool FleetIdHasBeenSet() const { return m_fleetIdHasBeenSet; } inline void SetFleetId(const Aws::String& value) { m_fleetIdHasBeenSet = true; m_fleetId = value; } inline void SetFleetId(Aws::String&& value) { m_fleetIdHasBeenSet = true; m_fleetId = std::move(value); } inline void SetFleetId(const char* value) { m_fleetIdHasBeenSet = true; m_fleetId.assign(value); } inline ContainerFleet& WithFleetId(const Aws::String& value) { SetFleetId(value); return *this;} inline ContainerFleet& WithFleetId(Aws::String&& value) { SetFleetId(std::move(value)); return *this;} inline ContainerFleet& WithFleetId(const char* value) { SetFleetId(value); return *this;} ///@} ///@{ /** *The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift fleet resource and uniquely identifies it.
* ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.
* In a GameLift fleet ARN, the resource ID matches the FleetId
* value.
The unique identifier for an Identity and Access Management (IAM) role with * permissions to run your containers on resources that are managed by Amazon * GameLift. See Set * up an IAM service role. This fleet property can't be changed.
*/ inline const Aws::String& GetFleetRoleArn() const{ return m_fleetRoleArn; } inline bool FleetRoleArnHasBeenSet() const { return m_fleetRoleArnHasBeenSet; } inline void SetFleetRoleArn(const Aws::String& value) { m_fleetRoleArnHasBeenSet = true; m_fleetRoleArn = value; } inline void SetFleetRoleArn(Aws::String&& value) { m_fleetRoleArnHasBeenSet = true; m_fleetRoleArn = std::move(value); } inline void SetFleetRoleArn(const char* value) { m_fleetRoleArnHasBeenSet = true; m_fleetRoleArn.assign(value); } inline ContainerFleet& WithFleetRoleArn(const Aws::String& value) { SetFleetRoleArn(value); return *this;} inline ContainerFleet& WithFleetRoleArn(Aws::String&& value) { SetFleetRoleArn(std::move(value)); return *this;} inline ContainerFleet& WithFleetRoleArn(const char* value) { SetFleetRoleArn(value); return *this;} ///@} ///@{ /** *The name of the fleet's game server container group definition, which * describes how to deploy containers with your game server build and support * software onto each fleet instance.
*/ inline const Aws::String& GetGameServerContainerGroupDefinitionName() const{ return m_gameServerContainerGroupDefinitionName; } inline bool GameServerContainerGroupDefinitionNameHasBeenSet() const { return m_gameServerContainerGroupDefinitionNameHasBeenSet; } inline void SetGameServerContainerGroupDefinitionName(const Aws::String& value) { m_gameServerContainerGroupDefinitionNameHasBeenSet = true; m_gameServerContainerGroupDefinitionName = value; } inline void SetGameServerContainerGroupDefinitionName(Aws::String&& value) { m_gameServerContainerGroupDefinitionNameHasBeenSet = true; m_gameServerContainerGroupDefinitionName = std::move(value); } inline void SetGameServerContainerGroupDefinitionName(const char* value) { m_gameServerContainerGroupDefinitionNameHasBeenSet = true; m_gameServerContainerGroupDefinitionName.assign(value); } inline ContainerFleet& WithGameServerContainerGroupDefinitionName(const Aws::String& value) { SetGameServerContainerGroupDefinitionName(value); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionName(Aws::String&& value) { SetGameServerContainerGroupDefinitionName(std::move(value)); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionName(const char* value) { SetGameServerContainerGroupDefinitionName(value); return *this;} ///@} ///@{ /** *The Amazon Resource Name (ARN) * that is assigned to the fleet's game server container group. The ARN value also * identifies the specific container group definition version in use.
*/ inline const Aws::String& GetGameServerContainerGroupDefinitionArn() const{ return m_gameServerContainerGroupDefinitionArn; } inline bool GameServerContainerGroupDefinitionArnHasBeenSet() const { return m_gameServerContainerGroupDefinitionArnHasBeenSet; } inline void SetGameServerContainerGroupDefinitionArn(const Aws::String& value) { m_gameServerContainerGroupDefinitionArnHasBeenSet = true; m_gameServerContainerGroupDefinitionArn = value; } inline void SetGameServerContainerGroupDefinitionArn(Aws::String&& value) { m_gameServerContainerGroupDefinitionArnHasBeenSet = true; m_gameServerContainerGroupDefinitionArn = std::move(value); } inline void SetGameServerContainerGroupDefinitionArn(const char* value) { m_gameServerContainerGroupDefinitionArnHasBeenSet = true; m_gameServerContainerGroupDefinitionArn.assign(value); } inline ContainerFleet& WithGameServerContainerGroupDefinitionArn(const Aws::String& value) { SetGameServerContainerGroupDefinitionArn(value); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionArn(Aws::String&& value) { SetGameServerContainerGroupDefinitionArn(std::move(value)); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionArn(const char* value) { SetGameServerContainerGroupDefinitionArn(value); return *this;} ///@} ///@{ /** *The name of the fleet's per-instance container group definition.
*/ inline const Aws::String& GetPerInstanceContainerGroupDefinitionName() const{ return m_perInstanceContainerGroupDefinitionName; } inline bool PerInstanceContainerGroupDefinitionNameHasBeenSet() const { return m_perInstanceContainerGroupDefinitionNameHasBeenSet; } inline void SetPerInstanceContainerGroupDefinitionName(const Aws::String& value) { m_perInstanceContainerGroupDefinitionNameHasBeenSet = true; m_perInstanceContainerGroupDefinitionName = value; } inline void SetPerInstanceContainerGroupDefinitionName(Aws::String&& value) { m_perInstanceContainerGroupDefinitionNameHasBeenSet = true; m_perInstanceContainerGroupDefinitionName = std::move(value); } inline void SetPerInstanceContainerGroupDefinitionName(const char* value) { m_perInstanceContainerGroupDefinitionNameHasBeenSet = true; m_perInstanceContainerGroupDefinitionName.assign(value); } inline ContainerFleet& WithPerInstanceContainerGroupDefinitionName(const Aws::String& value) { SetPerInstanceContainerGroupDefinitionName(value); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionName(Aws::String&& value) { SetPerInstanceContainerGroupDefinitionName(std::move(value)); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionName(const char* value) { SetPerInstanceContainerGroupDefinitionName(value); return *this;} ///@} ///@{ /** *The Amazon Resource Name (ARN) * that is assigned to the fleet's per-instance container group. The ARN value also * identifies the specific container group definition version in use.
*/ inline const Aws::String& GetPerInstanceContainerGroupDefinitionArn() const{ return m_perInstanceContainerGroupDefinitionArn; } inline bool PerInstanceContainerGroupDefinitionArnHasBeenSet() const { return m_perInstanceContainerGroupDefinitionArnHasBeenSet; } inline void SetPerInstanceContainerGroupDefinitionArn(const Aws::String& value) { m_perInstanceContainerGroupDefinitionArnHasBeenSet = true; m_perInstanceContainerGroupDefinitionArn = value; } inline void SetPerInstanceContainerGroupDefinitionArn(Aws::String&& value) { m_perInstanceContainerGroupDefinitionArnHasBeenSet = true; m_perInstanceContainerGroupDefinitionArn = std::move(value); } inline void SetPerInstanceContainerGroupDefinitionArn(const char* value) { m_perInstanceContainerGroupDefinitionArnHasBeenSet = true; m_perInstanceContainerGroupDefinitionArn.assign(value); } inline ContainerFleet& WithPerInstanceContainerGroupDefinitionArn(const Aws::String& value) { SetPerInstanceContainerGroupDefinitionArn(value); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionArn(Aws::String&& value) { SetPerInstanceContainerGroupDefinitionArn(std::move(value)); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionArn(const char* value) { SetPerInstanceContainerGroupDefinitionArn(value); return *this;} ///@} ///@{ inline const ConnectionPortRange& GetInstanceConnectionPortRange() const{ return m_instanceConnectionPortRange; } inline bool InstanceConnectionPortRangeHasBeenSet() const { return m_instanceConnectionPortRangeHasBeenSet; } inline void SetInstanceConnectionPortRange(const ConnectionPortRange& value) { m_instanceConnectionPortRangeHasBeenSet = true; m_instanceConnectionPortRange = value; } inline void SetInstanceConnectionPortRange(ConnectionPortRange&& value) { m_instanceConnectionPortRangeHasBeenSet = true; m_instanceConnectionPortRange = std::move(value); } inline ContainerFleet& WithInstanceConnectionPortRange(const ConnectionPortRange& value) { SetInstanceConnectionPortRange(value); return *this;} inline ContainerFleet& WithInstanceConnectionPortRange(ConnectionPortRange&& value) { SetInstanceConnectionPortRange(std::move(value)); return *this;} ///@} ///@{ /** *The IP address ranges and port settings that allow inbound traffic to access * game server processes and other processes on this fleet.
*/ inline const Aws::VectorThe number of times to replicate the game server container group on each * fleet instance.
*/ inline int GetGameServerContainerGroupsPerInstance() const{ return m_gameServerContainerGroupsPerInstance; } inline bool GameServerContainerGroupsPerInstanceHasBeenSet() const { return m_gameServerContainerGroupsPerInstanceHasBeenSet; } inline void SetGameServerContainerGroupsPerInstance(int value) { m_gameServerContainerGroupsPerInstanceHasBeenSet = true; m_gameServerContainerGroupsPerInstance = value; } inline ContainerFleet& WithGameServerContainerGroupsPerInstance(int value) { SetGameServerContainerGroupsPerInstance(value); return *this;} ///@} ///@{ /** *The calculated maximum number of game server container group that can be * deployed on each fleet instance. The calculation depends on the resource needs * of the container group and the CPU and memory resources of the fleet's instance * type.
*/ inline int GetMaximumGameServerContainerGroupsPerInstance() const{ return m_maximumGameServerContainerGroupsPerInstance; } inline bool MaximumGameServerContainerGroupsPerInstanceHasBeenSet() const { return m_maximumGameServerContainerGroupsPerInstanceHasBeenSet; } inline void SetMaximumGameServerContainerGroupsPerInstance(int value) { m_maximumGameServerContainerGroupsPerInstanceHasBeenSet = true; m_maximumGameServerContainerGroupsPerInstance = value; } inline ContainerFleet& WithMaximumGameServerContainerGroupsPerInstance(int value) { SetMaximumGameServerContainerGroupsPerInstance(value); return *this;} ///@} ///@{ /** *The Amazon EC2 instance type to use for all instances in the fleet. Instance * type determines the computing resources and processing power that's available to * host your game servers. This includes including CPU, memory, storage, and * networking capacity. You can't update this fleet property.
*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } inline ContainerFleet& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} inline ContainerFleet& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} inline ContainerFleet& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} ///@} ///@{ /** *Indicates whether the fleet uses On-Demand or Spot instances for this fleet. * Learn more about when to use * On-Demand versus Spot Instances. You can't update this fleet property.
*By default, this property is set to ON_DEMAND.
A meaningful description of the container fleet.
*/ inline const Aws::String& GetDescription() const{ return m_description; } inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } inline ContainerFleet& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} inline ContainerFleet& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} inline ContainerFleet& WithDescription(const char* value) { SetDescription(value); return *this;} ///@} ///@{ /** *A time stamp indicating when this data object was created. Format is a number
* expressed in Unix time as milliseconds (for example
* "1469498468.057").
The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. Metric groups aggregate metrics for multiple fleets.
*/ inline const Aws::VectorDetermines whether Amazon GameLift can shut down game sessions on the fleet * that are actively running and hosting players. Amazon GameLift might prompt an * instance shutdown when scaling down fleet capacity or when retiring unhealthy * instances. You can also set game session protection for individual game sessions * using UpdateGameSession.
*NoProtection -- Game sessions can be shut down during * active gameplay.
FullProtection -- Game sessions in
* ACTIVE status can't be shut down.
A policy that limits the number of game sessions that each individual player * can create on instances in this fleet. The limit applies for a specified span of * time.
*/ inline const GameSessionCreationLimitPolicy& GetGameSessionCreationLimitPolicy() const{ return m_gameSessionCreationLimitPolicy; } inline bool GameSessionCreationLimitPolicyHasBeenSet() const { return m_gameSessionCreationLimitPolicyHasBeenSet; } inline void SetGameSessionCreationLimitPolicy(const GameSessionCreationLimitPolicy& value) { m_gameSessionCreationLimitPolicyHasBeenSet = true; m_gameSessionCreationLimitPolicy = value; } inline void SetGameSessionCreationLimitPolicy(GameSessionCreationLimitPolicy&& value) { m_gameSessionCreationLimitPolicyHasBeenSet = true; m_gameSessionCreationLimitPolicy = std::move(value); } inline ContainerFleet& WithGameSessionCreationLimitPolicy(const GameSessionCreationLimitPolicy& value) { SetGameSessionCreationLimitPolicy(value); return *this;} inline ContainerFleet& WithGameSessionCreationLimitPolicy(GameSessionCreationLimitPolicy&& value) { SetGameSessionCreationLimitPolicy(std::move(value)); return *this;} ///@} ///@{ /** *The current status of the container fleet.
* PENDING -- A new container fleet has been requested.
CREATING -- A new container fleet resource is being created.
*
CREATED -- A new container fleet resource has
* been created. No fleet instances have been deployed.
* ACTIVATING -- New container fleet instances are being deployed.
ACTIVE -- The container fleet has been deployed and
* is ready to host game sessions.
UPDATING --
* Updates to the container fleet is being updated. A deployment is in
* progress.
Information about the most recent deployment for the container fleet.
*/ inline const DeploymentDetails& GetDeploymentDetails() const{ return m_deploymentDetails; } inline bool DeploymentDetailsHasBeenSet() const { return m_deploymentDetailsHasBeenSet; } inline void SetDeploymentDetails(const DeploymentDetails& value) { m_deploymentDetailsHasBeenSet = true; m_deploymentDetails = value; } inline void SetDeploymentDetails(DeploymentDetails&& value) { m_deploymentDetailsHasBeenSet = true; m_deploymentDetails = std::move(value); } inline ContainerFleet& WithDeploymentDetails(const DeploymentDetails& value) { SetDeploymentDetails(value); return *this;} inline ContainerFleet& WithDeploymentDetails(DeploymentDetails&& value) { SetDeploymentDetails(std::move(value)); return *this;} ///@} ///@{ /** *The method that is used to collect container logs for the fleet. Amazon * GameLift saves all standard output for each container in logs, including game * session logs.
CLOUDWATCH -- Send logs to an
* Amazon CloudWatch log group that you define. Each container emits a log stream,
* which is organized in the log group.
S3 --
* Store logs in an Amazon S3 bucket that you define.
* NONE -- Don't collect container logs.
Information about the container fleet's remote locations where fleet * instances are deployed.
*/ inline const Aws::Vector