/** * 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 the set of * processes to run on each instance in a fleet. Server processes run either an * executable in a custom game build or a Realtime Servers script. Amazon GameLift * launches the configured processes, manages their life cycle, and replaces them * as needed. Each instance checks regularly for an updated runtime configuration. *

A Amazon GameLift instance is limited to 50 processes running * concurrently. To calculate the total number of processes in a runtime * configuration, add the values of the ConcurrentExecutions parameter * for each server process. Learn more about * Running Multiple Processes on a Fleet.

See Also:

AWS * API Reference

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

A collection of server process configurations that identify what 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 identify what server * processes to run on each instance in a fleet.

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

A collection of server process configurations that identify what 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 identify what 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 identify what 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 identify what 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 identify what 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 identify what 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 number of game sessions in status ACTIVATING to allow on an * instance. This setting limits the instance resources that can be used for new * game activations at any one time.

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

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

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

The number of game sessions in status ACTIVATING to allow on an * instance. This setting limits the 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 number of game sessions in status ACTIVATING to allow on an * instance. This setting limits the 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) allowed to launch a new game session * and have it report ready to host players. During this time, the game session is * in status ACTIVATING. If the game session does not become active * before the timeout, it is ended and the game session status is changed to * TERMINATED.

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

The maximum amount of time (in seconds) allowed to launch a new game session * and have it report ready to host players. During this time, the game session is * in status ACTIVATING. If the game session does not become active * before the timeout, it is ended and the game session status is changed to * TERMINATED.

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

The maximum amount of time (in seconds) allowed to launch a new game session * and have it report ready to host players. During this time, the game session is * in status ACTIVATING. If the game session does not become active * before the timeout, it is ended 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) allowed to launch a new game session * and have it report ready to host players. During this time, the game session is * in status ACTIVATING. If the game session does not become active * before the timeout, it is ended 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 = false; int m_maxConcurrentGameSessionActivations; bool m_maxConcurrentGameSessionActivationsHasBeenSet = false; int m_gameSessionActivationTimeoutSeconds; bool m_gameSessionActivationTimeoutSecondsHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws