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

A collection of server process configurations that describe what processes to * run on each instance in a fleet. Server processes run either a custom game build * executable or a Realtime Servers script. Each instance in the fleet starts the * specified server processes and continues to start new processes as existing * processes end. Each instance regularly checks for an updated runtime * configuration.

The runtime configuration enables the instances in a * fleet to run multiple processes simultaneously. Learn more about * Running Multiple Processes on a Fleet .

A Amazon GameLift instance is * limited to 50 processes running simultaneously. To calculate the total number of * processes in a runtime configuration, add the values of the * ConcurrentExecutions parameter for each ServerProcess * object.

See Also:

AWS * API Reference

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

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline const Aws::Vector& GetServerProcesses() const{ return m_serverProcesses; } /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline bool ServerProcessesHasBeenSet() const { return m_serverProcessesHasBeenSet; } /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline void SetServerProcesses(const Aws::Vector& value) { m_serverProcessesHasBeenSet = true; m_serverProcesses = value; } /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline void SetServerProcesses(Aws::Vector&& value) { m_serverProcessesHasBeenSet = true; m_serverProcesses = std::move(value); } /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline RuntimeConfiguration& WithServerProcesses(const Aws::Vector& value) { SetServerProcesses(value); return *this;} /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline RuntimeConfiguration& WithServerProcesses(Aws::Vector&& value) { SetServerProcesses(std::move(value)); return *this;} /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline RuntimeConfiguration& AddServerProcesses(const ServerProcess& value) { m_serverProcessesHasBeenSet = true; m_serverProcesses.push_back(value); return *this; } /** *

A collection of server process configurations that describe which server * processes to run on each instance in a fleet.

*/ inline RuntimeConfiguration& AddServerProcesses(ServerProcess&& value) { m_serverProcessesHasBeenSet = true; m_serverProcesses.push_back(std::move(value)); return *this; } /** *

The maximum number of game sessions with status ACTIVATING to * allow on an instance simultaneously. This setting limits the amount of instance * resources that can be used for new game activations at any one time.

*/ inline int GetMaxConcurrentGameSessionActivations() const{ return m_maxConcurrentGameSessionActivations; } /** *

The maximum number of game sessions with status ACTIVATING to * allow on an instance simultaneously. This setting limits the amount of instance * resources that can be used for new game activations at any one time.

*/ inline bool MaxConcurrentGameSessionActivationsHasBeenSet() const { return m_maxConcurrentGameSessionActivationsHasBeenSet; } /** *

The maximum number of game sessions with status ACTIVATING to * allow on an instance simultaneously. This setting limits the amount of instance * resources that can be used for new game activations at any one time.

*/ inline void SetMaxConcurrentGameSessionActivations(int value) { m_maxConcurrentGameSessionActivationsHasBeenSet = true; m_maxConcurrentGameSessionActivations = value; } /** *

The maximum number of game sessions with status ACTIVATING to * allow on an instance simultaneously. This setting limits the amount of instance * resources that can be used for new game activations at any one time.

*/ inline RuntimeConfiguration& WithMaxConcurrentGameSessionActivations(int value) { SetMaxConcurrentGameSessionActivations(value); return *this;} /** *

The maximum amount of time (in seconds) that a game session can remain in * status ACTIVATING. If the game session is not active before the * timeout, activation is terminated and the game session status is changed to * TERMINATED.

*/ inline int GetGameSessionActivationTimeoutSeconds() const{ return m_gameSessionActivationTimeoutSeconds; } /** *

The maximum amount of time (in seconds) that a game session can remain in * status ACTIVATING. If the game session is not active before the * timeout, activation is terminated and the game session status is changed to * TERMINATED.

*/ inline bool GameSessionActivationTimeoutSecondsHasBeenSet() const { return m_gameSessionActivationTimeoutSecondsHasBeenSet; } /** *

The maximum amount of time (in seconds) that a game session can remain in * status ACTIVATING. If the game session is not active before the * timeout, activation is terminated and the game session status is changed to * TERMINATED.

*/ inline void SetGameSessionActivationTimeoutSeconds(int value) { m_gameSessionActivationTimeoutSecondsHasBeenSet = true; m_gameSessionActivationTimeoutSeconds = value; } /** *

The maximum amount of time (in seconds) that a game session can remain in * status ACTIVATING. If the game session is not active before the * timeout, activation is terminated and the game session status is changed to * TERMINATED.

*/ inline RuntimeConfiguration& WithGameSessionActivationTimeoutSeconds(int value) { SetGameSessionActivationTimeoutSeconds(value); return *this;} private: Aws::Vector m_serverProcesses; bool m_serverProcessesHasBeenSet; int m_maxConcurrentGameSessionActivations; bool m_maxConcurrentGameSessionActivationsHasBeenSet; int m_gameSessionActivationTimeoutSeconds; bool m_gameSessionActivationTimeoutSecondsHasBeenSet; }; } // namespace Model } // namespace GameLift } // namespace Aws