/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GameLift { namespace Model { /** *

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 Build resource (for fleets with customer game * server builds) or a Script resource (for Realtime Servers * fleets).

  • 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

See Also:

* AWS * API Reference

*/ class FleetAttributes { public: AWS_GAMELIFT_API FleetAttributes(); AWS_GAMELIFT_API FleetAttributes(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API FleetAttributes& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API Aws::Utils::Json::JsonValue Jsonize() const; ///@{ /** *

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.

*/ inline const Aws::String& GetFleetArn() const{ return m_fleetArn; } inline bool FleetArnHasBeenSet() const { return m_fleetArnHasBeenSet; } inline void SetFleetArn(const Aws::String& value) { m_fleetArnHasBeenSet = true; m_fleetArn = value; } inline void SetFleetArn(Aws::String&& value) { m_fleetArnHasBeenSet = true; m_fleetArn = std::move(value); } inline void SetFleetArn(const char* value) { m_fleetArnHasBeenSet = true; m_fleetArn.assign(value); } inline FleetAttributes& WithFleetArn(const Aws::String& value) { SetFleetArn(value); return *this;} inline FleetAttributes& WithFleetArn(Aws::String&& value) { SetFleetArn(std::move(value)); return *this;} inline FleetAttributes& WithFleetArn(const char* value) { SetFleetArn(value); return *this;} ///@} ///@{ /** *

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".

*/ inline const EC2InstanceType& GetInstanceType() const{ return m_instanceType; } inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } inline void SetInstanceType(const EC2InstanceType& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } inline void SetInstanceType(EC2InstanceType&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } inline FleetAttributes& WithInstanceType(const EC2InstanceType& value) { SetInstanceType(value); return *this;} inline FleetAttributes& WithInstanceType(EC2InstanceType&& value) { SetInstanceType(std::move(value)); return *this;} ///@} ///@{ /** *

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").

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } inline FleetAttributes& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} inline FleetAttributes& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} ///@} ///@{ /** *

A time stamp indicating when this data object was terminated. Format is a * number expressed in Unix time as milliseconds (for example * "1469498468.057").

*/ inline const Aws::Utils::DateTime& GetTerminationTime() const{ return m_terminationTime; } inline bool TerminationTimeHasBeenSet() const { return m_terminationTimeHasBeenSet; } inline void SetTerminationTime(const Aws::Utils::DateTime& value) { m_terminationTimeHasBeenSet = true; m_terminationTime = value; } inline void SetTerminationTime(Aws::Utils::DateTime&& value) { m_terminationTimeHasBeenSet = true; m_terminationTime = std::move(value); } inline FleetAttributes& WithTerminationTime(const Aws::Utils::DateTime& value) { SetTerminationTime(value); return *this;} inline FleetAttributes& WithTerminationTime(Aws::Utils::DateTime&& value) { SetTerminationTime(std::move(value)); return *this;} ///@} ///@{ /** *

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.

*/ inline const FleetStatus& GetStatus() const{ return m_status; } inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } inline void SetStatus(const FleetStatus& value) { m_statusHasBeenSet = true; m_status = value; } inline void SetStatus(FleetStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } inline FleetAttributes& WithStatus(const FleetStatus& value) { SetStatus(value); return *this;} inline FleetAttributes& WithStatus(FleetStatus&& value) { SetStatus(std::move(value)); return *this;} ///@} ///@{ /** *

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".

*/ inline const Aws::String& GetBuildId() const{ return m_buildId; } inline bool BuildIdHasBeenSet() const { return m_buildIdHasBeenSet; } inline void SetBuildId(const Aws::String& value) { m_buildIdHasBeenSet = true; m_buildId = value; } inline void SetBuildId(Aws::String&& value) { m_buildIdHasBeenSet = true; m_buildId = std::move(value); } inline void SetBuildId(const char* value) { m_buildIdHasBeenSet = true; m_buildId.assign(value); } inline FleetAttributes& WithBuildId(const Aws::String& value) { SetBuildId(value); return *this;} inline FleetAttributes& WithBuildId(Aws::String&& value) { SetBuildId(std::move(value)); return *this;} inline FleetAttributes& WithBuildId(const char* value) { SetBuildId(value); return *this;} ///@} ///@{ /** *

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".

*/ inline const Aws::String& GetBuildArn() const{ return m_buildArn; } inline bool BuildArnHasBeenSet() const { return m_buildArnHasBeenSet; } inline void SetBuildArn(const Aws::String& value) { m_buildArnHasBeenSet = true; m_buildArn = value; } inline void SetBuildArn(Aws::String&& value) { m_buildArnHasBeenSet = true; m_buildArn = std::move(value); } inline void SetBuildArn(const char* value) { m_buildArnHasBeenSet = true; m_buildArn.assign(value); } inline FleetAttributes& WithBuildArn(const Aws::String& value) { SetBuildArn(value); return *this;} inline FleetAttributes& WithBuildArn(Aws::String&& value) { SetBuildArn(std::move(value)); return *this;} inline FleetAttributes& WithBuildArn(const char* value) { SetBuildArn(value); return *this;} ///@} ///@{ /** *

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".

*/ inline const Aws::String& GetScriptId() const{ return m_scriptId; } inline bool ScriptIdHasBeenSet() const { return m_scriptIdHasBeenSet; } inline void SetScriptId(const Aws::String& value) { m_scriptIdHasBeenSet = true; m_scriptId = value; } inline void SetScriptId(Aws::String&& value) { m_scriptIdHasBeenSet = true; m_scriptId = std::move(value); } inline void SetScriptId(const char* value) { m_scriptIdHasBeenSet = true; m_scriptId.assign(value); } inline FleetAttributes& WithScriptId(const Aws::String& value) { SetScriptId(value); return *this;} inline FleetAttributes& WithScriptId(Aws::String&& value) { SetScriptId(std::move(value)); return *this;} inline FleetAttributes& WithScriptId(const char* value) { SetScriptId(value); return *this;} ///@} ///@{ /** *

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.

*/ inline const Aws::String& GetScriptArn() const{ return m_scriptArn; } inline bool ScriptArnHasBeenSet() const { return m_scriptArnHasBeenSet; } inline void SetScriptArn(const Aws::String& value) { m_scriptArnHasBeenSet = true; m_scriptArn = value; } inline void SetScriptArn(Aws::String&& value) { m_scriptArnHasBeenSet = true; m_scriptArn = std::move(value); } inline void SetScriptArn(const char* value) { m_scriptArnHasBeenSet = true; m_scriptArn.assign(value); } inline FleetAttributes& WithScriptArn(const Aws::String& value) { SetScriptArn(value); return *this;} inline FleetAttributes& WithScriptArn(Aws::String&& value) { SetScriptArn(std::move(value)); return *this;} inline FleetAttributes& WithScriptArn(const char* value) { SetScriptArn(value); return *this;} ///@} ///@{ /** *

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.

*/ inline const Aws::Vector& GetLogPaths() const{ return m_logPaths; } inline bool LogPathsHasBeenSet() const { return m_logPathsHasBeenSet; } inline void SetLogPaths(const Aws::Vector& value) { m_logPathsHasBeenSet = true; m_logPaths = value; } inline void SetLogPaths(Aws::Vector&& value) { m_logPathsHasBeenSet = true; m_logPaths = std::move(value); } inline FleetAttributes& WithLogPaths(const Aws::Vector& value) { SetLogPaths(value); return *this;} inline FleetAttributes& WithLogPaths(Aws::Vector&& value) { SetLogPaths(std::move(value)); return *this;} inline FleetAttributes& AddLogPaths(const Aws::String& value) { m_logPathsHasBeenSet = true; m_logPaths.push_back(value); return *this; } inline FleetAttributes& AddLogPaths(Aws::String&& value) { m_logPathsHasBeenSet = true; m_logPaths.push_back(std::move(value)); return *this; } inline FleetAttributes& AddLogPaths(const char* value) { m_logPathsHasBeenSet = true; m_logPaths.push_back(value); return *this; } ///@} ///@{ /** *

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.

*/ inline const ProtectionPolicy& GetNewGameSessionProtectionPolicy() const{ return m_newGameSessionProtectionPolicy; } inline bool NewGameSessionProtectionPolicyHasBeenSet() const { return m_newGameSessionProtectionPolicyHasBeenSet; } inline void SetNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { m_newGameSessionProtectionPolicyHasBeenSet = true; m_newGameSessionProtectionPolicy = value; } inline void SetNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { m_newGameSessionProtectionPolicyHasBeenSet = true; m_newGameSessionProtectionPolicy = std::move(value); } inline FleetAttributes& WithNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { SetNewGameSessionProtectionPolicy(value); return *this;} inline FleetAttributes& WithNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { SetNewGameSessionProtectionPolicy(std::move(value)); return *this;} ///@} ///@{ /** *

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".

*/ inline const Aws::Vector& GetMetricGroups() const{ return m_metricGroups; } inline bool MetricGroupsHasBeenSet() const { return m_metricGroupsHasBeenSet; } inline void SetMetricGroups(const Aws::Vector& value) { m_metricGroupsHasBeenSet = true; m_metricGroups = value; } inline void SetMetricGroups(Aws::Vector&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups = std::move(value); } inline FleetAttributes& WithMetricGroups(const Aws::Vector& value) { SetMetricGroups(value); return *this;} inline FleetAttributes& WithMetricGroups(Aws::Vector&& value) { SetMetricGroups(std::move(value)); return *this;} inline FleetAttributes& AddMetricGroups(const Aws::String& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } inline FleetAttributes& AddMetricGroups(Aws::String&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(std::move(value)); return *this; } inline FleetAttributes& AddMetricGroups(const char* value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } ///@} ///@{ /** *

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".

*/ inline const Aws::Vector& GetStoppedActions() const{ return m_stoppedActions; } inline bool StoppedActionsHasBeenSet() const { return m_stoppedActionsHasBeenSet; } inline void SetStoppedActions(const Aws::Vector& value) { m_stoppedActionsHasBeenSet = true; m_stoppedActions = value; } inline void SetStoppedActions(Aws::Vector&& value) { m_stoppedActionsHasBeenSet = true; m_stoppedActions = std::move(value); } inline FleetAttributes& WithStoppedActions(const Aws::Vector& value) { SetStoppedActions(value); return *this;} inline FleetAttributes& WithStoppedActions(Aws::Vector&& value) { SetStoppedActions(std::move(value)); return *this;} inline FleetAttributes& AddStoppedActions(const FleetAction& value) { m_stoppedActionsHasBeenSet = true; m_stoppedActions.push_back(value); return *this; } inline FleetAttributes& AddStoppedActions(FleetAction&& value) { m_stoppedActionsHasBeenSet = true; m_stoppedActions.push_back(std::move(value)); return *this; } ///@} ///@{ /** *

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".

*/ inline const Aws::String& GetInstanceRoleArn() const{ return m_instanceRoleArn; } inline bool InstanceRoleArnHasBeenSet() const { return m_instanceRoleArnHasBeenSet; } inline void SetInstanceRoleArn(const Aws::String& value) { m_instanceRoleArnHasBeenSet = true; m_instanceRoleArn = value; } inline void SetInstanceRoleArn(Aws::String&& value) { m_instanceRoleArnHasBeenSet = true; m_instanceRoleArn = std::move(value); } inline void SetInstanceRoleArn(const char* value) { m_instanceRoleArnHasBeenSet = true; m_instanceRoleArn.assign(value); } inline FleetAttributes& WithInstanceRoleArn(const Aws::String& value) { SetInstanceRoleArn(value); return *this;} inline FleetAttributes& WithInstanceRoleArn(Aws::String&& value) { SetInstanceRoleArn(std::move(value)); return *this;} inline FleetAttributes& WithInstanceRoleArn(const char* value) { SetInstanceRoleArn(value); return *this;} ///@} ///@{ /** *

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".

*/ inline const InstanceRoleCredentialsProvider& GetInstanceRoleCredentialsProvider() const{ return m_instanceRoleCredentialsProvider; } inline bool InstanceRoleCredentialsProviderHasBeenSet() const { return m_instanceRoleCredentialsProviderHasBeenSet; } inline void SetInstanceRoleCredentialsProvider(const InstanceRoleCredentialsProvider& value) { m_instanceRoleCredentialsProviderHasBeenSet = true; m_instanceRoleCredentialsProvider = value; } inline void SetInstanceRoleCredentialsProvider(InstanceRoleCredentialsProvider&& value) { m_instanceRoleCredentialsProviderHasBeenSet = true; m_instanceRoleCredentialsProvider = std::move(value); } inline FleetAttributes& WithInstanceRoleCredentialsProvider(const InstanceRoleCredentialsProvider& value) { SetInstanceRoleCredentialsProvider(value); return *this;} inline FleetAttributes& WithInstanceRoleCredentialsProvider(InstanceRoleCredentialsProvider&& value) { SetInstanceRoleCredentialsProvider(std::move(value)); return *this;} ///@} private: Aws::String m_fleetId; bool m_fleetIdHasBeenSet = false; Aws::String m_fleetArn; bool m_fleetArnHasBeenSet = false; FleetType m_fleetType; bool m_fleetTypeHasBeenSet = false; EC2InstanceType m_instanceType; bool m_instanceTypeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Utils::DateTime m_terminationTime; bool m_terminationTimeHasBeenSet = false; FleetStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_buildId; bool m_buildIdHasBeenSet = false; Aws::String m_buildArn; bool m_buildArnHasBeenSet = false; Aws::String m_scriptId; bool m_scriptIdHasBeenSet = false; Aws::String m_scriptArn; bool m_scriptArnHasBeenSet = false; Aws::String m_serverLaunchPath; bool m_serverLaunchPathHasBeenSet = false; Aws::String m_serverLaunchParameters; bool m_serverLaunchParametersHasBeenSet = false; Aws::Vector m_logPaths; bool m_logPathsHasBeenSet = false; ProtectionPolicy m_newGameSessionProtectionPolicy; bool m_newGameSessionProtectionPolicyHasBeenSet = false; OperatingSystem m_operatingSystem; bool m_operatingSystemHasBeenSet = false; ResourceCreationLimitPolicy m_resourceCreationLimitPolicy; bool m_resourceCreationLimitPolicyHasBeenSet = false; Aws::Vector m_metricGroups; bool m_metricGroupsHasBeenSet = false; Aws::Vector m_stoppedActions; bool m_stoppedActionsHasBeenSet = false; Aws::String m_instanceRoleArn; bool m_instanceRoleArnHasBeenSet = false; CertificateConfiguration m_certificateConfiguration; bool m_certificateConfigurationHasBeenSet = false; ComputeType m_computeType; bool m_computeTypeHasBeenSet = false; AnywhereConfiguration m_anywhereConfiguration; bool m_anywhereConfigurationHasBeenSet = false; InstanceRoleCredentialsProvider m_instanceRoleCredentialsProvider; bool m_instanceRoleCredentialsProviderHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws