/** * 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 GameLift { namespace Model { /** */ class CreateFleetRequest : public GameLiftRequest { public: AWS_GAMELIFT_API CreateFleetRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateFleet"; } AWS_GAMELIFT_API Aws::String SerializePayload() const override; AWS_GAMELIFT_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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; } /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline CreateFleetRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline CreateFleetRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

A descriptive label that is associated with a fleet. Fleet names do not need * to be unique.

*/ inline CreateFleetRequest& WithName(const char* value) { SetName(value); return *this;} /** *

A description for the fleet.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for the fleet.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for the fleet.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for the fleet.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for the fleet.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for the fleet.

*/ inline CreateFleetRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for the fleet.

*/ inline CreateFleetRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for the fleet.

*/ inline CreateFleetRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline const Aws::String& GetBuildId() const{ return m_buildId; } /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline bool BuildIdHasBeenSet() const { return m_buildIdHasBeenSet; } /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline void SetBuildId(const Aws::String& value) { m_buildIdHasBeenSet = true; m_buildId = value; } /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline void SetBuildId(Aws::String&& value) { m_buildIdHasBeenSet = true; m_buildId = std::move(value); } /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline void SetBuildId(const char* value) { m_buildIdHasBeenSet = true; m_buildId.assign(value); } /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline CreateFleetRequest& WithBuildId(const Aws::String& value) { SetBuildId(value); return *this;} /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline CreateFleetRequest& WithBuildId(Aws::String&& value) { SetBuildId(std::move(value)); return *this;} /** *

The unique identifier for a custom game server build to be deployed on fleet * instances. You can use either the build ID or ARN. The build must be uploaded to * Amazon GameLift and in READY status. This fleet property cannot be * changed later.

*/ inline CreateFleetRequest& WithBuildId(const char* value) { SetBuildId(value); return *this;} /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline const Aws::String& GetScriptId() const{ return m_scriptId; } /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline bool ScriptIdHasBeenSet() const { return m_scriptIdHasBeenSet; } /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline void SetScriptId(const Aws::String& value) { m_scriptIdHasBeenSet = true; m_scriptId = value; } /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline void SetScriptId(Aws::String&& value) { m_scriptIdHasBeenSet = true; m_scriptId = std::move(value); } /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline void SetScriptId(const char* value) { m_scriptIdHasBeenSet = true; m_scriptId.assign(value); } /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline CreateFleetRequest& WithScriptId(const Aws::String& value) { SetScriptId(value); return *this;} /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline CreateFleetRequest& WithScriptId(Aws::String&& value) { SetScriptId(std::move(value)); return *this;} /** *

The unique identifier for a Realtime configuration script to be deployed on * fleet instances. You can use either the script ID or ARN. Scripts must be * uploaded to Amazon GameLift prior to creating the fleet. This fleet property * cannot be changed later.

*/ inline CreateFleetRequest& WithScriptId(const char* value) { SetScriptId(value); return *this;} /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline const Aws::String& GetServerLaunchPath() const{ return m_serverLaunchPath; } /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline bool ServerLaunchPathHasBeenSet() const { return m_serverLaunchPathHasBeenSet; } /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline void SetServerLaunchPath(const Aws::String& value) { m_serverLaunchPathHasBeenSet = true; m_serverLaunchPath = value; } /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline void SetServerLaunchPath(Aws::String&& value) { m_serverLaunchPathHasBeenSet = true; m_serverLaunchPath = std::move(value); } /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline void SetServerLaunchPath(const char* value) { m_serverLaunchPathHasBeenSet = true; m_serverLaunchPath.assign(value); } /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline CreateFleetRequest& WithServerLaunchPath(const Aws::String& value) { SetServerLaunchPath(value); return *this;} /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline CreateFleetRequest& WithServerLaunchPath(Aws::String&& value) { SetServerLaunchPath(std::move(value)); return *this;} /** *

This parameter is no longer used. Specify a server launch path using * the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline CreateFleetRequest& WithServerLaunchPath(const char* value) { SetServerLaunchPath(value); return *this;} /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline const Aws::String& GetServerLaunchParameters() const{ return m_serverLaunchParameters; } /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline bool ServerLaunchParametersHasBeenSet() const { return m_serverLaunchParametersHasBeenSet; } /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline void SetServerLaunchParameters(const Aws::String& value) { m_serverLaunchParametersHasBeenSet = true; m_serverLaunchParameters = value; } /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline void SetServerLaunchParameters(Aws::String&& value) { m_serverLaunchParametersHasBeenSet = true; m_serverLaunchParameters = std::move(value); } /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline void SetServerLaunchParameters(const char* value) { m_serverLaunchParametersHasBeenSet = true; m_serverLaunchParameters.assign(value); } /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline CreateFleetRequest& WithServerLaunchParameters(const Aws::String& value) { SetServerLaunchParameters(value); return *this;} /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline CreateFleetRequest& WithServerLaunchParameters(Aws::String&& value) { SetServerLaunchParameters(std::move(value)); return *this;} /** *

This parameter is no longer used. Specify server launch parameters * using the RuntimeConfiguration parameter. Requests that use this * parameter instead continue to be valid.

*/ inline CreateFleetRequest& WithServerLaunchParameters(const char* value) { SetServerLaunchParameters(value); return *this;} /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline const Aws::Vector& GetLogPaths() const{ return m_logPaths; } /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline bool LogPathsHasBeenSet() const { return m_logPathsHasBeenSet; } /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline void SetLogPaths(const Aws::Vector& value) { m_logPathsHasBeenSet = true; m_logPaths = value; } /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline void SetLogPaths(Aws::Vector&& value) { m_logPathsHasBeenSet = true; m_logPaths = std::move(value); } /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline CreateFleetRequest& WithLogPaths(const Aws::Vector& value) { SetLogPaths(value); return *this;} /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline CreateFleetRequest& WithLogPaths(Aws::Vector&& value) { SetLogPaths(std::move(value)); return *this;} /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline CreateFleetRequest& AddLogPaths(const Aws::String& value) { m_logPathsHasBeenSet = true; m_logPaths.push_back(value); return *this; } /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline CreateFleetRequest& AddLogPaths(Aws::String&& value) { m_logPathsHasBeenSet = true; m_logPaths.push_back(std::move(value)); return *this; } /** *

This parameter is no longer used. To specify where Amazon GameLift * should store log files once a server process shuts down, use the Amazon GameLift * server API ProcessReady() and specify one or more directory paths * in logParameters. For more information, see Initialize * the server process in the Amazon GameLift Developer Guide.

*/ inline CreateFleetRequest& AddLogPaths(const char* value) { m_logPathsHasBeenSet = true; m_logPaths.push_back(value); return *this; } /** *

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet * instances. Instance type determines the computing resources that will be used to * host your game servers, including CPU, memory, storage, and networking capacity. * See Amazon Elastic Compute * Cloud Instance Types for detailed descriptions of Amazon EC2 instance * types.

*/ inline const EC2InstanceType& GetEC2InstanceType() const{ return m_eC2InstanceType; } /** *

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet * instances. Instance type determines the computing resources that will be used to * host your game servers, including CPU, memory, storage, and networking capacity. * See Amazon Elastic Compute * Cloud Instance Types for detailed descriptions of Amazon EC2 instance * types.

*/ inline bool EC2InstanceTypeHasBeenSet() const { return m_eC2InstanceTypeHasBeenSet; } /** *

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet * instances. Instance type determines the computing resources that will be used to * host your game servers, including CPU, memory, storage, and networking capacity. * See Amazon Elastic Compute * Cloud Instance Types for detailed descriptions of Amazon EC2 instance * types.

*/ inline void SetEC2InstanceType(const EC2InstanceType& value) { m_eC2InstanceTypeHasBeenSet = true; m_eC2InstanceType = value; } /** *

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet * instances. Instance type determines the computing resources that will be used to * host your game servers, including CPU, memory, storage, and networking capacity. * See Amazon Elastic Compute * Cloud Instance Types for detailed descriptions of Amazon EC2 instance * types.

*/ inline void SetEC2InstanceType(EC2InstanceType&& value) { m_eC2InstanceTypeHasBeenSet = true; m_eC2InstanceType = std::move(value); } /** *

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet * instances. Instance type determines the computing resources that will be used to * host your game servers, including CPU, memory, storage, and networking capacity. * See Amazon Elastic Compute * Cloud Instance Types for detailed descriptions of Amazon EC2 instance * types.

*/ inline CreateFleetRequest& WithEC2InstanceType(const EC2InstanceType& value) { SetEC2InstanceType(value); return *this;} /** *

The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet * instances. Instance type determines the computing resources that will be used to * host your game servers, including CPU, memory, storage, and networking capacity. * See Amazon Elastic Compute * Cloud Instance Types for detailed descriptions of Amazon EC2 instance * types.

*/ inline CreateFleetRequest& WithEC2InstanceType(EC2InstanceType&& value) { SetEC2InstanceType(std::move(value)); return *this;} /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline const Aws::Vector& GetEC2InboundPermissions() const{ return m_eC2InboundPermissions; } /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline bool EC2InboundPermissionsHasBeenSet() const { return m_eC2InboundPermissionsHasBeenSet; } /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline void SetEC2InboundPermissions(const Aws::Vector& value) { m_eC2InboundPermissionsHasBeenSet = true; m_eC2InboundPermissions = value; } /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline void SetEC2InboundPermissions(Aws::Vector&& value) { m_eC2InboundPermissionsHasBeenSet = true; m_eC2InboundPermissions = std::move(value); } /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline CreateFleetRequest& WithEC2InboundPermissions(const Aws::Vector& value) { SetEC2InboundPermissions(value); return *this;} /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline CreateFleetRequest& WithEC2InboundPermissions(Aws::Vector&& value) { SetEC2InboundPermissions(std::move(value)); return *this;} /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline CreateFleetRequest& AddEC2InboundPermissions(const IpPermission& value) { m_eC2InboundPermissionsHasBeenSet = true; m_eC2InboundPermissions.push_back(value); return *this; } /** *

The allowed IP address ranges and port settings that allow inbound traffic to * access game sessions on this fleet. If the fleet is hosting a custom game build, * this property must be set before players can connect to game sessions. For * Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. *

*/ inline CreateFleetRequest& AddEC2InboundPermissions(IpPermission&& value) { m_eC2InboundPermissionsHasBeenSet = true; m_eC2InboundPermissions.push_back(std::move(value)); return *this; } /** *

The status of termination protection for active game sessions on the fleet. * By default, this property is set to NoProtection. You can also set * game session protection for an individual game session by calling UpdateGameSession.

*
  • NoProtection - Game sessions can be terminated during * active gameplay as a result of a scale-down event.

  • * FullProtection - Game sessions in ACTIVE status cannot be * terminated during a scale-down event.

*/ inline const ProtectionPolicy& GetNewGameSessionProtectionPolicy() const{ return m_newGameSessionProtectionPolicy; } /** *

The status of termination protection for active game sessions on the fleet. * By default, this property is set to NoProtection. You can also set * game session protection for an individual game session by calling UpdateGameSession.

*
  • NoProtection - Game sessions can be terminated during * active gameplay as a result of a scale-down event.

  • * FullProtection - Game sessions in ACTIVE status cannot be * terminated during a scale-down event.

*/ inline bool NewGameSessionProtectionPolicyHasBeenSet() const { return m_newGameSessionProtectionPolicyHasBeenSet; } /** *

The status of termination protection for active game sessions on the fleet. * By default, this property is set to NoProtection. You can also set * game session protection for an individual game session by calling UpdateGameSession.

*
  • NoProtection - Game sessions can be terminated during * active gameplay as a result of a scale-down event.

  • * FullProtection - Game sessions in ACTIVE status cannot be * terminated during a scale-down event.

*/ inline void SetNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { m_newGameSessionProtectionPolicyHasBeenSet = true; m_newGameSessionProtectionPolicy = value; } /** *

The status of termination protection for active game sessions on the fleet. * By default, this property is set to NoProtection. You can also set * game session protection for an individual game session by calling UpdateGameSession.

*
  • NoProtection - Game sessions can be terminated during * active gameplay as a result of a scale-down event.

  • * FullProtection - Game sessions in ACTIVE status cannot be * terminated during a scale-down event.

*/ inline void SetNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { m_newGameSessionProtectionPolicyHasBeenSet = true; m_newGameSessionProtectionPolicy = std::move(value); } /** *

The status of termination protection for active game sessions on the fleet. * By default, this property is set to NoProtection. You can also set * game session protection for an individual game session by calling UpdateGameSession.

*
  • NoProtection - Game sessions can be terminated during * active gameplay as a result of a scale-down event.

  • * FullProtection - Game sessions in ACTIVE status cannot be * terminated during a scale-down event.

*/ inline CreateFleetRequest& WithNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { SetNewGameSessionProtectionPolicy(value); return *this;} /** *

The status of termination protection for active game sessions on the fleet. * By default, this property is set to NoProtection. You can also set * game session protection for an individual game session by calling UpdateGameSession.

*
  • NoProtection - Game sessions can be terminated during * active gameplay as a result of a scale-down event.

  • * FullProtection - Game sessions in ACTIVE status cannot be * terminated during a scale-down event.

*/ inline CreateFleetRequest& WithNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { SetNewGameSessionProtectionPolicy(std::move(value)); return *this;} /** *

Instructions for how to launch and maintain server processes on instances in * the fleet. The runtime configuration defines one or more server process * configurations, each identifying a build executable or Realtime script file and * the number of processes of that type to run concurrently.

The * RuntimeConfiguration parameter is required unless the fleet is * being configured using the older parameters ServerLaunchPath and * ServerLaunchParameters, which are still supported for backward * compatibility.

*/ inline const RuntimeConfiguration& GetRuntimeConfiguration() const{ return m_runtimeConfiguration; } /** *

Instructions for how to launch and maintain server processes on instances in * the fleet. The runtime configuration defines one or more server process * configurations, each identifying a build executable or Realtime script file and * the number of processes of that type to run concurrently.

The * RuntimeConfiguration parameter is required unless the fleet is * being configured using the older parameters ServerLaunchPath and * ServerLaunchParameters, which are still supported for backward * compatibility.

*/ inline bool RuntimeConfigurationHasBeenSet() const { return m_runtimeConfigurationHasBeenSet; } /** *

Instructions for how to launch and maintain server processes on instances in * the fleet. The runtime configuration defines one or more server process * configurations, each identifying a build executable or Realtime script file and * the number of processes of that type to run concurrently.

The * RuntimeConfiguration parameter is required unless the fleet is * being configured using the older parameters ServerLaunchPath and * ServerLaunchParameters, which are still supported for backward * compatibility.

*/ inline void SetRuntimeConfiguration(const RuntimeConfiguration& value) { m_runtimeConfigurationHasBeenSet = true; m_runtimeConfiguration = value; } /** *

Instructions for how to launch and maintain server processes on instances in * the fleet. The runtime configuration defines one or more server process * configurations, each identifying a build executable or Realtime script file and * the number of processes of that type to run concurrently.

The * RuntimeConfiguration parameter is required unless the fleet is * being configured using the older parameters ServerLaunchPath and * ServerLaunchParameters, which are still supported for backward * compatibility.

*/ inline void SetRuntimeConfiguration(RuntimeConfiguration&& value) { m_runtimeConfigurationHasBeenSet = true; m_runtimeConfiguration = std::move(value); } /** *

Instructions for how to launch and maintain server processes on instances in * the fleet. The runtime configuration defines one or more server process * configurations, each identifying a build executable or Realtime script file and * the number of processes of that type to run concurrently.

The * RuntimeConfiguration parameter is required unless the fleet is * being configured using the older parameters ServerLaunchPath and * ServerLaunchParameters, which are still supported for backward * compatibility.

*/ inline CreateFleetRequest& WithRuntimeConfiguration(const RuntimeConfiguration& value) { SetRuntimeConfiguration(value); return *this;} /** *

Instructions for how to launch and maintain server processes on instances in * the fleet. The runtime configuration defines one or more server process * configurations, each identifying a build executable or Realtime script file and * the number of processes of that type to run concurrently.

The * RuntimeConfiguration parameter is required unless the fleet is * being configured using the older parameters ServerLaunchPath and * ServerLaunchParameters, which are still supported for backward * compatibility.

*/ inline CreateFleetRequest& WithRuntimeConfiguration(RuntimeConfiguration&& value) { SetRuntimeConfiguration(std::move(value)); return *this;} /** *

A policy that limits the number of game sessions that an individual player * can create on instances in this fleet within a specified span of time.

*/ inline const ResourceCreationLimitPolicy& GetResourceCreationLimitPolicy() const{ return m_resourceCreationLimitPolicy; } /** *

A policy that limits the number of game sessions that an individual player * can create on instances in this fleet within a specified span of time.

*/ inline bool ResourceCreationLimitPolicyHasBeenSet() const { return m_resourceCreationLimitPolicyHasBeenSet; } /** *

A policy that limits the number of game sessions that an individual player * can create on instances in this fleet within a specified span of time.

*/ inline void SetResourceCreationLimitPolicy(const ResourceCreationLimitPolicy& value) { m_resourceCreationLimitPolicyHasBeenSet = true; m_resourceCreationLimitPolicy = value; } /** *

A policy that limits the number of game sessions that an individual player * can create on instances in this fleet within a specified span of time.

*/ inline void SetResourceCreationLimitPolicy(ResourceCreationLimitPolicy&& value) { m_resourceCreationLimitPolicyHasBeenSet = true; m_resourceCreationLimitPolicy = std::move(value); } /** *

A policy that limits the number of game sessions that an individual player * can create on instances in this fleet within a specified span of time.

*/ inline CreateFleetRequest& WithResourceCreationLimitPolicy(const ResourceCreationLimitPolicy& value) { SetResourceCreationLimitPolicy(value); return *this;} /** *

A policy that limits the number of game sessions that an individual player * can create on instances in this fleet within a specified span of time.

*/ inline CreateFleetRequest& WithResourceCreationLimitPolicy(ResourceCreationLimitPolicy&& value) { SetResourceCreationLimitPolicy(std::move(value)); return *this;} /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline const Aws::Vector& GetMetricGroups() const{ return m_metricGroups; } /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline bool MetricGroupsHasBeenSet() const { return m_metricGroupsHasBeenSet; } /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline void SetMetricGroups(const Aws::Vector& value) { m_metricGroupsHasBeenSet = true; m_metricGroups = value; } /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline void SetMetricGroups(Aws::Vector&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups = std::move(value); } /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline CreateFleetRequest& WithMetricGroups(const Aws::Vector& value) { SetMetricGroups(value); return *this;} /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline CreateFleetRequest& WithMetricGroups(Aws::Vector&& value) { SetMetricGroups(std::move(value)); return *this;} /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline CreateFleetRequest& AddMetricGroups(const Aws::String& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline CreateFleetRequest& AddMetricGroups(Aws::String&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(std::move(value)); return *this; } /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. A metric group is used to aggregate the metrics for multiple fleets. You can * specify an existing metric group name or set a new name to create a new metric * group. A fleet can be included in only one metric group at a time.

*/ inline CreateFleetRequest& AddMetricGroups(const char* value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline const Aws::String& GetPeerVpcAwsAccountId() const{ return m_peerVpcAwsAccountId; } /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline bool PeerVpcAwsAccountIdHasBeenSet() const { return m_peerVpcAwsAccountIdHasBeenSet; } /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline void SetPeerVpcAwsAccountId(const Aws::String& value) { m_peerVpcAwsAccountIdHasBeenSet = true; m_peerVpcAwsAccountId = value; } /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline void SetPeerVpcAwsAccountId(Aws::String&& value) { m_peerVpcAwsAccountIdHasBeenSet = true; m_peerVpcAwsAccountId = std::move(value); } /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline void SetPeerVpcAwsAccountId(const char* value) { m_peerVpcAwsAccountIdHasBeenSet = true; m_peerVpcAwsAccountId.assign(value); } /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline CreateFleetRequest& WithPeerVpcAwsAccountId(const Aws::String& value) { SetPeerVpcAwsAccountId(value); return *this;} /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline CreateFleetRequest& WithPeerVpcAwsAccountId(Aws::String&& value) { SetPeerVpcAwsAccountId(std::move(value)); return *this;} /** *

Used when peering your Amazon GameLift fleet with a VPC, the unique * identifier for the Amazon Web Services account that owns the VPC. You can find * your account ID in the Amazon Web Services Management Console under account * settings.

*/ inline CreateFleetRequest& WithPeerVpcAwsAccountId(const char* value) { SetPeerVpcAwsAccountId(value); return *this;} /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline const Aws::String& GetPeerVpcId() const{ return m_peerVpcId; } /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline bool PeerVpcIdHasBeenSet() const { return m_peerVpcIdHasBeenSet; } /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline void SetPeerVpcId(const Aws::String& value) { m_peerVpcIdHasBeenSet = true; m_peerVpcId = value; } /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline void SetPeerVpcId(Aws::String&& value) { m_peerVpcIdHasBeenSet = true; m_peerVpcId = std::move(value); } /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline void SetPeerVpcId(const char* value) { m_peerVpcIdHasBeenSet = true; m_peerVpcId.assign(value); } /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline CreateFleetRequest& WithPeerVpcId(const Aws::String& value) { SetPeerVpcId(value); return *this;} /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline CreateFleetRequest& WithPeerVpcId(Aws::String&& value) { SetPeerVpcId(std::move(value)); return *this;} /** *

A unique identifier for a VPC with resources to be accessed by your Amazon * GameLift fleet. The VPC must be in the same Region as your fleet. To look up a * VPC ID, use the VPC Dashboard * in the Amazon Web Services Management Console. Learn more about VPC peering in * VPC * Peering with Amazon GameLift Fleets.

*/ inline CreateFleetRequest& WithPeerVpcId(const char* value) { SetPeerVpcId(value); return *this;} /** *

Indicates whether to use On-Demand or Spot instances for this fleet. By * default, this property is set to ON_DEMAND. Learn more about when * to use * On-Demand versus Spot Instances. This property cannot be changed after the * fleet is created.

*/ inline const FleetType& GetFleetType() const{ return m_fleetType; } /** *

Indicates whether to use On-Demand or Spot instances for this fleet. By * default, this property is set to ON_DEMAND. Learn more about when * to use * On-Demand versus Spot Instances. This property cannot be changed after the * fleet is created.

*/ inline bool FleetTypeHasBeenSet() const { return m_fleetTypeHasBeenSet; } /** *

Indicates whether to use On-Demand or Spot instances for this fleet. By * default, this property is set to ON_DEMAND. Learn more about when * to use * On-Demand versus Spot Instances. This property cannot be changed after the * fleet is created.

*/ inline void SetFleetType(const FleetType& value) { m_fleetTypeHasBeenSet = true; m_fleetType = value; } /** *

Indicates whether to use On-Demand or Spot instances for this fleet. By * default, this property is set to ON_DEMAND. Learn more about when * to use * On-Demand versus Spot Instances. This property cannot be changed after the * fleet is created.

*/ inline void SetFleetType(FleetType&& value) { m_fleetTypeHasBeenSet = true; m_fleetType = std::move(value); } /** *

Indicates whether to use On-Demand or Spot instances for this fleet. By * default, this property is set to ON_DEMAND. Learn more about when * to use * On-Demand versus Spot Instances. This property cannot be changed after the * fleet is created.

*/ inline CreateFleetRequest& WithFleetType(const FleetType& value) { SetFleetType(value); return *this;} /** *

Indicates whether to use On-Demand or Spot instances for this fleet. By * default, this property is set to ON_DEMAND. Learn more about when * to use * On-Demand versus Spot Instances. This property cannot be changed after the * fleet is created.

*/ inline CreateFleetRequest& WithFleetType(FleetType&& value) { SetFleetType(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 property cannot be * changed after the fleet is created.

*/ inline const Aws::String& GetInstanceRoleArn() const{ return m_instanceRoleArn; } /** *

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 property cannot be * changed after the fleet is created.

*/ inline bool InstanceRoleArnHasBeenSet() const { return m_instanceRoleArnHasBeenSet; } /** *

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 property cannot be * changed after the fleet is created.

*/ inline void SetInstanceRoleArn(const Aws::String& value) { m_instanceRoleArnHasBeenSet = true; m_instanceRoleArn = value; } /** *

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 property cannot be * changed after the fleet is created.

*/ inline void SetInstanceRoleArn(Aws::String&& value) { m_instanceRoleArnHasBeenSet = true; m_instanceRoleArn = std::move(value); } /** *

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 property cannot be * changed after the fleet is created.

*/ inline void SetInstanceRoleArn(const char* value) { m_instanceRoleArnHasBeenSet = true; m_instanceRoleArn.assign(value); } /** *

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 property cannot be * changed after the fleet is created.

*/ inline CreateFleetRequest& WithInstanceRoleArn(const Aws::String& value) { SetInstanceRoleArn(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 property cannot be * changed after the fleet is created.

*/ inline CreateFleetRequest& WithInstanceRoleArn(Aws::String&& value) { SetInstanceRoleArn(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 property cannot be * changed after the fleet is created.

*/ inline CreateFleetRequest& WithInstanceRoleArn(const char* value) { SetInstanceRoleArn(value); return *this;} /** *

Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. * Amazon GameLift uses the certificates to encrypt traffic between game clients * and the game servers running on Amazon GameLift. By default, the * CertificateConfiguration is DISABLED. You can't change * this property after you create the fleet.

Certificate Manager (ACM) * certificates expire after 13 months. Certificate expiration can cause fleets to * fail, preventing players from connecting to instances in the fleet. We recommend * you replace fleets before 13 months, consider using fleet aliases for a smooth * transition.

ACM isn't available in all Amazon Web Services * regions. A fleet creation request with certificate generation enabled in an * unsupported Region, fails with a 4xx error. For more information about the * supported Regions, see Supported * Regions in the Certificate Manager User Guide.

*/ inline const CertificateConfiguration& GetCertificateConfiguration() const{ return m_certificateConfiguration; } /** *

Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. * Amazon GameLift uses the certificates to encrypt traffic between game clients * and the game servers running on Amazon GameLift. By default, the * CertificateConfiguration is DISABLED. You can't change * this property after you create the fleet.

Certificate Manager (ACM) * certificates expire after 13 months. Certificate expiration can cause fleets to * fail, preventing players from connecting to instances in the fleet. We recommend * you replace fleets before 13 months, consider using fleet aliases for a smooth * transition.

ACM isn't available in all Amazon Web Services * regions. A fleet creation request with certificate generation enabled in an * unsupported Region, fails with a 4xx error. For more information about the * supported Regions, see Supported * Regions in the Certificate Manager User Guide.

*/ inline bool CertificateConfigurationHasBeenSet() const { return m_certificateConfigurationHasBeenSet; } /** *

Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. * Amazon GameLift uses the certificates to encrypt traffic between game clients * and the game servers running on Amazon GameLift. By default, the * CertificateConfiguration is DISABLED. You can't change * this property after you create the fleet.

Certificate Manager (ACM) * certificates expire after 13 months. Certificate expiration can cause fleets to * fail, preventing players from connecting to instances in the fleet. We recommend * you replace fleets before 13 months, consider using fleet aliases for a smooth * transition.

ACM isn't available in all Amazon Web Services * regions. A fleet creation request with certificate generation enabled in an * unsupported Region, fails with a 4xx error. For more information about the * supported Regions, see Supported * Regions in the Certificate Manager User Guide.

*/ inline void SetCertificateConfiguration(const CertificateConfiguration& value) { m_certificateConfigurationHasBeenSet = true; m_certificateConfiguration = value; } /** *

Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. * Amazon GameLift uses the certificates to encrypt traffic between game clients * and the game servers running on Amazon GameLift. By default, the * CertificateConfiguration is DISABLED. You can't change * this property after you create the fleet.

Certificate Manager (ACM) * certificates expire after 13 months. Certificate expiration can cause fleets to * fail, preventing players from connecting to instances in the fleet. We recommend * you replace fleets before 13 months, consider using fleet aliases for a smooth * transition.

ACM isn't available in all Amazon Web Services * regions. A fleet creation request with certificate generation enabled in an * unsupported Region, fails with a 4xx error. For more information about the * supported Regions, see Supported * Regions in the Certificate Manager User Guide.

*/ inline void SetCertificateConfiguration(CertificateConfiguration&& value) { m_certificateConfigurationHasBeenSet = true; m_certificateConfiguration = std::move(value); } /** *

Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. * Amazon GameLift uses the certificates to encrypt traffic between game clients * and the game servers running on Amazon GameLift. By default, the * CertificateConfiguration is DISABLED. You can't change * this property after you create the fleet.

Certificate Manager (ACM) * certificates expire after 13 months. Certificate expiration can cause fleets to * fail, preventing players from connecting to instances in the fleet. We recommend * you replace fleets before 13 months, consider using fleet aliases for a smooth * transition.

ACM isn't available in all Amazon Web Services * regions. A fleet creation request with certificate generation enabled in an * unsupported Region, fails with a 4xx error. For more information about the * supported Regions, see Supported * Regions in the Certificate Manager User Guide.

*/ inline CreateFleetRequest& WithCertificateConfiguration(const CertificateConfiguration& value) { SetCertificateConfiguration(value); return *this;} /** *

Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. * Amazon GameLift uses the certificates to encrypt traffic between game clients * and the game servers running on Amazon GameLift. By default, the * CertificateConfiguration is DISABLED. You can't change * this property after you create the fleet.

Certificate Manager (ACM) * certificates expire after 13 months. Certificate expiration can cause fleets to * fail, preventing players from connecting to instances in the fleet. We recommend * you replace fleets before 13 months, consider using fleet aliases for a smooth * transition.

ACM isn't available in all Amazon Web Services * regions. A fleet creation request with certificate generation enabled in an * unsupported Region, fails with a 4xx error. For more information about the * supported Regions, see Supported * Regions in the Certificate Manager User Guide.

*/ inline CreateFleetRequest& WithCertificateConfiguration(CertificateConfiguration&& value) { SetCertificateConfiguration(std::move(value)); return *this;} /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline const Aws::Vector& GetLocations() const{ return m_locations; } /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline bool LocationsHasBeenSet() const { return m_locationsHasBeenSet; } /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline void SetLocations(const Aws::Vector& value) { m_locationsHasBeenSet = true; m_locations = value; } /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline void SetLocations(Aws::Vector&& value) { m_locationsHasBeenSet = true; m_locations = std::move(value); } /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline CreateFleetRequest& WithLocations(const Aws::Vector& value) { SetLocations(value); return *this;} /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline CreateFleetRequest& WithLocations(Aws::Vector&& value) { SetLocations(std::move(value)); return *this;} /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline CreateFleetRequest& AddLocations(const LocationConfiguration& value) { m_locationsHasBeenSet = true; m_locations.push_back(value); return *this; } /** *

A set of remote locations to deploy additional instances to and manage as * part of the fleet. This parameter can only be used when creating fleets in * Amazon Web Services Regions that support multiple locations. You can add any * Amazon GameLift-supported Amazon Web Services Region as a remote location, in * the form of an Amazon Web Services Region code such as us-west-2. * To create a fleet with instances in the home Region only, don't use this * parameter.

To use this parameter, Amazon GameLift requires you to use * your home location in the request.

*/ inline CreateFleetRequest& AddLocations(LocationConfiguration&& value) { m_locationsHasBeenSet = true; m_locations.push_back(std::move(value)); return *this; } /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateFleetRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateFleetRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateFleetRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of labels to assign to the new fleet 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 Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateFleetRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(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. By default, this property is set to * EC2.

*/ inline const ComputeType& GetComputeType() const{ return m_computeType; } /** *

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. By default, this property is set to * EC2.

*/ inline bool ComputeTypeHasBeenSet() const { return m_computeTypeHasBeenSet; } /** *

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. By default, this property is set to * EC2.

*/ inline void SetComputeType(const ComputeType& value) { m_computeTypeHasBeenSet = true; m_computeType = value; } /** *

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. By default, this property is set to * EC2.

*/ inline void SetComputeType(ComputeType&& value) { m_computeTypeHasBeenSet = true; m_computeType = std::move(value); } /** *

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. By default, this property is set to * EC2.

*/ inline CreateFleetRequest& WithComputeType(const ComputeType& value) { SetComputeType(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. By default, this property is set to * EC2.

*/ inline CreateFleetRequest& WithComputeType(ComputeType&& value) { SetComputeType(std::move(value)); return *this;} /** *

Amazon GameLift Anywhere configuration options.

*/ inline const AnywhereConfiguration& GetAnywhereConfiguration() const{ return m_anywhereConfiguration; } /** *

Amazon GameLift Anywhere configuration options.

*/ inline bool AnywhereConfigurationHasBeenSet() const { return m_anywhereConfigurationHasBeenSet; } /** *

Amazon GameLift Anywhere configuration options.

*/ inline void SetAnywhereConfiguration(const AnywhereConfiguration& value) { m_anywhereConfigurationHasBeenSet = true; m_anywhereConfiguration = value; } /** *

Amazon GameLift Anywhere configuration options.

*/ inline void SetAnywhereConfiguration(AnywhereConfiguration&& value) { m_anywhereConfigurationHasBeenSet = true; m_anywhereConfiguration = std::move(value); } /** *

Amazon GameLift Anywhere configuration options.

*/ inline CreateFleetRequest& WithAnywhereConfiguration(const AnywhereConfiguration& value) { SetAnywhereConfiguration(value); return *this;} /** *

Amazon GameLift Anywhere configuration options.

*/ inline CreateFleetRequest& WithAnywhereConfiguration(AnywhereConfiguration&& value) { SetAnywhereConfiguration(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_buildId; bool m_buildIdHasBeenSet = false; Aws::String m_scriptId; bool m_scriptIdHasBeenSet = 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; EC2InstanceType m_eC2InstanceType; bool m_eC2InstanceTypeHasBeenSet = false; Aws::Vector m_eC2InboundPermissions; bool m_eC2InboundPermissionsHasBeenSet = false; ProtectionPolicy m_newGameSessionProtectionPolicy; bool m_newGameSessionProtectionPolicyHasBeenSet = false; RuntimeConfiguration m_runtimeConfiguration; bool m_runtimeConfigurationHasBeenSet = false; ResourceCreationLimitPolicy m_resourceCreationLimitPolicy; bool m_resourceCreationLimitPolicyHasBeenSet = false; Aws::Vector m_metricGroups; bool m_metricGroupsHasBeenSet = false; Aws::String m_peerVpcAwsAccountId; bool m_peerVpcAwsAccountIdHasBeenSet = false; Aws::String m_peerVpcId; bool m_peerVpcIdHasBeenSet = false; FleetType m_fleetType; bool m_fleetTypeHasBeenSet = false; Aws::String m_instanceRoleArn; bool m_instanceRoleArnHasBeenSet = false; CertificateConfiguration m_certificateConfiguration; bool m_certificateConfigurationHasBeenSet = false; Aws::Vector m_locations; bool m_locationsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; ComputeType m_computeType; bool m_computeTypeHasBeenSet = false; AnywhereConfiguration m_anywhereConfiguration; bool m_anywhereConfigurationHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws