/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes an Amazon GameLift fleet of game hosting resources. Attributes
* differ based on the fleet's compute type, as follows: EC2 fleet
* attributes identify a Amazon GameLift Anywhere fleets have an abbreviated
* set of attributes, because most fleet configurations are set directly on the
* fleet's computes. Attributes include fleet identifiers and descriptive
* properties, creation/termination time, and fleet status.
* Returned by: DescribeFleetAttributes
Build resource (for fleets with customer game
* server builds) or a Script resource (for Realtime Servers
* fleets).See Also:
* AWS
* API Reference
A unique identifier for the fleet.
*/ 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 FleetAttributes& WithFleetId(const Aws::String& value) { SetFleetId(value); return *this;} inline FleetAttributes& WithFleetId(Aws::String&& value) { SetFleetId(std::move(value)); return *this;} inline FleetAttributes& 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.
Indicates whether the fleet uses On-Demand or Spot instances. For more * information, see * On-Demand versus Spot Instances. This fleet property can't be changed after * the fleet is created.
*/ inline const FleetType& GetFleetType() const{ return m_fleetType; } inline bool FleetTypeHasBeenSet() const { return m_fleetTypeHasBeenSet; } inline void SetFleetType(const FleetType& value) { m_fleetTypeHasBeenSet = true; m_fleetType = value; } inline void SetFleetType(FleetType&& value) { m_fleetTypeHasBeenSet = true; m_fleetType = std::move(value); } inline FleetAttributes& WithFleetType(const FleetType& value) { SetFleetType(value); return *this;} inline FleetAttributes& WithFleetType(FleetType&& value) { SetFleetType(std::move(value)); return *this;} ///@} ///@{ /** *The Amazon EC2 instance type that the fleet uses. Instance type determines
* the computing resources of each instance in the fleet, including CPU, memory,
* storage, and networking capacity. See Amazon Elastic Compute Cloud
* Instance Types for detailed descriptions. This attribute is used with fleets
* where ComputeType is "EC2".
A human-readable description of the 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 FleetAttributes& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} inline FleetAttributes& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} inline FleetAttributes& WithDescription(const char* value) { SetDescription(value); return *this;} ///@} ///@{ /** *A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.
*/ inline const Aws::String& GetName() const{ return m_name; } inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } inline FleetAttributes& WithName(const Aws::String& value) { SetName(value); return *this;} inline FleetAttributes& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} inline FleetAttributes& WithName(const char* value) { SetName(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").
A time stamp indicating when this data object was terminated. Format is a
* number expressed in Unix time as milliseconds (for example
* "1469498468.057").
Current status of the fleet. Possible fleet statuses include the * following:
NEW -- A new fleet resource has been defined and * Amazon GameLift has started creating the fleet. Desired instances is set to 1. *
DOWNLOADING/VALIDATING/BUILDING -- Amazon GameLift is * download the game server build, running install scripts, and then validating the * build files. When complete, Amazon GameLift launches a fleet instance.
*ACTIVATING -- Amazon GameLift is launching a game server process * and testing its connectivity with the Amazon GameLift service.
ACTIVE -- The fleet is now ready to host game sessions.
ERROR -- An error occurred when downloading, validating, building, or * activating the fleet.
DELETING -- Hosts are responding to a * delete fleet request.
TERMINATED -- The fleet no longer * exists.
A unique identifier for the build resource that is deployed on instances in
* this fleet. This attribute is used with fleets where ComputeType is
* "EC2".
The Amazon Resource Name (ARN)
* associated with the Amazon GameLift build resource that is deployed on instances
* in this fleet. In a GameLift build ARN, the resource ID matches the
* BuildId value. This attribute is used with fleets where
* ComputeType is "EC2".
A unique identifier for the Realtime script resource that is deployed on
* instances in this fleet. This attribute is used with fleets where
* ComputeType is "EC2".
The Amazon Resource Name (ARN)
* associated with the GameLift script resource that is deployed on instances in
* this fleet. In a GameLift script ARN, the resource ID matches the
* ScriptId value.
This parameter is no longer used. Server launch paths are now defined * using the fleet's RuntimeConfiguration. * Requests that use this parameter continue to be valid.
*/ inline const Aws::String& GetServerLaunchPath() const{ return m_serverLaunchPath; } inline bool ServerLaunchPathHasBeenSet() const { return m_serverLaunchPathHasBeenSet; } inline void SetServerLaunchPath(const Aws::String& value) { m_serverLaunchPathHasBeenSet = true; m_serverLaunchPath = value; } inline void SetServerLaunchPath(Aws::String&& value) { m_serverLaunchPathHasBeenSet = true; m_serverLaunchPath = std::move(value); } inline void SetServerLaunchPath(const char* value) { m_serverLaunchPathHasBeenSet = true; m_serverLaunchPath.assign(value); } inline FleetAttributes& WithServerLaunchPath(const Aws::String& value) { SetServerLaunchPath(value); return *this;} inline FleetAttributes& WithServerLaunchPath(Aws::String&& value) { SetServerLaunchPath(std::move(value)); return *this;} inline FleetAttributes& WithServerLaunchPath(const char* value) { SetServerLaunchPath(value); return *this;} ///@} ///@{ /** *This parameter is no longer used. Server launch parameters are now * defined using the fleet's runtime configuration. Requests that use this * parameter continue to be valid.
*/ inline const Aws::String& GetServerLaunchParameters() const{ return m_serverLaunchParameters; } inline bool ServerLaunchParametersHasBeenSet() const { return m_serverLaunchParametersHasBeenSet; } inline void SetServerLaunchParameters(const Aws::String& value) { m_serverLaunchParametersHasBeenSet = true; m_serverLaunchParameters = value; } inline void SetServerLaunchParameters(Aws::String&& value) { m_serverLaunchParametersHasBeenSet = true; m_serverLaunchParameters = std::move(value); } inline void SetServerLaunchParameters(const char* value) { m_serverLaunchParametersHasBeenSet = true; m_serverLaunchParameters.assign(value); } inline FleetAttributes& WithServerLaunchParameters(const Aws::String& value) { SetServerLaunchParameters(value); return *this;} inline FleetAttributes& WithServerLaunchParameters(Aws::String&& value) { SetServerLaunchParameters(std::move(value)); return *this;} inline FleetAttributes& WithServerLaunchParameters(const char* value) { SetServerLaunchParameters(value); return *this;} ///@} ///@{ /** * This parameter is no longer used. Game session log paths are now
* defined using the Amazon GameLift server API ProcessReady()
* logParameters. See more information in the Server
* API Reference.
The type of game session protection to set on all new instances that are
* started in the fleet. This attribute is used with fleets where
* ComputeType is "EC2".
NoProtection -- The * game session can be terminated during a scale-down event.
* FullProtection -- If the game session is in an ACTIVE
* status, it cannot be terminated during a scale-down event.
The operating system of the fleet's computing resources. A fleet's operating
* system is determined by the OS of the build or script that is deployed on this
* fleet. This attribute is used with fleets where ComputeType is
* "EC2".
Amazon Linux 2 (AL2) will reach end of support on * 6/30/2025. See more details in the Amazon Linux 2 FAQs. For * game servers that are hosted on AL2 and use Amazon GameLift server SDK 4.x, * first update the game server build to server SDK 5.x, and then deploy to AL2023 * instances. See * Migrate to Amazon GameLift server SDK version 5.
*/ inline const OperatingSystem& GetOperatingSystem() const{ return m_operatingSystem; } inline bool OperatingSystemHasBeenSet() const { return m_operatingSystemHasBeenSet; } inline void SetOperatingSystem(const OperatingSystem& value) { m_operatingSystemHasBeenSet = true; m_operatingSystem = value; } inline void SetOperatingSystem(OperatingSystem&& value) { m_operatingSystemHasBeenSet = true; m_operatingSystem = std::move(value); } inline FleetAttributes& WithOperatingSystem(const OperatingSystem& value) { SetOperatingSystem(value); return *this;} inline FleetAttributes& WithOperatingSystem(OperatingSystem&& value) { SetOperatingSystem(std::move(value)); return *this;} ///@} ///@{ inline const ResourceCreationLimitPolicy& GetResourceCreationLimitPolicy() const{ return m_resourceCreationLimitPolicy; } inline bool ResourceCreationLimitPolicyHasBeenSet() const { return m_resourceCreationLimitPolicyHasBeenSet; } inline void SetResourceCreationLimitPolicy(const ResourceCreationLimitPolicy& value) { m_resourceCreationLimitPolicyHasBeenSet = true; m_resourceCreationLimitPolicy = value; } inline void SetResourceCreationLimitPolicy(ResourceCreationLimitPolicy&& value) { m_resourceCreationLimitPolicyHasBeenSet = true; m_resourceCreationLimitPolicy = std::move(value); } inline FleetAttributes& WithResourceCreationLimitPolicy(const ResourceCreationLimitPolicy& value) { SetResourceCreationLimitPolicy(value); return *this;} inline FleetAttributes& WithResourceCreationLimitPolicy(ResourceCreationLimitPolicy&& value) { SetResourceCreationLimitPolicy(std::move(value)); return *this;} ///@} ///@{ /** *Name of a metric group that metrics for this fleet are added to. In Amazon
* CloudWatch, you can view aggregated metrics for fleets that are in a metric
* group. A fleet can be included in only one metric group at a time. This
* attribute is used with fleets where ComputeType is "EC2".
A list of fleet activity that has been suspended using StopFleetActions.
* This includes fleet auto-scaling. This attribute is used with fleets where
* ComputeType is "EC2".
A unique identifier for an IAM role that manages access to your Amazon Web
* Services services. With an instance role ARN set, any application that runs on
* an instance in this fleet can assume the role, including install scripts, server
* processes, and daemons (background processes). Create a role or look up a role's
* ARN by using the IAM dashboard
* in the Amazon Web Services Management Console. Learn more about using on-box
* credentials for your game servers at
* Access external resources from a game server. This attribute is used with
* fleets where ComputeType is "EC2".
Determines whether a TLS/SSL certificate is generated for a fleet. This * feature must be enabled when creating the fleet. All instances in a fleet share * the same certificate.
*/ inline const CertificateConfiguration& GetCertificateConfiguration() const{ return m_certificateConfiguration; } inline bool CertificateConfigurationHasBeenSet() const { return m_certificateConfigurationHasBeenSet; } inline void SetCertificateConfiguration(const CertificateConfiguration& value) { m_certificateConfigurationHasBeenSet = true; m_certificateConfiguration = value; } inline void SetCertificateConfiguration(CertificateConfiguration&& value) { m_certificateConfigurationHasBeenSet = true; m_certificateConfiguration = std::move(value); } inline FleetAttributes& WithCertificateConfiguration(const CertificateConfiguration& value) { SetCertificateConfiguration(value); return *this;} inline FleetAttributes& WithCertificateConfiguration(CertificateConfiguration&& value) { SetCertificateConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *The type of compute resource used to host your game servers. You can use your * own compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances * with managed Amazon GameLift.
*/ inline const ComputeType& GetComputeType() const{ return m_computeType; } inline bool ComputeTypeHasBeenSet() const { return m_computeTypeHasBeenSet; } inline void SetComputeType(const ComputeType& value) { m_computeTypeHasBeenSet = true; m_computeType = value; } inline void SetComputeType(ComputeType&& value) { m_computeTypeHasBeenSet = true; m_computeType = std::move(value); } inline FleetAttributes& WithComputeType(const ComputeType& value) { SetComputeType(value); return *this;} inline FleetAttributes& WithComputeType(ComputeType&& value) { SetComputeType(std::move(value)); return *this;} ///@} ///@{ /** *Amazon GameLift Anywhere configuration options.
*/ inline const AnywhereConfiguration& GetAnywhereConfiguration() const{ return m_anywhereConfiguration; } inline bool AnywhereConfigurationHasBeenSet() const { return m_anywhereConfigurationHasBeenSet; } inline void SetAnywhereConfiguration(const AnywhereConfiguration& value) { m_anywhereConfigurationHasBeenSet = true; m_anywhereConfiguration = value; } inline void SetAnywhereConfiguration(AnywhereConfiguration&& value) { m_anywhereConfigurationHasBeenSet = true; m_anywhereConfiguration = std::move(value); } inline FleetAttributes& WithAnywhereConfiguration(const AnywhereConfiguration& value) { SetAnywhereConfiguration(value); return *this;} inline FleetAttributes& WithAnywhereConfiguration(AnywhereConfiguration&& value) { SetAnywhereConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *Indicates that fleet instances maintain a shared credentials file for the IAM
* role defined in InstanceRoleArn. Shared credentials allow
* applications that are deployed with the game server executable to communicate
* with other Amazon Web Services resources. This property is used only when the
* game server is integrated with the server SDK version 5.x. For more information
* about using shared credentials, see
* Communicate with other Amazon Web Services resources from your fleets. This
* attribute is used with fleets where ComputeType is "EC2".