/** * 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 game session's properties plus the protection policy currently in * force.

See Also:

AWS * API Reference

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

Object that describes a game session.

*/ inline const GameSession& GetGameSession() const{ return m_gameSession; } /** *

Object that describes a game session.

*/ inline bool GameSessionHasBeenSet() const { return m_gameSessionHasBeenSet; } /** *

Object that describes a game session.

*/ inline void SetGameSession(const GameSession& value) { m_gameSessionHasBeenSet = true; m_gameSession = value; } /** *

Object that describes a game session.

*/ inline void SetGameSession(GameSession&& value) { m_gameSessionHasBeenSet = true; m_gameSession = std::move(value); } /** *

Object that describes a game session.

*/ inline GameSessionDetail& WithGameSession(const GameSession& value) { SetGameSession(value); return *this;} /** *

Object that describes a game session.

*/ inline GameSessionDetail& WithGameSession(GameSession&& value) { SetGameSession(std::move(value)); return *this;} /** *

Current status of protection for the game session.

  • * NoProtection -- The game session can be terminated during a scale-down * event.

  • FullProtection -- If the game session is in an * ACTIVE status, it cannot be terminated during a scale-down * event.

*/ inline const ProtectionPolicy& GetProtectionPolicy() const{ return m_protectionPolicy; } /** *

Current status of protection for the game session.

  • * NoProtection -- The game session can be terminated during a scale-down * event.

  • FullProtection -- If the game session is in an * ACTIVE status, it cannot be terminated during a scale-down * event.

*/ inline bool ProtectionPolicyHasBeenSet() const { return m_protectionPolicyHasBeenSet; } /** *

Current status of protection for the game session.

  • * NoProtection -- The game session can be terminated during a scale-down * event.

  • FullProtection -- If the game session is in an * ACTIVE status, it cannot be terminated during a scale-down * event.

*/ inline void SetProtectionPolicy(const ProtectionPolicy& value) { m_protectionPolicyHasBeenSet = true; m_protectionPolicy = value; } /** *

Current status of protection for the game session.

  • * NoProtection -- The game session can be terminated during a scale-down * event.

  • FullProtection -- If the game session is in an * ACTIVE status, it cannot be terminated during a scale-down * event.

*/ inline void SetProtectionPolicy(ProtectionPolicy&& value) { m_protectionPolicyHasBeenSet = true; m_protectionPolicy = std::move(value); } /** *

Current status of protection for the game session.

  • * NoProtection -- The game session can be terminated during a scale-down * event.

  • FullProtection -- If the game session is in an * ACTIVE status, it cannot be terminated during a scale-down * event.

*/ inline GameSessionDetail& WithProtectionPolicy(const ProtectionPolicy& value) { SetProtectionPolicy(value); return *this;} /** *

Current status of protection for the game session.

  • * NoProtection -- The game session can be terminated during a scale-down * event.

  • FullProtection -- If the game session is in an * ACTIVE status, it cannot be terminated during a scale-down * event.

*/ inline GameSessionDetail& WithProtectionPolicy(ProtectionPolicy&& value) { SetProtectionPolicy(std::move(value)); return *this;} private: GameSession m_gameSession; bool m_gameSessionHasBeenSet = false; ProtectionPolicy m_protectionPolicy; bool m_protectionPolicyHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws