/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GameLift { namespace Model { /** *

Describes an Amazon GameLift managed container fleet.

See * Also:

AWS * API Reference

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

A unique identifier for the container fleet to retrieve.

*/ inline const Aws::String& GetFleetId() const{ return m_fleetId; } inline bool FleetIdHasBeenSet() const { return m_fleetIdHasBeenSet; } inline void SetFleetId(const Aws::String& value) { m_fleetIdHasBeenSet = true; m_fleetId = value; } inline void SetFleetId(Aws::String&& value) { m_fleetIdHasBeenSet = true; m_fleetId = std::move(value); } inline void SetFleetId(const char* value) { m_fleetIdHasBeenSet = true; m_fleetId.assign(value); } inline ContainerFleet& WithFleetId(const Aws::String& value) { SetFleetId(value); return *this;} inline ContainerFleet& WithFleetId(Aws::String&& value) { SetFleetId(std::move(value)); return *this;} inline ContainerFleet& WithFleetId(const char* value) { SetFleetId(value); return *this;} ///@} ///@{ /** *

The Amazon Resource Name (ARN) * that is assigned to a Amazon GameLift fleet resource and uniquely identifies it. * ARNs are unique across all Regions. Format is * arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. * In a GameLift fleet ARN, the resource ID matches the FleetId * value.

*/ 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 ContainerFleet& WithFleetArn(const Aws::String& value) { SetFleetArn(value); return *this;} inline ContainerFleet& WithFleetArn(Aws::String&& value) { SetFleetArn(std::move(value)); return *this;} inline ContainerFleet& WithFleetArn(const char* value) { SetFleetArn(value); return *this;} ///@} ///@{ /** *

The unique identifier for an Identity and Access Management (IAM) role with * permissions to run your containers on resources that are managed by Amazon * GameLift. See Set * up an IAM service role. This fleet property can't be changed.

*/ inline const Aws::String& GetFleetRoleArn() const{ return m_fleetRoleArn; } inline bool FleetRoleArnHasBeenSet() const { return m_fleetRoleArnHasBeenSet; } inline void SetFleetRoleArn(const Aws::String& value) { m_fleetRoleArnHasBeenSet = true; m_fleetRoleArn = value; } inline void SetFleetRoleArn(Aws::String&& value) { m_fleetRoleArnHasBeenSet = true; m_fleetRoleArn = std::move(value); } inline void SetFleetRoleArn(const char* value) { m_fleetRoleArnHasBeenSet = true; m_fleetRoleArn.assign(value); } inline ContainerFleet& WithFleetRoleArn(const Aws::String& value) { SetFleetRoleArn(value); return *this;} inline ContainerFleet& WithFleetRoleArn(Aws::String&& value) { SetFleetRoleArn(std::move(value)); return *this;} inline ContainerFleet& WithFleetRoleArn(const char* value) { SetFleetRoleArn(value); return *this;} ///@} ///@{ /** *

The name of the fleet's game server container group definition, which * describes how to deploy containers with your game server build and support * software onto each fleet instance.

*/ inline const Aws::String& GetGameServerContainerGroupDefinitionName() const{ return m_gameServerContainerGroupDefinitionName; } inline bool GameServerContainerGroupDefinitionNameHasBeenSet() const { return m_gameServerContainerGroupDefinitionNameHasBeenSet; } inline void SetGameServerContainerGroupDefinitionName(const Aws::String& value) { m_gameServerContainerGroupDefinitionNameHasBeenSet = true; m_gameServerContainerGroupDefinitionName = value; } inline void SetGameServerContainerGroupDefinitionName(Aws::String&& value) { m_gameServerContainerGroupDefinitionNameHasBeenSet = true; m_gameServerContainerGroupDefinitionName = std::move(value); } inline void SetGameServerContainerGroupDefinitionName(const char* value) { m_gameServerContainerGroupDefinitionNameHasBeenSet = true; m_gameServerContainerGroupDefinitionName.assign(value); } inline ContainerFleet& WithGameServerContainerGroupDefinitionName(const Aws::String& value) { SetGameServerContainerGroupDefinitionName(value); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionName(Aws::String&& value) { SetGameServerContainerGroupDefinitionName(std::move(value)); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionName(const char* value) { SetGameServerContainerGroupDefinitionName(value); return *this;} ///@} ///@{ /** *

The Amazon Resource Name (ARN) * that is assigned to the fleet's game server container group. The ARN value also * identifies the specific container group definition version in use.

*/ inline const Aws::String& GetGameServerContainerGroupDefinitionArn() const{ return m_gameServerContainerGroupDefinitionArn; } inline bool GameServerContainerGroupDefinitionArnHasBeenSet() const { return m_gameServerContainerGroupDefinitionArnHasBeenSet; } inline void SetGameServerContainerGroupDefinitionArn(const Aws::String& value) { m_gameServerContainerGroupDefinitionArnHasBeenSet = true; m_gameServerContainerGroupDefinitionArn = value; } inline void SetGameServerContainerGroupDefinitionArn(Aws::String&& value) { m_gameServerContainerGroupDefinitionArnHasBeenSet = true; m_gameServerContainerGroupDefinitionArn = std::move(value); } inline void SetGameServerContainerGroupDefinitionArn(const char* value) { m_gameServerContainerGroupDefinitionArnHasBeenSet = true; m_gameServerContainerGroupDefinitionArn.assign(value); } inline ContainerFleet& WithGameServerContainerGroupDefinitionArn(const Aws::String& value) { SetGameServerContainerGroupDefinitionArn(value); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionArn(Aws::String&& value) { SetGameServerContainerGroupDefinitionArn(std::move(value)); return *this;} inline ContainerFleet& WithGameServerContainerGroupDefinitionArn(const char* value) { SetGameServerContainerGroupDefinitionArn(value); return *this;} ///@} ///@{ /** *

The name of the fleet's per-instance container group definition.

*/ inline const Aws::String& GetPerInstanceContainerGroupDefinitionName() const{ return m_perInstanceContainerGroupDefinitionName; } inline bool PerInstanceContainerGroupDefinitionNameHasBeenSet() const { return m_perInstanceContainerGroupDefinitionNameHasBeenSet; } inline void SetPerInstanceContainerGroupDefinitionName(const Aws::String& value) { m_perInstanceContainerGroupDefinitionNameHasBeenSet = true; m_perInstanceContainerGroupDefinitionName = value; } inline void SetPerInstanceContainerGroupDefinitionName(Aws::String&& value) { m_perInstanceContainerGroupDefinitionNameHasBeenSet = true; m_perInstanceContainerGroupDefinitionName = std::move(value); } inline void SetPerInstanceContainerGroupDefinitionName(const char* value) { m_perInstanceContainerGroupDefinitionNameHasBeenSet = true; m_perInstanceContainerGroupDefinitionName.assign(value); } inline ContainerFleet& WithPerInstanceContainerGroupDefinitionName(const Aws::String& value) { SetPerInstanceContainerGroupDefinitionName(value); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionName(Aws::String&& value) { SetPerInstanceContainerGroupDefinitionName(std::move(value)); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionName(const char* value) { SetPerInstanceContainerGroupDefinitionName(value); return *this;} ///@} ///@{ /** *

The Amazon Resource Name (ARN) * that is assigned to the fleet's per-instance container group. The ARN value also * identifies the specific container group definition version in use.

*/ inline const Aws::String& GetPerInstanceContainerGroupDefinitionArn() const{ return m_perInstanceContainerGroupDefinitionArn; } inline bool PerInstanceContainerGroupDefinitionArnHasBeenSet() const { return m_perInstanceContainerGroupDefinitionArnHasBeenSet; } inline void SetPerInstanceContainerGroupDefinitionArn(const Aws::String& value) { m_perInstanceContainerGroupDefinitionArnHasBeenSet = true; m_perInstanceContainerGroupDefinitionArn = value; } inline void SetPerInstanceContainerGroupDefinitionArn(Aws::String&& value) { m_perInstanceContainerGroupDefinitionArnHasBeenSet = true; m_perInstanceContainerGroupDefinitionArn = std::move(value); } inline void SetPerInstanceContainerGroupDefinitionArn(const char* value) { m_perInstanceContainerGroupDefinitionArnHasBeenSet = true; m_perInstanceContainerGroupDefinitionArn.assign(value); } inline ContainerFleet& WithPerInstanceContainerGroupDefinitionArn(const Aws::String& value) { SetPerInstanceContainerGroupDefinitionArn(value); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionArn(Aws::String&& value) { SetPerInstanceContainerGroupDefinitionArn(std::move(value)); return *this;} inline ContainerFleet& WithPerInstanceContainerGroupDefinitionArn(const char* value) { SetPerInstanceContainerGroupDefinitionArn(value); return *this;} ///@} ///@{ inline const ConnectionPortRange& GetInstanceConnectionPortRange() const{ return m_instanceConnectionPortRange; } inline bool InstanceConnectionPortRangeHasBeenSet() const { return m_instanceConnectionPortRangeHasBeenSet; } inline void SetInstanceConnectionPortRange(const ConnectionPortRange& value) { m_instanceConnectionPortRangeHasBeenSet = true; m_instanceConnectionPortRange = value; } inline void SetInstanceConnectionPortRange(ConnectionPortRange&& value) { m_instanceConnectionPortRangeHasBeenSet = true; m_instanceConnectionPortRange = std::move(value); } inline ContainerFleet& WithInstanceConnectionPortRange(const ConnectionPortRange& value) { SetInstanceConnectionPortRange(value); return *this;} inline ContainerFleet& WithInstanceConnectionPortRange(ConnectionPortRange&& value) { SetInstanceConnectionPortRange(std::move(value)); return *this;} ///@} ///@{ /** *

The IP address ranges and port settings that allow inbound traffic to access * game server processes and other processes on this fleet.

*/ inline const Aws::Vector& GetInstanceInboundPermissions() const{ return m_instanceInboundPermissions; } inline bool InstanceInboundPermissionsHasBeenSet() const { return m_instanceInboundPermissionsHasBeenSet; } inline void SetInstanceInboundPermissions(const Aws::Vector& value) { m_instanceInboundPermissionsHasBeenSet = true; m_instanceInboundPermissions = value; } inline void SetInstanceInboundPermissions(Aws::Vector&& value) { m_instanceInboundPermissionsHasBeenSet = true; m_instanceInboundPermissions = std::move(value); } inline ContainerFleet& WithInstanceInboundPermissions(const Aws::Vector& value) { SetInstanceInboundPermissions(value); return *this;} inline ContainerFleet& WithInstanceInboundPermissions(Aws::Vector&& value) { SetInstanceInboundPermissions(std::move(value)); return *this;} inline ContainerFleet& AddInstanceInboundPermissions(const IpPermission& value) { m_instanceInboundPermissionsHasBeenSet = true; m_instanceInboundPermissions.push_back(value); return *this; } inline ContainerFleet& AddInstanceInboundPermissions(IpPermission&& value) { m_instanceInboundPermissionsHasBeenSet = true; m_instanceInboundPermissions.push_back(std::move(value)); return *this; } ///@} ///@{ /** *

The number of times to replicate the game server container group on each * fleet instance.

*/ inline int GetGameServerContainerGroupsPerInstance() const{ return m_gameServerContainerGroupsPerInstance; } inline bool GameServerContainerGroupsPerInstanceHasBeenSet() const { return m_gameServerContainerGroupsPerInstanceHasBeenSet; } inline void SetGameServerContainerGroupsPerInstance(int value) { m_gameServerContainerGroupsPerInstanceHasBeenSet = true; m_gameServerContainerGroupsPerInstance = value; } inline ContainerFleet& WithGameServerContainerGroupsPerInstance(int value) { SetGameServerContainerGroupsPerInstance(value); return *this;} ///@} ///@{ /** *

The calculated maximum number of game server container group that can be * deployed on each fleet instance. The calculation depends on the resource needs * of the container group and the CPU and memory resources of the fleet's instance * type.

*/ inline int GetMaximumGameServerContainerGroupsPerInstance() const{ return m_maximumGameServerContainerGroupsPerInstance; } inline bool MaximumGameServerContainerGroupsPerInstanceHasBeenSet() const { return m_maximumGameServerContainerGroupsPerInstanceHasBeenSet; } inline void SetMaximumGameServerContainerGroupsPerInstance(int value) { m_maximumGameServerContainerGroupsPerInstanceHasBeenSet = true; m_maximumGameServerContainerGroupsPerInstance = value; } inline ContainerFleet& WithMaximumGameServerContainerGroupsPerInstance(int value) { SetMaximumGameServerContainerGroupsPerInstance(value); return *this;} ///@} ///@{ /** *

The Amazon EC2 instance type to use for all instances in the fleet. Instance * type determines the computing resources and processing power that's available to * host your game servers. This includes including CPU, memory, storage, and * networking capacity. You can't update this fleet property.

*/ inline const Aws::String& GetInstanceType() const{ return m_instanceType; } inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; } inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; } inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); } inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); } inline ContainerFleet& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;} inline ContainerFleet& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;} inline ContainerFleet& WithInstanceType(const char* value) { SetInstanceType(value); return *this;} ///@} ///@{ /** *

Indicates whether the fleet uses On-Demand or Spot instances for this fleet. * Learn more about when to use * On-Demand versus Spot Instances. You can't update this fleet property.

*

By default, this property is set to ON_DEMAND.

*/ inline const ContainerFleetBillingType& GetBillingType() const{ return m_billingType; } inline bool BillingTypeHasBeenSet() const { return m_billingTypeHasBeenSet; } inline void SetBillingType(const ContainerFleetBillingType& value) { m_billingTypeHasBeenSet = true; m_billingType = value; } inline void SetBillingType(ContainerFleetBillingType&& value) { m_billingTypeHasBeenSet = true; m_billingType = std::move(value); } inline ContainerFleet& WithBillingType(const ContainerFleetBillingType& value) { SetBillingType(value); return *this;} inline ContainerFleet& WithBillingType(ContainerFleetBillingType&& value) { SetBillingType(std::move(value)); return *this;} ///@} ///@{ /** *

A meaningful description of the container fleet.

*/ inline const Aws::String& GetDescription() const{ return m_description; } inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } inline ContainerFleet& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} inline ContainerFleet& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} inline ContainerFleet& WithDescription(const char* value) { SetDescription(value); return *this;} ///@} ///@{ /** *

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

*/ 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 ContainerFleet& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} inline ContainerFleet& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} ///@} ///@{ /** *

The name of an Amazon Web Services CloudWatch metric group to add this fleet * to. Metric groups aggregate metrics for multiple fleets.

*/ inline const Aws::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 ContainerFleet& WithMetricGroups(const Aws::Vector& value) { SetMetricGroups(value); return *this;} inline ContainerFleet& WithMetricGroups(Aws::Vector&& value) { SetMetricGroups(std::move(value)); return *this;} inline ContainerFleet& AddMetricGroups(const Aws::String& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } inline ContainerFleet& AddMetricGroups(Aws::String&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(std::move(value)); return *this; } inline ContainerFleet& AddMetricGroups(const char* value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } ///@} ///@{ /** *

Determines whether Amazon GameLift can shut down game sessions on the fleet * that are actively running and hosting players. Amazon GameLift might prompt an * instance shutdown when scaling down fleet capacity or when retiring unhealthy * instances. You can also set game session protection for individual game sessions * using UpdateGameSession.

*
  • NoProtection -- Game sessions can be shut down during * active gameplay.

  • FullProtection -- Game sessions in * ACTIVE status can't be shut down.

*/ 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 ContainerFleet& WithNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { SetNewGameSessionProtectionPolicy(value); return *this;} inline ContainerFleet& WithNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { SetNewGameSessionProtectionPolicy(std::move(value)); return *this;} ///@} ///@{ /** *

A policy that limits the number of game sessions that each individual player * can create on instances in this fleet. The limit applies for a specified span of * time.

*/ inline const GameSessionCreationLimitPolicy& GetGameSessionCreationLimitPolicy() const{ return m_gameSessionCreationLimitPolicy; } inline bool GameSessionCreationLimitPolicyHasBeenSet() const { return m_gameSessionCreationLimitPolicyHasBeenSet; } inline void SetGameSessionCreationLimitPolicy(const GameSessionCreationLimitPolicy& value) { m_gameSessionCreationLimitPolicyHasBeenSet = true; m_gameSessionCreationLimitPolicy = value; } inline void SetGameSessionCreationLimitPolicy(GameSessionCreationLimitPolicy&& value) { m_gameSessionCreationLimitPolicyHasBeenSet = true; m_gameSessionCreationLimitPolicy = std::move(value); } inline ContainerFleet& WithGameSessionCreationLimitPolicy(const GameSessionCreationLimitPolicy& value) { SetGameSessionCreationLimitPolicy(value); return *this;} inline ContainerFleet& WithGameSessionCreationLimitPolicy(GameSessionCreationLimitPolicy&& value) { SetGameSessionCreationLimitPolicy(std::move(value)); return *this;} ///@} ///@{ /** *

The current status of the container fleet.

  • * PENDING -- A new container fleet has been requested.

  • *

    CREATING -- A new container fleet resource is being created. *

  • CREATED -- A new container fleet resource has * been created. No fleet instances have been deployed.

  • * ACTIVATING -- New container fleet instances are being deployed.

    *
  • ACTIVE -- The container fleet has been deployed and * is ready to host game sessions.

  • UPDATING -- * Updates to the container fleet is being updated. A deployment is in * progress.

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

Information about the most recent deployment for the container fleet.

*/ inline const DeploymentDetails& GetDeploymentDetails() const{ return m_deploymentDetails; } inline bool DeploymentDetailsHasBeenSet() const { return m_deploymentDetailsHasBeenSet; } inline void SetDeploymentDetails(const DeploymentDetails& value) { m_deploymentDetailsHasBeenSet = true; m_deploymentDetails = value; } inline void SetDeploymentDetails(DeploymentDetails&& value) { m_deploymentDetailsHasBeenSet = true; m_deploymentDetails = std::move(value); } inline ContainerFleet& WithDeploymentDetails(const DeploymentDetails& value) { SetDeploymentDetails(value); return *this;} inline ContainerFleet& WithDeploymentDetails(DeploymentDetails&& value) { SetDeploymentDetails(std::move(value)); return *this;} ///@} ///@{ /** *

The method that is used to collect container logs for the fleet. Amazon * GameLift saves all standard output for each container in logs, including game * session logs.

  • CLOUDWATCH -- Send logs to an * Amazon CloudWatch log group that you define. Each container emits a log stream, * which is organized in the log group.

  • S3 -- * Store logs in an Amazon S3 bucket that you define.

  • * NONE -- Don't collect container logs.

*/ inline const LogConfiguration& GetLogConfiguration() const{ return m_logConfiguration; } inline bool LogConfigurationHasBeenSet() const { return m_logConfigurationHasBeenSet; } inline void SetLogConfiguration(const LogConfiguration& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = value; } inline void SetLogConfiguration(LogConfiguration&& value) { m_logConfigurationHasBeenSet = true; m_logConfiguration = std::move(value); } inline ContainerFleet& WithLogConfiguration(const LogConfiguration& value) { SetLogConfiguration(value); return *this;} inline ContainerFleet& WithLogConfiguration(LogConfiguration&& value) { SetLogConfiguration(std::move(value)); return *this;} ///@} ///@{ /** *

Information about the container fleet's remote locations where fleet * instances are deployed.

*/ inline const Aws::Vector& GetLocationAttributes() const{ return m_locationAttributes; } inline bool LocationAttributesHasBeenSet() const { return m_locationAttributesHasBeenSet; } inline void SetLocationAttributes(const Aws::Vector& value) { m_locationAttributesHasBeenSet = true; m_locationAttributes = value; } inline void SetLocationAttributes(Aws::Vector&& value) { m_locationAttributesHasBeenSet = true; m_locationAttributes = std::move(value); } inline ContainerFleet& WithLocationAttributes(const Aws::Vector& value) { SetLocationAttributes(value); return *this;} inline ContainerFleet& WithLocationAttributes(Aws::Vector&& value) { SetLocationAttributes(std::move(value)); return *this;} inline ContainerFleet& AddLocationAttributes(const ContainerFleetLocationAttributes& value) { m_locationAttributesHasBeenSet = true; m_locationAttributes.push_back(value); return *this; } inline ContainerFleet& AddLocationAttributes(ContainerFleetLocationAttributes&& value) { m_locationAttributesHasBeenSet = true; m_locationAttributes.push_back(std::move(value)); return *this; } ///@} private: Aws::String m_fleetId; bool m_fleetIdHasBeenSet = false; Aws::String m_fleetArn; bool m_fleetArnHasBeenSet = false; Aws::String m_fleetRoleArn; bool m_fleetRoleArnHasBeenSet = false; Aws::String m_gameServerContainerGroupDefinitionName; bool m_gameServerContainerGroupDefinitionNameHasBeenSet = false; Aws::String m_gameServerContainerGroupDefinitionArn; bool m_gameServerContainerGroupDefinitionArnHasBeenSet = false; Aws::String m_perInstanceContainerGroupDefinitionName; bool m_perInstanceContainerGroupDefinitionNameHasBeenSet = false; Aws::String m_perInstanceContainerGroupDefinitionArn; bool m_perInstanceContainerGroupDefinitionArnHasBeenSet = false; ConnectionPortRange m_instanceConnectionPortRange; bool m_instanceConnectionPortRangeHasBeenSet = false; Aws::Vector m_instanceInboundPermissions; bool m_instanceInboundPermissionsHasBeenSet = false; int m_gameServerContainerGroupsPerInstance; bool m_gameServerContainerGroupsPerInstanceHasBeenSet = false; int m_maximumGameServerContainerGroupsPerInstance; bool m_maximumGameServerContainerGroupsPerInstanceHasBeenSet = false; Aws::String m_instanceType; bool m_instanceTypeHasBeenSet = false; ContainerFleetBillingType m_billingType; bool m_billingTypeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Vector m_metricGroups; bool m_metricGroupsHasBeenSet = false; ProtectionPolicy m_newGameSessionProtectionPolicy; bool m_newGameSessionProtectionPolicyHasBeenSet = false; GameSessionCreationLimitPolicy m_gameSessionCreationLimitPolicy; bool m_gameSessionCreationLimitPolicyHasBeenSet = false; ContainerFleetStatus m_status; bool m_statusHasBeenSet = false; DeploymentDetails m_deploymentDetails; bool m_deploymentDetailsHasBeenSet = false; LogConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet = false; Aws::Vector m_locationAttributes; bool m_locationAttributesHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws